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

Requirements

Audience: Total newbies · Prereqs: What is LegacyShell?

Canonical source: package.json, root README.md

Node.js

LegacyShell is a Node.js project - you need Node installed to run any of it. There's no strict minimum version pinned in the project itself, but these versions are known to work in practice (from the project maintainer's own machines):

Node versionOS
v18.19.0Raspberry Pi (Debian)
v20.11.1Windows 11
v20.18.1macOS (M4)
v20.19.2macOS (M2 Pro)

If you don't have Node yet, grab the current LTS release from nodejs.org - anything in the v18-v20 range should be safe. Check what you have with:

node --version
npm --version

Bun is also supported as an alternative runtime (binit/bclient/bservices/bgame npm scripts exist for it), but it isn't officially supported the way Node is - stick with Node unless you specifically know why you want Bun.

Git

Not strictly required - you can download the repository as a .zip from GitHub instead - but strongly recommended, because:

  • It's the easiest way to pull updates later.
  • Individual plugins in plugins_default/ and plugins/ are each their own git repository and auto-update themselves via git pull when the server starts. Without git installed, plugin auto-update silently does nothing (it's non-fatal, just skipped).

Get it from git-scm.com if you don't have it.

Windows: enable long paths

This repository's wiki contains some files with very long names (video-title-style filenames from imported history pages). Windows' default 260-character path limit can make git clone fail partway through with Filename too long errors. Fix it once, globally, before cloning:

git config --global core.longpaths true

A terminal

Any of these work fine:

  • Windows: PowerShell, Command Prompt, or Git Bash (installed alongside Git).
  • macOS: Terminal.app, iTerm2.
  • Linux: whatever your distro ships with.

If you've never used a terminal before: it's the black window where you type commands instead of clicking things. Every command in these docs is meant to be typed there, one at a time.

Disk space and hardware

Nothing demanding - a few hundred MB for the repository plus node_modules after npm install. Running the game server for a handful of players doesn't need much CPU or RAM; the actual physics simulation is lightweight per-room.

Optional but useful

  • A SQLite browser (e.g. DB Browser for SQLite) - you'll want this once you get to The Database for things like granting yourself admin.

Next: Installation.


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
Prev
Speed Setup
Next
Installation