CubeBlocks
Wrapper
In a .sbc file, all blocks are defined in this layout:
<?xml version="1.0" encoding="utf-8"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CubeBlocks>
<!-- One or more block entries here. -->
</CubeBlocks>
</Definitions>
A block entry would look something like:
<Definition xsi:type="...">
<Id>
<TypeId>...</TypeId>
<SubtypeId>...</SubtypeId>
</Id>
<!-- various elements -->
</Definition>
However you shouldn't create definitions from scratch like this.
Instead, find the .sbc that has your wanted type in the game folder and copy it to your mod folder, then modify that with the help of the documentation below for that definition.
And don't forget to remove other blocks from the file that you do not wish to override.
All Block Types
First read about TypeId vs xsi:type to have an understanding of the difference.
This is the list of all block types (<TypeId>) paired with their supported definition (xsi:type).
xsi:type
The xsi:type is mentioned inside the definition page.
If the page doesn't exist, you can generate the name from the page name by removing the space and prefix it with "MyObjectBuilder_".
For example: "ExhaustBlock Definition" -> "MyObjectBuilder_ExhaustBlockDefinition".
While the CubeBlock Definition doesn't need an xsi:type, it also doesn't hurt either.
Blocks Table
The table can be sorted by the header to help find all types that support a certain feature.
Pages on the TypeId offer information about the type itself, like what empties it requires in the model.
If the page doesn't exist, check the definition page for hints. You can also look at empties in-game using F11 menu's Debug Draw + Draw Dummies, and/or import the vanilla .fbx from the Mod SDK.
Definition pages are for the SBC elements, and they're also the xsi:type that the specific TypeId should use.
The Finding SBC guide can help find the TypeId of a vanilla block.
Legend
- Inherent = Can inherently connect to conveyor network (model still needs ports).
- EntityComp. = ConveyorEndpointComponent can be given to blocks to add conveyor support.
- LCD = Supports having LCDs (
<ScreenAreas>), see Screens tutorial for more info. - LCD ModFix = Can use Fix LCD support mod.
- LCD ModFix+Caution = Can use the above mod but it might break some functionality (because the block already has a custom render component).
- - = Does not have that thing.
Tip: Can sort by multiple columns using shift+click.