RandomCosmetic

v4.0.0·Updated 2026-05-11

[Client MOD] Randomizes your equipped cosmetics on level changes using unlocked cosmetics only.

About this mod Author’s original text

COMPATIBLE WITH COSMETICS UPDATE V0.4.0.

RandomCosmetic

This mod is a client-only mod that randomizes your equipped cosmetics when the level changes.

Only cosmetics already unlocked by your save data are used by default.

It does not unlock cosmetics, grant cosmetic tokens, or overwrite saved presets unless you explicitly enable the optional save settings.

Features

  • Randomizes your cosmetic loadout on level changes.
  • Uses unlocked cosmetics only by default.
  • Supports separate randomization settings for normal levels, shop levels, and arena levels.
  • Supports category toggles for head, face, body, back-like, and other cosmetics.
  • Can include empty equipment slots in random results.
  • Protects saved presets by default.
  • Applies the randomized loadout after the level and local player cosmetics are ready.
  • Shows debug logs when enabled.

Mod Type

Client-only.

Each installed client randomizes only their own cosmetic loadout.

The visible result depends on the vanilla cosmetic sync behavior.

The host does not need to install this mod.

Important Notes

  • This is not an unlocker mod.
  • This is not a cosmetic-token mod.
  • This does not give access to locked cosmetics by default.
  • Saved presets are not overwritten by default.
  • Randomized loadouts are applied after the game becomes ready to avoid touching cosmetics too early.

Configuration

General

| Setting | Description | Default | Min | Max |

|---|---|---:|---:|---:|

| Enable | Enables this mod. | true | false | true |

| ShowDebugLog | Shows debug logs in the console. | false | false | true |

Randomize

| Setting | Description | Default | Min | Max |

|---|---|---:|---:|---:|

| RandomizeOnChangeLevel | Randomizes cosmetics on level changes. | true | false | true |

| RandomizeOnNormalLevelEnter | Randomizes cosmetics when entering normal levels. | true | false | true |

| RandomizeOnShopEnter | Randomizes cosmetics when entering shop levels. | false | false | true |

| RandomizeOnArenaEnter | Randomizes cosmetics when entering arena levels. | true | false | true |

| UseUnlockedOnly | Uses unlocked cosmetics only. | true | false | true |

| AllowEmptySlot | Allows empty equipment slots in random results. | true | false | true |

| EmptySlotWeight | Weight for empty equipment slots. | 1 | 0 | 100 |

Category

| Setting | Description | Default | Min | Max |

|---|---|---:|---:|---:|

| RandomizeHead | Randomizes head cosmetics. | true | false | true |

| RandomizeFace | Randomizes face cosmetics. | true | false | true |

| RandomizeBody | Randomizes body, arm, leg, foot, and grabber cosmetics. | true | false | true |

| RandomizeBack | Randomizes back-like cosmetics detected by cosmetic names. | true | false | true |

| RandomizeOther | Randomizes other cosmetics. | true | false | true |

Preset

| Setting | Description | Default | Min | Max |

|---|---|---:|---:|---:|

| DoNotOverwriteSavedPreset | Prevents saved preset overwrite while a random loadout is active. | true | false | true |

| SaveRandomizedLoadout | Saves randomized loadouts to the normal equipped cosmetic save. | false | false | true |

| SaveRandomizedLoadoutAsPreset | Saves randomized loadouts to a preset when allowed. | false | false | true |

| PresetSlot | Preset slot index used when saving randomized loadouts. | 0 | 0 | 27 |

Timing

| Setting | Description | Default | Min | Max |

|---|---|---:|---:|---:|

| ApplyDelaySeconds | Delay before applying a random loadout after the game becomes ready. | 0.25 | 0 | 10 |

| RetryIntervalSeconds | Retry interval while waiting for the local player and cosmetics. | 0.25 | 0.05 | 5 |

| MaxRetrySeconds | Maximum retry time for applying a random loadout. | 10 | 1 | 60 |

For Developers

The mod avoids direct compile-time references to cosmetic-only classes where possible and uses reflection-based access for compatibility with common BepInEx build environments.

Randomization is scheduled after level transition detection and applied after level generation and local player cosmetic readiness.

Th

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

File & checksum

Filename
RandomCosmetic-4.0.0.zip
File size
103.0 KiB