A server resource framework for FiveM on GTA V Enhanced, built on .NET 10. Xostme fills the role QBCore and ESX play on Legacy FiveM: the core resource every other script on the server depends on — player identity, characters, sessions, persistence, and observability, exposed as simple reusable functions.
Early development. FiveM for GTAV Enhanced entered early access on July 21, 2026, and both the platform and this framework are moving fast. Expect breaking changes.
The Enhanced server runs C# resources on a bundled CoreCLR (.NET 10) — no Mono, no
.NET Framework. That makes a modern, properly layered framework possible: real dependency
injection, TimeProvider-based testing, UUIDv7 keys, source-generated logging, and hot paths
designed for the new 120 Hz sync rate. Findings from dissecting the Enhanced server's C# host,
including its current sandbox restrictions, are documented in
docs/cfx-enhanced-csharp.md.
| Project | Role |
|---|---|
src/Xostme.Framework |
The core: domain models (Player, Character), thread-safe registries, DI registration extensions. Ships inside the FiveM resource; deliberately references almost nothing so it passes the Enhanced script sandbox. |
src/Xostme.Framework.Persistence |
PostgreSQL layer: connection factory, stores, and a migration runner that self-initializes the schema at startup. Never ships in-game while the platform sandbox blocks database drivers; consumed by tests and development hosts. |
src/Xostme.FiveM |
The resource adapter and composition root. Building it assembles a ready-to-run FiveM resource. |
tests/Xostme.Framework.Tests |
xUnit suite covering the domain and persistence layers. |
The split follows dependency rings: pure domain in the core, infrastructure at the edges. New framework code lands in the core unless it references an infrastructure package.
Prerequisites: .NET 10 SDK, Docker Desktop.
# infrastructure: PostgreSQL, Redis, Prometheus, Grafana
cd docker && docker compose up -d
# build everything and assemble the FiveM resource into resources/xostme
dotnet build Xostme.slnx
# run the test suite
dotnet test Xostme.slnxdocker compose up -d is the only infrastructure command there is: the database schema feeds
itself through the migration runner on startup, and Grafana provisioning is mounted from the
repository. Copy docker/.env.example to docker/.env and fill in the secrets first.
To load the resource on a Cfx Server (Enhanced), point the server at the resources/ folder and
add to server.cfg:
set xostme_database "Host=localhost;Database=xostme;Username=xostme;Password=..."
ensure xostme
- Player and character domain with registries
- PostgreSQL persistence with automatic migrations
- One-command local infrastructure
- FiveM resource adapter, booting on Enhanced early access
- Player connection lifecycle feeding the registry
- Session management
- Redis-backed state
- Domain metrics for the server's Prometheus endpoint
- In-game persistence, pending the platform's assembly trust mechanism
All rights reserved.
