.mdmp Files and TTT Server Crashes

I have a fix for the models crashing the server but they just freeze and no one is able to pick them up again.

I am using this script: https://github.com/Kefta/Ragdoll-Remover

Is there any way to make the ragdolls stop from flipping out, and then re enable them to be picked up again? (Make them unfrozen)

Bump. Really need help.

Thank you. Will post again if it crashes <3

Still need a way to read .mdmp files for any future problems.

Re-made the thread -snip-

Read .mdmp files using this: http://dumps.metastruct.uk.to

[editline]1st January 2014[/editline]

Fuck me ninja’d

Thank you both, Still curious about the models though.

What about the models?

I am using this code to stop the models from flying



local freezespeed = 500
local removespeed = 4000
hook.Add("Think","AMB_CrashCatcher",function()
        for k, ent in pairs(ents.FindByClass("prop_ragdoll")) do
                if IsValid(ent) then
                        if ent.player_ragdoll then
                                local velo = ent:GetVelocity( ):Length()
                                local ply = false
                                if IsValid(ent:GetOwner()) then
                                        ply = ent:GetOwner()
                                end    
                                if velo >= removespeed then
                                        ent:Remove()
                                        ServerLog("[!CRASHCATCHER!] Caught ragdoll entity moving too fast ("..velo.."), removing offending ragdoll entity from world.
")
                                        local messageToShow = "[CRASH PREVENTION] A ragdoll was removed to prevent server crashing. It was "
                                        if CORPSE.GetFound(ent, true) then
                                                PrintMessage(HUD_PRINTTALK, messageToShow .. "an unID'd body.")
                                        else
                                                PrintMessage(HUD_PRINTTALK, messageToShow .. ent:GetNWString("nick") .. "'s body.")
                                        end
                                elseif velo >= freezespeed then
                                        AMB_KillVelocity(ent)
                                        ServerLog("[!CRASHCATCHER!] Caught ragdoll entity moving too fast ("..velo.."), disabling motion. 
")
                                end
                        end
                end
        end
end)
 
function AMB_SetSubPhysMotionEnabled(ent, enable)
        if not IsValid(ent) then return end
   
        ent:SetVelocity(vector_origin)
       
        if !(enable) then
                ent:SetColor(Color(255,0,255,255))
        else
                ent:SetColor(Color(255,255,255,255))
        end
       
        if !(enable) then
                if IsValid(ent:GetOwner()) then
                        ent:GetOwner():GetWeapon("weapon_zm_carry"):Reset(false)
                end
                --ent:SetPos(ent:GetPos()+Vector(0,0,50))
        end
 
        for i=0, ent:GetPhysicsObjectCount()-1 do
                local subphys = ent:GetPhysicsObjectNum(i)
                if IsValid(subphys) then
                        subphys:EnableMotion(enable)
                        if !(enable) then
                                subphys:SetVelocity(vector_origin)
                                subphys:SetMass(subphys:GetMass()*20)
                        end
                        if enable then
                                subphys:SetMass(subphys:GetMass()/20)
                                subphys:Wake()
                        end
                end
        end
       
       
       
        ent:SetVelocity(vector_origin)
       
end
 
function AMB_KillVelocity(ent)
   AMB_SetSubPhysMotionEnabled(ent, false)
   timer.Simple(3, function() AMB_SetSubPhysMotionEnabled(ent, true) end)
end


The models end up frozen on the ground so no one can pick them up using a ‘Magneto Stick’

Can i remove or add anything to the script so that the models freeze and then unfreeze once the stop moving?

Just raise the local freezespeed to be a higher number.

One of the things I did which fixed crashing issues for a friend was OnDeath, set velocity to 0 on the ragdoll; it was caused by them falling and then spazzing out with the additional velocity; in addition to reducing the pickup / throw force with the force-stick.

I haven’t messed with TTT in the longest time; but I’m pretty sure you can reduce the pickup / throw force to the point where when you want to pick-up a body, it doesn’t let you pick it up, but you can drag it, or move it more slowly. This could be considered as a temporary fix until you find something which better suits your players.

What fixed it for me was:



local t = {} 
t.MaxVelocity = 2000
t.MaxCollisionsPerObjectPerTimestep = 5
physenv.SetPerformanceSettings(t)


Never experienced any crash after I implemented this.

OnDeath doesn’t help when a person is taking the body and moving it around at a high velocity, or they drop it off of a high place (ttt_rooftops_a2_f1). The script just freezes the body if it goes too fast, and removes it if freezing doesn’t help.

Correct; but the OnDeath stopped the crash which would happen when a player was blown up or something.

The main thing was reducing the amount of force the pick-em-up-stick had so that bodies couldn’t be thrown as far!

I believe I may have forgotten another part: Update the collision of ragdolls to DEBRIS TRIGGER.

That script will simply freeze the ragdoll if it goes too fast. I guess you could add something for OnDeath for safety, but it just seems overkill. Also, what do you mean by debris trigger?

Donkie, you just implemented that by using it in some kind of autorun/server/ lua? Nothing else required?