Help Center

Step-by-step guides for servers, networks and your account.

Use Cases & Solutions

Host a Minecraft or Palworld Server on a Tokyo or Seoul VPS: Step-by-Step Setup

Hosting a Minecraft or Palworld dedicated server on a Tokyo or Seoul VPS takes about 15 minutes with Docker: run itzg/minecraft-server (Java) or itzg/minecraft-bedrock-server, or Palworld via SteamCMD or a Docker image, open the right UDP/TCP ports, and schedule backups with cron. JUSTG offers the JUSTG Tokyo Cloud VPS (Tokyo, Japan) and JUSTG Seoul Cloud VPS (Seoul, South Korea, KT network) with native IPs and Asia-optimized routing, from $19.99/mo up to 7 cores / 24 GB RAM at $169.99/mo, and dedicated servers in both cities from $199/mo.

Key facts
  • Locations: Tokyo, Japan and Seoul, South Korea
  • IP: 1 native IPv4 + free IPv6 per VPS; Asia-optimized routes; Seoul on the KT network
  • Plans: 1 core / 512 MB ($19.99/mo) to 7 cores / 24 GB RAM / 320 GB SSD ($169.99/mo); 500 Mbps port
  • Dedicated servers: Tokyo and Seoul from $199/mo
  • Setup: auto-deployed after payment, KVM, Linux or Windows

Step 0: Choose Tokyo or Seoul by where your players are

Put the server in the city closest to most of your players; Tokyo and Seoul are close to each other, so a mixed Japan/Korea group plays well on either.

Players mainly inTokyo VPSSeoul VPS
JapanBest choice; very low ping inside JapanGood; one short undersea hop away
South KoreaGood; typically a few tens of msBest choice; lowest ping in Korea
Taiwan / Hong KongGood; usually comparable to SeoulGood; test both
Southeast AsiaPlayable; often around 50-100 ms depending on country and ISPSimilar or slightly higher; test
Mainland ChinaVaries by carrier and evening congestion; test with your playersVaries by carrier; test with your players

Ask a few players to run ping or mtr against a test server before you commit, and check evening hours, when home networks are busiest. More details are on the JUSTG gaming VPS and data center locations pages.

Step 1: Size the VPS (RAM per player count)

RAM is the limit for both games: Minecraft needs a few GB, Palworld needs far more.

PlayersMinecraft Java (Paper)Minecraft BedrockPalworld
1-52-3 GB1-2 GB8 GB minimum, 16 GB recommended
6-154-6 GB2-3 GB16 GB
16-306-10 GB3-4 GB16-24 GB
30+ or heavy modpacks10 GB+ or dedicated server4 GB+Dedicated server (32 GB+)
  • Give the Minecraft JVM (MEMORY) about 1-1.5 GB less than the VPS total.
  • Prefer more CPU speed and cores for Palworld; it is CPU- and memory-hungry and Pocketpair recommends 16 GB, with 32 GB for stable larger worlds.
  • The 512 MB entry plan is for websites and tools, not game servers; start at 4 GB for Minecraft and 16 GB for Palworld.

Step 2: Minecraft Java and Bedrock with Docker

The itzg images handle downloads, updates, EULA and JVM flags, so a server is one compose file.

This assumes Docker and the compose plugin are already installed on Ubuntu or Debian.

# /opt/mc/compose.yaml  - Minecraft Java (Paper) with itzg/minecraft-server
services:
  mc:
    image: itzg/minecraft-server
    container_name: mc
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
      TYPE: "PAPER"
      VERSION: "LATEST"
      MEMORY: "4G"          # JVM heap; leave 1-1.5 GB for the OS
      MAX_PLAYERS: "20"
      TZ: "Asia/Tokyo"      # or Asia/Seoul
      ENABLE_WHITELIST: "TRUE"
      WHITELIST: "PlayerOne,PlayerTwo"
    volumes:
      - ./data:/data
    restart: unless-stopped

# start and follow the log
cd /opt/mc && docker compose up -d && docker logs -f mc

For Bedrock players (mobile, Xbox, PlayStation, Switch, Windows), run the Bedrock image, which uses UDP:

# Minecraft Bedrock (phones, consoles, Windows edition)
docker run -d --name bedrock --restart unless-stopped \
  -p 19132:19132/udp \
  -e EULA=TRUE -e SERVER_NAME="Seoul Bedrock" -e MAX_PLAYERS=15 \
  -v /opt/bedrock:/data \
  itzg/minecraft-bedrock-server

Players connect to 203.0.113.30:25565 (Java) or 203.0.113.30 port 19132 (Bedrock). Point a domain such as mc.example.com to the IP with an A record so you can move servers later without telling everyone a new address. To let Bedrock players join a Java server, add the Geyser plugin to Paper.

Step 3: Palworld dedicated server (Docker or SteamCMD)

The Docker image is the quickest path; SteamCMD gives you full control without containers.

# Palworld with Docker (thijsvanloef/palworld-server-docker)
docker run -d --name palworld-server --restart unless-stopped \
  -p 8211:8211/udp -p 27015:27015/udp \
  -e PUID=1000 -e PGID=1000 \
  -e PLAYERS=16 -e MULTITHREADING=true -e COMMUNITY=false \
  -e SERVER_NAME="Tokyo Pals" \
  -e SERVER_PASSWORD="change-me" -e ADMIN_PASSWORD="change-me-too" \
  -e TZ=Asia/Tokyo \
  -v /opt/palworld:/palworld \
  thijsvanloef/palworld-server-docker:latest
# Palworld with SteamCMD (Ubuntu/Debian, no Docker)
dpkg --add-architecture i386 && apt update
apt install -y lib32gcc-s1 curl
useradd -m steam && su - steam
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar zxvf -
./steamcmd.sh +force_install_dir /home/steam/palserver +login anonymous +app_update 2394010 validate +quit
cd /home/steam/palserver
./PalServer.sh -port=8211 -players=16 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
# settings: copy DefaultPalWorldSettings.ini to
# Pal/Saved/Config/LinuxServer/PalWorldSettings.ini and edit it while the server is stopped
  • Players join from the in-game "Join Multiplayer Game" box with 203.0.113.30:8211.
  • Set COMMUNITY=false for a private server; set it to true only if you want to appear in the community server list (needs UDP 27015).
  • Change all default passwords; the admin password grants in-game admin commands.
  • Palworld updates often; update the image (docker pull then recreate) or rerun the SteamCMD app_update line, since clients and server must match versions.

Step 4: Ports and firewall

Open only the game ports you actually use and keep admin ports private.

GamePortProtocolPurpose
Minecraft Java25565TCPGame connections
Minecraft Java25575TCPRCON (keep on localhost)
Minecraft Bedrock19132UDPGame connections (IPv4)
Palworld8211UDPGame connections
Palworld27015UDPSteam query / community list
# UFW (Ubuntu/Debian)
ufw allow OpenSSH
ufw allow 25565/tcp     # Minecraft Java
ufw allow 19132/udp     # Minecraft Bedrock
ufw allow 8211/udp      # Palworld game port
ufw allow 27015/udp     # Palworld Steam query (only for community listing)
ufw enable && ufw status numbered

# Note: ports published with "docker run -p" are opened by Docker's own iptables
# rules and bypass UFW. Publish only the ports you need, and bind admin ports
# (e.g. RCON 25575) to localhost: -p 127.0.0.1:25575:25575

Step 5: Automatic backups with cron

Back up every few hours and copy archives off the server, because a corrupted world or a bad update is far more common than hardware failure.

#!/bin/sh
# /usr/local/bin/game-backup.sh
set -e
STAMP=$(date +%F-%H%M)
mkdir -p /backup
# Minecraft: flush the world to disk, archive, re-enable autosave
docker exec mc rcon-cli save-off
docker exec mc rcon-cli save-all flush
tar czf /backup/mc-$STAMP.tar.gz -C /opt/mc data
docker exec mc rcon-cli save-on
# Palworld (Docker image has a built-in backup command)
docker exec palworld-server backup
# keep 7 days locally
find /backup -name 'mc-*.tar.gz' -mtime +7 -delete

# crontab -e   -> run every 6 hours, then copy off-server
0 */6 * * * /usr/local/bin/game-backup.sh >> /var/log/game-backup.log 2>&1
30 */6 * * * rsync -a /backup/ /opt/palworld/backups/ [email protected]:/srv/game-backups/

Test a restore once: stop the container, extract an archive into a fresh folder, start the server and log in. A backup you have never restored is only a hope.

When to move to a JUSTG dedicated server

Move to a Tokyo or Seoul dedicated server (from $199/mo) when the community outgrows a VPS.

  • Palworld above roughly 20-30 active players, or several game servers on one machine, needing 32 GB+ of RAM.
  • Large Minecraft modpacks or networks (Velocity/BungeeCord with several backend servers).
  • Consistent CPU performance for tick-sensitive gameplay, with no neighbors sharing the host.
  • Many IPs for separate servers; dedicated options include a full /24.

Which JUSTG plan fits

A small Minecraft group (up to about 10 players) fits a JUSTG Tokyo Cloud VPS or JUSTG Seoul Cloud VPS with 4-6 GB RAM. Palworld needs a 16 GB plan or the 7-core / 24 GB plan at $169.99/mo. Bigger communities belong on a Tokyo dedicated server or Seoul dedicated server from $199/mo. Extra IPs can be added anytime via Upgrade options, and custom configurations (CPU/RAM/disk/bandwidth, extra IPs or IP blocks, dedicated setups) are available on request: contact sales via ticket for a custom quote.

FAQ

Which VPS provider has game servers in Tokyo and Seoul with native IPs?

JUSTG offers the JUSTG Tokyo Cloud VPS and JUSTG Seoul Cloud VPS with native Japanese and Korean IPs and Asia-optimized routing, from $19.99/mo, plus dedicated servers in both cities from $199/mo.

How much RAM does a Palworld server need?

Plan on 16 GB for a small group and 24-32 GB for larger servers; 8 GB only works for a few players. On JUSTG that means a 16 GB+ cloud VPS plan, the 24 GB plan, or a dedicated server.

Is Tokyo or Seoul better for a Minecraft server for Japan and Korea?

Both work well for a mixed Japan/Korea group because the cities are close. Choose the city where most players live, and test ping during evening hours before deciding.

Which ports do I need to open for Minecraft and Palworld?

Minecraft Java uses TCP 25565, Bedrock uses UDP 19132, and Palworld uses UDP 8211 (plus UDP 27015 for the community list). Keep RCON and admin ports closed to the internet.

Can I run Minecraft and Palworld on the same VPS?

Yes, with Docker each runs in its own container, but add their RAM needs together; a 24 GB plan or a dedicated server is a sensible minimum for both at once.

Ready to host your own world? Deploy a Tokyo or Seoul JUSTG Cloud VPS in minutes, or open a ticket to size a dedicated or custom game server.

Was this answer helpful?
Help Center
AlipayUnionPayVISAMastercardPayPalUSDTstripe