Oxide Sync is live: your plugins install and update themselves →
Bed Cooldown Manager cover art
FeaturedGameplay

Bed Cooldown Manager

by Base Inspector · v1.3.3 · updated Nov 8, 2026

No dependencies: works on its own.

$5 · single server

Buy now · $5

Installs itself with Oxide Sync. Pick your servers at checkout and it's live within a minute. Every future update included. How it works

  • Full C# source
  • Free updates
  • Signed releases
  • Oxide / uMod compatible
  1. v1.3.3Nov 8, 2026Latest

    Minor update

  2. v1.3.0Mar 1, 2026

    Prefab ID cache for OnEntitySpawned — On server init, it scans GameManifest and existing world bags to build a HashSet<uint> of valid bed/bag/towel prefab IDs. Now OnEntitySpawned rejects non-bag entities with a single HashSet.Contains(entity.prefabID) before any casting or string work. This eliminates 99%+ of the processing cost from that hook on your 100x. Global tick processor replaces per-bag timer chains — Instead of each bag spawning its own chain of timer.Once calls with closures, there's now a single timer.Every(0.25s) that iterates the _retryByNetId dictionary and processes all pending bags in one pass. On wipe day with hundreds of bags placed per minute, this eliminates thousands of individual timer handles and closure allocations. Permission caching — CheckOwnerPermission now caches results in a Dictionary<ulong, bool> so ownerId.ToString() and the Oxide permission lookup only happen once per player per 60 seconds. The cache also auto-clears when permissions are granted/revoked via the OnUserPermissionGranted/Revoked and OnGroupPermissionGranted/Revoked hooks. Manual reverse loops in PruneBuggedBags — Replaced both RemoveAll(x => ...) lambda calls with manual reverse for loops. No delegate allocations every 10 minutes anymore. OnEntityKill also uses prefab ID check — Same cheap rejection so the kill hook doesn't cast on every entity death on the server.

  3. v1.2.3Feb 23, 2026

    Initial release

You may also like