Everything stay where they were after server restart.
3 replies, posted
Hello everyone,
I simply want something to make everything spawned (Props, entities, npc's etc.) on a multiplayer server stay where it was after turning off server or when the server crash. It would a good feature if stuff was saved on map where they were spawned, something like if I built a small forest on gm_construct and gone to gm_flatgrass and built a huge house they would be kept on maps they were created.
Yea, so when the server crashes because of a huge amount of props (Doesn't need to be spam) and it restarts it's unstable right away. That sounds like a good idea!
[QUOTE=Goz3rr;28105908]Yea, so when the server crashes because of a huge amount of props (Doesn't need to be spam) and it restarts it's unstable right away. That sounds like a good idea![/QUOTE]
It doesn't always have to crash because of huge amount of props.
I use this script to log when my server crashes. You could use a similar method but instead store data about entities and recreate the entities instead of creating a crash log.
[lua]local crashed = false
local lastspawn , lastconnect
hook.Add("InitPostEntity" , "CheckForCrashes" , function()
if RealTime() < 30 then
crashed = true
if file.Exists("game_temp.txt") then
local precrashtbl = KeyValuesToTable(file.Read("game_temp.txt"))
local update = os.date()
precrashtbl.update = update
filex.Append("CrashLogs/"..string.Explode(" " , os.date())[1]:gsub("/" , "_").."/"..string.Explode(":" , string.Explode(" " , os.date())[2])[1]..".txt" , "\n"..TableToKeyValues(precrashtbl))
end
end
end )
timer.Create("UpdateTempInfo" , 10 , 0 , function()
local ret = {}
local numplayers = #player.GetAll()
local players = {}
for k , v in ipairs(player.GetAll()) do
table.insert(players , {name = v:Nick() , id = v:SteamID()})
end
ret.numplayers = numplayers
ret.players = players
ret.map = game.GetMap()
ret.downdate = os.date()
ret.lastconnect = lastconnect or {}
ret.lastspawn = lastspawn or {}
ret.roundduration = CurTime()
ret.gamemode = GAMEMODE.Name
file.Write("game_temp.txt" , TableToKeyValues(ret))
end )[/lua]
I wrote this years ago so it's pretty shitty code, but the concept is fine.
Sorry, you need to Log In to post a reply to this thread.