Skip to content

Releases: OpenLoco/ObjectEditor

Object Editor 5.1.4

29 Aug 02:26

Choose a tag to compare

What's New

Fixed an issue with doubled file extension in the filename when importing images without a sprites.json file in the import folder. Thanks to Discord users Glenjimen and RedTender5 for finding this!

Full Changelog: 5.1.3...5.1.4

Object Editor 5.1.3

28 Aug 06:33

Choose a tag to compare

What's New

  • 5.1.0 -> 5.1.2 inclusive had another issue - the graphics table wasn't being saved to the object! The same issue existed with G1.dat. This is now rectified with this release.
  • On the image table, I added a "right-click" -> "crop image" menu option for the images. It works, but I have realised it doesn't update the bounding box border - that'll be fixed in the next release...

Full Changelog: 5.1.2...5.1.3

Object Editor 5.1.1

26 Aug 02:33

Choose a tag to compare

What's New

Discord user Glenjimen pointed out that the animation preview rendering is still not suitable, and I agree. This is because the positions of the image are based on the top-left of the image, not on the XOffset and YOffset coordinates, which dictate the points about which a vehicle image rotates. This release fixes this by translating all the drawn things (image, bounding box, origin pixel) to the correct locations, making the rotation animations smooth and as they appear in-game:

Screen.Recording.2025-08-26.120040.mp4

Full Changelog: 5.1.0...5.1.1

Object Editor 5.1.0

25 Aug 13:58

Choose a tag to compare

Introduction

Whilst on the surface there is not much functional change, this version of the editor includes a total rewrite of the DAT object parsing logic, as well as fully decoupling the DAT format from the editor/UI itself. Long story short, I am no longer limited by the DAT format in the UI and I can now make any and all changes to the UI, including to object definitions themselves! This is a massive step towards supporting a new object format; indeed it basically makes it possble now! But before that officially happens, there are still plenty of changes that need to happen in the database and object service to support this.

What's Changed

  • Aforementioned huge rewrite of DAT handling logic. If you want to see how much work it involved, just check out the PR. The other neat thing is that this uncovered at least 3 bugs, 2 of which are fixed (and the 3rd is mentioned at the bottom of the page):
    • RoadObjectFlags was missing unk_08 as part of its enum definition - it is there now and you can set it.
    • BuildingObject had a bug in its save code, where elevator sequences were corrupted because it was writing uint16_t-typed values instead of uint8_t. This affected the two buildings with elevator sequences, which were BLDCTY28 and BLDCTY29.
    • Additionally, the hex viewer for objects was removed, since objects in the editors memory are no longer in the same memory format as actual DAT objects, making this feature prohibitively expensive to maintain. If you truly want to view objects in raw hex, you can easily load the object in the editor, click "Export as uncompressed DAT" (which will save the file as a DAT file with no encoding on the bytes) and then put that file into your favourite standalone hex editor. The benefit is less code to maintain on my end, and more features for the user (since a proper hex editing program will have many more features than I can possible add to the editor). If you want semantic info, you can use something like Kaitai Struct to create a parser for the loco hex data.
    • By @LeftofZen in #199
  • Add "open folder" for tree view items. This is just a little UI shortcut to open the folder to the item you have selected. It's useful when your object folder has many nested folders. On Windows, this will even highlight the file in window explorer! If anyone knows how to do this on Linux/Mac, let me know. By @LeftofZen in #190
    image
  • Add API support for adding and querying missing objects. No user-usable features yet, but this is essentially backend work to implement a cool feature to mark objects in scenarios/save games as "missing" if the object service doesn't know about the object. This will allow us to start looking for actually-missing objects, recreate them if necessary, and otherwise start keeping statistics for this kind of data. By @LeftofZen in #195
  • Audio importing has been improved, with the main feature being you can now import MP3s into the game music files, making custom tracks extremely easy to make now. By @LeftofZen in #197
  • Multiple image table viewer improvements, including
    • importing images should now work when the image filenames have leading zeroes
    • fixing a memory leak and otherwise overall improved performance
    • the offset pixel actually updates/moves when you change the offsets
    • added buttons to center or zero all image offsets
      image
    • the zoom level wont wildly jump around when you animate the image table, and the zoom level is also preserved across images
    • the preview pane is separate from the properties pane, which also now has a scroll bar. it's just easier to use now
    • by @LeftofZen in #202 and #203

Known bugs

  • The 3 industry objects with animated effects (COALPS, FACTORY, OILREFIN) may not save correctly. They fail in a unit test and I cannot see why it fails, however this bug has existed since the start of time so nothing is new here, just that I know about the issue now.
  • Given the massive rewrite, it's likely I've missed some properties not saving in the UI - if you find any changes you make are not saving, let me know asap.

Full Changelog: 5.0.1...5.1.0

5.0.1

06 Jul 10:20

Choose a tag to compare

What's Changed

  • Fix image table not correctly importing images from folder, by @LeftofZen in b863702

Full Changelog: 5.0.0...5.0.1

Object Editor 5.0.0

06 Jul 06:29

Choose a tag to compare

What's Changed

Over the last few months there has been a lot of work going on under the hood and today is the first release of those features. Whilst the editor received a few small features and improvements, the service and database received huge updates that pave the way for the next set of features. These backend improvements won't be immediately seen by users, but editor features will start to flow again soon now that the backend can support them.

Editor

  • Scenario viewer can now download any required non-vanilla objects that are missing from your object data directory, hopefully making some scenarios playable now if the objects exist in the object service, by @LeftofZen in 499b6ab
  • Scenario viewer doesn't freeze on some tabs (because it tried to load too much data) by @LeftofZen in 499b6ab
  • The logs have been moved to a separate window under Settings -> Logs, by @LeftofZen in b9bb4b5
  • Fixed a bug where the service client had the wrong route for GetFile, which caused downloads to not work, by @LeftofZen in 6b921a8
  • Fixed a bug where it wouldn't show the directory item count in the folder tree view, by @LeftofZen in 44c8e78
  • Miscellaneous UI improvements (many not visible to the user), by @LeftofZen in 8dbd13a, 9b35d5c, e2d4c4c

Object Service

  • Implement a proper REST API for the object service by @LeftofZen in #167
  • Rest DI2 by @LeftofZen in #185
  • Re-add object availability by @LeftofZen in #186
  • Database object tables by @LeftofZen in #187. This one is of particular note - the database now contains separate tables for each object type and has about half of the raw dat data extracted (basically just all the simple fields like integers). It isn't exposed to users via the service (yet) but that will come very soon, and this process of extracting the dat data out is a major step towards new object format!
  • Some objects had descriptions that were cut off; these are now fixed thanks to @glenjimen noticing the problem!
  • There is now also a quick API reference for those technical-minded people if you want to play around with consuming data from the service: https://openloco.leftofzen.dev/api/

Full Changelog: 4.4.2...5.0.0

4.4.2

08 Jun 01:06

Choose a tag to compare

What's Changed from 4.4.1

  • Remove Ctrl+V keybind for save games, as it interferes with OS paste commands. By @LeftofZen in 6816151
  • Fix file treeview not switching source items list between online and local mode. By @LeftofZen in f3085eb

Full Changelog: 4.4.1...4.4.2

Object Editor 4.4.1

28 May 01:09

Choose a tag to compare

What's Changed from 4.3.0

  • Named VehicleObjectFlags::LargerBoundingBox, by @LeftofZen in 9b499f0
  • Added a toggle button to allow you to decide whether to open objects in new tabs or reuse the same tab. Tabs are useful when you want to work or view multiple objects at the same time and switch between them. Not using tabs is useful when just browsing objects, particularly in 'Online' mode. By @LeftofZen in 708e09f
    image
  • Replaced the old folder file viewer with a different control that supports virtualisation, meaning it will not lag with large numbers of objects. This was a particular problem when trying to browse the Vehicles -> Trains expansion node in Online mode since that contains 20k+ objects. It also shows some basic file attributes for now, though there is still more work to do in this area. By @LeftofZen in ff1c45e, d366c04
    image
  • Added a button to let you quickly copy an object to one of OpenLoco's built-in object data folders, as well as shortcuts for viewing the objects in those folders. You will need to set these folders in the settings first!. By @LeftofZen in b3f4bbb
    image | image
  • Added some keyboard shortcuts for simple operations, eg Ctrl+O to open an object, Ctrl+S to save, F5 to reload it, etc. By @LeftofZen in f789e0f
    image
  • Fixed a crash when attempting to show/load vanilla objects in online mode, by @LeftofZen in d6307bf

Full Changelog: 4.3.0...4.4.0

Object Editor 4.3.0

29 Mar 07:18

Choose a tag to compare

What's Changed

Full Changelog: 4.2.6...4.3.0

Object Editor 4.2.6

08 Mar 10:50

Choose a tag to compare

What's Changed

  • Name more properties from Industry and Land Objects, mostly around farm tiles. By @LeftofZen in 14242c6, b236b94
  • Fix bug where SimpleMotorSound::BaseAccelerationFrequency couldn't be saved. By @LeftofZen in 9cca367

Full Changelog: 4.2.5...4.2.6