399 N. Euclid Ave St. Louis MO 63108 | (314) 367-6731 | Monday - Saturday 10am-8pm Sunday 10am-6pm | Directions & Parking
Fix: This is a known bug in older HUD mods that don’t poll the game’s input map dynamically. Use Modern HUD+ (v4+) which reads the current binding in real-time.
Use this if you are trying to script a HUD element using the Sonic 3 A.I.R. API (AngelScript). sonic 3 air mod transform button hud
// Sonic 3 A.I.R. Transform Button HUD Script
// Draws a button prompt when the player can transform.
class ScriptTransformHUD : IModdedCharacterData
// Load the sprite for the button (e.g., a generic 'Y' button graphic)
Sprite@ buttonSprite = getSprite("ui_transform_button");
void OnRenderHUD(Renderer@ renderer, int playerIndex)
// Get the player object
Player@ player = GetPlayer(playerIndex);
// Check if player exists and is Sonic (or applicable character)
if (player !is null && player.character == Character_Sonic)
// Check conditions: Is Super form available? Do we have rings?
bool canTransform = (player.rings >= 50) && (!player.isSuper);
if (canTransform)
// Define screen position (Bottom left, above ring counter)
int xPos = 20;
int yPos = renderer.getHeight() - 80;
// Draw the Button Icon
renderer.drawSprite(buttonSprite, xPos, yPos);
// Optional: Draw text "TRANSFORM" next to it
renderer.drawText(xPos + 30, yPos + 5, "TRANSFORM", Color(255, 255, 0));
In the vanilla game, transforming mid-air is impossible without pausing (you land before you can menu). This mod allows true mid-air transformation. This enables "Flight Canceling"—for example, using Tails to fly, switching to Sonic mid-air, and then performing an air dash. Speedrunners have used this mod to discover new routes and skips. Fix: This is a known bug in older