Character Editor - S9-L/FMWSaveManager GitHub Wiki
Overview
The Character Editor controls all save information linked to the character status screen. Just like the Unit Editor, you have full freedom to edit a myriad of character data properties, like character addition/removal, editing invested stat points, character levels, and current PP. Special mention will be given to the dedicated skill editor; once you handle this properly, you can run any combination of skills for any character in the game.

Using the Character Editor
Character Info
You can sort the character names in alphabetical order by toggling the A-Z Sort checkbox. This checkbox status is locally saved for the application even after it is closed.
Char Name
Change the name of the currently selected character. This will immediately update the internal data, but the list entry UI will only update after selecting another character in the list.
If you change the character name while the list is sorted, you will need to re-toggle the A-Z Sort option for the new name to be sorted properly.
[!CAUTION] The game may crash upon loading a save if you've changed certain character names into entries that do not match the expected character list set per chapter in
Data_IsIN. Be careful when making changes here.
Char ID
Change the internal Char ID of the currently selected character. This lets you modify the character version to be any other existing character version in the data_char_all file. This is a powerful option that's most useful for modding or combining various unit and character versions together.
Add/Remove
You can add or remove character entries in the list. Adding a new character will add another list entry with the name NewChar and Char ID NewChar00 to the end of the list. Removing a character will erase the currently selected character from the list.
This has similarly powerful use cases like the Unit Editor. Though, make sure you add valid characters defined in data_char_all or in an addOn. This will ensure that the game character data remains stable and doesn't run into an unexpected crash.
Level and EXP
Change the character's level or internal EXP value. These two fields are linked together to give an intuitive and precise way of editing the character EXP state.
Every change in the Level field increments/decrements the EXP field by a multiple of 500 EXP. Conversely, modifying the EXP value above or below a multiple of 500 will adjust the Level field to the rounded-down quotient of current_EXP_val/500, with the remainder contributing towards a portion of the EXP bar.
Current PP
Edit the selected character's current PP used to learn generic skills and invest in stat bonuses. This field is linked to the Total PP label that includes all cumulative PP that a character has obtained so far, including those already invested in stat bonuses and generic skills. For the most part, Total PP is tracked so that the game knows how much PP to refund when characters are reinitialized in NG+.
[!IMPORTANT] This field is not linked to the PP Carryover field in the NG+ Carryover Editor. That property is handled separately to ensure carryover PP does not inflate when editing a character's current PP.
Kills
Edit the selected character's current Kills. As a reminder, 50 or more Kills bestow Ace status on a character; this is primarily used in vanilla for extra NG+ conversations in the Intermission Lounge.
On modded versions, there are also 2 extra bonuses for Kill totals restored from the original FMW games: Ace Bonus and Top Ace Bonus. Ace Bonus gives +5 initial Power for any character that has 50 or more Kills, while Top Ace Bonus gives an additional +5 Power for the character that has the greatest Kill total.
Current WP
Edit the selected character's invested Ex-P/WP total that determines the Ex-P/WP upgrade level. The following table details how much Ex-P/WP is required to reach each upgrade level:
| Ex-P/WP Level | Points Required |
|---|---|
| Level 1 | 30 |
| Level 2 | 80 |
| Level 3 | 140 |
| Level 4 | 210 |
| Level 5 | 290 |
| Level 6 | 400 |
| Level 7 | 520 |
| Level 8 | 670 |
| Level 9 | 830 |
| Level 10 | 1000 |
Similar to the unit upgrade fields, the current WP field is bound to a max of 1000 for parity with the expected in-game max value.
WP Bonuses
Set the Ex-P/WP Bonuses for the selected character. By design, this is a group of options enabled by a checkbox toggle. Characters with active WP Bonuses will have the checkbox enabled, while those without WP Bonuses will have it disabled. Once the checkbox is enabled, you can select the 2 WP Bonuses you want to give to your selected character.
Unfortunately, you cannot stack the same bonus to have it double-apply on a character. The internal logic only applies any selection of WP Bonuses at most once. On the flipside, selecting the same WP Bonus in both slots allows you to run characters with only 1 WP Bonus active if you're trying to limit your WP characters' strength.
Just like the Full Upgrade Bonus, WP Bonus effects only apply when a character reaches Ex-P/WP Level 10; the WPB will not do anything at any other Ex-P/WP Level. In addition, if you're not on a modded version that supports reallocating the WPB, then this is the only way to re-select the WPB on vanilla.
Skills
Edit any of the currently equipped skills on the selected character. This is it; the dedicated skill editor lets you mix and match whatever skill you'd like for all 7 generic skill slots as well as the 8th reserved Personal Skill slot for a character. You will need to input the internal skill ID to successfully inject the new skill; this internal skill ID is defined in the ID column of the Data_Skills file. You can also find a mapping of the internal skill IDs to in-game display names under the Database/Skills.json file in the repo. This file should be more helpful in searching for the target skill(s) you want to put on a character.
See the bottom of this page for some example skill builds.
[!IMPORTANT] Typically, generic skills like Shotgunning and Break Power Limit work as normal when placed in any of the 8 skill slots. However, some Personal Skills are either hardcoded to only work with certain characters or apply their effects when equipped in the 8th slot. In addition, not all skills, generic or Personal, can be stacked by equipping the same skill in multiple slots. You'll have to experiment to see which skill combos do work on vanilla.
On modded versions of the game that support bypassing the PS slot check hardcoding (like the
DisableStrictPSCheckingJSON mod), you can enable this feature to expand the pool of PSes that can apply their effects in the generic skill slots.If an invalid skill ID is added to a character's skillset, the internal logic will mostly handle this by replacing these invalid skill IDs with the default skill IDs defined in
data_char_skill_all. On the Steam version of the game, this won't return any issues, and the game can proceed as usual. However, the Switch version of the game will crash if there is an invalid skill ID in the 8th slot due to the following bug.During character initialization (occurs when loading a save or characters on a chapter map), when an invalid skill ID is read from the Personal Skill slot of a character's skillset, the list search logic will return
undefinedafter attempting to match this invalid skill ID to a nonexistent skill effect (EF) in theData_Skillsdatabase. Thisundefinedvalue is then fed into astring_countfunction call as the source string when performing a string comparison that handles special skill effect cases. Now, there are 2 different behaviors that occur when callingstring_countwith anundefinedsource string between the Switch and Steam versions.The Steam version, compiled in GM 2023, will accept
undefinedas an argument for the source string, andstring_countwill always return 0 as there can never be a substring to check for inundefined. In contrast, the Switch version, compiled in GM 2022, will throw a runtime error that complains the passedundefineddata type does not match with the expectedstringdata type for the source string. The game will then crash with a FATAL error message after the runtime error is thrown. This means that any invalid skill ID that is present in the 8th slot of any character will always crash the game on the Switch version.Yoyogames has announced they have no plans to fix bugs in the LTS version for GM 2022, so this bug will need to be accounted for when editing skills in Switch saves. The other solution would be to update the Switch version to GM 2023 to set parity with the Steam version; however, this is far outside the scope and responsibility of modding to perform that kind of migration.
Stat Bonuses
Edit the number of points invested into each character stat (Melee/CQB, Range, Skill, Defense, Evade, Accuracy) for the selected character. Works mostly the same way as it does when investing in-game.
However, you can now set stat bonuses past the normal +99 cap. The save fields for these parameters support adding stat bonuses up to +255 (stored as an unsigned byte), so you are free to extend a character's current stat bonuses up to that new cap.
Stored Skills
This section stores a single text string that defines the list of unequipped Personal Skills along with their associated levels, if applicable. You can edit this section to add/remove Personal Skills from this stored pool.
To do this, you'll need to follow the adjacent pairing format of the internal skill ID paired with skill's level (0 if the skill is not a leveled skill). Finally, make sure the text string follows the grouping with the | symbols, or else the stored skills won't be read correctly by the game.
This is an example valid text string for Mehko's stored skills:
|MEKO|2|MEKOCHAN|1|MOKOMOKO|1|PAIR+_MEKO|1|
You could add the Danmaku Power Maximum PS (internal ID: D_POWER_MAX) to be equipped later:
|MEKO|2|MEKOCHAN|1|MOKOMOKO|1|PAIR+_MEKO|1|D_POWER_MAX|0|
Skill Builds
