Skip to content
glow12 edited this page Jun 28, 2026 · 5 revisions

Hey so this is my project's main documentation, I'm not sure if anyone will actually read this, but I just want to write down a little bit to try to explain most of the details on how this API works and how you can use it better.

All custom objects added by this API are split into three distinct parts, each with their own purpose:

  • Object Configs
  • Sprite Sheets
  • Object Classes

The CustomObjectConfig class is the main thing that defines what your custom object is like. It holds the sprites that your object uses, and it is what creates new instances of your custom Object Class. It also holds extra information about the object, such as object ID and what mod it's from. However the main purpose of this class is to provide an easy interface to configure basic properties of how your custom object looks and behaves, without having to implement your own code.

The CustomSpriteConfig class is what defines the sprites that all of your custom objects use. In order to support batch rendering for custom objects, any sprites must be part of a sprite sheet that is then added to a scene as part of a CCSpriteBatchNode. In order to achieve this, this API generates and saves its own sprite sheet, that includes all of the sprites from every custom object from every mod that uses this API. In order for sprites to appear in the sprite sheet, they must be registered with the API using a CustomSpriteConfig.

Object Classes are the core of your custom objects, and they are the biggest advantage that this API provides over other solutions (imo). Every custom object is built on the CustomObjectBase class, which itself inherits from any vanilla object class such as GameObject or EffectGameObject. You can create your own classes by inheriting directly from CustomObjectBase, or you can inherit from one of the many pre-built classes that I have provided with the API. These custom classes include anything from basic blocks to custom portals and triggers, and are all designed to be as easy to use as possible.


Check out the individual wiki pages for more information! Thanks for reading and I hope this API can be useful to you! :D

Clone this wiki locally