CTakeDamageInfo issue

One of the things I noticed, was that colliding with a wall in a vehicle does damage, however colliding with a prop_physics yields none, even if it is constrained in place.

I created a new GM:EntityTakeDamage(ent, dmgInfo) function which redirects damage transferred to the original prop_physics, to the driver of said vehicle. The problem is, no damage is being transferred.

I’ve called:
[lua]inf:GetDriver():TakeDamage(dmgInfo:GetBaseDamage(), inf:GetDriver(), inf)[/lua]
– All this does is spit out the damage info a second time, with no damage being transferred to the player.

I’ve called:
[lua]dmgInfo:GetInflictor():GetDriver():TakeDamageInfo(dmgInfo)[/lua]
– Same as above.

I’ve called
[lua]GAMEMODE:EntityTakeDamage(inf:GetDriver(), dmgInfo);[/lua]
– Same as above.

I’ve called
[lua]hook.Call(“EntityTakeDamage”, GAMEMODE, inf:GetDriver(), dmgInfo);[/lua]
– Same as above.

I’ve gone through the entire damage info class, and output all values and ensured everything was the same. I manually set the damage type to 17, which is what the damage type is when you hit a wall. That didn’t work so I set it back to DMG_CLUB, or 128.
I’ve tried returning the damage hook right after hooking it so the player takes the damage, the only difference is it omitted the first output of the damage log.
I’ve tried overwriting the passed in entity value to the driver, also with no luck.
Max damage was the other value that was off, so I set the max damage to be the same as the damage transferred to the player without any luck, even with all matching values.
I did some searching, and someone said to try hooking into PlayerTakeDamage, but that hook doesn’t exist or doesn’t apply damage??

If I explicitly call this, then damage is distributed perfectly.
[lua]ent:GetDriver():SetHealth( ent:GetDriver():Health() - dmgInfo:GetBaseDamage() )
if (ent:GetDriver():Health() <= 0) then ent:GetDriver():Kill() end[/lua]

But that solution is less than ideal because a hook exists explicitly for handling damage, i.e. the blood, the red screen, death on <= 0 health, etc… so I’d rather use it.

I’m not sure whether or not to report this as a bug just yet, so I figured I’d try here, maybe there’s something I’m missing?

Here’s the full function with debug code intact:
[lua]//
// By Josh Acecool - acecoolcompany IsAvailableAt gmail.com
//
function GM:EntityTakeDamage (ent, dmgInfo )
print( type( dmgInfo ) … " occurring at " … CurTime() )
local inf = dmgInfo:GetInflictor();

if (inf:IsVehicle() && ( ent:GetClass() == "prop_physics" || ent:GetClass() == "prop_physics_multiplayer" ) ) then
	dmgInfo:ScaleDamage( 0.25 );
	MsgC( Color( math.random(150,255) , math.random(150,255) , math.random(1,255) ), "Car Crash " .. dmgInfo:GetBaseDamage() .. "

" )

	-- dmgInfo:SetAttacker( inf:GetDriver() )
	-- dmgInfo:SetDamage( dmgInfo:GetBaseDamage() )
	-- dmgInfo:SetInflictor( inf )
	-- dmgInfo:SetDamageForce( Vector( 10000,10000,10000 ) )
	-- dmgInfo:SetDamageType( DMG_CLUB ) //DMG_CLUB
	-- dmgInfo:SetMaxDamage( dmgInfo:GetBaseDamage() )

	// Updates the Victim, but applies no damage
	-- ent = inf:GetDriver()
	
	// Only outputs damage 2 times 
	-- hook.Call( "EntityTakeDamage", GAMEMODE, inf:GetDriver(), dmgInfo );
	
	// Only outputs damage 2 times 
	-- GAMEMODE:EntityTakeDamage( inf:GetDriver(), dmgInfo );

	// Only outputs damage 2 times
	-- inf:GetDriver():TakeDamage( dmgInfo:GetBaseDamage(), inf:GetDriver(), inf )
	
	// Works as designed
	-- inf:GetDriver():SetHealth( inf:GetDriver():Health() - dmgInfo:GetBaseDamage() )
	-- if ( inf:GetDriver():Health() &lt;= 0 ) then inf:GetDriver():Kill() end
end

MsgC(COLOR_RED, "DAMAGE REPORT:

Victim " … tostring(ent) … "
GetMaxDamage " … tostring(dmgInfo:GetMaxDamage()) … "
GetAttacker " … tostring(dmgInfo:GetAttacker()) … "
GetDamage " … tostring(dmgInfo:GetDamage()) … "
GetReportedPosition " … tostring(dmgInfo:GetReportedPosition()) … "
GetDamageForce " … tostring(dmgInfo:GetDamageForce()) … "
GetDamagePosition " … tostring(dmgInfo:GetDamagePosition()) … "
GetInflictor " … tostring(dmgInfo:GetInflictor()) … "
GetDamageType " … tostring(dmgInfo:GetDamageType()) … "
GetBaseDamage " … tostring(dmgInfo:GetBaseDamage()) … "
GetAmmoType" … tostring(dmgInfo:GetAmmoType()) … "
IsExplosionDamage " … tostring(dmgInfo:IsExplosionDamage()) … "
IsFallDamage " … tostring(dmgInfo:IsFallDamage()) … "
IsBulletDamage " … tostring(dmgInfo:IsBulletDamage()) … "
")
end[/lua]

I’ve tried pretty much every hook available, but even with updating the damage info, etc, it might still be giving damage to the prop_physics even upon recalling the hook. Does anybody have any ideas aside from using SetHealth?