Modrules.lua: Difference between revisions

From Spring
Jump to navigationJump to search
Knorke (talk | contribs)
categories
Knorke (talk | contribs)
<code> -> <pre>
Line 12: Line 12:
==Example==
==Example==


This is the full modrules.lua of the zeroK game, it is believed to be complete.
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 ...)
 
----
<pre>
<code>
local modrules  = {
local modrules  = {


Line 120: Line 119:


return modrules
return modrules
</code>
</pre>


[[Category:Game development]]
[[Category:Game development]]
[[Category:gamedata]]
[[Category:gamedata]]

Revision as of 17:10, 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:

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