User Tools

Site Tools


moduleconfig

module.config

The module.config file is the main entry point to describe bundle content.

Comments in the module.config file have to start on a new line using a hash '#' character to denote a comment. Elements such as sound effects, nations, unit schemas and such can be referenced by their ID-number. The first element has ID-number 1, the second element ID-number 2 and so on. For names or texts that contain spaces ' ' use underscore '_' instead. Instead of “Roman Empire” write “Roman_Empire”. The underscore will be translated to a space internally.

For images, sound and music assets have a look at the asset specifications.

effect

Lists the sound effects (i.e. unit movement sound, attack sound etc.) to be used in the game.

effect: <name>
    type: <type>
    tune: <file>
effect-end!

Parameters:

  • <name>: The name for the effect (not displayed within the game).
  • <type>: The type of the effect.
  • <file>: The file containing the sound effect (WAV is preferred for short sounds).

melody

Lists the background music to be played during the game. Several files can be defined which will be played after each other.

melody: <name>
    tune: <file>
melody-end!

Parameters:

  • <name>: The name for the music (not displayed within the game).
  • <file>: The file containing the background music (MP3 is preferred for background music).

matter

Defines the items available in the game such as Gold, Wood, Iron, Stone and Food. Everything besides “cash” (in most cases named “Gold”) is optional. “cash” is required!

matter: <name> <color>
    type: <type>
    icon: <icon>
matter-end!

Parameters:

  • <name>: The name for the matter, e.g. “Gold” or “Wood”.
  • <color>: The HEX-color in RGB for the item (mostly used for texts)
  • <type>: Parameters for the matter:
    • decay=[0,99] The decay per turn in percent. Defaults to 0.
    • food=[y|n] If this is the matter for food. There can only be 1 food-matter!
    • foodPer1000000=[0,1000000] How much food 1 Million people eat for 1 turn.
  • <icon>: The icon for the item.

combat

The different combat modalities employed for the various troop types. Examples include “Melee”, “Archer” etc.

combat: <name>
    icon: <icon>
    view: <view>
combat -end!

Parameters:

  • <name>: The name for the combat-modality.
  • <icon>: The 16x16px icon to be used.
  • <view>: If the combat modality is type projectile, an optional projectile file can be supplied. E.g. arrows for archers.

nature

Defines the nature tile such as Stone, Soil (for Farmland), Fishgrounds, Construction Ground etc.

Please note that pines, trees, rivers etc. cannot be configured via modules/bundles but are fixed. They all use a fixed color-ID (see LEGEND) when creating maps.

nature: <name>
    type: <type>
    view: <view>
    tune: <tune>
nature-end!

Parameters:

  • <name>: The name for the nature.
  • <type>: Parameters for the nature-object.
    • abilityWater=[y|n] If it can be placed on water (excludes beach-areas).
    • abilityEarth=[y|n] If it can be placed on dirt-tiles (i.e. non-water).
    • abilityBeach=[y|n] If it can be placed on beach-tiles (the water-part).
    • randomizable=[0,100] How likely the tile is to switch to a new place if the “randomize resource” option is selected (in percent!)
    • genPer1000000=[1,100000] For the random map generator: how many of the nature should be generated.
    • genPlacingType={Earth|Water|Grass} For the random map generator: where to place the nature.
    • genPlacingBloc={Rock|Hill|River|Palms|Pines} For the random map generator: where to place the nature.
    • genSpacing=[1,1000] For the random map generator: minimum spacing in tiles to other nature of the same type.
  • <view>: The graphics to be used.
  • <tune>: The file containing the sound effect (WAV is preferred for short sounds).

invent

Lists the research items & traits (i.e. Woodworking, Farming III, Trait Barbarian) to be used in the game.

invent: <name>
    desc: <desc>
    type: <para>
    view: <view>
invent-end!

Parameters:

  • <name>: The name of the invention/trait, e.g. “Mercantilism_III”.
  • <desc>: A short 1-3 sentence text describing the item.
  • <para>: Parameters for the invention such as:
    • advance=… The advance provided, e.g. 0,10,0,0,0
    • builable={y, n} If this item can be researched. If 'n' this item needs to be assigned to the nations. Usually a trait such as “Barbarians” which can not be researched.
    • buildExpenses=… The cost to research, e.g. 0:100 (where 0:<gold-amount>)
    • needsInvents=… Other research items required before this can be build, e.g. 1,2,3
  • <view>: Icon to be used.

planar

FIXME

objekt

FIXME

estate

Lists the available city/harbor-structures.

estate: <name>
    desc: <desc>
    type: <type>
    view: <view>
estate-end!

Parameters:

  • <name>: The name of the building.
  • <desc>: A short 1-2 sentence description for the building.
  • <type>: The parameters for the building.
    • output={matter-ID}:{amount}: Output provided if any.
    • advance=…: Advancement provided.
    • buildExpenses=…: Expenses needed to build the estate.
    • fieldExpenses=…: Costs that have to be paid every turn.
    • needsPlacementLand={y,n}: If 'y', then this structure can only be built in a city (non-harbor!).
    • needsPlacementAqua={y,n}: If 'y', then this structure can only be built in a harbor.
    • needsInvents={invent-ID},…: The inventions required to build the building.
    • needsEstates={estate-ID},…: Other estates that need to be present before this one can be build (please note other required estates need to be defined before this estate for the bundle-maker to work)
    • clearPossible={y,n}: If this building can be removed 'y', or cannot be remove 'n'.
    • clearOutcomes=…: Costs (negative) and gains (positive) if this building is removed.
  • <view>: Images to be used (non-snowy & snowy) and placement (x,y).

decree

Lists decrees that can be made available in a city/harbor (“civ”).

nation: <name>
    desc: <desc>
    type: <type>
    icon: <icon>
nation-end!

Parameters:

  • <name>: The name of the nation, e.g. “Roman_Empire”.
  • <desc>: A short 1-2 sentence description for the decree.
  • <type>: Describes the decree parameters as:
    • expenses=…: the cost to use the decree.
    • expensesPer1000000={y, n}: if the cost to use the decree is relative to 1'000'000 residents in the village harbor 'y' or absolute 'n'.
    • restrictionInit=…: Until which turn you can issue the decree. Turn refers to turns you have taken over the city. If this is 1, then the decree can only be issued at the turn right after you took the city/village.
    • restrictionNext=…: How many turns you have to wait until you can issue the decree again (after you used it the first time around).
    • needsInvents={invent-ID},…: The list of inventions you need to be able to issue the decree.
    • needsEstates={estate-ID},…: The list of city-buildings that are required to issue the decree.
    • outputHappiness=…: The change in happiness-% when issuing the decree.
    • outputResidents=…: The change in population size (in percent) when issuing the decree.
  • <icon>: Icon to be used (currently not used/ignore!).

league

Lists the groups for team-play (i.e. “Roman Alliance”).

nation: <name> <name-plural> <color>
    icon: <icon>
    flag: <flag>
nation-end!

Parameters:

  • <name>: The name of the group, e.g. “Unaffiliated”.
  • <name-plural>: The name of the group, e.g. “Unaffiliated_Nations”.
  • <color>: A 6-character color-value for the nation to be used for coloring units, overview map etc. For example ff0000 describes 'red'.
  • <icon>: Icon to be used.
  • <flag>: Flag to be used.

schema

Lists the available elements (i.e. swordsmen, villages, farms, bridges, etc.) to be used in the game.

schema: <name>
    spec: 
        <schema-spec>
    spec-end!
    view: 
        <schema-view>
    view-end!
    hear: 
        <schema-hear>
    hear-end!
    area:
        <schema-area>
    area-end!
schema-end!

Parameters:

  • <name>: The name of the schema, e.g. “War_Elephant”.
  • <schema-spec>: Technical specifications for a unit.
  • <schema-view>: Visuals to be used.
  • <schema-hear>: Sound effects to be used.
  • <schema-area>: This part is only used for settlements to define the layout of the city view. Leave out (including surrounding tags) if the unit is neither a harbor nor a village.

schema-spec

Describes the components available for a unit. Use a hash '#' to disable components not used.

spec:
    pos: <pos>
    own: <own>
    mov: <mov>
    arm: <arm>
    gen: <gen>
    bin: <bin>
    civ: <civ>
    out: <out>
spec-end!

Parameters:

  • <pos>: How a unit can be place on the map.
    • altitude=Base: Do NOT change.
    • abilityEarth={y, n}: Set to 'y' for land units.
    • abilityWater={y, n}: Set to 'y' for water units such as ships.
    • abilityBeach={y, n}: Set to 'y' for units, i.e. harbors that are placed on the beach (water-side).
  • <own>: A unit that can be owned by a player.
    • rangeDetection=[1, ∞): How far the unit can view (used for fog of war).
  • <mov>: A unit that can move around on the map.
    • actionPointsMax=[1, ∞): How far a unit can move. 10 action points correspond to about 1 tile. Forests/other will require more action points to traverse.
    • consumeCash=[1, ∞): Upkeep cost in cash/gold for the unit (used every turn).
    • consumeFood=[1, ∞): Food consumption per turn.
    • capturer={y, n}: Defines if a unit can take over/capture structures. Defaults to 'n' (e.g. ships).
    • distanceMax=[1, ∞): How far the unit can travel until it has to return to a host. Will be destroyed otherwise. Mainly used to limit ship movements. Leave out this variable if not used.
  • <arm>: The armaments/combat type of a unit, e.g. swordsman. Please have a look at Combat Math for details on combat functionality.
    • strengthMax=[1, ∞): The default maximum strength.
    • combat={combat-ID}: The combat modality (references the combat ID-number from above).
    • combatBonuses={combat-ID}:[-99, ∞),{combat-ID}:[-99, ∞), …: List all the combat bonuses of the unit against other units. Defaults to 0 if a combat modality is not listed.
    • rangeAttack=[1, 2]: The attack range of a unit. '1' is the neighbor tile (1 tile away). '2' for 2 tiles away.
    • weatherEffect=[-99, ∞): Combat-bonus/penalty when it is raining/snowing (in %).
    • frostedEffect=[-99, ∞): Combat-bonus/penalty when over snow (in %).
    • terrainEffect=[-99, ∞): Combat-bonus/penalty when in forest areas (in %).
    • concealEffect=[-99, ∞): Combat-bonus/penalty when hidden, e.g. in forests (in %).
    • campingEffect=[-99, ∞): Combat-bonus/penalty when encamped (in %).
    • offense={offense+}|{cost}|{action-points}|{invent-ID}: Equip with offense-capabilities.
      • offense+: % increase in combat-power while attacking.
      • cost: cost to equip with.
      • action-points: the action points required to equip with (for <mov>-able units only)
      • invent-ID: the invent-ID of the research required to enable equipment of capability.
    • defense={defense+}|{cost}|{action-points}|{invent-ID}: Equip with defense-capabilities.
      • defense+: % increase in combat-power while defending.
      • cost: cost to equip with.
      • action-points: the action points required to equip with (for <mov>-able units only)
      • invent-ID: the invent-ID of the research required to enable equipment of capability.
    • restore={strength+}|{cost}|{action-points}|{hosted}|{auto-repair}: Repair-parameters.
      • strength+: increase in strength when repaired
      • cost: cost to repair
      • action-points: the action points required to repair (for <mov>-able units only)
      • hosted: If repair is only possible when hosted 'y' or anywhere 'n'
      • auto-repair: How much a unit (e.g. city) will auto-repair itself (defines the strength-increase). Use 0 for no auto-repair.
  • <gen>: If enabled, a unit can be built by the player.
    • buildExpenses=[0, ∞): The cost in gold to build the unit.
    • buildResidents=[0, ∞): The population size required to build the unit.
    • buildPoints=[0, ∞): The number of action points that will be deducted from a unit after it has been built (only applies to moveable units such as a swordsman). Setting this number equal or higher than the maximum action points possible for a moveable unit will prevent this unit from being moved on the same turn.
    • needsNature={nature-ID}: The naturerequired. E.g. elephants to build a war elephant unit.
    • needsNatureRange=[1,∞): The amount of tiles away the nature must be. Leave out if nature must be on the same tile, like a mine/quarry.
    • needsInvents={invent-ID},{invent-ID}, …: The inventions required to build the unit.
    • needsEstates={estate-ID},{estate-ID}, …: The city structures required to build the unit.
  • <bin>: A settlement, bridge or farmland that allows to “host” other units.
    • hostableMax=[1, 8]: How many other units can be maximum hosted. This shall be '1' for bridges and farms but can be higher for transport ships, villages or harbors.
  • <civ>: A harbor or village.
    • decrees={decree-ID},…: The decree items that are available in the city/harbor.
    • placementLand={y, n}: This refers to “estate”-structures that can be built in the city. If 'y', then only structures with “needsPlacementLand” can be built.
    • placementAqua={y, n}: This refers to “estate”-structures that can be built in the city. If 'y', then only structures with “needsPlacementAqua” can be built.
    • largenessMax=…: The maximum population size that can live in the city/harbor (please use '8' for now).
    • pillage={%-income},{pillage-turns},{happiness-change}: Describes if a city/harbor can be pillaged. The %-income will gives the amount of commerce you receive (based on 1-turn == 100%). Pillage-turns refers to how many turns the city/harbor will be inaccessible to actions. Pillaging will also result in a happiness-change as listed.
  • <out>: A farm/mine/fishing boat/etc. producing output.
    • output={matter-ID}:{amount}: How much output is produced.
    • placing={nature-ID}: Which nature it has to be placed on to produce output.
    • temperatureMin=[-80, 70]: The minimum temperature for which output is produced.
    • temperatureMax=[-80, 70]: The maximum temperature for which output is produced.
    • groundwaterMin=[0, 100]: The minimum groundwater level for which optimal output is produced.
    • groundwaterMax=[0, 100]: The maximum groundwater level for which optimal output is produced.
    • droughtEffect=[0, 100]: How much output is produced in percent during a drought (e.g. 25 means 25% of optimal output during a drought).
    • enlarges={+%}|{cost}|{invent-ID}→…: If and how it can be upgraded.

schema-view

The schema-view lists all the imagery to be used for troops, settlements, bridges etc. The first parameter right after “view: …” describes what imagery will be provided:

  • animation: will provide images for IDLE ('0'), MOVEMENT('1') and BATTLE('2')
  • direction: will provide directional images: 0° ('0'), 60° ('1'), 120° ('2'), 180° ('3'), 240° ('4'), 300° ('5').
  • snowy: will provide snowy & non-snowy images: non-snowy ('0') and snowy ('1').

Once the type of imagery is selected, ALL the combinations need to be provided below. If “view: animation direction” was chosen for example, the following items are required. Please note the numbers related to the display-aspect chosen, i.e. the first number relates to “animation” and the second to “direction”.

  • 0-0: IDLE at 0°
  • 0-1: IDLE at 60°
  • 0-2: IDLE at 120°
  • 0-3: IDLE at 180°
  • 0-4: IDLE at 240°
  • 0-5: IDLE at 300°
  • 1-0: MOVEMENT at 0°
  • 1-1: MOVEMENT at 60°
  • 1-2: MOVEMENT at 120°
  • 1-3: MOVEMENT at 180°
  • 1-4: MOVEMENT at 240°
  • 1-5: MOVEMENT at 300°
  • 2-0: BATTLE at 0°
  • 2-1: BATTLE at 60°
  • 2-2: BATTLE at 120°
  • 2-3: BATTLE at 180°
  • 2-4: BATTLE at 240°
  • 2-5: BATTLE at 300°

For each combination the following has been specified:

<image>[|<imageCC>] (<dx>,<dy>,<dB>,<dF>) hud(<hudL>,<hudR>,<hudX>,<hudY>) bin(<binS>,<binP>,<binY>) [| <anim>]

Key:

  • <image>: the regular troop/etc. image.
  • <imageCC>: optional image providing color-coding for the unit.
  • <dx>: x-offset of the unit on the tile.
  • <dy>: y-offset of the unit on the tile.
  • <dB>: if blocky-items (e.g. mountains) shall be shown underneath the unit.
  • <dF>: if nature-items (e.g. trees) shall be shown underneath the unit.
  • <hudL>: where the unit HUD shall be displayed: 0=back, 1=behind hosted units, 2=in front hosted units, 3=in front
  • <hudR>: orientation of unit HUD: n=north, w=west, e=east.
  • <hudX>: x-offset for unit HUD.
  • <hudY>: y-offset for unit HUD.
  • <binS>: ONLY for transports/cities/etc. where units are hosted within: scale-factor in percent for showing a hosted unit.
  • <binP>: ONLY for transports/cities/etc. where units are hosted within: directional-offset while showing the hosted unit.
  • <binY>: ONLY for transports/cities/etc. where units are hosted within: y-offset while showing the hosted unit.
  • <anim>: optional animation: see Asset Specifications for details.

schema-hear

FIXME

schema-area

FIXME

moduleconfig.txt · Last modified: 2015-12-18 06:15 by noblemaster