Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Modoptions.lua

From Fightorder
Revision as of 22:39, 23 February 2026 by Qrow (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Note: map options (mapoptions.lua) and game options (modoptions.lua) are basically the same, so one page for both.

Purpose

Allow players to set game variables via lobby.

Reading

Use these functions.

To avoid errors check modoptions for being nil, in case the game was not started by a lobby. Otherwise you get "attempt to index local 'modOptions' (a nil value)"


local lolfactor = 100	--some default value to be used when no modoptions are present
local modOptions = Spring.GetModOptions()
if (modOptions) then
	lolfactor = modOptions.lolfactor
else
	Spring.Echo ("no modoptions are set")
end
Spring.Echo ("lolfactor = " .. lolfactor)
--do something with lolfactor--

Examples

Some simple example

Allow players to set start resources.

local opts= {
	{
	key="startingmetal",
	name="Start Metal",
	desc="How much metal at start?",
	type   = 'number',	
	def    = 4000,
	min    = 1,
	max    = 40000,
	step   = 1,
	},
return opts

The gadget that gives the start resources reads it like this:

local startingmetal=4000
local modOptions = Spring.GetModOptions()
if (modOptions) then startingmetal = modOptions.startingmetal or 4000 end
Spring.SetTeamResource(teamID, "m", startingmetal)

zero-K: http://code.google.com/p/zero-k/source/browse/trunk/mods/zk/ModOptions.lua