Game Object (Dynamic Type)

This page contains the format of the DYNA types which inherit from game_object. All offsets are relative to 0x10 (start of the type-specific data in DYNA assets).

game_object:BusStop
This asset defines a Bus Stop, which is used to switch the playable character between SpongeBob and either Patrick or Sandy.

It is very similar to a Taxi Stop, in that it creates a trigger at a Marker's position and uses a Camera and bus Simple Object to play a drive-by animation.

In the original game, levels that use Bus Stops only contain assets for either Patrick or Sandy, but not both. If, for example, you try to make a Bus Stop switch to Patrick in a level that only has Sandy's assets, nothing will happen. However, it is possible to use both Patrick and Sandy if you port the missing character's assets to the level, specifically the MODL, RWTX, ANIM, ATBL, and MINF assets.

Note that, similar to Taxi Stops, the busstop SIMP itself is completely separate from the Bus Stop game object and is not required for the Bus Stop to work.

Events

 * Bus Switch Character

game_object:Taxi
This asset defines a Taxi Stand, which lets SpongeBob take the taxi to another area of Bikini Bottom.

Its position is defined by a Marker, which is usually placed at the bottom center of a taxistand Simple Object. The game uses the marker as the base position at which to create a sphere (or cylinder?) shaped trigger. When SpongeBob enters this trigger a Talk Box​​ is displayed, usually asking the player if they want to enter a specific area of the game. If the player answers Yes then a taxi drive-by animation plays using a taxi SIMP and a Camera, and two internal timers are started, which when expired make SpongeBob invisible and teleport the player to a different level using a Portal. However, if Sandy or Patrick enters the trigger, a default "Only SpongeBob can use the Taxi" talk box is displayed instead.

Note that the taxistand SIMP is completely separate from the Taxi Stand game object, it doesn't have to be at the same place as the marker or even exist in the first place.

game_object:Teleport
This asset defines a Teleport Box, which is used for quick travel to another area within a level. Typically, they are defined in pairs, where the 1st one warps to the 2nd one and the 2nd one warps back to the 1st one. However, a Teleport Box can warp to any other Teleport Box in the level, and therefore any number of Teleport Boxes can be linked together.

Its position is defined by a Marker, which the game uses to place an instance of the teleportation_box_bind model (boot.hip) in the world. It is not possible to change the rotation or scale of a Teleport Box.

Note that you do not need to manually create a trigger around the teleport box to open it, it opens automatically when the player walks close up to it.

Events

 * Open Teleport Box
 * Close Teleport Box

game_object:Vent
This object defines a vent (steam emitter).

Vents have 3 states:
 * Idle - not shooting steam
 * Warn - shoots a little steam to warn the player
 * Damage - shoots steam at full blast and damages the player when they touch it

Vents have a damage area in the shape of a box, similar to a box TRIG. You can specify the lower and upper corners of the box, which are relative to the vent's origin/position and rotated by the vent's rotation.

Reset
Sets the vent to idle state. Note: this is bugged, it doesn't stop the current sound. Use VentSetStateIdle instead.

Scene Finish
Same as Reset.

VentSetStateIdle
Sets the vent to idle state.

VentSetStateWarn
Sets the vent to warning state.

VentSetStateDamage
Sets the vent to damage state.

VentSetStateOff
Turns the vent off. You can send any VentSetStateXXX event to turn it back on.

game_object:VentType
This object defines properties for a steam emitter.