Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Godlike.Host offers hosted Minecraft Java servers with its own game panel, SFTP access and free DDoS protection, if you would rather not host it yourself.
Aikar’s flags are Java Virtual Machine (JVM) startup arguments that tune the G1 garbage collector for Minecraft Java servers, especially Paper and Spigot-family servers. They can reduce long garbage-collection pauses, but they cannot compensate for insufficient CPU, RAM, unsuitable Java versions, or excessive view distance and entity load. Use the current flag string from PaperMC’s Aikar’s flags documentation, keep -Xms and -Xmx equal, and reserve memory for the operating system.
What Aikar’s flags actually change
Minecraft Java servers continually allocate and discard objects: entity data, block updates, packet objects, chunk information, plugin events, and temporary collections are created during normal ticks. Java’s garbage collector eventually reclaims that short-lived data. With default G1GC settings, a busy server can experience collection pauses long enough to appear to players as a lag spike.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Minecraft | Java & Bedrock Deluxe Collection | Windows Digital Code | $39.99 | Buy on Amazon |
| 2 |
|
Minecraft | Java & Bedrock Ultimate Collection | Windows Digital Code | $49.99 | Buy on Amazon |
| 3 |
|
Minecraft | Standard Edition | XBOX Digital Code | $19.99 | Buy on Amazon |
| 4 |
|
Minecraft | $6.99 | Buy on Amazon |
| 5 |
|
Minecraft - Bedrock Edition PS4 | $42.98 | Buy on Amazon |
Aikar’s flags are a coordinated set of JVM options intended to make G1GC behave more predictably for that allocation pattern. They adjust how the collector targets pause times, sizes regions, handles objects that survive collections, pre-touches allocated memory, and responds to explicit garbage-collection requests. The set was published by PaperMC contributor Daniel Ennis, known as Aikar, and is maintained as a version-sensitive recommendation rather than a permanent Minecraft setting.
The flags are startup arguments, not plugin settings. They are read when Java launches the server and normally require a full restart to change. They do not alter Minecraft’s game rules, tick rate, world data, or plugin configuration.
#1 Best Overall
- DELUXE COLLECTION — Includes Minecraft: Java & Bedrock Edition, three Bedrock add-ons, three exclusive Character Creator items, and 700 Minecoins.
- CREATE YOUR WORLD — Build whatever you imagine in an infinite world that’s unique in every playthrough.
- EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world filled with surprises.
- SURVIVE THE ADVENTURE — Face mysterious foes, travel across exciting landscapes, and venture into perilous dimensions.
- PLAY TOGETHER — Play cross-platform with friends in Bedrock Edition on console, mobile, and PC, or join community servers in Java Edition on PC, Mac, and Linux. Online console multiplayer requires a platform-specific subscription (sold separately).
When they help—and when they do not
They address garbage-collection pauses
If profiling shows that the JVM is stopping the server for garbage collection, tuning G1GC can make those pauses shorter or less disruptive. The goal is steadier tick processing, not a guaranteed increase in maximum TPS. There is no independent primary-source statistic establishing a universal percentage improvement from Aikar’s flags; claims of a specific “TPS boost” should therefore be treated as marketing rather than a benchmark.
They cannot create missing resources
A server that is CPU-bound, swapping, running out of physical memory, overloaded by chunks or entities, or slowed by a plugin will remain constrained after flags are added. Heap settings must match the player count, world size, plugins, and mods. A large heap also does not make a weak CPU faster; it can simply allow more work to accumulate before a collection.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →They are mainly aimed at Paper and related servers
The recommendation is written for Paper and the Spigot family. Other server implementations may use different defaults or document different JVM guidance. Confirm that your implementation and Minecraft version are covered by the current PaperMC page before copying a command.
Use the current official string, not an old copy
The exact argument list changes as Java, Paper, and Minecraft change. The authoritative source is the live PaperMC Aikar’s flags page. Open it immediately before configuring a new server or revisiting an existing one. Do not assume that a command copied from a video, forum post, hosting panel, or generator is still current.
Third-party examples differ in small but meaningful ways. Some add system properties such as -Dusing.aikars.flags or -Daikars.new.flags; those properties are not proof that the rest of the command is current. Compare every option with the official page and remove anything you cannot explain or verify.
Because the string is mutable, this guide does not freeze a potentially obsolete multi-line command. Treat the official page as the source of the flags themselves, and use the procedures below to place that current string safely in your launcher.
Rank #2
- ULTIMATE COLLECTION — Includes Minecraft: Java & Bedrock Edition, five Bedrock add-ons, five exclusive Character Creator items, and 1000 Minecoins.
- CREATE YOUR WORLD — Build whatever you imagine in an infinite world that’s unique in every playthrough.
- EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world filled with surprises.
- SURVIVE THE ADVENTURE — Face mysterious foes, travel across exciting landscapes, and venture into perilous dimensions.
- PLAY TOGETHER — Play cross-platform with friends in Bedrock Edition on console, mobile, and PC, or join community servers in Java Edition on PC, Mac, and Linux. Online console multiplayer requires a platform-specific subscription (sold separately).
Before you configure a server
Match Java to Minecraft
Install a Java runtime supported by your Minecraft release and server software. One third-party compatibility guide lists Java 21 for Minecraft 1.20.5 through 1.21.x and Java 25 beginning with Minecraft 26.1, but that recommendation is not confirmed by a primary source here. Check the Minecraft and Paper documentation for your exact release before changing Java. A flag set cannot correct an unsupported runtime.
Measure available memory
Determine the machine’s physical RAM and what the operating system, control panel, database, proxy, and other services consume. PaperMC guidance recommends at least 6–10 GB for the server regardless of player count, while an older mirrored revision advises reducing the heap values by about 1,000–1,500 MB to leave operating-system headroom. The live page may differ, so verify the current wording before treating either figure as a universal rule.
Do not assign every gigabyte to Java. If the host has 8 GB total, an 8 GB Java heap leaves no room for the kernel, filesystem cache, native memory, monitoring, or a second process. That can trigger an operating-system out-of-memory kill even when the Java heap itself appears correctly sized.
Back up and record a baseline
- Back up the world, server configuration, and launch script.
- Record the Minecraft version, Paper build, Java version, heap values, view distance, simulation distance, player count, and major mods or plugins.
- Observe the server during a representative busy period. Note tick behavior, memory use, CPU use, and whether pauses coincide with garbage collection.
A baseline lets you distinguish a collection-pause problem from a plugin, redstone, chunk-generation, disk, or CPU problem. Change one category at a time so a later improvement has a plausible cause.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsSet heap size correctly
Keep -Xms and -Xmx equal
-Xms sets the initial Java heap and -Xmx sets its maximum. Aikar’s setup guidance keeps them at the same value so the JVM does not repeatedly resize the heap while the server is running. Choose a value that fits the workload and leaves the host’s required headroom; equal values do not mean “use all physical RAM.”
For example, a machine with 16 GB of physical memory might reserve roughly 1,000–1,500 MB or more for the operating system and other services, then size the heap from what remains after considering the actual workload. The exact number must come from your host’s RAM budget and server behavior, not from a player-count slogan.
Rank #3
- CREATE YOUR WORLD — Build whatever you imagine in an infinite world that is unique in every playthrough.
- EXPLORE AND CRAFT — Discover biomes, resources, and mobs, then craft your way through a sandbox world full of surprises.
- SURVIVAL ADVENTURES — Face mysterious foes, travel across varied landscapes, and venture into perilous dimensions.
- PLAY TOGETHER — Play solo or join friends in local split-screen and cross-platform play across console, mobile, and PC. Online multiplayer supports up to 8 players.
- COMMUNITY PLAY — Connect with players on community servers, or subscribe to Realms Plus (sold separately) to play with up to 10 friends on a private server.
Understand heap versus total process memory
-Xmx limits the Java heap, not every byte used by the process. Java also needs native memory for threads, class metadata, direct buffers, the garbage collector, and loaded libraries. Plugins and server software may allocate outside the heap as well. Leave more headroom when running proxies, map renderers, databases, containers, or multiple servers on the same machine.
Install the flags in a startup script
Linux or other Unix-like hosts
- Install and select the Java runtime required by your Minecraft and Paper versions.
- Create or edit the server’s launch file, commonly named
start.sh. - Set equal
-Xmsand-Xmxvalues that fit your memory budget. - Copy the complete, current Aikar argument string from the PaperMC documentation into the same Java command. Keep the flags before
-jar; Java options placed after the jar name are passed to the server program instead of the JVM. - Keep the server jar name and any required server arguments used by your installation. A typical command shape is shown below; the Aikar options belong between the heap settings and
-jar.
#!/bin/sh
java -Xms8G -Xmx8G -jar paper.jar --nogui
The example shows the placement and equal heap values, not a complete Aikar command. Insert the verified current flags from PaperMC rather than treating this abbreviated line as the recommendation.
Recommended Free Tools
- Save the file and make it executable with
chmod +x start.sh. - Stop any existing server cleanly, then launch the script with
./start.sh. - Read the first lines of the console output. Confirm that the expected Java version is running and that the server reaches its normal “done” state without an unrecognized-option error.
Control panels and hosted environments
Panels usually expose a “startup command,” “JVM arguments,” or “additional Java flags” field. Put the current Aikar options in the JVM-argument field and keep the panel’s jar, working-directory, and stop-command settings intact. Some panels generate their own memory arguments; remove duplicate -Xms and -Xmx entries so only one pair remains, with identical values. If the panel does not show the final command, ask it to display or log the expanded launch line before relying on the configuration.
Windows hosts
Use the panel’s Java-argument field when available. Otherwise, edit the batch file that starts the server and place the current Aikar options after java and before -jar. Keep the same equal-heap rule and reserve memory for Windows and other processes. Start the batch file from a console during the first test so an invalid option or Java-path error remains visible.
What the commonly documented options mean
The following options are named in third-party guides and should be checked against the current PaperMC page before use. Values can change; the descriptions explain the intent, not a promise that every release uses the same setting.
| Option | Documented purpose | Qualification |
|---|---|---|
-XX:MaxGCPauseMillis=200 |
Sets a 200-millisecond target for G1GC pause planning. | A target is not a guarantee; actual pauses depend on allocation rate, heap size, CPU speed, and workload. |
-XX:+AlwaysPreTouch |
Touches the requested heap pages during startup. | Startup can take longer and the operating system must have enough immediately available memory. |
-XX:+DisableExplicitGC |
Prevents code-triggered System.gc() requests from forcing an explicit collection. |
Verify that the current recommendation still includes it for your Java and Paper versions. |
-XX:MaxTenuringThreshold=1 |
Sets the tenuring threshold so objects surviving one collection cycle are promoted. | Its usefulness depends on the allocation pattern and collector behavior of the selected Java release. |
-XX:G1HeapRegionSize=8M |
Sets G1’s heap-region size to 8 MB. | Region sizing is tied to heap layout; do not substitute a different value without current documentation or testing. |
These options work as a set. Copying one or two lines while omitting the rest can produce behavior that no longer matches the intended tuning. Conversely, adding every option found in an old guide can introduce obsolete or conflicting settings.
Rank #4
- Skins! We have biome settlers, city folk, town folk, and more!
- The Nether and all its inhabitants. Fight Ghasts and make friends with Pigmen
- Cross platform play for up to five players between Pocket Edition and Windows 10
- Revamped touch controls, controller support, and a controller mapping screen
- Enhanced Weather effects! Accumulating snow and more
Memory planning examples
Small single-server host
Start by inventorying total RAM and non-Minecraft services. If the machine has little spare memory after the operating system, do not force the PaperMC “at least 6–10 GB” guidance into an undersized host. Reduce view distance, simulation distance, entity counts, and concurrent workloads or move the server to a larger machine. A heap that causes swapping is usually worse than a smaller heap that stays resident.
Dedicated machine with one busy server
Reserve the documented 1,000–1,500 MB starting headroom, then account for native memory and the server’s measured workload. Keep -Xms and -Xmx equal at the selected value. Watch whether the process remains within physical memory during world saves, chunk generation, and peak player activity.
Large-heap or modded server
Some third-party guides describe a variant with a larger young generation for servers above 12 GB and compare G1GC with generational ZGC for modded or very large heaps. Those are not established universal Paper recommendations. Treat them as experiments: change one collector strategy at a time, test with a representative workload, and keep a rollback command ready.
Verify that the JVM is using what you intended
Check the effective launch command
Panels and wrapper scripts can add, remove, or reorder arguments. Capture the final command or startup log and verify that there is one Java executable, one -Xms/-Xmx pair with equal values, the current Aikar options, and the correct jar. Duplicate heap options are especially easy to miss because the last one may silently win.
Check Java and server versions
Confirm the runtime version reported at startup, the Minecraft version, the Paper build, and the architecture (normally 64-bit). Re-check compatibility after upgrading Minecraft, Paper, or Java. A command that worked on one release can fail with an “unrecognized option” message or behave differently after a runtime change.
Observe behavior under the same workload
Repeat the baseline scenario: similar player count, world activity, view distance, and plugins. Look for fewer or shorter stop-the-world pauses, but also watch CPU saturation, resident memory, swap activity, disk latency, and tick duration. A smoother collector does not prove that every source of lag has been removed.
Best Value
- Play and share with friends on console, mobile and Windows 10
- discover community creations in the new in-game store
- access new mini games and game modes through servers
Troubleshooting common failures
The server will not start
- “Unrecognized VM option”: remove the offending option, confirm the Java version, and obtain the current string from PaperMC rather than an old copy.
- “Could not reserve enough space” or an immediate operating-system kill: lower both heap values together and leave more headroom. Check for other processes consuming RAM.
- The jar is treated as an option: reorder the command so JVM flags appear before
-jarand the jar filename. - The wrong Java runtime starts: use an explicit Java path in the script or correct the panel’s runtime selector, then verify the version in the startup log.
Startup is much slower
-XX:+AlwaysPreTouch can make startup take longer because Java touches the allocated heap pages before serving players. That cost is expected. If startup never completes, check physical memory, swap pressure, container limits, and whether the selected heap is realistic for the host.
Free tools Windows power users keep installed
One-click scans. No signup required.
Players still see lag spikes
Measure whether the pauses are actually garbage collection. If CPU is pegged, reduce simulation or view distance, investigate entity and chunk-generation load, and profile plugins. If disk latency rises during saves, storage—not G1GC—may be the bottleneck. If the host swaps or reaches its memory limit, reduce the heap or move to a machine with more RAM. Flags are not a substitute for those fixes.
Memory use appears high after setting equal heaps
An equal -Xms/-Xmx configuration reserves the heap up front, and AlwaysPreTouch can make those pages resident early. That is intentional, but the host still needs room for native allocations and other services. Compare total system memory, not just the Java heap graph.
Aikar’s flags versus changing collectors
| Choice | What it means | When to consider it |
|---|---|---|
| G1GC with the current Aikar set | Use a documented group of G1GC-oriented JVM arguments for Paper and Spigot-family servers. | The normal starting point when the server and Java version match the PaperMC guidance. |
| Another collector, such as generational ZGC | Change the garbage-collector strategy rather than applying the G1GC tuning set. | Only as a measured experiment for a compatible, often large-heap or modded workload; third-party comparisons are not a universal recommendation. |
Do not combine a G1GC tuning set with options intended for a different collector unless the current Java and Paper documentation explicitly says to do so. Keep a known-working launch script so you can revert after a test.
Should you use a flag generator?
Generators from services such as crafty.gg, playkeeper.io, and craftdex.net can produce a command from a RAM value. They are convenient for a first draft, but generated output can lag behind Paper’s current page, include extra system properties, or assume a memory budget that ignores your host’s other processes. Treat the output as text to audit, not as authority: compare every option, Java requirement, and heap value with the current PaperMC documentation and your actual machine.
A safe update routine
- Read the current PaperMC Aikar’s flags page after every Minecraft, Paper, or Java upgrade.
- Save the existing launch script and note the prior versions and heap values.
- Replace the old flag block with the current documented block; do not merge lines from unrelated guides.
- Recalculate headroom for the machine’s current services and keep
-Xmsequal to-Xmx. - Start in a maintenance window, watch the console for option errors, and confirm the server reaches a ready state.
- Repeat the same representative load test and retain the previous script if the new combination performs worse or fails.
The PaperMC page should be re-checked at least within six months of a configuration change because flag strings and Java recommendations evolve. A shorter review cycle is sensible for major Minecraft releases.
Practical decision checklist
- Are you running Minecraft Java Edition on Paper or a related implementation?
- Does your Java runtime match the exact Minecraft and Paper versions?
- Did you copy the complete current string from PaperMC rather than an undated post?
- Are
-Xmsand-Xmxidentical? - After reserving operating-system and native-memory headroom, is the heap realistic for the machine?
- Is the problem demonstrably garbage-collection pause time rather than CPU, disk, plugin, entity, or chunk load?
- Can you reproduce the workload and roll back the launch script if the change causes errors?
If the answer to the last two questions is no, fix measurement and capacity first. Aikar’s flags are a tuning step inside a broader performance plan, not a universal Minecraft lag fix.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

