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

Wire Protocol Opcodes

Audience: Plugin authors, AI agents · Prereqs: Networking

Every entry in Comm.Code (src/shell/comm.js), extracted directly from source, along with its JSDoc comment where one exists. See Networking for how to register your own opcode with Comm.Add.

NameCodeNotes
gameJoined0#SERVER: in response to one of the three join/create types
addPlayer1#SERVER: sends all the details of a player
removePlayer2#SERVER: delete a player
chat3#CLIENT: sends the player's chat #SERVER: distributes the chat, assuming it completed all checks
controlKeys4-???: no known functionality
keyUp5-???: no known functionality
sync6#CLIENT: sends stateIdx, shotsQueued, FramesBetweenSyncs lots of statebuffer (yaw, pitch, controlKeys) #SERVER: directly sets stateIdx, xyz, climbing, and other stuff i dont understand yet
jump7NOTE: this is depracated in LegacyShell, this information is instead sent in controlKeys in sync -CLIENT: attempt to make me player jump -SERVER: attempt to make another player jump
die8#SERVER: tells the clients that someone died
hitThem9#SERVER: tells the players who didnt get hit that it happened. idk why they need two functions.
hitMe10#SERVER: tells the player who got hit that it happened. idk why they need two functions.
collectItem11SERVER: tells the client they picked up an item
spawnItem12SERVER: tells the client there's a new item (usually right after one has been collected)
respawn13#SERVER: informs that ANY player has respawned
swapWeapon14#CLIENT: attempt to swap weapons #SERVER: informs that someone's weapon has changed
joinGame15#CLIENT: request for a game search
ping16#CLIENT: used for both getting ping on home screen and also ensuring connection to the server during a game. #SERVER: returned message to calc client ping
pong17-SERVER: you cant actually return this. the game does not recognise this and its useless.
clientReady18#SERVER: sent after all players have been initially added. if wanted, it also can send the time and stuff for the unused rounds feature.
requestRespawn19#CLIENT: try to respawn. if rejected for some reason ur screwed (i think)
throwGrenade20#CLIENT: sends a signal that a grenade was thrown, and its power #SERVER: reports that a player threw a grenade and its power, dir, etc
joinPublicGame21-
joinPrivateGame22#CLIENT: identify specific room and join it
createPrivateGame23#CLIENT: create a room
roundStart24SERVER: for the unused rounds feature.
switchTeam25-
notification26SERVER: display a notification on the person's game for any reason.
changeCharacter27CLIENT: attempt to change skins and stuff SERVER: informs that someone's skins and stuff has changed
playerCount28SERVER: unused/unknown
roundEnd29SERVER: for the unused rounds feature.
pause30-
announcement31SERVER: no logic associated with this.
updateBalance32-
reload33-
refreshGameState34-
switchTeamFail35-
expireUpgrade36-
bootPlayer37CLIENT: send a req to boot someone (requires gameOwner)
loginRequired38SERVER: unused/unknown
banned39SERVER: have been booted from a game.
gameLocked40SERVER: room has been locked from the public. doesnt seem to have kicked them.
startReload48-
fire49-
setGameOwner50LEGACYSHELL ADDED SERVER: room has a new owner set
warp51LEGACYSHELL ADDED SERVER: transfer player to another room
setModifiers52LEGACYSHELL ADDED SERVER: set scale of a player
roundUpdate53LEGACYSHELL ADDED SERVER: update the round stuff
updateRoomParams54LEGACYSHELL ADDED SERVER: update the room's params such as cheats, etc
heal56LEGACYSHELL ADDED SERVER: heals a player
syncData57LEGACYSHELL ADDED SERVER: syncs the data of the player, with less pertinent data
explosionEffect58LEGACYSHELL ADDED SERVER: spawns a cosmetic (non-damaging) explosion effect at a player's position, used by /player explode
info255CLIENT: used by bwd admins to look at ips and stuff (scary).

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
Next
Enums & Lookup Tables