Complete RedM Server Setup Guide for 2026
Ready to build your own Red Dead Redemption 2 roleplay server? This guide walks you through setting up a RedM server from scratch, covering installation, configuration, database setup, and everything you need to get players connected.
What is RedM?
RedM is a modification framework for Red Dead Redemption 2, built on the same Cfx.re platform as FiveM. It allows you to:
- >Run custom multiplayer servers for RDR2
- >Add custom scripts, items, and mechanics using Lua
- >Create roleplay experiences set in the Wild West
- >Build unique game modes beyond what Red Dead Online offers
- >Manage players with full admin tools and permissions
Legal Note: You need a legitimate copy of Red Dead Redemption 2 to run and connect to a RedM server.
---
Prerequisites
System Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 6+ cores |
| RAM | 8 GB | 16 GB |
| Storage | 30 GB | 80 GB SSD |
| Bandwidth | 20 Mbps | 100 Mbps |
| OS | Windows 10 / Linux | Windows Server 2019+ / Ubuntu 22.04+ |
Required Items
- >Red Dead Redemption 2 license (must be legitimate)
- >Cfx.re account (same account used for FiveM)
- >Static IP address or dynamic DNS service
- >Port forwarding access on your router
- >Basic knowledge of Lua scripting (helpful but not required to start)
Step 1: Install RedM Server Artifacts
Windows Installation
C:\RedM-Server\
├── server\
└── server-data\
server folder. cd C:\RedM-Server
git clone https://github.com/citizenfx/cfx-server-data.git server-data
Your directory should look like:
C:\RedM-Server\
├── server\
│ ├── FXServer.exe
│ └── (other artifact files)
└── server-data\
├── resources\
├── cache\
└── server.cfg
Linux Installation
# Create directory structure
mkdir -p ~/redm/server ~/redm/server-data
cd ~/redm/server
# Download latest RedM server artifact (check Cfx.re for current URL)
# Download latest artifact from https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/
# Visit the URL above and copy the link for the latest recommended build
wget <PASTE_LATEST_ARTIFACT_URL_HERE>
# Extract artifacts
tar -xf fx.tar.xz && rm fx.tar.xz
# Clone server data
cd ~/redm
git clone https://github.com/citizenfx/cfx-server-data.git server-data
mkdir -p server-data/cache
---
Step 2: Generate a License Key
RedM uses the same Cfx.re Keymaster as FiveM.
---
Step 3: Server Configuration
Basic server.cfg
Create server.cfg in your server-data/ directory:
# RedM Server Configuration
# Network Endpoints
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# License Key (from Cfx.re Keymaster)
sv_licensekey "your-license-key-here"
# Server Identity
sv_hostname "My RedM RP Server"
sets sv_projectName "My RedM Server"
sets sv_projectDesc "A Wild West roleplay experience"
sets sv_projectGameType "RedM"
# Max Players
sv_maxclients 32
# RCON Password (change this!)
rcon_password "change-this-strong-password"
# Steam Web API Key
steam_webApiKey "your-steam-api-key"
# Server List Settings
sv_endpointPrivacy true
# OneSync (required for most scripts)
onesync on
# Core Resources
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure hardcap
ensure rconlog
RedM-Specific Settings
# Game Build
sv_enforceGameBuild 1491
# Voice Chat
setr voice_use3dAudio true
setr voice_useSendingRangeOnly true
# Logging
set sv_logfile 1
set sv_logecho 1
# Performance
sv_threadSyncMode 2
ACE Permissions
# Permission Groups
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_ace group.moderator command.kick allow
add_ace group.moderator command.ban allow
# Inheritance
add_principal group.moderator group.admin
# Add admins by identifier
add_principal identifier.license:your_license_hash group.admin
add_principal identifier.steam:your_steam_hex group.admin
add_principal identifier.discord:your_discord_id group.moderator
# Allow everyone basic commands
add_ace builtin.everyone command.help allow
---
Step 4: Essential Resources and Scripts
Resource Manifests
RedM resources use fxmanifest.lua just like FiveM, but with one critical difference:
fx_version 'cerulean'
game 'rdr3'
author 'Your Name'
description 'My RedM resource'
version '1.0.0'
shared_scripts { 'config.lua' }
client_scripts { 'client/*.lua' }
server_scripts { 'server/*.lua' }
Important: RedM resources must use game 'rdr3' in the manifest, not game 'gta5'. This is the most common mistake when porting FiveM resources.
Resource Folder Structure
server-data/resources/
├── [essential]/
│ ├── mapmanager/
│ ├── chat/
│ └── spawnmanager/
├── [core]/
│ ├── vorp_core/
│ ├── vorp_character/
│ ├── vorp_inventory/
│ └── oxmysql/
├── [gameplay]/
│ ├── vorp_stables/
│ ├── vorp_stores/
│ └── vorp_crafting/
└── [admin]/
└── txAdmin/
Database Connector
Install oxmysql as your database connector:
resources/[core]/oxmysql/server.cfg:set mysql_connection_string "mysql://redm_user:your_password@localhost/redm_server?charset=utf8mb4"
ensure oxmysql
---
Step 5: Starting the Server
Windows
Create start.bat:
@echo off
title RedM Server
cd /d "C:\RedM-Server\server-data"
"C:\RedM-Server\server\FXServer.exe" +exec server.cfg
pause
Linux
Create start.sh:
#!/bin/bash
echo "Starting RedM Server..."
cd ~/redm/server-data
~/redm/server/run.sh +exec server.cfg
chmod +x ~/redm/start.sh
Systemd Service (Linux)
Create /etc/systemd/system/redm.service:
[Unit]
Description=RedM Server
After=network.target mysql.service
Wants=mysql.service
[Service]
Type=simple
User=redm
Group=redm
WorkingDirectory=/home/redm/redm/server-data
ExecStart=/home/redm/redm/server/run.sh +exec server.cfg
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable redm
sudo systemctl start redm
---
Step 6: Database Setup
Installing MariaDB
Windows: Download MariaDB and run the installer.
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install mariadb-server mariadb-client -y
sudo mysql_secure_installation
sudo systemctl enable mariadb
Creating the Database
sudo mysql -u root -p
CREATE DATABASE redm_server CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'redm_user'@'localhost' IDENTIFIED BY 'your-strong-password';
GRANT ALL PRIVILEGES ON redm_server.* TO 'redm_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Database Connection
Add to server.cfg:
set mysql_connection_string "mysql://redm_user:your-strong-password@localhost/redm_server?charset=utf8mb4"
ensure oxmysql
---
Step 7: Installing VORP Framework
VORP is the most popular RP framework for RedM, equivalent to ESX or QBCore for FiveM.
VORP Core
resources/[core]/vorp_core/mysql -u redm_user -p redm_server < vorp_core.sqlensure vorp_core to server.cfg (after oxmysql)VORP Character
resources/[core]/vorp_character/mysql -u redm_user -p redm_server < vorp_character.sqlensure vorp_character to server.cfgVORP Inventory
resources/[core]/vorp_inventory/mysql -u redm_user -p redm_server < vorp_inventory.sqlensure vorp_inventory to server.cfgRecommended Load Order
# Database (must be first)
ensure oxmysql
# VORP Core (before other VORP resources)
ensure vorp_core
# VORP Framework
ensure vorp_character
ensure vorp_inventory
# Gameplay Scripts
ensure vorp_stables
ensure vorp_stores
ensure vorp_crafting
# Other Resources
ensure chat
ensure spawnmanager
ensure hardcap
For a full VORP setup guide, see our dedicated VORP Framework Guide.
---
Step 8: Port Forwarding
Required Ports
| Port | Protocol | Purpose |
|---|---|---|
| 30120 | TCP | HTTP (resource downloads, server list) |
| 30120 | UDP | Game traffic |
Router Configuration
ipconfig on Windows, hostname -I on Linux)192.168.1.1)Firewall Rules
Windows:
netsh advfirewall firewall add rule name="RedM TCP" dir=in action=allow protocol=tcp localport=30120
netsh advfirewall firewall add rule name="RedM UDP" dir=in action=allow protocol=udp localport=30120
Linux (UFW):
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw reload
---
Step 9: Admin Management
txAdmin
txAdmin is bundled with the server artifacts and provides a web-based management interface at http://your-server-ip:40120.
Features include live console, player management, resource management, scheduled restarts, performance monitoring, and Discord webhook integration.
Finding Player Identifiers
-- server.lua - Helper command
RegisterCommand('myid', function(source)
local identifiers = GetPlayerIdentifiers(source)
for _, id in pairs(identifiers) do
print(GetPlayerName(source) .. ': ' .. id)
end
end, false)
Use identifiers to assign ACE permissions in server.cfg:
add_principal identifier.license:abc123def456 group.admin
add_principal identifier.steam:110000112345678 group.admin
---
Server Optimization
Performance Tips
Wait(0) where possibleEfficient Scripting
-- GOOD: Variable sleep based on proximity instead of Wait(0)
CreateThread(function()
while true do
local sleep = 1000
local playerCoords = GetEntityCoords(PlayerPedId())
for _, location in pairs(Config.Locations) do
if #(playerCoords - location.coords) < 50.0 then sleep = 0 end
end
Wait(sleep)
end
end)
---
Troubleshooting
Server Not Visible
server.cfgPlayers Cannot Connect
onesync on is setsv_maxclients settingServer Crashes on Startup
server.cfg for syntax errorsResource Errors
# "Could not find resource" - folder name must match ensure name
ensure vorp_core # Folder must be exactly "vorp_core"
# "Failed to load script" - check game type in fxmanifest.lua
game 'rdr3' # NOT 'gta5'
---
Security Best Practices
Server Configuration
rcon_password "use-a-32-character-password-here"
sv_endpointPrivacy true
sv_pureLevel 1
set sv_authMaxVariance 1
set sv_authMinTrust 5
Script Security
Always validate server events:
-- SECURE: Validate source and data types
RegisterNetEvent('giveItem')
AddEventHandler('giveItem', function(item, amount)
local source = source
if not source or source <= 0 then return end
if type(item) ~= 'string' or type(amount) ~= 'number' then return end
if amount <= 0 or amount > 100 then return end
-- Safe to process
end)
Backups
#!/bin/bash
# backup.sh - RedM Server Backup
BACKUP_DIR="/home/redm/backups"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
mkdir -p "$BACKUP_DIR"
mysqldump -u redm_user -p"password" redm_server > "$BACKUP_DIR/db_$DATE.sql"
tar -czf "$BACKUP_DIR/server_$DATE.tar.gz" /home/redm/redm/server-data/server.cfg /home/redm/redm/server-data/resources/
find "$BACKUP_DIR" -type f -mtime +14 -delete
Schedule with cron: 0 4 * /home/redm/backup.sh
---
Conclusion
Your RedM server is now ready for players! Remember to:
- >Keep server artifacts and resources updated
- >Set up regular automated backups
- >Monitor performance through txAdmin
- >Follow Cfx.re terms of service
- >Follow our VORP Framework Setup Guide for a complete RP server
- >Add custom scripts for jobs, housing, and economy
- >Configure weather and time systems
- >Set up Discord integration for server notifications