CooldownUI

v1.0.2·Updated 2026-03-07

A universal UI library for displaying cooldowns, timers, and status indicators above players. Easy to integrate into your ROUNDS mods.

About this mod Author’s original text

CooldownUI

A universal UI library for ROUNDS that provides easy-to-use cooldown timers, status indicators, and text displays above players.

Features

  • Cooldown Timers - Display countdown with color transition (red → green)
  • Active Duration - Show remaining active time (cyan color)
  • Custom Text - Display any text with custom colors
  • Icons - Text icons (symbols) and sprite icons next to timers
  • Auto-Stacking - Multiple timers automatically stack vertically
  • Dynamic Scale Compensation - UI maintains constant size even when player scales up/down
  • Standardized Size - Consistent text size across all mods using this library
  • Performance - Efficient TextMeshPro rendering with built-in outline

Usage

Add as Dependency

In your mod's manifest.json:

{

"dependencies": [

"BellusFennec-CooldownUI-1.0.1"

]

}

In your plugin class:

[BepInDependency("com.rounds.cooldownui", BepInDependency.DependencyFlags.HardDependency)]

Basic Examples

Creating a Cooldown Timer

using CooldownUILib;

public class MyCardMono: MonoBehaviour

{

private CooldownUI cooldownUI;

private Player player;

private float cooldown = 5f;

private float cooldownTimer = 0f;

void Start()

{

player = GetComponent();

// Create UI attached to player

cooldownUI = CooldownUI.Create(player.transform);

// Optional: Set an icon

cooldownUI.SetIcon("⚡", Color.yellow);

}

void Update()

{

if (cooldownTimer > 0f)

{

cooldownTimer -= Time.deltaTime;

cooldownUI.ShowCooldown(cooldownTimer, cooldown);

}

else

{

cooldownUI.Hide();

}

}

void OnDestroy()

{

if (cooldownUI!= null)

{

Destroy(cooldownUI.gameObject);

}

}

}

Showing Active Duration

// Show remaining active time (cyan color)

cooldownUI.ShowActive(remainingTime);

Custom Text Display

// Show custom text

cooldownUI.ShowText("READY", Color.green);

cooldownUI.ShowText("x3", Color.white); // Stack count

cooldownUI.ShowText("BLOCKED", Color.red);

// Convenience methods

cooldownUI.ShowReady(); // Shows "READY" in green

cooldownUI.ShowStacks(3); // Shows "x3"

cooldownUI.ShowStacks(5, Color.yellow);

Icon Support

CooldownUI supports from Noto Sans Symbols font family.

Icon that are displayed correctly:

{ "Arrows", new { "←", "↑", "→", "↓", "↔", "↕", "➤" } },

{ "NumberForms", new { "Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ", "Ⅴ", "Ⅵ", "Ⅶ", "Ⅷ", "Ⅸ", "Ⅹ" } },

{ "Combat", new { "⚔", "⚒", "⚓", "☠", "⚙", "⚗", "⚖", "⛏", "⛓", "⛊", "⚰", "⛨" } },

{ "Magic", new { "⚡", "❄", "☀", "☁", "☂", "☃", "✴", "❋", "☼" } },

{ "Hearts", new { "❤", "♥", "♡", "❥" } },

{ "Status", new { "✓", "✔", "✗", "✘", "⚠" } },

{ "Stars", new { "★", "☆", "✦", "✧", "✪", "✫", "✬", "✭", "✮", "✯" } },

{ "Shapes", new { "●", "○", "■", "▲", "△", "▼", "▽", "◆", "◇" } },

{ "Numbers", new { "①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨", "⑩" } },

{ "Cards", new { "♠", "♡", "♢", "♣", "♤", "♥", "♦", "♧" } },

{ "Music", new { "♩", "♪", "♫", "♬" } },

{ "Math", new { "+", "±", "×", "÷", "=", "-" } },

{ "Progress", new { "⏱", "⌛" } },

{ "Misc", new { "☯", "☮", "⚛", "☢", "☣", "⚕", "⚜" } }

check, there may be more of them.

Text Icons (Symbols)

cooldownUI.SetIcon("⬆", Color.green); // Arrow up

cooldownUI.SetIcon("⬇", Color.red);

cooldownUI.SetIcon("①", Color.white); // Circled 1

cooldownUI.SetIcon("☯", Color.white); // Yin yang

Sprite Icons

// Use custom sprite as icon

cooldownUI.SetIconSprite(mySprite, Color.white);

// Clear sprite icon

cooldownUI.ClearIconSprite();

Icon Configuration

// Position icon on left or right of timer

cooldownUI.SetIconPosition(IconPosition.Left); // Default

cooldownUI.SetIconPosition(IconPosition.Right);

// Sync icon color with timer (red→green during cooldown)

cooldownUI.SetIconColorSync(true);

// Hide icon when showing "READY"

cooldownUI.SetHideIconOnReady(true);

// Scale icon (0.1 to 3.0)

cooldownUI.SetIconScale(1.5f);

// Clear any icon

cooldownUI.ClearIcon();

Advanced Usage

Custom Colors

// Set custom state colors

cooldownUI.SetColors(

ready: Color.cyan, // When cooldown complete

cooldown: Color.magenta, // Dur

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. 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.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. 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.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack_ROUNDSwillis81808-UnboundLib

File & checksum

Filename
CooldownUI-1.0.2.zip
File size
321.8 KiB