By the end of this guide you will have a locally running MMO Project server connected to a PostgreSQL database, with a Godot 4 desktop client successfully logged in and rendering the game world. You will be able to move your character, interact with your inventory and equipment, and observe live NPC and remote-player updates — all driven by the authoritative C#/.NET 8 backend.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/TaylorZaneKirk/MMO-Project/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, make sure the following tools are installed and available on yourPATH:
- .NET 8 SDK — required to build and run the prototype server
- PostgreSQL 14 or later — the server connects to a local instance by default
- Godot 4.x (desktop, Mono build) — the client is a Godot 4 GDScript project; the shell scripts expect the binary under
tools/godot/ - git — to clone the repository
Steps
Clone the repository
Clone the project from GitHub and enter the repository root. All subsequent commands in this guide are run from that root unless stated otherwise.
Apply the database schema
Create the The migrations define tables for accounts, sessions, characters, map presence, character stats, item definitions, inventory, equipment, ground items, and runtime revision streams.
mmo_project_proto database and apply all ten migration scripts in order. Each script is additive and must be run in sequence.Configure the server
The server reads its configuration from Edit the
prototype/server/appsettings.json. The file ships with defaults suitable for a local development setup:PrototypeDatabase connection string to match your local PostgreSQL credentials if they differ from the defaults above. Do not commit production credentials to the repository.Start the server
Start the .NET backend from the Once the server is up, verify both health endpoints:If
prototype/server directory:/health/db returns a 503, check that PostgreSQL is running and that the connection string in appsettings.json is correct.Launch the Godot client
From the repository root, run the client launch script. It starts the Godot 4 runtime pointed at Runtime logs are written to Editor logs are written to
prototype/client and streams all output to a log file:prototype/client/logs/godot-runtime.log. To open the project in the Godot editor instead, use:prototype/client/logs/godot-editor.log.Log in
The application opens on the
LoginScreen. Enter the credentials for a seeded account in your local database and press Login.After a successful login the client automatically:- Loads the account character and receives a
character_idfrom the server - Sends an enter-world request and receives the authoritative world entry response
- Transitions to the
GameScreen, which renders the 3×3 chunk world centered on your character’s position
GameScreen you can click to move, open the right-side HUD to view your status bars, inventory slots, and equipment slots, and observe NPC and remote-player presence driven by live server updates.Dev-only debug endpoints are available when the server runs in Development mode (the default for
dotnet run). These endpoints allow direct inspection and seeding of account, session, character stats, inventory, equipment, and item definition state without going through the game client:GET /debug/accounts/{accountName}— look up an account recordPOST /debug/login— perform a login and receive a session tokenPOST /debug/accounts/password— set a password hash for an accountPOST /debug/sessions/{accountName}— create a session directly for an accountPOST /debug/characters/{accountName}/stats— seed character stat valuesPOST /debug/characters/{accountName}/inventory/{slotIndex}— seed an inventory slotPOST /debug/characters/{accountName}/equipment/{slotId}— seed an equipment slotPOST /debug/items/{itemId}— upsert an item definition