# Article Scripts

Used to give behavior to your articles.

Article scripts are named for the article they represent, in the format article<name>_init.gml or article<name>_update.gml.

Article names are 1, 2, 3, solid, and platform

Official docs (opens new window)

# article[name]_init.gml

Called when the article is created, to initialize variables.

Articles have built-in variables.

You must set an article's sprite_index variable to a valid sprite, or the game may crash. If you need an invisible article, you can get around this with sprite_index = asset_get("empty_sprite").

In all scripts, should avoid using Game Maker's in-built 'speed' variables (including image_speed, gravity, friction, hspeed and vspeed). These variables are not synced with Rivals of Aether's framerate, and may cause desyncs online. Use hsp and vsp instead for movement. Articles do not have in-built replacements for image_speed, gravity and friction, so this behavior needs to be defined manually.

article_anim_speed = 0.2;
article_friction = 0.1;
article_gravity = 0.5;
article_max_fall_speed = 12;

should_die = false

# article[name]_update.gml

Called every frame for the article. Used to add behavior.

Articles do not have event scripts like got_hit.gml or death.gml, but these events can be detected manually.

Under Construction

Explain how. Support with the injection framework.

image_index += article_anim_speed;

if free {
    vsp = min(vsp + article_gravity, article_max_fall_speed)
}
if hsp != 0 {
    hsp = sign(hsp) * max(0, abs(hsp) - my_article_friction)
}

if should_die {
    instance_destroy()
}