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/11/09 14:57] (current) – carbonara | ||
|---|---|---|---|
| Line 9: | Line 9: | ||
| ===== Get Save Info ===== | ===== Get Save Info ===== | ||
| - | //Player status: Supported //✅//; Requesting the name of the first party member is currently not supported and makes the command fail, requesting info from a null or negative save does not work// | + | //Player status: Supported// ✅//; Requesting the name of the first party member is currently not supported and makes the command fail, requesting info from a null or negative save does not work// |
| The Get Save Info command (セーブ情報の取得) allows to directly retrieve info from a save file. | The Get Save Info command (セーブ情報の取得) allows to directly retrieve info from a save file. | ||
| Line 19: | Line 19: | ||
| * Level: Variable that should receive the level of the first party member of the save file. If there is no member in the party, the retrieved value will be 0. | * Level: Variable that should receive the level of the first party member of the save file. If there is no member in the party, the retrieved value will be 0. | ||
| * HP: Variable that should receive the current HP of the first party member of the save file. If there is no member in the party, the retrieved value will be 0. | * HP: Variable that should receive the current HP of the first party member of the save file. If there is no member in the party, the retrieved value will be 0. | ||
| - | * Name Destination: | + | * Name Destination: |
| * Picture ID for Face Graphic: Picture IDs that should be used to retrieve the FaceSets of the party members. The IDs to use can either be constants or values of variables. The pictures will be placed at coordinates 0, 0, using an overworld and battle picture layer 7 with a transparency of 100%, with the other parameters being the default picture parameters. | * Picture ID for Face Graphic: Picture IDs that should be used to retrieve the FaceSets of the party members. The IDs to use can either be constants or values of variables. The pictures will be placed at coordinates 0, 0, using an overworld and battle picture layer 7 with a transparency of 100%, with the other parameters being the default picture parameters. | ||
| 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 82: | Line 85: | ||
| ===== Load ===== | ===== Load ===== | ||
| - | //Player status: Supported //✅//; Inaccuracies: | + | //Player status: Supported// ✅//; Inaccuracies: |
| The Load command (ロードの実行) allows to directly load a requested save slot without using the load menu. | The Load command (ロードの実行) allows to directly load a requested save slot without using the load menu. | ||
| Line 89: | Line 92: | ||
| * 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; | ||
| * Disable file check: If this option is ticked, attempting to load an empty save file will give the same result than when trying to load a corrupted save file instead of failing. | * Disable file check: If this option is ticked, attempting to load an empty save file will give the same result than when trying to load a corrupted save file instead of failing. | ||
| - | * Disable blackout: If this option is ticked, the screen will not turn black when a save file is loaded. ⚠️// This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// | + | * Disable blackout: If this option is ticked, the screen will not turn black when a save file is loaded. ⚠️ //This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// |
| Notes: | Notes: | ||
| Line 125: | Line 128: | ||
| ===== Get Mouse Position ===== | ===== Get Mouse Position ===== | ||
| - | //Player status: Supported //✅//; Inaccuracies: | + | //Player status: Supported// ✅//; Inaccuracies: |
| The Get Mouse Position command (マウス座標の取得) allows to retrieve the position of the mouse. | The Get Mouse Position command (マウス座標の取得) allows to retrieve the position of the mouse. | ||
| Line 132: | Line 135: | ||
| * X Coordinate: Variable that should receive the X coordinate of the mouse. | * X Coordinate: Variable that should receive the X coordinate of the mouse. | ||
| * Y Coordinate: Variable that should receive the Y coordinate of the mouse. | * Y Coordinate: Variable that should receive the Y coordinate of the mouse. | ||
| - | * Ignore Window Size Ratio: If ticked, the mouse coordinate retrieved will ignore the window size ratio of the game instead of retrieving a position tied to the game screen. ⚠️// This option 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.// | + | * Ignore Window Size Ratio: If ticked, the mouse coordinate retrieved will ignore the window size ratio of the game instead of retrieving a position tied to the game screen. ⚠️ //This option 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.// |
| Notes: | Notes: | ||
| Line 151: | Line 154: | ||
| ===== Set Mouse Position ===== | ===== Set Mouse Position ===== | ||
| - | //Player status: Not supported with no plan to be supported //❌//; System specific, not exposed by SDL// | + | //Player status: Not supported with no plan to be supported// ❌//; System specific, not exposed by SDL// |
| The Set Mouse Position command (マウス座標の設定) allows to change the position of the mouse. | The Set Mouse Position command (マウス座標の設定) allows to change the position of the mouse. | ||
| Line 158: | Line 161: | ||
| * X Coordinate: X coordinate of the mouse to use. | * X Coordinate: X coordinate of the mouse to use. | ||
| * Y Coordinate: Y coordinate of the mouse to use. | * Y Coordinate: Y coordinate of the mouse to use. | ||
| - | * Ignore Window Size Ratio: If ticked, the mouse coordinate position will be calculated by ignoring the window size ratio of the game. ⚠️// This option 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.// | + | * Ignore Window Size Ratio: If ticked, the mouse coordinate position will be calculated by ignoring the window size ratio of the game. ⚠️ //This option 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.// |
| The coordinates to use can be set to either constants or value of variables, with the setting for it being shared for the two coordinates. | The coordinates to use can be set to either constants or value of variables, with the setting for it being shared for the two coordinates. | ||
| 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 210: | Line 359: | ||
| ==== Behavior when Inactive ==== | ==== Behavior when Inactive ==== | ||
| - | //Player status: Supported //✅//; This option is linked to the EasyRPG Player setting Pause when focus lost, and as such does not use the value set in a save file.// | + | //Player status: Supported// ✅//; This option is linked to the EasyRPG Player setting Pause when focus lost, and as such does not use the value set in a save file.// |
| **Behavior when Inactive** defines if the window of the game should be put on hold (Wait) if put in the background or if it should stay active (Run). This info is stored in the save file, and the default mode is Wait. | **Behavior when Inactive** defines if the window of the game should be put on hold (Wait) if put in the background or if it should stay active (Run). This info is stored in the save file, and the default mode is Wait. | ||
| Line 224: | Line 373: | ||
| ==== Fatal Mix ==== | ==== Fatal Mix ==== | ||
| - | //Player status: Supported //✅//; The FPS range is capped on the [10;500] range; FPS and Right Shift key are not kept if a save file is loaded or if the game is reset.// | + | //Player status: Supported// ✅//; The FPS range is capped on the [10;500] range; FPS and Right Shift key are not kept if a save file is loaded or if the game is reset.// |
| **Fatal Mix** allows to change the speed of the game, change the TestPlay mode and adjust the behaviour of the Right Shift key. | **Fatal Mix** allows to change the speed of the game, change the TestPlay mode and adjust the behaviour of the Right Shift key. | ||
| Line 257: | Line 406: | ||
| ==== Maximum Number of Pictures ==== | ==== Maximum Number of Pictures ==== | ||
| - | //Player status: Unsupported //❌//; The Player dynamically handles picture limits so it does not need it as much as Maniac does for optimisation.// | + | //Player status: Unsupported// |
| **Maximum Number of Pictures** defines the maximum picture ID that can be used, with the default value being 1000. | **Maximum Number of Pictures** defines the maximum picture ID that can be used, with the default value being 1000. | ||
| Line 304: | Line 453: | ||
| ==== Mouse Text Window Operation ==== | ==== Mouse Text Window Operation ==== | ||
| - | //Player status: Partially supported //ℹ️//; The right mouse button is not mapped, and the left mouse button behaves like a regular interaction key for text boxes// | + | //Player status: Partially supported// ℹ️//; The right mouse button is not mapped, and the left mouse button behaves like a regular interaction key for text boxes// |
| - | ⚠️// This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// | + | ⚠️ //This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// |
| If **Mouse Text Window Operation** is enabled, the mouse will be able to be used in text boxes. | If **Mouse Text Window Operation** is enabled, the mouse will be able to be used in text boxes. | ||
| Line 325: | Line 474: | ||
| //Player status: Unsupported// | //Player status: Unsupported// | ||
| - | ⚠️// This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// | + | ⚠️ //This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// |
| **Position of Battle Screen** defines where the interface should be displayed on the screen during battles. | **Position of Battle Screen** defines where the interface should be displayed on the screen during battles. | ||
| Line 363: | Line 512: | ||
| //Player status: Unsupported// | //Player status: Unsupported// | ||
| - | ⚠️// This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// | + | ⚠️ //This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// |
| **Maximum Number of Animations** defines the maximum animation ID that can be used. | **Maximum Number of Animations** defines the maximum animation ID that can be used. | ||
| Line 380: | Line 529: | ||
| //Player status: Unsupported// | //Player status: Unsupported// | ||
| - | ⚠️// This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// | + | ⚠️ //This option is not directly accessible through the Maniac editor, and requires using TPC, raw writing or another tool.// |
| **Face Size** defines which size should be used for FaceSets displayed in message boxes. | **Face Size** defines which size should be used for FaceSets displayed in message boxes. | ||
| 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 437: | Line 590: | ||
| ==== Tile IDs ==== | ==== Tile IDs ==== | ||
| - | ⚠️// While this command is accessible through the Maniac editor and can be written, assigning a value to be a variable or variable redirection is incorrectly done and incorrectly displayed in the list. Use TPC, raw writing or another tool to properly write the command.// | + | ⚠️ //While this command is accessible through the Maniac editor and can be written, assigning a value to be a variable or variable redirection is incorrectly done and incorrectly displayed in the list. Use TPC, raw writing or another tool to properly write the command.// |
| //Player status: Supported// ✅ | //Player status: Supported// ✅ | ||
| Line 500: | Line 653: | ||
| ==== Game Screen Pixels ==== | ==== Game Screen Pixels ==== | ||
| - | ⚠️// While this command is accessible through the Maniac editor and can be written, assigning a value to be a variable or variable redirection is incorrectly done and incorrectly displayed in the list. Use TPC, raw writing or another tool to properly write the command.// | + | ⚠️ //While this command is accessible through the Maniac editor and can be written, assigning a value to be a variable or variable redirection is incorrectly done and incorrectly displayed in the list. Use TPC, raw writing or another tool to properly write the command.// |
| - | //Player status: Supported //✅//; Colours retrieved can be slightly off due to the different rendering.// | + | //Player status: Supported// ✅//; Colours retrieved can be slightly off due to the different rendering.// |
| **Game Screen Pixels** allows to retrieve the colour of pixels displayed on the screen. | **Game Screen Pixels** allows to retrieve the colour of pixels displayed on the screen. | ||
| Line 549: | Line 702: | ||
| ==== Command Interpreter State ==== | ==== Command Interpreter State ==== | ||
| - | //Player status: Partially supported //ℹ️//; Battle events do not have all their values retrieved correctly yet, battle common event types are not supported, type of execution for Player Touch and Event Touch can be inaccurate, see [[https:// | + | //Player status: Partially supported// ℹ️//; Battle events do not have all their values retrieved correctly yet, battle common event types are not supported, type of execution for Player Touch and Event Touch can be inaccurate, see [[https:// |
| **Command Interpreter State** allows to retrieve the position in the code where the command was used. | **Command Interpreter State** allows to retrieve the position in the code where the command was used. | ||
| Line 594: | Line 747: | ||
| ==== Actor Face Graphic ==== | ==== Actor Face Graphic ==== | ||
| - | //Player status: Supported //✅//; The empty message box index quirk is not supported.// | + | //Player status: Supported// ✅//; The empty message box index quirk is not supported.// |
| '' | '' | ||
| Line 629: | Line 782: | ||
| ==== Actor Body Graphic ==== | ==== Actor Body Graphic ==== | ||
| - | //Player status: Supported //✅//; Requesting the dynamic sprite of a vehicle also receives sprites set through the Set Move Route command.// | + | //Player status: Supported// ✅//; Requesting the dynamic sprite of a vehicle also receives sprites set through the Set Move Route command.// |
| **Actor Body Graphic** allows to retrieve the CharSet of a hero or of an event. | **Actor Body Graphic** allows to retrieve the CharSet of a hero or of an event. | ||
| Line 665: | Line 818: | ||
| ==== Camera Position ==== | ==== Camera Position ==== | ||
| - | //Player status: | + | //Player status: |
| **Camera Position** allows to retrieve the position of the camera. The position of the camera retrieved corresponds to the top-left corner pixel of the screen compared to the map placement. | **Camera Position** allows to retrieve the position of the camera. The position of the camera retrieved corresponds to the top-left corner pixel of the screen compared to the map placement. | ||
| 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 ===== | ||
| - | //Player status: Supported //✅//; Appending the .png in the filename does not add it as part of the filename, outputting with an invalid character displays a warning, Show Picture loads the new file when used so no overwriting shenanigan, file output limit not supported/ | + | //Player status: Supported// ✅//; Appending the .png in the filename does not add it as part of the filename, outputting with an invalid character displays a warning, Show Picture loads the new file when used so no overwriting shenanigan, file output limit not supported/ |
| The Output Image command (画像の出力) allows to output a screenshot of the game or a displayed picture and write it in the folder of the game. | The Output Image command (画像の出力) allows to output a screenshot of the game or a displayed picture and write it in the folder of the game. | ||
| 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 ==== | ||
| - | //Player status: Supported //✅//; The first colour in the index is not set to a transparent colour// | + | //Player status: Supported// ✅//; The first colour in the index is not set to a transparent colour// |
| By specifying **Game Screen**, a screenshot of the game will be taken and be output in the requested location. | By specifying **Game Screen**, a screenshot of the game will be taken and be output in the requested location. | ||
| Line 756: | Line 915: | ||
| ==== Picture ==== | ==== Picture ==== | ||
| - | //Player status: Supported //✅//; Outputting a picture that does not exist writes a 1x1 black pixel// | + | //Player status: Supported// ✅//; Outputting a picture that does not exist writes a 1x1 black pixel// |
| By specifying **Picture**, | By specifying **Picture**, | ||
| 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 ===== | ||
| - | //Player status: Not yet supported ❌; A work-in-progress pull request to implement the command exists: [[https:// | + | //Player status: Not yet supported// ❌//; A work-in-progress pull request to implement the command exists: [[https:// |
| The Zoom Screen command (画面のズーム) allows to zoom in on the screen while in the overworld. | The Zoom Screen command (画面のズーム) allows to zoom in on the screen while in the overworld. | ||
| 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 ===== | ||
| - | ⚠️// 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.// |
| //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 ===== | ||
| - | ⚠️// 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.// |
| //Player status: Unsupported// | //Player status: Unsupported// | ||
| Line 898: | Line 1266: | ||
| * Window - Use interpolation: | * Window - Use interpolation: | ||
| * Window - Keep size within display: In window mode, whether the size of the window should not be kept within display (0) or if should be kept within display (1). | * Window - Keep size within display: In window mode, whether the size of the window should not be kept within display (0) or if should be kept within display (1). | ||
| - | * Fullscreen - Allow uneven pixel size: In fullscreen mode, whether having an uneven pixel size should be disallowed (0) or allowed (1). ⚠️// The option that needs to be set in the Maniac editor to assign this parameter is Fullscreen - Ignore aspect ratio for stretching, not Fullscreen - Allow uneven pixel size.// | + | * Fullscreen - Allow uneven pixel size: In fullscreen mode, whether having an uneven pixel size should be disallowed (0) or allowed (1). ⚠️ //The option that needs to be set in the Maniac editor to assign this parameter is Fullscreen - Ignore aspect ratio for stretching, not Fullscreen - Allow uneven pixel size.// |
| - | * Fullscreen - Ignore aspect ratio for stretching: In fullscreen mode, whether the aspect ratio for stretching should not be ignored (0) or if it should be ignored (1). ⚠️// The option that needs to be set in the Maniac editor to assign this parameter is Fullscreen - Use interpolation, | + | * Fullscreen - Ignore aspect ratio for stretching: In fullscreen mode, whether the aspect ratio for stretching should not be ignored (0) or if it should be ignored (1). ⚠️ //The option that needs to be set in the Maniac editor to assign this parameter is Fullscreen - Use interpolation, |
| - | * Fullscreen - Use interpolation: | + | * Fullscreen - Use interpolation: |
| * Audio - Volume: Volume of the engine. The range of value accepted is [0;100]. | * Audio - Volume: Volume of the engine. The range of value accepted is [0;100]. | ||
| * Show FPS: Whether FPS should not be shown (0) or if they should be shown (1). | * Show FPS: Whether FPS should not be shown (0) or if they should be shown (1). | ||
development/technical-details/patches/maniac/new-maniac-commands.1791296941.txt.gz · Last modified: by carbonara