Difference between revisions of "Rulesets (OpenXcom)"
Line 61: | Line 61: | ||
== Reference == | == Reference == | ||
− | A reference of all the customizable values of everything in a ruleset. If a value is omitted, the default is used | + | A reference of all the customizable values of everything in a ruleset. Some guidelines: |
+ | * If a value is omitted from the ruleset, the default is used. You cannot omit ''required'' values. | ||
+ | * Text strings (eg. names) are represented by string IDs from the [Translations (OpenXcom)|language files] | ||
+ | * Numerical IDs (used for sprites, sounds, etc.) start at 0, not 1. | ||
+ | * World coordinates are represented in degrees (see [[WORLD.DAT]]). | ||
+ | * Money amounts (prices, costs, etc.) are in dollars. | ||
=== Countries === | === Countries === | ||
− | + | Defines one of the funding nations countries, listed in ''"countries:"''. They're used for activity graphs and player scoring. | |
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
Line 90: | Line 95: | ||
0.0 | 0.0 | ||
|- | |- | ||
− | | ''' | + | | '''areas''' |
− | ''' | + | | A list of "square areas" on the globe defined as [''lon1'' ''lat1'' ''lon2'' ''lat2''], in degrees. Any activity within these areas counts towards the country's graph activity and affects their opinion of the player. |
− | + | | - | |
− | | | ||
|} | |} | ||
=== Regions === | === Regions === | ||
+ | |||
+ | Defines one of the world regions, listed in ''"regions:"''. They're used for base placement, activity graphs and mission spawning. | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
Line 103: | Line 109: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
+ | |- | ||
+ | | '''cost''' | ||
+ | | Total cost for placing an X-COM base in this region. | ||
+ | | 0 | ||
+ | |- | ||
+ | | '''areas''' | ||
+ | | A list of "square areas" on the globe defined as ''[lon1, lat1, lon2, lat2]'', in degrees. Any activity within these areas counts towards the region's graph activity. | ||
+ | | - | ||
+ | |- | ||
+ | | '''cities''' | ||
+ | | A list of cities belonging to this region. They will be displayed on the globe and used for terror site missions. Each city is defined by their '''lon''' and '''lat''' coordinates (degrees) and a '''name''' string ID. | ||
+ | | - | ||
+ | |- | ||
+ | | '''regionWeight''' | ||
+ | | Weight of this region when selecting regions for alien missions. | ||
+ | | 0 | ||
+ | |- | ||
+ | | '''missionWeights''' | ||
+ | | Weighted list of the different mission types for this region (eg. ''STR_ALIEN_RESEARCH: 14''). | ||
+ | | - | ||
|- | |- | ||
+ | | '''missionZones''' | ||
+ | | List of square areas (''[lon1, lat1, lon2, lat2]'') defining the mission zones for this region. | ||
+ | | - | ||
+ | |- | ||
+ | | '''missionRegion''' | ||
+ | | Spawn mission in this region instead (used for regions without land). | ||
+ | | - | ||
|} | |} | ||
=== Base Facilities === | === Base Facilities === | ||
+ | |||
+ | Defines one of the facilities that can be built at an X-COM base. | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
Line 116: | Line 151: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 129: | Line 164: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 142: | Line 177: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 155: | Line 190: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 167: | Line 202: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 180: | Line 215: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 193: | Line 228: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 206: | Line 241: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 219: | Line 254: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 232: | Line 267: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 245: | Line 280: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 258: | Line 293: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 271: | Line 306: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 284: | Line 319: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 297: | Line 332: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 311: | Line 346: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 325: | Line 360: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
Line 338: | Line 373: | ||
! Default | ! Default | ||
|- | |- | ||
− | | ''' | + | | '''type''' |
− | | | + | | String ID of the region name. |
− | | | + | | ''required'' |
|- | |- | ||
|} | |} | ||
[[Category:OpenXcom]] | [[Category:OpenXcom]] |
Revision as of 00:27, 6 September 2013
In OpenXcom a ruleset is an easy to edit text file that contains settings (rules) that describe almost everything about how the game operates. Here are just some of the things that are in the ruleset:
- The costs, stats and characteristics of all items, units, facilities, X-COM craft and UFOs
- Dependencies and costs for research, manufacture and UFOpedia
- Your starting base
- The costs of personnel and transfer time.
- The stats of the funding countries and regions of the world.
You can find the rulesets in your Data\Ruleset folder.
Editing Rulesets (YAML)
OpenXcom exposes its inner workings to users and modders in the form of YAML text files. Although YAML can be edited with any text editor, such as Notepad, it is much easier to use a dedicated YAML editor. YAML has a special syntax so any incorrect whitespace or character can cause an error, but it's a simple human-readable format so you should be able to figure it out by looking at the existing rulesets.
Notepad++
You can open any rulesets (or savegame files) in Notepad++ and select Language>YAML. This will help you keep the proper tabbing structure and also allow you to collapse large regions. You can set Notepad++ to recognize *.rul, *.sav and *.cfg files as YAML file extensions under preferences so that you don't have to set the language every time you edit one of OpenXcom's files.
Can't Notepad++?
Alternatively you could conjure up a Google search and look for YAML editors that are compatible with your OS. There are YAML plugins for both Visual Studio and Eclipse. Yedit for Eclipse is popular.
- Note: You should be able to collapse regions in whatever YAML editor you use. If not, you're in for a lot of scrolling as the files are quite large.
Your First Edit (Cheat)
- Open the Data\Ruleset\Xcom1Ruleset.rul file in your YAML editor.
- Collapse everything (Alt-0 in Notepad++) and then open (uncollapse) the "facilities:" section.
- Open "- type: STR_LIVING_QUARTERS"
- change "personnel: 50" to "personnel: 500"
- Congratulations! You can now have 500 personal per living quarters.
A couple other examples
1. Fusion Ball Launcher balance update: Let's make something other than plasma cannons useful
- change "craftWeapons:" -> "type: STR_FUSION_BALL_UC>" -> "ammoMax: 2" to "ammoMax: 6"
- change "craftWeapons:" -> "type: STR_PLASMA_BEAM_UC>" -> "range: 52" to "range: 40" (just inside a terror-ships range)
- set the range for Laser Cannons to 34 (same as large scout) and set Stingray and avalanche ranges even shorter
- Now there's a reason to build Fusion-Ball Launchers - shoot down Battleships and Terrorships, there's also a reason for Plasma Beams - shoot down Supply Ships and Large Scouts without getting hit, and a reason for Laser Cannons - shoot down Harvesters or Abductors safely and shoot down Large Scouts at equal range.
2. Sectopod Buff: It's time to put the fear of Sectopod in those power-suit/hovertank squads that think Ethereal Terrorsites are some kind of joke!
- "units:" -> "- type: STR_SECTOPOD_TERRORIST" -> "stats:" set TUs to 110, stamina to 125, Firing Accuracy to 100, Psi-Strength to 160 and health to 135.
- Note the field "armor: SECTOPOD_ARMOR". So close "units:" and open "armors:" -> "type: SECTOPOD_ARMOR"
- Set rear armor to 130 (a sectopod has a finely armored buttox, thankyou).
- Open "damageModifier:" (its part of the armor) and find a "- 1.5" and a "- 0.8" just below it. These are the values for how much damage a unit wearing sectopod armor takes from laser(1.5x) and plasma(0.8x). Increase the laser bonus to 1.8 and reduce the plasma further to 0.65 (it's now actually worth it to bring laser weapons just for the sectopods)
- Close "armors:" and open "items:" -> "type: SECTOPOD_WEAPON" and let's give it a good 145 weapon power. No need to adjust the weapon accuracy since we already increased the stat.
- Now you can go back to having nightmares about Sectopods, just like you did when you were a young child who got in trouble for playing X-COM on the family computer after bed-time when you hadn't even done your homework.
3. Early Blaster: The best time to have a Blaster Launcher is in the back of a Skyranger full of rookies.
- Go to "items:" and pick anything that's purchasable. Copy the line with "costBuy:" and a number. Make sure you copy the tabs before "costBuy:". The best way to do this is to put the cursor at the end of the line above it, shift-down-arrow and shift-end to select the entire line and the line-break characters.
- Go to "type: STR_BLASTER_LAUNCHER" and add the "costBuy:" line. If the new line your adding doesn't look like the other lines in your YAML editor (like if it's red or black text instead of blue) then it's probably wrong and you probably have incorrect tab or line-break characters in it.
- Remove the section "required:"
- Do the last two things for Blaster Bombs as well.
- Open "startingBase:" -> "lon: 0.0" -> "items:" and replace "STR_CANNON" and "STR_CANNON_ROUNDS_X50" with "STR_BLASTER_BOMB" and "STR_BLASTER_LAUNCHER"
- Start a new game, load up blasters on your skyranger, and land by a medium scout. Now hit the side of the medium scout with one shot to make a hole, hit that silly glowy thing in the middle with the second shot. Voilà, that rookie killing death-trap is now just like a crash-site, except with even less live aliens inside.
Modular Rulesets
External Links
Reference
A reference of all the customizable values of everything in a ruleset. Some guidelines:
- If a value is omitted from the ruleset, the default is used. You cannot omit required values.
- Text strings (eg. names) are represented by string IDs from the [Translations (OpenXcom)|language files]
- Numerical IDs (used for sprites, sounds, etc.) start at 0, not 1.
- World coordinates are represented in degrees (see WORLD.DAT).
- Money amounts (prices, costs, etc.) are in dollars.
Countries
Defines one of the funding nations countries, listed in "countries:". They're used for activity graphs and player scoring.
Value | Description | Default |
---|---|---|
type | String ID of the country name. | required |
fundingBase | The country's base funding, in thousands. The starting funding can be anywhere between 1x and 2x the base funding. | 0 |
fundingCap | The country's funding cap, in thousands. Once a country reaches this maximum, it will no longer increase its funding. | 0 |
labelLon
labelLat |
The longitude and latitude of the country's label on the globe, in degrees. This label is only shown when the globe is zoomed in and "detail" is turned on. | 0.0
0.0 |
areas | A list of "square areas" on the globe defined as [lon1 lat1 lon2 lat2], in degrees. Any activity within these areas counts towards the country's graph activity and affects their opinion of the player. | - |
Regions
Defines one of the world regions, listed in "regions:". They're used for base placement, activity graphs and mission spawning.
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
cost | Total cost for placing an X-COM base in this region. | 0 |
areas | A list of "square areas" on the globe defined as [lon1, lat1, lon2, lat2], in degrees. Any activity within these areas counts towards the region's graph activity. | - |
cities | A list of cities belonging to this region. They will be displayed on the globe and used for terror site missions. Each city is defined by their lon and lat coordinates (degrees) and a name string ID. | - |
regionWeight | Weight of this region when selecting regions for alien missions. | 0 |
missionWeights | Weighted list of the different mission types for this region (eg. STR_ALIEN_RESEARCH: 14). | - |
missionZones | List of square areas ([lon1, lat1, lon2, lat2]) defining the mission zones for this region. | - |
missionRegion | Spawn mission in this region instead (used for regions without land). | - |
Base Facilities
Defines one of the facilities that can be built at an X-COM base.
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Crafts
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Craft Weapons
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Items
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
UFOs
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Inventory Slots
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Terrains
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Armor
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Soldiers (X-COM Units)
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Enemy / Neutral Units
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Alien Races
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Alien Deployments
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Research
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Manufacture
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
UFOpaedia Entry
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
UFO Trajectories
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Alien Missions
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |
Alien Item Levels
Value | Description | Default |
---|---|---|
type | String ID of the region name. | required |