• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

[Talkaction] + [Globalevent] /save command and auto save script. (Simple).

My script is not broadcasting
LUA:
function onThink()
 for var = 1,3 do
		if var == 1 then
			doBroadcastMessage("WARNING: Saving server, please mind it may freeze!") --- this appears before server freeze...
		end
		if var == 2 then
			doSaveServer()
			doBroadcastMessage("WARNING: Saving server...")
		end
		if var == 3 then
			doBroadcastMessage("Done.")
			doBroadcastMessage("The server has been successfully saved.")
		end
	end
	return true
end


@Znote,
Will be better if broadcast a message 30 seconds before save.
 
Last edited:
for don't spamming

function onThink()
for var = 1,2 do
if var == 1 then
doSaveServer()
end
if var == 2 then
doBroadcastMessage("Server Saved",20)
end
end
return true
end
 
Last edited:
How to make it work?
WARNING: Saving server, please mind it may freeze! 30 seconds before freeze
WARNING: Saving server... when freeze
The server has been successfully saved. after freeze
LUA:
function onThink()
 for var = 1,3 do
		if var == 1 then
			doBroadcastMessage("WARNING: Saving server, please mind it may freeze!") --- this appears before server freeze...
		end
		if var == 2 then
			doSaveServer()
			doBroadcastMessage("WARNING: Saving server...")
		end
		if var == 3 then
			doBroadcastMessage("The server has been successfully saved.")
		end
	end
	return true
end
 
Bit old thread but yeah, was a bit bored.

LUA:
-- Draft save attempt by Znote. Supporting pre-warning, customized progressing
-- text messages. Not tested yet.
-- For TFS 0.2 users, remember to change "doBroadcastMessage" to "broadcastMessage".

-- Global Values

-- Broadcast a server save warning how many seconds before executing save?
secondsPreWarning = 30
-- how long does server save usually take? (in milli seconds).
expectedSaveTime = 300

message1 = ("Server save in "..secondsPreWarning.." seconds.")
message2 = "Saving server..."
Message3 = "Server save done."

-- main functions
function onThink()
	addEvent(loopStatus, 0)
	return true
end

-- custom functions
function loopStatus()

local calc1 = (secondsPreWarning * 1000)
local calc2 = calc1 + expectedSaveTime

	addEvent(preWarning(), 0)
	addEvent(saveServer(), calc1)
	addEvent(postWarning(), calc2)
	return true
end

function preWarning()
	doBroadcastMessage(message1)
	return true
end

function saveServer()
	doBroadcastMessage(message2)
	doSaveServer()
	return true
end

function postWarning()
	doBroadcastMessage(message3)
	return true
end
 
I made this
LUA:
local config = {
	broadcast = {30},
	shallow = "no",
	delay = 120,
	events = 30
}

config.shallow = getBooleanFromString(config.shallow)

local function executeSave(seconds)
	if(isInArray(config.broadcast, seconds)) then
		local text = ""
		if(not config.shallow) then
			text = "Warning: S"
		else
			text = "S"
		end

		text = text .. "erver save within " .. seconds .. " seconds, please mind it may freeze!"
		doBroadcastMessage(text)
	end

	if(seconds > 0) then
		addEvent(executeSave, config.events * 1000, seconds - config.events)
	else
		doSaveServer(config.shallow)
	end
end

function onThink(interval, lastExecution, thinkInterval)
	if(table.maxn(config.broadcast) == 0) then
		doSaveServer(config.shallow)
	else
		executeSave(config.delay)
	end

	return true
end
 
Back
Top