1. Logic World
  2. News

Logic World News

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]

Logic World Wednesdays: Back with a Bang

Hello Logicians! It's been a year and a half since the last installment of Logic World Wednesdays, our weekly devblog. Well, we're back, and you can expect regular (hopefully weekly!) blogs until at least the end of this year.

I (Jimmy) made a little video where I talk about what happened and what's coming next. The short version is that we didn't make enough money with LW to sustain full-time work on it, and I had to get another job. But I've realized that making Logic World is the thing I want to do most, so I left my other job and I'll be focused on LW full-time for as long as my savings last.

If I can grow Logic World revenue enough to pay for my rent and groceries, I'll continue full-time Logic World work for as long as it takes to finish the game. If we make money beyond that, I'll be able to bring the other team members on full-time as well. I'm going to try very hard to grow our revenue, because I want to deliver the best possible game for you, and all I need to do that is financial security. So, wish me luck.

But if you want the long version -- sit with me by the shore for a bit?

[previewyoutube][/previewyoutube]

Subassemblies - Jimmy, Ecconia, GHXX


We've been working on the all-time most requested feature: the ability to save a group of components and place them elsewhere, including in a different world or a different multiplayer server.

[previewyoutube][/previewyoutube]

It's been a real collaboration between team members to get this feature right, especially around the UX. We're quite happy with how it's turned out!

You can try out Subassemblies right now in the Preview version of Logic World (see below!). We'd love your feedback on how they are to use right now, so we can make sure Subassemblies are fully polished before the next update.

Fixed Perspective - Jimmy


I've added a feature that allows you to freeze the perspective of the camera and interact with the world via point-and-click, instead of a first-person perspective. This was suggested by a friend of mine who gets motion sick from 3D camera movement, so the feature helps her play Logic World without throwing up. But we've found that it's really nice to use even if you don't get motion sick easily -- it just makes it way easier to click on things in all those situations where there's a lot of items to click on that all fit on screen at once.

[previewyoutube][/previewyoutube]

You can try out Fixed Perspective right now in the Preview version of Logic World (see below). Let us know what you think :)

The Logic World Wiki


There's a lot of information about Logic World, but historically most of that information has been sparsely documented and hard to find. Recently, some Logic World players asked us about setting up a wiki to solve this issue. We felt that was a good idea, and so we're pleased to present the Logic World Wiki!



You can check it out for yourself at https://wiki.logic.world.

A wiki is a collaboratively-edited repository of information on the internet. Wikipedia is the biggest and most well-known wiki, but there are thousands of wikis, including many great video game wikis like the Minecraft Wiki and the Factorio Wiki.

On Saturday we asked in the Logic World Discord if anybody wanted to be an early contributor to the wiki. A few people volunteered, and in the four days since, the wiki has grown from nothing to more than 50 articles! We'd like to give a special shout-out to the people who have already edited the wiki:

  • BobisBilly
  • DjSapsan
  • FoxFireFive
  • HuntaBadday
  • Lawrziepan
  • N00basaurus


The wiki is still very young, but we hope in time it will grow to be the definitive resource for all things Logic World. Anybody can edit the wiki, so if you'd like to join the heroes listed above, check out the Logic World Wiki:Contributing page.

Logic World on Rails - Felipe


Hi, I'm Felipe aka pipe01, the main web guy for Logic World. As you may remember from previous LWWs, our main logicworld.net website and associated APIs currently runs on a bunch of services written in Go. This has been working relatively smoothly for the past few years, however it's become harder and harder to maintain because of how complex it is, especially for our other team members that aren't as versed as I am on Go development. Additionally, given how logicworld.net consists of a bunch of programs that must work together, it's quite difficult to spin up a local instance for development.

For these reasons and a few more, I've decided to rewrite the whole web stack and, given I've had a very positive experience with Ruby on Rails in a past job, the new website will be a monolithic Rails app dubbed "The Rubening". This has many advantages, such as a much smoother development and deployment experience as well as reduced resource usage when running, but it also comes with some disadvantages such as slower performance and less obvious scalability. Although it's not without its drawbacks, I believe this choice will make it much easier to introduce new features in the future while also making the existing ones more reliable, and the codebase will be easier to maintain and work on.

I've been working on this rewrite for exactly 2 months and we are very very close to deploying it, the main features are all implemented and working nicely and all that's left is a few minor tweaks and polishing, so you should hopefully see this new evolution of the website running very soon. Although, if all goes well you should barely notice any changes!

When the migration is wrapped up, the new platform will serve as a solid foundation on top of which we will carry out our future plans. We are very excited to work on new stuff to connect all Logic World players together in many cool ways, and with all this new and improved scaffolding we will be able to do it in a flash!

Steam Cloud


Since the last Logic World Wednesday, we added Steam Cloud support. So if you have the Steam version of the game, your saved sandboxes, subassemblies, servers, and screenshots will be automatically backed up to the cloud and synchronized between devices.

You can read more in this post:

https://steamcommunity.com/games/1054340/announcements/detail/506199076171155241

Showcase on social media - Jimmy


Recently I started sharing cool Logic World creations to our Bluesky and X pages. This is really fun to do and I like having these social media pages as galleries of awesome builds.

I'd love to share your work (with credit of course!) on Logic World's social media. If you've built something cool and you'd like to be featured, you can reply to this post, ping or DM me on Discord (@jimmy8080), or email me ([email protected]). It's easiest for me if you take high-quality screenshots or video for me to use.

Previews available now!


We're getting ready to release the next game update, v0.92. We're releasing preview versions of v0.92 before the update is fully done, to collect feedback on features and help find bugs. You can play with all the features shown in today's blog (and more!) if you want to try them early!

To opt-in to the preview versions:

  1. Right click on Logic World (or the Logic World Dedicated Server) in your Steam library and select 'Properties'
  2. In the properties window, select the 'Betas' tab
  3. Under 'Beta Participation', select 'public-previews'




[hr][/hr]

That's all for this week! It's good to be back. See you next Wednesday :)

Subscribe to the Logic World newsletter