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.

City live since 3 July 20262 paid roles openPhytoventures Ltd

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.

panels/MyPanel.vueComposition API
// 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

No open roles right now.

The development team is fully staffed. When a seat opens it is posted here first, and paid roles are contracted hourly through Phytoventures Ltd, the company behind Roleplay Project.

Applications are closed

0 open

We are not taking developer applications at the moment, paid or unpaid. That will change as the project grows. In the meantime the most useful thing you can do is play, and file what breaks.

05 /Contribute

Want to help build the city?

We are a closed-source project, but a couple of lanes are always open. Report what breaks, and pitch what you would like to see built.

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 portal

Request 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 vote

Not hiring developers at the moment.

We are not accepting developer applications right now. When a seat opens it will be listed above, and applications will run through the bug portal with your RPP account. Until then, a good bug report is worth more to us than a CV.