• Opcode: 0x0131
  • Short name: HOLD
  • Long name: Set PHS lock status

Argument

none

Stack

Player-Character ID

Switchable?

Selectable?

HOLD

Description

Sets whether the given character is “held” (locked) in the PHS/party-switch menu.

The handler pops three stack slots but only uses two of them: the bottom value is the character ID (mapped to a slot via getPointerCharaData) and the middle value is the switchable flag; the top value (nominally Selectable?) is popped and discarded. If the switchable flag is non-zero it sets bits 0x02|0x04 of that character’s flags word in SG_ARRAY_CHARA_DATA (.Exists); if zero it clears those bits.

PC handler: SCRIPT_HOLD.

Function addresses

Function Address Description
SCRIPT_HOLD 0x51EA50 Field script opcode handler (verified IDA function)