local V = { Name = "Ford Mustang GT '15 - Unmarked", Class = "prop_vehicle_jeep", Category = "TetraFox - Vehicles", Author = "Steeleman345", Information = "VROOM", Model = "models/steelemancars/for_mustang_15/mustang_gp.mdl", KeyValues = { vehiclescript = "scripts/vehicles/steelemancars/mustang_gt_15/mustang_gt_15.txt" } } list.Set("Vehicles", "smc_mustang_gp_15", V) if !steel_mustang_unmarked_police_AddProps_List then steel_mustang_unmarked_police_AddProps_List = {} end hook.Add("PlayerSpawnedVehicle","steel_mustang_unmarked_police_AddProps", function( ply, vehicle ) if vehicle:GetModel( ) == "models/steelemancars/for_mustang_15/mustang_gp.mdl" then // Create the actual prop local prop1 = ents.Create( "prop_dynamic_ornament" ) if ( !IsValid( prop1 ) ) then return end prop1:SetModel( "models/schmal/whelen_ion.mdl" ) prop1:SetPos( vehicle:LocalToWorld(Vector(10,98.5,30) )) prop1:SetAngles( vehicle:LocalToWorldAngles(Angle(0,0,0)) ) prop1:SetParent( vehicle ) prop1:SetOwner( ply ) prop1:Spawn() prop1:SetNoDraw(false) prop1:DrawShadow(true) prop1:Fire("DisableCollision") // Create the actual prop local prop2 = ents.Create( "prop_dynamic_ornament" ) if ( !IsValid( prop2 ) ) then return end prop2:SetModel( "models/schmal/whelen_ion.mdl" ) prop2:SetPos( vehicle:LocalToWorld(Vector(-10,98.5,30) )) prop2:SetAngles( vehicle:LocalToWorldAngles(Angle(0,0,0)) ) prop2:SetParent( vehicle ) prop2:SetOwner( ply ) prop2:Spawn() prop2:SetNoDraw(false) prop2:DrawShadow(true) prop2:Fire("DisableCollision") table.insert(steel_mustang_unmarked_police_AddProps_List, {vehicle, prop1,prop2}) // Ensure that things are removed vehicle:CallOnRemove( "RemoveProps", function( vehicle, prop1 ) if IsValid(prop1) then prop1:Remove() end end, prop1 ) vehicle:CallOnRemove( "RemoveProps", function( vehicle, prop2 ) if IsValid(prop2) then prop2:Remove() end end, prop2 ) prop1:CallOnRemove( "RemoveParent", function( prop1, vehicle ) if IsValid(vehicle) then vehicle:Remove() end end, vehicle) end end) // Yes, freemmaann did code this hook.Add("Think", "steel_mustang_unmarked_police_SyncChanges", function() if steel_mustang_unmarked_police_AddProps_List and (!steel_mustang_unmarked_police_SyncChanges_Timer or CurTime() >= steel_mustang_unmarked_police_SyncChanges_Timer) then for k, v in pairs(steel_mustang_unmarked_police_AddProps_List) do if IsValid(v[2]) then v[2]:SetMaterial(v[1]:GetMaterial()) v[2]:SetColor(v[1]:GetColor()) v[2]:SetSkin(v[1]:GetSkin()) local bgroupstring = "0" for k2,v2 in pairs(v[1]:GetBodyGroups()) do bgroupstring = bgroupstring..v[1]:GetBodygroup(k2) end v[2]:SetBodyGroups(bgroupstring) else steel_mustang_unmarked_police_AddProps_List[k] = nil end end steel_mustang_unmarked_police_SyncChanges_Timer = CurTime()+0.5 end end)