Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Final Fantasy VI/Monster Script Format: Difference between revisions
Jump to navigation
Jump to search
(Created page with "Final Fantasy VI - Monsters Script ==#$F0: Execute random spell== : Syntax: #$F0 <spell 1> <spell 2> <spell 3> : Execute one of three available spells to use. If the F1 comma...") |
(Revision) |
||
Line 1: | Line 1: | ||
Final Fantasy VI | Game: [[Final Fantasy VI]] | ||
== | ==Introduction== | ||
: | : The page lists the monsters script instructions. They are used to determinate the monsters actions in battle. | ||
: | : Two scripts are used by every monster. The first script is executed in every monster turn. The second one is executed in every monster counter. | ||
== | ==Unique spell== | ||
: | : 1 byte syntax: (spell) | ||
: | : If the only byte is between 00 and EF, the spell is executed based in (spell) ID. | ||
== | ==F0: Random spell== | ||
: | : 4 bytes syntax: F0 (spell 1) (spell 2) (spell 3) | ||
: | : Randomly execute one of the three available spells to use. | ||
== | ==F1: Set targets== | ||
: | : 2 bytes syntax: F1 (target) | ||
: The instruction changes the target for the next executed spell. It can fail, if the target is invalid. | |||
* (target) values: | |||
** 00: Terra | |||
** 01: Locke | |||
** 02: Cyan | |||
** 03: Shadow | |||
** 04: Edgar | |||
** 05: Sabin | |||
** 06: Celes | |||
** 07: Strago | |||
** 08: Setzer | |||
** 09: Relm | |||
** 0A: Mog | |||
** 0B: Gau | |||
** 0C: Gogo | |||
** 0D: Umaro | |||
** 0E: Banon | |||
** 0F: Leo | |||
** 30: Monster ID 1 | |||
** 31: Monster ID 2 | |||
** 32: Monster ID 3 | |||
** 33: Monster ID 4 | |||
** 34: Monster ID 5 | |||
** 35: Monster ID 6 | |||
** 36: Self | |||
** 37: All monsters (excluding itself) | |||
** 38: All monsters | |||
** 39: Random monster (excluding itself) | |||
** 3A: Random monster | |||
** 3B: All characters with Dead status | |||
** 3C: Random character with Dead status | |||
** 3D: All monsters with Dead status | |||
** 3E: All monsters with Dead status | |||
** 3F: All characters with Wall status | |||
** 40: Random character with Wall status | |||
** 41: All monsters with Wall status | |||
** 42: Random monster with Wall status | |||
** 43: All characters | |||
** 44: Random character | |||
** 45: Last attacking character/monster | |||
** 46: All characters and monsters | |||
** 47: Default spell target | |||
** 48: Character ID 1 | |||
** 49: Character ID 2 | |||
** 4A: Character ID 3 | |||
** 4B: Character ID 4 | |||
** 4C: All targets or one random target (excluding itself) | |||
** 4D: Last target of "Targetting" spell | |||
==F2: Formation change== | |||
: 4 bytes syntax: F2 (unknown) (formation low byte) (formation high byte) | |||
: The instruction changes the actual enemy formation to a new one. It won't work correctly if the monsters and formations aren't compatible. | |||
: The highest bit of the formation determinates if the new monsters HP will be set to maximum. | |||
==F3: Display message== | |||
: 3 bytes syntax: F3 (message low byte) (message high byte) | |||
: Display a message. | : Display a message. | ||
== | ==F4: Use command== | ||
: | : 4 bytes syntax: F4 (command 1) (command 2) (command 3) | ||
: | : The instruction will use a random character command, based in three available commands. The majority of the commands don't work and have glitches. The instruction must be used with care. | ||
== | ==F5: Change enemies== | ||
: | : 4 bytes syntax: F5 (animation) (HP flags) (monsters bitfield) | ||
: The instruction changes between active and inactive enemies without changing the monster formation. | : The instruction changes between active and inactive enemies in battle without changing the monster formation. | ||
* | * (HP flags) values: | ||
** | ** 00: Unhide and sets max HP | ||
** | ** 01: Hide and nulls HP | ||
** | ** 02: Unhide without changing HP | ||
** | ** 03: Hide and sets max MP | ||
** | ** 04: Hide without changing HP | ||
== | ==F6: Throw or use items== | ||
: | : 4 bytes syntax: F6 (Usage flag) (Item 1) (Item 2) | ||
: The instruction throw or use items, based in the <Usage flag>. One of the two available items is choose at random. | : The instruction throw or use items, based in the <Usage flag>. One of the two available items is choose at random. | ||
== | ==F7: Special event== | ||
: | : 2 bytes syntax: F7 (Event ID) | ||
: Triggers a special event. | : Triggers a special event. | ||
== | ==F8: Arithmetic Variable manipulation== | ||
: | : 3 bytes syntax: F8 (Variable ID) (Operation) | ||
: The instruction change variables values based in arithmetic operations. | : The instruction change variables values based in arithmetic operations. | ||
: The two highest bits of | : The two highest bits of (Operation) determinate the operation. The other six bytes determinate the value for the operation. | ||
* Two highest bits of | * Two highest bits of (Operation) values: | ||
** 00 bits: Set variable | ** 00 bits: Set variable | ||
** 01 bits: Set variable | ** 01 bits: Set variable | ||
Line 97: | Line 105: | ||
** 11 bits: subtract variable | ** 11 bits: subtract variable | ||
== | ==F9: Bit Variable manipulation== | ||
: | : 4 bytes syntax: F9 (operation) (variable ID) (related bits) | ||
: The instruction changes variables based in bits operations. | : The instruction changes variables based in bits operations. | ||
* | * (Operation) values: | ||
** #$00: Toggle bits | ** #$00: Toggle bits | ||
** #$01: Set bits | ** #$01: Set bits | ||
** #$02: Clear bits | ** #$02: Clear bits | ||
== | ==FA: Use animation== | ||
: | : 4 bytes syntax: FA (animation) (monsters bitfield) (complement) | ||
: The instruction executes a graphical animation for the specified enemies. | : The instruction executes a graphical animation for the specified enemies. | ||
* | * (animation) values: | ||
** | ** 00: Monster stays, flashes red | ||
** | ** 01: Monster moves back, 1 step, slow | ||
** | ** 02: Monster moves forward, 1 step, slow | ||
** | ** 03: Monster moves back, 1 step, fast | ||
** | ** 04: Monster moves forward, 1 step, fast | ||
** | ** 05: Characters run to the right | ||
** | ** 06: Characters run to the left | ||
** | ** 07: Monster moves back, 3 steps, fast | ||
** | ** 08: Monster moves forward, 3 steps, fast | ||
** | ** 09: Plays a sound. The sound is determined by (complement) | ||
** | ** 0A: Head appears and screen shakes, like in the final battle against Kefka. | ||
** | ** 0B: Monster stays, flashes | ||
** | ** 0C: monster stays, flashes | ||
** | ** 0D: Boss death animation | ||
==FB: Miscellaneous== | |||
: | : 4 bytes syntax: FB (opcode) (target) (complement) | ||
: The instruction does different miscellaneous operations, based in (Opcode). | |||
* (Opcode) values: | |||
** 00: Sets the battle timer to zero. | |||
** 01: Target becomes invincible. | |||
** 02: Ends the battle. | |||
** 03: Adds Gau to party. | |||
** 04: Sets the global timer to zero. | |||
** 05: Cancels invincibility. | |||
** 06: Target becomes targettable. | |||
** 07: Target becomes untargettable. | |||
** 08: Unknown. | |||
** 09: Ends combat. | |||
** 0A: Nothing. | |||
** 0B: Set permanent status. Status are set by (Complement). | |||
** 0C: Unset permanent status. Status are unset by (Complement). | |||
==FC: Conditional execution== | |||
: | : 4 bytes syntax: FC (condition) (complement 1) (complement 2) | ||
: Executes all instructions between FC and FE instructions, if the conditions are meet. Otherwise, they are ignored. | |||
: The conditions can change the target of spells. It is recommended to use the F1 instruction inside the conditional instructions. | |||
* FC 1C | * (condition) values: | ||
: | ** 01: hit by command ID. Syntax: FC 01 (command) (unknown) | ||
** 02: hit by spell ID. Syntax: FC 02 (command) (unknown) | |||
** 03: hit by item ID. Syntax: FC 03 (item) (unknown) | |||
** 04: hit by elements type. Syntax: FC 04 (bitfield) (unknown) | |||
** 05: HP is decreased. Syntax: FC 05 (unknown) (unknown) | |||
** 06: (target) HP is below (HP) * 128. Syntax: FC 06 (target) (HP) | |||
** 07: (target) MP is below (MP). Syntax: FC 07 (target) (MP) | |||
** 08: (target) has status (status). Syntax: FC 08 (target) (status) | |||
** 09: (target) doesn't have status (status). Syntax: FC 09 (target) (status) | |||
** 0A: never executes. | |||
** 0B: battle timer is greater than (time). Syntax: FC 0B (time) (unknown) | |||
** 0C: variable value is less than (value). Syntax: FC 0C (variable) (value) | |||
** 0D: variable value is equal or greater than (value). Syntax: FC 0D (variable) (value) | |||
** 0E: (target) level is less than (level). Syntax: FC 0E (target) (level) | |||
** 0F: (target) level is equal or greater than (level). Syntax: FC 0F (target) (level) | |||
** 10: only one kind of enemy alive. Syntax: FC 10 (unknown) (unknown) | |||
** 11: specified monsters are alive. Syntax: FC 11 (monsters bitfield) (unknown) | |||
** 12: specified monsters are dead. Syntax: FC 12 (monster bitfield) (unknown) | |||
** 13: number of characters or monsters are greater than (number). Syntax: FC 13 (character/monsters) (number) | |||
** 14: specified bits are set in variable. Syntax: FC 14 (variable) (bitfield) | |||
** 15: specified bits are unset in variable. Syntax: FC 15 (variable) (bitfield) | |||
** 16: global timer is greater than (time). Syntax: FC 16 (time) (unknown) | |||
** 17: target is valid. Syntax: FC 17 (target) (unknown) | |||
** 18: Gau isn't in party. Syntax: FC 18 (unknown) (unknown) | |||
** 19: monster is (monster ID). Syntax: FC 19 (monster ID) (unknown) | |||
** 1A: (target) is weak against elements. Syntax: FC 1A (target) (elements bitfield) | |||
** 1B: battle formations is equal to (formation). Syntax: FC 1B (formation low byte) (formation high byte) | |||
** 1C: always execute. Syntax: FC 1C (unknown) (unknown) | |||
== | ==FD: Wait next turn== | ||
: | : 1 byte syntax: FD | ||
: Wait for the monster next turn. It | : Wait for the monster next turn and resets targeting. It doesn't work correctly inside of conditional instructions. | ||
== | ==FE: End of conditional== | ||
: | : 1 byte syntax: FE | ||
: Ends the conditional instruction | : Ends the conditional instruction FC and resets targeting. | ||
== | ==FF: End of script== | ||
: | : 1 byte syntax: FF | ||
: The instruction is used to identify the end of the script for the monster | : The instruction is used to identify the end of the script for the monster. |
Revision as of 20:49, 7 April 2013
Game: Final Fantasy VI
Introduction
- The page lists the monsters script instructions. They are used to determinate the monsters actions in battle.
- Two scripts are used by every monster. The first script is executed in every monster turn. The second one is executed in every monster counter.
Unique spell
- 1 byte syntax: (spell)
- If the only byte is between 00 and EF, the spell is executed based in (spell) ID.
F0: Random spell
- 4 bytes syntax: F0 (spell 1) (spell 2) (spell 3)
- Randomly execute one of the three available spells to use.
F1: Set targets
- 2 bytes syntax: F1 (target)
- The instruction changes the target for the next executed spell. It can fail, if the target is invalid.
- (target) values:
- 00: Terra
- 01: Locke
- 02: Cyan
- 03: Shadow
- 04: Edgar
- 05: Sabin
- 06: Celes
- 07: Strago
- 08: Setzer
- 09: Relm
- 0A: Mog
- 0B: Gau
- 0C: Gogo
- 0D: Umaro
- 0E: Banon
- 0F: Leo
- 30: Monster ID 1
- 31: Monster ID 2
- 32: Monster ID 3
- 33: Monster ID 4
- 34: Monster ID 5
- 35: Monster ID 6
- 36: Self
- 37: All monsters (excluding itself)
- 38: All monsters
- 39: Random monster (excluding itself)
- 3A: Random monster
- 3B: All characters with Dead status
- 3C: Random character with Dead status
- 3D: All monsters with Dead status
- 3E: All monsters with Dead status
- 3F: All characters with Wall status
- 40: Random character with Wall status
- 41: All monsters with Wall status
- 42: Random monster with Wall status
- 43: All characters
- 44: Random character
- 45: Last attacking character/monster
- 46: All characters and monsters
- 47: Default spell target
- 48: Character ID 1
- 49: Character ID 2
- 4A: Character ID 3
- 4B: Character ID 4
- 4C: All targets or one random target (excluding itself)
- 4D: Last target of "Targetting" spell
F2: Formation change
- 4 bytes syntax: F2 (unknown) (formation low byte) (formation high byte)
- The instruction changes the actual enemy formation to a new one. It won't work correctly if the monsters and formations aren't compatible.
- The highest bit of the formation determinates if the new monsters HP will be set to maximum.
F3: Display message
- 3 bytes syntax: F3 (message low byte) (message high byte)
- Display a message.
F4: Use command
- 4 bytes syntax: F4 (command 1) (command 2) (command 3)
- The instruction will use a random character command, based in three available commands. The majority of the commands don't work and have glitches. The instruction must be used with care.
F5: Change enemies
- 4 bytes syntax: F5 (animation) (HP flags) (monsters bitfield)
- The instruction changes between active and inactive enemies in battle without changing the monster formation.
- (HP flags) values:
- 00: Unhide and sets max HP
- 01: Hide and nulls HP
- 02: Unhide without changing HP
- 03: Hide and sets max MP
- 04: Hide without changing HP
F6: Throw or use items
- 4 bytes syntax: F6 (Usage flag) (Item 1) (Item 2)
- The instruction throw or use items, based in the <Usage flag>. One of the two available items is choose at random.
F7: Special event
- 2 bytes syntax: F7 (Event ID)
- Triggers a special event.
F8: Arithmetic Variable manipulation
- 3 bytes syntax: F8 (Variable ID) (Operation)
- The instruction change variables values based in arithmetic operations.
- The two highest bits of (Operation) determinate the operation. The other six bytes determinate the value for the operation.
- Two highest bits of (Operation) values:
- 00 bits: Set variable
- 01 bits: Set variable
- 10 bits: Add variable
- 11 bits: subtract variable
F9: Bit Variable manipulation
- 4 bytes syntax: F9 (operation) (variable ID) (related bits)
- The instruction changes variables based in bits operations.
- (Operation) values:
- #$00: Toggle bits
- #$01: Set bits
- #$02: Clear bits
FA: Use animation
- 4 bytes syntax: FA (animation) (monsters bitfield) (complement)
- The instruction executes a graphical animation for the specified enemies.
- (animation) values:
- 00: Monster stays, flashes red
- 01: Monster moves back, 1 step, slow
- 02: Monster moves forward, 1 step, slow
- 03: Monster moves back, 1 step, fast
- 04: Monster moves forward, 1 step, fast
- 05: Characters run to the right
- 06: Characters run to the left
- 07: Monster moves back, 3 steps, fast
- 08: Monster moves forward, 3 steps, fast
- 09: Plays a sound. The sound is determined by (complement)
- 0A: Head appears and screen shakes, like in the final battle against Kefka.
- 0B: Monster stays, flashes
- 0C: monster stays, flashes
- 0D: Boss death animation
FB: Miscellaneous
- 4 bytes syntax: FB (opcode) (target) (complement)
- The instruction does different miscellaneous operations, based in (Opcode).
- (Opcode) values:
- 00: Sets the battle timer to zero.
- 01: Target becomes invincible.
- 02: Ends the battle.
- 03: Adds Gau to party.
- 04: Sets the global timer to zero.
- 05: Cancels invincibility.
- 06: Target becomes targettable.
- 07: Target becomes untargettable.
- 08: Unknown.
- 09: Ends combat.
- 0A: Nothing.
- 0B: Set permanent status. Status are set by (Complement).
- 0C: Unset permanent status. Status are unset by (Complement).
FC: Conditional execution
- 4 bytes syntax: FC (condition) (complement 1) (complement 2)
- Executes all instructions between FC and FE instructions, if the conditions are meet. Otherwise, they are ignored.
- The conditions can change the target of spells. It is recommended to use the F1 instruction inside the conditional instructions.
- (condition) values:
- 01: hit by command ID. Syntax: FC 01 (command) (unknown)
- 02: hit by spell ID. Syntax: FC 02 (command) (unknown)
- 03: hit by item ID. Syntax: FC 03 (item) (unknown)
- 04: hit by elements type. Syntax: FC 04 (bitfield) (unknown)
- 05: HP is decreased. Syntax: FC 05 (unknown) (unknown)
- 06: (target) HP is below (HP) * 128. Syntax: FC 06 (target) (HP)
- 07: (target) MP is below (MP). Syntax: FC 07 (target) (MP)
- 08: (target) has status (status). Syntax: FC 08 (target) (status)
- 09: (target) doesn't have status (status). Syntax: FC 09 (target) (status)
- 0A: never executes.
- 0B: battle timer is greater than (time). Syntax: FC 0B (time) (unknown)
- 0C: variable value is less than (value). Syntax: FC 0C (variable) (value)
- 0D: variable value is equal or greater than (value). Syntax: FC 0D (variable) (value)
- 0E: (target) level is less than (level). Syntax: FC 0E (target) (level)
- 0F: (target) level is equal or greater than (level). Syntax: FC 0F (target) (level)
- 10: only one kind of enemy alive. Syntax: FC 10 (unknown) (unknown)
- 11: specified monsters are alive. Syntax: FC 11 (monsters bitfield) (unknown)
- 12: specified monsters are dead. Syntax: FC 12 (monster bitfield) (unknown)
- 13: number of characters or monsters are greater than (number). Syntax: FC 13 (character/monsters) (number)
- 14: specified bits are set in variable. Syntax: FC 14 (variable) (bitfield)
- 15: specified bits are unset in variable. Syntax: FC 15 (variable) (bitfield)
- 16: global timer is greater than (time). Syntax: FC 16 (time) (unknown)
- 17: target is valid. Syntax: FC 17 (target) (unknown)
- 18: Gau isn't in party. Syntax: FC 18 (unknown) (unknown)
- 19: monster is (monster ID). Syntax: FC 19 (monster ID) (unknown)
- 1A: (target) is weak against elements. Syntax: FC 1A (target) (elements bitfield)
- 1B: battle formations is equal to (formation). Syntax: FC 1B (formation low byte) (formation high byte)
- 1C: always execute. Syntax: FC 1C (unknown) (unknown)
FD: Wait next turn
- 1 byte syntax: FD
- Wait for the monster next turn and resets targeting. It doesn't work correctly inside of conditional instructions.
FE: End of conditional
- 1 byte syntax: FE
- Ends the conditional instruction FC and resets targeting.
FF: End of script
- 1 byte syntax: FF
- The instruction is used to identify the end of the script for the monster.