» Uncategorized Posts

Stages

Custom stages can be created directly in the game’s Stage Editor by selecting (+ NEW STAGE) in the Workshop menu. There are two types of custom stages:

  • Standard stages – Allows you to use in-game assets to create a tiled stage quickly and easily. Ideal for prototyping your layouts before turning them into a fully-featured Advanced stage.
  • Advanced stages – Allows you to skin your creations with custom graphics and more. You can change any Standard stage into an Advanced stage by toggling the setting in the editor’s Stage Parameters menu. Additionally, custom scripting is supported on Advanced stages.
Blank Advanced Stage Template

Advanced custom stages are structured similarly to other custom items, with config.ini and the following folders: /sprites and /sounds. You can read more about this structure on the introduction page, use the default blank stage template in the editor program, or reference Bamboo Lodge (our official example for an Advanced Stage).

For Advanced stages, the core stage folder should also include:

  • preview.png [any size, but 16:9 aspect ratio, 960×540 recommended] – used in the preview window on the Steam Workshop website.
  • thumb.png [56x40px] – used for the in-game stage select menu.
  • thumb_big.png [242x130px] – displayed in the large preview window when hovering over a stage in the stage select menu.

Background Graphics

Advanced stages support a total of 9 image layers including 1 ground layer, 2 foreground (FG) layers, and 6 background (BG) layers.

The image files are automatically detected in the /sprites directory upon loading the stage, using the following naming format: bg#_strip#.png, where “bg#” denotes the layer number and “strip#” denotes the number of animation frames the image contains.

By default, all graphics (aside from ground_strip#.png) are positioned at the absolute center of the stage, but this can be changed by adjusting the Offset X and Offset Y options in the editor’s Stage Parameters menu.

In Aether mode, stages will use image files that have the prefix “a_” if one exists, otherwise using the normal version. For example, you can override the ground layer’s image in aether mode by adding a file named “a_ground.png”.


In order to conserve texture memory and ensure smooth performance, it is recommended that you use smaller background graphics combined with the BG-Tiling option in the editor’s Stage Parameters menu.

Background Music

Custom stages have access to all stage music from the game soundtrack in the editor’s Stage Parameters menu, and also support up to 4 custom tracks like the base stages.

To add a custom track, go to the /sounds directory and add or replace music_loop.ogg with an ogg file of your choice. Additional tracks can also be included under the names music_loop2.ogg, music_loop3.ogg, and music_loop4.ogg.

The game will randomly select one of these ogg files to use as the background music when the stage begins.

Scripting

Visit the stage scripting page to learn more about writing code for Advanced stages.

Buddies

Custom buddies are structured the same way as custom characters, with config.ini and the following folders: /sprites, /scripts, /sounds. You can read more about this structure on the introduction page, use a blank buddy template, or reference our example buddy Sandbert Jr.

Sandbert Jr. Workshop Download Page

The core buddy folder should also include:

  • icon.png [15x15px] – used for the in-game buddies sub-menu
  • preview.png [any size, but 16:9 aspect ratio, 960×540 recommended] – used in the preview window on the Steam Workshop website

A buddy can only execute load.gml and update.gml custom scripts.

Buddies’ animation names also differ from the ones used by characters.


By default a buddy is not affected by its owner’s custom colors. However, you can define a list of characters you want to affect your buddy’s colors by calling add_compatiable_urls(). The function accepts both urls of published workshop characters and default character indexes. If you want the buddy to be affected by any character’s custom colors, pass all to the function.

Example, called from load.gml:

// this buddy can only borrow Zetterburn's and Sandbert's custom colors:
add_compatiable_urls( CH_ZETTERBURN, 1865940669 );
// this buddy will borrow any character's custom colors (including both workshop and default ones):
add_compatiable_urls( all );

Variables

These are all the variables you can access for pet_obj:

Variable Default Description
type 0 The type of buddy
0 = grounded
1 = flying
can_switch_type false Whether the buddy will automatically switch type after going through the wait animation (in the air, the buddy will fly toward their landing point, then go into the wait animation)
idle_spr sprite_get( “idle” ) The sprite to loop when idle
run_spr sprite_get( “run” ) The sprite to loop when running
turn_spr sprite_get( “turn” ) The sprite to play when turning around (should turn from facing left to right)
ledge_spr sprite_get( “ledge” ) The sprite to play when idling at ledge
wait_spr sprite_get( “wait” ) The sprite to play when idling normally
taunt_spr sprite_get( “taunt” ) The sprite to play when taunting
pet_w 30 The approximate width of the buddy, in pixels
run_speed 3 The speed of the run state, in pixels per frame
max_run_dist 200 The distance you can get away from the buddy before it starts to run toward you. Should be a fair bit more than double pet_w to avoid stuttering
state The current state of the buddy:
“idle”
“run”
“taunt”
teetering If the buddy is in their ledge animation. Only relevant if state == “idle”
waiting If the buddy is in their wait animation. Only relevant if state == “idle”
state_timer The number of frames since starting the current state. This value is also reset when starting the ledge or wait animations

Extra Variables

In case can_switch_type is set to true, you will also need to initialize the following variables in load.gml:

Variable Description
grnd_idle_spr The sprite to loop when idle on ground
grnd_run_spr The sprite to loop when running on ground
grnd_turn_spr The sprite to play when turning on ground. Should turn from facing left to right
grnd_wait_spr The sprite to play when idling on ground. Should transition from grnd_idle_spr to air_idle_spr)
grnd_taunt_spr The sprite to play when taunting on ground
air_idle_spr The sprite to loop when idle in the air
air_run_spr The sprite to loop when moving in the air
air_turn_spr The sprite to play when turning in the air. Should turn from facing left to right
air_wait_spr The sprite to play when idling in the air. Should transition from air_idle_spr to grnd_idle_spr)
air_taunt_spr The sprite to play when taunting in the air

Uploading Your Item

When all of your assets are in the correct place and you’re ready to upload to the workshop, navigate to Extras > Steam Workshop from the main menu. Make sure you have Steam overlay enabled in game to see all of the screens after submission.

If you encounter an error when uploading, refer to Steam’s error code list to narrow down the issue.

Config.ini

All workshop items (characters, stages, and buddies) need a config.ini file to indicate which type of workshop item it is. This file also provides useful information about the workshop item. If this is configured incorrectly your character cannot be uploaded.

  • type0 for character, 1 for buddy, 2 for stage
  • name – the name of the workshop item
  • description – a short description of the workshop item. This can be left blank and edited via the Steam client
  • major version – must be manually updated in the config.ini file. Displayed on the Steam workshop page, so that people can track updated subscriptions
  • minor version – automatically updates every time you upload a new version of your item. Displayed on the Steam workshop page, so that people can track updated subscriptions
  • author – will override your Steam nickname if filled
  • url – in case you want to update an item that is already loaded into Steam workshop (instead of creating a new one), provide a link to it here. Include only the id part of the link (i.e. 1875062006). You can only update an item if you are its author, and this should be empty if you are uploading a new item.
  • rivals 2 contest – if set to 1, the item will be submitted with the Rivals 2 Contest Steam Workshop tag, a requirement for submissions to our Workshop Character Creation Contest.
  • finished – if set to 1, the item will be submitted with the Finished Steam Workshop tag, marking that your item is fully playable and not a WIP
  • plural – if set to 1, the results screen will display “win” instead of “wins,” similar to how it is for Ori & Sein
  • info1 – Page 1 of additional information about a character that you can read on the character select screen
  • info2 – Page 2 of additional information about a character that you can read on the character select screen
  • info3 – Page 3 of additional information about a character that you can read on the character select screen
  • bg color – Background color shown in the character select screen, usually matching the character’s element. Accepts the following keywords:
    “red”/“fire”
    “pink”/“air”
    “blue”/“water”
    “green”/“earth”
    “none”/“aether”/“purple”
    “custom”
  • bg red – The red value of the custom background color, from 0 to 255.
    Only applies if bg color is set to “custom”.
  • bg green – The green value of the custom background color, from 0 to 255.
    Only applies if bg color is set to “custom”.
  • bg blue – The blue value of the custom background color, from 0 to 255.
    Only applies if bg color is set to “custom”.

Introduction

Looking for how to play workshop characters instead of make them? Follow these instructions to access the open beta.

Tools

If you’d like to create your own workshop characters, we recommend you use this blank character template to start out. We also recommend GMEdit as your code editor for Rivals Workshop characters. This program was recently updated to specifically include support for Rivals Steam Workshop. To access this beta version with Rivals dialect support:

File Structure

A great place to start is by taking a look at the two example characters we created. Sandbert is a good example of a simple character while Guadua goes deeper with some more exotic moves and designs.

Sandbert Workshop Download Page
Guadua Workshop Download Page

Workshop characters and stages that you are working on need their files placed within your Rivals AppData folder. Files stored locally in this working directory can even be updated during a match by pressing “F5” to apply your latest changes.

Workshop items that you subscribe to and download from the Steam Workshop are located elsewhere. To find workshop content that you’ve downloaded from Steam and move a copy into your working directory, search within:

C:\Program Files (x86)\Steam\steamapps\workshop\content\383980

and copy the character folder here:

C:\Users\{Your Account}\AppData\Local\RivalsofAether\workshop

or stage folder here:

C:\Users\{Your Account}\AppData\Local\RivalsofAether\stages

If your steam library is installed in an area that’s not the default, you can also do a search for the Rivals app ID (383980) to find Steam’s Workshop download folder. If done correctly you should now see the additional content in your game. An item itself should be packed inside a folder and should contain the following files:

  • config.ini – a file with all general info about your item. Read more→
  • /scripts folder with all the custom scripts in .gml format. Read more→
  • /sprites folder with all custom images in .png format. Read more→
  • /sounds folder with all custom sounds in .ogg format. Read more→
  • charselect.png [102x72px] – a preview for the in-game character select menu, usually with the character facing right
  • hud.png [48x32px] – used in the bottom HUD during gameplay
  • hurt.png [48x32px] – used in the bottom HUD while being launched
  • icon.png [15x15px] – used for the in-game workshop items list and various HUDs
  • offscreen.png [34x34px] – used when the player is offscreen. Use this template to make it fit inside the offscreen indicator
  • portrait.png [350x350px] – large portrait showed on Steam workshop page and on the after-match results screen
  • preview.png [any size, but 16:9 aspect ratio, 960×540 recommended] – used in the preview window on the Steam Workshop website
  • result_small.png [79x31px] – usually a cropped, flipped (to face left) version of charselect.png. Used in the results screen