Releases: Pryaxis/TShock
TShock 6 for Terraria 1.4.4.9 Pre-release 1
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
This is primarily a set of patches to improve the stability and capability of TShock from the prior release.
Notable changes in this release
- Deleted
tsCharacter
table will no longer result in empty inventory, but starter ones. (@sgkoishi) - World-based permanent boosters like
Advanced Combat Techniques
andPeddler's Satchel
requires their corresponding permission instead ofsummonboss
. (@sgkoishi) - Note:
converthardmode
was removed more than 10 years ago in 7f5ee04. (@sgkoishi) - Fix mobile player see others "break" after respawning (@ACaiCat)
- Fix Console title not updating and world not saving when last player disconnects (@Fraku-64)
- Added pet spawning permission to default group, on groups database seeding (@SakuraIsayeki)
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
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
- Deleted
tsCharacter
table will no longer result in empty inventory, but starter ones. (@sgkoishi) - World-based permanent boosters like
Advanced Combat Techniques
andPeddler's Satchel
requires their corresponding permission instead ofsummonboss
. (@sgkoishi) - Note:
converthardmode
was removed more than 10 years ago in 7f5ee04. (@sgkoishi) - Fix mobile player see others "break" after respawning (@ACaiCat)
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
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
- Deleted
tsCharacter
table will no longer result in empty inventory, but starter ones. (@sgkoishi) - World-based permanent boosters like
Advanced Combat Techniques
andPeddler's Satchel
requires their corresponding permission instead ofsummonboss
. (@sgkoishi) - Note:
converthardmode
was removed more than 10 years ago in 7f5ee04. (@sgkoishi) - Fixed unable to place Pylons on the left side of the world. (@LaoSparrow)
- Fixed #3073. (@sgkoishi)
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
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
- Deleted
tsCharacter
table will no longer result in empty inventory, but starter ones. (@sgkoishi) - World-based permanent boosters like
Advanced Combat Techniques
andPeddler's Satchel
requires their corresponding permission instead ofsummonboss
. (@sgkoishi) - Note:
converthardmode
was removed more than 10 years ago in 7f5ee04. (@sgkoishi)
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
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
.
- Fixed incorrect validating range in
- 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.
- Removed
- Added a constructor for
TShockAPI.PlayerData
that accepts theincludingStarterInventory
parameter, which is responsible for loading the TShock inventory. (@AgaSpace) - Declared the constructor
TShockAPI.PlayerData
accepting the argumentTShockAPI.TSPlayer
obsolete. (@AgaSpace) - Updated the
PlayerData.StoreSlot
method: Added an overload that takesTShockAPI.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 ignoreNpcItemStrike(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
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, updatedCursedInferno
buff for NPC (@sgkoishi, #3005) - Changed the use of
Player.active
toTSPlayer.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)
- There are now official docker images you can take advantage of!
- Updated
TShockAPI.NetItem
(@AgaSpace):- Added constructor overload with parameter
Terraria.Item
. - Added the
ToItem
method to get a copy ofTerraria.Item
. - In the constructor
stack
andprefix
are now optional parameters.
- Added constructor overload with parameter
- 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
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 theRemoteClient
player, without an additional call toTerraria.Netplay.Clients
. (@AgaSpace) - Updated the documentation for the
TSPlayer.SetPvP
method. ThesendMsg
parameter, which is responsible for sending a pvp mode change message, was not documented earlier. (@AgaSpace) - Added methods
TSPlayer.KillPlayer
andTSPlayer.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 argumentsrectangle
andisLoaded
, which will load some area from the server to the player. (@AgaSpace) - Added a method
TSPlayer.GiveItem
, which hasTShockAPI.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
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 atPvPMode
to enable PVP with no team. (@CelestialAnarchy, #2617, @ATFGK) - Corrected and updated deserialization of the following packets (@ATFGK):
ProjectileNew
: Read the thirdAI
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 theNumberOfDeathsPVE
andNumberOfDeathsPVP
values.- Before this change, the
PlayerSpawnContext
was always read incorrectly, due to the values above being placed in the middle of the existing structure.
- Before this change, the
NpcTeleportPortal
: Read the NPC index as aushort
instead of abyte
.PlaceObject
: Read theRandom
value.- Before this change, the
Direction
was always read incorrectly, due to the value above being placed in the middle of the existing structure.
- Before this change, the
Zones
: Read thezone5
value.PaintTile
andPaintWall
: Read thecoatTile
andcoatWall
values.PlayerHurtV2
: Read thecooldownCounter
value.
- Updated
SpawnMsg
to include theNumberOfDeathsPVE
andNumberOfDeathsPVP
, and allow them to be optionally used inTSPlayer.Spawn
. (@ATFGK) - Added
WorldTileProvider
to the tshock config with valuesdefault
,constileation
orheaptile
. 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 thenContains
. (@sgkoishi) - Added
ShadowCandle
andBrainOfConfusionBuff
(BoC dodge buff) to thePlayerAddBuffWhitelist
(@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.
- This will make it so Bouncer rejections regarding
- 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 theSyncTilePicking
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)
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.