☕️⚡️TShock provides Terraria servers with server-side characters, anti-cheat, and community management tools.
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.
pvpwithnoteam
is added at PvPMode
to enable PVP with no team. (@CelestialAnarchy, #2617, @ATFGK)ProjectileNew
: Read the third AI
value.
PlayerSpawn
: Read the NumberOfDeathsPVE
and NumberOfDeathsPVP
values.
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.
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.SpawnMsg
to include the NumberOfDeathsPVE
and NumberOfDeathsPVP
, and allow them to be optionally used in TSPlayer.Spawn
. (@ATFGK)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)StartsWith
and then Contains
. (@sgkoishi)ShadowCandle
and BrainOfConfusionBuff
(BoC dodge buff) to the PlayerAddBuffWhitelist
(@drunderscore)OnPlayerBuff
. (@drunderscore)
PlayerAddBuff
will now always include the sender index, buff type, receiver index, and time in ticks, allowing much faster triage of buff whitelist issues.WindPushed
) buff (from sandstorms). (@drunderscore)OnFire3
) buff. (@drunderscore)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)GetDataHandledEventArgs.Player
property for the SyncTilePicking
data handler. (@drunderscore)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.
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.
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.
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.
TownSlimeRed
to FishableNpcIDs
list, allowing it to be fished up. (@drunderscore)Main.maxBuffTypes
and other maxWhateverTypes
fields have been removed. Their replacements are in Terraria.ID.whateverID.Count
. TShock calls to these fields have been swapped in order to bring forward compatibility with Terraria 1.4.4.8.RequireLogin
to function usefully again when SSC is not enabled.PlayerData.RestoreCharacter
to remove all buffs. (@drunderscore)
22
.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 |
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.
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.
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.
TownSlimeRed
to FishableNpcIDs
list, allowing it to be fished up. (@drunderscore)Main.maxBuffTypes
and other maxWhateverTypes
fields have been removed. Their replacements are in Terraria.ID.whateverID.Count
. TShock calls to these fields have been swapped in order to bring forward compatibility with Terraria 1.4.4.8.RequireLogin
to function usefully again when SSC is not enabled.PlayerData.RestoreCharacter
to remove all buffs. (@drunderscore)
22
.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 |
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 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.
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.
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.
TShockAPI/Resources.resx
and TShockAPI/Resources.Designer.cs
. (@Arthri)Utils.TryParseTime
method for parsing large, positive time spans. (@punchready)/tempgroup
breaking on durations greater than roughly 24 days. (@punchready)LiquidType.Shimmer
. (@drunderscore)BreakableWhenPlacing
set. This will allow you to place tiles over other tiles (like piles) properly, without being rejected. (@drunderscore)Saplings
where a tree used to be, which previously failed.HandlePlayerAddBuff
data handler always being marked as Handled
, and therefore never allowing the PlayerAddBuff
to be sent to anyone. (@drunderscore)OnPlayerBuff
logic to properly handle players adding buffs to other players. (@drunderscore)
AddPlayerBuffWhitelist
(replacing WhitelistBuffMaxTime
), which allows us to specify the maximum amount of ticks a buff can be applied for, and if it can be applied without the target being in PvP.OnPlayerBuff
, instead of sending a PlayerAddBuff
packet with the rejected buff (essentially a no-op, as the sender implicitly applies the buff to the target, and causes desync as the buff was rejected), send a PlayerBuff
to re-sync the target's buffs, without the buff we just rejected.-constileation
or -c
to use it. Constileation is an alternative tile provider to Tiled and HeapTile. (@SignatureBeef)-additionalplugins
command line argument to load additional plugins. (@pontaoski)TSHOCK_LANGUAGE
environment variable. Setting TSHOCK_LANGUAGE=tok
will enable a small number of Toki Pona translations as a proof-of-concept. (@pontaoski)SyncLoadout
packet during early connection. (@drunderscore)NetItem
and PlayerData
were modified to support this. (@drunderscore)OnFire3
debuff for 1200
ticks. (@BashGuy10)ateArtisanBread
, usedAegisCrystal
, usedAegisFruit
, usedArcaneCrystal
, usedGalaxyPearl
, usedGummyWorm
, usedAmbrosia
, unlockedSuperCart
, and enabledSuperCart
data flags. (@hufang360)DoLog
. (@sgkoishi, #2779)-lang
and -language
flags for our i18n system. (@KawaiiYuyu)Download the correct version of TShock for your operating system and architecture. If you're not on Windows, extract the tar archive inside the zip archive, which was created to preserve filesystem permissions.
If you're using Windows 10 or earlier, or another operating system, install the latest version of .NET 6.
If you're upgrading from TShock 4, we suggest downloading the new release of TShock, copying the
tshock
configuration folder over (containing thesqlitedb
file as well as thejson
configuration files, etc) to the new server, and starting the new server that way. This is because many files are removed and the existing files are no longer required from TShock 4. In addition, the new binary you need to run is calledTShock.Server.exe
orTShock.Server
, notTerrariaServer.exe
.
In addition, you no longer need to install
mono-complete
ormono
on non-Windows operating systems.
All plugins need updates to support .NET 6.
If you're a developer, use the upgrade assistant
from .NET to upgrade to .NET 6. This release also coincides with TShock 5.0.0 on nuget and TSAPI 5.0.0 on nuget.
Updated documentation for updating or installing TShock is now available on the TShock website. The README.md
file on github now corresponds with developer instructions. You'll find that developing TShock is significantly easier on OTAPI 3.
The documentation on readme.io is now considered deprecated. As we work to migrate all documentation to our new service, we will eventually remove or replace readme.io's documentation entirely.
As we work on a new solution for finding plugins, we'd like to draw attention to the fact that as of December 31, 2021, @hakusaro is no longer approving new plugins on https://github.com/Pryaxis/Plugins. As an alternative, we suggest using plugins that you know you trust from trusted developers, available on GitHub. In addition, we have a Discord "forum" setup for discussing plugins already. To see this, join Discord. If you speak Chinese, we suggest using this fancy plugin repository. If you want to setup or operate a plugin directory, please let us know. We'd be more than happy to link-to and support your efforts.
If you have questions, please ask in the release discussion or on Discord. We're sure there will be lots of them. Please ask away.
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.
TSPlayer.GiveItem
not working if the player is in lava. (@gohjoseph)-worldevil <type>
command line argument (@NotGeri)TileRectangleSizeThreshold
and KickOnTileRectangleSizeThresholdBroken
because they are made obsolete by the new system, which will only allow valid rectangle sizes (at a maximum of only 4 by 4 tiles in 1.4.3.6). (@punchready)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.
This release fixes two really annoying bugs that were contributed by @gohjoseph!
NetHooks_NameCollision
. (@gohjoseph)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.
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.
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.