LegacyShell WikiLegacyShell Wiki
Back to LegacyShell
Home
Wiki
Plugins
Docs
Back to LegacyShell
Home
Wiki
Plugins
Docs
  • Documentation

    • Getting Started

      • What is LegacyShell?
      • Speed Setup
      • Requirements
      • Installation
      • First Run
      • Config Files
      • Making an Account
      • Troubleshooting (Getting Started)
    • Running a Server

      • Architecture Overview
      • The Database
      • Users and Ranks
      • Adding Game Servers
      • Client Mirrors
      • Perpetual
      • Backups
      • Rate Limiting
      • Moderation
      • Closed Mode
      • Deployment
      • Troubleshooting (Running a Server)
      • Hosting for Someone Else's Instance
    • Content Creation

      • Maps
      • Dealing with Babylon Models
      • Map Blocks
      • Items and Skins
      • Hats and Stamps
      • Sounds
      • Gamemodes
      • Seasonal Events
    • Plugin Development

      • Quickstart
      • I Want To...
      • Anatomy of a Plugin
      • Lifecycle
      • Dependencies
      • Events (Concept)
      • Event Reference

        • services: events
        • game: events — shared logic (src/shell/)
        • game: events — main-thread server process
        • game: events — per-connection client object
        • game: events — room lifecycle & tick loop
        • game: events — in-browser gameplay
        • client: events — client server & build pipeline
      • Commands
      • Client-Side Code
      • Static Assets
      • Content Packs
      • Networking
      • Workers and State
      • Prediction and Authority
      • Recipes

        • Recipe: Killstreaks
        • Recipe: New Pickup Item
        • Recipe: New Gamemode
        • Recipe: Custom Weapon
        • Recipe: UI Modification
        • Recipe: Discord Integration
        • Recipe: Replacing Core Behaviour
        • Recipe: Persistent Plugin Storage
        • Recipe: Rewarding Players with Currency
        • Recipe: Custom Per-Player Data
        • Recipe: Custom Theme
      • Publishing
      • Pitfalls
      • Modifiers
      • Sound and Apollo
    • Codebase Reference

      • Repo Layout
      • Shared Shell Layer
      • Server-Only Markers
      • The ss Object
      • Build Pipeline
      • Stamps and Babylons
      • Game Loop
      • Rooms and Workers
      • Wire Protocol
      • Generated

        • Wire Protocol Opcodes
        • Enums & Lookup Tables
        • Database Schema
        • Config Reference
        • Slash Command Reference
      • Services Internals
      • Catalog and Items
      • Permissions Internals
      • Physics and Collision
      • Known Quirks
      • Codebase Anecdotes
      • Development Timeline
    • Contributing

      • Documentation Style Guide
      • Generators
      • For AI Agents

Running a Server

Audience: Operators running a public or private instance · Prereqs: Getting Started

This section covers actually operating a LegacyShell deployment: the database, user ranks, connecting multiple game servers, keeping it alive unattended, and moderating it once it's public.

What's here

  • Architecture overview - the services/game/client split, who talks to whom, why services must be singular.
  • The database - opening LegacyShellData.db, the EDITABLE/READONLY table tags, what not to touch by hand.
  • Users and ranks - adminRoles, granting yourself/others admin, banning.
  • Adding game servers - game_servers rows, auth_key, running more than one region.
  • Client mirrors - running extra client servers pointed at one services instance.
  • Hosting for someone else's instance - volunteering a mirror or game server to an instance you don't own.
  • Perpetual - the process manager: crash restarts, daily restart schedule, auto git-pull, Discord webhook alerts.
  • Backups - rotation and retention, how to restore one.
  • Rate limiting - the regular/sensitive buckets and how auth_key bypasses them.
  • Moderation - in-game admin commands, booting players, locking rooms, the cheats flag.
  • Closed mode - taking the client server into maintenance mode.
  • Deployment - reverse proxy, ports, TLS, keeping it running long-term.
  • Troubleshooting - services unreachable, restart loops, desync between servers.
  • Items and inventory, Codes - granting items, redemption codes, ownedItemIds. (Not yet written - see The Database in the meantime for direct table access.)

If you're extending gameplay rather than operating a server, you want Plugin Development instead.


This page was drafted with AI assistance and reviewed for accuracy. If something looks wrong, please open a PR or flag it.

Edit this page on GitHub