How to install TShock plugins for Terraria
Drop plugin DLLs into ServerPlugins, check the .NET target before you install, and pick from a short list of plugins verified to run on TShock 6.1.
Check your TShock version before installing a plugin
TShock has changed runtime twice. TShock 5.0.0 (1 November 2022) moved the server to .NET 6, and its release notes state that "All plugins need updates to support .NET 6"; TShock 6.0.0 (8 March 2026) then moved to .NET 9 with OTAPI static hook changes. The current stable release is TShock v6.1.0 (11 March 2026, for Terraria 1.4.5.6), and an unmodified plugin build from before those changes will not load on it. Confirm the
.dllyou have targets your own TShock version, or pin the Server Version variable to a TShock release the plugin supports (see Maintaining your Terraria server), before you install it. Checked 19 August 2026.
TShock supports .dll plugins. Drop them in the ServerPlugins/ folder at the server root, then restart and check the console for the load message.
Installing a Plugin
Download the plugin's
.dll(and any config it ships).Upload it to
ServerPlugins/via SFTP. That folder already holdsTShockAPI.dll, so if you cannot find it, you are not at the server root.Upload the plugin's dependencies to the same folder. A plugin that lists a library and does not get it usually fails silently at startup rather than reporting a missing file.
Restart the server.
Confirm the load line in the console; configure the plugin's generated config file if it has one. Configs land in the
tshock/folder alongsideconfig.jsonandtshock.sqlite— not next to the DLL — and most plugins only write theirs after a successful first load. No config file usually means the plugin never loaded.
Check a Plugin Before You Upload It
TShock has changed runtime twice, and a plugin built for the wrong one does not warn you — it simply never appears in the console. You can settle this before you install anything by opening the plugin's source repository and reading its .csproj:
What the .csproj says |
What it means |
|---|---|
<TargetFramework>net9.0</TargetFramework> |
Built for .NET 9 — TShock 6.x |
<TargetFramework>net6.0</TargetFramework> |
TShock 5.x only. Will not load on 6.x |
net472 or netstandard2.0 |
TShock 4.x era — three runtimes out of date |
A pinned package reference is stronger still, because it names the exact API the plugin compiled against:
<PackageReference Include="TShock" Version="6.1.0" /> Two things look like evidence of maintenance but are not:
- A recent commit date. GitHub shows activity on any branch, so a repository can look busy while its default branch has not moved in months. And a commit from January or February 2026 still predates TShock 6.0.0 entirely, which shipped on 8 March 2026.
- A README badge. Several genuinely maintained projects still display ".NET 6" or "TShock 5.2" badges that were never updated after the move to .NET 9. Read the build files, not the badges.
Where to Find Plugins
- The official community list on the TShock wiki. It is short, and it is self-serve: TShock states plainly that it "does not evaluate the safety or security of individual plugins or maintainers at this time". Checked on 19 August 2026, three of its seven entries were still .NET 6 builds pinned to TShock 5.x and will not load on 6.x.
- The
tshock-plugintopic on GitHub, which is where most active development is now visible. - The TShock Discord, which the wiki points at for plugins that never got listed.
- The old
Pryaxis/Pluginsrepository is archived, and its own README says it is no longer regularly updated. Most of its entries declare compatibility with TShock 4.4.0. Treat it as history.
Plugins are tied to a TShock version
Match the plugin's TShock version to yours.
Plugins That Run on TShock 6.1
Every entry below was checked on 19 August 2026 by reading the project's build configuration, not its description.
The community collection
UnrealMultiple/TShockPlugin is the first entry on TShock's own wiki list and by a wide margin the largest body of current plugins — 137 of them, all built from one shared configuration that targets .NET 9 and pins TShock 6.1.0. Its release archive was rebuilt on 17 August 2026. It is a Chinese-language project; many plugins ship English translations, but not all of them do, so expect some Chinese in configs and console output.
Ones worth knowing about:
| Plugin | Version | What it does |
|---|---|---|
BetterWhitelist |
2.6.5 | Whitelist by player name |
HouseRegion |
1.0.5 | House and region protection |
PersonalPermission |
1.1.0.6 | Per-player permissions on top of TShock's groups |
SmartRegions |
1.4.8 | Run a command when a player enters a region |
Economics.Core |
3.0.0.0 | The economy API the nine Economics.* modules build on |
PvPer |
1.1.7 | PvP rules |
AutoClear |
1.2.0 | Sweeps dropped items off the ground |
AutoPluginManager |
2.1.0.3 | Browse, install and update the collection from in-game |
Several of these depend on LazyAPI, which in turn depends on linq2db. Install those first, or let AutoPluginManager handle it. Its commands sit behind the AutoUpdatePlugin permission: /apm l lists the repository, /apm s <keyword> searches it, and /apm i <list number> installs by the number shown in the list. Every install needs a server restart to take effect.
Standalone plugins
- SmartRegions — runs an arbitrary command when a player enters a region, so you can set a team, heal, or hand out items on entry. Its 15 March 2026 release is titled "Compatible with TShock 6.1".
- BackTP — saves a player's position before a teleport and returns them with
/back. Released 25 April 2026, and the TShock wiki records it as tested on 6.1.0.
Plugin names that circulate but do not exist
Several names passed around in older guides have no TShock project behind them at all.
WhitelistPlusis a Minecraft plugin.InvisibleHandis a RimWorld mod.CTRLandPermissions++return nothing.PvPControlleris real, but its last release was in 2018. AndEconomicsAPIis a namespace other plugins reference in their docs, not something you can download — the plugin itself isEconomics.Core. If a name turns up no source repository, there is nothing to install, and a DLL offered under that name from elsewhere is not something to put on a live server.
Common Issues
- The plugin never appears in the console at startup. Almost always the wrong runtime. Check the
.csprojtarget as above — a TShock 5.x build will not load on 6.x, and it fails quietly. - It loads, but writes no config. Look in
tshock/, not next to the DLL. If nothing is there after a clean restart, the plugin did not finish loading. - It worked, then stopped after a TShock update. Expect this at every major version. Pin the Server Version variable to the TShock release the plugin supports until an updated build appears, and see Maintaining your Terraria server.
- A dependency is missing. Libraries such as
LazyAPIgo inServerPlugins/alongside the plugin that needs them, not in a subfolder.
What to Read Next
- TShock Setup for the groups and permissions these plugins hook into
- Maintaining your Terraria server to back up before adding plugins
- Terraria server commands for the console and chat commands plugins extend
- AutoBroadcast in-depth guide and PermaBuffs in-depth guide for two plugins covered end to end
Made with 💜 by GameServerKings

Need a Terraria server?
Deploy an instantly-provisioned Terraria server on high-clock hardware — DDoS protected, no contracts, cancel anytime.
From $6.40 /month