Omniscye-Too_Many_Balls icon

Too Many Balls

Adds thousands of tiny physics spheres to every level point. Smart cell culling + active caps keep it (mostly) sane. Still needs a DECENT CPU & GPU. Bring snacks.

Last updated a day ago
Total downloads 33
Total rating 1 
Categories Mods Client-side Cosmetics
Dependency string Omniscye-Too_Many_Balls-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

Too_Many_Balls (v1.0.0)

Adds thousands of tiny red physics spheres to every level.
They roll. They bonk. They form a beautiful, CPU-toasting carpet of chaos.
Yes, there’s culling. No, that doesn’t mean your PC is safe. Bring a DECENT CPU & GPU.

What it does

  • Per-level-point swarms: For each discovered “level point,” the mod spawns a cluster of spheres around it.
  • Feather-light physics: Low mass, low drag, aggressive sleep = easy to push without immediately melting the solver.
  • Smart culling grid: World is split into cells; only cells near the player are live. Everything else is parked
    (kinematic, colliders off, renderer off if you want). Hard active cap keeps the max number of “awake” balls down.
  • Deterministic spread: Golden-angle spiral around each point so you don’t birth a jittering singularity.

TL;DR — it looks like a hundred thousand balls. It only simulates around ~800 near you. Your fans still spin.

How it works (short and mean)

  • Finds “level points” using a name/type scan (same tactic as the phone mod).
  • Per-point mode is default: spawns SpheresPerPoint spheres around every discovered point, placing them on a spiral with configurable radius.
  • Grid culling splits the map into squares (CellSize meters). Only a square of cells around you (ActiveCellRadius) is enabled.
  • A global cap (MaxActiveCount) picks the closest N spheres if too many are inside the active cells.
  • Toggling (enable/disable) is time-sliced so you don’t hitch when stepping into a dense area.

Requirements

  • BepInEx 5 (dependency included in manifest)
  • A DECENT CPU & GPU. If your laptop is powered by hopes and prayers, this mod will find out.

Default behavior / baked presets

These are hard-overridden in code (your config can’t fight them):

  • SpheresPerPoint = 100
  • MaxActiveCount = 800
  • ActiveCellRadius = 1
  • CellSize = 20

Other useful knobs (still configurable):

  • SphereScale = 0.3 (size)
  • PerPointJitterRadius = 1.5 (spread radius per point)
  • UseSpiralDistribution = true
  • HideRendererWhenCulled = true
  • CullRefreshInterval = 0.25
  • ToggleBudgetPerFrame = 600
  • SnapToGround = false (leave OFF for huge counts)

Performance tips (because you will ask)

  • If FPS dips: raise CellSize (20→24) or drop ActiveCellRadius (1), or lower MaxActiveCount (800→600).
  • Want more visible chaos? Increase SpheresPerPoint, but expect longer spawn time and memory usage.
  • Do not enable SnapToGround unless you enjoy 100,000 raycasts and the smell of hot silicon.

Known quirks

  • First-time spawn on large maps can hitch while Unity instantiates the object army. That’s normal. It’s also funny.
  • If you turn every dial to 11, Unity will comply… briefly.

Changelog

1.0.0

  • Per-point swarms with spiral distribution
  • World-cell culling with hard active cap
  • Time-sliced toggling to avoid hitch spikes
  • Light rigidbodies + shared instanced material

Credits

  • Me, for giving the CPU a reason to exist.