Skip to content

Releases: Pryaxis/TShock

TShock 6 for Terraria 1.4.4.9 Pre-release 1

15 May 07:34
69e8828
Compare
Choose a tag to compare

This pre-release is the first pre-release based on .NET 9. Please report problems and other issues to us so we can remediate them.

Plugins almost certainly need to be rebuilt for this release, and also, generally, take a backup.

Plugins almost certainly need to be rebuilt for this release, and also, generally, take a backup.

Backup!

Notable changes in this release

  • Upgraded to .NET 9 (@SignatureBeef) (we're working on this changelog entry)
  • Added support for PostgreSQL as a database option. (@SakuraIsayeki)
  • Fix item disappeared when hitting an ItemFrame without permission. (@ACaiCat)
  • Fixed unable to place LogicSensors (@LaoSparrow)

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.

TShock 5.2.4 for Terraria 1.4.4.9

09 May 09:23
952a668
Compare
Choose a tag to compare

This is primarily a set of patches to improve the stability and capability of TShock from the prior release.

Notable changes in this release

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.

TShock 5.2.4 for Terraria 1.4.4.9 Pre-release 3

05 May 17:25
a01d592
Compare
Choose a tag to compare

This is a pre-release version of TShock for testing purposes, containing bug fixes from the previous version. If no bugs are reported, it will be finalized soon. Please note that this version may contain more problems or different problems. Please create issues for these problems accordingly. Also note that the assembly version has not changed, in order to notify everyone of the final release when it is available. Accordingly, a nuget release is not available. We will not merge .NET 9 support until after this release is out, and there aren't major issues with it, to prevent confusion and changing more than one thing at once.

The main thing that's fixed here is the SSC break issue on respawn for mobile users.

Notable changes in this release

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.

TShock 5.2.4 for Terraria 1.4.4.9 Pre-release 2

18 Mar 13:50
99e37cc
Compare
Choose a tag to compare

This is a pre-release version of TShock for testing purposes, containing bug fixes from the previous version. If no bugs are reported, it will be finalized soon. Please note that this version may contain more problems or different problems. Please create issues for these problems accordingly. Also note that the assembly version has not changed, in order to notify everyone of the final release when it is available. Accordingly, a nuget release is not available. We will not merge .NET 9 support until after this release is out, and there aren't major issues with it, to prevent confusion and changing more than one thing at once.

Notable changes in this release

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.

TShock 5.2.4 for Terraria 1.4.4.9 Pre-release

15 Mar 18:42
29477ab
Compare
Choose a tag to compare

This is a pre-release version of TShock for testing purposes, containing bug fixes from the previous version. If no bugs are reported, it will be finalized soon. Please note that this version may contain more problems or different problems. Please create issues for these problems accordingly. Also note that the assembly version has not changed, in order to notify everyone of the final release when it is available. Accordingly, a nuget release is not available. We will not merge .NET 9 support until after this release is out, and there aren't major issues with it, to prevent confusion and changing more than one thing at once.

Notable changes in this release

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.

TShock 5.2.3 for Terraria 1.4.4.9

09 Mar 16:37
db9c47d
Compare
Choose a tag to compare

This is the last release before merging .NET 9 support.

Notable changes in this release

  • Updated TShockAPI.Handlers.SendTileRectHandler (@LaoSparrow):
    • Fixed incorrect validating range in TileRectMatch.MatchRemoval.
    • Fixed tile rect changes (e.g. turning on and off campfires) are not synced between clients.
    • Fixed unable to place Hat Rack without permission tshock.ignore.sendtilesquare.
  • Changed Bouncer to block updates which set the following fields to infinity or NaN: player position, projectile position, projectile velocity, item position, and item velocity. (@Arthri)
  • Rewrote bed spawning for SSC. (@PotatoCider)
    • Removed TSPlayer.s{X,Y} in favour of using desyncing client and server spawnpoint values (Terraria.Player.Spawn{X,Y}) until the player has changed their spawnpoint per session.
    • Partially fixed the bed spawning bug when SSC is enabled. Players would need to spawn at their beds at least once to tell TShock that the player's spawnpoint has changed.
  • Added a constructor for TShockAPI.PlayerData that accepts the includingStarterInventory parameter, which is responsible for loading the TShock inventory. (@AgaSpace)
  • Declared the constructor TShockAPI.PlayerData accepting the argument TShockAPI.TSPlayer obsolete. (@AgaSpace)
  • Updated the PlayerData.StoreSlot method: Added an overload that takes TShockAPI.NetItem. (@AgaSpace)
  • Added a new permission, tshock.world.time.usemoondial, for regulating use of Enchanted Moondial. (@Arthri)
  • Added a set of new permissions, tshock.specialeffects.{type}, for regulating use of new special effects(Packet 51) which are not yet recognized by TShock. (@Arthri)
  • Added check for tshock.npc.summonboss permission for Skeletron summoning. (@Arthri)
  • Fixed DisableDungeonGuardian disabling Skeletron summon instead. The config option is useless as of writing. (@Arthri)
  • Seed initial group database with default and guest names from config. (@drunderscore)
  • Improved checks on the previous state handling changes to prevent users from connecting and having activity on the server without fully completing the player handshake. (@ohayo)
  • Filtered outgoing data to clients that aren't fully connected, to improve the privacy of the server. (@ohayo)
  • Prevent spamming spawned enemies that aren't on the enemies list. (@ohayo)
  • Updated GetDataHandlers to ignore NpcItemStrike(msgid 24), which should never be sent by a vanilla client. (@LaoSparrow)

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.

TShock 5.2.2 for Terraria 1.4.4.9

01 Feb 15:16
e4e28cb
Compare
Choose a tag to compare

This fixes GHSA-f8mx-cwfh-7hr2. This issue was reported to TShock by @ohayo, but was found by the Discord user by the name of sofurry.com. Please note that this user does not own this domain on the internet, just the discord handle.

Notable changes in this release

  • Fixed /dump-reference-data mutate the command names. (#2943, @sgkoishi)
  • Added ParryDamageBuff (Striking Moment with Brand of the Inferno and shield) for player, updated CursedInferno buff for NPC (@sgkoishi, #3005)
  • Changed the use of Player.active to TSPlayer.Active for consistency. (@sgkoishi, #2939)
  • Fix typo in config for IP bans. (@redchess64)
  • Fixed unable to transfer long response body for REST API. (@sgkoishi, #2925)
  • Fixed the /wind command not being very helpful. (@punchready)
  • Added automatic publishing of Docker images to GHCR. (@timschumi)
  • Updated TShockAPI.NetItem (@AgaSpace):
    • Added constructor overload with parameter Terraria.Item.
    • Added the ToItem method to get a copy of Terraria.Item.
    • In the constructor stack and prefix are now optional parameters.
  • Fixed /help, /me, and /p commands can't work in non-English languages. (@ACaiCat)
  • Added changing the SaveOnSeverExit variable before shutting down the server. This correctly makes the "off nosave" function work. (@Metratrj)
  • Added a hook AccountHooks.AccountGroupUpdate, which is called when you change the user group. (@AgaSpace)
  • Fixed the plugin manager crash when package contains XML, now it skips all the XML docs. (@sgkoishi, #3055)
  • Fixed the automatic language detection always returning en-US. (@sgkoishi, #3056)
  • Fixed forceupdate not working. (@Metratrj)
  • Ensured TSPlayer.PlayerData is non-null whilst syncing loadouts. (@drunderscore)
  • Added a terminal detection that avoids title spam. (@sgkoishi, #3057)
  • Groups are now virtual and support XNA colors. (@AgaSpace)
  • Added PlayerHooks.PrePlayerCommand hook, which fired before command execution. (@AgaSpace)
  • Added PlayerHooks.PostPlayerCommand hook, which fired after command execution. (@AgaSpace)
  • Detected invalid installations, by checking for a file named TerrariaServer.exe. (@drunderscore)
    • This made the two most common installation mistakes (extracting into the Terraria client directory, and extracting TShock 5 or newer into a TShock 4 or older install) prompt the user with a more useful diagnostic, rather than (likely) crashing moments later.
  • Fix GHSA-f8mx-cwfh-7hr2 (@ohayo). Additionally, players who have not yet sent packet 6 will not be considered connected. Thus, when a player is not considered to have been fully connected, the player will not be able to chat, appear in player lists, etc.

Oh hey, an advertisement for a wiki!

All of the documentation has been ported over from the docs folder in the repo to the wiki. Please consider using the wiki. https://ikebukuro.tshock.co/ now redirects to the wiki.

Housekeeping

docs.tshock.co is gone, and so are the TShock Forums. The TShock Forums were XenForo 1 based PHP forums that were hosted off-and-on from the early years of the project. TShock's Forums were originally running on SMF, before being migrated to XenForo, and remained on XF until they were shutdown. The impetus behind migrating to XF was that it provided a nicer, cleaner experience and a modern forum feel than SMF. However, as time went on, it became more and more burdensome to deal with the forums. In-particular, at some point, the war against spambots was essentially lost. We turned off registration on the forums and essentially froze them as a result of spambots that were too chaotic to clean up. We used StopForumSpam, KeyCaptcha, Q&A captcha, and other options, but could not stop the spambots no matter how hard we tried. The only viable option was to turn on registration approval, but this in-and-of-itself caused us a lot of work to deal with. At some point, we got early access to GitHub Discussions and migrated to Discussions while it was in a pre-release state, and that's where we are now.

We hope that the wiki will be valuable once again. We previously had the wiki enabled through 2011/2012, but disabled it as part of a different documentation push. As we centralize things on GitHub, we hope that the wiki will be okay.

We previously also tried a different initiative using Obsidian Publish. Curiously, the Obsidian Publish system stopped serving that documentation attempt. We will merge some of the changes in from that attempt into the wiki in due course.

Finally, we will likely be moving the CHANGELOG file to the wiki, and modifying our PR and release process to account for this, on the basis that merging the changelog file is too time consuming to deal with.

Maintenance

TShock has been around since the very first releases of Terraria. TShock started in a post announcing its availability on Facepunch, and from there, we've continuously updated the project through multiple versions of the game, styles of development, and more. The TShock project has been entirely volunteer operated and maintained. Our philosophy is really quite simple: we are happy to accept contributions from you, if your contributions fix an issue in Terraria or TShock, or are good. Sometimes it takes a while for us to review changes, but we are actively trying to improve the process to speed this up. @QuiCM has been as devoted to TShock as I have, if not more, and we have yet to actually meet each other in real life, but we certainly trust each other. As with all things, we welcome new contributors, but it does take us a bit of time sometimes. Thank you for your continued support and continued patience.

The last year (2024) was, in-particular, very busy for my life, and I essentially had to temporarily pause contributions. Please rest assured that even when in this state of operation, I remain committed, but it does take some time and energy to contribute. The busy part of my life is back to being quiet, so I should be able to devote more time in the future to the project.

Sponsors and donors

On behalf of all TShockers who have been sponsored or donated to, we appreciate and thank you for your generosity. The contributors to TShock accept sponsorships from time to time, and donations from time to time, though donations to the project itself have ceased. As a general reminder, we used to accept donations to the project -- and we greatly thank our donors for their contributions. These donations were used to fund infrastructure and other resources that the TShock project needed to operate, particularly before GitHub Actions (such as Bamboo CI, XenForo licenses, domain names, etc). Now, the best way to support the projects is to sponsor contributors on GitHub or other services.

If you believe in our work, please consider sponsoring a contributor of your choice. @SignatureBeef's changes, for example, will be upgrading us to more modern .NET versions in the coming days.

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.

TShock 5.2.1 for Terraria 1.4.4.9

18 Dec 15:02
Compare
Choose a tag to compare

This release fixes GHSA-hvm9-wc8j-mgrc (reported by: @sgkoishi, found by: @THEXN).

This also releases the following changes:

Notable changes

  • Updated TSPlayer.GodMode. (@AgaSpace)
    • Previously the field was used as some kind of dataset changed by /godmode command, but now it is a property that receives/changes data in journey mode.
  • Added the TSPlayer.Client property. It allows the developer to get the RemoteClient player, without an additional call to Terraria.Netplay.Clients. (@AgaSpace)
  • Updated the documentation for the TSPlayer.SetPvP method. The sendMsg parameter, which is responsible for sending a pvp mode change message, was not documented earlier. (@AgaSpace)
  • Added methods TSPlayer.KillPlayer and TSPlayer.DamagePlayer for which you can specify the cause (PlayerDeathReason) in parameters. (@AgaSpace)
  • Added an error when trying to change a TSPlayer team to, say, 9, when there are only 6. (@AgaSpace)
  • Added an error when trying to call the TSPlayer.SetTeam method with an argument (team) greater than 5 or less than 0. (@AgaSpace)
  • Added a method TSPlayer.UpdateSection with arguments rectangle and isLoaded, which will load some area from the server to the player. (@AgaSpace)
  • Added a method TSPlayer.GiveItem, which has TShockAPI.NetItem structure in its arguments. (@AgaSpace)
  • Added a property TSPlayer.Hostile, which gets pvp player mode. (@AgaSpace)
  • Fixed bug where when the UseSqlLogs config property is true, an empty log file would still get created. (@ZakFahey)
  • Fixed typo in /gbuff. (@sgkoishi, #2955)
  • Rewrote the .dockerignore file into a denylist. (@timschumi)
  • Added CI for Docker images. (@timschumi)
  • Fixed Cursed Flares kicking players for invalid buff. (@Arthri)

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.

TShock 5.2 for Terraria 1.4.4.9

10 May 06:30
c67d5cf
Compare
Choose a tag to compare

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.

TShock 5.1.3 for Terraria 1.4.4.9 (Thankyou!! <3)

25 Nov 07:04
6421c76
Compare
Choose a tag to compare

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.