Hey Folks! Quite a lot of community contribution in this one, as is becoming a pattern. This is great to see! It's good to see this make it through to the public. Sorry for the wait - I know it has been a few weeks coming. We've had some back and forth on a few of the changes, and I've been sick on and off the past few weeks. I'm healthy again now, so fingers crossed we can continue with smaller "rolling" updates. This build includes about 150 commits across over 120 files to the base repository and about 40 commits across over 200 files to the engine repository, so it's no small patch. The build includes contributions from Myself, MM, Furai, Asu, Fuzzle, and Diprog. I got a lot of engine-side work done on translations, fixed a few regressions from last build and got a few miscellaneous work items done. I also added some work-in-progress emoticons from recent discussion in discord to the sprite-sheet for use. We welcome feedback on these emoticons but they should not be treated as necessarily a permanent addition; we'll figure out which ones have a place in the game and which don't soon enough. They are only available through the config file currently, so to save you the trouble, here's a look at them - note that a few of these are just touch-ups, most are new. MM actually spent some time in the codebase, to partly address the precache issues causing crashes and other issues when swapping servers and swapping between local gamemodes and online play. There are still some ongoing glitches to look into, but it's quite an improvement over how things were before. Fuzzle has been sitting exams but completed a refactor of the materials scripts and configuration files. This shouldn't affect mods from what I can tell, it just cleans up the code a little. Diprog and the rest of the Russian translators have helped extend the translation support a huge amount, and provided RU translations to match. This includes menu translations, gamemode and UI translations, a few tricky edge cases with descriptions, and indicating requirements for improved support for unicode and localisation within the engine. Asu has been very productive this month; There is a new profiler, improved map loading performance, a fix for a long-standing linux bug, more french translations and a handful of smaller things as well - check out the changelog for more info. It's quite a "technical" addition, but the new profiler will help vanilla devs, contributors and modders diagnose and fix performance issues in their scripts and in the engine. It profiles both engine-side tasks and all script hooks, can sample at a reduced rate, and reports multiple metrics per measurement. It's also gentler on performance than the previous profiler. Scripts are in yellow, engine tasks are in grey. To turn on profiling, use /g_measureperformance 1 in the console on startup or once the game is loaded, and then /performance to dump the current performance statistics. You can clear out the existing samples with /performanceflush - perhaps if you want to measure performance around a specific event. Because of the slight performance overhead, this setting is turned off each startup, so setting it in your auto-config won't work. Big thanks to all the contributors! Outside of the game, our Discord Server also got verified which means we have a fancy new invite link and higher performance voice servers. We're currently hovering around 900 members, and as ever it's onwards and upwards! Thanks so much to the discord admins for their tireless efforts and to the community for rallying behind the server so well. Enjoy the update! Max Code: Full changelog: Translations: [added] (work in progress) menu translation ability [added] AddGlobalMessageReplacement to handle serverside messages still needing translation clientside [modified] significantly extended translation capability (Joint KAG dev and RU translation effort) - see the RU translation json for the probably-most-up-to-date strings [added] more RU translations (thanks Diprog + RU translation folks) [added] more FR translations (thanks Asu) [fixed] TTH TradeItem translation issues [added] linux dedicated server is forced to EN locale with a warning if it was something different. This means we can rely on translated strings from server still being in english for re-translation on client (eg descriptions). Performance/Optimisation: [modified] improved map loading performance (thanks Asu) [removed] irrlicht enums no one uses/should use anyway (thanks Asu) [removed] legacy map generation for smaller compiled size and fewer dependencies (thanks Asu) Miscellaneous: [added] material script and config refactor (thanks Fuzzle) [added] new profiler (thanks asu) [updated] cruxiat head [modified] better/more consistent descriptions in some challenge missions [modified] Similar matches are prioritized over soft matches (thanks Asu) [fixed] precache and scripts force reload after disconnect (thanks MM) [reverted] verra's change from last build (sorry Verra) - people are suspicious of this change currently so we should run a week or two without it and see if the suspicions hold up. [added] new emotes to spritesheet (can be used through config file only at this stage, treat these as unfinished and might vanish) [updated] new discord link (thanks fuzzle, congrats discord folks) Linux/OSX: [fixed] linux DLC heads and main menu background issues (thanks Asu) [modified] enabled SSE2 on mac and linux for performance (thanks Asu) Modding Compatibility: [important] map loading changes are likely to bite anyone with a custom map loader if it's based on BasePNGLoader. Lowest effort fix would be getting the old BasePNGLoader from github, renaming it to OldPNGLoader and including it in your mod directly. Better fix would be observing the changes that have been made and applying them to your own loader PNGLoader::handlePixel's signature is the main change - contact Asu for help in discord if you need it! Anyone only using customblocks.as should be unaffected though, as nothing has changed there. [minor] new serialisation for TradeItem in TTH If you use/abuse the TTH trading system this is something to be careful of Check the changes to TradingCommon.as if you want the details.