Rivals of Aether

Rivals of Aether

46 ratings
Amber Compatibility Tutorial (Hugging/Special Animation + Plushies)
By BountyXSnipe
Learn how to make your workshop character compatible with the affectionate ninja kitty, Amber. Hugs and plushies!
   
Award
Favorite
Favorited
Unfavorite
How to Add Plushies (Easy)


Step 1:
First. Make a plush sprite for Amber. Ideally 13x13 pixels but not limited to that size. The game will manually scale this sprite 2x when Amber pulls out this plush. Save it as any file name you want. Put this inside your character's sprite folder.


Step 2:
Inside your character's init.gml script, put
plushForAmber
inside there. Can be on any line. Make sprite_get reference the exact name of the sprite that will be used for Amber's plush. (Do not include "strip1" in the name)


Step 3:
Test it in-game with Amber using Forward + Taunt. If done right, Amber should pull out your character's plush!


Non-compatible characters, or incorrectly setup plush will have Amber default to her own plush
How to Add Hugs/Special Animation Interaction (Advanced)


Step 1:
Animate the interaction with both characters visible. It is recommended to have these characters on different layers for reasons explained later. The animation can be as long or as short as you want. Looping windows are allowed as well. Your character can be rendered in front or behind Amber which will be explained later.


Step 1.1:
The pivot point for the sprite is set on Amber. As shown with the green crosshair in this pic.


Step 2:
Save the animation into 2 different sprite strips. One for Amber and one for your character. Hide one of the layers when doing this. Make sure they're scaled 2x to fit with the game's pixel size ratio. Changing the canvas size between characters is not recommended. The file names can be any name you want.



Step 3:
Open up your character's init.gml. Copy and paste the following. The comments explain what these variables are.
//Amber interaction variables amber_herObj = noone; //The object ID of Amber when she hugs. Amber's own script will set this when the hug is inititated amber_thisHugSprite = sprite_get("sandbert_hug"); amber_herHugSprite = sprite_get("amber_hug"); amber_startHug = false; //This variable is set true from Amber's scripts amber_thisSpriteInFront = true; //When true, this character's sprite is rendered over Amber's sprite amber_autoTurnToHer = true; //This character will automatically face towards Amber upon hug activatation when true amber_hugStartPos[0] = 42; //The x target offset point (from Amber's pos) where the player should hug Amber at. amber_hugStartPos[1] = 0; //The y target offset point. Recommended to keep this at 0 for grounded interaction amber_hugExitPos[0] = 42; //The x target offset point (from Amber's pos) where the player stands at when exiting hug state. amber_hugExitPos[1] = 0; //The y target offset point. //The x target offset positions will inherit the character's spr_dir when this is true. //Set this to true for character interactions that face toward each other such as hugging //Set this to false for centered interaction animations amber_useSprDirOffset = true; amber_hugExitTimer = 30; //How many frames should pass before either player can exit the hug window loop amber_hugExitWindow = 3; //The window to jump to when either player presses a button to exit hug loop


Step 4:
Open up load.gml. Set the pivot point for the sprites. Both of these should focus on Amber's position as shown in the previous screenshot (Step 1.1)


Step 5:
Inside update.gml, paste this into the script. We are setting Amber's AT_EXTRA_3 to match the animation windows for the interaction. Do not set Amber's sprites in attack_values. The variables from init are the ones that set these sprites.
//Amber hug compatibility if (amber_startHug == true) //Amber will set this bool to true when this player accepts the hug { with (amber_herObj) //Access Amber's player object and set the values { //Set the window values for Amber's hugging. DO NOT change Amber's sprites //in the attack_values set_window_value(AT_EXTRA_3, 1, AG_WINDOW_TYPE, 1); //etc.... //Important. Puts Amber in startup hug state (2). //Editing this variable not recommended amberHugState = 2; } //Important. Puts this character in startup hug state (2). //Editing this variable not recommended oPlayerHugAmberState = 2; //Set this bool back to false so that this doesn't loop amber_startHug = false; }


Step 6:
Test the interaction in-game. Amber's interactive taunt is done by doing Up + Taunt.


Step 6.1:
If you do not have a 2nd controller, just control Amber to taunt near your character in training mode. If the compatibility works, they should play the animation. Looping window taunts can be cancelled by pressing shield, attack or special.


Notes: The interaction will read the pallet colors. If your character uses special colors that are altered in-game, make sure the sprite animation follows exactly how your character follows it.

Amber's eyelashes uses a dark blue color. Make sure to include the exact color in her animations.


Other Notes:
The interaction does not have to be strictly hugging. It can be petting or any kind of interactive animation. Get creative!



Disclaimer: No inappropriate/explicit animations please, or they may get blacklisted.
Resources + Templates
6 Comments
Kart 2 Jan, 2024 @ 12:57pm 
this mod. is a masterpiece
Krispy Korpse 2 Jan, 2024 @ 10:25am 
Important: Make sure your character's URL is not blank, otherwise it will crash the game.
Dex Dousky 15 May, 2023 @ 8:13am 
pog
Kejie 25 May, 2021 @ 2:23pm 
its cute but im not bout to do allat
A Box of Rocks 19 Nov, 2020 @ 5:59am 
"Disclaimer: No inappropriate/explicit animations please, or they may get blacklisted."
good.
Mercho the Fooly 2 Oct, 2020 @ 4:52am 
oh god this is CUTE!!