Wispdock’s control panel isn’t built yet. Where a step says “in your control panel”, use whatever your host gives you for files, the console and start/stop. The Minecraft side works the same everywhere.
A pack name alone does not establish memory demand; include its release and expected workload when discussing modpack hosting.
Starting points by server type
These are the sizes we’d start with. They aren’t measurements, and the right number for your server depends on the Minecraft version, the world and what people build in it.
| Server | Players online | Start with |
|---|---|---|
| Vanilla or Paper, no plugins or very few | 1 to 5 | 2 to 3 GB |
| Paper with a handful of plugins | 5 to 15 | 3 to 4 GB |
| Paper with many plugins and a big world | 15 to 40 | 6 to 8 GB |
| Light modpack, under about 100 mods | 2 to 10 | 4 to 6 GB |
| Medium modpack, 100 to 200 mods | 2 to 10 | 6 to 8 GB |
| Large modpack, several hundred mods | 2 to 10 | 8 to 12 GB |
For modpacks, the pack’s page on CurseForge or Modrinth often lists a recommended amount. That beats any table, this one included. And player count is a loose guide: ten players spread across the map load far more chunks than ten players in one base.
What the memory goes to
Most of it holds the world. Every player keeps a square of chunks loaded around them, sized by view-distance, and every loaded chunk carries its blocks, entities and block entities like chests and hoppers. Plugins add their own data and caches on top.
Modpacks are different. Each mod adds classes, blocks, items and recipes that Java loads at startup, so a large pack can use several gigabytes before anyone joins. That’s why the modpack rows above are so much higher for the same player count.
Setting -Xms and -Xmx
Memory is set on the Java command line:
java -Xms4G -Xmx4G -jar server.jar nogui
-Xmx is the maximum heap, the memory Java can use for the game’s objects. -Xms is the heap it starts with. If you leave out -Xmx, Java picks a default, usually a quarter of the machine’s memory, which is rarely what you want. For a dedicated server, set both to the same value. Paper’s docs recommend it, and it stops Java resizing the heap while people are playing.
Modern Forge and NeoForge servers start through run.sh or run.bat. Don’t edit those: put memory flags in user_jvm_args.txt, one per line or on one line. The modpack guide covers the rest of that setup.
On a host, check the startup settings in your control panel before adding your own flags. Many hosts set -Xmx from your plan size for you.
Leave headroom for Java and the OS
-Xmx caps the heap, not the whole Java process. Java also needs memory for loaded classes, thread stacks, compiled code, network buffers and the garbage collector’s own bookkeeping. On Paper that’s usually a few hundred megabytes. On a big modpack it can pass a gigabyte.
- On your own machine, leave the operating system at least 1 to 2 GB, plus whatever the Minecraft client needs if you play on the same PC.
- On a host or in a container with a hard memory limit, keep
-Xmxclearly below that limit. If heap plus overhead goes over it, the system kills the process. There’s no Java error inlatest.logwhen that happens: the server just stops.
As a rough rule, we’d leave 1 GB of headroom on a plugin server and 1.5 to 2 GB on a large modpack, then adjust after watching it.
Why more -Xmx isn’t better
Ticks run on one main thread. Once the server has enough memory, extra heap doesn’t make that thread any faster, so it won’t raise your TPS.
It can cost you, though. Java lets garbage build up until the heap fills, then collects it. A heap far bigger than you need just holds more garbage between collections, and depending on the collector and its settings, individual pauses can get longer. Players feel a long pause as the whole server freezing for a moment. Memory you hand to Java is also memory the operating system can’t use to cache world files.
So give the server enough that heap use after a collection sits well below -Xmx, with room for busy moments, and stop there.
Aikar’s flags
Aikar’s flags are a set of G1 garbage collector settings tuned for Minecraft servers, written by Aikar of Empire Minecraft. Paper’s documentation recommends them and keeps the current list at docs.papermc.io. For heaps up to 12 GB they look like this (swap 6G for your size, keeping both values the same):
java -Xms6G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
Above 12 GB, change five of them:
-XX:G1NewSizePercent=40
-XX:G1MaxNewSizePercent=50
-XX:G1HeapRegionSize=16M
-XX:G1ReservePercent=15
-XX:InitiatingHeapOccupancyPercent=20
A few things to know. -XX:+AlwaysPreTouch makes Java claim the whole heap at startup, so your panel shows memory full from the first minute. That’s expected. The flags work on Fabric, Forge and NeoForge too: for Forge and NeoForge, everything before -jar goes into user_jvm_args.txt. Copy them from Paper’s page rather than an old forum post, since the list has changed over the years.
What matters more than RAM
Most “I need more RAM” problems are really a distance or chunk-generation problem.
view-distance and simulation-distance in server.properties both default to 10. View distance decides how many chunks each player keeps loaded, which drives memory. Simulation distance decides how many chunks get ticked, which drives CPU. Dropping simulation to 6 or 8 and view to 8 or 10 is a sensible start for a small group. The server.properties guide covers both.
Generating new terrain is the other big one. Players exploring in different directions make the server generate chunks constantly, which costs CPU and memory at once. Pre-generate the area you’ll use with Chunky while nobody is online and set a world border. The commands are in the lag guide. A fast CPU core also helps more than extra RAM once you have enough.
Measure with spark
Guessing from the panel’s memory graph doesn’t work, because Java holds on to whatever heap it has. Use spark instead. Recent Paper builds include it, and on Fabric, Forge and NeoForge you install it as a mod.
/spark healthshows memory use alongside TPS, MSPT and CPU./spark gcmonitorposts a message each time a garbage collection runs, with how long it took./spark heapsummaryshows which kinds of objects fill the heap, useful when one mod or plugin is suspect.
Look at memory straight after collections, not the peaks. If it keeps climbing and sits near -Xmx even after a collection, or java.lang.OutOfMemoryError shows up in the log, the server needs more memory, or something is leaking. If it drops well below the limit each time and TPS is still low, memory isn’t your problem: profile the CPU as described in Reduce Minecraft server lag.
Frequently asked questions
How much RAM do I need for 10 players?
On Paper with a handful of plugins, 4 GB is a reasonable place to start. Plain vanilla often runs fine in 3 GB. For a modpack, the pack size matters far more than the player count. Start there, then check memory after garbage collection with spark.
Should -Xms and -Xmx be the same?
For a dedicated server, yes. Paper’s documentation and Aikar’s flags both set them to the same value, so Java takes the full heap at startup and never has to resize it while players are online.
Will more RAM stop my server lagging?
Only if the server is actually short of memory, which shows up as OutOfMemoryError or memory stuck near the limit after every collection. Otherwise lag comes from the work done each tick: lower simulation-distance, pre-generate the world and profile with spark.
Why does my panel show the memory almost full?
Java reserves the heap it is allowed and holds on to it. With -Xms equal to -Xmx and AlwaysPreTouch, the server claims the whole heap at startup, so the panel shows it full from the first minute. Look at heap use after garbage collection in spark instead.
How much RAM does a modpack need?
Check the pack’s page on CurseForge or Modrinth first, since many list a recommended amount. As a rough start, give light packs 4 to 6 GB, medium packs 6 to 8 GB and large packs with several hundred mods 8 to 12 GB.
Wispdock’s draft plans run from 2 GB to 16 GB, with 8 GB and 12 GB set up for modpacks. They’re on the pricing page; prices are drafts and ordering isn’t open yet.
Still stuck? Send us the details and your latest.log.