How toRage.MP

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 city street in GTA V during a RAGE Multiplayer session

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:

  1. Set "csharp": "enabled" in conf.json.
  2. Put each resource in its own folder under dotnet/resources/, with its compiled .dll files.
  3. 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:

  1. Back up the database and the server folder.
  2. Announce a restart time.
  3. Stop, upload the changed files, start.
  4. 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.

$4.99USD first month

Then $9.99/mo. Just trying it? $2.50 for 3 days

Keep reading