1. Logic World
  2. News

Logic World News

Logic World: The Subassembly Update is out now!

[p]Hello gamers,[/p][p]We've been hard at work on a new Logic World update for you, and it's out now![/p][p][/p][p]Highlights of update 0.92:[/p]
  • [p]Added Subassemblies: groups of components and wires that you can save and reuse elsewhere.[/p]
  • [p]Subassemblies can be uploaded and shared on the Creation Hub.[/p]
  • [p]Added Fixed Perspective: by pressing a keybind (default: double-tap [c]Left Alt[/c]) you can freeze the camera in place, but still interact with the world by moving the mouse around on the screen.[/p]
  • [p]Tons of bug fixes.[/p]
  • [p]Tons of performance improvements, especially for very large builds.[/p]
  • [p]Lots and lots small details have been improved and polished.[/p]
[p]The full changelog is at the bottom of this post.[/p][p][/p]
Playing and yapping with us, the dev team
[p]To commemorate this update, we sat down to play it together. While we played, we read through the changelog and gave our commentary as well as behind-the-scenes info on the development of this update.[/p][p][/p][previewyoutube][/previewyoutube][p][/p]
Thank you
[p]A huge thanks to the many people who played the 0.92 previews. Your feature feedback and bug reports got this update over the finish line. We couldn't have done it without you![/p][p][/p]
More to come
[p]We've got lots more to do on this game. We're determined to make Logic World the best circuit-builder ever.[/p][p]More updates are coming soon. If you want to be the first to know, subscribe to our newsletter and join the Logic World discord.[/p][p][/p]
Full 0.92 Changelog
[p]Here's everything new in Logic World 0.92, since 0.91.3.[/p][p][/p][p]Subassemblies[/p]
  • [p]You can now save "Subassemblies" -- groups of components and wires that you can reuse across different worlds and servers.[/p]
  • [p]You can save subassemblies with the Action Wheel or with a keyboard shortcut (default Ctrl+K).[/p]
  • [p]Added a new tab to the Selection Menu for your saved subassemblies.[/p]
  • [p]Added a menu for viewing and editing details of a saved subassembly.[/p]
  • [p]You can press a button in that window to upload your subassembly and share it online.[/p]
  • [p]Subassemblies shared online can be downloaded in-game. If you're playing in a world when a download completes, the downloaded subassembly will be added to your hotbar.[/p]
  • [p]Subassembly thumbnails are cached on disk. You can edit these files to make custom thumbnails if you want to![/p]
  • [p]Via manual editing of a subassembly's [c]meta.jecs[/c] file, you can add custom search tags to a subassembly.[/p]
  • [p]Added command: [c]Subassemblies.SaveCurrentSelection \[name][/c][/p]
  • [p]Added command: [c]Subassemblies.AddToHotbar [/c][/p]
[p]Building[/p]
  • [p]Added "Fixed Perspective" feature. By pressing a keybind (default: double-tap [c]Left Alt[/c]) you can freeze the camera in place, but still interact with the world by moving the mouse around on the screen.[/p]
  • [p]When you've confirmed a placement, it will now immediately become solid. Previously you would need to wait for the server to process the placement, which could take a while when there are a lot of changes.[/p]
  • [p]Significantly improved performance of Resizing operations for components with many children.[/p]
  • [p]Significantly improved performance of Grab and Clone operations for large objects.[/p]
  • [p]Improved performance when selecting a large number of components.[/p]
  • [p]The "Place Wire" input action is now marked "tap to toggle" by default, so you can either click-and-drag to place wires like before, or you can click on one peg to select it and then click on a second peg to create a wire between them.[/p]
  • [p]Pressing the Delete key (default [c]R[/c]) while drawing a board will now cancel that action.[/p]
  • [p]The "failed action" sound now plays when you fail to place an item from the hotbar.[/p]
  • [p]The "delete item" sound now plays when a Clone action deletes a wire.[/p]
  • [p]Placing wire ghosts is now smoother visually, especially when there is server lag.[/p]
  • [p]The Help menu will now inform you that you can hold Ctrl for free rotation when Grabbing or Cloning on a smooth surface.[/p]
  • [p]Changed the default binding of Offset Hold to [c]H[/c].[/p]
  • [p]Fixed visual flickers when toggling board flatness during board drawing.[/p]
  • [p]Fixed resizing or rotating a board never working when a very large number of components are placed on it.[/p]
  • [p]Fixed an exception with Resizing that could happen if you tried to resize an object before the server finished confirming a previous building operation. In these cases, the Resize operation will fail now (and you can try again a moment later).[/p]
  • [p]Fixed an exception when you finish a Resizing operation when another player moved that component while you were resizing it.[/p]
  • [p]Fixed a crash to error screen when resizing a component where a wire is attached at both ends to that component.[/p]
  • [p]Fixed not being able to undo placing or deleting a wire after deleting an object attached to the wire.[/p]
  • [p]Fixed a placing issue with Standing Displays that have four pegs where they would act like 2x1 components instead of 2x2.[/p]
  • [p]Fixed game-killing StackOverflow errors when building with deeply nested component trees.[/p]
  • [p]Fixed the Edit Display Menu closing instantly if you're editing multiple Displays and you change their peg counts.[/p]
[p]Components[/p]
  • [p]Updated the default Display configurations. In order to see the new defaults, you have to start a new sandbox, and delete your [c]DefaultExtraData/MHG.DisplayConfigurations[/c] folder if you have one.[/p]
  • [p]Fixed new display configurations sometimes being a grayscale gradient instead of the intended rainbow.[/p]
  • [p]If a Key is hacked to not be bound to an input, it will now display "\[None]" on its label. (Previously it would display "FancyInput.RawInputType.None" which was way too long and looked bad. Don't worry, hackers, we're looking out for you.)[/p]
  • [p]The text on top of Keys is now flush with the surface of the key, so it doesn't float in the air above.[/p]
  • [p]Fixed the text on top of Keys being outlined when you look at the base of a Key.[/p]
  • [p]Fixed anomalous behavior when trying to place an object on the very top of a Flag.[/p]
  • [p]Flags will now continue to flap in the wind uninterrupted when you change their color.[/p]
  • [p]Fixed the Flag's thumbnail looking too dark.[/p]
  • [p]Fixed typo in the name of the Drum instrument "Splash Cymbal" (it was previously called "Splash Cymba l").[/p]
  • [p]Fixed Label text escaping its bounds in some cases where there's a lot of whitespace in the text (#271).[/p]
  • [p]Fixed a minor UI issue where the shown state of inputs would be incorrect when you start editing a display configuration.[/p]
  • [p]The hint text that shows up while sitting in a chair, telling you how to leave the chair, is now localized. Also, the hint now shows the correct key if you change it to something other than escape. Also, it has a little shadow now to make it easier to read.[/p]
[p]Music[/p]
  • [p]The in-game music is now less repetitive, and a given track will now never play if it was in the previous 5 played tracks. This number can be configured with the new secret setting [c]MHG.Secret.MinSongHistoryDistance[/c][/p]
  • [p]Music files are now distributed as ogg vorbis instead of mp3, meaning smaller files with better quality.[/p]
  • [p]The music player will now ignore non-music files inside music folders instead of trying to play them.[/p]
  • [p]New music won't start playing anymore if the pause menu is open.[/p]
[p]Graphics[/p]
  • [p]Added an option for 8192x8192 shadow maps.[/p]
  • [p]Added an option for three shadow cascades (previously only 1, 2, and 4 were available).[/p]
  • [p]Added new anti-aliasing options for FXAA and SMAA.[/p]
  • [p](Temporarily) removed the anti-aliasing options for MSAA.[/p]
  • [p]Added setting: "Motion Blur" (disabled by default).[/p]
  • [p]Tweaked the Bloom and Ambient Occlusion effects to be more subtle.[/p]
  • [p]Ambient Occlusion is now disabled by default.[/p]
  • [p]Text that appears physically in the world (the text on Labels, Keys and Singers) is now affected by the lighting in the world.[/p]
  • [p]SHINY BOBBY now properly reflects HDR content such as the teleporting VFX.[/p]
  • [p]Removed the setting for drawing shadows on additional lights, which was confusing and unnecessary as there are no additional lights in the game.[/p]
  • [p]Added new settings preview image for the Bloom setting.[/p]
[p]Graphics APIs[/p]
  • [p]Vulkan is now the default graphics API on Linux. This gives a substantial performance increase and all the stability issues should be fixed now. If you still need to use OpenGL, it's available with [c]--force-glcore[/c].[/p]
  • [p]Removed support for OpenGL on Windows. The only backends available on this platform now are Direct3D 11 (used by default) and Vulkan (available with [c]--force-vulkan[/c]).[/p]
[p]Outlines[/p]
  • [p]Overhauled outline visuals. They are now much crisper and higher quality.[/p]
  • [p]Adjusted the layering of outlines to improve clarity in situations where many objects are outlined.[/p]
  • [p]Added settings for having a different outline intensity where the object being outlined is obscured.[/p]
  • [p]Added settings for all the built-in outline colors.[/p]
  • [p]Removed the settings for "Outline Fill" (which might come back later) and "Outline Corners" (which is meaningless in the new system).[/p]
  • [p]Looking at a player no longer outlines an object that's hidden behind that player.[/p]
  • [p]Fixed many cases where outlines were incorrect, missing, or flickering.[/p]
  • [p]Added secret setting: [c]MHG.Secret.Outline.NoWorldMeshing[/c]. This reverts a new outline optimization (in case of issues).[/p]
[p]Simulation speed[/p]
  • [p]Improved client-side performance and fixed a memory leak when the simulation speed is very high.[/p]
  • [p]You can now pause, resume, and step the simulation using keyboard shortcuts while the UI is hidden. (#512)[/p]
  • [p]Many aesthetic tweaks to the Simulation Speed menu, including new icons to make it more clear whether the simulation is running or frozen. The "running" icon is animated.[/p]
  • [p]Added secret setting: [c]MHG.UI.SimulationSpeedMenu.RunningIconRotationDegreesPerSecond[/c][/p]
  • [p]Fixed some layout issues with the Simulation Speed menu.[/p]
[p]Hotbar[/p]
  • [p]The hotbar is now hidden during Grab and Clone operations, during Multi-Select, and during wire placing.[/p]
  • [p]Pressing a number key that is higher than the number of items in the hotbar will now select the last item in the hotbar, instead of doing nothing.[/p]
  • [p]Major improvements to scroll input handling for scrolling through the hotbar in environments where scroll input is not discrete. This includes MacOS with the default system settings, and all OSes when using a touchpad.[/p]
  • [p]The "next hotbar slot" and "previous hotbar slot" bindings now have options for horizontal scrolling by default (in addition to the existing options for vertical scrolling). This is mostly relevant when using a touchpad, as it allows you to scroll through the hotbar by scrolling the touchpad along the same axis as the hotbar is laid out.[/p]
  • [p]Fixed being able to hover over and interact with hotbar items while the chat window is open.[/p]
  • [p]Fixed being able to hover over the hotbar item in-between areas while not dragging a hotbar item.[/p]
[p]Upload menu[/p]
  • [p]Improved the layout of the Upload menu.[/p]
  • [p]Pressing the "Cancel" button during an upload no longer closes the Upload menu.[/p]
  • [p]Pressing the "Back" keybind (default [c]escape[/c]) during an upload now cancels the upload and closes the Upload menu.[/p]
  • [p]If an error occurs during an upload, the error will now be shown on screen along with a "Retry" button.[/p]
  • [p]Fixed broken text on the "Cancel" button while a download is in progress.[/p]
  • [p]Removed the button to go to your singleplayer sandbox list after a successful download.[/p]
  • [p]Added a character limit to the download URL text box, also made the text box wider.[/p]
[p]Color chooser[/p]
  • [p]Tweaked the Quick Color Chooser so there's no longer any "dead" space between the Big Clicky Colors.[/p]
  • [p]Color picker: the setting "Quick Picker Open State" now has a default value of "Remain in Previous State" (was previously "Always Open to Quick Menu").[/p]
  • [p]Quick Color Chooser: fixed an issue where one or more Big Clicky Colors could incorrectly display as selected after resetting the list of saved colors.[/p]
  • [p]Fixed the "show/hide sliders" toggle in the Color Picker menu having a WAY too-big icon.[/p]
[p]Misc menu changes[/p]
  • [p]Main Menu: added a link to the Logic World Discord[/p]
  • [p]Added secret setting: [c]MHG.Secret.MainMenu.ShowDiscordLink[/c][/p]
  • [p]Improved the layout of the online services UI (in the top left of the Main Menu). (#234)[/p]
  • [p]Minor tweaks to the Multiplayer Menu (tabs are smaller, moved count to right side of tab, refresh button aligned better)[/p]
  • [p]We've reworked the screen you see when you're disconnected from a server. When the server sends a long disconnection message, the screen now handles it better, giving you a scrollbar instead of making the message tiny.[/p]
  • [p]The Help menu no longer states whether a binding is tap-to-toggle (this information was just visual noise/clutter).[/p]
  • [p]Fixed report bugs menu not opening when an error occurred during startup.[/p]
[p]General UI[/p]
  • [p]Multiplayer settings avatar preview: fixed the location of the sun not being aligned with where Bobby is being lit from[/p]
  • [p]Multiplayer settings avatar preview: fixed the lighting from the world affecting the preview[/p]
  • [p]Fixed long localized text being displayed weirdly in settings tabs. (#80)[/p]
  • [p]Hotbar: fixed some weird visual glitchiness when trying to insert an item into the middle of a full hotbar.[/p]
  • [p]Added keyboard shortcuts for changing the selected tab while in a menu with tabs. By default these are [c]ctrl+tab[/c] to go to next tab, [c]ctrl+shift+tab[/c] to go to previous tab, and [c]ctrl+\[number key 1-6][/c] to select a specific tab.[/p]
  • [p]Fixed an issue where links in text would be stuck in the "hovered" state if you move your mouse directly from one link onto another link with no time in-between where you're not hovering over any link.[/p]
  • [p]Several buttons in the game which open a URL when clicked ("Browse Creations" in the Main Menu and Download Creation Menu, the "Help Translate Logic World" button in the Languages menu, the new Discord button in the Main Menu) now show a tooltip of the URL the button opens when the cursor hovers over the button.[/p]
  • [p]Fixed the cursor looking way to big on Linux and MacOS when custom cursors are displayed, i.e. when hovering over the edge of a resizable menu.[/p]
  • [p]Added secret setting: [c]MHG.Secret.CursorModeWhenCustomCursorActive[/c][/p]
[p]Input and controls[/p]
  • [p]When an input action is marked as "tap to toggle", that property is now optional. This means you can either tap once to turn it on, then tap again later to turn it off, or hold the button down and release later to turn it off.[/p]
  • [p]Added setting: "Tap to Toggle Time"[/p]
  • [p]Fixed weird behavior when editing controls while the game is paused, where no matter how long you waited between tapping the same key multiple times, it would always be considered a double tap (or a triple tap, or (much) more).[/p]
  • [p]Added secret setting: [c]FancyInput.ScrollDeltaThreshold[/c][/p]
  • [p]When displaying a binding for an arrow key, it will now show an icon of an arrow instead of text that says "Up"/"Down"/"Left"/"Right".[/p]
  • [p]When displaying a binding on MacOS, the Control, Option, and Command keys will use symbols instead of text (in accordance with Apple's Human Interface Guidelines)[/p]
  • [p]Several UI-related keybindings which were previously not editable have been added to the settings menu. You can find them under Controls -> User Interface.[/p]
[p]Zoomies[/p]
  • [p]You can now only use the Zoom function (bound to [c]Y[/c] by default) in the regular Building game state. It won't work in other first-person game states like Resizing and Grabbing.[/p]
  • [p]Fixed the Zoom binding conflicting with other input actions (it would previously conflict with [c]Ctrl+Y[/c] for Redo).[/p]
  • [p]Fixed being able to get stuck zoomed-in if you opened a menu while zoomed-in.[/p]
[p]Servers and Multiplayer[/p]
  • [p]The server will no longer print a "\[player] left the game" message when the player disconnects before fully loading into the world.[/p]
  • [p]Fixed the existence of duplicate, frozen players in multiplayer that would appear when multiple players join or leave the server within a short period of time.[/p]
  • [p]Fixed a server exception when a player gets kicked or joins with another client.[/p]
  • [p]Fixed the server console printing "Simulation speed set to TPS" whenever a new player joins. It now is only printed when the TPS actually gets changed.[/p]
  • [p]Fixed log spam when closing the server's input stream.[/p]
  • [p]Fixed the server command [c]stats.server[/c] usually printing the incorrect value for server TPS.[/p]
  • [p]Improved the help text for some server command-line arguments.[/p]
  • [p]Removed the command-line arguments that would let you run the Dedicated Server in plaintext mode ([c]--plain-text[/c] and [c]-t[/c]). The dedicated server now always runs in plaintext mode. This is less buggy, more consistent between platforms, and it fixes an issue where text couldn't be entered on Windows 11.[/p]
[p]Saving and Backups[/p]
  • [p]When the game saves, it now first writes the save data to a temporary file, preventing file corruption if the save process is interrupted.[/p]
  • [p]The backup creation timer is now saved and thus short sessions will no longer keep resetting the backup timer.[/p]
  • [p]Backup deletion is now more intelligent, discarding backups more slowly the older they are, meaning there will be many recent backups but also some quite old ones available in case you need to revert at some point. The behaviour is fully customizable in the server config.[/p]
  • [p]Merged config settings [c]DoAutosaveWhileServerIsEmpty[/c] and [c]DoAutoBackupsWhileServerIsEmpty[/c] into [c]DoAutosaveAndBackupsWhileServerIsEmpty[/c].[/p]
  • [p]The file paths to Backups have been made much shorter, which helps prevent issues on a certain operating system that limits paths to 260 characters.[/p]
  • [p]Fixed chance of a backup being corrupted when it was created at the same time as a save was created.[/p]
[p]Online[/p]
  • [p]Updated the game to use the new HTTP-based Logic World Online Services API, which replaces the legacy gRPC API.[/p]
  • [p]Updated the protocol handling for [c]logicworld://[/c] links to use our new format for them (now called "logicworld:// v1").[/p]
  • [p]Added secret setting: [c]MHG.Secret.Online.Endpoint[/c][/p]
  • [p]Added server config value: [c]OnlineEndpoint[/c][/p]
[p]Modding[/p]
  • [p]Reworked how dynamic prefabs and placing rules are defined in GameData and implemented in code. The new system is much cleaner and more flexible, and allows generating prefabs or placing rules based on all properties of the component, not just the peg counts. Mods that add components with dynamic prefabs or placing rules will need to be updated.[/p]
  • [p]Modders can now start the MultiSelector with an initial selection. Write some fancy selection modes![/p]
  • [p]Added [c]InjectTriggersInto[/c] to FancyInput context definitions. The MHG mod context definitions make use of this now. Modders can use it to inject keybindings to input contexts in the base game or in other mods. Very useful for adding custom building operations.[/p]
  • [p]Added a new property, [c]ShouldBeOutlined[/c], to component decorations and blocks. When set to false, these objects will not be outlined under any circumstances. This can improve outlining performance of complex modded components that don't need every part to be outlined.[/p]
  • [p]Added ability for modders to have CircuitBoard-like components which directly inherit the CircuitBoard class. These custom boards will behave like normal boards, but can't have extra custom data.[/p]
  • [p]Mods can now use C# language version 13 (was previously C# 7).[/p]
  • [p]Made the error message more helpful when a mod dependency cannot be found because that mod is not installed.[/p]
  • [p]Mod stacktraces now contain line numbers (a PDB file is generated).[/p]
  • [p]New Keybindings can now be added to the building game state via the FirstPersonInteraction class.[/p]
  • [p]Added some new methods to the JECS API.[/p]
  • [p]Added [c]ModRegistry[/c] which allows modders to easily check which mods are installed/loaded and access their files.[/p]
  • [p]The client now sends mod versions to the server. Server-side mods can now deny connections from clients with an outdated version of the mod.[/p]
  • [p]Fixed mod BuildingOperations not being loaded consistently.[/p]
  • [p]Fixed mod GameStates not being loaded at all.[/p]
  • [p]When placing modded components on a server which does not support them, you now get an error sound and a console message instead of ghost components.[/p]
  • [p]The Selection Menu now hides components which are not available on the server.[/p]
  • [p]Fixed modded network packets failing to parse due to inconsistent mod load order between client and server.[/p]
  • [p]Packet IDs are now set authoritatively by the server. This allows optional mods to add new packet types, without breaking packets for clients that don't have the mod installed.[/p]
  • [p]Client-only mods will no longer be announced to the server (keeps network packet smaller & nice for mod-list privacy).[/p]
  • [p]When placing modded components/subassemblies on a server which does not support them, you now get an error sound and a console message instead of ghost components.[/p]
  • [p]Improved the disconnection message when the server rejects a client for not having the required mods. The message now contains mod versions, and it has some formatting to make the list easier to read. It also includes any not-installed optional mods as "suggested". Also, the list of missing mods is now ordered alphabetically.[/p]
  • [p]Add 'ClientDependencies' and 'ServerDependencies' to mod manifest files.[/p]
  • [p]Replaced mod manifest properties 'ClientOnly' & 'Optional' with 'Type'. The new property can have values: Normal (this is default), Optional, Independent, ClientOnly, ServerOnly.[/p]
[p]Localization[/p]
  • [p]Updated translations and translator credits for Bulgarian, Chinese (Simplified), Croatian, Czech, Dutch, Estonian, Finnish, French, German, Hebrew, Hungarian, Japanese, Korean, Pirate, Polish, Portuguese (Brazil), Romanian, Russian, Slovene, Spanish (Spain), Swedish, Turkish, and Ukrainian.[/p]
  • [p]Slovene is no longer incorrectly called "Slovenia" in the game files.[/p]
[p]Thumbnails[/p]
  • [p]Errors when rendering thumbnails are now handled properly and will result in a pink-and-black error texture.[/p]
  • [p]Added command: [c]Thumbnails.RenderComponentToDisk \[resolutionX] \[resolutionY][/c][/p]
  • [p]Added command: [c]Thumbnails.RenderSubassemblyToDisk \[resolutionX] \[resolutionY][/c][/p]
  • [p]Added secret setting: [c]MHG.Secret.DiskRenderCommands_ThumbnailRenderProperties[/c][/p]
  • [p]Replaced many of the [c]MHG.Secret.Thumbnails[/c] secret settings with one mega-setting, [c]MHG.Secret.ThumbnailRenderProperties[/c][/p]
  • [p]Added secret setting: [c]MHG.Secret.BigThumbnailRenderProperties[/c][/p]
  • [p]Renamed the command [c]ExportThumbnailCache[/c] to [c]Thumbnails.ExportCache[/c][/p]
  • [p]Renamed the command [c]RegenerateThumbnailCache[/c] to [c]Thumbnails.RegenerateCache[/c][/p]
[p]Export[/p]
  • [p]Removed OBJ export and the associated [c]objexport[/c] commands.[/p]
  • [p]Added [c]3dexport[/c] commands, which support glTF and glb export of worlds and subassemblies.[/p]
[p]Platforms[/p]
  • [p]MIDI input is now supported on Apple Silicon devices.[/p]
  • [p]The MacOS version of the game now has native binaries for Apple Silicon.[/p]
  • [p]Fixed links not properly opening in a web browser on some Linux systems.[/p]
[p]Stability[/p]
  • [p]Significantly improved server performance when cloning or placing objects with large clusters (i.e. a lot of pegs all connected together). Previously this caused players to be stuck until they rejoind.[/p]
  • [p]Fixed that when the game tries to send very large network packets it would corrupt the network state instead of crashing.[/p]
[p]Technical updates[/p]
  • [p]Upgraded engine version to Unity 6.[/p]
  • [p]Upgraded the server runtime to dotnet 9.0, which gives us about 10% more performance in server-side tasks like loading saves and running the simulation.[/p]
  • [p]Upgraded most of our DLLs to use netstandard 2.1.[/p]
  • [p]Updated Font Awesome to 6.7.2, which comes with dozens of new icons and many tweaks to existing icons.[/p]
  • [p]The game's config file format has been changed from [c].succ[/c] to [c].jecs[/c]. Your old config files will be automatically converted.[/p]
  • [p]Various fixes to JECS file formatting.[/p]
[p]Commands and stuff[/p]
  • [p]Added command: [c]Debug.ListBuildingOperations[/c][/p]
  • [p]The command [c]Debug.TargetInfo[/c] now additionally prints a component's depth in the tree and its number of nested children.[/p]
  • [p]Added secret settings: [c]MHG.Secret.TrimStalePartialWorldsIntervalSeconds[/c], [c]MHG.Secret.MaxAgeOfStalePartialWorldsSeconds[/c], [c]MHG.Secret.PartialWorldDownloadTimeoutSeconds[/c][/p]
  • [p]Added server config values: [c]TrimStalePartialWorldsIntervalSeconds[/c], [c]MaxAgeOfStalePartialWorldsSeconds[/c], [c]CullStalePartialWorldActionsIntervalSeconds[/c], [c]MaxAgeOfPartialWorldActionSeconds[/c][/p]
  • [p]Renamed the [c]subassemblycache.*[/c] commands to [c]partialworldcache.*[/c] and fixed them all not working.[/p]
[p]Miscellaneous[/p]
  • [p]Improved player spawning: instead of spawning into the world at the origin and then immediately teleporting to your player location, you will now properly spawn into the world at your player location. This can significantly improve performance when loading into the world if your player location is far away from the origin and there is a lot of complicated stuff at the origin.[/p]
  • [p]Fixed occasional exceptions related to the help menu being spammed in the console.[/p]
  • [p]Fixed the ground becoming colorless and distorted during the teleport sequence if the teleport is to somewhere far away.[/p]
  • [p]Fixed your own shadow teleporting immediately when the teleport sequence is initiated. Your shadow now teleports at the same instant that you do.[/p]
  • [p]Fixed your own reflection teleporting immediately when the teleport sequence is initiated. Your reflection now teleports at the same instant that you do.[/p]
  • [p]Fixed the client's and server's data about world structures getting out of sync sometimes, leading to various bugs.[/p]
  • [p]Fixed issues where palette loading crashed the game on startup when palette was corrupted or not installed. (#448)[/p]
  • [p]When a Sandbox or Subassembly has a very long name, previously the game would create files/folders on disk with very long names. These file/folder names are now capped at 200 characters, which prevents crashes on Linux.[/p]
  • [p]Errors with the Integrated Server which occur before the server initializes (e.g. missing libraries) now show up in the game logs and debug console.[/p]
  • [p]Added Herobrine.[/p]

Logic World Wednesdays #123: 'Twas the Week Before Update

[p]...and all through Mouse Hat Games, all the developers were blogging, writing sections and attaching their names.[/p][p]Okay, but seriously, we're finishing up the next game update (0.92, The Subassembly Update) after exactly 19 months of work. It's a big update and we're very proud of it. It's the start of a new era for Logic World: the game has graduated from a janky proof-of-concept to a polished, stable experience. (In our opinion, at least.)[/p][p]v0.92 will officially release one week from today, on October 22nd, 2025. We have a release candidate ready for testing now (more details at the bottom of this blog).[/p][p]It's been a busy week for us as we prepare for the update. Here's some of what we've been working on![/p][p][/p]
Subassembly uploads - Felipe, Jimmy
[p]We've added subassemblies to the Creation Hub! You can them check out live on the website at [/p][p]https://logic.world/creations/subassemblies. Here's a video demonstration of uploading and downloading subassemblies from the hub:[/p][p][/p][previewyoutube][/previewyoutube][p][/p][p]We also did some polishing up of creation pages. There's a new sidebar, a refined carousel for screenshots, a new "Details" tab, and subassembly pages get an interactive 3D model![/p][p][/p][p][/p][p][/p]
Better Backups - GHXX
[p]As some of you (unfortunately) may already have seen, Logic World automatically creates backups at regular intervals. I say unfortunately, as that generally implies that something went really wrong and you had to restore your world from a backup. And that is precisely the point. If something horrible happens we want to make sure there is a very high chance you won't lose your save -- especially since some people poured hundreds of hours into them.[/p][p]In the past, the approach was rather simple, every now and then create a backup and if we have too many, throw the oldest ones away. Sadly the configuration was limited to just being able to determine how often backups are made and how many should be kept.[/p][p]This comes with a bit of an issue, imagine you are running a multiplayer server with people playing every now and then and you don't realize that someone deleted important stuff. As the server does not crash, eventually all backups will be deleted that contained those now deleted builds.[/p][p]A naive solution could be to simply extend the time between backups. While this would have been easily possible with the old system, this may cause your newest backup to be much older, making you lose more progress than before (if you decide to restore it).[/p][p]Ideally we would combine the benefits of those two ways, so, keeping a few very recent backups and also some long-term ones. And this is exactly what the new system does![/p][p]There is now a so called Backup Schedule defined in the server [c]config.jecs[/c]:[/p]
BackupSchedule:
- 4*15m # Create 4 backups per hour,
- 2*12h # keep 2 backups of age 4*15m+12h and 4*15m+2*12h respectively.
- 2*1d # After that, keep one backup of age 4*15m+2*12h+1d and one of 4*15m+2*12h+2d.
- 2*1w # Finally keep one backup a week older than the previous one,
# and one that is another week older.
[p]As already explained in the comments, there will be 4 very recent backups, and then the amount of backups per time is gradually decreased until the one-backup-per-week segment. You can add as many segments as you like.[/p][p]For instance, when choosing [c]4*30s; 2*1m; 2*10m; 2*1h[/c], you would end up with something along the following in your backups folder:[/p][p][/p][p]Keep in mind that making a backup twice a minute is way overkill, though helpful for developing so we don't need to wait for ages.[/p][p]Now, the way it works is that based on this schedule, certain backups are dropped, and this happens more often in the smaller segments (30s, 1m) compared to the longer ones (10m, 1h). When a backup is created and there are now too many within such a segment, the extra ones in that segment are deleted, having the effect that few gradually move up into the longer segments.
While nobody is playing, backups effectively do not age, so even if the server is inactive for a long time it will retain the proper scheduling.[/p][p]So now you can finally have both short- and long-term backups which should make running multiplayer servers a bit less stressful. Or, if you ever accidentally delete a build that you really wanted, you can still dig it up in the backups folder potentially, provided you realize within 2-ish weeks of game time (if you are using the default schedule).[/p][p]Perhaps as a small note, turns out backups had a chance of being incomplete if a backup was created exactly when an autosave happened. Though luckily that was never reported -- so likely nobody ran into it. Anyway, now it should be good.[/p][p]To end on a positive note though, the timer responsible for triggering backup creation is now saved.
Previously, when playing for short periods of time, e.g. 10 minutes, the backup timer would not trigger if it was set to, e.g. 15 minutes. When you would then reload the world, this timer would start out at 0 again, so no backup might ever have been made if you never played for long enough. Now this is properly saved between sessions (on a per-world basis), so you will always have backups now![/p][p][/p]
Bobavatars - Felipe
[p]While browsing through some comment threads in the website I came across a couple discussions between users where none of them had uploaded an avatar of their own, which made it quite difficult to tell them apart and follow the conversation. To remedy this, I thought about adding identicons, which are little autogenerated icons that give each user a unique look based on something like their username or email.
They’re a simple way to tell people apart without needing everyone to upload their own profile picture, and what better way to portray Logic World users than the very character they control in-game?[/p][p]To that end, I've added automatically generated Bobby faces as the default avatar for all users, using colors derived from your username.[/p][p][/p][p]In the future we may add ways to customize your Bobby, and maybe even sync your in-game appearance settings with your logic.world settings![/p][p]Are you a logic.world user without a custom profile picture? What do you think of your new Bobavatar? Comment on this post to show it to the world![/p][p][/p]
Decrappifying the simulation speed menu - Jimmy
[p]Since we introduced a menu to control the simulation speed, it's been a mess. To indicate that the simulation was running, we used a "play" icon, and to indicate that the simulation was paused, we used a "pause" icon.[/p][p][/p][p]This is actively confusing! In UIs like video players, it's standard convention to show the play icon while the video is paused, and show the pause icon while the video is playing. People expect the button icon to indicate what action is taken when the button is pressed, not the current state.[/p][p]I've watched players get confused by this countless times, and I would constantly get confused myself while using the menu![/p][p]So to fix it, I changed the icons to a spinning "three connected nodes" to indicate a running simulation, and a snowflake to indicate a "frozen" simulation. I also added tooltips that should help reduce confusion further.[/p][p][/p][previewyoutube][/previewyoutube][p]What do you think of these icons? How would you design this menu?[/p][p][/p]
New boardlike API for modders - Ecconia
[p]This year, @Astronand created a mod that adds transparent circuit boards to the game. Seeing this, I realized there is no way for modders to create components that behave like circuit boards.[/p][p]Circuit boards have custom handling in the building code. This includes how they are drawn and placed or how components are placed on them. None of this is exposed through the API, and exposing this would require a significant refactor of the build system. This is something we should handle during the Godot rewrite.[/p][p]For now, I added a workaround which allows modders to inherit the [c]CircuitBoard[/c] class in their client component classes directly, letting their components behave exactly like normal circuit boards. With this workaround, it is not possible to extend them with additional custom data or change their shape. This limits what you can do with them. However, it is now possible to tweak the board's visuals.[/p][p][/p][p]LW-Glass by Astronand[/p][p][/p]
Discord on the main menu - Jimmy
[p]Pretty frequently, we get people who join the Logic World Discord who say something like "wow, I've been playing this game for ages and I never knew there was a discord." The number of people in the LW discord is also much smaller than the number of people who own the game. So, I think it's a safe assumption that lots of people don't know about the discord. Which is a shame, because the discord is the most vibrant and active part of the community right now, and anybody who wants to be part of the community ought to know about it.[/p][p]To that end, I added a button to the main menu that you can click on to join the discord. Hopefully everybody will know it exists now![/p][p][/p][p]This was a surprisingly challenging design problem. How do you make the button impossible to miss, without being annoyingly in the way? The main menu is starting to get pretty cluttered. What do you think of the placement?[/p][p][/p]
Help us translate 0.92!
[p]Logic World is translated by community volunteers into over 40 different languages! Every person who's helped translate the game is extremely cool.[/p][p][/p][p]We've pushed all the new translations from game update 0.92. There are 65 new things to translate, and 10 old translations that need updating. So, if you speak a non-English language and you'd like to help bring Logic World to that language, click here to check out the Logic World community translations.[/p][p]A HUGE thank-you to everybody who's helped with translations, which is far too many to list here. You are all amazing![/p][p][/p]
v0.92 Release Candidate 1 is now available for testing
[p]As we predicted last week, we have a release candidate for update 0.92 ready, and it definitely isn't a day later than we planned. The Release Candidate stage means that the update is 100% done and ready to go.[/p][p]We need your help to make sure that RC1 is stable and bug-free. Please test this release, and send us any bugs you find forthwith, so we can have a maximally smooth update next Wednesday.[/p][h2]Get the Release Candidate[/h2][p]Get the release candidate by selecting properties -> betas -> public previews.[/p][p][/p][h2]RC1 Changelog[/h2][p]Here are all the changes in Release Candidate 1 (v0.92.0.827) since the preview version we released last week (v0.92.0.731). The full changelog for update 0.92 (since 0.91.3) will be posted to our blog next week along with the release of the update.[/p][p]Subassemblies[/p]
  • [p]Added an "upload" button in the Subassembly Details Window where you can upload your subassemblies to the Hub.[/p]
  • [p]The Download Creation Menu now supports downloading subassemblies from the Hub. If you're in-game when a download completes, the downloaded subassembly will be added to your hotbar.[/p]
[p]Saving and Backups[/p]
  • [p]When the game saves, it now first writes the save data to a temporary file, preventing file corruption if the save process is interrupted.[/p]
  • [p]The backup creation timer is now saved and thus short sessions will no longer keep resetting the backup timer.[/p]
  • [p]Backup deletion is now more intelligent, discarding backups more slowly the older they are, meaning there will be many recent backups but also some quite old ones available in case you need to revert at some point. The behaviour is fully customizable in the server config.[/p]
  • [p]Merged config settings [c]DoAutosaveWhileServerIsEmpty[/c] and [c]DoAutoBackupsWhileServerIsEmpty[/c] into [c]DoAutosaveAndBackupsWhileServerIsEmpty[/c].[/p]
  • [p]Fixed chance of a backup being corrupted when it was created at the same time as a save was created.[/p]
[p]Building[/p]
  • [p]When you've confirmed a placement, it will now immediately become solid. Previously you would need to wait for the server to process the placement, which could take a while when there are a lot of changes.[/p]
  • [p]Changed the default binding for "Use Fixed Perspective" to "double tap left alt"[/p]
  • [p]Reverted the change to the default binding for "Offset Hold" which is once again "left alt"[/p]
  • [p]For real this time, fixed the issue with mutli-wire placing where it could sometimes look like a miniature sun exploding on your screen, which it turns out was not actually related to outlines at all.[/p]
[p]UI[/p]
  • [p]Minor tweaks to the Multiplayer Menu[/p]
  • [p]Multiplayer settings avatar preview: fixed the location of the sun not being aligned with where Bobby is being lit from[/p]
  • [p]Multiplayer settings avatar preview: fixed the lighting from the world affecting the preview[/p]
  • [p]The keyboard shortcuts for navigating menus with tabs (ctrl+tab, ctrl+shift+tab, and ctrl+numberkey), which were added for the new Selection Menu tabs, now work in all the other places with tabs (Settings Menu, Multiplayer Menu, and About Menu).[/p]
  • [p]Many aesthetic tweaks to the Simulation Speed menu, including new icons to make it more clear whether the simulation is running or frozen. The "running" icon is animated.[/p]
  • [p]Added secret setting: [c]MHG.UI.SimulationSpeedMenu.RunningIconRotationDegreesPerSecond[/c][/p]
  • [p]You can now press F5 to reload subassemblies menu.[/p]
  • [p]Download menu: the textbox is a bit wider now.[/p]
  • [p]Quick Color Chooser: fixed an issue where one or more Big Clicky Colors could incorrectly display as selected after resetting the list of saved colors.[/p]
  • [p]Fixed an issue where links in text would be stuck in the "hovered" state if you move your mouse directly from one link onto another link with no time in-between where you're not hovering over any link.[/p]
  • [p]Fixed an error screen you could get sometimes related to the subassembly categories.[/p]
  • [p]Main Menu: added a link to the Logic World Discord[/p]
  • [p]Added secret setting: [c]MHG.Secret.MainMenu.ShowDiscordLink[/c][/p]
  • [p]Several buttons in the game which open a URL when clicked ("Browse Creations" in the Main Menu and Download Creation Menu, the "Help Translate Logic World" button in the Languages menu, the new Discord button in the Main Menu) now show a tooltip of the URL the button opens when the cursor hovers over the button.[/p]
  • [p]Fixed the cursor looking way to big on Linux and MacOS when custom cursors are displayed, i.e. when hovering over the edge of a resizable menu.[/p]
  • [p]Added secret setting: [c]MHG.Secret.CursorModeWhenCustomCursorActive[/c][/p]
[p]Settings[/p]
  • [p]Added new settings preview images for all outline settings and for the Bloom setting.[/p]
  • [p]Fixed outdated information in the description of the "Outline Thickness" setting.[/p]
[p]Modding[/p]
  • [p]Added ability for modders to have CircuitBoard-like components which directly inherit the CircuitBoard class. These custom boards will behave like normal boards, but can't have extra custom data.[/p]
[p]Miscellaneous[/p]
  • [p]Errors with the Integrated Server which occur before the server initializes (e.g. missing libraries) now show up in the game logs and debug console.[/p]
  • [p]Removed the command-line arguments that would let you run the Dedicated Server in plaintext mode ([c]--plain-text[/c] and [c]-t[/c]). The dedicated server now always runs in plaintext mode. This is less buggy, more consistent between platforms, and it fixes an issue where text couldn't be entered on Windows 11.[/p]
[p]Release[/p]
  • [p]The game is no longer marked as a Preview version.[/p]
  • [p]Updated the text on the various About screens (Credits, Changelog, Roadmap).[/p]

Logic World Wednesdays #122: The Numbered Edition

[p]We've been working on Logic World for eight years, and we've been sharing our progress on this blog for six of those. This week, we've decided to start counting our blogs, and it turns out this is the one hundred and twenty-second Logic World Wednesday.

Numbering the blogs gives them a sense of their place in our overall journey. This blog is #122, so you can tell we've done a lot of work before today! And it makes us consider the future. What will this game look like when we reach LWW 200? or 300?

We were inspired to start doing this by the Factorio crew, whose most recent blog is Factorio Friday Facts #438. If they never release another blog and we don't miss a single week, it will only take us 6 years to catch up 😉

Anyways, on to this week's news about Logic World, the indie video game we're building where you can invent a new computer!


[/p]
The next update is just around the corner!
[p]
We're nearly ready to release Logic World v0.92, The Subassemblies Update. We're done adding features, and now we're just applying minor polish and fixes to the update to make sure it's rock solid stable and has great usability.

We have a new preview version you can try out today (more info at the bottom of this blog) which is very close to the final 0.92 release. Our intention is to have a release candidate next Wednesday (October 15th). If no major issues are found in that release candidate, the update will be fully released the following week, on October 22nd.

The Subassemblies Update has spent a long time in the oven and we're very excited to finally get it done and out :)

[/p]
New URLs!
[p]
As we move to expand the scope of the online services we offer for Logic World, we've just completed a pass on all the URLs on our website. The new URLs are prettier, give more context for where they lead, and are future-proofed for new features we want to add later.

Notably, our domain has changed from https://logicworld.net to https://logic.world. I think we can all agree that `logic.world` is far hotter and more awesome compared to `logicworld​.net`

Here are some URLs before and after, let us know what you think![/p][p][/p][p]

All the old logicworld.net URLs should redirect to their new home on logic.world. If you find any broken links, please let us know.

There were a lot of details to consider with the new URLs, and it took a lot of team discussion to get it right, but we're very happy with where we landed. Here are a few new things we'll highlight:

[h2]The blog is special now[/h2]

We moved all the blog posts from a section of the forum to a dedicated blog page at https://logic.world/blog.

Additionally, all blog posts now have custom URL slugs, instead of being auto-filled by the post title. For example, this blog is at https://logic.world/blog/lww-122. (And if you're looking through the archives, note that LWWs are zero-indexed, so the first LWW is at https://logic.world/blog/lww-0).

[h2]Gotos[/h2]

We've added a system that lets us create redirects under `/goto/`. For example, https://logic.world/goto/discord leads to our discord server, and https://logic.world/goto/bluesky leads to our bluesky account.

The main purpose of these redirects is so that we can include these links in the game client. This way, we can still include links to third-party websites in the game, but we fully control the links and we can update them if the destination link changes or if the website we're linking to becomes evil.

We currently have 7 gotos. Can you discover them all? (please don't crash our servers trying)

[h2]Shortlinks[/h2]

Finally, we've added really short links to every piece of user content on the site! These links have just 6 characters after `logic.world/`, making them super easy to share around. For example, @kwuk's recent Mandelbrot build can be found at https://logic.world/r72FZS.

You can find the shortlink to a piece of content in a little box on each page.



Fixed Perspective UX improvements


When we introduced Fixed Perspective, a lot of you gave the feedback that `[ctrl + shift]` is an awkward binding to use for it. We agree with the feedback, and so the new default binding is `[Left Alt]`. Although left alt is convenient to press, we're a little nervous about this choice because it is often used for system shortcuts. We'd love your feedback on this.

Additionally, the Fixed Perspective keybind now takes full advantage of our new tap-to-toggle system. This means you can tap it once to toggle Fixed Perspective on and off, but you can also hold it down to to enable Fixed Perspective and then release it to disable Fixed Perspective.

Finally, we've enabled player movement while Fixed Perspective is active, and the keyboard buttons for looking around (bound by default to the arrow keys) now work in Fixed Perspective.

Please let us know what you think of these changes! We think Fixed Perspective can be a really good feature that makes playing Logic World a lot nicer, and we want to get it right. You can try it out in the latest preview (see the bottom of this blog).

Better keybinding displays


When the game displays keybindings, it now uses symbols in some places instead of text. On all platforms, arrow key bindings will now look like the icons on arrow keys (previously, they would just say "Up", "Down", "Left", or "Right"). On MacOS, the game will now display symbols for the Command, Option, and Control keys, in accordance with Apple's Human Interface Guidelines.



There's more work to be done here, particularly around gamepads. Those are tricky because what currently shows up as `Gamepad North Button` should show up as a yellow Y button on an Xbox controller, a green triangle on a PS4 controller, a colorless X on a Switch controller, and probably other cases...

New services API, now in the game


As we talked about in LWW-119 and LWW-121, we recently completed a massive overhaul of the infrastructure powering the Logic World Online Services. Part of this process involved rewriting the API that the game uses to communicate with our services. This API is used to authenticate user identity in verified multiplayer servers, to upload Creations, and to use the in-game Creation downloading feature.

The old API was based on gRPC, whereas our new API is based on HTTP. There are numerous advantages of the new API, including:
  • It's easier for us to manage, maintain, and expand on.
  • You don't need to maintain a constant connection to our server while using it.
  • Your login token can automatically refresh, so if you open the game regularly, you'll never be logged out. (Currently "regularly" means at least once per year, but we may tweak this.)

The new API has been live for a few weeks, but nobody could use it! However, we've now finished integrating the new API with the game, so all of the advantages listed above will be available to our gamers (you).

As part of this work, we've also made the game flexible so it can work with anybody's online services, not just ours. We've added values in the config files for the game client and server to specify the services endpoint; by default these are set to `logic.world`, but you can set them to whatever you want.

You probably don't have a reason to do this right now. But we're thinking about the long-term. We want this game to outlast us, and the simple truth is that one day https://logic.world will be no more. When that day comes, anybody who wants to continue using the online features of Logic World can provide their own API endpoint, change that config value, and everything will Just Work. (Yes, we are strong supporters of Stop Killing Games!)

We're keeping the old API running for now so the old game clients can still play online in verified mode, but we'll probably shut it down sometime after v0.92 is released.

Notification of upcoming price increase


Currently Logic World is priced at $15 USD (and regional equivalents). When update 0.92 is released, we will increase the price to $25 USD (and regional equivalents). With this update, the game is reaching a level of stability, polish, and overall value where we feel this new pricing is appropriate. Additionally, we are currently trying very hard to increase our revenues so that we can afford to work on Logic World full-time, and this price increase is part of our strategy to achieve that.

We feel it's fair and appropriate to give you a heads up on this plan. As mentioned above, we plan to release 0.92 (and do this price increase) on October 22nd. So if you've been waiting to buy Logic World for yourself or for a friend, now is a good time to pull the trigger :)

v0.92 Preview 731 is now available for testing!


As we shared above, we're getting very close to releasing update 0.92! This week's preview contains some of the last fixes and improvements we want to get in before the update comes out. You can try it now and help us test by selecting properties -> betas -> public previews.



Here's everything new in Preview 731 (since Preview 613):

Online
  • Updated the game to use the new HTTP-based Logic World Online Services API, which replaces the legacy gRPC API.
  • Added secret setting: `MHG.Secret.Online.Endpoint`
  • Added server config value: `OnlineEndpoint`


Outlines
  • Outline thickness is no longer based on the screen resolution. Outlines should now look like they have the same thickness at 480p and 2160p.
  • Updated the default outline thickness.
  • Hopefully fixed the issue where outlines could sometimes become extremely bright and look like a miniature sun exploding on your screen.


Zoomies
  • You can now only use the Zoom function (bound to `Y` by default) in the regular Building game state. It won't work in other first-person game states like Resizing and Grabbing.
  • Fixed the Zoom binding conflicting with other input actions (it would previously conflict with `Ctrl+Y` for Redo).
  • Fixed being able to get stuck zoomed-in if you opened a menu while zoomed-in.


Fixed Perspective
  • Changed the default binding for Fixed Perpsective from `[ctrl+shift]` to `[left alt]`
  • "Use Fixed Perspective" is now a tap-to-toggle binding. This means that you can tap the key to toggle fixed perspective as before, but you can also hold it down to enable Fixed Perspective and then release it to disable Fixed Perspective.
  • While Fixed Perspective is active, you can now use the player movement controls, as well as the keyboard looking controls.
  • Moved "Use Fixed Perspective" to the "Looking" category of controls.
  • Fixed the keybind hint for turning off Fixed Perspective not updating properly if Fixed Perspective is toggled while the UI is hidden.


Keybinding displays
  • When displaying a binding for an arrow key, it will now show an icon of an arrow instead of text that says "Up"/"Down"/"Left"/"Right".
  • When displaying a binding on MacOS, the Control, Option, and Command keys will use symbols instead of text (in accordance with Apple's Human Interface Guidelines)


UI
  • Fixed weird glitchiness with our "start typing to automatically focus a text box" functionality. This is used for search in the Selection Menu, the Edit Singer Menu and the Edit Drum Menu; as well as for the textboxes in the Chat window and the debug console. In all of these menus, you should now be able to start typing something without having the text box selected and it will Just Work again.
  • The Help menu no longer states whether a binding is tap-to-toggle (this information was just visual noise/clutter).
  • Hotbar: fixed some weird visual glitchiness when trying to insert an item into the middle of a full hotbar.
  • Subassembly Detail Window: fixed some weird behavior when hitting return or escape while typing in the Title and Description text boxes.
  • Missing mods disconnection screen: the list of mods is now ordered alphabetically.
  • Download menu: fixed broken text on the "Cancel" button while a download is in progress.
  • Download menu: removed the button to go to your singleplayer sandbox list after a successful download.
  • Download menu: added a character limit to the URL text box.


Export
  • Removed OBJ export and the associated `objexport` commands.
  • Added `3dexport` commands, which support glTF and glb export of worlds and subassemblies.
  • After using the commands `Thumbnails.RenderComponentToDisk` and `Thumbnails.RenderSubassemblyToDisk`, the rendered image will now be shown in the system file manager after the render is complete.


Miscellaneous
  • Updated engine version to Unity 6000.0.58f2.
  • If a Key is hacked to not be bound to an input, it will now display "[None]" on its label. (Previously it would display "FancyInput.RawInputType.None" which was way too long and looked bad. Don't worry, hackers, we're looking out for you.)
  • Changed the default binding of Offset Hold to `H`.
  • Fixed Font Awesome icons not rendering in regular text such as chat messages.
  • Fixed the Flag's thumbnail looking too dark.
  • Fixed the thumbnails of very large subassemblies being cut off.
  • Fixed bug which prevents new subassemblies from appearing in the subassembly menu after the first rejoin.


[hr][/hr]

See you next Wednesday :)

Subscribe to the Logic World newsletter

Read more Logic World Wednesdays

Logic World Wednesdays: All That Sparkles Is Ruby

[p][/p]
The Rubening is Complete - Felipe
[p]As I talked about previously, for the past couple months I've been working on rewriting the logicworld.net website and all our online services using the Ruby on Rails framework in order to tremendously simplify the whole codebase and development experience, thus making it easier to add new features.[/p][p]I'm pleased to announce that everything is now running on the new codebase powered by Rails! The migration was performed on 2025-09-20 and it went pretty much as well as I could have hoped, there were only a couple minor issues that I sorted out soon after. Additionally, the server is now hosted in Germany, which means that our European-and-adjacent users should see an improvement in latency while hopefully still being quick enough for our friends over on the other side of the Atlantic Ocean.[/p][p]This new website brings with it a bunch of miscellaneous improvements and bug fixes that I carried out along the way. They are mostly quality-of-life and reliability things, like not being able to change your profile picture at times, but there are a couple exciting things: you can now see the number of views on all posts, creations and tickets, as well as the number of downloads in creations! We unfortunately only started tracking them on the migration last week and as such we don't have data for views and downloads before that, but we hope this will make it easier to see how popular your uploads are in the future.[/p][p]I also threw together a status page for this website, you can check it out by clicking the link at the page footer or by going to https://status.logicworld.net.[/p][p][/p][p]All in all, I'm very excited about the things that the new website will allow us to do to improve the Logic World online services![/p][p][/p]
Modding Mischief - Ecconia
[p]Besides being a developer, I am also a modder. My contributions to the game often focus on making the modding API both easier to use and more powerful.[/p][p]I made a bunch of mods, whose only purpose was to make modding easier. Over the last few months, I've integrated some of these mods directly into Logic World. Mods that have been integrated include ServerOnlyMods, FlexibleComponentModUsage, and one feature of EccsLogicWorldAPI.[/p][p]The main thing I want to address today is the new Mod Type system. Modding in Logic World is complex because the game is multiplayer, meaning mods can exist on the client, the server, or both. We've previously handled this complexity with the ClientOnly and Optional boolean properties in the mod manifest, but in my opinion this is not granular enough and doesn't cover all the cases modders need.[/p][p]After thinking it over, I came up with a new system where we have a single Type enum property in the mod manifest. Here is an overview of the different options.[/p]
[p]Mod type[/p]
[p]Normal[/p]
[p]Optional[/p]
[p]Independent[/p]
[p]Client Only[/p]
[p]Server Only[/p]
[p]Loaded on Client[/p]
[p]✅[/p]
[p]✅[/p]
[p]✅[/p]
[p]✅[/p]
[p]❌[/p]
[p]Loaded on Server[/p]
[p]✅[/p]
[p]✅[/p]
[p]✅[/p]
[p]❌[/p]
[p]✅[/p]
[p]Announced to Server[/p]
[p]✅[/p]
[p]✅[/p]
[p]❌[/p]
[p]❌[/p]
[p]-[/p]
[p]Disconnect Client when missing[/p]
[p]✅[/p]
[p]❌[/p]
[p]-[/p]
[p]-[/p]
[p]-[/p]
[p]Include in disconnection message[/p]
[p]As requirement[/p]
[p]As suggestion[/p]
[p]❌[/p]
[p]-[/p]
[p]❌[/p]
[p]The table above shows how client and server treat mod loading and how the mod negotiation between both sides is configured.[/p][p]Client and server both load mods on startup. Once a player joins a server, the client sends a list of loaded mods to the server. The server checks if all required mods are installed. If a required mod is missing the server disconnects the client with a message that lists missing mods.[/p]
[p][/p]
[p]Description[/p]
[p]Example Usage[/p]
[p]Normal[/p]
[p]The mod needs to be installed on client & server. This is the default mod type.[/p]
[p]A mod that adds new components.[/p]
[p]Optional[/p]
[p]The mod runs on both client and server, but clients without this mod can still join servers that have this mod.[/p]
[p]A mod adding client-side tools that require support from the server-side.[/p]
[p]Independent[/p]
[p]The mod is loaded on client & server, but these sides don't talk to each other.[/p]
[p]A mod adding a framework/library that other mods can use.[/p]
[p]Client Only[/p]
[p]The mod will only be loaded on the client.[/p]
[p]A mod adding themes, new UIs, or new building mechanics.[/p]
[p]Server Only[/p]
[p]The mod will only be loaded on the server.[/p]
[p]A mod that interacts with the game chat or adds server administration features.[/p]
[p]If you have ideas or suggestions for Logic World modding, I'd love to talk about them with you! You can ping me in the #modding-general channel of the Logic World discord.[/p][p]The Logic World modding API is a work-in-progress, and we do officially say that mod support is unofficial (for now). Despite this, there are an impressive quantity of mods for the game already, and I'm happy to be supporting the existing mod ecosystem. We're committed to building a 10/10 modding API for Logic World, and the recent modding updates bring us closer to our goal![/p][p][/p]
The text can finally feel the warmth of the sun and the cool of the shade - Jimmy
[p]I finally fixed it[/p][p][/p][previewyoutube][/previewyoutube][p][/p]
v0.92 Preview 613
[p]We're releasing a new preview update today! This builds on the previous previews we've released for update 0.92. You can opt-in to the preview versions by selecting properties -> betas -> public previews.[/p][p][/p][p]Here's everything new in preview 613, since preview 599 last week:[/p][p]Modding[/p]
  • [p]Add 'ClientDependencies' and 'ServerDependencies' to mod manifest files.[/p]
  • [p]Replaced mod manifest properties 'ClientOnly' & 'Optional' with 'Type'. The new property can have values: Normal (this is default), Optional, Independent, ClientOnly, ServerOnly.[/p]
  • [p]The disconnection screen for missing mods will now suggest missing mods of type "Optional".[/p]
  • [p]Fixed crash when placing a subassembly with a display configuration not present in the current world.[/p]
[p]Miscellaneous[/p]
  • [p]Text that appears physically in the world (the text on Labels, Keys and Singers) is now affected by the lighting in the world.[/p]
  • [p]Color picker: the setting "Quick Picker Open State" now has a default value of "Remain in Previous State" (was previously "Always Open to Quick Menu").[/p]
  • [p]Rearrange the order of some controls in the settings menu.[/p]
  • [p]Fixed some missing English localizations.[/p]
[hr][/hr][p]See you next Wednesday :)[/p][p]Subscribe to the Logic World newsletter[/p]

Logic World Wednesdays: What Are You Doing In My Swamp

[p]Welcome back to Logic World Wednesdays, our weekly blog about the latest goings-on with Logic World development![/p][p]Last week, we released a preview for update 0.92, with some banger new features, including the long-awaited subassemblies! Thanks to everybody who’s played on the preview, reported bugs, and sent us your feedback on the new features. You’re helping us iron out the kinks and ensure that 0.92 will be high quality.[/p][p]We’re releasing another preview today, with fixes for last week’s new features along with various small tweaks & QOL improvements. This preview also contains improvements and fixes for modding, so mod authors and users alike will have a smoother experience.[/p][p][/p][p][/p]
Tododododo
[p]This week, we took stock of everything on our near-term todo list, organizing the tasks into three categories:[/p]
  1. [p]Things that need to be done before we can release update 0.92.[/p]
  2. [p]Things we’d like to do for a 0.92.x update. These are needed features that will make Logic World better, and we want to do them on the Unity codebase, but they don’t block the next update.[/p]
  3. [p]Things that will wait until update 0.100, on the new Godot codebase.[/p]
[p]We have several dozen issues open on our internal issue tracker, now all neatly sorted into a near-term game plan.[/p][p]Logic World development is ramping up. New people have joined the team, existing team members are devoting more time to the project, and the scope of what we intend to achieve has expanded significantly. Project management is more important for us than ever. With the coordination we did this week, we’re well-prepared for the next few months of development. You’ll see the results here on this blog![/p][p][/p]
v0.92 Preview 599
[p]This update is now available on the previews branch! To opt-in, select Logic World in your Steam library and go to properties -> betas -> public previews.[/p][p][/p][p]Here’s everything new in Preview 599, since Preview 562 last week:[/p][p]Subassemblies[/p]
  • [p]Using the search bar in the Subassembly tab of the Selection Menu could previously break the menu, freeze the game, return incorrect search results, or simply not work. There were several root causes of these issues, and we’ve fixed them all. (Hopefully.)[/p]
  • [p]When editing a Subassembly title, you can no longer input newline characters.[/p]
  • [p]When editing a Subassembly title, you are now restricted to a maximum length of 300 characters.[/p]
  • [p]Fixed “missing localization” errors caused by subassemblies with empty titles.[/p]
[p]UI[/p]
  • [p]The Selection Menu now hides components which are not available on the server.[/p]
  • [p]We’ve reworked the screen you see when you’re disconnected from a server. When the server sends a long disconnection message, the screen now handles it better, giving you a scrollbar instead of making the message tiny.[/p]
[p]Modding[/p]
  • [p]Improved the disconnection message when the server rejects a client for not having the required mods. The message now contains mod versions, and it has some formatting to make the list easier to read.[/p]
  • [p]Mods that are on both the client and server can now be marked as 'Optional' in the manifest file. When set, clients are not required to install this mod when joining a server that has the mod installed.[/p]
  • [p]When placing modded components/subassemblies on a server which does not support them, you now get an error sound and a console message instead of ghost components.[/p]
  • [p]Client-only mods will no longer be announced to the server (keeps network packet smaller & nice for mod-list privacy).[/p]
  • [p]Packet IDs are now set authoritatively by the server. This allows optional mods to add new packet types, without breaking packets for clients that don’t have the mod installed.[/p]
  • [p]Fixed an issue where BuildingOperations added by mods wouldn’t be loaded consistently.[/p]
  • [p]Fixed an issue where GameStates added by mods wouldn’t be loaded at all.[/p]
  • [p]Fixed an issue where palette loading crashed the game on startup when the palette was corrupted or not installed. (#448)[/p]
  • [p]Fixed modded network packets failing to parse due to inconsistent mod load order between client and server.[/p]
[p]Miscellaneous[/p]
  • [p]When a Sandbox or Subassembly has a very long name, previously the game would create files/folders on disk with very long names. These file/folder names are now capped at 200 characters, which prevents crashes on Linux.[/p]
  • [p]In the last preview, the Shadow Cascades setting was accidentally set to 4 by default. The default value for this setting is back to 2 as intended.[/p]
[hr][/hr][p]Thanks for reading! See you next Wednesday :)[/p][p]Subscribe to the Logic World newsletter[/p]