%APPDATA%\Godot\app_userdata\Mega Man X Regenesis\MISSION FILE / SAVE-69
Save Files, Backups & Fields
Back up the entire user-data directory before changing anything. v1.00.61 exposes 69 main-save fields and 80 persistent fields across all schemas; this page reads documentation only and never uploads or edits your files.
BACKUP FIRST
Copy the directory, not just one slot
Keep a dated copy somewhere outside the live folder. Main progress, achievements, input settings and speed-run time use separate files.
Save-data directories
Godot's user:// location depends on the platform. These community paths remain labeled until device-tested.
~/.local/share/godot/app_userdata/Mega Man X Regenesis//Android/data/com.example.megamanxregenesis/data/6 code-level save targets
The extension alone does not tell you the storage format.
Main slots and achievements end in .json, but v1.00.61 writes them with Godot's binary store_var() format. Opening them in a text editor will not produce normal JSON.
| Target | Filename | Schema | Format | Note |
|---|---|---|---|---|
| main slot 1 | MMXSaveSlot1.json | main save | Godot variant binary | Despite the .json extension, save() uses FileAccess.store_var(). |
| main slot 2 | MMXSaveSlot2.json | main save | Godot variant binary | Despite the .json extension, save() uses FileAccess.store_var(). |
| main slot 3 | MMXSaveSlot3.json | main save | Godot variant binary | Despite the .json extension, save() uses FileAccess.store_var(). |
| input slot 1 | MMXInputSettingsSlot1.json | input settings | JSON text | Global input mapping file; no longer tied to an individual save slot. |
| speed run | MMXSpeedRunTime.json | speed run | JSON text | Contains best_speed. |
| achievements | MMXAchievements.json | achievements | Godot variant binary | Despite the .json extension, achievement state uses FileAccess.store_var(). |
v1.00.61 uses one global input-binding file. Bindings are no longer tied to an individual progress slot and are not reset when a save slot is reset.
Dynamic actions and serialized input events
Each action name maps to an event array. Keyboard keys, controller buttons and controller axes use the fields below when that event type applies.
| Field pattern | Type | Purpose |
|---|---|---|
* | array | Dynamic InputMap action name; value is an array of serialized events. |
*[].type | string | InputEventKey, InputEventJoypadButton, or InputEventJoypadMotion. |
*[].physical_keycode | integer | Present for keyboard events. |
*[].button_index | integer | Present for joypad button events. |
*[].axis | integer | Present for joypad motion events. |
*[].axis_value | number | Present for joypad motion events. |
How v1.00.61 calculates completion
The completion result is weighted and rounded; it is not a simple count of every stored field.
Each listed level-completion flag carries a weight of 3 before the game-beaten rule is applied.
All 160 chips contribute 8 weighted units—one unit per 20 chips.
The completed weighted total is divided by the available weighted total, multiplied by 100 and rounded to the nearest integer.
round((completed weighted items + collected chips / 20) / available weighted items × 100)When game_beaten is true, the 12 level flags are removed from the weighted calculation. The game_beaten field itself is also excluded.
What raises completion
| Group | Qty | Contribution |
|---|---|---|
| Level clears | 12 | 3 units each until game_beaten |
| Boss weapon unlocks | 8 | 1 unit each |
| Heart Tanks | 8 | 1 unit each |
| Energy Tanks | 4 | 1 unit each |
| System upgrades + Hadouken | 9 | 1 unit each |
| Data Chips | 160 | 1 unit per 20 chips |
Show the exact included save flags
intro_level_completeair_level_completefire_level_completetrain_level_completewater_level_completesnow_level_completedesert_level_completespace_level_completeswamp_level_completesigma_level_1_completesigma_level_2_completesigma_level_3_completeweapon_unlocked_fireweapon_unlocked_airweapon_unlocked_waterweapon_unlocked_snowweapon_unlocked_trainweapon_unlocked_spaceweapon_unlocked_desertweapon_unlocked_swampheart_airheart_fireheart_trainheart_waterheart_snowheart_desertheart_spaceheart_swampetank_snowetank_wateretank_airetank_spaceleg_upgradeleg_upgrade2arm_upgradehelmet_upgradechest_upgradechest_upgrade2buster_upgradebuster_upgrade2hadouken_upgradeWhat does not raise completion
| Group | Qty | Examples |
|---|---|---|
| Current inventory and tank fill | 10 | hearts, etanks |
| Difficulty, controls and display settings | 9 | difficulty, language |
| Statistics and speedrun values | 7 | speedrunning, total_deaths |
| Metadata and final-state flags | 2 | save_file_exists, game_beaten |
Show the exact excluded save fields
heartsetankschipschips_spentlivesmax_healthetank1_healthetank2_healthetank3_healthetank4_healthdifficultylanguagehaptic_feedbackenvironment_particlesset_music_volumeset_sfx_volumedouble_tap_dashenable_weapon_wheelglobal_lights_onspeedrunningtotal_deathstotal_killstotal_standard_shotstotal_standard_charge_shotstotal_special_weapon_shotstotal_special_weapon_charge_shotssave_file_existsgame_beatenThe stored chips total is marked as a raw inventory value because it is handled separately by the formula. It still contributes up to 8 weighted units. game_beaten changes the denominator but does not add a completion unit itself.
double_tap_dashDefault: falseExcluded from completionSaved control preference; it does not inflate completion.
enable_weapon_wheelDefault: trueExcluded from completionSaved control preference; it does not inflate completion.
global_lights_onDefault: trueExcluded from completionNew persisted global-lighting preference.
game_beatenDefault: falseExcluded from completionNew completion-state field used to refine the final percentage.
Search 69 main-save fields
Search stays in your browser. Analytics, if later connected, receives query length only—never the text.
69 OF 69 MAIN-SAVE FIELDS
| Field | Type | Default | Category | Completion |
|---|---|---|---|---|
save_file_exists | boolean | false | metadata | No |
intro_level_complete | boolean | false | stage_completion | Yes |
air_level_complete | boolean | false | stage_completion | Yes |
fire_level_complete | boolean | false | stage_completion | Yes |
train_level_complete | boolean | false | stage_completion | Yes |
water_level_complete | boolean | false | stage_completion | Yes |
snow_level_complete | boolean | false | stage_completion | Yes |
desert_level_complete | boolean | false | stage_completion | Yes |
space_level_complete | boolean | false | stage_completion | Yes |
swamp_level_complete | boolean | false | stage_completion | Yes |
sigma_level_1_complete | boolean | false | other | Yes |
sigma_level_2_complete | boolean | false | other | Yes |
sigma_level_3_complete | boolean | false | other | Yes |
weapon_unlocked_fire | boolean | false | weapon_unlock | Yes |
weapon_unlocked_air | boolean | false | weapon_unlock | Yes |
weapon_unlocked_water | boolean | false | weapon_unlock | Yes |
weapon_unlocked_snow | boolean | false | weapon_unlock | Yes |
weapon_unlocked_train | boolean | false | weapon_unlock | Yes |
weapon_unlocked_space | boolean | false | weapon_unlock | Yes |
weapon_unlocked_desert | boolean | false | weapon_unlock | Yes |
weapon_unlocked_swamp | boolean | false | weapon_unlock | Yes |
heart_air | boolean | false | heart_tank_collectible | Yes |
heart_fire | boolean | false | heart_tank_collectible | Yes |
heart_train | boolean | false | heart_tank_collectible | Yes |
heart_water | boolean | false | heart_tank_collectible | Yes |
heart_snow | boolean | false | heart_tank_collectible | Yes |
heart_desert | boolean | false | heart_tank_collectible | Yes |
heart_space | boolean | false | heart_tank_collectible | Yes |
heart_swamp | boolean | false | heart_tank_collectible | Yes |
etank_snow | boolean | false | energy_tank_collectible | Yes |
etank_water | boolean | false | energy_tank_collectible | Yes |
etank_air | boolean | false | energy_tank_collectible | Yes |
etank_space | boolean | false | energy_tank_collectible | Yes |
leg_upgrade | boolean | false | upgrade_unlock | Yes |
leg_upgrade2 | boolean | false | upgrade_unlock | Yes |
arm_upgrade | boolean | false | upgrade_unlock | Yes |
helmet_upgrade | boolean | false | upgrade_unlock | Yes |
chest_upgrade | boolean | false | upgrade_unlock | Yes |
chest_upgrade2 | boolean | false | upgrade_unlock | Yes |
buster_upgrade | boolean | false | upgrade_unlock | Yes |
buster_upgrade2 | boolean | false | upgrade_unlock | Yes |
hearts | integer | 0 | inventory | No |
etanks | integer | 0 | inventory | No |
chips | array | [] | inventory | No |
chips_spent | integer | 0 | inventory | No |
lives | integer | 2 | inventory | No |
difficulty | string | normal | settings | No |
language | string | en | settings | No |
haptic_feedback | boolean | true | settings | No |
environment_particles | boolean | true | settings | No |
max_health | integer | 16 | inventory | No |
etank1_health | integer | 0 | energy_tank_state | No |
etank2_health | integer | 0 | energy_tank_state | No |
etank3_health | integer | 0 | energy_tank_state | No |
etank4_health | integer | 0 | energy_tank_state | No |
set_music_volume | number | -6.5 | settings | No |
set_sfx_volume | number | -2.0 | settings | No |
speedrunning | boolean | false | speedrun | No |
total_deaths | integer | 0 | statistics | No |
total_kills | integer | 0 | statistics | No |
total_standard_shots | integer | 0 | statistics | No |
total_standard_charge_shots | integer | 0 | statistics | No |
total_special_weapon_shots | integer | 0 | statistics | No |
total_special_weapon_charge_shots | integer | 0 | statistics | No |
double_tap_dash | boolean | false | settings | No |
hadouken_upgrade | boolean | false | upgrade_unlock | Yes |
enable_weapon_wheel | boolean | true | settings | No |
global_lights_on | boolean | true | settings | No |
game_beaten | boolean | false | completion_state | No |
05 / RECOVERY BOUNDARY
Documentation is not an automatic repair tool
A current community report describes progression corruption when a boss and X die at the same time. The field dictionary can help identify what the game stores, but it cannot guarantee that editing a binary save will recover it. Restore a backup whenever possible.