> Complete RedM Server Setup Guide for 2026

Step-by-step guide to setting up a RedM (RDR2 RP) server. Learn installation, configuration, VORP framework setup, and optimization.

Intermediate
2 hours

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
RedM shares its infrastructure with FiveM, including the Cfx.re Keymaster for license keys, the txAdmin management panel, and the same artifact-based server system.

Legal Note: You need a legitimate copy of Red Dead Redemption 2 to run and connect to a RedM server.

---

Prerequisites

System Requirements

RequirementMinimumRecommended
CPU4 cores6+ cores
RAM8 GB16 GB
Storage30 GB80 GB SSD
Bandwidth20 Mbps100 Mbps
OSWindows 10 / LinuxWindows 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

  • 1.Create the server directory
  •    C:\RedM-Server\
       ├── server\
       └── server-data\
       
  • 2.Download server artifacts from the Cfx.re artifacts page for RedM. Extract into your server folder.
  • 3.Set up the server data directory
  • Bash
       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

    Bash
    # 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.

  • 1.Visit keymaster.fivem.net
  • 2.Log in with your Cfx.re account
  • 3.Click Register a New Server
  • 4.Fill in server name, IP address, and server type
  • 5.Click Generate and copy the license key
  • ---

    Step 3: Server Configuration

    Basic server.cfg

    Create server.cfg in your server-data/ directory:

    Config
    # 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

    Config
    # 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

    Config
    # 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:

    Lua
    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:

  • 1.Download oxmysql from GitHub
  • 2.Extract to resources/[core]/oxmysql/
  • 3.Add to server.cfg:
  • Config
    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:

    BATCH
    @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:

    Bash
    #!/bin/bash
    echo "Starting RedM Server..."
    cd ~/redm/server-data
    ~/redm/server/run.sh +exec server.cfg
    

    Bash
    chmod +x ~/redm/start.sh
    

    Systemd Service (Linux)

    Create /etc/systemd/system/redm.service:

    INI
    [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
    

    Bash
    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):

    Bash
    sudo apt update
    sudo apt install mariadb-server mariadb-client -y
    sudo mysql_secure_installation
    sudo systemctl enable mariadb
    

    Creating the Database

    Bash
    sudo mysql -u root -p
    

    SQL
    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:

    Config
    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

  • 1.Download VORP Core and extract to resources/[core]/vorp_core/
  • 2.Import the SQL: mysql -u redm_user -p redm_server < vorp_core.sql
  • 3.Add ensure vorp_core to server.cfg (after oxmysql)
  • VORP Character

  • 1.Download VORP Character and extract to resources/[core]/vorp_character/
  • 2.Import the SQL: mysql -u redm_user -p redm_server < vorp_character.sql
  • 3.Add ensure vorp_character to server.cfg
  • VORP Inventory

  • 1.Download VORP Inventory and extract to resources/[core]/vorp_inventory/
  • 2.Import the SQL: mysql -u redm_user -p redm_server < vorp_inventory.sql
  • 3.Add ensure vorp_inventory to server.cfg
  • Config
    # 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

    PortProtocolPurpose
    30120TCPHTTP (resource downloads, server list)
    30120UDPGame traffic

    Router Configuration

  • 1.Find your server's local IP (ipconfig on Windows, hostname -I on Linux)
  • 2.Access your router admin panel (usually 192.168.1.1)
  • 3.Forward TCP and UDP 30120 to your server's local IP
  • 4.Test at canyouseeme.org using port 30120
  • Firewall Rules

    Windows:

    BATCH
    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):

    Bash
    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

    Lua
    -- 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:

    Config
    add_principal identifier.license:abc123def456 group.admin
    add_principal identifier.steam:110000112345678 group.admin
    

    ---

    Server Optimization

    Performance Tips

  • 1.Only load needed resources - Every resource consumes CPU and memory
  • 2.Use OneSync - Required for proper synchronization
  • 3.Optimize Lua loops - Avoid Wait(0) where possible
  • 4.Database indexes - Add indexes to frequently queried columns
  • Efficient Scripting

    Lua
    -- 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

  • 1.Verify license key in server.cfg
  • 2.Check port forwarding (TCP and UDP 30120)
  • 3.Confirm firewall rules allow traffic
  • 4.Check server console for errors
  • Players Cannot Connect

  • 1.Ensure onesync on is set
  • 2.Check console for resource errors
  • 3.Update to latest artifact build
  • 4.Verify sv_maxclients setting
  • Server Crashes on Startup

  • 1.Check server.cfg for syntax errors
  • 2.Remove recently added resources and test
  • 3.Verify MySQL is running and connection string is correct
  • 4.Re-download server artifacts if corrupted
  • Resource Errors

    Config
    # "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

    Config
    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:

    Lua
    -- 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

    Bash
    #!/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
    Next steps:
    • >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