Server Log

Live tail of every request the server handles. Use the filter to isolate one endpoint (e.g. /api/, a player id, or 404).

Loading log…
Dashboard Icon

Welcome to the Dashboard

Message of the Day Loading…
RAM Usage Loading…
Page Load Time Loading…

Online Players

Loading...

Total Rooms

Loading...

Total Players

Loading...

Total Inventions

Loading...

Players

Force Join

Drop one player into another's room. The joiner is moved into the target's current instance (the target must be in a room).

Id Profile Image Username Platform Id Device Id Level Player Created At Last Online Room Discord Actions
Create Player

Server

Server control

Restart the game server process. Players are briefly disconnected; it comes back in a few seconds.

Social sign-ins (website Services tab)

Each service needs its own developer app. Paste the app's client id and secret here - saved to Data/social_apps.json on the server, never shown again. Register this redirect URI on every app: https://camprec.net/api/site/social/<provider>/callback. Steam needs no app (optional Web API key for persona names).

ServiceStatusClient idClient secretRedirect URI
Loading...

Community Board

Loading...

RoomId ImageName RoomName Actions

Loading...

Id ImageName ImageUrl Actions

Loading...

Id Title BlobName Description ThumbnailBlobName SourceUrl Actions

Loading...

Welcome to Campus

Coach

Create Player

Edit Player

Player

Profile

Leave a field blank to leave it unchanged.

profile picture
preview

One account can hold several Steam IDs, and the same Steam ID can be put on several accounts. Sharing is allowed — you'll just be told who else has it.

—
—
—
—
—
—

Junior accounts get the under-13 restrictions. Applied live — no relog. A moderator's in-game Underage report does this automatically.

Locked players cannot change their @ name or display name in-game, on the website or during onboarding. Edits made here still apply, so set the name you want first, then lock it. Takes effect immediately.

Image names refer to files the server can serve from Data/Images (or an already-uploaded image). The preview shows what the client will fetch.

Reset Password

Sets this player's login password immediately. They are not notified — tell them the new password yourself.

Load a player above first. The password is sent over the connection and stored only as a hash — it is never logged in plain text.

Player Events

Events players have scheduled. Event names and descriptions are now run through the same word filter as room names, but anything created before that can be removed here.

IdNameCreatorRoomStartsGoing
Press Refresh to load.

Photos

Every photo taken in the game, newest first, attributed to the player who took it.

Import an image — any PNG or JPEG. Imports skip the upload anti-cheat (only game-made photos are accepted from players).

Room Comments

Notes players pin in a room's scene, newest first, attributed to the author.

Player Reports

Reports raised from the in-game report menu and the website's Report buttons, newest first. Acting on a player also closes their other open reports, so a pile-on does not leave duplicates of what you just handled.

Bug Reports

What players send from the watch's Report a bug. Every field the client posted is kept (expand raw); attached screenshots / logs are linked.

Challenges

The daily challenges on the watch (Challenges › Daily). Each one pays XP when it completes; finishing all of them sends a game request (the three-card reward picker), once per player per day. The day resets at midnight UTC. Players get a changed set on their next login.

Daily challenges

Types marked tutorial only fire just during the new-player tutorial, so nobody can complete them afterwards. Activity types (Dodgeball wins, Quest games, ...) only count in that activity. With a different set each day, every day needs the same number of challenges.

Player progress

Limited Time Events

The watch's Limited Time Challenge (Summer Party style): a reward track with a free row and an RR+ row. Players earn event XP by spending time in public rooms — . Start new events as Developers only: the game's event screen is still being matched to this server, so test it yourself before switching it on for everyone.

Test tools

Weekly challenges

Open the website page ↗

Shown on the website at /challenges (the game has no weekly screen). Five new challenges every Wednesday 21:00 UTC, counted from games players finish. Finishing 3 sends the week's reward as an in-game gift. Pick any store skin or clothing item as the reward; with none picked, a random store skin is used. Someone who already owns the reward gets a 500-token box instead.

Stores

Edit what the in-game stores sell. Pick a store, add any item, set prices and put items in sets by set id number (items with the same set id show together in the store). Changes go live straight away - players see them next time they open that store. The original store files are never changed: Restore puts an edited or removed item back to how it was.

Add an item

Search above and click an item to pick it.

Items in this store

Room Editor

One room, everything: the platforms it is shown for, each subroom's settings, its save file (download, upload a new one, restore an older one), what each role may do in it, and moving subrooms into another room.

Videos

MP4 files for the Remote Video Player. Upload one, then copy its address into the player's Video Url. H.264 video with AAC audio plays most reliably.

From YouTube - only videos whose uploader chose Creative Commons (CC BY). Anything else is refused. Fetched videos are deleted after 3 days; limited to a few per hour.

Chat

Every DM and group chat - the same ones the game client and the website's /messages page use. Read-only (moderation): nothing here sends a message or changes a thread.

Pick a conversation on the left.

Archive

The rooms on archive.splootybean.com/Rooms. Import downloads a room's files for you - its saved build (the .room file of each subroom), its picture - and adds it to Campus as a new room owned by you. The room's baked AssetBundles (its pre-built geometry, roughly 110 MB per room for PC + Quest) are downloaded too, for the platforms you pick here:

Import by name or address

Rooms in the archive

Open this tab to load the archive.

RecFlare CDN

What cdn.recflare.net (the RecFlare server's public file store) holds, and pulling files from it into this server. It has no list of its files - it only answers for a name you give it - so look a file up by name, or scan for the room saves this server needs but doesn't have (the rooms that load empty, like Run The Block and My Little Monsters) and restore the ones RecFlare has. A restored room save works straight away. Room files are named like 9zwumqm1vehgto2fj12y2yq7e.room; avatar bundles like a1a2taim2pwp2g9wme612ji8l.assetbundle (Quest builds: quest/<name>).

Look up a file

Several at once: put one name per line or separate them with commas.

RecFlare rooms and their files

Every public room on RecFlare, with the files its saves use (the CDN's own file list doesn't exist - this is read from RecFlare's rooms service). Import brings the whole room into Campus as a new room owned by you: its save files, its picture, and a line in the description crediting who made it on RecFlare. A name that's taken here gets _RF added.

Open this tab to load RecFlare's rooms.

Missing room saves

Open this tab to scan.

DB Editor

View and edit the server's databases directly (backups are on the Database tab). Pick a database and a collection, find a document, change its JSON and save. Changes are live immediately and there is no undo button - every save and delete is written to Data/db-editor-audit.jsonl with the document as it was before, so a mistake can be put back by hand. Passwords, tokens and keys show as (hidden) and are kept as they are when you save. Some data is also held in the server's memory, so a change there may only show after that part reloads or the server restarts.

Documents

No document open

Ban Logs

Every moderation action, newest first: bans from this panel, from report actions, from staff reporting in-game (1-hour timeouts), from chat commands and the upload guard, plus unbans, kicks, warnings, vote kicks and room bans. Filter by a player to see everything done to or by them.

Staff & Moderators

Who holds which flag. Moderator is the vmod role the client checks for the badge and moderation powers; Developer also grants access to this admin panel, so hand it out carefully. Changes take effect when that player next signs in — roles are baked into their token when it is issued.

Gifts

Search every storefront and the whole avatar catalog (avatar_items.json) as you type, and give an item to a player as an unopened gift box they open in-game, or drop it straight into their wardrobe. Use player id -1 for all players (owners are skipped). Items tagged catalog are not sold anywhere, so they have no gift-drop art — prefer straight into their wardrobe for those.

Deliver as Bonus XP Message

Skins

Every tool skin in Equipments.json (340), sold in the store or not. Uses the player id and message above. Skins tagged in store arrive in a box with its store art; the rest arrive as a plain box. Either way the skin is in their locker the moment you give it. Enter a player id first to see which ones they already own.

Economy

Creator Earnings

A maker gets 30% of what a buyer spends on their invention / custom clothing / room key / room currency / room consumable. Each sale pends 14 days and is paid on the first Sunday after that (00:00 UTC). Coach and the Importer never earn.

Test in-game account creation

While ON, launching the game from an admin-allowlisted IP shows an empty account picker, so the client creates a brand-new account in-game (Orientation: choose name, password). Turn it OFF to log into your own account again. Allowlisted IPs also skip the signup / login / device limits.

state: …

Player

Give Balance

A positive amount of currency is delivered as a gift box and credited when the player opens it. XP is added directly (a level crossed sends its level-up box). Negative takes currency away immediately. Level: the amount is the level to set the player to.

Send Game Reward

Sends the player the end-of-game reward picker (3 token cards, 10–1000) in the chosen box, exactly as finishing that activity would.

Database

Automatic snapshots of every database run 3× a day and are kept for 3 days. Restore a snapshot if something goes wrong.

BackupCreated (UTC)FilesSizeActions
Loading…

Settings

Two-Factor Authentication

Loading…

Steam Allowlist

Loading…

An empty list means the check is off and every Steam user can connect. Quest / Meta players are never affected. Stored in Data/steam_allowlist.txt.

Normal Player Whitelist (launcher)

Loading…

Filled automatically: when a player signs in to the Campus launcher, it proves their Steam account with a ticket from Steam and their SteamID is added here. With the requirement on, a PC (Steam) login is let in only if its SteamID is here or on the Steam Allowlist above - so PC players have to come through our launcher. Quest / Meta is never affected. Stored in Data/steam_launcher_players.json.

Danger Zone

Expire every in-game sign-in at once. Use this if a token or password leaked: all players are signed out of the game and must log in again. Website and admin logins are not affected.

Appearance

The panel uses the Campus website's theme. Changing it here changes it on the website too, in this browser.

Inventions

Invention Id Image Name Created At Modified At Permissions Actions

Clubs

Club Id Image Name Creator Created At Members Visibility

Rooms

Import rooms (into @Importer)

Drop a room-export .zip (RoomDetails.json + subrooms + blobs + image) and it's unpacked, imported as a room owned by @Importer (ids reassigned, kept published), with its blobs placed on the CDN so the build loads. You can also drop loose .room blobs — each is hosted and wrapped in a new joinable @Importer room named after the file (or a zip full of .room files to do a whole batch at once); saves too new for this client are hosted but skipped so they don't freeze the game. Loose .json exports work too. Multiple at once is fine.

Drag & drop a room .zip here
or click to choose files (.zip, .json, .room, .META)

Import from a file on the server

Put a room JSON file in Data/Imports on the server, then enter its filename here. See Data/Imports/README.md for the required shape. Blobs are a separate step — the result lists any .room files still needed.


        

Room blobs

Every .room file on the server. An orphan is a real saved build that no room points at — attach it to a room and that room stops loading blank. Getting it wrong costs nothing: attach a different blob and try again.

BlobSizeUsed byAttach to room id
Press Load blobs.
Room Id Image Room Name Description Creator Player Id Max Players Actions