
Overview
OpenRP is a multiplayer city sandbox that runs in a browser. Players can take jobs, buy property, operate businesses, build with physics props, and participate in elections and city laws.
It is inspired by the social sandbox of DarkRP, with its own implementation and locally generated map geometry, characters, equipment, textures, and sound effects. A Garry’s Mod installation or extracted game assets are not required.
The city and its systems
The city connects several activities through shared resources and ownership:
- Jobs: roles define salaries, equipment, and access to businesses.
- Property: doors can be purchased, named, locked, and shared through keys.
- Businesses: stock, prices, and purchases connect a shop to its owner.
- Construction: players manipulate props using physics and tool controls.
- Government: elections, laws, licenses, warrants, and arrests change city life.
- Social play: nearby chat, roleplay actions, group channels, and proximity voice support interaction.
The Union District includes neighborhoods, multi-room apartments, and businesses. Shared lobbies remain public while individual units have their own ownership.
Multiplayer architecture
Three.js renders the world, while a Node.js server owns movement checks, rigid-body physics, combat, and economic transactions. WebSockets carry commands and state updates.
The documented simulation runs at 30 Hz with 15 Hz snapshots. Client prediction and interpolation help movement look responsive between authoritative updates. Purchases and combat results still depend on server decisions.
Voice has a separate connection path with server-enforced proximity, explicit microphone controls, and independent muting. The hosting setup has to support long-lived connections for both gameplay and voice.
First session and controls
Open OpenRP, create an account or enter as a guest, and choose to return to the streets. The field guide explains the controls inside the game.
| Control | Use |
|---|---|
| WASD and mouse | Move and look |
| E | Use the targeted object |
| F4 | Jobs, shop, laws, and voting |
| Q | Building tools and props |
| C | Context actions |
| F1 | Field guide |
| V | Push-to-talk after enabling the microphone |
Guest identities rely on a stored browser credential. An account can claim the guest character’s belongings. Accounts belong to the server being played on; independently hosted servers do not share an account database.
Running a local copy
The repository documents Node.js 22.12 or newer. From a checkout:
npm ci
npm run dev
The client and server run together at localhost port 3000. A production build uses npm run build followed by npm start.
Internet hosting requires a Node server with WebSocket support. Static file hosting alone cannot run the multiplayer simulation. The repository’s hosting guide covers the gameplay and voice upgrade routes.
Status and reference
OpenRP is a playable alpha with interconnected systems, rather than a complete recreation of another engine. Features and tuning can change as the project develops.
The public repository contains the source, control reference, configuration, and self-hosting documentation. The cover is project artwork showing the city.