• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[C# / .NET] BaconBinary ObjectEditor: A modern, high-performance asset editor

Ceetros

Active Member
Joined
Feb 19, 2014
Messages
12
Reaction score
42
Hi everyone,

I’d like to share a project I’ve been working on: BaconBinary ObjectEditor.

It is a .dat and .spr file editor designed for the Open Tibia ecosystem, but built on a modern .NET stack. The main motivation behind this was to create an alternative to legacy tools (like Object Builder) that is genuinely cross-platform and fixes the performance bottlenecks we are all used to.

1765904927752.webp

Why another editor?

The core pillar of this project is its asynchronous architecture. Unlike older tools that often freeze the UI while loading or compiling large sprite files, this editor handles all I/O operations using C#’s async/await patterns. This keeps the interface responsive and fluid, even when you are working with massive files.

Since it is built on .NET, it runs natively on Windows, Linux, macOS, Browser and even mobile devices without needing Wine or compatibility layers.

Key Features (v0.0.1d)

  • Performance: Significantly faster load and compile times compared to legacy tools.
  • Version Support: Covers clients from 7.30 to 10.98.
  • Frame Groups: Full support for newer client frame structures.
  • Modern Editing:
    • Drag & Drop: We just implemented a drag-and-drop system from the sprite palette directly to canvas slots.
    • Visualization: Correct rendering for transparency and negative offsets.
    • Reactive UI: Built with ObservableObject for real-time property updates.
1765904950307.webp

Roadmap & TODOs

We are actively developing the tool. Here is what we are focusing on right now:

  • Importing System (Main Priority): We are currently building a robust importer to handle external images (PNG/BMP), automatically slicing them into 32x32 blocks and adding them to the sprite file.
  • Object Builder Compatibility: Full support for importing and exporting .obd files, ensuring you can easily migrate work between tools.
  • New Binary Format: We are developing a custom binary format (.basset) tailored for this editor, which will support advanced features like built-in encryption.
  • New Asset Formats: We are designing a revised and optimized version of the standard .dat and .spr formats to allow for faster loading and metadata support.
  • Tibia 11+ Support: Future implementation for Protobuf and newer encryption methods.
  • WebAssembly: Porting the app to WASM so it can run directly in a browser without installation.

Download: Github


BaconBinary Suite​

Looking ahead, we are designing a complete ecosystem of tools. The Item Editor, Map Editor, and GClient (a OpenTibia client written in godot engine) are currently in the architecture phase.

Development on these additional tools will begin as soon as the Object Editor reaches a stable version. They are designed to share the same high-performance shared core, ensuring stability and unified behavior across the entire suite.
 

Attachments

@Ceetros

It looks like a great program. Will you also make the compiled program available on GitHub (at least for Windows) to save time for those who don't want to install all the dependencies required for compilation, or for those lazy people like me? There are a lot of non-programmers here who would probably also like to test your tool.
 
@Ceetros

It looks like a great program. Will you also make the compiled program available on GitHub (at least for Windows) to save time for those who don't want to install all the dependencies required for compilation, or for those lazy people like me? There are a lot of non-programmers here who would probably also like to test your tool.
ill release a pre-build version for windows and linux when i finish the edit-mode and import sprites, and a browser version when it reaches a stable build
 
What's the reason behind that weird name ( just curious )
 
What's the reason behind that weird name ( just curious )
idk, i just like bacon, and theres a "decrypt/encrypt method" called Baconian cipher, and its a object editor
Post automatically merged:

Just released our first usable version, with edit features:
1765927269400.webp
1765927281097.webp
Post automatically merged:

I also released the BaconSuit asset format with native encryption, and 50% the size of the same .dat/.spr:
Ill update a file with the specifications for read the .meta and .asset, so if anyone wants they can implement on any project, such as otclient
1765927365118.webp1765927371114.webp
 
Last edited:
Back
Top