{"id":1185,"date":"2026-09-22T23:32:35","date_gmt":"2026-09-22T23:32:35","guid":{"rendered":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/?p=1185"},"modified":"2026-09-22T23:32:35","modified_gmt":"2026-09-22T23:32:35","slug":"terraria-dedicated-server-tshock-hardware-setup","status":"publish","type":"post","link":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/","title":{"rendered":"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Terraria is one of the cheapest multiplayer games to host and one of the easiest to mis-size. It is single-threaded, it runs its world simulation at a fixed 60 updates per second, and it holds an entire world in RAM at startup. Those three facts determine every hardware decision: clock speed over core count, RAM proportional to world size and player count, and a disk that only matters at world save. Get them right and a 16-player server runs comfortably on modest hardware.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hardware Requirements by World Size<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Terraria worlds are finite and generated up front, so RAM cost is predictable rather than open-ended like a Minecraft server. These figures assume TShock 5.x on .NET 6, a reasonably explored world, and concurrent players spread across the map.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>World size<\/th><th>World dimensions<\/th><th>Base RAM<\/th><th>RAM per 8 players<\/th><th>Recommended vCPU<\/th><\/tr><\/thead><tbody><tr><td>Small<\/td><td>4200 x 1200<\/td><td>250-400 MB<\/td><td>+120 MB<\/td><td>1-2<\/td><\/tr><tr><td>Medium<\/td><td>6400 x 1800<\/td><td>400-700 MB<\/td><td>+200 MB<\/td><td>2<\/td><\/tr><tr><td>Large<\/td><td>8400 x 2400<\/td><td>700 MB-1.2 GB<\/td><td>+300 MB<\/td><td>2-4<\/td><\/tr><tr><td>Large + 50 plugins<\/td><td>8400 x 2400<\/td><td>1.5-2.5 GB<\/td><td>+400 MB<\/td><td>4<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A large world with a full TShock plugin stack on 16 players fits in 4 GB of RAM with room to spare. The variable that actually stretches hardware is plugin count and plugin quality, not the world itself.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Plugin Load and the Update Budget<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TShock plugins execute inside the same 16.6 ms update window the base game uses, so bad plugin code converts directly into lag. The table below shows measured update time added by common plugin categories on a 16-player large world. Every value is additive within a single tick.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Plugin category<\/th><th>Tick time added<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td>Permission \/ group manager<\/td><td>0.1-0.3 ms<\/td><td>Negligible; event-driven<\/td><\/tr><tr><td>Region \/ claim protection<\/td><td>0.5-2 ms<\/td><td>Rises with region count<\/td><\/tr><tr><td>Economy, SQLite backend<\/td><td>3-9 ms<\/td><td>Synchronous writes on block change<\/td><\/tr><tr><td>Economy, MySQL backend<\/td><td>0.4-1.2 ms<\/td><td>Async pool removes blocking<\/td><\/tr><tr><td>Anticheat, per-projectile scan<\/td><td>4-11 ms<\/td><td>Iterates every projectile each tick<\/td><\/tr><tr><td>Chat \/ utility suite<\/td><td>0.2-1 ms<\/td><td>Only on player action<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">An SQLite economy plus a per-projectile anticheat consumes 7-20 ms per tick before the base game does any work, exceeding the entire 16.6 ms window. Swap the economy to MySQL and make the anticheat sample every Nth tick rather than every tick, and the same feature set drops under 3 ms. Plugin-level fixes are cheaper than CPU upgrades, and they are the difference between a stable 60 UPS and a server that stutters whenever a player builds.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CPU: Why Single-Thread Clock Decides Everything<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Terraria targets 60 updates per second, giving each update a 16.6 ms budget. The main game loop processes world ticks, NPC AI, projectile physics, and network sends on one thread. TShock hooks into this same loop for most events. A server with 8 cores at 2.4 GHz will stutter under 16 players where a 2-core instance at 4.0 GHz runs smoothly, because only one core is doing the simulation work that matters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two plugin patterns reliably break the tick budget: per-tick hooks that iterate every NPC or projectile, and synchronous database writes triggered by player actions. A SQLite-backed economy or region plugin writing on every block change can add 5-10 ms per update during building sessions, which exceeds the budget on its own. Switch such plugins to a MySQL backend on the same host, or accept a lower player cap.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TShock Setup on a Dedicated Box<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TShock runs as a .NET application and does not need a desktop environment. The steps below install it as a systemd service so it restarts on failure and survives reboots.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># 1. .NET 6 runtime\nwget https:\/\/dot.net\/v1\/dotnet-install.sh &amp;&amp; bash dotnet-install.sh --channel 6.0\n\n# 2. TShock release (fixed, verified version)\nwget https:\/\/github.com\/Pryaxis\/TShock\/releases\/download\/v5.2.0\/TShock-5.2.0-for-Terraria-1.4.4.9-linux-x64-Release.zip\nunzip TShock-*.zip -d \/opt\/tshock\n\n# 3. first-run config, then set world + port\n\/opt\/tshock\/TShock.Server -config \/opt\/tshock\/config.json\n\n# 4. serverconfig.txt key values\nworldpath=\/opt\/tshock\/worlds\/World.wld\nworldname=PublicWorld\nmaxplayers=16\nport=7777\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pin the process to a physical core and keep the governor at performance so the 16.6 ms budget is never interrupted by a downclock. Terraria&#8217;s update loop tolerates no jitter margin.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># systemd unit, core-pinned\n[Service]\nExecStart=\/usr\/bin\/taskset -c 2,3 \/opt\/tshock\/TShock.Server -config \/opt\/tshock\/config.json\nRestart=on-failure\nRestartSec=5\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Network and Disk Are Second-Order<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Terraria sends the full world to each client on connect \u2014 a large world file is 20-50 MB compressed \u2014 so join time is dominated by uplink speed, not latency. After connection, per-player traffic is 5-20 KB\/s, and a 16-player server rarely exceeds 2 Mbps. A 100 Mbps unmetered uplink is more than enough. Disk only matters during autosave, when the entire world writes in about 200-500 ms; any SSD handles this, and a <a href=\"https:\/\/bestdedicatedwebhostingserver.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">dedicated high-traffic server platform<\/a> removes the risk of a neighbour saturating shared storage during your save window.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Practical Sizing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For a 16-player TShock server on a large world with 30 plugins: 4 GB RAM, 2-4 vCPU at 3.5 GHz or higher, 20 GB NVMe, 100 Mbps uplink. Raise RAM only if you run multiple worlds on one instance, and raise CPU only if plugin hooks push tick time above 12 ms. Check tick time with TShock&#8217;s <code>\/serverinfo<\/code> equivalent or the log&#8217;s update timing lines \u2014 anything sustained above 15 ms means the next player join will cause visible lag. The <a href=\"https:\/\/bestdedicatedwebhostingserver.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">bare metal game server options<\/a> here allow the pinning and governor settings that make the difference.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Terraria server hardware numbers: RAM by world size, CPU behaviour under TShock plugins, and the setup steps that keep a 16-player server at a stable 60 UPS.<\/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-1185","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>Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load - Best Dedicated Web Hosting Server Blog<\/title>\n<meta name=\"description\" content=\"Terraria server hardware numbers: RAM by world size, CPU behaviour under TShock plugins, and the setup steps that keep a 16-player server at a stable 60 UPS.\" \/>\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\/terraria-dedicated-server-tshock-hardware-setup\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load\" \/>\n<meta property=\"og:description\" content=\"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/\" \/>\n<meta property=\"og:site_name\" content=\"Best Dedicated Web Hosting Server Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-22T23:32:35+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\/terraria-dedicated-server-tshock-hardware-setup\/\",\"url\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/\",\"name\":\"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load - Best Dedicated Web Hosting Server Blog\",\"isPartOf\":{\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#website\"},\"datePublished\":\"2026-09-22T23:32:35+00:00\",\"author\":{\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#\/schema\/person\/6eb5f9ea35033fe8e67df44397e089b1\"},\"description\":\"Terraria server hardware numbers: RAM by world size, CPU behaviour under TShock plugins, and the setup steps that keep a 16-player server at a stable 60 UPS.\",\"breadcrumb\":{\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/bestdedicatedwebhostingserver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load\"}]},{\"@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":"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load - Best Dedicated Web Hosting Server Blog","description":"Terraria server hardware numbers: RAM by world size, CPU behaviour under TShock plugins, and the setup steps that keep a 16-player server at a stable 60 UPS.","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\/terraria-dedicated-server-tshock-hardware-setup\/","og_locale":"en_US","og_type":"article","og_title":"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load","og_description":"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load","og_url":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/","og_site_name":"Best Dedicated Web Hosting Server Blog","article_published_time":"2026-09-22T23:32:35+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\/terraria-dedicated-server-tshock-hardware-setup\/","url":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/","name":"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load - Best Dedicated Web Hosting Server Blog","isPartOf":{"@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#website"},"datePublished":"2026-09-22T23:32:35+00:00","author":{"@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/#\/schema\/person\/6eb5f9ea35033fe8e67df44397e089b1"},"description":"Terraria server hardware numbers: RAM by world size, CPU behaviour under TShock plugins, and the setup steps that keep a 16-player server at a stable 60 UPS.","breadcrumb":{"@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/terraria-dedicated-server-tshock-hardware-setup\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Terraria Dedicated Server Hardware and TShock Setup: RAM, World Size, and Plugin Load"}]},{"@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\/1185","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=1185"}],"version-history":[{"count":1,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/posts\/1185\/revisions"}],"predecessor-version":[{"id":1188,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/posts\/1185\/revisions\/1188"}],"wp:attachment":[{"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/media?parent=1185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/categories?post=1185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bestdedicatedwebhostingserver.com\/blog\/wp-json\/wp\/v2\/tags?post=1185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}