Sign In
Sign In

How to Set Up a Satisfactory Game Server

How to Set Up a Satisfactory Game Server
Hostman Team
Technical writer
Gaming
07.02.2025
Reading time: 7 min

Satisfactory is a factory simulation game where your goal is to exploit an alien's planet natural resources and build and manage increasingly complex factories.

Introduction to Satisfactory

Satisfactory is a game that will appeal to people interested in engineering and design, and here’s why:

  • Deep Production and Automation System

The game allows players to build complex production chains, including resource extraction, processing, and the assembly of parts and components. Players can design and optimize their factories using various mechanisms and devices to automate processes.

  • Optimization and Planning

Efficient use of space, logistics planning, and resource flow optimization are essential here. System thinking and the ability to analyze production processes are valuable skills in this context.

  • Scalability

Production can grow from a small workshop to a massive industrial complex, providing opportunities to apply knowledge about scaling and managing large systems effectively.

  • Experimentation and Creativity

Experimenting with factory configurations and production processes encourages creativity and helps discover optimal solutions.

Image8

Satisfactory offers engineers a rich environment to apply their knowledge and skills in design, optimization, and production process management. Its deep production system and constant drive for improvement make this game perfect for those who enjoy solving technical challenges and building complex systems.

Cooperative Gameplay

Setting up a multiplayer Satisfactory server is a great idea because when playing with two or more players, your progress through the technology tree accelerates exponentially. Each player can focus on their own tasks, working in parallel. One might handle the extraction of rare resources, another could focus on researching new technologies, while a third designs the next development stage of your factory.

This division of labor saves time and allows players to immerse themselves deeply in a specific aspect of the game. You can become an expert in a particular area while your teammates do the same in others.

Two Heads Are Better Than One

Planning and strategy discussions become much more effective. You can jointly analyze actions, identify bottlenecks, and brainstorm solutions together. This collaborative approach often leads to innovative ideas that you might never come up with on your own.

When working on complex projects, there's always a risk of mistakes or overlooked details. In cooperative mode, there's always an extra set of eyes to catch what you might miss. This is especially crucial in Satisfactory, where even a small planning error can have major consequences down the line.

Flexibility and Spontaneity

One of the main advantages of cooperative play is its flexibility. Players can easily join or leave the game without disrupting the overall process. This is particularly convenient if you have limited time or need to step away briefly.

Spontaneous ideas and improvisation also become part of the gameplay. You might suddenly think of a new solution to a problem or a better optimization strategy and discuss it immediately with your teammates.

The Social Aspect

Interaction in Satisfactory goes beyond mere communication. It's also a great opportunity to share knowledge and experiences. You can exchange discoveries and discuss your optimal designs or your base's long-term strategy.

In cooperative mode, you're not just playing together — you're creating a shared story. You set impossible goals to achieve alone and work toward them collectively.

You'll find joy not only in your personal achievements but in your teammates' successes as well. Every completed research project and every new structure is a reason for the entire team to celebrate. Failures and mistakes affect not just one person but the whole team — making victories even sweeter.

Building Unity and Responsibility

Working on shared goals strengthens the sense of unity and responsibility. You'll start to feel that every player is an integral part of the team, and one person's success is everyone's success.

Cooperative play in Satisfactory is more than just the sum of individual players — it's true synergy. It brings together the best elements of the game while adding teamwork, knowledge sharing, and social interaction.

If you haven't tried cooperative mode yet, you absolutely should. You'll discover that the game becomes even more engaging and profound. So gather your friends, set up a server, and get ready for adventures in the world of Satisfactory.

Technical Guide

Let's move on to the practical part of our tutorial and set up a Satisfactory server.

Useful Resources

These Satisfactory resource may be helpful to you:

Server Requirements

To run Satisfactory on your own server, make sure to meet the following requirements.

  • CPU: 2 cores (the server utilizes multiple cores but prioritizes single-core performance)
  • RAM: 8 GB
  • Disk: 20 GB
  • Network: At least 50 Mbps (the key factor is server response time (ping), ideally under 50 ms)
  • Ports: 7777 TCP/UDP

The official wiki states: "If this is a VM (a VPS most definitely is), a kvm64 CPU won't work!"

This means that Satisfactory will not run on standard VDS/VPS servers with a kvm64 processor. To launch the server, you need either a dedicated (physical) server or a cloud server with dedicated cores (Dedicated CPU).

For this guide, we used a server running Ubuntu 24.04.

Installing the Necessary Components

After creating the server and connecting to it, update the packages and install Docker:

apt update && apt upgrade -y
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Create a directory for the server files:

mkdir /opt/satisfactory  

Navigate to the directory:

cd /opt/satisfactory  

Create a compose.yaml file with the following content:

services:
  satisfactory-server:
    container_name: satisfactory-server
    image: wolveix/satisfactory-server:latest
    restart: unless-stopped
    ports:
      - 7777:7777
    volumes:
      - ./satisfactory-server:/config
    environment:
      VMOVERRIDE: true
      MAXPLAYERS: 4
      PGID: 1000
      PUID: 1000
      ROOTLESS: false
      STEAMBETA: false

Here, the parameter VMOVERRIDE: true allows ignoring the CPU type and is not necessary for dedicated servers.

You can find additional commands and configuration variables on GitHub.

Launching the Server

Start the server:

docker compose up -d

Check the server status:

docker compose ps

View logs:

docker compose logs -f

In the initial container logs, you will see the following:

WARNING: VMOVERRIDE is enabled, skipping CPU model check. Satisfactory might crash!
Checking available memory: 7GB detected
WARNING: You have less than the required 8GB minimum (7GB detected) of available RAM to run the game server.

The server will likely run fine, though may run into issues in the late game (or with 4+ players).

Upon the first launch, the server will download the game files and the latest updates (this process takes about 5 to 10 minutes).

Connecting to the Server

  1. Start the game. Ensure you have the latest version installed.
  2. Navigate to Server ManagementAdd Server.
  3. Enter the external IP address assigned during server setup.
  4. A certificate warning will appear since no domain name or SSL certificate is in use. Click Confirm.
  5. On the first connection, the system will indicate that the server is new and unconfigured. Enter the server name and click Confirm.
  6. Create an administrator password. You will then gain access to the server control panel and settings. Hovering over any item will provide additional information. It is advisable to set a password for other players to join.
  7. Now you can create a game and select a starting location.

Game creation takes 2-3 minutes, after which it becomes available for connection.

Updating the Satisfactory Server

If the client and server versions differ, connections will not be possible.

Update process:

  1. Stop the container:

docker compose down -v  
  1. Restart the server:

docker compose up -d  

The system will check for the latest available versions and download updates (5 to 10 minutes).

Recommendations

  • Cooperative mode does not provide a tutorial for game basics. New players are advised to first progress to oil extraction and processing in single-player mode to become familiar with the game.
  • The key benefits of cooperative gameplay include planning, task distribution, and goal discussions. The in-game interface features a small notepad where all players can share and see messages.
Gaming
07.02.2025
Reading time: 7 min

Similar

Gaming

How to Set Up a Palworld Dedicated Server on a VPS (2026 Guide)

Palworld has captivated over 2 million monthly players with its unique blend of creature collecting and survival crafting. Running your own dedicated server gives you full control over gameplay settings, ensures low-latency connections for your group, and keeps your world online 24/7—even when you're not playing. In this guide, we'll walk through setting up a Palworld dedicated server on a Hostman VPS step by step—from choosing the right plan to connecting your friends. Prerequisites Before starting, make sure you have: A Hostman VPS with at least 4 vCPU cores and 8 GB RAM (recommended for up to 16 players). For larger groups or heavy mod usage, consider 16 GB RAM. Ubuntu 22.04 LTS or Debian 12 as the server OS.  SSH access to your server (terminal on macOS/Linux, or PowerShell/PuTTY on Windows). A copy of Palworld on Steam (to connect as a client). Recommended Hostman VPS Plans for Palworld Players  vCPU  RAM  Storage  Use Case 1-4 2 4 GB 80 GB SSD Small private server 4-16 4 8 GB 160 GB SSD Friends & community 16-32 8 16 GB 320 GB SSD Large community + mods Tip: Choose a data center location closest to the majority of your players. Hostman offers servers in Europe and other regions—lower latency means smoother gameplay. Step 1: Create Your Hostman VPS Log in to your Hostman dashboard. Go to Cloud servers → Create server. Select the data center region nearest to your players (e.g., the Netherlands for European players). Choose Ubuntu 22.04 LTS as the operating system. Select your plan based on the table above.  Click Create server and wait for provisioning (usually under 60 seconds).  Copy the IP address and root password from the server Dashboard. Step 2: Connect via SSH and Update the System Open your terminal and connect to the server: ssh root@YOUR_SERVER_IP Update the system packages: apt update 8& apt upgrade -y Step 3: Create a Dedicated User Running game servers as root is a security risk. Create a dedicated user: useradd -m -s /bin/bash palworld passwd palworld Step 4: Install SteamCMD SteamCMD is Valve’s command-line tool for downloading and updating game servers. apt install software-properties-common -y  dpkg --add-architecture 1386  apt update  apt install steamcmd -y Accept the Steam license agreement when prompted. Step 5: Download the Palworld Dedicated Server Switch to the palworld user and download the server files: su - palworld steamcmd +login anonymous +app_update 2394010 validate +quit This downloads the Palworld Dedicated Server (App ID 2394010) to ~/Steam/steamapps/common/PalServer. Note: The download is approximately 5 GB. On a Hostman VPS, this typically takes 1-2 minutes thanks to high-speed network connections. Step 6: Configure Your Server Start the server to generate default configs, then stop it: cd ~/Steam/steamapps/common/PalServer/ ./PalServer.sh & sleep 30 kill %1 Navigate to the server directory to create your configuration: cd ~/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/ Edit the settings: nano ~/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini Key settings to customize: [/Script/Pal.PalGameWorldSettings] OptionSettings=(ServerName="My Hostman Palworld Server",ServerDescription="Powered by Hostman VPS",AdminPass="adminpass") Important Parameters Parameter  Default  Description ServerName "Default Palworld Server" Name shown in server browser  MaxPlayerNum 32 Maximum concurrent players MaxPlayerNum "" Leave empty for public server AdminPassword "" Required for admin commands  DeathPenalty 1 0=None, 1=Drop items, 2=Drop all ExpRate 1.0  XP multiplier (2.0 = double XP)  PalCaptureRate 1.0  Catch rate multiplier  DayTimeSpeedRate 1.0  How fast daytime passes NightTimeSpeedRate 1.0  How fast nighttime passes Step 7: Open Firewall Ports Palworld uses UDP port 8211 by default. Open it: Switch back to root: exit Configure UFW firewall: ufw allow 22/tcp # SSH  ufw allow 8211/udp # Palworld game traffic  ufw allow 25575/tcp # RCON (optional, for remote admin)  ufw enable Step 8: Create a Systemd Service To keep your server running 24/7 and auto-restart on crashes, create a systemd service: nano /etc/systemd/system/palworld.service Paste the following: [Unit] Description=Palworld Dedicated Server After=network.target [Service] Type=simple User=palworld WorkingDirectory=/home/palworld/Steam/steamapps/common/PalServer ExecStart=/home/palworld/Steam/steamapps/common/PalServer/PalServer.sh -port=8211 -useperfthreads -NoAsyncL Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target Enable and start the service: systemctl daemon-reload systemctl enable palworld systemctl start palworld Check that it’s running: systemctl status palworld Step 9: Connect to Your Server Launch Palworld on your PC.  Select Join Multiplayer Game.  Enter your server IP and port: YOUR_SERVER_IP:8211. Enter the server password if you set one. Click Connect—you're in!  Share the IP address with your friends so they can join too. Step 10: Set Up Automatic Updates Game servers need regular updates. Create a simple update script: nano /home/palworld/update-palworld.sh #!/bin/bash systemctl stop palworld su - palworld -c "steamcmd +login anonymous +app_update 2394010 validate +quit" systemctl start palworld echo "Palworld server updated at $(date)" >> /var/log/palworld-updates.log Make it executable and schedule with cron: chmod +x /home/palworld/update-palworld.sh  crontab -e Add a daily update check at 5 AM: 0 5 * * * /home/palworld/update-palworld.sh Troubleshooting Server won’t start Check logs with:  journalctl -u palworld -f  Common issues include insufficient RAM or missing library dependencies. Install missing libs with: apt install lib32gcc-s1 Players can’t connect Verify the firewall allows UDP 8211: ufw status Double-check the IP address and ensure the server is running: systemctl status palworld High latency or lag Monitor server resources with: htop If CPU or RAM usage is consistently above 80%, upgrade your Hostman VPS plan to the next tier. World save corruption Enable automatic backups by copying the save directory (Pal/Saved/SaveGames/) to a backup location daily. You can add this to your cron schedule. Optimizing Performance To get the best performance from your Palworld server on Hostman VPS: Use the launch flags -useperfthreads, -NoAsyncLoadingThread, - UseMultithreadForDS (already included in our systemd config) to maximize multicore utilization. Limit base building by adjusting BaseCampMaxNum if you notice performance drops with many bases. Monitor with RCON using tools like ARRCON to manage your server without SSH. Schedule restarts every 12-24 hours to prevent memory leaks. Add to cron:  0 */12 * * * systemctl restart palworld What’s Next? Now that your Palworld server is running, consider these next steps: Customize gameplay: adjust XP rates, capture rates, and day/night cycles to match your group’s play style. Set up backups: automate daily backups of your save files to protect your world. Add admin tools: use RCON for remote management without SSH. Scale up: as your community grows, upgrade your Hostman VPS with zero downtime. Running your own Palworld dedicated server gives you complete control over your gaming experience. With Hostman VPS, you get reliable performance, low latency, and the flexibility to customize everything—from server settings to hardware resources. Get started with Hostman today and have your Palworld server running in minutes.
03 March 2026 · 7 min to read
Gaming

How to Set Up an Enshrouded Server

Enshrouded is an open-world fantasy RPG with cooperative gameplay, allowing up to 16 players on a single server. It has received overwhelmingly positive reviews on Steam (86%). Pros: Immersive atmosphere Beautiful open world Building mode (huge creative freedom) Engaging cooperative gameplay Detailed game settings (allowing for reduced grind, hunger mechanics, various environment and enemy settings, as well as day/night duration adjustments) Cons: Story (immersion relies on reading notes and collecting items) Playing Enshrouded solo or with a group offers completely different experiences and emotions. You could say that the developers primarily focus on multiplayer gameplay on dedicated servers. In this article, we’ll describe how to set up a private dedicated server for Enshrouded. The current version at the time of writing is v0.8.0.1. Did you know? Hostman got you covered with servers with low-latency USA VPS to help you to deploy projects for an American audience. Start using now! Creating an Enshrouded Server Server Requirements Minimum requirements: CPU: 4 cores RAM: 8 GB Disk: 20 GB Network: At least 50 Mbps (the key factor is server response time (ping), ideally under 50ms) Ports: 15367 TCP/UDP In this guide, we will use a affordable and cheap cloud server from Hostman with the following fixed configuration: OS: Ubuntu 24.04 CPU: 4 × 3.3 GHz RAM: 8 GB NVMe Storage: 80 GB Configuring the Server After connecting to the server, update the packages and install Docker: apt update && apt upgrade -ycurl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh Create a directory for the server files: mkdir /opt/enshrouded Navigate to the directory: cd /opt/enshrouded We will use the "Enshrouded Dedicated Server with Autoupdate (supervisord)" Docker image. Next, create a compose.yaml file with the following content: services: enshrouded: container_name: enshrouded image: mornedhels/enshrouded-server:latest restart: unless-stopped stop_grace_period: 90s ports: - "15637:15637/udp" volumes: - ./game:/opt/enshrouded environment: - SERVER_NAME=Hostman - UPDATE_CRON=*/30 * * * * Run the server: docker compose up -d Check the server status: docker compose ps View server logs: docker compose logs -f All necessary files and updates will be downloaded during the first launch, and the server will start with default settings. Server Settings Stop the container before making changes: docker compose down Edit the server configuration files: nano game/server/enshrouded_server.json Example configuration for enshrouded_server.json: { "name": "Hostman", "saveDirectory": "./savegame", "logDirectory": "./logs", "ip": "0.0.0.0", "queryPort": 15637, "slotCount": 16, "voiceChatMode": "Proximity", "enableVoiceChat": false, "enableTextChat": false, "gameSettingsPreset": "Default", "gameSettings": { "playerHealthFactor": 1, "playerManaFactor": 1, "playerStaminaFactor": 1, "playerBodyHeatFactor": 1, "enableDurability": true, "enableStarvingDebuff": false, "foodBuffDurationFactor": 1, "fromHungerToStarving": 600000000000, "shroudTimeFactor": 1, "tombstoneMode": "AddBackpackMaterials", "enableGliderTurbulences": true, "weatherFrequency": "Normal", "miningDamageFactor": 1, "plantGrowthSpeedFactor": 1, "resourceDropStackAmountFactor": 1, "factoryProductionSpeedFactor": 1, "perkUpgradeRecyclingFactor": 0.5, "perkCostFactor": 1, "experienceCombatFactor": 1, "experienceMiningFactor": 1, "experienceExplorationQuestsFactor": 1, "randomSpawnerAmount": "Normal", "aggroPoolAmount": "Normal", "enemyDamageFactor": 1, "enemyHealthFactor": 1, "enemyStaminaFactor": 1, "enemyPerceptionRangeFactor": 1, "bossDamageFactor": 1, "bossHealthFactor": 1, "threatBonus": 1, "pacifyAllEnemies": false, "tamingStartleRepercussion": "LoseSomeProgress", "dayTimeDuration": 1800000000000, "nightTimeDuration": 720000000000 }, "userGroups": [ { "name": "Admins", "password": "secret1", "canKickBan": true, "canAccessInventories": true, "canEditBase": true, "canExtendBase": true, "reservedSlots": 1 }, { "name": "Friends", "password": "secret2", "canKickBan": false, "canAccessInventories": true, "canEditBase": true, "canExtendBase": true, "reservedSlots": 3 }, { "name": "Guests", "password": "secret3", "canKickBan": false, "canAccessInventories": false, "canEditBase": false, "canExtendBase": false, "reservedSlots": 0 } ] } Game Settings Let's take a closer look at the parameters in the gameSettings block: playerHealthFactor: 1 — Health multiplier from 0.25 to 4 playerManaFactor: 1 — Mana multiplier from 0.25 to 4 playerStaminaFactor: 1 — Stamina multiplier from 0.25 to 4 enableDurability: true — Enable equipment durability enableStarvingDebuff: false — Enable starvation foodBuffDurationFactor: 1 — Food effect duration from 0.5 to 2 fromHungerToStarving: 600000000000 — Time until starvation, from 300000000000 (5 minutes) to 1200000000000 (20 minutes) shroudTimeFactor: 1 — Time factor in the shroud from 0.5 to 2 tombstoneMode: "AddBackpackMaterials" — Item retention mode on death enableGliderTurbulences: true — Wind effects while gliding weatherFrequency: "Normal" — Weather change frequency (Disabled/Rare/Normal/Often) miningDamageFactor: 1 — Ore mining yield multiplier from 0.5 to 2 plantGrowthSpeedFactor: 1 — Plant growth speed multiplier from 0.5 to 2 resourceDropStackAmountFactor: 1 — Resource drop multiplier from 0.5 to 2 factoryProductionSpeedFactor: 1 — Factory production speed multiplier from 0.5 to 2 perkUpgradeRecyclingFactor: 0.5 — Rune return multiplier when dismantling weapons from 0 to 1 perkCostFactor: 1 — Rune cost multiplier for upgrades from 0.5 to 2 experienceCombatFactor: 1 — Combat experience multiplier from 0.25 to 2 experienceMiningFactor: 1 — Mining experience multiplier from 0 to 2 experienceExplorationQuestsFactor: 1 — Exploration experience multiplier from 0.25 to 2 randomSpawnerAmount: "Normal" — Enemy spawn amount (Few/Normal/Many/Extreme) aggroPoolAmount: "Normal" — Number of enemies that can attack simultaneously (Few/Normal/Many/Extreme) enemyDamageFactor: 1 — Enemy (excluding bosses) damage multiplier from 0.25 to 5 enemyHealthFactor: 1 — Enemy (excluding bosses) health multiplier from 0.25 to 4 enemyStaminaFactor: 1 — Enemy (excluding bosses) stamina multiplier from 0.25 to 2 enemyPerceptionRangeFactor: 1 — Enemy (excluding bosses) detection range multiplier from 0.25 to 2 bossDamageFactor: 1 — Boss damage multiplier from 0.25 to 5 bossHealthFactor: 1 — Boss health multiplier from 0.25 to 5 threatBonus: 1 — Enemy attack frequency (excluding bosses) from 0.25 to 4 pacifyAllEnemies: false — Enemies won't attack unless provoked tamingStartleRepercussion: "LoseSomeProgress" — Taming progress loss if startled dayTimeDuration: 1800000000000 — Day duration from 2 to 60 minutes nightTimeDuration: 720000000000 — Night duration from 2 to 60 minutes Access and Account Settings You should specify these in the environment block of the compose.yaml file. Main variables: SERVER_NAME = "enshrouded" — Server name SERVER_SLOT_COUNT = 16 — Maximum number of players on the server SERVER_QUERY_PORT = 15637 — Service port number SERVER_IP = "0.0.0.0" — Server IP address SERVER_SAVE_DIR = "./savegame" — Save directory SERVER_LOG_DIR = "./logs" — Log directory SERVER_VOICE_CHAT_MODE = "Proximity" — Voice chat mode (Proximity = only nearby players can hear, Global = all players can hear) SERVER_ENABLE_VOICE_CHAT = false — Enable/disable voice chat (default: disabled) SERVER_ENABLE_TEXT_CHAT = false — Enable/disable text chat (default: disabled) UPDATE_CRON = "" — World update schedule (similar to reopening a single-player game, restoring resources, and updating the global map) UPDATE_CHECK_PLAYERS = false — Check for connected players before updating (default: disabled) BACKUP_CRON = "" — Backup schedule BACKUP_DIR = "./backup" — Backup directory BACKUP_MAX_COUNT = 0 — Maximum number of stored backups Here’s an example of a docker-compose.yml file with the environment block: services: enshrouded: image: mornedhels/enshrouded-server:latest container_name: enshrouded restart: unless-stopped stop_grace_period: 90s ports: - "15637:15637/udp" volumes: - ./game:/opt/enshrouded environment: - SERVER_NAME=Hostman - SERVER_ROLE_0_NAME=Admins - SERVER_ROLE_0_PASSWORD=secret1 - SERVER_ROLE_0_CAN_KICK_BAN=true - SERVER_ROLE_0_CAN_ACCESS_INVENTORIES=true - SERVER_ROLE_0_CAN_EDIT_BASE=true - SERVER_ROLE_0_CAN_EXTEND_BASE=true - SERVER_ROLE_0_RESERVED_SLOTS=1 - SERVER_ROLE_1_NAME=Friends - SERVER_ROLE_1_PASSWORD=secret2 - SERVER_ROLE_1_CAN_ACCESS_INVENTORIES=true - SERVER_ROLE_1_CAN_EDIT_BASE=true - SERVER_ROLE_1_CAN_EXTEND_BASE=true - SERVER_ROLE_1_RESERVED_SLOTS=3 - SERVER_ROLE_2_NAME=Guests - SERVER_ROLE_2_PASSWORD=secret3 After making changes to the settings, restart the container: docker compose up -d Adding to Steam Favorites To add the server to favorites: Open the Steam application and go to the View → Servers menu. Select the Favorites tab. Choose the game Enshrouded from the dropdown list on the right. Click the + button at the bottom and enter the external IP address along with the port (15637) obtained during server creation. Once added, your Enshrouded server will be available in the Join section when launching the game. Updating the Server To update the game server, connect to it and restart the container: cd /opt/satisfactorydocker compose downdocker compose up -d Conclusion Enshrouded is a relaxing and immersive game that offers a world of exploration and adventure. With detailed server configuration, you can tailor the gameplay to your preferences—simplifying resource gathering, increasing enemy strength, or enjoying creative building features. This game appeals to a wide range of players, regardless of age or gender. Try playing with friends, your partner, or children over 12 for an engaging cooperative experience! Check our new instruction on how to clone your server to double the fun! Frequently Asked Questions: What are the Enshrouded dedicated server requirements?  Enshrouded is quite resource-intensive due to its voxel-based world. CPU: Quad-Core processor (Intel Core i7 or AMD Ryzen 5 recommended). RAM: 16GB is the recommended minimum for a stable experience. For large groups, 32GB is preferred. Storage: 30GB of SSD space (NVMe recommended for faster chunk loading). OS: Windows 10/11 or Server 2019+ (Linux requires Proton/Wine). How do I install the Enshrouded Dedicated Server?  You can install it via the Steam Client (under "Tools") or use SteamCMD for a headless setup. The command is: app_update 2278520 validate What ports do I need to open for Enshrouded?  You need to forward the following ports (UDP) in your router and firewall: Game Port: 15636 Query Port: 15637 Make sure to allow these through the Windows Firewall as well. Where is the server configuration file located?  The configuration file is named enshrouded_server.json. It is located in the root folder of your server installation. You use this file to set the server name, password, and player slots. What is the maximum player count?  Currently, the dedicated server supports a maximum of 16 players. Can I run an Enshrouded server on Linux?  There is no native Linux binary yet. However, you can run the Windows version on Linux using Wine or Proton, or by using Docker containers that wrap these compatibility layers.
22 January 2026 · 10 min to read
Gaming

How to Create a Server in Counter-Strike 2

Creating your own server in Counter-Strike 2 is not just a great way to customize the gameplay to your needs and play with your circle of friends. It’s a whole world of opportunities for enthusiasts and administrators. Your own server opens unlimited horizons for creativity and control: you set the rules, choose the maps, adjust game parameters such as speed, weapon damage, or round economy, and ensure a stable connection with low ping without random players. It’s an ideal platform for cozy evening games with colleagues, organizing amateur tournaments, or simply honing your skills in a controlled arena. You become the full owner of your virtual space. In this article, we will cover all stages of creating and setting up a CS2 server from scratch in as much detail as possible, taking into account all potential pitfalls. We will go through the process from selecting a provider and configuring the operating system to the moment when you and your friends are already battling on a freshly deployed server. If you carefully follow each step of the instructions, even a complete beginner who has never administered a Linux server before will be able to manage the setup. Which VPS to Choose? One of the most important questions for anyone thinking about creating their own game server is choosing a reliable provider. Stability, low ping, uninterrupted uptime, and responsive technical support are key factors for comfortable and hassle-free gameplay. Hosting a CS2 server on a home computer comes with risks: a dynamic IP address, unstable connection, high ping for players from other regions, and the need to keep the PC running 24/7. Ordering a virtual server (VPS) solves all these problems by providing powerful and stable hardware in a professional data center. For our CS2 server, we will choose a VDS from Hostman with the following configuration: CPU 2 x 3.3 GHz, RAM 4 GB, NVMe 80 GB; 1 IPv4. This setup is sufficient for comfortable gameplay with friends, roughly 8–10 people. If you’re thinking about something bigger, such as a public server with regular activity of 20+ players or running complex mods with many plugins (e.g., MetaMod, SourceMod), it’s worth considering a more expensive, high-performance plan with extra resources. With Hostman, you can easily scale your setup, so you can start small and upgrade your virtual server configuration at any time with just a few clicks. The system that will run the server is Ubuntu 24.04 LTS (Noble Numbat). This is a stable and popular distribution version, ensuring compatibility and a wealth of ready-made instructions available online. Server Preparation First, connect to your server via SSH; more details can be found in our article. To create the server, we need to install Docker and Docker Compose. To do this: Update APT packages: sudo apt update Install supporting packages: sudo apt install curl software-properties-common ca-certificates apt-transport-https -y curl: a tool for transferring data and working with URLs; software-properties-common: provides scripts for software management; ca-certificates: necessary for secure data transfer and certificate validation; apt-transport-https: allows working with repositories that transmit data via HTTPS. Import the GPG key: wget -O- https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor | sudo tee /etc/apt/keyrings/docker.gpg > /dev/null Add the Docker repository: echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Update APT package indexes again: sudo apt update Install Docker: sudo apt install docker-ce -y Check that Docker is running correctly: sudo systemctl status docker This command will show Docker’s status, indicating that it is active and running. Great! Docker has been successfully installed. Deploying the CS2 Server This stage can be conditionally divided into two parts: obtaining a special key from Steam and directly configuring the server container. Obtaining the SRCDS Token (Game Server Login Token, GSLT) For your server to be legal and fully functional, it needs a unique key for authentication on the Steam network. Without this token, the server will be considered anonymous and severely limited in its functionality (marked as “pirate,” with some features disabled). Steam account requirements: The account must not have bans (VAC or Game Ban) in any game. The account must not be restricted (Community Ban), for example, unable to add friends or trade. The account must have a verified mobile number linked (Steam Guard). CS2 must be added to the library on the account (any purchase in the Steam store over $5 also removes this restriction). Maximum number of tokens that can be created on one account: 1000. Step-by-step instructions: Log in to Steam in your browser. Go to the official Game Server Management page. At the bottom of the page, find the form Create New Game Server Login Token. In the App ID field, enter 730. This is the unique identifier for Counter-Strike 2 in Steam. In the Memo field, you can enter any reminder for yourself (e.g., “My CS2 server on Hostman”). Click the Create button. The system will provide a long string of letters and numbers which is your token. Copy it and save it in a secure location (for example, in a file on your computer). You will need this token in the next step. This token is the password to access your server from your account. Do not publish it publicly or share it with third parties. Server Configuration and Launch Now let’s return to our server terminal. We will use a ready-made solution in the form of a Docker container, which significantly simplifies the process of installing and updating the game server. Check Docker Compose installation. Modern versions of Docker already include the Compose plugin. Let’s check: sudo docker -v && sudo docker compose version The output should show the versions of Docker and Docker Compose, confirming they are ready to use. Create a working directory. It’s best to store all server configuration files in a separate folder for organization: mkdir cs2server && cd cs2server Download the docker-compose.yml configuration file. Instead of creating the file manually, we’ll use a ready-made example from a popular repository. Download it directly to the server: wget https://raw.githubusercontent.com/joedwards32/CS2/refs/heads/main/examples/docker-compose.yml Create the .env configuration file. This is the most important file, containing all sensitive data and your server settings.  nano .env In the text editor, insert the following parameters, replacing generated_token_earlier with the GSLT token you obtained in the previous section: # Mandatory parameters SRCDS_TOKEN=generated_token_earlier # Password for RCON (remote server management) CS2_RCONPW=Your_Complex_Password_1 # Password for connecting to the server (leave empty for public server) CS2_PW= # Your server’s name as players will see it in the server list CS2_SERVERNAME=My Cool CS2 Server # Password for GOTV (spectator mode) TV_PW=Your_Complex_Password_2 # Additional settings (can be configured later) CS2_PORT=27015 CS2_TV_PORT=27020 CS2_IP=0.0.0.0 CS2_MAXPLAYERS=10 CS2_MAP=de_dust2 CS2_GAMETYPE=0 CS2_GAMEMODE=1 After filling in the values, press Ctrl+O to save the file, Enter to confirm, and Ctrl+X to exit the nano editor. (Optional) Perform basic docker-compose.yml configuration. Open the file to quickly review or modify some parameters: nano docker-compose.yml You’ll see the file structure. Here you can directly change parameters such as: CS2_SERVERNAME: the server name visible to players. CS2_RCONPW: password for remote management via RCON. CS2_PW: password to connect to the server. Leave empty for a public server: "". TV_PW: password for spectators on GOTV. ./cs2/csgo:/home/steam/cs2-dedicated/csgo: connects your server’s configuration folder to the container folder, ensuring settings persist after updates. After reviewing and making any changes, save the file (Ctrl+O, Enter, Ctrl+X). Run the container: sudo docker compose up -d The -d flag means “detached,” so the container will run in the background while you can continue working in the terminal. Monitor the launch process. The server will not start instantly. Docker will first download the CS2 server image, then initialize it and load game files. This may take a significant amount of time (tens of minutes) because the game files are large. Monitor the process with the following commands: General container status: sudo docker compose ps View real-time logs (very useful for tracking progress): sudo docker compose logs -f To exit log monitoring, press Ctrl+C. View only the latest log entries: sudo docker compose logs The logs will show how the server downloads and updates CS2. Completion and successful launch are indicated by a line like: [S_API] SteamNETSockets startup successful and the absence of errors. Do not interrupt the process or shut down the server until loading is complete. Wait for the readiness message. If you see a successful launch message in the logs, your CS2 server is now running and is likely visible in the public server list in the game. Next, we move on to testing and fine-tuning it. Did you know? Hostman got you covered with servers with big amounts of storage for every project! Check our VPS Storage and start deploying now! Connecting to the Server and Basic Management Now we can join our own server. Enable the Developer Console. Go to CS2 settings → Game → Advanced Settings and click Enable Developer Console. Find the public IP address of your VPS. It’s listed in your Hostman control panel on the server Dashboard. Open the console in the game (using the ~ key on your keyboard, below Esc). Enter the connection command. The standard CS2 port is 27015. For example: connect 123.123.123.123 Replace 123.123.123.123 with your server’s real IP address. If you set a server password (CS2_PW), enter: password your_server_password before running the connect command. Once connected, you can start playing on your personal server. Conclusion As you can see, the process of creating your own Counter-Strike 2 game server, though it may seem complex at first, becomes quite manageable with a clear step-by-step guide. Successfully launching a game server is important but only the first step in creating a stable and engaging gaming environment. Further work should focus on comprehensive optimization and configuration of all server systems. The foundation of stable operation is a well-configured server file setup. These settings determine all aspects of functionality, from network parameters and game rules to security and performance. Detailed configuration ensures reliable and predictable server operation. To expand functionality, you should implement modular platforms like MetaMod and SourceMod. These systems allow integration of a wide range of plugins, providing enhanced moderation, analytics, and game management capabilities. Special attention should be paid to designing a balanced map rotation cycle, which directly affects player retention. Properly configured map rotation maintains long-term community interest. Equally important is implementing a thoughtful administration system with clearly defined access rights. This ensures rapid response to incidents and minimizes operational risks. A key element of professional project positioning is integrating a domain name. Using a custom domain instead of an IP address increases brand recognition, simplifies user access, and builds trust. The domain becomes part of corporate identity and integrates easily into marketing materials. Implementing these measures comprehensively allows you to create a full-featured, reliable, and scalable gaming product, ready for your target audience and future development.
29 October 2025 · 10 min to read

Do you have questions,
comments, or concerns?

Our professionals are available to assist you at any moment,
whether you need help or are just unsure of where to start.
Email us
Hostman's Support