{"id":1001,"date":"2026-08-30T22:37:09","date_gmt":"2026-08-30T22:37:09","guid":{"rendered":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/?p=1001"},"modified":"2026-08-30T22:37:09","modified_gmt":"2026-08-30T22:37:09","slug":"minecraft-server-without-lag-setup","status":"publish","type":"post","link":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/","title":{"rendered":"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Most Minecraft server lag is not caused by \u201ctoo many players\u201d or \u201cslow internet.\u201d It is caused by specific, measurable problems: incorrect JVM garbage collection settings, unoptimized world generation, excessive entity counts, and the wrong server software. These problems are all solvable with the right configuration and hardware. This guide walks you through a complete server setup\u2014from bare metal to 20 TPS\u2014that stays smooth even at 100+ players.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are still choosing hardware, <a href=\"https:\/\/bestdedicatedwebhostingserver.com\/#providers\">compare dedicated server plans with high single-core CPUs and fast NVMe storage<\/a> to find a configuration that matches your player count.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Choose the Right Server Software<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vanilla Minecraft server JAR is the baseline, but it is also the worst performer. For a lag-free server, use one of these:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Paper<\/strong> \u2014 The industry standard. Includes patch optimizations, redstone timings, and entity activation ranges that reduce CPU load by 40\u201360% compared to vanilla.<\/li><li><strong>Purpur<\/strong> \u2014 Paper fork with additional config options for lag reduction, including per-player mob spawns and tick-rates.<\/li><li><strong>Tuinity \/ Airplane<\/strong> \u2014 Optimized for larger servers. Airplane provides per-tick profiling built in.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Do not use Bukkit, CraftBukkit, or Spigot for new servers\u2014they are unmaintained and lack the performance patches of Paper and its forks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Configure JVM Flags for Lag-Free GC<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Garbage collection pauses are the single biggest cause of tick-rate stutter on Minecraft servers. The default JVM flags are optimized for desktop applications, not real-time game loops. Use these flags for a Paper\/Purpur server with 8\u201316 GB allocated:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>java -Xms8G -Xmx12G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \\\n     -XX:MaxGCPauseMillis=100 -XX:+UnlockExperimentalVMOptions \\\n     -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \\\n     -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 \\\n     -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 \\\n     -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \\\n     -XX:InitiatingHeapOccupancyPercent=15 \\\n     -XX:G1MixedGCLiveThresholdPercent=90 \\\n     -XX:G1RSetUpdatingPauseTimePercent=5 \\\n     -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem \\\n     -XX:MaxTenuringThreshold=1 \\\n     -jar paper.jar nogui<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These flags keep GC pauses under 50 ms even at 12 GB heap usage. The key settings are G1GC (pauses GC into predictable small windows) and InitiatingHeapOccupancyPercent=15 (starts GC early, avoiding large stop-the-world pauses).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Pre-Generate the World<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">World generation is the most expensive single operation in Minecraft. If a player explores to ungenerated chunks, the server must generate them on the fly, which causes visible lag spikes. Use a pre-generation plugin like Chunky to generate 10,000\u201350,000 blocks in all directions before you open the server to players. This completely eliminates exploration lag.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example Chunky command: <code>\/chunky radius 15000<\/code> then <code>\/chunky start<\/code>. On a modern dedicated server with NVMe, pre-generating a 15,000-block radius takes 2\u20134 hours. Run it overnight.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Tune paper.yml and spigot.yml<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Setting<\/th><th>Default<\/th><th>Recommended<\/th><th>Why<\/th><\/tr><\/thead><tbody><tr><td>entity-activation-range<\/td><td>32<\/td><td>16<\/td><td>Reduces CPU cost for distant entities<\/td><\/tr><tr><td>max-entity-collisions<\/td><td>8<\/td><td>2<\/td><td>Collision calculations are expensive at scale<\/td><\/tr><tr><td>mob-spawner-tick-rate<\/td><td>1<\/td><td>3<\/td><td>Spreads mob AI ticks across more server ticks<\/td><\/tr><tr><td>nerf-spawner-mobs<\/td><td>false<\/td><td>true<\/td><td>Stops spawner mobs from pathfinding<\/td><\/tr><tr><td>redstone-implementation<\/td><td>VANILLA<\/td><td>ALTERNATIVE<\/td><td>Alternative redstone uses 80% less CPU<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Apply these changes to paper.yml, restart the server, and monitor TPS in the console. Most servers see TPS stabilize at 20.0 (flat) after these changes alone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Size RAM Correctly for Your Player Count<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RAM allocation is a Goldilocks problem. Too little causes OOM crashes; too much forces the JVM to scan more memory during GC pauses, which creates lag. For a vanilla Paper server, allocate 1 GB per 10\u201320 players plus 2 GB for the OS and overhead. A 50-player server needs 6\u20138 GB of heap. A 200-player server needs 12\u201316 GB. For modded servers, multiply these numbers by 1.5\u20133x depending on the modpack. Never allocate more than 16 GB to a single Minecraft instance \u2014 beyond that, the GC overhead from sweeping a large heap causes more lag than the extra memory saves.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common Mistakes That Cause Lag<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Three mistakes consistently cause lag on otherwise well-configured servers. First, allowing unlimited mob spawns in spawn chunks. Set <code>spawn-chunk-mob-limit<\/code> to 0 in paper.yml to stop mobs from accumulating in the always-loaded spawn area. Second, running multiple heavy plugins that scan all players or all entities every tick \u2014 use a profiling plugin to identify which plugins are consuming the most tick time. Third, using the default <code>-Xmx<\/code> without <code>-Xms<\/code> set to the same value; the JVM wastes time reallocating heap regions when <code>Xms<\/code> is lower than <code>Xmx<\/code>. Always set both to the same number.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Monitor and Maintain<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use the <code>\/timings<\/code> command (Paper) to capture a 10-minute performance report. Upload the result to <code>timings.aikar.co<\/code> for analysis. Look for patterns: high entity tick time means too many mobs, high chunk tick time means ungenerated terrain, high memory usage means GC tuning is off. Address these one at a time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For hardware recommendations that match your target player count, <a href=\"https:\/\/bestdedicatedwebhostingserver.com\/\">visit our dedicated server comparison table<\/a> and filter by CPU single-core performance and RAM size.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A lag-free Minecraft server is not a myth. Pre-generate the world, tune your JVM, use Paper, and cap your entities. That combination delivers 20 TPS at 100+ players on a properly sized dedicated server, every time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most Minecraft server lag is not caused by \u201ctoo many players\u201d or \u201cslow internet.\u201d It is caused by specific, measurable problems: incorrect JVM garbage collection settings, unoptimized world generation, excessive&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":1,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1001","post","type-post","status-publish","format-standard","hentry","category-server-guides-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS - Best Dedicated Web Hosting Server Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS\" \/>\n<meta property=\"og:description\" content=\"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/\" \/>\n<meta property=\"og:site_name\" content=\"Best Dedicated Web Hosting Server Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-30T22:37:09+00:00\" \/>\n<meta name=\"author\" content=\"bestdedicatedwebhostingserver\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bestdedicatedwebhostingserver\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"bestdedicatedwebhostingserver\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/\",\"url\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/\",\"name\":\"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS - Best Dedicated Web Hosting Server Blog\",\"isPartOf\":{\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#website\"},\"datePublished\":\"2026-08-30T22:37:09+00:00\",\"author\":{\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#\/schema\/person\/6eb5f9ea35033fe8e67df44397e089b1\"},\"breadcrumb\":{\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#website\",\"url\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/\",\"name\":\"Best Dedicated Web Hosting Server Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#\/schema\/person\/6eb5f9ea35033fe8e67df44397e089b1\",\"name\":\"bestdedicatedwebhostingserver\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/462a07aa37399bdb149e5f91dc3cd8906656bc4c7ed391a3b6f0199c5d2ab964?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/462a07aa37399bdb149e5f91dc3cd8906656bc4c7ed391a3b6f0199c5d2ab964?s=96&d=mm&r=g\",\"caption\":\"bestdedicatedwebhostingserver\"},\"sameAs\":[\"https:\/\/bestdedicatedwebhostingserver.com\/blog\",\"https:\/\/x.com\/bestdedicatedwebhostingserver\"],\"url\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/author\/bestdedicatedwebhostingserver\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS - Best Dedicated Web Hosting Server Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/","og_locale":"en_US","og_type":"article","og_title":"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS","og_description":"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS","og_url":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/","og_site_name":"Best Dedicated Web Hosting Server Blog","article_published_time":"2026-08-30T22:37:09+00:00","author":"bestdedicatedwebhostingserver","twitter_card":"summary_large_image","twitter_creator":"@bestdedicatedwebhostingserver","twitter_misc":{"Written by":"bestdedicatedwebhostingserver","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/","url":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/","name":"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS - Best Dedicated Web Hosting Server Blog","isPartOf":{"@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#website"},"datePublished":"2026-08-30T22:37:09+00:00","author":{"@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#\/schema\/person\/6eb5f9ea35033fe8e67df44397e089b1"},"breadcrumb":{"@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/minecraft-server-without-lag-setup\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Set Up a Minecraft Server Without Lag: JVM Flags, Tick Rate, and Hardware That Deliver 20 TPS"}]},{"@type":"WebSite","@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#website","url":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/","name":"Best Dedicated Web Hosting Server Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#\/schema\/person\/6eb5f9ea35033fe8e67df44397e089b1","name":"bestdedicatedwebhostingserver","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/462a07aa37399bdb149e5f91dc3cd8906656bc4c7ed391a3b6f0199c5d2ab964?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/462a07aa37399bdb149e5f91dc3cd8906656bc4c7ed391a3b6f0199c5d2ab964?s=96&d=mm&r=g","caption":"bestdedicatedwebhostingserver"},"sameAs":["https:\/\/bestdedicatedwebhostingserver.com\/blog","https:\/\/x.com\/bestdedicatedwebhostingserver"],"url":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/author\/bestdedicatedwebhostingserver\/"}]}},"_links":{"self":[{"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/posts\/1001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/comments?post=1001"}],"version-history":[{"count":2,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/posts\/1001\/revisions"}],"predecessor-version":[{"id":1012,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/posts\/1001\/revisions\/1012"}],"wp:attachment":[{"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/media?parent=1001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/categories?post=1001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/tags?post=1001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}