development:technical-details:patches:maniac:new-maniac-commands
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| development:technical-details:patches:maniac:new-maniac-commands [2026/10/06 14:29] – [Camera Position] carbonara | development:technical-details:patches:maniac:new-maniac-commands [2026/10/09 16:52] (current) – [Zoom Screen] carbonara | ||
|---|---|---|---|
| Line 59: | Line 59: | ||
| ===== Save ===== | ===== Save ===== | ||
| - | //Player status: Supported //✅//; Inaccuracies: | + | //Player status: Supported //✅//; Inaccuracies: |
| The Save command (セーブの実行) allows to directly save on a requested save slot without using the save menu. | The Save command (セーブの実行) allows to directly save on a requested save slot without using the save menu. | ||
| Line 66: | Line 66: | ||
| * Save Index: Save slot ID that will be used for the save file. The ID to use can either be a constant or the value of a variable. The range of valid save slots is [1; | * Save Index: Save slot ID that will be used for the save file. The ID to use can either be a constant or the value of a variable. The range of valid save slots is [1; | ||
| * Store Result (Optional): Variable that should receive a value when the save file is written. If the save succeeds, the value written will be 1. Otherwise, the value written will be 0. As this value is written at the same time than the save file, and that it is not kept in the save file, the selected variable will be kept unaltered if the save file is loaded. | * Store Result (Optional): Variable that should receive a value when the save file is written. If the save succeeds, the value written will be 1. Otherwise, the value written will be 0. As this value is written at the same time than the save file, and that it is not kept in the save file, the selected variable will be kept unaltered if the save file is loaded. | ||
| + | |||
| + | Notes: | ||
| + | * Output saves are subject to the file output limit of the patch (not more than ~3 file writing per second): if the file output limit is reached, the [[modified-maniac-commands# | ||
| It can be written as follow with the common TPC syntax: < | It can be written as follow with the common TPC syntax: < | ||
| Line 181: | Line 184: | ||
| ===== Show String Picture ===== | ===== Show String Picture ===== | ||
| + | |||
| + | FIXME | ||
| ===== Get Picture Info ===== | ===== Get Picture Info ===== | ||
| + | |||
| + | FIXME | ||
| ===== Control Battle ===== | ===== Control Battle ===== | ||
| + | |||
| + | FIXME | ||
| ===== Control ATB Gauge ===== | ===== Control ATB Gauge ===== | ||
| + | |||
| + | FIXME | ||
| ===== Change Battle Command EX ===== | ===== Change Battle Command EX ===== | ||
| + | |||
| + | FIXME | ||
| ===== Get Battle Info ===== | ===== Get Battle Info ===== | ||
| + | |||
| + | FIXME | ||
| ===== Control Variable Array ===== | ===== Control Variable Array ===== | ||
| + | |||
| + | FIXME | ||
| ===== Key Input Processing EX ===== | ===== Key Input Processing EX ===== | ||
| + | |||
| + | FIXME | ||
| ===== Rewrite Map ===== | ===== Rewrite Map ===== | ||
| + | |||
| + | FIXME | ||
| ===== Control Shared Save ===== | ===== Control Shared Save ===== | ||
| + | |||
| + | //Player status: Supported //✅//; Global save status is set to be opened on boot if it exists, no file output limit.// | ||
| + | |||
| + | The Control Shared Save command (共有セーブの操作, | ||
| + | |||
| + | When using the command, there are two different global save locations that need to be distinguished: | ||
| + | * The **global save**, which consists of the area where the data is temporarily written in memory and altered by the various functions of the command. | ||
| + | * The '' | ||
| + | |||
| + | Additionally, | ||
| + | * If set to opened, and that the game is closed either by the user or by using the Exit Game command, the content of the global save will be copied to the '' | ||
| + | * The '' | ||
| + | * If set to closed, exiting the game will not alter the '' | ||
| + | |||
| + | Notes: | ||
| + | * The file '' | ||
| + | * Upon game boot or game reset, the content of the '' | ||
| + | * The output '' | ||
| + | |||
| + | ==== Open ==== | ||
| + | |||
| + | By using **Open**, the global save status will be set to opened. | ||
| + | |||
| + | Common TPC syntax: < | ||
| + | |||
| + | Raw writing: < | ||
| + | |||
| + | ==== Close ==== | ||
| + | |||
| + | By using **Close**, the content of the '' | ||
| + | |||
| + | Common TPC syntax: < | ||
| + | |||
| + | Raw writing: < | ||
| + | |||
| + | ==== Save ==== | ||
| + | |||
| + | By using **Save**, the content of the global save will be written on the '' | ||
| + | |||
| + | Notes: | ||
| + | * The opened/ | ||
| + | |||
| + | Common TPC syntax: < | ||
| + | |||
| + | Raw writing: < | ||
| + | |||
| + | ==== Save then Close ==== | ||
| + | |||
| + | By using **Save then Close**, the content of the global save will be written on the '' | ||
| + | |||
| + | Notes: | ||
| + | * The opened/ | ||
| + | |||
| + | Common TPC syntax: < | ||
| + | |||
| + | Raw writing: < | ||
| + | |||
| + | ==== Copy from Global Save ==== | ||
| + | |||
| + | **Copy from Global Save** allows to copy values from the global save to switches and variables. | ||
| + | |||
| + | The command has the following fields: | ||
| + | * Type: Whether switches or variables should be copied. | ||
| + | * Current Save Data: Position of the first switch or variable ID should receive the values from the global save, with the possility to use a constant or variable for the ID. | ||
| + | * Global Save Data: Position of the first switch or variable in the global save that should be copied, with the possility to use a constant or variable for the ID. | ||
| + | * Size: How many values should be copied, with the possibility to use a constant, variable or variable redirection. | ||
| + | |||
| + | Notes: | ||
| + | * Switches and variables do not share their slot allocations, | ||
| + | * Using the command will set the global save status to opened. | ||
| + | * Using a null or negative size will not copy any value. | ||
| + | |||
| + | Common TPC syntax for switches: < | ||
| + | Common TPC syntax for variables: < | ||
| + | |||
| + | Where: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Raw writing: < | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Copy to Global Save ==== | ||
| + | |||
| + | **Copy to Global Save** allows to copy switches and variables to the global save. | ||
| + | |||
| + | The command has the following fields: | ||
| + | * Type: Whether switches or variables should be copied. | ||
| + | * Current Save Data: Position of the first switch or variable ID that should be copied to the global save, with the possility to use a constant or variable for the ID. | ||
| + | * Global Save Data: Position of the first switch or variable in the global save that should be written to, with the possility to use a constant or variable for the ID. | ||
| + | * Size: How many values should be copied, with the possibility to use a constant, variable or variable redirection. | ||
| + | |||
| + | Notes: | ||
| + | * Switches and variables do not share their slot allocations, | ||
| + | * Using the command will set the global save status to opened. | ||
| + | * Using a null or negative size will not copy any value. | ||
| + | |||
| + | Common TPC syntax for switches: < | ||
| + | Common TPC syntax for variables: < | ||
| + | |||
| + | Where: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Raw writing: < | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| ===== Set Picture ID ===== | ===== Set Picture ID ===== | ||
| + | |||
| + | FIXME | ||
| ===== Set Game Option ===== | ===== Set Game Option ===== | ||
| Line 408: | Line 557: | ||
| ===== Call Command ===== | ===== Call Command ===== | ||
| + | |||
| + | FIXME | ||
| ===== Control String Variables ===== | ===== Control String Variables ===== | ||
| ⚠️// This command is not directly accessible through the Maniac editor, and requires using the community plugin, TPC, raw writing or another tool.// | ⚠️// This command is not directly accessible through the Maniac editor, and requires using the community plugin, TPC, raw writing or another tool.// | ||
| + | |||
| + | FIXME | ||
| ===== Get Game Info ===== | ===== Get Game Info ===== | ||
| Line 683: | Line 836: | ||
| ==== Screen Shake Value ==== | ==== Screen Shake Value ==== | ||
| + | |||
| + | //Player status: Supported //✅ | ||
| **Screen Shake Value** allows to retrieve by how many pixels the screen was shifted on the left by the Shake Screen command. | **Screen Shake Value** allows to retrieve by how many pixels the screen was shifted on the left by the Shake Screen command. | ||
| Line 695: | Line 850: | ||
| ==== Current BGM ==== | ==== Current BGM ==== | ||
| + | |||
| + | //Player status: Supported //✅ | ||
| **Current BGM** allows to retrieve the infos of the current music. | **Current BGM** allows to retrieve the infos of the current music. | ||
| Line 717: | Line 874: | ||
| ===== Edit Picture ===== | ===== Edit Picture ===== | ||
| + | |||
| + | FIXME | ||
| ===== Output Image ===== | ===== Output Image ===== | ||
| Line 733: | Line 892: | ||
| * If a picture is currently being displayed and that its source file gets overwritten, | * If a picture is currently being displayed and that its source file gets overwritten, | ||
| * Edited pictures through the Edit Picture or Edit Picture (Tile) commands no longer point to their original picture file, so they are not subject to this point. In the case of Edit Picture, it will work as long as the selected picture ID was targeted independently if pixels were actually written. | * Edited pictures through the Edit Picture or Edit Picture (Tile) commands no longer point to their original picture file, so they are not subject to this point. In the case of Edit Picture, it will work as long as the selected picture ID was targeted independently if pixels were actually written. | ||
| - | * Output pictures are subject to the file output limit of the patch (not more than ~4 file writing per second): if the file output limit is reached, the Conditional Branch: File output is available will be reported as true until it becomes possible again to write files. | + | * Output pictures are subject to the file output limit of the patch (not more than ~3 file writing per second): if the file output limit is reached, the [[modified-maniac-commands# |
| ==== Game Screen ==== | ==== Game Screen ==== | ||
| Line 792: | Line 951: | ||
| * '' | * '' | ||
| ===== Add Move Route ===== | ===== Add Move Route ===== | ||
| + | |||
| + | FIXME | ||
| ===== Edit Picture (Tile) ===== | ===== Edit Picture (Tile) ===== | ||
| //Player status: Unsupported// | //Player status: Unsupported// | ||
| + | |||
| + | FIXME | ||
| ===== Control Message ===== | ===== Control Message ===== | ||
| //Player status: Unsupported// | //Player status: Unsupported// | ||
| + | |||
| + | FIXME | ||
| ===== Script ===== | ===== Script ===== | ||
| //Player status: Unsupported// | //Player status: Unsupported// | ||
| + | |||
| + | The Script command (スクリプト) allows to execute JavaScript code. | ||
| + | |||
| + | The Maniac Patch executable comes bundled with [[https:// | ||
| + | |||
| + | Additionally, | ||
| + | * < | ||
| + | * < | ||
| + | * < | ||
| + | |||
| + | The command has the following fields: | ||
| + | * Source Text: Code to execute, with the possibility to have it come from the command, from a string variable or from a string variable redirection. | ||
| + | * Variable that receive return value: Switches, switch redirections, | ||
| + | |||
| + | FIXME //Provide more examples and info on using JavaScript and making it communicate with the engine.// | ||
| + | |||
| + | Notes: | ||
| + | * If a command with an incorrect syntax is executed, the console will be opened and will display an error highlighting the syntax issue. This does not halt the game. | ||
| + | |||
| + | Internally, the command comes with two different command codes, '' | ||
| + | |||
| + | TPC only offers editing the first command code: the second command code is impossible to edit through the Maniac Patch or TPC, and can only be deleted. | ||
| + | |||
| + | TPC syntax of the first command code: < | ||
| + | |||
| + | Where: | ||
| + | * '' | ||
| + | * < | ||
| + | |||
| + | Raw writing for the command code 3030: < | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | The values '' | ||
| + | |||
| + | Raw writing for the command code 3031: < | ||
| + | * '' | ||
| + | * '' | ||
| ===== Zoom Screen ===== | ===== Zoom Screen ===== | ||
| Line 835: | Line 1048: | ||
| * Setting the Scale to a value above 24000 will not do any zoom. | * Setting the Scale to a value above 24000 will not do any zoom. | ||
| * If the layer is set to a value not on the [1;10] range, no zoom will occur. | * If the layer is set to a value not on the [1;10] range, no zoom will occur. | ||
| + | * The zoom only affects the overworld, it does not affect battles and menus. | ||
| * The zoom properties are kept in the save file. | * The zoom properties are kept in the save file. | ||
| Line 849: | Line 1063: | ||
| Raw writing: < | Raw writing: < | ||
| * '' | * '' | ||
| - | * '' | + | * '' |
| * '' | * '' | ||
| * '' | * '' | ||
| Line 870: | Line 1084: | ||
| //Player status: Unsupported// | //Player status: Unsupported// | ||
| + | |||
| + | The Console command (コンソール) allows to open a console in an external window, display text in it and allows the player to type text through it. | ||
| + | |||
| + | Notes: | ||
| + | * If the console is opened while the game is in window mode, the console will be opened by trying to not cover the area of the game screen. | ||
| + | * If the console is opened while the game is in fullscreen, the console will be opened behind the game screen. | ||
| + | * If this console is attempted to be manually closed by the user, the game will also be closed. | ||
| + | * Resetting the game will close the console. | ||
| + | * The console status is not stored in the save file, and loading a save file will not alter the state of the console. | ||
| + | * The console is also used by the Script command: if the JS formatting is incorrect, the console will be opened and will display an error about the formatting. | ||
| + | |||
| + | ==== Open ==== | ||
| + | |||
| + | **Open** opens the console window. If the console was already opened, nothing will happen. | ||
| + | |||
| + | Common TPC syntax: < | ||
| + | |||
| + | Raw writing: < | ||
| + | |||
| + | ==== Close ==== | ||
| + | |||
| + | **Close** closes the console window. All text output and input of the console will be cleared, and the colours for the console will be reset. If the console was already closed, nothing will happen. | ||
| + | |||
| + | Common TPC syntax: < | ||
| + | |||
| + | Raw writing: < | ||
| + | |||
| + | ==== Output ==== | ||
| + | |||
| + | **Output** allows to display text in the console. If the console was closed, it will be opened prior to outputting text. | ||
| + | |||
| + | The command has the following fields: | ||
| + | * Output Text: Text that should be output in the console, with the possibility to define it as part of the command, or use a string variable or string variable redirection. | ||
| + | * Extract Text: If ticked, the text markers '' | ||
| + | * Hex: If Extract Text and Hex are both ticked, values displayed using a variable or self variable text marker will be converted to the hexadecimal format (alphabet characters are in lower case). | ||
| + | * Disable Linebreak: If ticked, the message that will be output will lack a linejump at its end, meaning that if another message is output after it, it will be displayed on the same line. | ||
| + | |||
| + | Notes: | ||
| + | * Other text markers than those mentioned in the Extract Text section as well as ExFont characters cannot be used in the console, and will be interpreted as pure text. | ||
| + | * If Extract Text is enabled and that an invalid actor is attempted to be displayed, an error will be displayed forcing the game to close. | ||
| + | |||
| + | TPC syntax: < | ||
| + | |||
| + | Where: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Raw writing: < | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Input ==== | ||
| + | |||
| + | **Input** puts the game on hold and asks the player to type in the console. If the console was closed, it will be opened prior to the text input. | ||
| + | |||
| + | The command has the following fields: | ||
| + | * Variable that receive input text: String variable that should receive the text input by the user, with the possibility to use a string variable or string variable redirection. | ||
| + | * Maximum length of input text: How many characters can be typed by the user, with the possibility to use a constant, variable or variable redirection. | ||
| + | * Extract Text: If ticked, typing the text markers '' | ||
| + | * Hex: If Extract Text and Hex are both ticked, values from variables and self variables text markers will be converted to the hexadecimal format (alphabet characters are in lower case). | ||
| + | |||
| + | Notes: | ||
| + | * The game will be put on hold until the Enter key is pressed. | ||
| + | * Setting the maximum length of input text to a null or negative value will not put any length limit. | ||
| + | * The maximum length of input text seems to be offset by -2, for some reason: for instance, if you want to set the limit to 26 characters, you will need to set it to 28. | ||
| + | * Due to this issue, setting the maximum length to 2 will make the string variable not receive anything, due to the actual limit being set to 0, while setting it to 1 will lead to an error display forcing the game to close (as the game will try to actually set the limit to -1). | ||
| + | * Text input in the console is actually tracked whenever text is typed in the console, not just when Input is in use: | ||
| + | * Typing text before using Input will actually be added to the next input text, with the possibility for the user to erase the previously written text (except any Enter key press). | ||
| + | * Text written past the character limit will be able to be used for a next Input, it is not lost. | ||
| + | * As Input waits for the Enter key to be pressed and that keys are tracked outside of the Input sequence, any Enter key press will be registered as a different text input that should be used the next time Input is used. | ||
| + | * Other text markers than those mentioned in the Extract Text section as well as ExFont characters will be interpreted as pure text. | ||
| + | * If Extract Text is enabled and that an invalid actor is typed, an error will be displayed forcing the game to close. | ||
| + | |||
| + | TPC syntax: < | ||
| + | |||
| + | Where: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Raw writing: < | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Set Text Color ==== | ||
| + | |||
| + | **Set Text Color** allows to change the colours used for the text and text background for the next text that will be displayed by the console. If the console was closed, it will be opened prior to changing the text colour. | ||
| + | |||
| + | The command has the following fields: | ||
| + | * Change Foreground Color: If ticked, the colour of the text will be changed according to the selected foreground colour value. | ||
| + | * Change Background Color: If ticked, the background colour of the text will be changed according to the selected background colour value. | ||
| + | * Foreground Color: Colour of the text to use, with the possibility to use a constant, variable or variable redirection. | ||
| + | * Background Color: Background colour to use, with the possibility to use a constant, variable or variable redirection. | ||
| + | |||
| + | Notes: | ||
| + | * The following values can be used to select colours: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * The selected colour is processed on 4-bit: as such, any value outside of the [0;15] range will loop back to be on said range. | ||
| + | * The default text colour is White while the default background colour is Black. | ||
| + | |||
| + | When not using constants, the TPC syntax is < | ||
| + | |||
| + | If you are using constants, the TPC syntax is < | ||
| + | |||
| + | Raw writing: < | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| ===== Control Self Variable ===== | ===== Control Self Variable ===== | ||
| Line 876: | Line 1240: | ||
| //Player status: Unsupported// | //Player status: Unsupported// | ||
| + | |||
| + | FIXME | ||
| ===== Change Troop Member ===== | ===== Change Troop Member ===== | ||
| ⚠️// This command was added in development versions of the editor, and is as such not available in public versions, in addition to lacking a common TPC writing.// | ⚠️// This command was added in development versions of the editor, and is as such not available in public versions, in addition to lacking a common TPC writing.// | ||
| + | |||
| + | FIXME | ||
| ===== Control Media Option ===== | ===== Control Media Option ===== | ||
development/technical-details/patches/maniac/new-maniac-commands.1791296968.txt.gz · Last modified: by carbonara