1. Logic World
  2. News
  3. Logic World Wednesdays: All That Sparkles Is Ruby

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]