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
- kuukiman
- Kronex (Kronex6)
- Jifeng
- Janet Blackquill (pontaoski)
- Yuiinar (Yuiinars)
- Muteduanxing
Upgrading
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.
Upgrading plugins
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
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.
Finding plugins
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.
Questions?
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.