From cd7b77914b384b6cdc607de796173a71e99d0d3e Mon Sep 17 00:00:00 2001 From: toasterpanic Date: Thu, 4 Jun 2026 13:17:51 -0400 Subject: [PATCH] Preserve flags on unfake, mostly so medics don't stop being medics --- lua/zcnpci.lua | 5 +++++ lua/zcnpci/modules/falling_legs.lua | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lua/zcnpci.lua b/lua/zcnpci.lua index c00a453..f603668 100644 --- a/lua/zcnpci.lua +++ b/lua/zcnpci.lua @@ -144,6 +144,11 @@ hook.Add("CreateEntityRagdoll", "zcnpci", function(ent, ragdoll) -- Why is it like this? Fuck if I know, I just know I don't wanna deal with it again. ragdoll.citizentype = ent:GetInternalVariable("citizentype") + ragdoll.respawn_data = { + flags = ent:GetFlags(), + spawn_flags = ent:GetSpawnFlags() + } + timer.Simple(0, function() if !IsValid(ragdoll) then return end diff --git a/lua/zcnpci/modules/falling_legs.lua b/lua/zcnpci/modules/falling_legs.lua index a877a8d..40c60f9 100644 --- a/lua/zcnpci/modules/falling_legs.lua +++ b/lua/zcnpci/modules/falling_legs.lua @@ -439,6 +439,9 @@ function MODULE:PhysicsSimulate(phys, dt) ent:SetSkin(target:GetSkin()) + ent:AddFlags(target.respawn_data.flags) + ent:AddSpawnFlags(target.respawn_data.spawn_flags) + if target.citizentype then ent:SetKeyValue("citizentype", target.citizentype) end @@ -496,7 +499,6 @@ function MODULE:PhysicsSimulate(phys, dt) self.unfaker:SetNWEntity("parent_npc", ent) self.unfaker:SetNWFloat("fake_start", self.FakeUpStart) self.unfaker:SetNWFloat("fake_end", self.FakeUpEnd) - target:SetRenderMode(RENDERMODE_NONE) ent:SetRenderMode(RENDERMODE_NONE)