User Tools

Site Tools


development:technical-details:patches:maniac:new-maniac-commands

This is an old revision of the document!


New commands

This page lists the new commands added in the Maniac Patch.

FIXME This page is currently a stub, most commands still need to be filled.

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

The Get Save Info command (セーブ情報の取得) allows to directly retrieve info from a save file.

The command has the following fields:

  • 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 [-2147483648;2147483647].
  • YYMMDD: Variable that should receive the date of the save file, in the YYMMDD format. If the selected save file is corrupted, the retrieved value will be 8991230, and if the selected save file does not exist, the retrieved value will be 0.
  • HHMMSS: Variable that should receive the time of the save file, in the HHMMSS format.
  • 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.
  • Name Destination: String variable that should receive the name of the first party member of the save file. ⚠️ This option is not directly accessible through the Maniac editor, and requires using the community plugin, TPC, raw writing or another tool.
  • 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. As the picture graphicd will be cut with the spritesheet feature on a 4 vertical sprites per 4 horizontal sprites setting, the retrieved graphics do not have to be the size of a FaceSet.

If the selected save file is corrupted or does not exist, the retrieved value for HHMMSS, Level, and HP will be 0, the Name Destination name will be empty, and the selected picture IDs will be erased.

It can be written as follow with the common TPC syntax:

@save[1].getInfo .datetime v[2], v[3] .level v[4] .hp v[5] .name t[6] .face 7, 8, 9, 10

Where:

  • @save[1].getInfo corresponds to the save slot number (here, 1), with the possibility to replace the value by a variable.
  • v[2] corresponds to the variable that should receive the date of the save file.
  • v[3] corresponds to the variable that should receive the time of the save file.
  • v[4] corresponds to the variable that should receive the level of the first party member of the save file.
  • v[5] corresponds to the variable that should receive the HP of the first party member of the save file.
  • t[6] corresponds to the string variable that should receive the name of the first party member of the save file.
  • 7 corresponds to the picture ID that should receive the FaceSet of the 1st party member of the save file.
  • 8 corresponds to the picture ID that should receive the FaceSet of the 2nd party member of the save file.
  • 9 corresponds to the picture ID that should receive the FaceSet of the 3rd party member of the save file.
  • 10 corresponds to the picture ID that should receive the FaceSet of the 4th party member of the save file.

The picture ID values can be written using the variable syntax (v[1]) to use variables instead of constants, which will affect all picture IDs.

Raw writing:

3001, "", a, b, c, d, e, f, g, h, i, j, k, l
  • 3001: Command code
  • a: Whether the Save Index value to retrieve should be a constant (0) or a variable (1), a constant, with the name of the first party member retrieved in a string variable (16), or a variable, with the name of the first party member retrieved in a string variable (17).
  • b: Value to use for the Save Index.
  • c: Variable that should receive the date of the save file.
  • d: Variable that should receive the time of the save file.
  • e: Variable that should receive the level of the first party member of the save file.
  • f: Variable that should receive the HP of the first party member of the save file.
  • g: String variable that should receive the name of the first party member of the save file.
  • h: Whether the picture IDs to use for the retrieved FaceSets should be constants (0) or variables (1).
  • i: Picture ID that should receive the FaceSet of the 1st party member of the save file.
  • j: Picture ID that should receive the FaceSet of the 2nd party member of the save file.
  • k: Picture ID that should receive the FaceSet of the 3rd party member of the save file.
  • l: Picture ID that should receive the FaceSet of the 4th party member of the save file.

Save

Player status: Supported; Inaccuracies: Store Result is not set to 0 when failing, see EasyRPG Player issue #3056

The Save command (セーブの実行) allows to directly save on a requested save slot without using the save menu.

The command has two fields:

  • 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;2147483647], attempting to write a save file with a null or negative ID will fail.
  • 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.

It can be written as follow with the common TPC syntax:

@save[1].save .res v[2]

Where:

  • @save[1].save corresponds to the save slot number (here, 1), with the possibility to replace the value by a variable.
  • .res v[2] corresponds to the variable where the save result will be written. It can be omitted, in which case no result will be output.

Raw writing:

3002, "", a, b, c, d
  • 3002: Command code
  • a: Whether the Save Index value to retrieve should be a constant (0) or a variable (1).
  • b: Value to use for the Save Index.
  • c: Whether the result should be stored in a variable (1) or should be ignored (0).
  • d: Variable to use for Store Result.

Load

Player status: Supported; Inaccuracies: No transition to black is ever displayed, empty and corrupted save files cannot be loaded at all

The Load command (ロードの実行) allows to directly load a requested save slot without using the load menu.

The command has three fields:

  • 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;2147483647], attempting to load a save file with a null or negative ID will fail.
  • 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.

If a corrupted save file is attempted to be loaded, or if an empty save file is attempted to be loaded with the file check disabled, the following things will happen:

  • The game will act as if it was a new game (no switch, variable or string variable set, no item, no skill, default party), but will keep the current tileset if it was changed through the Change Tileset command
  • The player and all vehicles will all be teleported on the current map of the player at coordinates 0,0
  • The player sprite will be hidden

The command can be written as follow with the common TPC syntax:

@save[v[105]].load .disableFileCheck .disableBlackout

Where:

  • @save[1].load corresponds to the save slot number (here, 1), with the possibility to replace the value by a variable.
  • .disableFileCheck corresponds to if the file check should be disabled. It can be omitted, in which case the file check will occur.
  • .disableBlackout corresponds to if the blackout should be disabled. It can be omitted, in which case the blackout will occur.

Raw writing:

3003, "", a, b, c, d
  • 3003: Command code
  • a: Whether the Save Index value to retrieve should be a constant (0) or a variable (1).
  • b: Value to use for the Save Index.
  • c: Whether the file check should be enabled (0) or disabled (1).
  • d: Whether the blackout should be enabled (0) or disabled (1).

End Load Processing

Player status: N/A

The End Load Processing command (ロード処理の終了, referred to as End Load Process in the interface), unlike what its name suggests, does not do anything.

This command was created for a previous version of the Maniac patch which kept the screen black during 6 frames after a load transition, and this command could have been used to make the screen visible again earlier. As this command already lacks any behaviour in version 181209 (oldest Maniac version still available), and that the only other older public version is 180809, which is no longer available, it is unknown if this command ever had a behaviour in any publicly available version.

The command does not has any common TPC syntax as it was scrapped before the creation of TPC, and as such requires to be written in raw to write or edit it through TPC.

Raw writing:

3004, ""

Get Mouse Position

Player status: Supported; Inaccuracies: Ignore Window Size Ratio not supported, tracking the mouse out of the game window not supported

The Get Mouse Position command (マウス座標の取得) allows to retrieve the position of the mouse.

The command has three fields:

  • X Coordinate: Variable that should receive the X 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.

If the mouse is placed out of the game window, it will still properly be tracked.

The command can be written as follow with the common TPC syntax:

@mouse.getPos v[1], v[2]

Where:

  • v[1] corresponds to the variable that should receive the X coordinate.
  • v[2] corresponds to the variable that should receive the Y coordinate.

Raw writing:

3005, "", a, b, 0, d
  • 3005: Command code
  • a: Variable that should receive the X coordinate.
  • b: Variable that should receive the Y coordinate.
  • d: Whether the window size ratio should be respected (0) or ignored (1).

Set Mouse Position

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 command has three fields:

  • X Coordinate: X 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.

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.

If the mouse is moved at coordinates out of the game window, it will be capped to the size of the game window.

The command can be written as follow with the common TPC syntax:

@mouse.setPos 1, 2

Where:

  • 1 corresponds to the value that should be used for the X coordinate.
  • 2 corresponds to the value that should be used for the Y coordinate.

Both values can be written using the variable syntax (v[1]) to use variables instead of constants.

Raw writing:

3006, "", a, b, c, d
  • 3006: Command code
  • a: Whether the coordinate values to use should be constants (0) or variables (1).
  • b: Variable that should receive the X coordinate.
  • c: Variable that should receive the Y coordinate.
  • d: Whether the window size ratio should be respected (0) or ignored (1).

Show String Picture

Get Picture Info

Control Battle

Control ATB Gauge

Change Battle Command EX

Get Battle Info

Control Variable Array

Key Input Processing EX

Rewrite Map

Control Shared Save

Set Picture ID

Set Game Option

Call Command

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.

Get Game Info

Edit Picture

Output Image

Add Move Route

Edit Picture (Tile)

Player status: Unsupported

Control Message

Player status: Unsupported

Script

Player status: Unsupported

Zoom Screen

Player status: Not yet supported; A work-in-progress pull request to implement the command exists: EasyRPG Player pull request #3499

Console

Player status: Unsupported

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.

Player status: Unsupported

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.

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.

Player status: Unsupported

development/technical-details/patches/maniac/new-maniac-commands.1790527999.txt.gz · Last modified: by carbonara

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki