Releases: Pryaxis/TShock
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.
TShock 5.1.2 for Terraria 1.4.4.8.1 (ζ Ori)
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
toFishableNpcIDs
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 othermaxWhateverTypes
fields have been removed. Their replacements are inTerraria.ID.whateverID.Count
. TShock calls to these fields have been swapped in order to bring forward compatibility with Terraria 1.4.4.8.
- In this version of Terraria,
- 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.
- This change allows the config option
- 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
.
- Before this change, it was theoretically possible to smuggle buffs onto servers with SSC enabled, by using buff indexes past
- 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.
TShock 5.1.1 for Terraria 1.4.4.8 (ζ Ori)
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
toFishableNpcIDs
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 othermaxWhateverTypes
fields have been removed. Their replacements are inTerraria.ID.whateverID.Count
. TShock calls to these fields have been swapped in order to bring forward compatibility with Terraria 1.4.4.8.
- In this version of Terraria,
- 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.
- This change allows the config option
- 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
.
- Before this change, it was theoretically possible to smuggle buffs onto servers with SSC enabled, by using buff indexes past
- 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.
TShock 5 for Terraria 1.4.4.7 (Alnilam)
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
andTShockAPI/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.
- The Axe of Regrowth places a
- Fixed
HandlePlayerAddBuff
data handler always being marked asHandled
, and therefore never allowing thePlayerAddBuff
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
(replacingWhitelistBuffMaxTime
), 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 aPlayerAddBuff
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 aPlayerBuff
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. SettingTSHOCK_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
andPlayerData
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 for1200
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
, andenabledSuperCart
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
...
TShock 4.5.18
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
andKickOnTileRectangleSizeThresholdBroken
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.
TShock 4.5.17
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.
TShock 4.5.16 for Terraria 1.4.3.6
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.
TShock 4.5.15 for Terraria 1.4.3.5
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.