| https://akurasu.net/downloads/Mazin_head.png | Come hang out with us in the Discord server.
Account creation is disabled due to spam. If you want to help out on the Wiki, poke us in on our Discord server in #wiki. Please consider supporting the site with the PlayAsia referral links here or via the donate buttons in the sidebar, it really does help. | https://akurasu.net/downloads/Flonne_cheer.png |
Super Robot Wars/30/Modding: Difference between revisions
Added rest of Touroku unit conditions found in [Mission_est010_en.cpk] |
|||
| (8 intermediate revisions by 2 users not shown) | |||
| Line 30: | Line 30: | ||
===mission_est010_en.cpk LUA Files=== | ===mission_est010_en.cpk LUA Files=== | ||
These files contain information about the type of units that will exist in a given map, broken down into the entities below. | |||
==== SC_DEBUG_PLAYER_ENTRY and SC_DEBUG_CLEAR_ENTRY ==== | ==== SC_DEBUG_PLAYER_ENTRY and SC_DEBUG_CLEAR_ENTRY ==== | ||
| Line 43: | Line 43: | ||
* [NEW_ENTRY] -- Adds the unit to the list of player-controllable units, so long as it does not already exist on the player's save file. | * [NEW_ENTRY] -- Adds the unit to the list of player-controllable units, so long as it does not already exist on the player's save file. | ||
* [ERASE_ENTRY] -- <To be filled in> | |||
* [ADD_PARAMETA] -- <To be filled in> | |||
* [PARAMETA_COPY] -- [https://akurasu.net/wiki/Super_Robot_Wars/30/Upgrade_Carryover Copies the stats of one unit and/or pilot to another] | * [PARAMETA_COPY] -- [https://akurasu.net/wiki/Super_Robot_Wars/30/Upgrade_Carryover Copies the stats of one unit and/or pilot to another] | ||
| Line 50: | Line 54: | ||
* [VERSION_UP] -- Swaps out an existing unit and/or pilot with a different version of the same unit/pilot, [https://akurasu.net/wiki/Super_Robot_Wars/30/Mech_Upgrades usually to upgrade stats or add new attacks.] | * [VERSION_UP] -- Swaps out an existing unit and/or pilot with a different version of the same unit/pilot, [https://akurasu.net/wiki/Super_Robot_Wars/30/Mech_Upgrades usually to upgrade stats or add new attacks.] | ||
* [RIDECHANGE] -- Swaps out an existing unit and/or pilot with a different unit/pilot entirely, usually when a pilot receives a brand new unit. | * [RIDECHANGE] -- Swaps out an existing unit and/or pilot with a different unit/pilot entirely, usually when a pilot receives a brand new unit. | ||
* [EXCHANGE] -- <To be filled in> | |||
* [RESET_TRAINING] -- <To be filled in> | |||
* [RIDE_ON_PILOT] -- <To be filled in> | |||
* [EQUIP] -- <To be filled in> | |||
* [EQUIP_HOLD] -- <To be filled in> | |||
* [SORTIE_NOT_NOTICE] -- Reserves an existing unit for future spawn, most often used for missions where the Dreisstrager arrives late. | * [SORTIE_NOT_NOTICE] -- Reserves an existing unit for future spawn, most often used for missions where the Dreisstrager arrives late. | ||
| Line 83: | Line 97: | ||
Configures what strings to display on the mission operations page for victory/defeat conditions and hints. The actual conditions are managed as part of the .txt file. | Configures what strings to display on the mission operations page for victory/defeat conditions and hints. The actual conditions are managed as part of the .txt file. | ||
==== EVENTBTL_nnn ==== | |||
Creates a scripted battle with pre-determined damage. | |||
===mission_est010_en.cpk TXT files=== | |||
These files contain script code that determines how events play out in a given scenario. | |||
==== SC_ENEMY_SCRAMBLE_MODE2 ==== | |||
This code uses an enemy table from ''ENEMY_TBL_nnn'' (located in the relevant .lua file) to spawn enemy units into the map. Here is an example code: ''SC_ENEMY_SCRAMBLE_MODE2( ENEMY_TBL_000, ScDifficulty_HIGHLEVEL, ScScramble_ONMAP, SCBIT_SCRAMBLE_NOP, SC_POS(0, 0) );'' | |||
'''ENEMY_TBL_nnn''': This determines what enemy table to call from the relevant .lua file. | |||
'''ScDifficulty_xxx''': This determines what enemy table to use from the .lua file, depending on either difficulty selected or average level of units (unsure, needs research). There are 3 determining codes (currently): NORMAL, HIGHLEVEL, NOT_HIGHLEVEL. | |||
'''ScScramble_xxx''': This determines how to summon the enemy table on to the map. There are 2 determining codes (currently): NORMAL, ONMAP. | |||
'''SCBIT_SCRAMBLE_xxx''': <To be filled in>. There are 3 determining codes (currently): NOP, LAND_FREE, TOP_ADJUST_CENTER | |||
'''SC_POS(n, n)''': <To be filled in>. | |||
==== SC_GMMAP_INIT( nnn ) ==== | |||
This code tells the game to load a specified map, using a number. The valid map numbers are 1 through 114. | |||
Latest revision as of 14:10, 15 June 2022
Under heavy construction. May take a while to fully complete.
Modding Super Robot Wars 30
Super Robot Wars 30 uses .cpk files that act as containers. To unpack and un-encrypt the files, a couple tools are required: CriPakGUI to unpack/repack the contents, and QuickBMS with the relevant scripts to un-encrypt/encrypt the contents. The following link has the tools needed, along with the QuickBMS scripts necessary and a readme: SRW Tool Package 0.1
Instructions: Start CriPakGUI. "File -> Open CPK", navigate to SRW 30/pc, then open the .cpk file of choice. Click "Extract Files", select output directory, files will be encrypted initially.
Start QuickBMS. Use 'srw30cryala.bms', select encrypted files (use * in name field to select all files in chosen directory), select the output directory for decrypted files. The files will be decrypted and readable.
Mod the file of your choice until you are satisfied. Then start QuickBMS. Use 'srw30encrypt.bms', select your modded file(s), then select the output directory. Rename the file to remove "_dec_layla" and replace it with .bin [Example: 61_dec_layla -> 61.bin], DO NOT SKIP THIS STEP.
Start CriPakGUI. "File -> Open CPK", navigate to the .cpk you initially unpacked. Click "Patch CPK". First path, select the directory which contains ONLY your modded encrypted files. Second path, select the directory and name for your patched CPK. DO CHECK "Don't use CRILAYLA Compression". Click "Patck CPK" and wait.
Make a backup of the original .cpk file, then replace the original .cpk in the "pc" directory with your patched .cpk. Be sure to rename the patched .cpk to the name of the original .cpk you are replacing. Done.
mission_est010_en.cpk
This file holds the main/non-DLC missions of Super Robot Wars 30. This file is located in [SRW30\pc\data\mission]. The first file (numbered "0") is a table of contents for the game to use. The remaining files are human-readable files for each mission. Depending on the mission type, each mission will have up to 5 files. However some missions with multi-part battles (such as the initial Gridman missions) may have multiple sets of 5. They have been stripped of their names in the encryption process, but their original filename is at the top of each file and they are listed in order of internal mission number.
In order:
- ____.lua - Unit-related data for battles
- ____.txt - Overall engine script for the mission. Handles dialogue, deployment, special effects, flags, victory/defeat, etc. Despite the file name, it is a valid LUA file.
- ____.pyc - Non-combat dialogue scripts, for both before and after battles. Generated from cse10_[missionnumber]_SDemo.Cpp
- ____.pyc - Combat dialogue scripts. Generated from cse10_[missionnumber]_DlgEv.Cpp
- ____.pyc - Enemy AI configuration. Generated from aie10_[missionnumber].xls
mission_est010_en.cpk LUA Files
These files contain information about the type of units that will exist in a given map, broken down into the entities below.
SC_DEBUG_PLAYER_ENTRY and SC_DEBUG_CLEAR_ENTRY
Used for debug purposes
TOUROKU_nnn
Details special cases of player-controlled units. Each TOUROKU is processed at a different time, called by the .txt script, with TOUROKU_000 as the first of course. Each entry has up to eight slots for flags, to determine if special requirements are needed for that action to occur, such as to only deploy a unit if it has not been acquired yet, or to make sure the game deploys the right version of an upgradable unit.
"登録 (touroku)" meaning "registration/entry/record" according to Jisho
- [NEW_ENTRY] -- Adds the unit to the list of player-controllable units, so long as it does not already exist on the player's save file.
- [ERASE_ENTRY] -- <To be filled in>
- [ADD_PARAMETA] -- <To be filled in>
- [PARAMETA_COPY] -- Copies the stats of one unit and/or pilot to another
- [TEAM_EDIT] -- Spawns a unit to the field directly, with "編成チームID" near the bottom determining its ID for the battle. Certain flags may be used in order to spawn various versions of the same unit (i.e. Huckebein 30 being added with either Az or Edge as pilot).
- [VERSION_UP] -- Swaps out an existing unit and/or pilot with a different version of the same unit/pilot, usually to upgrade stats or add new attacks.
- [RIDECHANGE] -- Swaps out an existing unit and/or pilot with a different unit/pilot entirely, usually when a pilot receives a brand new unit.
- [EXCHANGE] -- <To be filled in>
- [RESET_TRAINING] -- <To be filled in>
- [RIDE_ON_PILOT] -- <To be filled in>
- [EQUIP] -- <To be filled in>
- [EQUIP_HOLD] -- <To be filled in>
- [SORTIE_NOT_NOTICE] -- Reserves an existing unit for future spawn, most often used for missions where the Dreisstrager arrives late.
- [LEAVE] and [REJOIN] -- Temporarily removes/readds a unit to your roster.
SCRAMBLE_nnn
Places units from TOUROKU onto the field, based on their "出撃チームID". As above, each SCRAMBLE is processed at a different time, and has slots for flags. There are options to adjust morale, SP, etc.
SORTISEL_nnn
Lets you select units for deployment. [param] dictates the number of units, and other variables. [pos_tbl] determines where they will appear.
CURPOS_TBL
Lets the game know where to move the cursor to for scripted events and dialogue for non-unit characters.
BTLMESS_TBL
Registers event triggers (usually dialogue) when certain units/pilots attack other unit/pilots. The top number is the T_EVENT number used in the combat .pyc files.
GIFT_nnn
Gives items such as Power Parts to the player
ENEMY_TBL_nnn
A table of enemies. You should have an idea of how this works by now. Friendly non-playable guest units also appear here, with a flag to determine their alliance.
OPERATE_TBL
Configures what strings to display on the mission operations page for victory/defeat conditions and hints. The actual conditions are managed as part of the .txt file.
EVENTBTL_nnn
Creates a scripted battle with pre-determined damage.
mission_est010_en.cpk TXT files
These files contain script code that determines how events play out in a given scenario.
SC_ENEMY_SCRAMBLE_MODE2
This code uses an enemy table from ENEMY_TBL_nnn (located in the relevant .lua file) to spawn enemy units into the map. Here is an example code: SC_ENEMY_SCRAMBLE_MODE2( ENEMY_TBL_000, ScDifficulty_HIGHLEVEL, ScScramble_ONMAP, SCBIT_SCRAMBLE_NOP, SC_POS(0, 0) );
ENEMY_TBL_nnn: This determines what enemy table to call from the relevant .lua file. ScDifficulty_xxx: This determines what enemy table to use from the .lua file, depending on either difficulty selected or average level of units (unsure, needs research). There are 3 determining codes (currently): NORMAL, HIGHLEVEL, NOT_HIGHLEVEL. ScScramble_xxx: This determines how to summon the enemy table on to the map. There are 2 determining codes (currently): NORMAL, ONMAP. SCBIT_SCRAMBLE_xxx: <To be filled in>. There are 3 determining codes (currently): NOP, LAND_FREE, TOP_ADJUST_CENTER SC_POS(n, n): <To be filled in>.
SC_GMMAP_INIT( nnn )
This code tells the game to load a specified map, using a number. The valid map numbers are 1 through 114.