News

Functions

These are all of the functions you can use in your scripts.

Available Common GML Functions

General Functions

  • Player-related Functions

    Sprite Functions

    Sound Functions

    View Functions

    Custom Colors Functions

    • set_num_palettes( num )  Reference→
    • set_color_profile_slot( color_slot, shade_slot, R, G, B )  Reference→
    • set_color_profile_slot_range( color_slot, H, S, V )  Reference→
    • get_color_profile_slot_r( color_slot, shade_slot )  Reference→
    • get_color_profile_slot_g( color_slot, shade_slot )  Reference→
    • get_color_profile_slot_b( color_slot, shade_slot )  Reference→
    • set_character_color_slot( shade_slot, R, G, B )  Reference→
    • set_article_color_slot( shade_slot, R, G, B )  Reference→
    • set_character_color_shading( shade_slot, value )  Reference→

    Shader Functions

    Attack/Hitbox Grid Functions

    • get_attack_value( attack, index )  Reference→
    • set_attack_value( attack, index, value )  Reference→
    • reset_attack_value( attack, index )  Reference→
    • get_window_value( attack, window, index )  Reference→
    • set_window_value( attack, window, index, value )  Reference→
    • reset_window_value( attack, window, index )  Reference→
    • get_hitbox_value( attack, hitbox, index )  Reference→
    • set_hitbox_value( attack, hitbox, index, value )  Reference→
    • reset_hitbox_value( attack, hitbox, index )  Reference→
    • get_num_hitboxes( attack )  Reference→
    • set_num_hitboxes( attack, value )  Reference→
    • reset_num_hitboxes( attack )  Reference→
    • destroy_hitboxes()  Reference→
    • get_hitbox_angle( hitbox_id )  Reference→
    • get_kb_formula( damage, kb_adj, kb_mult, hbox_damage, hbox_bkb, hbox_kb_scale )  Reference→
    • get_hitstun_formula( damage, kb_adj, kb_mult, hbox_damage, hbox_bkb, hbox_kb_scale )  Reference→
    • get_hitstop_formula( damage, hbox_damage, hbox_hitstop, hbox_hitstop_scale, hbox_extra_hitstop )  Reference→
    • create_hitbox( attack, hitbox_num, x, y )  Reference→
    • create_deathbox( x, y, w, h, player, free, shape, lifespan, bg_type )  Reference→

    Stage Scripting Functions

    Easing Functions

    Interpolates between start and end over the total time with current time being your current position in the interpolation. This website can help to understand the effect of each function.

    • ease_linear( start, end, current time, total time )
    • ease_backIn( start, end, current time, total time, overshoot )
    • ease_backOut( start, end, current time, total time, overshoot )
    • ease_backInOut( start, end, current time, total time, overshoot )
    • ease_bounceIn( start, end, current time, total time )
    • ease_bounceInOut( start, end, current time, total time )
    • ease_circIn( start, end, current time, total time )
    • ease_circOut( start, end, current time, total time )
    • ease_circInOut( start, end, current time, total time )
    • ease_cubeIn( start, end, current time, total time )
    • ease_cubeOut( start, end, current time, total time )
    • ease_cubeInOut( start, end, current time, total time )
    • ease_expoIn( start, end, current time, total time )
    • ease_expoOut( start, end, current time, total time )
    • ease_expoInOut( start, end, current time, total time )
    • ease_quadIn( start, end, current time, total time )
    • ease_quadOut( start, end, current time, total time )
    • ease_quadInOut( start, end, current time, total time )
    • ease_quartIn( start, end, current time, total time )
    • ease_quartOut( start, end, current time, total time )
    • ease_quartInOut( start, end, current time, total time )
    • ease_sineIn( start, end, current time, total time )
    • ease_sineOut( start, end, current time, total time )
    • ease_sineInOut( start, end, current time, total time )

Scripts

Avoid including empty scripts, since that will result in a crash when the item is loaded. If you don’t need any code for, say, the character’s death event, do not include death.gml at all or leave a comment line in it.

Init scripts

  • load.gml – called right after the item is loaded into the game. This is where you would normally set sprites’ origins and bounding boxes. To help place origins correctly, use the Rivals Workshop Helper.
  • colors.gmlused to generate the alternate color palettes for the character.
  • init.gml – called once the player object is created. This is where you want to initialize most of the player variables.
  • other_init.gml – called by all other players in a match that includes your character. This is where you want to initialize variables that you can change on other players.
  • init_shader.gml – called every time the init_shader() function is run, either by the game or when the function is called by the user. Used for refreshing the character’s shader values after changing them. The game itself runs init_shader() when changing the character’s color for things like parrying or flashing during hitstun.

Animation and Draw scripts

  • animation.gml – called every frame. Used for animation purposes such as changing the character’s sprite_index and image_index.
  • pre_draw.gml – used to draw sprites other than the player’s sprite. Everything will be drawn behind the player character.
  • post_draw.gml – used to draw sprites other than the player’s sprite. Everything will be drawn in front of the player character.
  • other_pre_draw.gml – used by opponent characters to draw sprites underneath themselves.
    Use other_player_id to reference your workshop character.
  • other_post_draw.gml – used by opponent characters to draw sprites on top of themselves.
    Use other_player_id to reference your workshop character.
  • debug_draw.gml – used to draw debug text/sprites. Everything will be drawn in front of all game objects.
  • draw_hud.gml – used to draw on top of the player’s HUD. To get the position of the HUD, use temp_x and temp_y.
  • css_draw.gml – used to draw things on the character select screen when the character is selected. in this script, x and y will refer to the top left corner of the player’s character profile.
  • article[index]_pre_draw.gml – used to draw things on custom article objects. Everything will be drawn behind the article running the script.
    For solid and platform articles, use articlesolid_pre_draw.gml and articleplatform_pre_draw.gml.
  • article[index]_post_draw.gml – used to draw things on custom article objects. Everything will be drawn in front of the article running the script.
    For solid and platform articles, use articlesolid_pre_draw.gml and articleplatform_pre_draw.gml.

Gameplay-related scripts

  • update.gml – called every frame. Used for gameplay mechanics.
  • death.gml – called when the character dies. Useful for resetting variables or deleting articles.
  • set_attack.gml – called at the beginning of every attack. Used to change things like Dspecial into Dspecial_air under certain conditions.
  • attack_update.gml – called every frame, but only if the character is performing an attack (attack type is stored inside the attack variable).
  • /attacks/[attack_name].gml – called after init.gml. This is where you want to use the Attack/Hitbox Grid Functions to modify attack grids and hitbox grids for every attack type [list of attack names]. Note that all attack scripts should be placed inside the /attacks folder.
  • hit_player.gml – called when you hit another player with any hitbox. Use hit_player_obj to reference the player object that was hit. Use hit_player to reference which player you hit (player 1, player 2, etc). Use my_hitboxID to reference the hitbox you hit them with. To change the knockback given, edit hit_player_obj.orig_knock. You can disable the purple kill effect by setting hit_player_obj.should_make_shockwave to false.
  • got_hit.gml – called when you are hit by any hitbox. Use hit_player_obj to reference the player object that hit you. Use hit_player to reference which player hit you (player 1, player 2, etc). Use enemy_hitboxID to reference the hitbox you were hit with. To change the knockback received, edit orig_knock. You can disable the purple kill effect by setting should_make_shockwave to false.
  • parry.gml – called when you parry a hitbox. Use hit_player_obj to reference the player object whose hitbox you parried. Use hit_player to reference which player owns the hitbox (player 1, player 2, etc). Use enemy_hitboxID to reference the hitbox you parried.
  • got_parried.gml – called when your hitbox is parried. Use hit_player_obj to reference the player object who parried your hitbox. Use hit_player to reference which player parried your hitbox (player 1, player 2, etc). Use my_hitboxID to reference the hitbox that was parried.
  • user_event[0 – 15].gml – called only by running the corresponding user_event() function. Used for whatever the user wants, though usually it’s for any blocks of code that would be run in multiple different scenarios.

Article and Hitbox scripts

  • article[index]_init.gml – called once the specified custom article object is created. For solid and platform articles, use articlesolid_init.gml and articleplatform_init.gml.
  • article[index]_update.gml – called every frame for the specified custom article object. For solid and platform articles, use articlesolid_update.gml and articleplatform_update.gml.
  • hitbox_init.gml – called when one of the character’s hitboxes is created. This script is called from the perspective of the hitbox.
  • hitbox_update.gml – called every frame for each of the character’s hitboxes. This script is called from the perspective of the hitbox.

AI scripts

  • ai_init.gml – called when a CPU version of the character is created. This script should populate the following arrays with attack indexes.

    The arrays can be any size. Each entry in the array has the same probability of being selected. The entries in the arrays should only be the default attacks values – AT_DSPECIAL_AIR is not valid, for instance, and should just be AT_DSPECIAL.

  • ai_update.gml – called every frame for a CPU version of the character. Used for special cases like recovery and complex special moves. Use ai_target to reference the player object the CPU is currently targeting. Use ai_recovering to check if the CPU is recovering or not. Use temp_level to reference the CPU’s difficulty level (1-9).

Frostbite Preview: The Cubs

Last month capped off season 2 of the Rivals Championship Series with a thrilling event at Genesis 5. This week, the competitive Rivals action keeps rolling with Frostbite 2018. Many familiar faces will head to the Midwest to challenge for their shot at tournament glory. For two players in particular, this will be an opportunity to prove their merit as top competitors. The Kings and Cubs compendium fund allowed unranked players (Cubs) a shot at earning a trip to Frostbite. Today, we’d like to help you get to know our Cubs, BlooD and Quote_A a little better.

kings-and-cubs@700

How did you get into competitive Rivals?

BlooD: My competitive background is a little weird. I’ve been a long time Halo player. I went to large events since MLG Dallas 2006. However, Halo slowly died off leaving me with a competitive void. I joined the military and served my time. Afterwards, I came back home and started working at a LAN center. There I found Smash 4 and I’ve been competing in that game since. After I began to get bored with Smash 4, a friend showed me Rivals and I instantly fell in love with the game. The combo game just was so fun and fresh. Now that’s literally my main focus with my competitive drive.

Quote_A: I grew up on Smash Bros, so before Rivals was announced, I was a Smash 4 player. One day I saw Dan’s posts about Rivals on /r/smashbros, back when he was first starting development, and was immediately interested. I bought the game as soon as I could, and joined the actual competitive scene when the game got a ranked mode in May 2016.

What does it mean to you to be competing at Frostbite as an “unproven” Cub?

BlooD: I was completely shocked and humbled when I was chosen as the first Cub representative. I’ve only been playing since October and I made that clear when I submitted my application. It does set expectations kinda high. Being chosen over some highly skilled players weighs down on my shoulders a little bit. However, I will do my best.

Quote_A: I’m not exactly “unproven”, because I used to be considered a top player. However, I’d like to prove to everyone that I’m not washed up, and that I can still hold my own against some of the best players of the game. I might only just be a Cub going into the tournament, but I intend to show that I can be a king.

How did you choose your main in Rivals?

BlooD: My main in Rivals was picked because I like heavies. I played DK at a decently high level in Smash 4, so I instantly tried Etalus and Kragg. Etalus was the one I chose, mostly because of that sweet upair grab. I thought it looked sick. Also it made my friend complain when I played him, so it was win/win.

Quot_A: When I first got the game, the first thing I did was jump into practice mode on random, and played a little bit of each character. Out of all the characters in that build, Orcane stuck out to me because of his down tilt, which was super easy to start combos with.
I actually kind of dual-mained Zetterburn with Orcane for a while on release, but then I saw some gfys from Turquoise on the Rivals subreddit and wanted to be able to do cool things like he was doing. So I stuck with Orcane!

Who are you most looking forward to facing in bracket at Frostbite?

BlooD: Frostbite is going to be my first large tournament for Rivals of Aether, so I don’t expect to do great, but I have been grinding and can keep up with the best of them. I have only been playing since mid-October, so I think where I am at competitively already is pretty good. People I would like to play against are: Fullstream, Windows, Lord Bagel… or literally anyone in the top 50. I think I can prove my skill against these players.

Quote_A: I’m most looking forward to fighting MSB and Windows. I go relatively even with them in friendlies, but haven’t had good chances to play them in a tournament bracket for a while. I’m excited to see how I stack up under pressure.

BlooD-frostbite-bracket

At Genesis 5 we saw the reveal for the new Earth Rival, Sylvanos. What are your opinions of the character based on what we’ve seen?

BlooD: Sylvanos looks insane! He’s a zoner… but a heavy. Like, thats super rare in platformers. He probably will be a bit broken in the right hands, but I cant wait to try it out.

Quote_A: He looks like a really fun character! Right now he’s got a couple of things that look pretty busted, but I think he’ll be alright after the beta testers get access to him. I’m excited to play him.

Now some less tournament-focused questions: When you’re not travelling to Rivals tournaments, what do you like to do in your free time?

BlooD: My free time is very limited. I am a stay-at-home dad so that is my main focus. I’ve been coined as Papa BlooD in my local community because of it and honestly I am blessed being able to stay home with my daughter every day.

Quote_A: I play Rivals online instead! When I’m not playing Rivals, I play a lot of Path of Exile. And when I’m not playing anything, I’m probably working on homework because college is horrible.

What are the three best types of breakfast food?

BlooD: The best breakfast foods are:
1. Pancakes
2. Cereal
3. Bacon
(list is ordered)

QuoteA: Pancakes, scrambled eggs, and cereal. Fruity Pebbles, please sponsor me.

Who would win in a fight between Orcane and Blastoise?

BlooD: Okay this is a difficult question. Blastoise is strong… but if you have seen Adam Carra’s video, you would know Orcane is savage as hell. He doesn’t take prisoners.

Quote_A: Orcane could just back air Blastoise before he even had a chance to do anything, so I’m gonna go with Orcane.

Our thanks to BlooD and Quote_A for their time. Be sure to wish them luck on Twitter as they prepare for the tournament. You can catch all the Rivals action at Frostbite 2018 beginning on February 9th!

Rivals of Aether is now on Anther’s Ladder!

Last weekend Rivals of Aether quietly joined the list of games available on Anther’s Ladder. Now that the kinks are worked out and it’s a brand new month, it’s time to make some noise for one of the best Smash community sites out there. In addition to announcements throughout our community today, we’re also kicking off a raffle where you can earn more entries by playing. Read on to learn more.

What is Anther’s Ladder?

For the uninitiated, Anther’s Ladder is a community site and tool developed by Anther to make networking and finding online matches quick and effortless. Rivals players can now use the site to chat, help themselves find opponents, see detailed ladder history by character, and other great features that supplement Rivals’ built in netplay.

anther-chat@700-v3

 

To get started, all you have to do is create an account on the site and add ‘Rivals of Aether’ to the list of games you’d like to play. After that you can find opponents in chat and start matchmaking in friendlies or ranked games. Make sure you have your Steam profile handy as you’ll need to invite your opponent through friendly matches.

anther-matchmaking-list@700-v2

CELEBRATION RAFFLE

To celebrate the addition of Rivals to Anther’s ladder, we’re holding a raffle for some sweet Rivals posters and DLC.

anthers-ladder-promo@700-v2

To enter, make sure you’re listed on season one of Anther’s ranked ladder by the end 2/16/18. Players will also receive an additional entry for every 10 games on their ranked record! For example, if the contest ended today Menace would receive 3 chances (1 for being listed on the ladder and an additional 2 for having 22 games played).

menace

The contest winner will receive their choice of Rivals MuffinBros poster by Eric Y Huang, as well as a bundle of some of the newest DLC. Good luck to everyone and we hope you enjoy this new way to play!

Community Roundup #15

Welcome back for the latest community roundup, where we highlight our favorite fan-made Rivals art, music, videos, and more. This is #15 in the series and will have a slight lean towards Sylvanos since there has been a lot of great fan reactions following his announcement.

ART

Sylvanos certainly seemed to catch a lot of artists’ eyes, with fan art already showing up just hours after his reveal. A few people even wanted to explore his cuter side.

 

 

 

 

 

 

 

 

 

We even got a baby Maypul (who was pretty upset in the trailer).

 

 

 

 

 

A post shared by LobaDraws (@lobadraws) on

 

 

 

A few local scenes also put out new power rankings in January. As far as we’re concerned these are works out of art as well. If you’re a Rivals player in these areas make sure you check out your locals!

 

 

 

MUSIC

We love this super chill lofi mix of the main menu music that [ p w r ] put together using sound effects from Maypul.

VIDEOS

THS | Mokun and some other Colombian players have also been putting in work to grow their local scene. If you’re interested in Rivals from around the world you can see their latest top 4 right here:

We featured Jarek’s highlight video in our event wrap-up for singles, but he also put a lot of work into a doubles version that people might have missed.

OTHER GOOD STUFF

2ND GUEST CHARACTER LEAKED (REAL) from RivalsOfAether

Absa Gang from RivalsOfAether

That’s it for this community roundup! Let us know in the comments if we missed any of your favorites, and be sure to give the creators some love.