← Docs

Number mods

Change the values of units, pilots and weapons — HP, armor, stats, terrain ranks, special abilities, skills, spirits, weapon power and range — by number. With how battles combine terrain and when changes take effect.

Updated 2026-10-27

A number mod changes values of the units, pilots and weapons themselves. Everything that reads them follows: battle results, the status screens, the library.

To skip writing JSON by hand, use the Number mod maker: pick units, pilots and weapons on the page, change their values and export a .srw64mod. Numbers are in the unit, pilot and weapon ID tables.

Installing and managing packages: MOD packages. Terrain ranks work from 0.5.1; the other fields need 0.5.2 or later.

What goes in the package

yourname.balance/
  mod.json
  data/
    units.json      units, by unit number
    pilots.json     pilots, by pilot number
    weapons.json    weapons, by weapon number

Any of the three files will do. mod.json is written as for any package.

How to write them

{
  "184": { "hp": 5200, "armor": 1300, "terrain": { "sea": "A" } },
  "262": { "terrain": { "space": "A" }, "abilities": ["i_field"] }
}
  • The top-level keys are numbers, plain decimals without leading zeros: unit numbers in units.json, pilot numbers in pilots.json, weapon numbers in weapons.json. Look numbers and original values up in the ID table.
  • Under each number write only the fields you change; the rest stay as they are.
  • When several packages change the same thing, the one higher in the MOD list wins.

The rules are strict: an unknown field, a value out of range or a number out of range is an error, and one error leaves the whole file out. The game log then has a SRW64_MOD_DATA_PROBLEM line naming the package, the file and the reason.

Units (units.json)

Field Meaning Range
hp, en max HP, EN HP 1–65535, EN 0–65535
move movement 1–30
mobility, armor, limit mobility, armor, limit 0–65535
repair_cost repair cost 0–65535
upgrade_cap upgrade limit 0–15
terrain terrain ranks, see below
size size SS, S, M, L, LL
shield, sword carries a shield, a sword (for shield defense and parrying) true or false
parts_slots part slots 0–4
abilities special abilities, the whole list: anything not in it is removed see below

Ability keys:

Key Ability Key Ability
beam_coat Beam Coat mach_special Mach Special
i_field I-Field true_mach_special Shin Mach Special
planet_defensor Planet Defensor god_shadow God Shadow
aura_barrier Aura Barrier getter_vision Getter Vision
afterimage Afterimage shungensoku Phantom Step
hyper_jammer Hyper Jammer hp_regen_10, hp_regen_20 HP Regen 10%, 20%

Transform, Combine and Separate cannot be added or removed by a mod: they need the forms behind them. A unit that has them keeps them.

Pilots (pilots.json)

Field Meaning Range
melee, ranged, evade, hit, reaction, skill the six stats at level 1 0–255
sp max SP at level 1 0–255
double_move the level from which the pilot acts twice a turn 0–99
terrain terrain ranks, see below
skills skills, see below
spirits spirits, see below

The stats are the level-1 values; each level adds what the original does (melee, ranged, reaction, skill +1; evade, hit +2; SP +2).

Skills are written as a skill key and the levels at which it is learned: the Nth number is the level for L N, at most nine, ascending. null removes the skill:

{ "133": { "skills": { "newtype": [1, 4, 8, 12, 18, 24, 30, 38, 45], "parry": null } } }
Key Skill Key Skill
newtype Newtype esp ESP
enhanced Enhanced potential Potential
holy_warrior Holy Warrior parry Parry
shield_defense Shield Defense

Newtype, Enhanced, Holy Warrior, ESP and Potential share one row of levels in the original, so a pilot has one of them at most; writing one replaces the other. Skills you do not write stay as they are.

Spirits are the whole list: at most six entries, each [spirit key, level learned], levels ascending:

{ "133": { "spirits": [["focus", 1], ["guts", 5], ["valor", 12], ["soul", 40]] } }

Spirit keys: self_destruct Self-Destruct, scout Scan, accel Accel, mercy Mercy, focus Focus, alert Flash, guts Vigor, strike Bullseye, trust Trust, wall Wall, cover Cover, valor Valor, spirit Spirit, great_guts Guts, luck Fortune, drain Daunt, effort Gain, soul Soul, stealth Stealth, awaken Zeal, refuel Resupply, provoke Taunt, encourage Rouse, disrupt Disrupt, friendship Faith, love Love, reactivate Enable, miracle Miracle, prayer Prayer, revive Revive.

Weapons (weapons.json)

Field Meaning Range
power power before upgrades 0–25500, a multiple of 100
range_min, range_max minimum and maximum range min 0–30, max 1–30, min not above max
hit hit modifier -128–127
critical critical modifier -128–127
ammo ammo, -1 for none -1–99
en EN cost 0–255
morale morale required 0–255
terrain the weapon’s own terrain ranks
attack melee or ranged: which pilot stat it uses, and the 格/射 before the name melee or ranged
post_move whether it can be used after moving (the P after the name) true or false
beam whether it is a beam (the B after the name; I-Fields, Beam Coats and Planet Defensors stop only beams) true or false
parryable whether it can be parried true or false
terrain_at whose square the weapon’s own terrain rank is judged on attacker or target
requires the requirement the status screen shows as 必要技能, see below a key or null
upgrade_type upgrade type: 0 cannot be upgraded, 1–4 are the power growth rows (2 and 3 share a row and differ only in price) 0–4
locked hidden from the list until a story unlock (the original’s Sekiha Tenkyoken, Dankuu Kougaken and so on; a story mod’s unlock, or the original’s full-upgrade table, unlocks it) true or false

attack, post_move, beam, parryable, terrain_at, requires, upgrade_type and locked need 0.5.3 or later. A map weapon cannot be made or unmade: its shape sits in a table of only 51 weapons. Neither can a combination attack.

To make a weapon usable after moving, write post_move: true. The Nu Gundam’s (50) Fin Funnels (209), for example, can only be fired from a standstill in the original; with this they fire after a move too, and a P appears after the name in the weapon list. false does the reverse and takes the P away. The 格/射, P and B around the name follow these fields, so there is no name to edit:

{ "209": { "post_move": true },
  "731": { "attack": "melee", "beam": true, "requires": "newtype" } }

The requires keys, and what the original status screen prints for them:

Key Requirement Shown Key Requirement Shown
null none newtype Newtype or Enhanced L1 or more NT1
ally our side only newtype_4 Newtype or Enhanced L4 or more NT4
hyper_mode the pilot is in Hyper Mode / Super Mode 明鏡 holy_warrior Holy Warrior L1 or more 聖戦1
super_mode the same, printed differently Sモード holy_warrior_3 Holy Warrior L3 or more 聖戦3
level_10 … level_45 pilot level 10 / 15 / 20 / 25 / 30 / 35 / 45 or more LV10 … LV45 v_max, v_max_red V-MAX / its red power is active V-MAX

Upgrades add power as in the original. A weapon carried by several units changes on all of them; the ID table’s “Carried by” column lists them.

Terrain ranks (terrain)

Write only the terrains you change: air, land, sea, space, with A, B, C, D or -. The others stay as they are. Units, pilots and weapons all use this.

How battles combine terrain

A unit’s rank in battle is the unit’s rank plus the pilot’s rank, then banded:

Rank A B C D -
Points 4 3 2 1 0
Sum 8 or more 6–7 4–5 1–3 0
Counts as A (120%) B (100%) C (80%) D (60%) - (0%)

The attacker’s attack power and the defender’s armor are each multiplied by their own rate. So when the unit is already A, only the pilot can make it A in battle. GoShogun (184) is A in space and Shingo (133) is B: 7 together, which the original counts as B. Raise Shingo’s space to A and it is A.

A weapon’s own terrain rank only depends on the weapon and multiplies once more.

When changes take effect

No restart is needed after installing, enabling or disabling a package. The game keeps none of these values in memory and reads them again whenever it needs them, so:

  • When a save loads (an intermission save or a suspend save in a stage alike), every unit, weapon and pilot is rebuilt from the packages enabled now. Load with the package on and you get the new values; disable it and load again and they are back to the original. The save itself is never changed.
  • Unit values, and a weapon’s power, max range and air rank, update on entering the map or the intermission.
  • A weapon’s other fields and everything about a pilot need a load (or a new game); a pilot also updates on leveling up. If you switch packages inside a stage, save and load.
  • The library shows the changed values too.

Shared records

Some pilots share one ability record (stats, terrain, skills), mostly other numbers of the same character (Domon’s 4, 273 and 274, for example). Changing one changes all of them; the ID table’s “Shares its record with” column lists them. Spirits have their own records, which can be shared as well.

Entries with the same name are different numbers: a transformed form, an enemy copy, a story-only one. Check the original values before you change one.

Example

The example package “Main Cast: Space A” can be downloaded from the MOD page; its source is config/recomp/mods/space-a. It raises space to A for the 20 pilots and 21 units of the main cast below A there: the Mazinger team, Combattler V, Getter-3, GoShogun, Giant Robo, the Dunbine cast, Guncannon, Guntank and more.

The example package “Funnels Usable After Moving” shows the weapon attributes, on the same MOD page with its source in config/recomp/mods/funnels-p: one line of post_move: true for each of nine funnel and bit weapons; it needs 0.5.3 or newer.

Names and portraits: Name and portrait mods.

Let an AI write it

The repository’s docs/guide/data-mods/ folder has the format and the unit, pilot and weapon tables as CSV. Hand the whole folder to an AI assistant and ask it for the units.json, pilots.json and weapons.json you want.