CompCubeCompCubeWiki
Competition operations

Map pooling

The role:pooler permission can add, edit, and remove maps. Pool creation/publication is reserved for admins and developers. Use the website map tools where available or the authenticated REST endpoints documented at /docs on the backend.

Pool workflow

  1. Confirm the target season and have an admin create its named pool.
  2. Curate a balanced set across intended skill bands and styles. Map categories can label maps as speed, tech, accuracy, challenge, or another useful grouping.
  3. For every map, provide the BeatSaver key, characteristic, difficulty, map category, and exact modifier array. The server resolves current BeatSaver metadata rather than trusting manually supplied name, hash, duration, or maximum score.
  4. Verify availability and playtest the exact map with its exact modifiers on every supported game and plugin build.
  5. Ensure there are at least 10 maps before queue launch. Match creation deals ten distinct maps—five to each competitor—and discard replacement requires additional maps not previously seen in that individual hand.
  6. Publish only after peer review, then create/enable queues referencing the pool.

Stored competitive identity

A pool entry is unique by pool, SHA-1 hash, characteristic, and difficulty. Hashes must be 40 hexadecimal characters. Duration and maximum score must be positive. Only one of SS, FS, or SFS can apply to a map.

Supported modifiers are:

CodeMeaningCodeMeaning
NFNo FailNWNo Walls
NBNo BombsNANo Arrows
SSSlower SongFSFaster Song
SFSSuper Fast SongIFInsta-Fail
4L4 LivesDADisappearing Arrows
GNGhost NotesPMPro Mode
SAStrict AnglesSNSmall Notes
ZMZen Mode

Changing a BeatSaver upload can change its hash, duration, and maximum score. Treat it as a new competitive map and retest it rather than silently substituting it.

Public player resources

GET /maps/hashes lists known hashes, GET /maps/playlist returns a Beat Saber playlist-shaped response, and GET /maps/download/{hash} redirects through BeatSaver. GET /pools/{poolGuid}/maps exposes a pool with map categories. Map categories are managed through /map-categories. The older generic /queue pooling batch routes are placeholders and currently return 404 Not Implemented.

On this page