Developer Tips

(last updated for 0.4.0-pre5)

Adding Charset to your development environment

See the GitHub README for details.

Charset IMCs (Inter-Mod Communications)

Whitelisting functionality

Charset, since 0.4.0-pre5, has begun adding robust handlers for actions such as block carrying. However, it cannot know whether it can execute said actions on every block safely, particularly blocks with tile entities added to them. The easiest way to whitelist your mod's blocks for Charset to know it's safe to use them in this manner is to notify Charset via an add/remove message.

Here's an example:

FMLInterModComms.sendMessage("charsetlib", "addCarry", barrelBlock.getRegistryName());

"charsetlib" refers to the mod the messages are being sent to (CharsetLib receives all functionality-whitelist-related IMCs); "addCarry" is the whitelist command, telling Charset to add the "barrelBlock" block to the "carry" registry. As the value, you can either send the block's registry name or the tile entity's registry name.

The add/remove commands also support passing multiple categories for a single block, such as "add[carry,vehicle]" or "add[vehicle];remove[carry,push]".

Current functionality registries:

Planned functionality registries:

Charset Capabilities


The following capabilities are used across the entire mod, and providing them can greatly help in integrating your mod with Charset.



The fate of the Wires API in Charset - especially the bundled wire part - is currently uncertain, seeing as Charset no longer provides redstone wires on its own.