Como criar um servidor de Palworld em VPS Linux passo a passo
Tutorial técnico pra subir um servidor dedicado de Palworld em VPS Ubuntu 24.04 LTS: SteamCMD, systemd, firewall, PalWorldSettings.ini e tuning de RAM.
Subir um servidor dedicado de Palworld em VPS Linux exige atenção a dois pontos que costumam tropeçar quem vem de servidores mais simples: consumo agressivo de RAM (o processo facilmente passa de 8 GB com mundo populado) e o fato de que o jogo usa UDP em uma única porta principal, sem TCP secundário pra HTTP ou queries. Configurar o firewall errado bloqueia o servidor de aparecer na lista — sintoma comum em owners de primeira viagem.
Este tutorial cobre instalação do zero em Ubuntu 24.04 LTS via SteamCMD oficial, configuração completa do PalWorldSettings.ini, isolamento por usuário dedicado, supervisão por systemd com restart automático, firewall UFW e tuning de memória. Tempo estimado de execução: 30-45 minutos. Você termina com um servidor de Palworld online, registrado na lista comunitária e reiniciando automaticamente após reboot ou crash.
A persona-alvo é um owner novo subindo seu primeiro servidor dedicado de Palworld. Não é necessário experiência prévia com Linux — todos os comandos vêm explicados, e os erros mais comuns têm seção dedicada no fim.
Pré-requisitos
VPS com Ubuntu 24.04 LTS (Server, não Desktop), acesso SSH como usuário sudo, no mínimo 8 GB de RAM (16 GB recomendado pra 16+ jogadores), 4 vCPUs com clock alto e 30 GB de disco livre. CPU x86_64 obrigatória. Conexão estável pra baixar ~5 GB do servidor via SteamCMD.
Confirme os parâmetros técnicos antes de prosseguir:
Ubuntu 24.04 LTS x86_64 8 GB (16 GB recomendado) 30 GB livres 8211/UDP 25575/TCP (opcional) A porta 8211/UDP é a única porta obrigatória — toda comunicação cliente-servidor passa por ela. A 25575/TCP é opcional e só precisa estar aberta se você quer administração remota via RCON (recomendado pra moderação). Não exponha RCON pra internet aberta — restrinja por IP ou use túnel SSH.
Instalação do PalServer via SteamCMD
Esta seção cobre desde a criação do usuário dedicado até o servidor baixado e iniciado pela primeira vez. Rodar serviços de jogo com usuário próprio (não root) limita o impacto de qualquer falha ou exploração — e mantém os arquivos do jogo isolados em uma home dedicada.
Atualize o índice de pacotes e instale dependências básicas:
sudo apt update && sudo apt upgrade -y
sudo apt install -y software-properties-common
sudo add-apt-repository -y multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 libsdl2-2.0-0:i386 curl wget ca-certificatesA arquitetura i386 é necessária porque o SteamCMD é distribuído como binário 32-bit, mesmo que o PalServer em si seja 64-bit. Sem lib32gcc-s1 o SteamCMD falha na primeira execução com erro de biblioteca.
Crie um usuário dedicado palworld sem privilégios de login:
sudo useradd -r -m -d /opt/palworld -s /bin/bash palworld
sudo su - palworldA flag -r cria usuário de sistema, -m cria home em /opt/palworld. Você está agora operando como palworld — todos os próximos comandos rodam nesse contexto até segunda ordem.
Baixe e prepare o SteamCMD dentro da home do usuário:
cd /opt/palworld
mkdir -p steamcmd && cd steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +quitA primeira execução baixa atualizações do próprio SteamCMD e sai. Se aparecer erro de “Steam Guard” ou similar, ignore — não estamos logando em conta Steam (Palworld dedicado é anônimo).
Instale o servidor dedicado Palworld (AppID 2394010):
cd /opt/palworld/steamcmd
./steamcmd.sh +force_install_dir /opt/palworld/server \
+login anonymous \
+app_update 2394010 validate \
+quitO download tem aproximadamente 5 GB. Em VPS com 1 Gbps a operação leva 1-3 minutos. Confirme no final a mensagem Success! App '2394010' fully installed. antes de prosseguir. Se a internet cair no meio, rode o mesmo comando de novo — o SteamCMD retoma do ponto onde parou.
Faça a primeira execução do servidor pra gerar os arquivos de configuração default:
cd /opt/palworld/server
./PalServer.shO servidor inicia, gera o diretório Pal/Saved/Config/LinuxServer/ com os arquivos padrão e fica rodando. Aguarde aparecer a mensagem Setting breakpad minidump AppID no console — significa que está pronto. Pare com Ctrl+C. Vamos configurar antes de subir de novo.
Configuração do PalWorldSettings.ini
O arquivo PalWorldSettings.ini controla todo o comportamento do servidor: nome, descrição, senha, slots, RCON, anúncio público, dificuldade e taxas de XP/captura. Ele fica em /opt/palworld/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini e usa formato chave=valor.
Copie o template default antes de editar — assim você sempre tem referência do que mudou:
cd /opt/palworld/server/Pal/Saved/Config/LinuxServer
cp PalWorldSettings.ini PalWorldSettings.ini.default
nano PalWorldSettings.iniO arquivo tem uma única linha gigante começando com OptionSettings=(...). Não quebre essa linha em múltiplas — o parser do Palworld é estrito e quebrar invalida a configuração inteira.
Ajuste os campos críticos dentro do parêntese de OptionSettings. Os mais importantes pra um servidor público:
ServerName="Meu Servidor Palworld",
ServerDescription="Servidor brasileiro 24/7",
AdminPassword="SUA_SENHA_ADMIN_FORTE_AQUI",
ServerPassword="",
PublicIP="IP_PUBLICO_DA_SUA_VPS",
PublicPort=8211,
ServerPlayerMaxNum=16,
bIsMultiplay=True,
bEnableInvaderEnemy=True,
RCONEnabled=True,
RCONPort=25575Deixe ServerPassword="" (vazio) pra servidor público, ou defina senha pra acesso privado. O PublicIP é o que aparece no anúncio comunitário — preencha com o IP que aparece em curl ifconfig.me rodado na VPS.
O PalWorldSettings.ini é particularmente frágil. Strings precisam estar entre aspas duplas. Booleans são True/False (capitalizados). Números não levam aspas. Esquecer uma vírgula entre campos faz o servidor ignorar tudo após o erro e voltar pros defaults.
Ajuste as taxas de progressão pra balancear o ritmo de jogo. Defaults são pensados pra single-player; em servidor multiplayer com sessões mais curtas, taxas levemente aumentadas evitam frustração:
ExpRate=1.500000,
PalCaptureRate=1.500000,
PalSpawnNumRate=1.000000,
PalDamageRateAttack=1.000000,
PalDamageRateDefense=1.000000,
PlayerDamageRateAttack=1.000000,
PlayerDamageRateDefense=1.000000,
DeathPenalty="All"ExpRate=1.5 dá 50% mais XP. PalCaptureRate=1.5 aumenta probabilidade de captura. DeathPenalty="All" mantém o default (perde tudo ao morrer) — outras opções são "Item", "ItemAndEquipment" e "None" pra servidores mais casuais.
Firewall e supervisão por systemd
O servidor rodando manualmente serve pra testar configuração, mas em produção você precisa supervisor (pra reiniciar em crash) e firewall (pra bloquear o que não é jogo). Volte ao seu usuário sudo agora — saia do contexto palworld com exit.
Abra as portas necessárias no UFW:
sudo ufw allow 8211/udp comment 'Palworld game port'
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw enable
sudo ufw status verboseNão libere RCON (25575/tcp) pra 0.0.0.0 — se for usar, restrinja ao seu IP de admin: sudo ufw allow from SEU_IP to any port 25575 proto tcp. RCON exposto + senha fraca = takeover do servidor.
Antes de rodar ufw enable, confirme que a regra 22/tcp (ou sua porta SSH customizada) está adicionada. Habilitar UFW sem regra SSH te tranca fora da VPS. Se isso acontecer, só recupera via console out-of-band do painel da hospedagem.
Crie o arquivo de unit systemd em /etc/systemd/system/palworld.service:
sudo nano /etc/systemd/system/palworld.serviceConteúdo:
[Unit]
Description=Palworld Dedicated Server
After=network.target
[Service]
Type=simple
User=palworld
Group=palworld
WorkingDirectory=/opt/palworld/server
ExecStart=/opt/palworld/server/PalServer.sh
Restart=on-failure
RestartSec=15
LimitNOFILE=65536
StandardOutput=append:/var/log/palworld/server.log
StandardError=append:/var/log/palworld/server.log
[Install]
WantedBy=multi-user.targetCrie o diretório de log e habilite o serviço:
sudo mkdir -p /var/log/palworld
sudo chown palworld:palworld /var/log/palworld
sudo systemctl daemon-reload
sudo systemctl enable --now palworldO LimitNOFILE=65536 aumenta o limite de file descriptors — Palworld abre muitos sockets simultâneos com vários jogadores e bate no limite default de 1024 com 16+ players.
Configure restart automático a cada 12 horas pra mitigar leak de memória. Crie um timer systemd:
sudo nano /etc/systemd/system/palworld-restart.service[Unit]
Description=Restart Palworld server
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart palworldsudo nano /etc/systemd/system/palworld-restart.timer[Unit]
Description=Restart Palworld every 12h
[Timer]
OnBootSec=12h
OnUnitActiveSec=12h
Persistent=true
[Install]
WantedBy=timers.targetHabilite:
sudo systemctl daemon-reload
sudo systemctl enable --now palworld-restart.timerPalworld tem leak de memória progressivo documentado pela comunidade. Restart a cada 12 horas resolve sem que jogadores percebam (a transição leva 30-40 segundos). Comunique o horário pros players — restart no meio de raid frustra.
Verificação
Confirme que o servidor está rodando como serviço supervisionado e respondendo na rede.
sudo systemctl status palworld
sudo ss -ulnp | grep 8211
tail -f /var/log/palworld/server.log
O systemctl status deve mostrar active (running) há alguns minutos. O ss -ulnp deve listar o processo PalServer-Linux escutando na porta 8211/UDP. O log deve conter linhas com Setting breakpad minidump AppID e atividade de inicialização sem erros de configuração.
Pra teste real, abra o Palworld no cliente, vá em “Join Multiplayer Game” → “Community Server List” e procure pelo nome que você definiu em ServerName. Pode demorar 1-3 minutos pra propagar. Antes de aparecer na lista, conexão direta pelo IP funciona: na mesma tela, use “Connect by IP” e digite IP_DA_SUA_VPS:8211.
Resolução de problemas
”Address already in use” ao iniciar
Outra instância ainda está rodando. Pare com sudo systemctl stop palworld e sudo pkill -u palworld PalServer-Linux. Aguarde 30 segundos antes de reiniciar — o socket UDP demora pra liberar quando o processo trava sem fechar graceful.
Servidor inicia mas não aparece na lista comunitária
Causa mais comum: PublicIP vazio ou incorreto no PalWorldSettings.ini. Confirme rodando curl ifconfig.me na VPS e comparando com o valor configurado. Segunda causa: porta 8211/UDP bloqueada. Teste com nmap -sU -p 8211 SEU_IP de outra máquina — se mostrar closed ou filtered, é firewall (UFW ou bloqueio na borda da hospedagem).
Jogadores conectam mas caem após alguns minutos
Quase sempre falta de RAM. Verifique com free -h enquanto o servidor está populado. Se a coluna available ficar abaixo de 500 MB e swap estiver sendo usado pesadamente, você precisa de upgrade de plano ou redução de ServerPlayerMaxNum. Palworld é particularmente sensível a swap — uso pesado causa stutter de movimentação visível.
”Failed to initialize Steam connection”
O servidor não consegue alcançar a infraestrutura Steam. Verifique se a VPS tem internet saindo (curl -I https://steamcdn-a.akamaihd.net) e se não há firewall bloqueando egresso. Em algumas hospedagens com firewall na borda, libere outbound UDP/TCP pras faixas Steam.
Próximos passos
Com o servidor base no ar, pontos típicos de evolução:
- Configurar backup automático do mundo (
Pal/Saved/SaveGames/) com rsync agendado por cron - Implementar moderação remota via RCON usando ferramentas como
rcon-cli - Adicionar Discord webhook pra notificar quando jogador entra/sai (via parser de log)
- Configurar monitoramento de RAM e CPU pra alertar antes de OOM
- Subir um segundo servidor em outra porta UDP (
8212) pra modo PVP separado
Se você está colocando isso em produção e quer baixa latência pra jogadores brasileiros, uma VPS Hostini em São Paulo entrega tipicamente 5-15 ms pra maior parte do Brasil, com proteção DDoS na borda dimensionada pra picos UDP — perfil exato que servidores de Palworld exigem em horário de pico.
Perguntas frequentes
Quanto de RAM e CPU eu preciso pra um servidor de Palworld?
O servidor dedicado de Palworld consome de 6 a 12 GB de RAM em uso real, dependendo do número de jogadores e do tamanho do mundo. Pra 4-8 jogadores, 8 GB de RAM e 4 vCPUs entregam estabilidade. Pra 16-32 jogadores, considere 16 GB de RAM e 6 vCPUs. O processo é single-thread dominante, então clock alto importa mais que muitos cores.
O servidor de Palworld roda em ARM64 (Ampere, Graviton)?
Não. O binário oficial PalServer da Pocketpair é compilado pra x86_64 Linux com dependências glibc. ARM64 não funciona nem via emulação prática. Use VPS com CPU Intel ou AMD x86_64 — qualquer plano padrão atende.
Por que meu servidor não aparece na lista comunitária do jogo?
Confirme que PublicIP e PublicPort estão preenchidos no PalWorldSettings.ini com o IP real da VPS e a porta UDP 8211. Servidores atrás de NAT estrito ou sem PublicIP correto não conseguem se anunciar. A propagação leva 1-3 minutos após inicialização. Conexão direta por IP funciona mesmo sem lista pública.
O servidor cai sozinho ou trava com OOM (out of memory) — como evitar?
Palworld tem leak de memória conhecido em sessões longas — o processo cresce gradualmente. Configure restart agendado a cada 12 ou 24 horas via cron ou systemd timer. Também garanta swap configurado (4-8 GB) como rede de segurança, mas não como solução primária — swap pesado causa stutter no jogo.
Posso rodar o servidor de Palworld em container Docker?
Sim, existem imagens comunitárias funcionais. Pra produção em VPS dedicada, rodar direto no host com systemd é mais previsível — menos camadas de rede, debug de UDP mais simples e atualização via SteamCMD direta. Docker faz sentido se você gerencia múltiplos servidores na mesma máquina.
Como faço backup do mundo do servidor sem precisar parar o serviço?
Os dados do mundo ficam em Pal/Saved/SaveGames/0/<WorldID>/. Você pode copiar essa pasta com o servidor rodando, mas há risco de capturar estado inconsistente. O ideal é rodar o save manualmente via RCON (Save command), aguardar 5 segundos e então copiar. Pra automação, agende um script bash que faz Save + rsync + rotation diária.