UIManager
UI Manager is a Unity-based library for the game ROUNDS that simplifies the creation, customization, and runtime management of UI panels.
About this mod Author’s original text
UI Manager [1.0.0]
UI Manager is a Unity-based library for the game _ROUNDS_ that simplifies the creation, customization, and runtime management of UI panels.
It provides a flexible system for building draggable, resizable, and configurable UI panels, along with a powerful UI Layout Manager that allows editing using a runtime gizmo.
Core Features
UI Layout Manager (Main Feature)
The UI Layout Manager enables runtime manipulation of UI panels:
- Drag panels freely across the screen
- Resize panels dynamically
- Edit layouts visually using a runtime gizmo
This allows both developers and players to fully customize UI positioning.
Option Panels
Create dynamic and customizable Option Panels for your UI:
- Built-in support for sliders, toggles, and color pickers
- Automatically generated UI via reflection
- Real-time property updates
Example: Tabholic
The Tabholic mod demonstrates how to use UI Manager in practice.
It uses:
- Layoutable Panel for structured UI organization
- Option Panels for user customization (text color, spacing, size, etc.)
Example behavior:
private void Awake() {
UIPanelInfo panel = GetComponentInParent();
panel.OnDisplayModeChnaged += (DisplayMode display) => {
if (display == DisplayMode.Normal) {
CreatePlayerStats();
} else if (display == DisplayMode.Layout) {
CreatePreviewStats();
}
};
}
Getting Started
This library currently supports Unity Project-based mods only.
It is not designed for mods developed purely in external IDEs like Visual Studio.
- Creating a UI Panel
- Import UI Manager into your Unity project
- Set up dependencies for your mod
- Open the example scene: Example UI Panels
- Duplicate one of the example panels
- Disable unused example panels
- Configure your panel:
- Set a unique PanelID in UIPanelInfo
- Adjust other settings as needed
- Registering UI Panels
- Create a GameObject with UIPanelRegistrar
- Convert your panels into prefabs
- Assign prefabs to the UIPanelRegistrar
- Convert the registrar into a prefab
- Load and register panels at runtime:
UIPanelRegistrar registrar = Assets.LoadAsset("Tabholic UI Register").GetComponent();
registrar.Register();
- Displaying Panels
// Display ALL panels
foreach (var panel in registrar.UIPanelsPrefabs) {
UIRegistry.Instance.GetLayoutPanel(panel.PanelID).Info.DisplayMode = DisplayMode.Normal;
}
// Display a specific panel
registrar.GetLayoutPanel("MyPanelId").Info.DisplayMode = DisplayMode.Normal;
Creating an Option Panel (Optional)
Step 1: Define the Panel Class
Create a class inheriting from SimpleContextPanel.
This system uses reflection to automatically generate UI fields from properties implementing IPropertyField.
public class MyPanelOptionPanel: SimpleContextPanel {
public static MyPanelOptionPanel Instance { get; private set; }
public FloatPropertyField MyFloat = new FloatPropertyField(0f, 1f, 0f);
public IntPropertyField MyInt = new IntPropertyField(0, 1, 0);
public BoolPropertyField MyBool = new BoolPropertyField(false);
private void Awake() {
Instance = this;
}
}
Step 2: Register the Option Panel
UIPanelInfo panelInfo = registrar.UIPanelsPrefabs.First();
OptionPanelRegistry.RegisterOptionMenu(panelInfo);
(Optional) Editor Testing
public class EditorContextPanelRegister: MonoBehaviour {
public UIPanelInfo PrefabPanelInfo;
private void Awake() {
OptionPanelRegistry.RegisterOptionMenu(PrefabPanelInfo);
}
}
Step 3: Access Values
MyPanelOptionPanel.Instance.MyFloat.Value;
MyPanelOptionPanel.Instance.MyBool.Value;
Notes
- UI appearance in Unity Editor will differ from in-game visuals due to ROUNDS post-processing
- Ensure unique PanelID values to avoid conflicts
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: