# Objects and Instances
When programming, it's convenient to cluster data into structures based on the things in the game world. A character structure owns variables for its health, position, movement attributes, etc., while articles, hitboxes, and even the stage have their own variables.
Most of a character's code works with the character's own variables, but you'll need to reference others to affect them.
An object is a type, like "Character" or "Hitbox" or "Cat".
An instance is an example of a type, like "the Zetterburn I'm playing now" or "the hitbox I created from my ftilt" or "my cat, Rosa".
Instances are made from objects. Instances contain variables, like my Zetterburn's current percent, and their object determines what variables they have, and how Rivals uses them.
# Available Objects
hit_fx_obj(Visual effects created on hit)
oTestPlayer(Characters while in playtest mode, found on the character select screen or workshop screen.)
# Basic Usage
instance_id = instance_create(x, y, object) creates a new instance of the object.
instance_destroy(instance_id) destroys the instance with that id. Be careful with this. It's usually best to let
articles destroy themselves at the end of their
update script, so they don't disappear in the middle of doing
instance_destroy() with no arguments destroys the current instance, same as
You can access variables from other instances with
. syntax, such as:
vortex = instance_create(x, y-30, "obj_article1") vortex.vsp = -5
Scripts are always run from the perspective of some instance, often the character instance. You can reference the current instance
self, though that's rarely needed.
The with structure temporarily changes the perspective to an instance, or run code from the perspective of all instances of a given object.
# Perspective Effects
Perspective is important for some functions:
Fetching functions (
sound_get) need to be of the perspective of the resource's character or an instance that character owns, such as their article or hitbox.
sound_playpanning depends on the location of the caller.