News

Attack Grid Indexes

Attack Data

These values affect every window of the attack. Used by

get_attack_value( attack, index )  Reference→
set_attack_value( attack, index, value )  Reference→
reset_attack_value( attack, index )  Reference→

Index Description
AG_CATEGORY 0 = Grounded only
1 = Aerial only
2 = Can be grounded or aerial
AG_SPRITE The sprite to use for the attack
AG_AIR_SPRITE The sprite to use for the attack while aerial. Only applies if AG_CATEGORY is 2
AG_HURTBOX_SPRITE The sprite to use for the attack’s hurtbox
AG_HURTBOX_AIR_SPRITE The sprite to use for the attack’s hurtbox while aerial. Only applies if AG_CATEGORY is 2
AG_NUM_WINDOWS Windows with indexes higher than this value will not naturally transition into later windows
AG_HAS_LANDING_LAG Only applies if AG_CATEGORY is 1
0 = Continues the attack when landing
1 = Applies landing lag normally
AG_OFF_LEDGE 0 = Stops at ledge
1 = Goes off ledge
AG_LANDING_LAG The number of landing lag frames applied when landing. If you whiff the attack, this value is multiplied by 1.5.
Only applies if AG_HAS_LANDING_LAG is 1
AG_STRONG_CHARGE_WINDOW If attack is held at the end of this window, the character will freeze and charge the attack before moving to the next window
AG_USES_CUSTOM_GRAVITY 0 = Attack uses default gravity
1 = Attack uses custom gravity. Values must be set for every window of the attack individually

Window Data

These values only affect a single window of the attack. Used by

get_window_value( attack, window, index )  Reference→
set_window_value( attack, window, index, value )  Reference→
reset_window_value( attack, window, index )  Reference→

Index Description
AG_WINDOW_TYPE 0 = Normal
7 = Goes into pratfall
8 = Goes to the next window if it’s on the ground, otherwise normal
9 = Looping window
10 = Goes to the next window if it’s on the ground, otherwise loops
AG_WINDOW_LENGTH The duration of the window, in frames
AG_WINDOW_ANIM_FRAMES The number of animation frames to display over the duration of the window
AG_WINDOW_ANIM_FRAME_START The animation frame on which the window starts
AG_WINDOW_HSPEED The horizontal speed to apply during the window in pixels per frame. The type of speed boost depends on AG_WINDOW_HSPEED_TYPE
AG_WINDOW_VSPEED The vertical speed to apply during the window in pixels per frame. The type of speed boost depends on AG_WINDOW_VSPEED_TYPE
AG_WINDOW_HSPEED_TYPE 0 = AG_WINDOW_HSPEED is applied on top of your current momentum as a boost
1 = Horizontal speed is set to AG_WINDOW_HSPEED on every frame of the window
2 = Horizontal speed is set to AG_WINDOW_HSPEED on the first frame of the window
AG_WINDOW_VSPEED_TYPE 0 = AG_WINDOW_VSPEED is applied on top of your current momentum as a boost
1 = Vertical speed is set to AG_WINDOW_VSPEED on every frame of the window
2 = Vertical speed is set to AG_WINDOW_VSPEED on the first frame of the window
AG_WINDOW_HAS_CUSTOM_FRICTION 0 = Uses default friction
1 = Uses custom friction
AG_WINDOW_CUSTOM_AIR_FRICTION The horizontal friction to apply per frame while aerial. Only applies if AG_WINDOW_HAS_CUSTOM_FRICTION is 1
AG_WINDOW_CUSTOM_GROUND_FRICTION The horizontal friction to apply per frame while grounded. Only applies if AG_WINDOW_HAS_CUSTOM_FRICTION is 1
AG_WINDOW_CUSTOM_GRAVITY The gravitational acceleration to apply every frame of the window. Only applies if AG_USES_CUSTOM_GRAVITY is 1
AG_WINDOW_HAS_WHIFFLAG 0 = Window is always the same length
1 = Window is 1.5x longer if you haven’t hit someone
AG_WINDOW_INVINCIBILITY 0 = No invincibility
1 = Invincible to all attacks
2 = Invincible to projectiles
AG_WINDOW_HITPAUSE_FRAME The animation frame to show during hitpause
0 = no specific frame
AG_WINDOW_CANCEL_TYPE 0 = Window does not cancel
1 = Cancels into the next window if attack is pressed (when on a jab, this allows it to be tilt-cancelled)
2 = Cancels into the next window if special is pressed
Cancels do not work if AG_WINDOW_TYPE is 8
AG_WINDOW_CANCEL_FRAME If AG_WINDOW_CANCEL_TYPE is greater than 0, the attack will become cancellable on this frame
AG_WINDOW_HAS_SFX 0 = Does not have a sound effect
1 = Has a sound effect
AG_WINDOW_SFX The index of the sound effect. Only applies if AG_WINDOW_HAS_SFX is 1
AG_WINDOW_SFX_FRAME The frame in the window that the sound effect is played. Only applies if AG_WINDOW_HAS_SFX is 1

Attack Indexes

These indexes are used when setting attack grid and hitbox grid values, as well as checking attack variables of players and hitboxes.

AT_JAB
AT_DATTACK

AT_NSPECIAL
AT_FSPECIAL
AT_USPECIAL
AT_DSPECIAL

AT_FSTRONG
AT_USTRONG
AT_DSTRONG

AT_FTILT
AT_UTILT
AT_DTILT

AT_NAIR
AT_FAIR
AT_BAIR
AT_DAIR
AT_UAIR

AT_TAUNT

Extras

Must be implemented and activated manually in set_attack.gml. The labels are arbitrary, but can help you organize attacks as you implement them.

AT_NSPECIAL_2
AT_NSPECIAL_AIR
AT_FSPECIAL_2
AT_FSPECIAL_AIR
AT_USPECIAL_2
AT_USPECIAL_GROUND
AT_DSPECIAL_2
AT_DSPECIAL_AIR

AT_FSTRONG_2
AT_USTRONG_2
AT_DSTRONG_2

AT_FTHROW
AT_UTHROW
AT_DTHROW
AT_NTHROW

AT_TAUNT_2
AT_EXTRA_1
AT_EXTRA_2
AT_EXTRA_3

Player Variables

Manual HomeProgramming

Important

These variables are frequently used and can be changed to achieve different effects.

Variable Description
url The unique identifier number for a character
player Your player number (1-4)
state Your current state
state_timer How many frames into the current state you are
state_cat Your current state category
prev_state The previous state you were in
prev_prev_state The state before the previous state you were in
attack The current attack you’re using or the last attack you used, if you aren’t currently attacking
window The window of the action you’re in
window_timer How many frames into the current window you are
spr_dir The direction the player is facing: 1 = right, -1 = left
spr_angle The angle at which to draw the player’s sprite
free Whether the player is aerial or not
hsp The current horizontal speed in pixels per frame
vsp The current vertical speed in pixels per frame
joy_pad_idle Whether the joystick is idle or not.
Also works with keyboard
joy_dir The direction of the joystick.
Also works with keyboard.
Only accurate if joy_pad_idle is false
[input_name]_pressed Checks whether an input was just pressed, buffer included
[input_name]_down Checks whether an input is being held down
[direction]_hard_pressed Used for joystick hard presses, like dashing or dropping through platforms
was_parried Whether your current attack has been parried or not
can_move Whether you can move during an attack or not
can_jump Whether you can jump or not.
Used for jump cancels in attacks
can_attack Whether you can attack or not.
Used for jab / tilt cancels
can_strong Whether you can use Fstrong / Dstrong or not.
Used for strong attack cancels
can_ustrong Whether you can Ustrong or not.
Used for strong attack cancels
can_special Whether you can use special attacks or not.
Used for special cancels
can_shield Whether you can shield or not.
Used for parry / roll cancels
can_wall_jump Whether you can currently walljump or not. To walljump, both this variable and has_walljump must be true. Use this to make recovery moves cancellable into walljump
has_walljump Whether you have your walljump or not
has_airdodge Whether you have your airdodge or not
can_fast_fall Whether you can fastfall or not
djumps The number of double jumps you’ve used
max_djumps The max number of double jumps you can use
off_edge Whether you can leave the ledge or not; used to prevent grounded attacks from leaving the ground
super_armor Whether you have full super armor or not
soft_armor The value of KB that it takes to break your armor.
For reference, Etalus Fair has a value of 12
invincible Whether you’re invincible or not
invince_time The number of invincibility frames until invincible is set to false
hitpause Whether the player is in hitpause or not
hitstop The number of frames remaining until hitpause ends
hitstop_full The number of frames this instance of hitpause lasts total
has_hit Whether you’ve hit something with the current attack
has_hit_player Whether you’ve hit a player with the current attack
can_wall_cling Whether you’re able to wall cling or not
clinging Whether you’re wall clinging or not.
Only functions if can_wall_cling is true
fall_through Whether you can land on platforms or not. false will cause you to fall through all platforms.
go_through Whether you can pass through other players without pushing them away or not.
grav The characters gravitational acceleration
strong_charge How long you’ve been charging a strong attack (0 – 60)
move_cooldown[attack] How long the move is on cooldown for.
0 = not on cooldown

Less Important

These variables can be changed, but usually don’t need to be, as they are normally managed by themselves.

Variable Description
hit_player_obj The instance ID of the last player that you either hit or got hit by. Mainly used for hit_player.gml and got_hit.gml.
last_player The last player that hit you
last_attack The last attack that hit you
last_hbox_num The index of the last hitbox that hit you
old_hsp The hsp to apply when hitpause ends
old_vsp The vsp to apply when hitpause ends
ground_type Is 1 while on a solid block and 2 while on a platform.
marked Whether you’re marked by Maypul
wrapped Whether you’re wrapped or not
wrapped_player The player number of the character that wrapped you
burned Whether you’re on fire or not
burnt_id The player id of the character that burned you
burned_color The palette of Zetterburn to use when setting someone on fire. Should be from 0 to 5.
burn_timer How long you’ve been on fire for.
Automatically extinguishes the fire once it’s above 150
bubbled Whether you’re trapped in Ranno’s bubble or not
bubbled_id The Ranno whose bubble you’re in
bubble_time Time remaining in Ranno’s bubble
poison The number of poison stacks on you
can_freeze_timer The amount of frames left until frozen state ends. Only applicable if the player’s state is PS_FROZEN
frozen_player The player slot that froze you.
plasma_pause Whether you’re in Clairen’s plasma stun or not.
plasma_id the instance ID of the player that stunned you.
plasma_player The player slot that stunned you.
stuck Whether you’re stuck by Elliana’s mine
stuck_id The Elliana that stuck you
clone Whether you’re Forsburn’s clone or not
clones_player_id The owner of this clone
draw_indicator Set to false to hide the character’s overhead HUD
hud_offset_dest The vertical offset the indicator moves towards, relative to the player’s char_height.
old_jump Whether you started the current attack during a double jump with acceleration, like Absa’s double jump. Set this to false to prevent the attack from rising while jump is held
outline_color[R, G, B] Used to change the outline color of the character’s sprite. Should be used in conjunction with init_shader() Reference→
draw_x The horizontal offset to draw the player at. This does not effect hurtboxes or hitboxes.
draw_y The vertical offset to draw the player at. This does not effect hurtboxes or hitboxes.

Gameplay Attributes

These values determine the character’s gameplay properties. These should be set in init.gml, but can also be changed during gameplay. (“Rivals Values” are the range of values used by the default cast of Rivals of Aether).

Variable Rivals Values Description
hurtbox_spr sprites

The sprite to use for hurtbox collisions in most states
crouchbox_spr sprites

The sprite to use for your crouching hurtbox
air_hurtbox_spr sprites

The sprite to use for your hurtbox while aerial
-1 = use hurtbox_spr
hitstun_hurtbox_spr sprites

The sprite to use for your hurtbox while in hitstun
-1 = use hurtbox_spr
knockback_adj .91.2 The multiplier to knockback dealt to you:
1 = default value
higher values = lighter character
lower values = heavier character
walk_speed 34.5 The maximum speed you can achieve while walking, in pixels per frame
walk_accel .2.5 The speed gained per frame while walking
walk_turn_time 6 for all characters The number of frames it takes to turn around
initial_dash_time 816 The number of frames in your initial dash
initial_dash_speed 411 The speed of your initial dash in pixels per frame
dash_speed 4.759 The speed of your run in pixels per frame
dash_turn_time 820 The number of frames it takes to turn while running
dash_turn_accel .12 The acceleration applied when turning while running
dash_stop_time 46 The number of frames it takes to stop while running
dash_stop_percent .25.5 The value to multiply your hsp by when going into idle from dash or dashstop
ground_friction .31 Natural deceleration while on the ground
moonwalk_accel 1.21.4 The acceleration to apply while moonwalking
max_djumps 03 The number of double jumps you can perform before touching the ground again
jump_start_time 5 for all characters The number of frames of jumpsquat minus one
jump_speed 7.612 The vsp applied when fullhopping
short_hop_speed 47.4 The vsp applied when shorthopping
djump_speed 812
-1 for Absa
The vsp applied when double jumping
jump_change 3 for all characters The hsp applied if left or right is held when jumping. Will not slow you down if you’re already going faster. When reversing your momentum with a double jump, this is the maximum hsp you can have
djump_accel -1.4 The amount of acceleration to apply during your double jump.
Allows for Absa-style double jump cancels
djump_accel_start_time 4 The first frame of your double jump that acceleration is applied
djump_accel_end_time 15 The last frame of your double jump that acceleration is applied
leave_ground_max 48 The maximum hsp you can have when you go from grounded to aerial without jumping
air_max_speed 37 The maximum hsp you can accelerate to when in a normal aerial state
max_jump_hsp 48 The maximum hsp you can have when jumping from the ground
air_accel .2.4 The hsp acceleration applied when you hold left or right in a normal aerial state
air_friction .02.07 Natural deceleration applied while in the air.
Also applies while in hitstun
double_jump_time 2440 The number of frames to play the double jump animation.
Most characters have a value of 32 so that the double jump animation transitions into the falling portion of the normal jump animation
gravity_speed .3.6 The gravitational acceleration applied in non-hitstun aerial states
hitstun_grav .45.525 The gravitational acceleration applied in hitstun
max_fall 811 The maximum vsp you can accelerate to while falling normally
fast_fall 1116 The vsp applied when fastfalling
land_time 46 The number of frames in your normal landing state
prat_land_time 324 The number of frames in your prat land state
prat_fall_accel .41.5 A multiplier to your normal horizontal aerial acceleration:
1 = normal
0 = no acceleration
walljump_hsp 47 The horizontal speed to apply while walljumping, in pixels per frame
walljump_vsp 710 The vertical speed to apply while walljumping, in pixels per frame
walljump_time 1832 The number of frames the walljump state takes. Normally 32, but some characters have shorter values
roll_forward_max 911 The speed of your forward roll
roll_backward_max 911 The speed of your backward roll
wave_land_time 612
usually 8
The number of frames your waveland state lasts
wave_land_adj 1.21.5 The multiplier to your initial hsp when wavelanding.
Usually greater than 1
wave_friction 0.15 Grounded deceleration when wavelanding
techroll_speed 811 The speed during techroll’s movement
air_dodge_speed 7.58 The speed during airdodge’s movement
char_height 3674 Used for centering things on the character, placing the overhead HUD, etc
bubble_x -8-8 Used for visually positioning the character in Ranno’s bubble horizontally
bubble_y 010 Used for visually positioning the character in Ranno’s bubble vertically

Animation Attributes

These variables determine the way the character animates during certain states.

Variable Description
wall_frames The number of animation frames to play before you leave the wall
dodge_startup_frames Number of animation frames during parry’s startup. Usually just 1
dodge_active_frames Number of animation frames during parry’s active frames
dodge_recovery_frames Number of animation frames during parry’s recovery frames
tech_active_frames The number of animation frames during tech in place’s invincibility
tech_recovery_frames The number of animation frames during tech in place’s recovery
techroll_startup_frames The number of animation frames during techroll’s startup
techroll_active_frames The number of animation frames during techroll’s movement
techroll_recovery_frames The number of animation frames during techroll’s recovery
air_dodge_startup_frames The number of animation frames during techroll’s startup
air_dodge_active_frames The number of animation frames during techroll’s movement
air_dodge_recovery_frames The number of animation frames during techroll’s recovery
roll_forward_startup_frames The number of animation frames during roll forward’s startup
roll_forward_active_frames The number of animation frames during roll forward’s movement
roll_forward_recovery_frames The number of animation frames during roll forward’s recovery
roll_back_startup_frames The number of animation frames during roll backward’s startup
roll_back_active_frames The number of animation frames during roll backward’s movement
roll_back_recovery_frames The number of animation frames during roll backward’s recovery
idle_anim_speed The speed of your idle animation in anim frames per gameplay frame
walk_anim_speed The speed of your walk animation in anim frames per gameplay frame
dash_anim_speed The speed of your dash animation in anim frames per gameplay frame
crouch_anim_speed The speed of your (held) crouch animation in anim frames per gameplay frame
pratfall_anim_speed The speed of your pratfall animation in anim frames per gameplay frame

Sound Attributes

These variables determine which sounds to play during certain states.

Variable Description
land_sound The sound effect to play when landing
waveland_sound The sound effect to play when wavelanding
jump_sound The sound effect to play when jumping from the ground
djump_sound The sound effect to play when double jumping
air_dodge_sound The sound effect to play when airdodging
landing_lag_sound The sound effect to play when landing during an attack

AI variables

Variables used by the AI.

Variable Description
ai_target The current target of the AI.
ai_recovering Is true while the AI is attempting to recover back onto the stage.
temp_level The difficulty level of the AI, from 1 to 9.
ai_attack_timer The amount of frames since the AI last attacked.
ai_attack_time The minimum amount of frames before the AI can try attacking again.
ready_to_attack Is true if the AI can perform an attack.
ai_going_into_attack Is true if the AI is attempting to attack.
ai_going_left Is true if the AI is moving left.
ai_going_right Is true if the AI is moving right.

Player States

States

Use these values when changing states with set_state( state )  Reference→

To check the state of a character, use the state variable.

PS_WALK
PS_WALK_TURN
PS_DASH_START
PS_DASH
PS_DASH_STOP
PS_DASH_TURN
PS_WAVELAND


PS_AIR_DODGE
PS_PARRY_START

can transition into rolls or parry, depending on direction held
PS_PARRY
PS_ROLL_BACKWARD
PS_ROLL_FORWARD
PS_TECH_GROUND
PS_TECH_BACKWARD
PS_TECH_FORWARD
PS_WALL_TECH


PS_WRAPPED
PS_FROZEN

PS_IDLE
PS_IDLE_AIR
PS_CROUCH
PS_JUMPSQUAT
PS_FIRST_JUMP
PS_DOUBLE_JUMP
PS_WALL_JUMP
PS_LAND


PS_ATTACK_AIR
PS_ATTACK_GROUND
PS_LANDING_LAG


PS_HITSTUN
PS_HITSTUN_LAND
PS_TUMBLE
PS_PRATFALL
PS_PRATLAND


PS_SPAWN
PS_RESPAWN
PS_DEAD

State Categories

These values are set automatically depending on the state and should not be manually changed. To check a character’s state category, use the state_cat variable.

SC_HITSTUN ▼
PS_HITSTUN
PS_HITSTUN_LAND
PS_WRAPPED
PS_FROZEN

SC_AIR_NEUTRAL ▼
PS_IDLE_AIR
PS_FIRST_JUMP
PS_DOUBLE_JUMP
PS_TUMBLE

SC_AIR_COMMITTED ▼
PS_WALL_JUMP
PS_ATTACK_AIR
PS_PRATFALL
PS_AIR_DODGE
PS_WALL_TECH
PS_RESPAWN
PS_DEAD
SC_GROUND_NEUTRAL ▼
PS_IDLE
PS_CROUCH
PS_WALK


SC_GROUND_COMMITTED ▼
PS_LAND
PS_SPAWN
PS_PRATLAND
PS_LANDING_LAG
PS_WALK_TURN
PS_ATTACK_GROUND
PS_WAVELAND
PS_DASH_START
PS_DASH
PS_DASH_TURN
PS_DASH_STOP
PS_PARRY_START
PS_PARRY
PS_TECH_GROUND
PS_TECH_BACKWARD
PS_TECH_FORWARD
PS_ROLL_BACKWARD
PS_ROLL_FORWARD
PS_JUMPSQUAT

Articles

Articles are non-hitbox objects that your character can create. These include objects that can be placed on the stage like Orcane’s puddle, objects that create hitboxes when enemies get near like Lily, objects that follow you around like Sein, objects that block player movement like Kragg’s rock, objects that act like platforms like Shovel Knight’s Mobile Gear, and pretty much anything else you can think of.

Each modded character has access to 5 different articles: obj_article1, obj_article2, obj_article3, obj_article_solid, and obj_article_platform. The solid article blocks player movement, while the platform article will only block player movement if they land on it.

Articles have a few built-in variables that allow you to modify the way they react to certain scenarios:

Variable Description
hsp The horizontal speed of the article
vsp The vertical speed of the article
free Whether the article is in the air or not
can_be_grounded Determines if the article follows platforms when free == false.
false by default
ignores_walls Determines if the article goes through walls.
true by default
hit_wall Is true if the article hit a wall due to its own movement
spr_dir The direction the article is facing: 1 = right, -1 = left
player_id The id of the object’s owner
hitstop The frames remaining in hitpause.
Hitpause automatically prevents movement
uses_shader Whether the article is recolored by the player’s shader or not