A complete, battle-tested walkthrough for running your own RedM Red Dead Redemption 2 roleplay server on Ubuntu 24.04 LTS. We cover the CFX license key, the current recommended Linux artifact, full txAdmin web-panel setup, MariaDB configuration, an honest RSG Core vs VORP vs RedEM:RP breakdown, systemd auto-restart, and the 12 most common errors and their fixes. Everything here was verified against official Cfx.re documentation and framework repos on 2026-04-19.

01 // What is RedM (and why you want your own server)

RedM is a modification framework for Red Dead Redemption 2 that enables custom multiplayer servers with Lua/JavaScript scripting, custom gamemodes, and persistent Wild West roleplay economies. Unlike Rockstar's Red Dead Online — which Rockstar effectively put on maintenance mode in 2022 — RedM servers are community-run and can host up to 2,048 players with custom experiences: saloons, bounty systems, ranches, gangs, sheriff departments, custom MLOs, horse breeding, moonshine economies, and more.

In 2026, RedM is the de facto home of RDR2 multiplayer. The roleplay scene runs on three main frameworks — VORP Core (largest install base, most resources), RSG Core (modern QBCore-style fork, fastest-growing in 2026), and RedEM:RP (legacy but still used). With current hardware, a 64-slot VORP or RSG city runs comfortably on a mid-tier VPS — RedM is generally lighter on resources than a full FiveM QBCore city.

This guide targets a self-hosted Ubuntu 24.04 LTS VPS. If you prefer a managed one-click option, ZAP-Hosting (an official CFX partner that supports RedM out of the box) is covered in the affiliate box below.

02 // Requirements & hardware sizing

  • A Cfx.re forum account — free. Required to generate a license key at keymaster.fivem.net. The same keymaster that serves FiveM also issues RedM keys.
  • A Linux VPS — Ubuntu 24.04 LTS (or 22.04 LTS) with root or sudo access.
  • A public IPv4 address — NAT or CGNAT will not work. The license key is bound to the public IP reported by the server.
  • Open ports30120/tcp + 30120/udp (game traffic) and 40120/tcp (txAdmin web panel).
  • MariaDB 10.6 or newer — required for any framework (VORP, RSG Core, RedEM:RP) to persist characters, horses, inventory, etc.
  • Basic Linux familiarity — SSH, editing files with nano/vim, systemd basics. If you're completely new to Linux, consider ZAP-Hosting's managed option below.

Hardware recommendations by server size

ScenarioCPURAMStorageRecommended VPS
Test / development, <8 slots, minimal resources2 vCPU8 GB50 GB NVMeHostinger KVM 2
Small community, 16-32 slots, VORP or RSG Core base4 vCPU16 GB100 GB NVMeHostinger KVM 4 (recommended)
Active 32-64 slot roleplay city, 100+ resources4-8 vCPU16-24 GB200 GB NVMeHostinger KVM 4 or KVM 8
Heavy 64-128 slot server, custom MLOs, many scripts8 vCPU32 GB400 GB NVMeHostinger KVM 8

RedM is CPU-bound, not RAM-bound. Unlike FiveM with QBCore which can chew through 20+ GB on a busy city, RedM servers rarely exceed 8-10 GB even under load. Single-threaded CPU performance on the main server thread is what matters — modern Intel/AMD cores at 3.5 GHz+ easily handle 64 slots. Pick clock speed over core count when choosing your VPS.

Tip

Don't over-provision on day one. Start with Hostinger KVM 4 (4 vCPU / 16 GB / 200 GB NVMe at €12.99/mo) — it's enough for the vast majority of RedM servers. You can always upgrade vertically later without reinstalling if your community grows past 64 active players.

Option 1 — Self-managed VPS

Hostinger KVM 4 — 4 vCPU, 16 GB RAM, 200 GB NVMe

Full root access. Best raw performance per euro. Install exactly the way you want. €12.99/mo on a 12-month plan. Requires you to run all the commands in this guide yourself.

Get Hostinger KVM 4 →
Option 2 — Managed hosting (no Linux needed)

ZAP-Hosting — Official CFX Partner, One-Click RedM Servers

ZAP-Hosting is an official CFX/RedM partner and the most popular managed CFX host in 2026. No Linux, no terminal, no txAdmin bootstrap — your RedM server is ready in under 2 minutes with one-click framework installers (VORP, RSG Core), automatic artifact updates, and 24/7 support.

Use voucher code Keishin-a-8710 for a permanent 20% discount on the entire duration of your rental (excluding dedicated servers). Applied automatically via the link below.

Get ZAP-Hosting (20% Off) →

03 // Get your CFX license key

Every RedM server needs a free CFX license key. The key is bound to your server's public IP address and prevents people from spinning up unlicensed copies.

  1. Create or log in to an account at forum.cfx.re.
  2. Go to keymaster.fivem.net.
  3. Click New Server, pick Server IP as the key type, and paste your VPS public IPv4.
  4. Copy the generated key (starts with cfxk_...). You'll paste it into server.cfg later.
Warning

Do not commit your license key to a public GitHub repo. Revoked keys can be re-issued from keymaster at any time — hit the regenerate button the moment a leak is suspected. Treat it like a password.

04 // Prepare the Ubuntu server

SSH into your VPS as root (or a sudoer) and run the following. These are current for Ubuntu 24.04 LTS as of 2026-04.

# Update the system first
apt update && apt upgrade -y

# Install required packages: build tools, curl, screen, xz-utils for artifact extraction,
# and a few libraries the FXServer binary links against.
apt install -y curl wget git screen xz-utils nano ufw \
    libc6 libgcc-s1 libstdc++6 ca-certificates

# Create a dedicated non-root user for the server
adduser --disabled-password --gecos "" redm

# Open firewall (assuming ufw; adjust if you use iptables/nftables directly)
ufw allow 22/tcp
ufw allow 30120/tcp
ufw allow 30120/udp
ufw allow 40120/tcp
ufw --force enable

Switch to the redm user for everything that follows:

su - redm
mkdir -p ~/server ~/server-data
cd ~/server

05 // Install and harden MariaDB

VORP, RSG Core and RedEM:RP all require MariaDB (or MySQL) to persist characters, horses, money, inventory, jobs, and so on. Ubuntu 24.04 ships MariaDB 10.11 in its repos which is fully supported by every current RedM framework.

# As root (exit out of the redm user first, or sudo)
apt install -y mariadb-server mariadb-client
systemctl enable --now mariadb

# Harden the install: set a root password, drop anonymous users, disable
# remote root, remove test DB. Accept the defaults after setting a password.
mariadb-secure-installation

Create a dedicated database and user for your RedM server. Replace CHANGE_ME with a strong password — use openssl rand -base64 24 to generate one.

mariadb -u root -p <<'SQL'
CREATE DATABASE redm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'redm'@'localhost' IDENTIFIED BY 'CHANGE_ME';
GRANT ALL PRIVILEGES ON redm.* TO 'redm'@'localhost';
FLUSH PRIVILEGES;
SQL
Tip

Keep MariaDB bound to 127.0.0.1 (the default on Ubuntu). Your RedM server connects locally, so there's no reason to expose port 3306 to the internet. If your game server and database ever run on different boxes, use WireGuard or a private network — never open 3306 on the public interface.

06 // Download the FXServer artifact

RedM and FiveM share the same FXServer binary — what makes a server "RedM" versus "FiveM" is the gamename rdr3 line in server.cfg. Grab the current recommended Linux artifact from runtime.fivem.net. The recommended tag is what Cfx.re has validated for production; the latest tag is cutting-edge and can break frameworks.

# Back in as the redm user
su - redm
cd ~/server

# Find the latest recommended build number on the artifacts page, then:
# (example build number below - replace with current recommended)
BUILD="13068-abc123def456"
wget "https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/${BUILD}/fx.tar.xz"
tar xf fx.tar.xz
rm fx.tar.xz
ls -la  # you should see run.sh, FXServer, alpine/, etc.
Tip

Stick with the recommended artifact unless a framework release note specifically calls for the latest tag. VORP and RSG Core both officially support the recommended track. Jumping to latest and then blaming the framework for crashes is the #1 self-inflicted wound on the RedM Discord.

07 // Launch txAdmin for the first time

txAdmin is bundled with FXServer since 2022. It's the web-based control panel that manages your server process, handles recipes (one-click framework installers), scheduled restarts, Discord integration, and ban lists. Start it with a data folder argument — this is where your server.cfg and resources will live.

cd ~/server
bash run.sh +set txAdminPort 40120 +set serverProfile default

You'll see a URL printed with a one-time PIN, like:

[txAdmin] Use the PIN below to register: 1234
[txAdmin] Admin URL: http://YOUR-IP:40120/addMaster/pin

Open that URL in your browser. You'll create your master admin account — save the password in a manager, there is no recovery flow.

Warning

The PIN URL works exactly once. If you close the terminal or lose the PIN before claiming the admin account, you'll need to rm -rf ~/.config/txAdmin (or the data/ folder txAdmin created) and start over. Claim it immediately.

08 // Run the txAdmin setup wizard (install VORP or RSG Core)

After logging in you'll land on the setup wizard. The key step is selecting a recipe — a pre-packaged configuration that downloads a framework, creates the database schema, writes server.cfg, and pulls all required resources in one click.

Recommended recipes (official, maintained):

FrameworkBest forSizeResource count
VORP CoreEstablished roleplay communities, largest resource ecosystemHeavy~60 base resources
RSG CoreNew servers in 2026, QBCore-style syntax, modern codebaseMedium~50 base resources
RedEM:RPLegacy servers, minimal bloat, older guides work with itLight~25 base resources
Vanilla (no framework)Custom gamemode development or sandbox testingNone0

In the wizard:

  1. Paste your database credentials (host: 127.0.0.1, user: redm, password: the one you set, db: redm). Click Check — if it fails, double-check MariaDB is running and the user has the right grants.
  2. Paste your CFX license key in the License field.
  3. Select your recipe (VORP or RSG Core for 99% of people).
  4. Set the server data path (default /home/redm/server-data is fine).
  5. Click Start Deployment. txAdmin downloads the framework, imports the SQL schema, and writes server.cfg — grab a coffee, this takes 2-5 minutes.

09 // Tune server.cfg for RedM

txAdmin writes a working server.cfg during recipe deployment, but you'll want to review and tune it. Open ~/server-data/server.cfg. These are the lines that matter specifically for RedM (as opposed to FiveM):

# CRITICAL: this line is what makes it a RedM server, not a FiveM server
sv_enforceGameBuild 1491  # latest supported RDR2 build as of 2026-04
gamename rdr3

# Endpoints (leave default unless you have multiple IPs)
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

# License key from keymaster
sv_licenseKey cfxk_YOUR_KEY_HERE

# Slots - start conservative, scale up as your community grows
sv_maxClients 32

# Server name shown in the server browser (supports ^colors ^0-^9)
sv_hostname "^1My RedM Server ^7| ^2Serious RP ^7| discord.gg/xxxxx"
sv_projectName "My RedM Server"
sv_projectDesc "Serious Wild West roleplay, whitelisted."

# List server on the master list (set to false for dev/test)
sv_listingHostOverride ""
sv_master1 ""  # leave default - empty uses the Cfx.re master

# OneSync is REQUIRED for RedM - do not disable this
onesync on
onesync_enableInfinity true
onesync_enableBeyond true

# Steam web API key (optional but recommended for Steam identifier support)
# Get one free at: https://steamcommunity.com/dev/apikey
set steam_webApiKey "YOUR_STEAM_WEB_API_KEY_OR_none"
Warning

The gamename rdr3 line is non-negotiable. If you forget it, FXServer boots in FiveM mode and your RedM clients will silently fail to connect with "server not responding". This is the #1 first-boot mistake.

10 // First connect + smoke test

Start the server from the txAdmin web panel: click the big green Start Server button. Watch the console pane — you're looking for a clean boot without red errors, ending with something like:

[    MonitorBot] Server is now online. 0 players connected.
[     Resources] Started resource [framework name]

On your Windows gaming PC, open RedM (install it from redm.net if you haven't), press F8 at the main menu, and type:

connect YOUR_SERVER_PUBLIC_IP:30120

If you see your character spawn in Valentine (VORP default) or Saint Denis (RSG Core default), you're live. Congratulations — you're running a RedM server.

11 // Framework post-install tuning

Both VORP and RSG Core ship with sensible defaults, but a few configs are worth changing on day one:

VORP Core checklist

  • Starting money — edit vorp_core/config.lua, set Config.StartingMoney and Config.StartingGold to fit your economy (default 50$ / 10 gold is usually too generous for serious RP).
  • Character slotsConfig.MaxCharacters default is 4. Most whitelisted servers drop this to 1 or 2 to enforce character commitment.
  • WebhooksConfig.Webhook in vorp_admin and vorp_inventory should be set to a Discord webhook URL for audit logging. Don't skip this.
  • Disable resources you don't use — comment out the ensure lines for any bundled resource you aren't using. Every resource consumes memory and adds startup time.

RSG Core checklist

  • rsg-core/shared/main.lua — review Config.Money (starting balances, bank vs cash), Config.Characters (slot limits), and Config.Server (PvP rules, whitelist toggle).
  • Discord bot token — RSG integrates with a Discord bot for whitelist checks. Create a bot at discord.com/developers, invite to your server with Read Members + Read Roles, and paste the token into rsg-core/config.lua.
  • Map blipsrsg-map ships with a full blip set. Comment out categories you don't want on the mini-map to reduce clutter.

12 // Run RedM as a systemd service (production)

Don't run your production server inside a screen or tmux session forever. Use systemd so the server restarts on crash and boots with the VPS. Stop the server in txAdmin first, then as root:

cat > /etc/systemd/system/redm.service <<'UNIT'
[Unit]
Description=RedM FXServer (txAdmin)
After=network-online.target mariadb.service
Wants=network-online.target

[Service]
Type=simple
User=redm
Group=redm
WorkingDirectory=/home/redm/server
ExecStart=/home/redm/server/run.sh +set txAdminPort 40120 +set serverProfile default
Restart=always
RestartSec=10
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
UNIT

systemctl daemon-reload
systemctl enable --now redm.service
systemctl status redm.service

From now on: systemctl restart redm to restart, journalctl -u redm -f to tail the raw FXServer log, and txAdmin still manages the in-game restart cycle and resources.

Tip

Use txAdmin's scheduled restarts (Settings → Restarter) instead of cron. txAdmin gracefully warns players in chat 10/5/1 minutes before a restart, kicks cleanly, and reboots the FXServer process while systemd keeps the parent alive. Set 4-6 restarts per day for a busy city — RedM leaks memory over long uptimes.

13 // Automated database & server-data backups

One corrupted table, one bad SQL import, or one fat-finger rm -rf will erase your entire community's characters, horses, and inventories if you don't have backups. Set them up on day one, not after disaster strikes.

Create a simple backup script:

sudo mkdir -p /opt/redm-backups
sudo chown redm:redm /opt/redm-backups

cat > /home/redm/backup.sh <<'BASH'
#!/bin/bash
set -euo pipefail
TS=$(date +%Y-%m-%d_%H%M)
DEST=/opt/redm-backups

# MariaDB dump (compressed)
mariadb-dump --single-transaction -u redm -p"YOUR_DB_PASSWORD" redm \
    | gzip > "$DEST/redm-db-$TS.sql.gz"

# Resource + config snapshot (excludes heavy caches)
tar --exclude='cache' --exclude='logs' -czf "$DEST/redm-data-$TS.tar.gz" \
    -C /home/redm server-data

# Retention: keep last 14 daily backups
find "$DEST" -name "redm-*" -mtime +14 -delete
BASH

chmod +x /home/redm/backup.sh

# Run daily at 05:00 (before most players are online)
(crontab -l 2>/dev/null; echo "0 5 * * * /home/redm/backup.sh") | crontab -
Warning

Backups on the same VPS as your server are not backups — they're a convenience snapshot. If the VPS dies or gets compromised, both server and backups are gone together. Ship the daily .tar.gz and .sql.gz to off-VPS storage (Backblaze B2, Hetzner Storage Box, an S3 bucket, or even a cheap second VPS) using restic or rclone. See our guides index for a dedicated backup walkthrough.

14 // Installing custom resources safely

The fun starts here: MLOs, custom jobs, horse trainers, custom clothing, saloon scripts, gang systems. Both VORP and RSG Core have thriving resource ecosystems on GitHub and on the respective framework Discords.

Standard install flow:

  1. Drop the resource into ~/server-data/resources/[vorp]/ or ~/server-data/resources/[rsg]/ (the bracket folders are organizational, txAdmin recurses into them).
  2. Add ensure resourcename to ~/server-data/resources.cfg (or the main server.cfg if your recipe uses that pattern).
  3. If the resource ships an .sql file, import it: mariadb -u redm -p redm < install.sql
  4. Restart the server from txAdmin (not a full FXServer restart — use the resource manager's restart or a scheduled restart).
Warning

Never install pirated "leaked" scripts. Beyond the obvious legal issue, the RedM leak scene is a well-known malware vector — backdoored resources that exfiltrate your database, inject crypto miners, or ddos-on-command are endemic. If you need paid scripts, buy them from forum.cfx.re asset escrow or the framework's official Tebex. The tax and admin compliance from an escrow purchase is also what the Cfx.re ToS requires for any ToS-escrow resource.

15 // Server hardening checklist

  • SSH key auth only — disable password login in /etc/ssh/sshd_config (PasswordAuthentication no), and add your public key to ~redm/.ssh/authorized_keys.
  • Fail2banapt install fail2ban with the default sshd jail stops brute-force login attempts cold.
  • txAdmin behind a reverse proxy — for production, put nginx or Caddy in front of port 40120 with a Let's Encrypt cert so your admin panel runs on https://admin.yourdomain.com instead of an IP on a high port.
  • Strong txAdmin passwords + 2FA — enable 2FA for every admin account (Settings → Admin Manager). RedM admin accounts are what get hijacked first when a server is popped.
  • Don't run as root — you already set this up (the redm user). If a resource has a 0-day, the blast radius stops at /home/redm.
  • Rotate your CFX license key if you ever share server files with a developer, stream a debugging session, or suspect a leak.

16 // Interactive: RedM VPS sizing calculator

Pick your framework and expected slot count. The calculator estimates RAM + CPU load based on production RedM deployments and recommends the Hostinger plan that fits — plus the managed ZAP-Hosting alternative.

17 // Troubleshooting: the 12 errors you will hit

SymptomRoot causeFix
Server not showing in RedM browserMissing gamename rdr3 or firewall blocking 30120/udpAdd gamename rdr3 to server.cfg, verify ufw status shows 30120/udp allowed.
"Server is not authorized" on bootLicense key invalid, revoked, or bound to a different IPRegenerate key at keymaster.fivem.net with the current public IP, paste the fresh value into sv_licenseKey.
Players stuck at "Loading scripts" foreverA resource is erroring during start and blocking the join queueIn txAdmin console, look for red [ERROR] lines right after the hang. Most common cause is an SQL schema mismatch — re-run the resource's install.sql.
MariaDB "Access denied for user 'redm'@'localhost'"Wrong password in server.cfg database URL or missing grantsReset with ALTER USER 'redm'@'localhost' IDENTIFIED BY 'NEW_PW'; FLUSH PRIVILEGES; and update the mysql_connection_string convar.
OOM killer terminates FXServerUnder-provisioned RAM or a leaking resourceRun dmesg -T | grep -i kill to confirm OOM. Upgrade to KVM 4 (16 GB) minimum, then audit with txAdmin → Diagnostics → Resources.
txAdmin web panel returns 502 Bad GatewayFXServer crashed and systemd is between restarts, or port 40120 collisionsystemctl status redm for state. Check nothing else binds 40120 with ss -tlnp | grep 40120.
"Couldn't load resource [name]"Missing dependency or typo in fxmanifest.luaCheck the resource's README for dependencies, ensure each is listed in resources.cfg above the dependent resource.
Characters reset on every joinDatabase write failing silently — often charset mismatch (utf8 vs utf8mb4)Run ALTER DATABASE redm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; and let the framework recreate tables.
High CPU usage on a mostly empty serverA looped resource (usually a custom script) with no wait in its main threadUse txAdmin → Live Console → resmon to find the offender. Any script showing >5 ms average tick is suspect.
Resource works locally but fails in productionFile-system case sensitivity — Windows dev, Linux prodRename files to match the exact case used in fxmanifest.lua. Linux treats Client.lua and client.lua as different files.
Players can connect but can't spawnMissing or broken spawnmanager resource, or character creation loop broken by a framework updateCheck that spawnmanager is ensured in server.cfg. For VORP/RSG, re-run the framework's latest SQL migration.
"This server requires an update" on joinServer artifact build behind the current RDR2 game buildDownload the newest recommended artifact from runtime.fivem.net, stop server, replace files in ~/server, restart systemd unit.

18 // Next steps

  • Reverse proxy + SSL for txAdmin — see our nginx + Let's Encrypt walkthrough (same pattern works for txAdmin on port 40120).
  • FastDL / asset CDN — reduces initial download time for new players. Our FastDL guide covers the generic nginx pattern that also works for RedM custom streams.
  • Panel-managed multi-server — if you plan to run RedM + FiveM + Minecraft side by side on one VPS, switch to Pelican Panel or Pterodactyl to manage them all from one web UI.
  • Moving to dedicated hardware — once you're past ~48 concurrent players on a heavy framework, VPS shared CPU becomes the bottleneck. Time to consider a dedicated server with a high-clock consumer CPU (Ryzen 7 7700X tier).

19 // Final thoughts

RedM servers live or die on single-threaded CPU performance and disciplined resource curation. The framework you pick, the scripts you add, and the restart cadence you enforce matter more than raw RAM headroom. Start with RSG Core on a Hostinger KVM 4, keep your resource list lean, run 4 scheduled restarts a day, and back up to off-VPS storage nightly. That setup carries a well-run 32-slot server comfortably, and the guide above is everything you need to stand it up in one evening.

If managing Linux, MariaDB, and systemd isn't how you want to spend your weekends, ZAP-Hosting is the official CFX partner for managed RedM — use voucher Keishin-a-8710 for a permanent 20% discount on every plan except dedicated boxes. You give up some flexibility, you get back a weekend.