Skip to main content

Palworld Server Optimization

This guide provides comprehensive optimization strategies for your Palworld dedicated server to ensure smooth gameplay, minimal lag, and optimal performance for all players.

Performance Baseline

Before optimizing, understand your server’s current performance:
MetricGoodAcceptablePoor
Server FPS60+ FPS45-60 FPSBelow 45 FPS
Tick Rate60 TPS50-59 TPSBelow 50 TPS
RAM UsageUnder 8GB8-12GBOver 12GB
CPU UsageUnder 50%50-75%Over 75%
Player LatencyUnder 50ms50-100msOver 100ms
Load TimeUnder 30s30-60sOver 60s
Monitor these metrics through your Wasabi Hosting Gamepanel or in-game console commands.

Configuration Optimization

Core Settings Optimization

Optimize PalWorldSettings.ini for better performance:
[/Script/Pal.PalGameWorldSettings]
OptionSettings=(
    # Player Limit (adjust based on server resources)
    ServerPlayerMaxNum=20,  # Lower = better performance

    # Entity Limits (reduce for better performance)
    DropItemMaxNum=2000,    # Default: 3000
    DropItemAliveMaxHours=0.5,  # Faster cleanup

    # Base Settings
    BaseCampMaxNum=128,
    BaseCampWorkerMaxNum=10,  # Lower = better performance (default: 15)

    # Spawn Rates (lower = better performance)
    PalSpawnNumRate=0.9,    # Slightly reduce spawns

    # Guild Settings
    GuildPlayerMaxNum=15,   # Lower if not needed

    # Performance-Critical Settings
    bIsUseBackupSaveData=True,
    bUseAuth=True
)
BaseCampWorkerMaxNum has the most significant performance impact. Start at 10 and adjust based on player feedback.

Engine Configuration

Optimize Engine.ini for maximum performance:
[/Script/OnlineSubsystemUtils.IpNetDriver]
NetServerMaxTickRate=60
MaxClientRate=100000
MaxInternetClientRate=100000

[/Script/Engine.Engine]
bUseFixedFrameRate=True
FixedFrameRate=60.000000
bSmoothFrameRate=True
SmoothedFrameRateRange=(LowerBound=(Type=Inclusive,Value=30.000000),UpperBound=(Type=Exclusive,Value=60.000000))

[Core.System]
Paths=../../../Engine/Content
Paths=%GAMEDIR%Content

[/Script/Engine.GarbageCollectionSettings]
gc.MaxObjectsNotConsideredByGC=1
gc.SizeOfPermanentObjectPool=0
gc.TimeBetweenPurgingPendingKillObjects=60

[/Script/EngineSettings.GameMapsSettings]
GameDefaultMap=/Game/Maps/Main
ServerDefaultMap=/Game/Maps/Main

[SystemSettings]
r.Streaming.PoolSize=2048
r.Streaming.MaxEffectiveScreenSize=0
r.Shadow.MaxResolution=2048
Changing TickRate below 50 may negatively impact gameplay. 60 is optimal for most servers.

Startup Parameter Optimization

Configure these in your Wasabi Hosting Gamepanel:
# High Performance Configuration
-useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -publicport=8211 -publicip= -servername="My Server" -port=8211

# Additional Memory Optimization
-USEALLAVAILABLECORES -malloc=system -high
ParameterPurposePerformance Impact
-useperfthreadsUse performance-optimized threadsHigh - Better CPU utilization
-NoAsyncLoadingThreadDisable async loadingMedium - More predictable load
-UseMultithreadForDSEnable multithreading for dedicated serverHigh - Essential for good performance
-USEALLAVAILABLECORESUtilize all CPU coresHigh - Maximizes CPU usage
-malloc=systemUse system memory allocatorMedium - Better memory management
-highSet process priority to highMedium - Better CPU scheduling
-port=8211Specify server portNone
-publicport=8211Set public portNone

Memory Optimization

Memory Management Settings

# In Engine.ini
[/Script/Engine.GarbageCollectionSettings]
gc.MaxObjectsNotConsideredByGC=1
gc.SizeOfPermanentObjectPool=0
gc.TimeBetweenPurgingPendingKillObjects=60
gc.FlushStreamingOnGC=True

[MemoryPools]
PoolSize=2048
MaxPoolSize=4096

RAM Allocation Guidelines

Player CountMinimum RAMRecommended RAM
1-88 GB12 GB
8-1612 GB16 GB
16-2416 GB24 GB
24-3224 GB32 GB
These requirements include OS overhead and other background processes. Dedicated servers should have 20-30% RAM headroom.

CPU Optimization

Multi-Threading Configuration

# In Engine.ini
[Core.System]
TaskGraph.NumThreads=0  # 0 = Auto-detect cores

[/Script/Engine.RendererSettings]
r.RHICmdBypass=0

[SystemSettings]
WorkerThreadPriority=TPri_Normal
ThreadedPhysicsWorker=True

CPU Affinity and Priority

On Windows servers, configure CPU affinity:
# PowerShell script to set CPU affinity
$processName = "PalServer-Win64-Test-Cmd"
$process = Get-Process -Name $processName
$process.ProcessorAffinity = 0xFF  # Use all 8 cores (adjust for your CPU)
Set the Palworld server process priority to “High” in Task Manager for better CPU allocation.

Network Optimization

Network Configuration

# In PalWorldSettings.ini
[/Script/Pal.PalGameWorldSettings]
OptionSettings=(
    PublicPort=8211,
    RCONPort=25575,
    ServerPlayerMaxNum=20,  # Lower for better network performance
)

# In Engine.ini
[/Script/OnlineSubsystemUtils.IpNetDriver]
NetServerMaxTickRate=60
MaxClientRate=100000
MaxInternetClientRate=100000
ConnectionTimeout=60.0
InitialConnectTimeout=60.0

Bandwidth Optimization

Player CountMinimum BandwidthRecommended Bandwidth
1-810 Mbps25 Mbps
8-1625 Mbps50 Mbps
16-2450 Mbps100 Mbps
24-32100 Mbps200 Mbps
These values are for upload bandwidth, which is typically the limiting factor for game servers.

Entity and World Optimization

Item Management

# Optimize item handling
DropItemMaxNum=2000,              # Reduce from default 3000
DropItemAliveMaxHours=0.5,        # Faster cleanup (default: 1.0)
Setting DropItemMaxNum too low may cause items to disappear during intense gameplay. 2000-2500 is a good balance.

Pal Spawn Optimization

# Balance spawns and performance
PalSpawnNumRate=0.9,              # Slightly reduce spawns
PalDamageRateAttack=1.0,
PalDamageRateDefense=1.0,

Base and Building Optimization

# Base performance settings
BaseCampMaxNum=128,               # Maximum bases
BaseCampWorkerMaxNum=10,          # Reduce from 15 for better performance
BuildObjectDeteriorationDamageRate=1.0,
BaseCampWorkerMaxNum directly impacts performance. Each worker Pal actively calculates pathfinding and tasks.

Database and Save Optimization

Save Game Settings

# Enable backup system
bIsUseBackupSaveData=True,

# In Engine.ini
[/Script/Engine.GameEngine]
bSmoothFrameRate=True
SmoothedFrameRateRange=(LowerBound=(Type=Inclusive,Value=30.000000),UpperBound=(Type=Exclusive,Value=60.000000))

Automatic Backups

Configure automatic saves and backups:
  • In Wasabi Gamepanel: Set up automated backups every 6-12 hours
  • Manual saves: Use /Save command regularly via RCON
  • Backup rotation: Keep 3-7 days of backups
Regular saves prevent data loss but cause brief performance dips. Schedule during low-traffic periods.

Performance Scaling by Player Count

Small Server (1-8 Players)

# Optimized for 1-8 players
ServerPlayerMaxNum=8,
BaseCampWorkerMaxNum=15,          # Can afford higher
PalSpawnNumRate=1.0,
DropItemMaxNum=2000,
ExpRate=1.0,

Medium Server (8-16 Players)

# Optimized for 8-16 players
ServerPlayerMaxNum=16,
BaseCampWorkerMaxNum=12,          # Balanced
PalSpawnNumRate=0.9,
DropItemMaxNum=2500,
ExpRate=1.2,                      # Slightly boosted for more players

Large Server (16-32 Players)

# Optimized for 16-32 players
ServerPlayerMaxNum=32,
BaseCampWorkerMaxNum=8,           # Reduced for performance
PalSpawnNumRate=0.8,              # Lower spawn rate
DropItemMaxNum=3000,
ExpRate=1.5,                      # Compensate for more competition
DropItemAliveMaxHours=0.3,        # Aggressive cleanup

Monitoring and Diagnostics

Performance Monitoring

Use RCON commands to monitor performance:
# Check server performance
/ShowPerformance
/ShowMemory
/ShowNetwork

# Regular health checks
/Info
/ShowPlayers

Log Analysis

Monitor logs for performance issues:
# Log location
/Pal/Saved/Logs/

# Common issues to look for:
- "Out of memory" errors
- High tick time warnings
- Connection timeouts
- Save/load errors
Set up log rotation to prevent log files from consuming too much disk space.

Platform-Specific Optimizations

Windows Server

# Disable unnecessary services
Set-Service -Name "Themes" -StartupType Disabled
Set-Service -Name "Windows Search" -StartupType Disabled

# Configure page file
# Set to 1.5x - 2x your RAM size

# Disable visual effects
SystemPropertiesPerformance.exe

Linux Server

# Increase file descriptor limits
ulimit -n 100000

# Optimize TCP settings
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216'
sysctl -w net.ipv4.tcp_wmem='4096 65536 16777216'

# Disable unnecessary services
systemctl disable bluetooth
systemctl disable cups

Advanced Optimization Techniques

Memory Pooling

# In Engine.ini
[/Script/Engine.Engine]
bEnableOnScreenDebugMessages=False
PoolSize=2048

[SystemSettings]
r.Streaming.PoolSize=2048
r.Streaming.UseFixedPoolSize=1

Async Loading

[/Script/Engine.StreamingSettings]
s.AsyncLoadingTimeLimit=5.0
s.PriorityAsyncLoadingExtraTime=15.0
s.LevelStreamingActorsUpdateTimeLimit=5.0

Garbage Collection Optimization

[/Script/Engine.GarbageCollectionSettings]
gc.MaxObjectsNotConsideredByGC=1
gc.SizeOfPermanentObjectPool=0
gc.TimeBetweenPurgingPendingKillObjects=60
gc.MaxObjectsInEditor=2147483647
gc.IncrementalBeginDestroyEnabled=True

Anti-Lag Measures

Entity Cleanup Scripts

Create automated cleanup via RCON:
#!/bin/bash
# Cleanup script

RCON_CMD="mcrcon -H your-ip -P 25575 -p password"

while true; do
    # Regular save
    $RCON_CMD "Save"

    # Broadcast cleanup
    $RCON_CMD "Broadcast Performing routine cleanup..."

    sleep 3600  # Every hour
done

Dynamic Performance Adjustment

Monitor and adjust settings based on load:
# Check player count and adjust
PLAYER_COUNT=$($RCON_CMD "ShowPlayers" | wc -l)

if [ $PLAYER_COUNT -gt 20 ]; then
    # High load - reduce spawns
    echo "High player count - reducing spawns"
elif [ $PLAYER_COUNT -lt 10 ]; then
    # Low load - increase for better gameplay
    echo "Low player count - normal settings"
fi

Hardware Recommendations

For 1-8 Players:
  • CPU: 4 cores @ 3.5GHz+
  • RAM: 12 GB
  • Storage: 50 GB SSD
  • Network: 25 Mbps
For 8-16 Players:
  • CPU: 6 cores @ 4.0GHz+
  • RAM: 16 GB
  • Storage: 100 GB SSD
  • Network: 50 Mbps
For 16-24 Players:
  • CPU: 8 cores @ 4.5GHz+
  • RAM: 24 GB
  • Storage: 150 GB NVMe SSD
  • Network: 100 Mbps
For 24-32 Players:
  • CPU: 12 cores @ 5.0GHz+
  • RAM: 32 GB
  • Storage: 200 GB NVMe SSD
  • Network: 200 Mbps
SSD/NVMe storage is crucial for fast world saves and loads. HDD significantly impacts performance.

Optimization Checklist

Use this checklist to optimize your server:
  • Set appropriate player limit for hardware
  • Reduce BaseCampWorkerMaxNum to 8-12
  • Configure DropItemMaxNum to 2000-2500
  • Enable faster item cleanup (0.5 hours)
  • Set NetServerMaxTickRate to 60
  • Enable multithreading startup parameters
  • Configure automatic backups
  • Set process priority to High
  • Enable garbage collection optimization
  • Configure log rotation
  • Optimize network settings
  • Enable RCON for monitoring
  • Set up automated saves
  • Monitor RAM usage regularly
  • Review and update configuration monthly

Troubleshooting Performance Issues

Common Causes:
  • Too many players for hardware
  • High BaseCampWorkerMaxNum
  • CPU bottleneck
  • Too many active bases
Solutions:
  • Reduce ServerPlayerMaxNum
  • Lower BaseCampWorkerMaxNum to 8-10
  • Reduce PalSpawnNumRate to 0.8
  • Increase cleanup frequency
  • Upgrade CPU or reduce player count
Common Causes:
  • Memory leaks
  • Too many entities
  • Large world size
  • Insufficient cleanup
Solutions:
  • Enable aggressive item cleanup
  • Reduce DropItemMaxNum
  • Restart server daily
  • Enable garbage collection optimization
  • Reduce BaseCampMaxNum if possible
Common Causes:
  • Insufficient bandwidth
  • Network congestion
  • DDoS attack
  • Poor routing
Solutions:
  • Upgrade network bandwidth
  • Enable DDoS protection (Firewall Manager)
  • Reduce MaxClientRate if needed
  • Limit ServerPlayerMaxNum
  • Check for background network processes
Common Causes:
  • Slow storage (HDD vs SSD)
  • Large world size
  • Many players/bases
  • Fragmented files
Solutions:
  • Upgrade to SSD or NVMe storage
  • Regular world cleanup
  • Optimize save intervals
  • Defragment storage (if HDD)
  • Enable backup compression
Common Causes:
  • Out of memory
  • Corrupted save files
  • Mod conflicts
  • Hardware issues
Solutions:
  • Increase allocated RAM
  • Restore from backup
  • Remove problematic mods
  • Check hardware health
  • Update server software
  • Review crash logs

Maintenance Schedule

Regular maintenance ensures optimal performance:

Daily Tasks

  • Monitor server performance metrics
  • Check player count vs. performance
  • Verify no error messages in logs
  • Quick backup verification

Weekly Tasks

  • Full server restart
  • Log file cleanup and review
  • Performance benchmark
  • Backup rotation verification
  • Check for updates

Monthly Tasks

  • Deep performance analysis
  • Configuration optimization review
  • Hardware health check
  • Storage cleanup
  • Update all software
  • Review player feedback
Schedule maintenance during off-peak hours (early morning) to minimize player disruption.

Performance Testing

Stress Testing

Test server performance under load:
1

Establish baseline

Record metrics with normal player count
2

Simulate high load

Test with maximum expected players
3

Monitor metrics

Track FPS, RAM, CPU, network during test
4

Identify bottlenecks

Find performance limiting factors
5

Adjust and retest

Optimize and test again

Benchmark Commands

# Via RCON
/ShowPerformance  # Current FPS and tick rate
/ShowMemory       # RAM usage
/ShowNetwork      # Network stats
/Info             # General server info

Final Optimization Tips

Key Optimization Principles:
  • Start conservative: Begin with lower limits and increase gradually
  • Monitor constantly: Regular performance checks prevent issues
  • One change at a time: Test each optimization individually
  • Document changes: Keep records of what works
  • Player feedback: Listen to player reports of lag
  • Regular restarts: Daily restarts prevent memory leaks
  • Update regularly: Keep server software current
  • Backup everything: Always backup before major changes
By following this comprehensive optimization guide, your Palworld server on Wasabi Hosting will deliver excellent performance and a smooth, enjoyable experience for all players. For additional assistance, contact our support team.