@Controller()@Guard({ rank: 3 })z.coerce.number()@Throttle(5, 2000)@OnNet('bank:action')constructor(svc: Svc)The runtime forFiveM
TypeScript-first framework with dependency injection, Zod validation, and security primitives. Built for FiveM & RageMP — RedM coming next.
const TransferSchema = z.object({
targetId: z.coerce.number().int().positive(),
amount: z.coerce.number().positive(),
})
@Controller()
export class BankController {
constructor(private readonly bankService: BankService) {}
@Command({ command: 'transfer', schema: TransferSchema })
@Guard({ permission: 'bank.transfer' })
@Throttle(1, 2000)
async transfer(player: Player, targetId: number, amount: number) {
await this.bankService.move(player.clientID, targetId, amount)
player.send('Transfer completed', 'success')
}
}Framework vs. Raw Code
See what changes when you adopt OpenCore instead of writing everything by hand.
const GiveItemSchema = z.object({
targetId: z.coerce.number().int().positive(),
item: z.string().min(1),
amount: z.coerce.number().int().positive(),
})
@Controller()
export class InventoryController {
constructor(private readonly inventory: InventoryService) {}
@Command({ command: 'giveitem', schema: GiveItemSchema })
@Guard({ permission: 'inventory.give' })
@Throttle(5, 1000)
async giveItem(player: Player, targetId: number, item: string, amount: number) {
await this.inventory.addItem(targetId, item, amount)
player.send('Item given!', 'success')
}
}Everything Built-in
Primitives for secure, scalable, adapter-first multiplayer servers.
Commands
Declarative handlers with Zod validation and Player injection by default
Network Events
Typed event handlers with Player context and payload validation
Library Events
Emit domain events between modules without coupling resources together
Guards & Permissions
Role-based access control via decorators
Rate Limiting
Built-in throttling per player, per method
Player Entity
Rich player API: state, communication, health
Binary Services
Use binaries easily from your favorite compiled languages
Adapters
Target FiveM and RageMP today, with RedM support on the way
Dev Mode
Runtime inspection with event history and virtual players
OpenCore CLI
Monorepo build, watcher, scaffolding, restart and adapter tooling
Security by Default
Guards, throttles, validation out of the box
Performance
Internal benchmarks — February 2026