> ## Documentation Index
> Fetch the complete documentation index at: https://help.freakhosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Install Scripts and a Gamemode on a RAGE:MP Server

> How to install scripts on a RAGE:MP server: upload server code to packages, client code to client_packages, add maps and plugins, then restart the server.

To install scripts on a RAGE:MP server, upload the server-side part to `packages/<gamemode name>/` (it must contain an `index.js`) and the client-side part to `client_packages/` (starting at `client_packages/index.js`) using **Files** or SFTP, then restart the server. The server loads `packages` itself; players download `client_packages` when they join.

| Difficulty | Time | Works on | Panel pages |
| - | - | - | - |
| Intermediate | 10 to 20 minutes | Every FREAKHOSTING RAGE:MP server | **Files**, **Console** |

## Before you start

* Make a [backup](https://help.freakhosting.com/portals/game-panel/how-to-create-and-restore-backups.md) first.
* Have your gamemode or script on your PC. Most downloads include a `packages` folder, a `client_packages` folder, or both.
* For many files, [SFTP](https://help.freakhosting.com/portals/game-panel/how-to-connect-via-sftp.md) is faster than uploading in the browser.

## Where do RAGE:MP scripts go?

| Folder | What goes in it | Loaded by |
| - | - | - |
| `packages/<name>/` | Server-side Node.js code. Needs an `index.js` in the folder. | The server, at start |
| `client_packages/` | Client-side JavaScript and CEF files (HTML, CSS, images). Entry file `client_packages/index.js`. | Each player, downloaded on join |
| `client_packages/dlcpacks/<name>/` | Add-on DLC packs (`dlc.rpf`). | Each player, downloaded on join |
| `maps/` | Map files in JSON format. | The server |
| `plugins/` | Custom `.dll` plugins. | The server |
| `dotnet/resources/<name>/` | C# resources (C# bridge only). | The server |

## How to upload a script

**1. Stop the server**

[Stop the server](https://help.freakhosting.com/portals/game-panel/how-to-start-stop-and-restart-your-game-server.md) so files are not in use while you replace them.

**2. Upload the server part**

Click **Files**, open `packages` (click **New folder** if it doesn't exist) and create a folder for your gamemode, for example `mygamemode`. Upload the server files into it with **Upload**. Check that `packages/mygamemode/index.js` exists.

**3. Upload the client part**

Open `client_packages` and upload the client files. If the script comes with its own `index.js`, and you already have one, don't overwrite it: rename the new one and load it from your main file with `require('./newscript/index.js');`.

**4. Check the folder structure**

Unzip downloads on your PC first and upload the folders themselves, not the `.zip`. Make sure you didn't end up with an extra folder level, such as `packages/mygamemode/mygamemode/index.js`.

**5. Start and check the console**

Start the server and watch the [console](https://help.freakhosting.com/portals/game-panel/how-to-use-the-server-console.md). Errors from your scripts show there with a file name and line.

## How does a server package load?

The server runs `index.js` in each folder under `packages`. Split your code into files and load them from `index.js`:

```javascript theme={null}
// packages/mygamemode/index.js
require('./commands.js');
require('./events.js');
```

```javascript theme={null}
// packages/mygamemode/commands.js
mp.events.addCommand('hp', (player) => {
    player.health = 100;
});
```

## How does client\_packages load?

`client_packages/index.js` is the first file that runs once a player has downloaded all your files. Other client files are loaded from it with `require`, using the path from the `client_packages` root:

```javascript theme={null}
// client_packages/index.js
require('./mygamemode/hud.js');
```

Players download changed client files the next time they join.

## Frequently asked questions

### Why isn't my script loading?

Check that the server file is at `packages/<name>/index.js`, not one folder deeper (a common result of unpacking a zip), and read the console for errors.

### Do I need to install npm packages?

If a script lists Node.js modules in a `package.json`, install them on your PC with `npm install` and upload the resulting `node_modules` folder into the package folder. Ask the script's author if you're unsure.

### Can I use FiveM resources?

No. FiveM resources use a different API; they must be rewritten for RAGE:MP. See [basic configuration](https://help.freakhosting.com/games/rage-multiplayer/rage-multiplayer-basic-server-configuration-guide.md).

### Where do C# scripts go?

In `dotnet/resources/<name>/`, with the C# bridge turned on. See [C# bridge or Node.js](https://help.freakhosting.com/games/rage-multiplayer/installing-bridge-csharp-vs-node.md).

## Related guides

> [card] [RAGE:MP server guide](https://help.freakhosting.com/games/rage-multiplayer/rage-multiplayer-server-hosting-guide.md)
>
> Every RAGE:MP page in one place.

> [card] [Client-side vs server-side](https://help.freakhosting.com/games/rage-multiplayer/client-side-vs-server-side-scripts.md)
>
> Which code goes where.

> [card] [Client packages not downloading](https://help.freakhosting.com/games/rage-multiplayer/rage-multiplayer-client-packages-not-downloading.md)
>
> Stuck on "Loading files".

> [card] [DLC and modded clothing](https://help.freakhosting.com/games/rage-multiplayer/handling-dlc-and-modded-clothing.md)
>
> Add-on packs.

> [card] [File Manager](https://help.freakhosting.com/portals/game-panel/how-to-use-the-file-manager.md)
>
> Upload, unpack and edit files.

***

> [!NOTE]
>
> **Checked against the official RAGE Multiplayer wiki** ([Getting Started with Development](https://wiki.rage.mp/wiki/Getting_Started_with_Development), [Getting Started with Client-side](https://wiki.rage.mp/wiki/Getting_Started_with_Client-side)) on 2 November 2026. Details may change if RAGE Multiplayer changes.

> [!NOTE]
>
> ### Need Extra Help?
>
> If you encounter any issues, our support team is ready to assist:
>
> * **Live Chat:** Quick assistance via our website.
> * **Support Ticket:** [Open a Ticket](https://freakhosting.com/clientarea/submitticket.php)
> * **Discord:** [Join our Community](https://discord.gg/freakhosting)
> * **Email:** [support@freakhosting.com](mailto:support@freakhosting.com)

> [!TIP]
>
> ### Save on Your Hosting
>
> Ready to upgrade your hosting? Use code **KB20** at checkout for **20% off** your first order!

***

**Last Updated:** November 2026


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.