Modrules.lua: Difference between revisions

From Spring
Jump to navigationJump to search
Knorke (talk | contribs)
created page
 
Knorke (talk | contribs)
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