Skip to main content

Compatibility

Apoli ships integrations with a number of other mods. Each one is a gated module: install the other mod and Apoli adds types or changes its behaviour for it, and leave it out and nothing changes. Apoli never depends on any of them.

Supported mods

ModSectionWhat it adds
Simple Voice ChatBirdsongTypes from the Birdsong addon that react to who is talking, how loudly and what they say.
Trinkets, Accessories, CuriosAccessoriesAccessory slots, control over equipping and unequipping, and slot conditions.
FiguraFiguraLets apoli:modify_player_model use a Figura avatar.
IcarusIcarusThe apoli:wings flight power.
Hardcore RevivalHardcore RevivalKnockout and revive triggers, actions and a condition.
WoodWalkersWoodWalkersConditions, actions and powers that read and drive a player's shape.
Pufferfish's SkillsPufferfish's SkillsApoli powers and resources as Skills rewards, and Skills categories as skill trees.
KubeJSKubeJSThe scripting runtime behind the apoli:script types.
Not Enough Recipe BookNot Enough Recipe BookNo new types. Keeps power-gated recipes working with the recipe book removed.
3D Skin Layers, EarsSkin RenderingNo new types. Makes their skin geometry follow the model and colour powers.
Entity Model Features and CEM packsCustom Entity ModelsNo new types. Runs the render powers on top of packs like Fresh Animations.
Sodium, Lithium, Flywheel, BadOptimizations and othersPerformance ModsNo new types. Keeps the render powers working with the mods that replace parts of vanilla rendering.
SableSableNo new types. Makes phasing, walking on fluid and ropes work with Sable's sub-levels.
Better CombatBetter CombatNo new types. Prevents a crash in its attack handling.
Ledger, IndexorBlock LoggingNo new types. Names the power and origin behind a logged block edit.
You're in Grave DangerYou're in Grave DangerNo new types. Puts power inventories in the grave and adds a grave inscription.
GravestonesGravestonesNo new types. The same for Pneumono's Gravestones.
GraveStone ModGraveStone ModNo new types. The same for the GraveStone Mod on NeoForge.

Two kinds of gating

Registration-gated types are only registered when the other mod is loaded. Using one in a data pack without that mod is a load error for that power, exactly like a mistyped type ID. Everything under Accessories, Icarus, Hardcore Revival and WoodWalkers works this way.

Behaviour-gated types are always registered and always load, but do nothing useful without the other mod: conditions read false and triggers never fire. The KubeJS types work this way, so a pack that uses them stays loadable on a server without KubeJS. Birdsong's voice types are behaviour-gated on Simple Voice Chat, and the Birdsong overview explains what their IDs do on a server without Birdsong itself.

Pufferfish's Skills sits in between. Its reward types are only registered with Skills installed, but they live in Skills' own category files, so nothing in an Apoli pack fails to load without it. The other integrations add no types of their own, and only change how existing types behave when the other mod is installed.

tip

Check the section for the mod you are targeting, since each type page says which kind it is.

Writing your own

If you are building an addon and want the same pattern for a mod Apoli doesn't cover, see Writing compat.