TShock Versions Save

☕️⚡️TShock provides Terraria servers with server-side characters, anti-cheat, and community management tools.

v5.2.0

1 year ago

Welcome to TShock for Terraria 5.2 with support for Terraria 1.4.4.9. This is, of course, also on nuget, but it may take up to an hour to appear.

Before installing, make a complete backup of your existing server and all files and folders, including tshock.sqlite and the tshock folder. We are not responsible for failed installations. Please make sure you backup your data. Severe data loss or gain may occur.

This release was requested by @drunderscore! Thank you so, so much for reaching out to get an update.

Notable changes in this release

  • An additional option pvpwithnoteam is added at PvPMode to enable PVP with no team. (@CelestialAnarchy, #2617, @ATFGK)
  • Corrected and updated deserialization of the following packets (@ATFGK):
    • ProjectileNew: Read the third AI value.
      • Before this change, it was previously possible for the projectile damage limit to falsely trigger, such as when using the Terra Balde and Fire Gauntlet together.
    • PlayerSpawn: Read the NumberOfDeathsPVE and NumberOfDeathsPVP values.
      • Before this change, the PlayerSpawnContext was always read incorrectly, due to the values above being placed in the middle of the existing structure.
    • NpcTeleportPortal: Read the NPC index as a ushort instead of a byte.
    • PlaceObject: Read the Random value.
      • Before this change, the Direction was always read incorrectly, due to the value above being placed in the middle of the existing structure.
    • Zones: Read the zone5 value.
    • PaintTile and PaintWall: Read the coatTile and coatWall values.
    • PlayerHurtV2: Read the cooldownCounter value.
  • Updated SpawnMsg to include the NumberOfDeathsPVE and NumberOfDeathsPVP, and allow them to be optionally used in TSPlayer.Spawn. (@ATFGK)
  • Added WorldTileProvider to the tshock config with values default, constileation or heaptile. This allows tile providers to be changed in environments where CLI args cannot be altered. See the documentation website for more info about these providers. (@SignatureBeef)
  • Updated the Utils.FindByIdOrName to follow same logic. Now fuzzy match fallback to StartsWith and then Contains. (@sgkoishi)
  • Added ShadowCandle and BrainOfConfusionBuff (BoC dodge buff) to the PlayerAddBuffWhitelist (@drunderscore)
  • Improved rejection message and code duplication in OnPlayerBuff. (@drunderscore)
    • This will make it so Bouncer rejections regarding PlayerAddBuff will now always include the sender index, buff type, receiver index, and time in ticks, allowing much faster triage of buff whitelist issues.
  • Allowed Digging Molecart and bomb fish to break tiles and place tracks. (@sgkoishi)
  • Added built-in package management capabilities for plugins. (@pontaoski)
  • Fixed Super Sponge unable to absorb shimmer. (@sgkoishi, #2833)
  • Increased whitelisted duration of the Mighty Wind (WindPushed) buff (from sandstorms). (@drunderscore)
  • Allowed the Hellfire (OnFire3) buff. (@drunderscore)
  • Allowed Digging Molecart and bomb fish to break tiles and place tracks (@sgkoishi)
  • Initialized achievements and the AchievementManager on the server. This ensures that players cannot cause exceptions to be thrown, chat messages are always logged, and allows achievement names to be localized in the console. Also added a test case for this. (@drunderscore)
  • Allowed multiple test cases to be in TShock's test suite. (@drunderscore)
  • Fixed unable to use Purification/Evil Powder in jungle. (@sgkoishi)
  • Set the GetDataHandledEventArgs.Player property for the SyncTilePicking data handler. (@drunderscore)
  • Relaxed custom death message restrictions to allow Inferno potions in PvP. (@drunderscore)
  • Allowed Flower Boots to place Ash Flowers on Ash Grass blocks. (@punchready)
  • Removed unnecessary range check that artifically shortened quick stack reach. (@boddyn, #2885, @bcat)
  • Improved the exploit protection in tile rect handling. (@punchready)
  • Additional translation updates via Crowdin contributors from the past several months.

Upgrading

Before installing, make a complete backup of your existing server and all files and folders, including tshock.sqlite and the tshock folder. We are not responsible for failed installations. Please make sure you backup your data. Severe data loss or gain may occur.

To upgrade TShock, replace all of the files in the location of your server installation with all of the files from the release zip we provide. Overwrite all files. No data will be lost.

Special note: the arm (x86) version is not provided. Due to serious issues with these versions that make TShock work sub-optimally, we don't suggest them anymore.

v5.1.3

1 year ago

Welcome to TShock for Terraria 5.1.3 with support for Terraria 1.4.4.9. This is, of course, also on nuget.

Before installing, make a complete backup of your existing server and all files and folders, including tshock.sqlite and the tshock folder. We are not responsible for failed installations. Please make sure you backup your data. Severe data loss or gain may occur.

Notable changes in this release

  • Added support for Terraria 1.4.4.9 via OTAPI 3.1.20. (@SignatureBeef)

Upgrading

Before installing, make a complete backup of your existing server and all files and folders, including tshock.sqlite and the tshock folder. We are not responsible for failed installations. Please make sure you backup your data. Severe data loss or gain may occur.

To upgrade TShock, replace all of the files in the location of your server installation with all of the files from the release zip we provide. Overwrite all files. No data will be lost.

v5.1.2

1 year ago

Welcome to TShock for Terraria 5.1.2 with support for Terraria 1.4.4.8.1. This is, of course, also on nuget.

Before installing, make a complete backup of your existing server and all files and folders, including tshock.sqlite and the tshock folder. We are not responsible for failed installations. Please make sure you backup your data. Severe data loss or gain may occur.

Notable changes in this release

  • Added support for Terraria 1.4.4.8.1 via OTAPI 3.1.19. (@SignatureBeef)

Notable changes in the last release

  • Fixed item giving potentially dropping too many items. (@PotatoCider, @punchready)
  • Excluded GeoIP.dat from release bundle. (@SignatureBeef)
  • Added TownSlimeRed to FishableNpcIDs list, allowing it to be fished up. (@drunderscore)
  • Bump to Terraria 1.4.4.8 via OTAPI 3.1.18. (@hakusaro, @SignatureBeef)
    • In this version of Terraria, Main.maxBuffTypes and other maxWhateverTypes fields have been removed. Their replacements are in Terraria.ID.whateverID.Count. TShock calls to these fields have been swapped in order to bring forward compatibility with Terraria 1.4.4.8.
  • In OTAPI 3.1.17, allowed Crystal Shard to grow. (@sgkoishi, @cc004, SignatureBeef/Open-Terraria-API#96)
  • Added permission for summoning Mechdusa, Deerclops and slime pet. (@sgkoishi, #2808)
  • Changed login to only restrict CC'd players during login whilst SSC is enabled. (@drunderscore)
    • This change allows the config option RequireLogin to function usefully again when SSC is not enabled.
  • Changed PlayerData.RestoreCharacter to remove all buffs. (@drunderscore)
    • Before this change, it was theoretically possible to smuggle buffs onto servers with SSC enabled, by using buff indexes past 22.
  • Allowed Torch God's Favor to place different types of torches and campfires. (@sgkoishi, #2811)
  • Updated translations! Currently, the major projects are at the following completion rates:
    • Chinese (93%)
    • Portuguese, Brazilian (89%)
    • Indonesian (89%)
    • Russian (56%)
    • Spanish (24%)
    • toki pona (10%)
    • Turkish (8%)
    • For complete credits, see the table below.

Translation credits

The following translators contributed changes from November 1, 2022 to November 9, 2022 (from TShock 5.0.0 to 5.1.0).

Contributor Language Translated words
Shiva Goddess (ShivaGoddess) Portuguese, Brazilian 6979
Ricko (Rickojp) Portuguese, Brazilian 3154
RidnRaven (ridwankun2) Indonesian 2329
Janet Blackquill (pontaoski) toki pona 1216
SGKoishi Chinese Simplified 640
Cristofer GamerTVH (cristoferherame) Spanish 622
HDSeventh (hdseventh) Indonesian 315
EMRE ÇELİK (emre0447) Turkish 312
PHPoenX Russian 297
./lemon.sh (lemon-sh) Polish 206
Сергей Червяков (chsergeyg) Russian 182
okaythisisepic Russian 80
KomashiOFC Portuguese, Brazilian 76
Runesicle toki pona 22
Marotheit Pirate English 7
ATFGK Chinese Simplified 4

Upgrading

Before installing, make a complete backup of your existing server and all files and folders, including tshock.sqlite and the tshock folder. We are not responsible for failed installations. Please make sure you backup your data. Severe data loss or gain may occur.

To upgrade TShock, replace all of the files in the location of your server installation with all of the files from the release zip we provide. Overwrite all files. No data will be lost.

v5.1.1

1 year ago

Welcome to TShock for Terraria 5.1.1 with support for Terraria 1.4.4.8.

Before installing, make a complete backup of your existing server and all files and folders, including tshock.sqlite and the tshock folder. We are not responsible for failed installations. Please make sure you backup your data. Severe data loss or gain may occur.

Data loss warning

If you use server-side characters, we recommend enabling login before join. We discovered a bug that existed in the 5.0.0 release just before this release. If a player is disabled by TShock before they login, a situation can occur where all SSC data is erased. We suggest alerting your users to this fact and telling them not to login if they're disabled. If they do this, they may lose all character data in the database. Alternatively, enable login before join.

We hope to fix this in the future but we learned that this bug is present in 5.0.0 and therefore, not a blocker for this release for Terraria compatibility reasons.

Notable changes in this release

  • Fixed item giving potentially dropping too many items. (@PotatoCider, @punchready)
  • Excluded GeoIP.dat from release bundle. (@SignatureBeef)
  • Added TownSlimeRed to FishableNpcIDs list, allowing it to be fished up. (@drunderscore)
  • Bump to Terraria 1.4.4.8 via OTAPI 3.1.18. (@hakusaro, @SignatureBeef)
    • In this version of Terraria, Main.maxBuffTypes and other maxWhateverTypes fields have been removed. Their replacements are in Terraria.ID.whateverID.Count. TShock calls to these fields have been swapped in order to bring forward compatibility with Terraria 1.4.4.8.
  • In OTAPI 3.1.17, allowed Crystal Shard to grow. (@sgkoishi, @cc004, SignatureBeef/Open-Terraria-API#96)
  • Added permission for summoning Mechdusa, Deerclops and slime pet. (@sgkoishi, #2808)
  • Changed login to only restrict CC'd players during login whilst SSC is enabled. (@drunderscore)
    • This change allows the config option RequireLogin to function usefully again when SSC is not enabled.
  • Changed PlayerData.RestoreCharacter to remove all buffs. (@drunderscore)
    • Before this change, it was theoretically possible to smuggle buffs onto servers with SSC enabled, by using buff indexes past 22.
  • Allowed Torch God's Favor to place different types of torches and campfires. (@sgkoishi, #2811)
  • Updated translations! Currently, the major projects are at the following completion rates:
    • Chinese (93%)
    • Portuguese, Brazilian (89%)
    • Indonesian (89%)
    • Russian (56%)
    • Spanish (24%)
    • toki pona (10%)
    • Turkish (8%)
    • For complete credits, see the table below.

Translation credits

The following translators contributed changes from November 1, 2022 to November 9, 2022 (from TShock 5.0.0 to 5.1.0).

Contributor Language Translated words
Shiva Goddess (ShivaGoddess) Portuguese, Brazilian 6979
Ricko (Rickojp) Portuguese, Brazilian 3154
RidnRaven (ridwankun2) Indonesian 2329
Janet Blackquill (pontaoski) toki pona 1216
SGKoishi Chinese Simplified 640
Cristofer GamerTVH (cristoferherame) Spanish 622
HDSeventh (hdseventh) Indonesian 315
EMRE ÇELİK (emre0447) Turkish 312
PHPoenX Russian 297
./lemon.sh (lemon-sh) Polish 206
Сергей Червяков (chsergeyg) Russian 182
okaythisisepic Russian 80
KomashiOFC Portuguese, Brazilian 76
Runesicle toki pona 22
Marotheit Pirate English 7
ATFGK Chinese Simplified 4

Upgrading

Before installing, make a complete backup of your existing server and all files and folders, including tshock.sqlite and the tshock folder. We are not responsible for failed installations. Please make sure you backup your data. Severe data loss or gain may occur.

To upgrade TShock, replace all of the files in the location of your server installation with all of the files from the release zip we provide. Overwrite all files. No data will be lost.

Note about version 5.1.0

TShock version mastering occurs as the last step in the release process. When we cut a new version, we expect to release that version and all changes made prior to the version being cut. Unfortunately, a late-breaking bug with new internationalization changes between 5.0.0 and 5.1.0 was discovered after 5.1.0 was mastered. Therefore, we opted to tick the version again after fixing the bug, and we mastered this release instead. No download for 5.1.0 will be made available, nor will a release.

v5.0.0

1 year ago

Welcome to TShock for Terraria version 5! This version adds support for Terraria 1.4.4.7, a brand new internationalization/localization/translation system from (@pontaoski), support for .NET 6, OTAPI 3, and a whole host of new features.

Before installing, make a complete backup of your existing server and all files and folders, including tshock.sqlitedb and the tshock folder. We are not responsible for failed installations. Please make sure you backup your data. Severe data loss or gain may occur.

BIG WARNING

This version of TShock is "relatively safe" to use. We cannot guarantee perfect code, accuracy, or completeness of this version.

Back up your server and back up all of the associated files before you install this version.

This software is free software, and the GPL v3 (i.e., our license) states:

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

Notable changes in this release

  • Reduced load/save console spam. (@SignatureBeef, @YehnBeep)
  • Replaced SQLite library with Microsoft.Data.Sqlite for arm64 support. (@SignatureBeef)
  • Initial support for MonoMod hooks on Raspberry Pi (arm64). (@kevzhao2)
  • Ported to OTAPI3 and .NET6. (@SignatureBeef)
  • Introduced a new module framework for TShock developers. (@SignatureBeef)
  • Fixed a secondary crash when server init fails and log services were not initialised. (@SignatureBeef)
  • Added preliminary support for Terraria 1.4.4.4. (@SignatureBeef)
  • GrassSpreadEventArgs Color property has been changed from a Byte to a TileColorCache type. (@SignatureBeef)
  • SetDefaultsEventArgs now includes a nullable ItemVariant instance. (@SignatureBeef)
  • Use a string interpolation and escape single quotes when escaping tables. (@drunderscore)
  • Removed obsolete resource files TShockAPI/Resources.resx and TShockAPI/Resources.Designer.cs. (@Arthri)
  • Fixed hardcore and mediumcore not banning on death when settings are enabled. This also alters the TSPlayer.Ban method to remove the force option which is no longer needed. (@SignatureBeef)
  • Plugins and ./bin dependencies are now loaded relative to the launcher, this improves the use of startup files. (@SignatureBeef)
  • Added preliminary support for Terraria 1.4.4.5. (@drunderscore)
    • For clarity sake, we're listing the individual changes to Terraria's version, despite the fact that this version only supports the latest one.
  • Don't allow players to sync loadout index whilst disabled. (@drunderscore)
  • Fixed painting wall/tile being rejected from hand of creation. (@Rozen4334)
  • Added a second Utils.TryParseTime method for parsing large, positive time spans. (@punchready)
  • Fixed /tempgroup breaking on durations greater than roughly 24 days. (@punchready)
  • Fixed player not being checked for permissions to use the Shellphone (Ocean), Shellphone (Underworld) and Shellphone (Spawn). (@hufang360)
  • Updated to OTAPI 3.1.10-alpha, which allows FreeBSD .NET 6 to use Re-Logic's Linux platform. (@SignatureBeef)
  • Updated Github CI to not tarball files for Windows only. (@PotatoCider)
  • Allow Blood Butcherer and Shimmer buffs to be applied to NPCs by players. (@drunderscore)
  • In OTAPI 3.1.11-alpha, chest stacking was fixed. (@SignatureBeef)
  • In OTAPI 3.1.12-alpha, "server world deletions" were fixed. (@SignatureBeef)
  • Fixed NetTile errors by implementing new packet read/write data. (@SignatureBeef)
  • Fixed Inferno Fork causing kick from rejected abnormal buff. (@Stealownz)
  • Prevented Server Broadcast from executing without a message. (@PackmanDude, @punchready)
  • Added LiquidType.Shimmer. (@drunderscore)
  • Made Bouncer allow Bottomless Honey Bucket usage. (@drunderscore)
  • Made Bouncer reject Shimmer placement without bucket or whilst banned. (@drunderscore)
  • Fixed Bouncer rejecting Explosive Bunny critter release when using the Bunny Cannon, if the player had since stopped selecting the Explosive Bunny. (@drunderscore)
  • Allowed breaking of tiles that are in BreakableWhenPlacing set. This will allow you to place tiles over other tiles (like piles) properly, without being rejected. (@drunderscore)
  • Allowed the Axe of Regrowth and the Rubblemaker to pass Bouncer checks. (@drunderscore)
    • The Axe of Regrowth places a Saplings where a tree used to be, which previously failed.
    • The Rubblemaker places rubble (which are echo piles), of varying styles, which previously failed.
  • Fixed HandlePlayerAddBuff data handler always being marked as Handled, and therefore never allowing the PlayerAddBuff to be sent to anyone. (@drunderscore)
  • Improved OnPlayerBuff logic to properly handle players adding buffs to other players. (@drunderscore)
    • Check if the target ID is within bounds as the first thing to check.
    • Check if the buff type being applied is within bounds.
    • Introduce AddPlayerBuffWhitelist (replacing WhitelistBuffMaxTime), which allows us to specify the maximum amount of ticks a buff can be applied for, and if it can be applied without the target being in PvP.
    • When rejecting from OnPlayerBuff, instead of sending a PlayerAddBuff packet with the rejected buff (essentially a no-op, as the sender implicitly applies the buff to the target, and causes desync as the buff was rejected), send a PlayerBuff to re-sync the target's buffs, without the buff we just rejected.
  • Added new tile provider. Use -constileation or -c to use it. Constileation is an alternative tile provider to Tiled and HeapTile. (@SignatureBeef)
  • Fixed an exploit with grass mowing not removing hanging vines. (@punchready)
  • Added -additionalplugins command line argument to load additional plugins. (@pontaoski)
  • Added localization support for console spam reduction. (@KawaiiYuyu)
  • Added an internationalization system. The base for the i18n system was built by Janet Blackquill (@pontaoski). A small donation in her honor was made to the KDE project as a thankyou for this work. This also includes the TSHOCK_LANGUAGE environment variable. Setting TSHOCK_LANGUAGE=tok will enable a small number of Toki Pona translations as a proof-of-concept. (@pontaoski)
  • Added support for Terraria 1.4.4.6, through OTAPI 3.1.5. (@SignatureBeef)
  • Added GeoIP.dat back to the included list of files. (@SignatureBeef)
  • Allow loadouts to properly sync by allowing the SyncLoadout packet during early connection. (@drunderscore)
  • Introduced support for loadouts, and saving the current loadout index to SSC. Both NetItem and PlayerData were modified to support this. (@drunderscore)
  • Introduced checking of loadout slots for hacked item stacks. (@drunderscore)
  • Fixed players being kicked after using the Flamethrower to apply the OnFire3 debuff for 1200 ticks. (@BashGuy10)
  • Fixed being kicked for using the new sponge types on liquid. (@BashGuy10)
  • Fixed SSC not saving ateArtisanBread, usedAegisCrystal, usedAegisFruit, usedArcaneCrystal, usedGalaxyPearl, usedGummyWorm, usedAmbrosia, unlockedSuperCart, and enabledSuperCart data flags. (@hufang360)
  • Allowed flask buffs to be applied on town npc due to the Flymeal. Add a permission could skip the buff detection. (@KawaiiYuyu)
  • Dockerized TShock. (@PotatoCider)
  • Changed the log system to log the command itself without arguments if the command is not DoLog. (@sgkoishi, #2779)
  • Added ability for items given to players to be inserted directly into their inventory instead of spawned as an item drop. (@pontaoski)
  • Added support of -lang and -language flags for our i18n system. (@KawaiiYuyu)
  • Added support for Terraria 1.4.4.7 (OTAPI 3.1.16). (@drunderscore)
  • Added support for various languages, most notably Chinese (99% complete), Russian (57% complete), Indonesian (53% complete), and Spanish (21% complete). Thank you to the lovely contributors who were responsible for this on Crowdin:
    • RidnRaven (ridwankun2)
    • okaythisisepic
    • xml3344 has stopped making trouble (1212122222)
    • Axeel (AxeelAnder)
    • SGKoishi
    • Leader-txt (Leader_txt)
    • Esteban Delgado (Kojirremer)
    • Cai233
    • Anzhelika (AnzhelikaO)
    • VariolaX
    • hufang 360 (hufang360)
    • AgaSpace (Zoom L1) (agaspacel1)
    • Killia0 (Killia)
    • EMRE ÇELİK (emre0447)
    • Marcus Persson (squidistaken)
    • StarCloud-cy
    • HDSeventh (hdseventh)
    • JJJJGGGG12345
    • xml3344
    • Seele Vollerei (aaa1115910)
    • 问心|MiaoVPS (WenXin_MiaoVPS)
    • avlensa
    • Sykhasamann (Syks)
    • AndPlay
    • TruffleToad
    • kuaizhi
    • Simone Caporale (caporalesimone)
    • josefcorosado
    • kuukiman
    • Kronex (Kronex6)
    • Jifeng
    • Janet Blackquill (pontaoski)
    • Yuiinar (Yuiinars)
    • Muteduanxing

Upgrading

Download the correct version of TShock for your operating system and architecture. If you're not on Windows, extract the tar archive inside the zip archive, which was created to preserve filesystem permissions.

If you're using Windows 10 or earlier, or another operating system, install the latest version of .NET 6.

If you're upgrading from TShock 4, we suggest downloading the new release of TShock, copying the tshock configuration folder over (containing the sqlitedb file as well as the json configuration files, etc) to the new server, and starting the new server that way. This is because many files are removed and the existing files are no longer required from TShock 4. In addition, the new binary you need to run is called TShock.Server.exe or TShock.Server, not TerrariaServer.exe.

In addition, you no longer need to install mono-complete or mono on non-Windows operating systems.

Upgrading plugins

All plugins need updates to support .NET 6.

If you're a developer, use the upgrade assistant from .NET to upgrade to .NET 6. This release also coincides with TShock 5.0.0 on nuget and TSAPI 5.0.0 on nuget.

Updated documentation

Updated documentation for updating or installing TShock is now available on the TShock website. The README.md file on github now corresponds with developer instructions. You'll find that developing TShock is significantly easier on OTAPI 3.

The documentation on readme.io is now considered deprecated. As we work to migrate all documentation to our new service, we will eventually remove or replace readme.io's documentation entirely.

Finding plugins

As we work on a new solution for finding plugins, we'd like to draw attention to the fact that as of December 31, 2021, @hakusaro is no longer approving new plugins on https://github.com/Pryaxis/Plugins. As an alternative, we suggest using plugins that you know you trust from trusted developers, available on GitHub. In addition, we have a Discord "forum" setup for discussing plugins already. To see this, join Discord. If you speak Chinese, we suggest using this fancy plugin repository. If you want to setup or operate a plugin directory, please let us know. We'd be more than happy to link-to and support your efforts.

Questions?

If you have questions, please ask in the release discussion or on Discord. We're sure there will be lots of them. Please ask away.

v4.5.18

1 year ago

This version of TShock for Terraria adds updated and improved handling of SendTileRectangle packets. The previous approach acted on a "denylist" basis. That is to say, it attempted to parse out which actions were invalid, and denied based on patterns that matched that. Based on a cheating client that was recently released, @punchready implemented an alternative system, based on an allowlist approach. This approach, in contrast to the prior approach, only permits SendTileRectangle placements that specifically exist in the game, based on hand-analysis of the game logic. If you encounter any normal gameplay situations that render these fixes problematic, please send us a report. This should dramatically increase serverside security and prevent a host of exploits affecting TShock. Also included in this patch is a fix for an exploit that allowed users to place ice tiles in protected regions. This was revealed by a cheat developer to be a method for griefing some public servers with spawn protection.

Notable changes in this version

  • Fixed TSPlayer.GiveItem not working if the player is in lava. (@gohjoseph)
  • Only allow using Teleportation Potions, Magic Conch, and Demon Conch whilst holding them. (@drunderscore)
  • Updated server startup language to be more clear when encountering a fatal startup error. Now, the server gives more context as to what happened so that there's a better chance of people being able to help themselves. (@hakusaro)
  • Added -worldevil <type> command line argument (@NotGeri)
  • Added PlayerHasBuildPermission hook to PlayerHooks. (@AnzhelikaO, @Killia0)
  • Fixed an exploit in which the Ice Block deletion allowance from the Ice Rod bypassed region protection, allowing for deleting all tiles in a protected region and/or replacing them with Ice Blocks. (@punchready)
  • Changed SendTileRect handling from a denylist to an allowlist with stricter checks. This prevents essentially all exploits involving this packet. Most notably this stops people from placing arbitrary tiles with arbitrary framing values, which are the root of most exploits. (@punchready)
  • Removed the config options TileRectangleSizeThreshold and KickOnTileRectangleSizeThresholdBroken because they are made obsolete by the new system, which will only allow valid rectangle sizes (at a maximum of only 4 by 4 tiles in 1.4.3.6). (@punchready)
  • Bumped Newtonsoft Json to 13.0.1. (@dependabot)

Upgrading

To upgrade TShock, replace all of the files in the location of your server installation with all of the files from the release zip we provide. Overwrite all files. No data will be lost.

v4.5.17

2 years ago

This release fixes two really annoying bugs that were contributed by @gohjoseph!

Notable changes

  • Fixed duplicate characters (twins) after repeatedly logging in as the same character due to connection not being immediately closed during NetHooks_NameCollision. (@gohjoseph)
  • Fixed mobs not dropping picked up coins. (@gohjoseph)

Upgrading

To upgrade TShock, replace all of the files in the location of your server installation with all of the files from the release zip we provide. Overwrite all files. No data will be lost.

v4.5.16

2 years ago

Notable changes

  • Added preliminary support for Terraria 1.4.3.6. (@SignatureBeef, @hakusaro)

Upgrading

To upgrade TShock, replace all of the files in the location of your server installation with all of the files from the release zip we provide. Overwrite all files. No data will be lost.

v4.5.15a

2 years ago

Notable changes

  • Added very very preliminary support for Terraria 1.4.3.6. May not work at all.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

Upgrading

To upgrade TShock, replace all of the files in the location of your server installation with all of the files from the release zip we provide. Overwrite all files. No data will be lost.

v4.5.15

2 years ago

Notable changes

  • Added preliminary support for Terraria 1.4.3.5. (@SignatureBeef, @hakusaro)

Upgrading

To upgrade TShock, replace all of the files in the location of your server installation with all of the files from the release zip we provide. Overwrite all files. No data will be lost.