Hello Logicians, We've just released game update 0.92.3. This update contains many improvements and optimizations to game startup, lots of improvements to modding, and a healthy dose of bugfixes. We hope you enjoy this update! More updates are coming soon :) And by the way, in case you haven't seen, you can now support Logic World development on Patreon.
Game startup
Added a loading screen with progress bars during game startup. This screen is visible after Unity has finished loading, which takes about 5 seconds.
The game starts up much faster now, especially when you have a lot of mods installed.
If the game cannot start because of an error in a settings file, this information will now be presented on an error screen instead of silently failing.
A much more helpful error is now shown during startup if the base mod MHG is not installed.
Fixed the game window not responding to requests to close it (i.e. alt+F4) during the startup process.
Fixed some issues that could cause the game to crash or get stuck during startup.
Building
When you Grab or Clone a component that was placed with fine rotation, its rotation will no longer be snapped to 90 degrees; the fine rotation is now preserved.
Fixed various weird inconsistencies when using fine rotation during a Multi-Grab or Multi-Clone operation.
Modding
Archive mods now have full feature parity with folder mods.
Improved performance of archive mods.
Improved performance of loading mod settings and localizations.
Mods can now provide DLLs which the game will automatically load. DLLs must be provided in folders assemblies/client/, assemblies/shared/, assemblies/server.
Mods can now be loaded from sub-directories of GameData/. Folders which start with a . or which contain an ignore file won't be scanned for mods.
Renaming mod folders no longer breaks mod resource references. These references are now based on the mod ID specified in manifest.jecs, not the folder name.
Updated the structure of the cache/ folder to allow caching mod resources.
Mods are now sorted by priority and mod identifier to ensure consistent load order.
Component definition files are now sorted by path to ensure consistent order in the Selection Menu.
The server now makes sure all its assemblies are fully loaded before any mods are loaded. This fixes compilation errors with mods that used System.IO.Compression and MessagePack.Annotation.
Broken mod setups and manifest files now trigger an error screen instead of only logging the issue and skipping the mod.
Improved error messages in the server console when a mod fails to load.
IModFiles.EnumeratingFiles() now requires a search pattern argument. This enforces efficient filtering, since you shouldn't be checking every file as that is quite slow.
Replaced GameData.Mods commands with ModRegistry.Installed and ModRegistry.Loaded.
Added ClientMod.GameStartupCompleted(). This is called after the game has finished loading, but before it starts background tasks (like game loop / networking).
A new LogicProfiler API is now available for measuring the execution time of your code. Currently, it only works while the game is starting up.
Improved error message if a component type is missing placing rules.
Removed archive mod tampering detection.
Fixed the game using files from mods which are not loaded (#348).
Fixed mod identifier regex matching invalid mod identifiers.
Fixed collision error if multiple mods provide the same instrument sample name.
Command line arguments
Client command line arguments now start with two dashes (--) instead of one dash (-).
Added client command line argument --help which prints the available command line arguments.
Added client command line argument --profile-startup which generates a profiler log file of the startup.
Startup arguments for Unity and mods must now be appended after a -- separator argument. Here's an example for using the Logic World argument --open-save at the same time as the Unity argument --screen-fullscreen: ./Logic_World --open-save "demo_world_official" -- --screen-fullscreen.
Miscellaneous
Updated engine version to Unity 6000.0.65f1.
Improved Unity physics settings to increase performance in very large worlds.
3D models are now exported using glTF with instancing enabled by default, improving render performance and reducing file size.
The command Debug.TargetInfo now prints component CustomData as hexadecimal instead of base64.
Made some code more robust when the error screen is opened during world load.
JECS parsing errors now show the full file path in the stacktrace and on the error screen.
Fixed an issue where the game could go to an error screen if you leave a server while a PartialWorld download is in progress.
Fixed the Demo World prompt causing a background exception in the main menu after it's been dismissed.
Fixed some DOTween warnings in console.
Fixed newly-arrived chat messages not appearing until you open chat.