Bot releases are visible (Hide)
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.
Published by hakusaro almost 2 years ago
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.
Published by hakusaro almost 2 years ago
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.
Published by hakusaro almost 2 years ago
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.
Published by hakusaro almost 2 years ago
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.
Published by hakusaro about 2 years ago
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.
Published by hakusaro over 2 years ago
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.
Published by hakusaro over 2 years ago
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.
Published by hakusaro over 2 years ago
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.
Published by hakusaro over 2 years ago
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.
Published by hakusaro over 2 years ago
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.
/grow
command to reduce code duplication, use TileID
constants for less ambiguous types. (@drunderscore)IEntitySource
as the first parameter to Item.NewItem
and NPC.NewNPC
, and in TSAPI
, NpcLootDropEventArgs
passes IEntitySource
as Source
. If you're updating a plugin, you can either make something that implements with IEntitySource
or just use new EntitySource_DebugCommand()
like TShock does. (@SignatureBeef, @Patrikkk, @hakusaro)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.
Published by hakusaro over 2 years ago
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)GetDataHandlers.HandleCatchNpc
that stops unregistered and logged out players on SSC servers to catch critters. (@tru321)HandlePaintTile
to account for the Paint Sprayer (or Architect Gizmo Pack) being inside your inventory, rather than on an accessory slot. (@drunderscore)/worldevent
command. (@0x3fcf1bbd)TSPlayer.SendTileSquare
as deprecated, and created TSPlayer.SendTileSquareCentered
that sends a tile square centered around the passed coordinates. (@0x3fcf1bbd)TSPlayer.SendTileRect
so as to avoid OOBs. (@0x3fcf1bbd)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.
Published by hakusaro almost 3 years ago
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)OnSignRead
handler in GetDataHandler
, and added the SignRead
event. Added check to ensure the sign being read is within world bounds (x >= 0 && y >= 0 && x < Main.maxTilesX && y < Main.maxTilesY)
. (@drunderscore)HandleNpcTalk
to ensure the passed NPC index is within bounds (>= -1 && < Main.maxNPCs
). (@drunderscore)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.
Published by hakusaro almost 3 years ago
GetDataHandlers.OnNewProjectile
so that it passes the projectile's AI (by updating NewProjectileEventArgs
and parsing this during the TShock hook) to support processing projectile AI in bouncer. (@AgaSpace)Main.GameMode
to /worldmode
as "Mode". (@hakusaro)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.
Published by hakusaro almost 3 years ago
This version of TShock is protocol compatible with Terraria 1.4.3.2.
SIGINT
is received. When SIGINT
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)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?
To update TShock, simply replace all of the files in your server folder with those from the release folder.
Published by hakusaro almost 3 years ago
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.
TSPlayer
's PVP mode. (@AgaSpace)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?
To update TShock, simply replace all of the files in your server folder with those from the release folder.
Published by hakusaro almost 3 years ago
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.
TShockAPI/DB/DBTools.cs
. This appears to have been dead code and not used by anything. (@hakusaro, @DeathCradle)/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)MaxPlaceStyles
and ExtraneousPlaceStyles
contains an entry for a tile, and unintentionally passed on invalid tiles. ExtraneousPlaceStyles
only contains special max placeStyles, not all placeables unlike MaxPlaceStyles
. It's now corrected to take from ExtraneousPlaceStyles
first, then fallback to MaxPlaceStyles
if there's no entry for that tile, and then finally -1 if there's no entry in either.To update TShock, simply replace all of the files in your server folder with those from the release folder.
Published by hakusaro almost 3 years ago
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.
/respawn
command to permit respawning players from the console. (@hakusaro, @Kojirremer)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 because bcrypt
has been the default since TShock 4.3 in 2015. (@hakusaro)To update TShock, simply replace all of the files in your server folder with those from the release folder.
Published by hakusaro almost 3 years ago
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.
SoftcoreOnly
config option to allow only softcore characters to connect. (@drunderscore)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)ban
command under ban 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)/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)DisablePrimeBombs
config option (false
by default). Highly recommended to set this to true
in order to prevent griefing on servers doing a for the worthy
play-through, since the prime bombs on this seed can destroy most tiles and bypass region protection. (@moisterrific)/respawn
command that lets you respawn yourself or another player. Respawning yourself requires the tshock.respawn
permission and respawning others requires the tshock.respawn.other
permission. The full command syntax is /respawn [player]
. (@moisterrific)RespawnSeconds
and RespawnBossSeconds
from 10
to 0
to respect the game's default respawn timers. (@moisterrific)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)/spawnboss
command. (@hakusaro, @HiddenStriker)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, but RegionProtectGemLocks
is disabled. If RegionProtectGemLocks
is enabled, players will be unable to use gem locks in a build region. (@hakusaro, @Kojirremer, @Arthri)/god [player]
would tell [player]
that they were in godmode regardless of whether or not they were or not. (@hakusaro, @Kojirremer)TSAPI
: Updated PacketTypes
to support SetMiscEventValues
(140), RequestLucyPopup
(141), and SyncProjectileTrackers
(142). (@hakusaro)DisableDefaultIPBan
to the config file. If set to true
, 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)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)To update TShock, simply replace all of the files in your server folder with those from the release folder.
Published by hakusaro about 3 years ago
This version of TShock includes a fix for GHSA-jq4j-v8pr-jv7j. For more information, see the advisory.
We are aware of at least three other security issues, but they are still in-progress. At least one of those will be shipping in the near future.
/slay
as an alias for /kill
to be more consistent with other server mods. (@hakusaro)/god
as an alias for /godmode
to be more consistent with other server mods. (@hakusaro)Amethyst Gemtree
text. (@hakusaro)CTRL + C
/ interactive console interrupt not safely shutting down the server. Now, interrupts will cause a safe shutdown (saving the world and disconnecting all players before fully shutting down). Previously, interrupts caused an unsafe shutdown (not saving the world). (@hakusaro)Color.LimeGreen
instead of Color.Green
. Color.Green
looks ugly. Color.LimeGreen
looks less ugly but isn't as offensively bright as pure green. (@hakusaro)/home
allowing players to bypass the respawn timer. (@hakusaro, @moisterrific, @Arthri)SuppressPermissionFailureNotices
. When set to true
, the server will not send warning messages to players when they fail a build permission check from TSPlayer.HasBuildPermission
(even if shouldWarnPlayer
is set to true. (@hakusaro)/warp send
failing a nullcheck if the warp didn't exist. The previous behavior may have always been buggy or broken. In other words, sending someone to a warp that doesn't exist should result in a nicer error. (@hakusaro, @punchready)/group del
allowing server operators to delete the default group that guests are put into. This is a really critical group and the server doesn't behave correctly when it happens. As a result, it's better to prevent this from happening than not. Additionally, GroupManagerException
s will be thrown if this is attempted programmatically. Finally, if the exception is thrown in response to /group del
(or if any other exception is thrown that the command handler can handle), the stack trace will no longer be present. Fixes #2165. (@hakusaro, @DeveloperLuxo, @Rozen4334, @moisterrific, @bartico6, @Quinci135)ConfigFile
class. If you are updating a plugin, you should use TShock.Config.Settings
instead of the accessor you were using. This is typically a really easy change. For most plugin authors, updating to the new config format is as simple as changing the reference to the old static config to point to the new location. If you were using this for your own configs, you should swap to using a IConfigFile
(see TShockAPI.Configuration.ConfigFile
). (@hakusaro, @bartico6)Main.worldPathName
to /worldinfo
command. Now, if you need to see what the location on disk for your world file is, you can simply run /worldinfo
to find out. This is particularly helpful on Linux and macOS, where the world path isn't obvious. (@hakusaro)-disable-commands
to disable the input thread, but by default, it will be enabled. Fixes #1450. (@DeathCradle, @QuiCM)summonboss
permission check for Prismatic Lacewing. Players who do not have said permission will be unable to kill this critter, as it will summon the Empress of Light. Also added support for the AnonymousBossInvasions
config option, if this is set to false
it will now broadcast the name of the player who summoned her. (@moisterrific)ForceTime
config setting check for Enchanted Sundial usage. If ForceTime
is set to anything other than normal
, Sundial use will be rejected as this would lead to very janky game behavior. Additionally, players with cfgreload
permission will be advised to change it back to normal
in order to use sundial. (@moisterrific, @bartico6)%onlineplayers%
and %serverslots%
placeholders for MOTD. The default MOTD message was also updated to use this. (@moisterrific, @bartico6)TilePlacementValid
when validating tile coordinates, which could cause a DoS attack due to unexpectedly large world framing. The list below shows the corrected methods within Bouncer. This was assigned GHSA-jq4j-v8pr-jv7j. (@drunderscore)
OnTileEdit
: The check was moved to be the first, and will no longer SendTileSquare
upon failure.OnPlaceObject
: The check was moved to be the first, and will no longer SendTileSquare
upon failure.OnPlaceTileEntity
: The check was newly added.OnPlaceItemFrame
: The check was newly added.OnFoodPlatterTryPlacing
: The check was newly added.To update TShock, simply replace all of the files in your server folder with those from the release folder.