Modrules.lua: Difference between revisions
From Spring
Jump to navigationJump to search
created page |
categories |
||
| Line 121: | Line 121: | ||
return modrules | return modrules | ||
</code> | </code> | ||
[[Category:Game development]] | |||
[[Category:gamedata]] | |||
Revision as of 15:52, 20 March 2011
What and Where is it?
modrules.lua is a file in the gamedata\ folder of a Spring game. It controlls various global parameters of the game, for example how fast units gain experience. Before the introduction of Lua, it was called modrules.tdf and had a slightly different synthax.
Details
The engine code that loads it can be seen here for reference: https://github.com/spring/spring/blob/master/rts/Sim/Misc/ModInfo.cpp
The page Units:FlankingBonus explains the flanking bonus that can be set in this file.
Example
This is the full modrules.lua of the zeroK game, it is believed to be complete. (In contra to the code tag that does not work on code with { in it ...)
local modrules = {
construction = {
constructionDecay = false; -- defaults to true
constructionDecayTime = 6.66; -- defaults to 6.66
constructionDecaySpeed = 0.03; -- defaults to 0.03
},
reclaim = {
multiReclaim = 1; -- defaults to 0
reclaimMethod = 0; -- defaults to 1
unitMethod = 0; -- defaults to 1
unitEnergyCostFactor = 0; -- defaults to 0
unitEfficiency = 0.5; -- defaults to 1
featureEnergyCostFactor = 0; -- defaults to 0
allowEnemies = false; -- defaults to true
allowAllies = false; -- defaults to true
},
repair = {
energyCostFactor = 1/3, -- defaults to 0
},
resurrect = {
energyCostFactor = 1.2, -- defaults to 0.5
},
capture = {
energyCostFactor = 1, -- defaults to 0
},
paralyze = {
paralyzeOnMaxHealth = true, -- defaults to true
},
sensors = {
requireSonarUnderWater = true, -- defaults to true
los = {
losMipLevel = 3, -- defaults to 1
losMul = 1, -- defaults to 1
airMipLevel = 4, -- defaults to 2
airMul = 1, -- defaults to 1
},
},
transportability = {
transportGround = 1; -- defaults to 1
transportHover = 1; -- defaults to 0
transportShip = 0; -- defaults to 0
transportAir = 0; -- defaults to 0
},
flankingBonus = {
-- defaults to 1
-- 0: no flanking bonus
-- 1: global coords, mobile
-- 2: unit coords, mobile
-- 3: unit coords, locked
defaultMode=0;
},
experience = {
experienceMult = 1.0; -- defaults to 1.0
-- these are all used in the following form:
-- value = defValue * (1 + (scale * (exp / (exp + 1))))
powerScale = 0.7; -- defaults to 1.0
healthScale = 0; -- defaults to 0.7
reloadScale = 0.5; -- defaults to 0.4
},
fireAtDead = {
fireAtKilled = false; -- defaults to false
fireAtCrashing = false; -- defaults to false
},
nanospray = {
allow_team_colors = true; -- defaults to true
},
featureLOS = {
-- 0 - no default LOS for features
-- 1 - gaia features always visible
-- 2 - allyteam/gaia features always visible
-- 3 - all features always visible
-- default 3
featureVisibility = 1;
},
}
return modrules