1. Logic World
  2. News
  3. Logic World Wednesdays #123: 'Twas the Week Before Update

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]