How to Install a Gamemode on a RAGE MP Server (JS and C#)
Put a RAGE Multiplayer gamemode on your GTA V server: packages and client_packages layout, node_modules, C# resources in dotnet, databases and testing.
Updated Oct 7, 2026 · 5 min read
On this page
To install a gamemode on a RAGE MP server, stop the server, upload the gamemode's server code into packages/<name>/ (with an index.js entry file), its client code into client_packages/ (with client_packages/index.js as the entry), and any C# resources into dotnet/resources/ with "csharp": "enabled" in conf.json. Upload node_modules too if the gamemode uses npm packages, set up the database it expects, then start the server and read the console for errors.

A quick word on what you are installing
RAGE Multiplayer is an independent multiplayer platform for GTA V on PC, not affiliated with Rockstar Games or Take-Two. The RAGE MP server is an engine. A gamemode is everything players actually see: spawning, jobs, money, vehicles, inventory, phone, the lot. Gamemodes come as:
- Free and open source projects on GitHub or the RAGE MP forums, often roleplay or freeroam bases.
- Paid gamemodes sold by developers, usually with setup notes.
- Your own, written in JavaScript or C#.
Read the gamemode's own README first. It will say which RAGE MP version it targets, which language it uses, and whether it needs a database. Old gamemodes written for RAGE MP 0.3.x may need work on current versions.
How the folders fit together
server/
conf.json
packages/
mygamemode/
index.js
node_modules/
client_packages/
index.js
mygamemode/
dotnet/
resources/
settings.xml
| Folder | Runs where | Language |
|---|---|---|
packages/<name>/ |
On the server, in Node.js | JavaScript |
client_packages/ |
On each player's PC, downloaded on join | JavaScript, plus HTML/CSS/JS interfaces shown through CEF |
dotnet/resources/<name>/ |
On the server, through the C# bridge | C# |
Every folder in packages is loaded as its own package, starting from its index.js. The client side starts from client_packages/index.js, which then requires the rest.
Step 1: Back up and stop
Take a backup of the current server folder first, especially conf.json, packages and anything database related. Our backup guide has the habit. Then stop the server.
Step 2: Upload server packages
Copy the gamemode's server folder into packages/. A minimal package that proves everything works:
// packages/hello/index.js
mp.events.add('playerJoin', (player) => {
player.outputChatBox(`Welcome, ${player.name}!`);
});
If the gamemode has a package.json, it uses npm modules. Run npm install in that package folder and upload the resulting node_modules folder with it. One catch: modules with native code (database drivers with compiled parts, image libraries) must be built for the server's operating system. If your server runs Linux and you ran npm install on Windows, those modules fail to load. Install them on a Linux machine, or pick pure JavaScript alternatives.
Step 3: Upload client packages
Copy the gamemode's client files into client_packages/. Many gamemodes ship a ready client_packages/index.js; if you combine several resources, edit it to require each one:
// client_packages/index.js
require('./mygamemode/index.js');
require('./hud/index.js');
Everything in client_packages is sent to every player when they connect, over the HTTP port (the game port plus one, 22006 by default). Keep it small: compress images, drop unused fonts and leave out source maps and test files. Big client packages are the main reason players complain about long joins.
Custom vehicles, clothing and other game assets also travel as client resources in client_packages, so the same advice applies doubly.
Step 4: C# gamemodes
For a C# gamemode:
- Set
"csharp": "enabled"inconf.json. - Put each resource in its own folder under
dotnet/resources/, with its compiled.dllfiles. - Register the resources in
dotnet/settings.xml, following the gamemode's instructions.
C# resources are built against a specific bridge version, so match what the gamemode's README says. Errors from the bridge appear in the server console at start.
Step 5: Set up the database
Most roleplay gamemodes store characters, money and inventories in MySQL or MariaDB. The gamemode's README tells you which, and a config file in the package holds the connection details (host, port, user, password, database name). Import the gamemode's .sql file into an empty database before the first start.
The database does not have to live on the same machine as the game server. Our explainer on whether a game server needs a MySQL database covers the options. Freeroam and race gamemodes often skip the database entirely.
Step 6: Start and read the console
Start the server and watch the console from the first line. You want to see each package load without red errors.
| Console says | Meaning |
|---|---|
Cannot find module 'x' |
node_modules missing, or that module is not installed |
Errors about invalid ELF header or .node files |
A native module built for Windows on a Linux server |
| JSON parse error at start | conf.json has a syntax error, often a trailing comma |
| Database connection refused | Wrong host, port or password in the gamemode config |
| C# resource failed to load | csharp not enabled, or wrong bridge version |
Then join with the RAGE MP client and check the client side. If the interface never appears, the problem is usually in client_packages: a wrong path in a require, or a file that was not uploaded.
Updating a live gamemode
On a roleplay server with real players, treat deploys carefully:
- Back up the database and the server folder.
- Announce a restart time.
- Stop, upload the changed files, start.
- Watch the console for a few minutes before you walk away.
If something breaks, restore the backup rather than debugging live.
Running it on a hosted server
On a GamezServers RAGE MP server, upload packages, client_packages and dotnet through the file manager or SFTP, restart from the control panel and watch the live console as your gamemode boots. The Linux bridge for C# resources is already installed, the server name is set in the panel, and a one click backup before each deploy gives you an instant way back. A roleplay gamemode with a steady crowd sits well on 8 GB.
FAQ
Where do I put a gamemode on a RAGE MP server?
Server code in packages/<name>/, client code in client_packages/, and C# resources in dotnet/resources/.
Why does my RAGE MP gamemode say cannot find module?
The package's node_modules folder was not uploaded, or a module is missing from it. Run npm install for that package and upload the result.
Can RAGE MP gamemodes use MySQL?
Yes. Many roleplay gamemodes do. Set the connection details in the gamemode's config and import its SQL file first.
Do players need to download the gamemode?
Only the client part. Everything in client_packages downloads automatically when they join.
Skip the setup. Your own Rage.MP server.
Then $9.99/mo. Just trying it? $2.50 for 3 days