Server Bot Guide

Ratbot & Roombot

Note: Ratbot and Roombot are simulated Palace users injected by the server (no TCP connection). Operator backtick commands are documented in detail in the Server Command Reference. This page focuses on how each bot behaves and what you type in-room versus at the prompt.

Prefixes

  • Backtick (`) commands — wizard or member commands typed as `command … (see the command reference).
  • Room chat — normal public lines everyone sees; bots observe these without blocking your message.
  • Whispers — client private messages to another user ID; wizards may use avatar `give; anyone can use roombot tells.

Quick comparison

RatbotRoombot
PurposeTrivia game (Triviabot) or Wheel of Fortune.Persistent companion: greets, optional weather/dice/karma/tells, etc.
Who enablesWizards toggle per-room permission `ratbotsallowed; any member may run `ratbot on when allowed.Wizards only (`roombot).
PersistenceOn/off and mode reset on server restart; ratbotsallowed and global ratbot avatar are saved in serverprefs.json.Active rooms, settings, karma, tells, seen list, and chat stats (stats) persist across restarts in roombotprefs.json (per-room keyed).
Shut downActivator or wizard turns off; auto-off if activator leaves and no trivia players remain.Wizard turns off; stays up when the room empties.

Ratbot Member + wizard

Ratbot appears as either Triviabot (trivia mode) or Ratbot (Wheel of Fortune). It broadcasts greetings when people enter, runs its game mode in room chat, and uses the same fake-user machinery as other palace bots.

`ratbotsallowed on | off
Wizard: allow or forbid ratbot in this room (persisted)
  • Must be used while standing in the target room.
  • Members cannot use `ratbot on until the room is allowed.
  • Turning off saves the restriction and, if ratbot is running, attempts to shut it down (wizard may force-off).
`ratbot …
Control ratbot in your current room
  • `ratbot — status: active or not, current mode, whether ratbots are allowed here, and usage line.
  • `ratbot on — spawn the bot (requires ratbotsallowed). You become the activator; only you or a wizard can `ratbot off.
  • `ratbot off — remove the bot (activator or wizard).
  • `ratbot mode trivia or `ratbot mode wof — switch between Triviabot and Wheel of Fortune. Aliases: triviabot, wheel, wheeloffortune. If ratbot is already active, it re-announces with the new name and restarts the appropriate game engine.
  • `ratbot triviafile list — list .db files under the server’s ratbot/ data directory with question counts.
  • `ratbot triviafile <filename> — pick the trivia database for this room (e.g. general.db). Blocked while a trivia game is in progress. If Triviabot is on but idle, the next game reloads immediately.
# Wizard allows games, member starts trivia bot `ratbotsallowed on `ratbot on # Switch to Wheel of Fortune `ratbot mode wof
Whisper `give — ratbot avatar
Wizards only: copy your prop stack onto the active ratbot (global, persisted)
  • Same mechanism as giving to roombot: whisper the bot (target its fake ID) with `give (wizard-only; see command reference).
  • Saved as the global ratbot avatar in serverprefs.json; reapplied whenever ratbot starts in any room.

Behaviour

  • Proximity flee: if you walk within about 200 pixels of the bot, it jumps to another spot inside the room walk bounds (derived from the room background image when possible).
  • New users: the bot sends MSG_USERNEW to arrivals and broadcasts a short greeting. In trivia mode it also sends a hint line about typing play or join.
Triviabot — room chat
Plain text; not backtick commands
  • Join / leave: play or join to enter; out or stop to leave (works in any phase).
  • Flow: idle → waiting (30 s start countdown) → rounds of multiple-choice questions (answer with A, B, C, or D) → bonus round with numeric bets then one more A–D answer.
  • Scoring: early correct answers rank for bonus points; wrong answers cost points. Bonus wins/losses depend on your bet.
  • Trivia files are classic Palace TriviaDB text (questions start with Q.; choices after A.D.; correct choice marked with *).
  • Default file if none set: general.db under ratbot/.
  • If the activator disconnects and no joined players remain, the bot may auto-shutdown.
Wheel of Fortune — room chat
Say keywords; current player picks letters
  • Type help for a short keyword list whispered back: spin, vowel, solve, play, out, recap, money, etc.
  • play / join and stop / out toggle whether you are in the rotation.
  • On your turn: spin the wheel, buy a vowel ($250), guess consonants, pass, or solve (then type the phrase). Single letters are interpreted in context as consonant or vowel guesses.
  • money / recap show scores. Puzzles load from ratbot/wof_puzzles.json on the server.
  • WOF observes the same chat hook as trivia; replies may be delayed slightly so they order after your line.

Roombot Wizard

Default display name RoomBot (customizable). Stays configured per room through restarts. When active, users in the room see the bot as a normal avatar (ID 30000 + room ID).

`roombot …
Wizard-only configuration (current room)
  • `roombot — show state, toggles, position, colorscroll, and full usage.
  • `roombot on / `roombot off — activate or deactivate (farewell line, then removal when off).
  • `roombot name <name> — set label (max 31 characters); re-announces if active.
  • `roombot say <message> — bot speaks in public chat (requires active bot; message length capped for protocol).
  • `roombot greet on / off — public entry greetings.
  • `roombot greetprivate <message> — encrypted private greet (MSG_XWHISPER) ~6 seconds after sign-in to the mansion, first room only; use %s for the user’s name. `roombot greetprivate disable clears it.
  • `roombot weather enable / disable — allow weather <ZIP> in chat (5–6 digit US-style codes; server fetches from wttr.in).
  • `roombot insult enable / disable — allow insult <name> lines (playful randomized lines).
  • `roombot gaming enable / disable — dice and playing-card draws in chat.
  • `roombot colorscroll — cycle avatar color every 30 s while on. `roombot colorscroll <secs> sets step delay (clamped; very fast cycles may not write every step to disk). `roombot colorscroll off stops it.
  • `roombot move <x> <y> — set position (integers); broadcasts move if active.
  • `roombot stats / `roombot stats <user> — post room activity summary publicly, or whisper a per-user card (same as the stats chat triggers).
# Typical setup `roombot on `roombot name Welcome Wagon `roombot greet on `roombot weather enable `roombot gaming enable
Public & private greetings
Timing and “seen” logic
  • Last-seen is tracked globally (normalized nickname). Every room entry updates it after the bot decides what to say.
  • First room after you sign in to the server: if greet is on, after about 1–2 s the bot picks a random welcome, or “welcome back” / long-absence text based on whether you were seen within 24 hours or longer ago.
  • Later rooms on the same session: if greet is on, after ~2–3 s it may say a shorter welcome-back (again based on 24 h / long absence).
  • Greetprivate only fires on the first room after sign-on (unless you reject private messages).
  • Tells queued for you are delivered when you reach your first room after connecting (see below).
Room chat triggers
When roombot is active in your room
  • Karma (always on): topic++, topic--, karma topic — topic names normalized; scores persist per room.
  • Seen list: the word seen alone (leading ` stripped) causes the bot to whisper your last-seen report privately.
  • Stats: stats privately whispers you a 6–10 line summary of room activity (most active this week/month, longest messages, streaks, peak hour, peak occupancy, longest silence, unique chatters, most common greeting) so the command never spams the room. stats <user> whispers a per-user card. Whispering stats to another user in the same room is intercepted by roombot: the whisper is not delivered, and you are privately whispered back with that user's stats card (use stats <other> to override the subject). Guest sessions are excluded from the counts; writes are debounced (30 s) and flushed on roombot-off or server shutdown.
  • Weather (if enabled): line starts with weather followed by exactly 5–6 digits (ZIP).
  • Insult (if enabled): insult SomeName — bot roasts the name in public chat.
  • Gaming (if enabled): drawcard, draw card, draw a card, or roll … dice such as roll d20, roll 2d6, roll a d100 (up to 100 dice).
  • Easter eggs: asking who built the bot, or complimenting it, produces a canned reply.
# Examples (features must be enabled where noted) palace++ karma palace weather 94102 roll 3d6 seen stats stats alice
Whisper to Roombot
Tell relay, same mini-games
  • Tell relay: whisper tell <nickname> <message>. The target must appear in the bot’s seen database. Multi-word names resolve by longest match against seen users. Delivery is whispered when the recipient next connects and enters their first room.
  • tell off / tell on — opt out or back in to receiving tells (persisted).
  • Karma, weather, insult, dice, drawcard work from whispers the same way as public chat when those features apply.
  • Avatar: whisper `give to roombot (while active) to copy your props onto it; persists for that roombot — wizard only.

See also