Developers
Under the hood. Custom from the ground up.
Roleplay Project runs on a custom-built TypeScript framework, a MySQL backbone, and a Vue 3 in-game overlay. This page is for anyone who wants to know what is powering the city. Stack, how we work, and how to join the team.
01 /The stack
What the city runs on.
Four load-bearing pieces. Everything else is written in house.
FiveM / CitizenFX
Multiplayer platform
2,048-slot capacity. Active long-term roadmap. Industry standard for serious GTA roleplay. Migrated from RAGEMP, May 2026.
TypeScript
Server runtime
Type-safe gameplay layer. Drizzle for new queries, modular system architecture, esbuild bundle.
Vue 3
In-game overlay
Composition API, around 150 PanelShell-pattern UIs running on the FiveM NUI bridge.
MySQL
Persistence
Schema-versioned. Self-healing idempotent migrations. Hot read replicas for analytics.
02 /Architecture
The PanelShell pattern.
Every in-game UI, banking, MDC, phone, character editor, uses the same component shell. About 150 panels share the language.
// every in-game window extends PanelShell.
// the website is built to feel like one more panel.
<PanelShell
title="MDC, Mobile Data Computer"
subtitle="Unit 8-A-12 · Ofc. Park"
icon="display"
accent="lspd"
:tabs="tabs"
:max-width="880"
@close="$emit('close')"
>
<template #body>
<StatGrid :cards="stats" />
<ActivityList :rows="recent" />
</template>
</PanelShell>Surface tokens
CSS custom properties
Every panel pulls from --surface-canvas, --fg-bright and friends. One shared design system across roughly 150 panels.
Faction accent
Per-panel theming
Pass accent="lspd" and the panel tints icons, active tabs and badges accordingly, never the whole surface.
Esc-to-close
Universal
Every PanelShell binds Escape automatically. The close button shows the (Esc) hint on hover.
03 /The team
Our developers.
Lean by design. We ship when it is ready and we do not ship when it is not. The codebase is closed source, but a few lanes are open.
Founder and Senior Developer
MelonDisrupt
Senior Developer
fatcattuxedo
Head of Development
Java
04 /Open roles
Seats we are hiring for.
Paid roles are contracted and paid hourly through Phytoventures Ltd, the company behind Roleplay Project.
Developer seat
Paid, hourlyTwo paid hourly positions are open with Phytoventures Ltd. You ship gameplay systems into a live city with real players behind every bug report.
What you would work on
- TypeScript gameplay systems on the FiveM server runtime
- Vue 3 PanelShell panels on the NUI bridge
- MySQL schema work and idempotent migrations
Learning spot
Lower-end developers can join unpaid to learn alongside the team and ship real features. TypeScript and Vue 3 preferred, but we will mentor you up.
What you would work on
- Paired work with a senior developer on live features
- Code review on everything you write
- A real changelog entry with your name on it
05 /Contribute
Want to help build the city?
We are a closed-source project, but a few lanes are open. Bug reports, system pitches, and applications when a dev seat is hiring.
Report a bug
Live · bugs.roleplayproject.net
Sign in with your RPP account, file a bug, and earn 100 PP when a developer marks it valid and fixed. Security exploits stay private and pay 1,000 PP on patch.
Open the bug portalRequest a feature
Live · bugs.roleplayproject.net/features
Pitch what you would love to see. Upvote what others have asked for. Top-voted requests land on the roadmap.
Browse and voteApply to develop
Open · 2 paid roles + unlimited learning spots
Two paid hourly positions are open with Phytoventures Ltd, alongside unpaid learning spots for developers who want to grow into the stack.
Apply nowApply for a developer seat.
Applications run through the bug portal with your RPP account. Tell us what you have built, link anything public, and say which seat you are after. Paid seats are contracted through Phytoventures Ltd and paid hourly.