Releases: Pryaxis/TShock
TShock 4.5.15 for Terraria 1.4.3.6
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.
TShock 4.5.14 for Terraria 1.4.3.4
This update adds preliminary support for Terraria 1.4.3.4, which is primarily a maintenance release that adds support for the Steam Deck!
Thank you to everyone who gave us feedback about Raspberry Pi and arm support. We do not intend to discontinue support for arm, based on your feedback.
Notable changes
- Improved the
/grow
command to reduce code duplication, useTileID
constants for less ambiguous types. (@drunderscore) - Fixed item dupe via /logout & NPC. (@Terrarxxn)
- Added preliminary support for Terraria 1.4.3.4. Note that this has the side-effect of adding
IEntitySource
as the first parameter toItem.NewItem
andNPC.NewNPC
, and inTSAPI
,NpcLootDropEventArgs
passesIEntitySource
asSource
. If you're updating a plugin, you can either make something that implements withIEntitySource
or just usenew EntitySource_DebugCommand()
like TShock does. (@SignatureBeef, @Patrikkk, @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.
TShock 4.5.13
Notable changes
- Added hook
GetDataHandlers.OnReleaseNpc
to handling ReleaseNPC packet and a bouncer to stops unregistered and logged out players on SSC servers from releasing critters NPC. The bouncer has additional filter to stops players who tried to release different critter using crafted packet, e.g. using bunny item to release golden bunny. (@tru321) - Added filter in
GetDataHandlers.HandleCatchNpc
that stops unregistered and logged out players on SSC servers to catch critters. (@tru321) - Fixed rejection check inside of
HandlePaintTile
to account for the Paint Sprayer (or Architect Gizmo Pack) being inside your inventory, rather than on an accessory slot. (@drunderscore) - Added the lanterns night event to the
/worldevent
command. (@0x3fcf1bbd) - Marked
TSPlayer.SendTileSquare
as deprecated, and createdTSPlayer.SendTileSquareCentered
that sends a tile square centered around the passed coordinates. (@0x3fcf1bbd) - Added coordinates clamping to
TSPlayer.SendTileRect
so as to avoid OOBs. (@0x3fcf1bbd) - Removed extraneous space causing build commands in README to fail. (@EtherTyper)
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.
TShock 4.5.12
Notable changes
- Fixed the ability to spawn Zenith projectile with non-original items. (@AgaSpace)
- Added hook
GetDataHandlers.OnNpcTalk
for NpcTalk and a handler for it that stops unregistered and logged out players from interacting with NPCs, preventing them from smuggling or duplicating items via NPC item slots. (@tru321) - Fixed the ability to create custom messages with your death (or the death of another player) (@AgaSpace)
- Added the
OnSignRead
handler inGetDataHandler
, and added theSignRead
event. Added check to ensure the sign being read is within world bounds(x >= 0 && y >= 0 && x < Main.maxTilesX && y < Main.maxTilesY)
. (@drunderscore) - Added check to
HandleNpcTalk
to ensure the passed NPC index is within bounds (>= -1 && <Main.maxNPCs
). (@drunderscore)
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.
TShock 4.5.11
Notable changes
- Add the new allowed buff TentacleSpike to NPC buff cheat detection bouncer. (@sgkoishi)
- Changed hook
GetDataHandlers.OnNewProjectile
so that it passes the projectile's AI (by updatingNewProjectileEventArgs
and parsing this during the TShock hook) to support processing projectile AI in bouncer. (@AgaSpace) - Fixed an issue where certain projectiles could be sent to the server with uncapped size parameters, which resulted in large disruptive client artifacts that could be used to grief players. (@AgaSpace, @Arthri)
- Added the currently running value of
Main.GameMode
to/worldmode
as "Mode". (@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.
TShock 4.5.10
This version of TShock is protocol compatible with Terraria 1.4.3.2.
Notable changes
- Changed the server behavior when
SIGINT
is received. WhenSIGINT
is trapped, the server will attempt to shut down safely. When it is trapped a second time in a session, it will immediately exit. (SIGINT
is typically triggered via CTRL + C.) This means that it is possible to corrupt your world if you force shutdown at the wrong time (e.g., while the world is saving), but hopefully you expect this to happen if you hit CTRL + C twice in a session and you read the warning. (@hakusaro, @onusai)
Did you know?
DeathCradle now accepts GitHub sponsorships. Did you know that DeathCradle is the reason why TShock is about to switch to .NET 5 and/or 6 and ditch mono? Isn't that neat?
Updating
To update TShock, simply replace all of the files in your server folder with those from the release folder.
TShock 4.5.9 (Terraria 1.4.3.2)
Did you miss version 4.5.6? A lot of stuff changed in TShock 4.5.6 so you might want to read those change notes too.
Did you miss version 4.5.7? Some stuff changed in that release too.
Did you miss version 4.5.8? Yep that also changed some stuff in that release.
Notable changes
- Added the ability to change a
TSPlayer
's PVP mode. (@AgaSpace) - Added protocol level support for Terraria 1.4.3.2. (@DeathCradle, @Patrikkk)
Did you know?
DeathCradle now accepts GitHub sponsorships. Did you know that DeathCradle is the reason why TShock is about to switch to .NET 5 and/or 6 and ditch mono?
Updating
To update TShock, simply replace all of the files in your server folder with those from the release folder.
TShock 4.5.8 (Terraria 1.4.3.1)
This release includes a security fix for GHSA-6w5v-hxr3-m2wx.
Did you miss version 4.5.6? A lot of stuff changed in TShock 4.5.6 so you might want to read those change notes too.
Did you miss version 4.5.7? Some stuff changed in that release too.
Notable changes
- Removed
TShockAPI/DB/DBTools.cs
. This appears to have been dead code and not used by anything. (@hakusaro, @DeathCradle) - Fixed the
/firework
command not sending fireworks when specified without a firework color. The firework command now correctly sends red fireworks to a target if a color is not specified. (@hakusaro, @Kojirremer) - Fixed bad XML of TShock code documentation. (@Arthri)
- Fixed Bouncer exploits allowing for invalid tiles' placement. These tiles(specifically torches) caused clients to crash. The fixed exploits are listed below. (@Arthri, @QuiCM)
- Biome Torch Correction. Previously, it used unrelated values to validate biome torches, and unintentionally passed on invalid tiles. It's now fixed to use the correct values and block invalid torches. As well as a new right booster track correction/check, to allow right booster tracks to be placed. Right booster track is an extraneous place style because it depends on the direction the player is facing. The new check takes that into consideration so that the place style isn't considered mismatched and rejected.
- Max Place Styles. Previously, it rejects only if both
MaxPlaceStyles
andExtraneousPlaceStyles
contains an entry for a tile, and unintentionally passed on invalid tiles.ExtraneousPlaceStyles
only contains special max placeStyles, not all placeables unlikeMaxPlaceStyles
. It's now corrected to take fromExtraneousPlaceStyles
first, then fallback toMaxPlaceStyles
if there's no entry for that tile, and then finally -1 if there's no entry in either.
Updating
To update TShock, simply replace all of the files in your server folder with those from the release folder.
TShock 4.5.7 (Terraria 1.4.3.1)
This release includes protocol compatibility with Terraria 1.4.3.1.
Did you miss version 4.5.6? A lot of stuff changed in TShock 4.5.6 so you might want to read those change notes too.
Notable changes
- Fixed the
/respawn
command to permit respawning players from the console. (@hakusaro, @Kojirremer) - Removed the old password hashing system, which predated
bcrypt
hashes and allowed specifying the hash algorithm in the config file. This also removes the config option for setting the hash algorithm (HashAlgorithm
). This is because it helps clear the way for .NET5/6 and OTAPI 3, and becausebcrypt
has been the default since TShock 4.3 in 2015. (@hakusaro) - Updated to OTAPI 2.0.0.46, which adds support for Terraria Protocol 1.4.3.1. (@Patrikkk, @DeathCradle)
- Change warning: a release of TShock for .NET 5 and OTAPI 3 may be imminent.
Updating
To update TShock, simply replace all of the files in your server folder with those from the release folder.
TShock 4.5.6 (Terraria 1.4.3.0)
This release includes protocol compatibility with Terraria 1.4.3.0.
This release includes a security fix for GHSA-6w5v-hxr3-m2wx. The details around of vulnerability and additional patches will be provided as a defense-in-depth measure in the next release. This security advisory will be made public and additional patches provided on Tuesday, November 23rd, at 22:00 MST.
Notable changes
- Updated Linux guide. (@NezbednikSK)
- Fixed SendTileRectHandler not sending tile rect updates like Pylons/Mannequins to other clients. (@Stealownz)
- Introduced
SoftcoreOnly
config option to allow only softcore characters to connect. (@drunderscore) - Fixed some typos that have been in the repository for over a lustrum. (@Killia0)
- Added a
tshock.npc.summonboss
permission check for Lunatic Cultist, players who do not have this permission will not be able to kill Cultist Archers/Devotees to summon the Lunatic Cultist. (@moisterrific) - Added more usage examples for the
ban
command underban help examples
to explain how users can ban: offline players by account, offline players by IP, and online players by player index - useful for banning hard to type character names. (@moisterrific) - Changed
/login
and/register
to provide login help depending on if UUID login is enabled or disabled, and whether or not a player can login via any username or not. In addition, the message parameters will now be differentiated by colour instead of<>
(@moisterrific, @hakusaro) - Added a new
DisablePrimeBombs
config option (false
by default). Highly recommended to set this totrue
in order to prevent griefing on servers doing afor the worthy
play-through, since the prime bombs on this seed can destroy most tiles and bypass region protection. (@moisterrific) - Added a new
/respawn
command that lets you respawn yourself or another player. Respawning yourself requires thetshock.respawn
permission and respawning others requires thetshock.respawn.other
permission. The full command syntax is/respawn [player]
. (@moisterrific) - Added a notification message and silent command support for permanently changing a target player's user group. Now players who received a group change will be notified of their new group if they are currently online. (@moisterrific, @QuiCM)
- Changed the TSPlayer IP method to return the loopback IP if RealPlayer is false. (@Rozen4334)
- Fixed a bug that caused sundials to be ignored all the time, instead of only when the player has no permission or time is frozen. (@Rozen4334)
- Added colours and usage examples (similiar to how the new ban system looks) for many more commands. (@moisterrific)
- Changed
RespawnSeconds
andRespawnBossSeconds
from10
to0
to respect the game's default respawn timers. (@moisterrific) - Updated Open Terraria API (OTAPI) and TSAPI for preliminary support of Terraria 1.4.3.0. This functionally changes OTAPI and points to 2.0.0.45 from 2.0.0.43 in previous versions. Developer note:
SendData
takes an extra arg in this version of Terraria but that's slated to be removed in a Terraria hotfix. This is vestigial and OTAPI "hacks that out" to preserve plugin compatibility. That's why it'll differ from the source code. (@Patrikkk, @DeathCradle, honorable mention: @Moneylover3246) - Added Deerclops to
/spawnboss
command. (@hakusaro, @HiddenStriker) - Fixed GHSA-6w5v-hxr3-m2wx. (@Yoraiz0r, @Arthri)
- Fixed an issue where player build permissions would reject gem lock changes, even if
RegionProtectGemLocks
was disabled in the config file. Now, players will be permitted to use gem locks if they don't have build permission in a region, butRegionProtectGemLocks
is disabled. IfRegionProtectGemLocks
is enabled, players will be unable to use gem locks in a build region. (@hakusaro, @Kojirremer, @Arthri) - Fixed an issue where
/god [player]
would tell[player]
that they were in godmode regardless of whether or not they were or not. (@hakusaro, @Kojirremer) - In
TSAPI
: UpdatedPacketTypes
to supportSetMiscEventValues
(140),RequestLucyPopup
(141), andSyncProjectileTrackers
(142). (@hakusaro) - Added
DisableDefaultIPBan
to the config file. If set totrue
, the server will not automatically IP ban players when banning them. This is useful if you run an intercepting proxy in front of TShock, and all players share the same IP. (@hakusaro, and Telegram user xmzzhh233) - Blank passwords will be upgraded to
bcrypt
hashes automatically. Previously, blank passwords were not upgraded to bcrypt hashes. This is in preparation to remove the old password hashing system and related fallback components in the next release. Most users have been using bcrypt hashes for the past...few years. (@hakusaro)
Updating
To update TShock, simply replace all of the files in your server folder with those from the release folder.