Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Aerolt
RoRCheats ReWrite Aerolt! New UI, New Features! Best Debug Kit with UI!
| Date uploaded | 2 days ago |
| Version | 4.2.0 |
| Download link | Lodington-Aerolt-4.2.0.zip |
| Downloads | 4817 |
| Dependency string | Lodington-Aerolt-4.2.0 |
This mod requires the following mods to function
bbepis-BepInExPack
Unified BepInEx all-in-one modding pack - plugin framework, detour library
Preferred version: 5.4.1905README
Aerolt
A rebuilt, networked cheat menu for Risk of Rain 2
- Press F1 (rebindable) or click the Aerolt logo in the top-left to open the menu.
- Networked: actions work in multiplayer, with a host-only mode to lock clients out.
- Select any player in your lobby from the bar at the top of the window; player- targeted tabs act on whoever is selected. Supports full 16-player lobbies.
- Mods can add their own tabs via the Extension API (see below).
Host Only
A console command lets the host block clients from running Aerolt actions. There's also a toggle for it under the Settings tab.
aerolt_host_only -> flips the current state
aerolt_host_only 1 -> force on (also true/on)
aerolt_host_only 0 -> force off (also false/off)
Player
Toggles and actions for the selected player:
- God Mode
- Noclip
- Aimbot (with an aimbot weight slider)
- Infinite Skills
- Always Sprint
- Disable Mob Spawns
- Kill / Revive / Goto / Bring / Kick / Ban
- Set Money, Lunar Coins, Void Coins, and Level
- Switch team
Body Stats
Edit any float stat on the selected player's body (health, move speed, damage, etc.).
- Live "Default" view of the body's current values
- 3 saveable stat profiles you can apply with one click
Items
Searchable, scrollable item editor for the selected player.
- Per-item count rows with +/- (hold Shift for ±5)
- Give, Give All, Give Random, and Clear inventory
Equipment
Searchable equipment list; click an entry to give it to the selected player.
Buffs
Searchable buff editor; set per-buff counts and apply them to the selected player.
Spawn As
Change the selected player's character to any body in the game.
Monsters
Spawn any monster and tune it before spawning:
- Braindead toggle (disables AI)
- Team selection
- Elite type
Interactables
Spawn any interactable that has a spawn card (chests, shrines, printers, etc.) at your aim point. Includes a Refresh button since the available cards depend on the stage.
Teleporter
- Change to any selectable stage
- Spawn Gold / Newt / Blue (Celestial) / Void / All portals at the teleporter
- Instantly charge the teleporter
- Skip the current stage
- Add a Mountain shrine stack
World
Run and stage-wide controls:
- Game speed slider (local) with reset
- Charge Teleporter, Next Stage, Restart Stage
- Set the run timer and stages-cleared count
- Change difficulty
- Combat Director: stop/resume spawns, start the boss, set monster credits
- Toggle any artifact on or off
ESP
Highlights objects in the world. Toggle any of:
- Teleporter
- Chests
- Multishops
- Barrels
- Scrappers
- Secret Buttons
- Duplicators
- Drones
- Shrines
- Newt Altars
- Advanced Info (expanded, non-collapsed labels)
ESP colors are configurable under Settings.
Settings
- Host Only toggle
- Rebind the menu keybind
- Customize ESP colors (shared with the ESP tab and Risk of Options)
Privacy Policy – No Personal Data Collection
This app and/or service does not collect, store, or transmit any personal information. This mod only collects your Risk of Rain 2 profile name or your Steam name.
Support us
A shout out to Voidsenight✨#0060 for helping make the icons!
Extension API (for mod developers)
Other BepInEx mods can add their own tabs (and windows) to the Aerolt menu without
forking it. Everything lives in the Aerolt.API.AeroltAPI static class.
Setup
- Add a reference to
Aerolt.dllin your project. - Declare a dependency so Aerolt loads first:
[BepInPlugin("my.cool.mod", "My Cool Mod", "1.0.0")]
[BepInDependency("com.Lodington.Aerolt")]
public class MyMod : BaseUnityPlugin { /* ... */ }
Aerolt builds its UI the first time a run starts (not at the main menu), so the window
may not exist when your plugin's Awake runs. The API handles this for you:
RegisterSection queues your tab if the UI isn't ready yet and adds it as soon as the
window is created.
Add a tab
Implement Aerolt.UI.IAeroltSection and register it:
using Aerolt.API;
using Aerolt.UI;
using UnityEngine;
using UniverseLib.UI;
public class MySection : IAeroltSection
{
public string Title => "My Tab"; // nav button label
public GameObject Root { get; private set; }
public void Build(GameObject contentParent)
{
// Called once, when the tab is created. Build your controls under Root.
Root = UIFactory.CreateVerticalGroup(contentParent, "MySection",
false, false, true, true, 4, default, new Color(0.14f, 0.14f, 0.14f));
UIFactory.SetLayoutElement(Root, flexibleWidth: 9999, flexibleHeight: 9999);
var btn = UIFactory.CreateButton(Root, "Hello", "Say hi");
btn.OnClick += () => Debug.Log("hi from my tab");
}
public void OnShown()
{
// Called every time this tab becomes active. Good place to refresh from the
// currently targeted player.
var user = AeroltAPI.SelectedPlayer;
}
}
private void Awake()
{
AeroltAPI.RegisterSection(new MySection());
}
The UI is built with UniverseLib; use its
UIFactory to create controls so your tab matches the rest of the menu.
Targeting the selected player
The player bar at the top of the window picks which player actions apply to. Read and react to it from your tab:
NetworkUser target = AeroltAPI.SelectedPlayer; // may be null
AeroltAPI.SelectPlayer(someUser); // change the target
AeroltAPI.SelectedPlayerChanged += () => { /* re-sync your UI */ };
Menu visibility
bool open = AeroltAPI.MenuOpen;
AeroltAPI.ToggleMenu();
AeroltAPI.SetMenuVisible(true);
Knowing when the UI exists
if (AeroltAPI.IsReady) { /* window exists now */ }
AeroltAPI.Ready += () => { /* fires when the UI is created; immediate if already ready */ };
Advanced: your own window
For a full separate window rather than a tab, create your own UniverseLib PanelBase
against Aerolt's shared canvas so it inherits the same cursor handling:
AeroltAPI.Ready += () =>
{
var uiBase = AeroltAPI.SharedUIBase; // UniverseLib.UI.UIBase
var myPanel = new MyPanel(uiBase); // your PanelBase subclass
};
Prefer RegisterSection for simple extensions — it's less code and stays consistent
with the rest of the menu.