Runtime Unity Editor (RUE)
RUE Description
Runtime Unity Editor is an In-game inspector, editor and interactive console for applications made with Unity3D game engine. It's designed for debugging and modding Unity games, but can also be used as a universal trainer.
When applied to BeatSaber; RUE can be used to interact with objects in loaded scenes.
Not only can this be helpful for modders, but it can also benefit environment artists, providing an easy way to find specific objects and inspect them.
Question
Looking for something more modern?
If you're looking for a more modern tool, check out Unity Explorer (Ported to BSIPA.. Originally Developed by Sinai.)
Specifically for BeatSaber, Unity Explorer offers a more intuitive UI all over, and allows you to navigate scenes more efficiently.
RUE is still useful and works well with Beat Saber, especially if you're using mods like Chroma or Noodle.
This guide focuses on Runtime Unity Editor (RUE) for those sticking with that workflow, however both aren't much different.
Features Covered
- Modifying GameObject transform
- Destroying / Changing activity of GameObjects
- Inspecting / Modifying components of GameObjects
RUE is made up of modules.
For this page, we will only be covering theObject Browser
andInspector
modules, along with small/extra features.PSA: This repo was specifically made with Chroma and Noodle in mind, so not all features that RUE offers will be coveredβjust in-depth explanations of the most helpful features.
Installation
Note: While you can refer to the Official repo for further documentation, you cannot install the repo version as itβs designed for other mod loaders like MelonLoader. We use a modified version of IPA for BeatSaber (BSIPA).
The installation process of RUE is the same as a typical BeatSaber plugin:
- Download the RUE
.zip
file from the BSMG Discordpc-mod-dev
channel, or click here to directly download. - Open the zip, and drag both
Libs
andPlugins
folders into your BeatSaber root folder. - Done! Launch BeatSaber and move on to the Navigation section below.
Navigation
To open RUE, press the G
key in-game. This opens the RUE UI (it may have some tabs already open).
Focus on the bottom UI area β this displays all the available RUE modules. Toward the right are additional toggles and tools.
Weβll start with Time, then cover the key modules.
Time
Time
allows you to manipulate the Unity scene's timescale.
- Higher values = faster animations and movement
- Lower values = slower animations and movement
Two buttons are included:
- >
resets time to 1.00
- βΈοΈ Sets time to 0
(pauses time) β press >
to unpause
Note:
Time
does not affect the speed of songs/maps.
Modules
RUE includes several modules: Clipboard, Inspector, Object Browser, Profile, REPL Console, Viewer.
Weβll only cover the Object Browser and the Inspector.
Object Browser
- Lists all GameObjects in the scene
- Allows editing of transform properties (Position, Scale, Rotation, etc.)
- Lists all components tied to that object, allowing you to edit their properties in the Inspector.
Object Browser Anatomy
Click on each colored section to learn about it!
π¨ β Search
- Where you are able to search and filter through the GameObject list
- Filter Options:
- Names (Search by object name, default filter)
- Components (Search by specific component type)
- Properties and Statics (not relevant)
Clear
β Clear search filterDump Obj
β Not relevant
π© β Object List
- Lists all GameObjects
- Click to select an object
- Grey boxes indicate an expandable parent object
- Greyed-out objects indicate the object is inactive
- Selected objects are highlighted blue
- Right click to open the context menu, pretty much the transform properties
π₯ β Transform Properties
Shows transform properties of the selected GameObject:
- Toggle object active/inactive
- Transform Control
- Position, LocalPosition
- Scale (LossyScale, LocalScale)
- Rotation (EulerAngles, LocalEulerAngles)
Inspect
button β sends object to Inspector- β β destroys the GameObject
LossyScale (Read-only) - Accumulated scale of an object to the hierarchy LocalScale: Scale of the object relative to it's parent (USE THIS)
Warning
For RUE Users: Some transform sliders like rotation will behave in a strange way.
If this is an issue for you, I'd recommend using Unity Explorer.
π¦ β Components
- Lists all components on the selected GameObject
- Click a component to open it in the Inspector
- Click the grey box to enable/disable the component
- Includes a search filter like the main search bar
NOTICE
Environment Objects (including the player) use the normal unity transform units of 1 meter.
However, Gameplay objects (notes, bombs, etc..) use Noodle Units which is 0.6 meters for the convenience of making notemods. Learn more about this on the conversion ratios page.
Inspector
Used to inspect and modify GameObjects or their components.
Component properies like attenuation on the BloomFogEnvironment component can be changed here!
Inspector Anatomy
Click on each colored section to learn about it!
π₯ β Filters
- Textbox + checkboxes
Only Declared
β filters out likely useless propertiesFields
β may be relevant (example shown below)
π© β Tabs & Member List
- Tabs represent selected GameObjects/components
- Member list shows deeper inspected objects
- Tabs = parent
- Members = children
- Selected tabs/members = blue
- Use tabs to organize multiple inspections
Tip
If you have an overwhelming amount of tabs, click the "Close all tabs" button located in the top right of the inspector to clear the list.
π§ β Property View
Where all modifications are made:
- Value/Return Type β Type of property
- Member Name β Name of the property
- Value β Current value that you can modify
Example
Appears in the inspector as:s
- Type:
System.Boolean
- Member Name:
active
- Value:
true
Fields can appear as buttons (sub-class) β click to inspect deeper.
Example of a useful field: _fogParams
, which controlls the fog.
Example for _fogParams
OR- Type:
BloomFogEnvironmentParams
- Member Name:
_fogParams
Modifying the fog in game is a great way to get a feel for finding specific objects in different ways, and modifying component properties. Watch a video on how to do this with RUE here.
Usage Examples
Here are some examples to get you going with RUE.
I recommend to follow along in-game to get the hang of it!
Since there is dialogue missing from the videos, there are some explanations to some things you may have questions about.
Just click on the title of the card to see the video and expand it for explanations.I used "spells" published by Swifter as the map for the examples, check it out here!
Find and modify the fog in a map (Component searching)
To change fog in BeatSaber, you must modify the parameters in the BloomFogEnvironment
component. (Chroma taps into this component when you wish to change the fog on your map.)
Because there is only one BloomFogEnvironment component in the scene, we can search for it using the Component filter.
We could use "environment" as the search since its the parent object name, but component searching is more concrete, and sometimes quicker.
Find and modify lasers (Component searching)
Lasers in BeatSaber have the TubeBloomPrePassLight
component on them β This is to control their visual behavior.
If you have ever modified a laser, or even a geometry light you may have heard of this component to modify specific properties like colorAlphaMultiplier
and bloomFogIntensityMultiplier
.
Because there are a ton of lights in this map, it takes some time to find the laser but not long.
That about covers the installation and basics for RUE!