Repository navigation
Developers Worldgen Info Overview
If your mod adds features, placement modifiers, height/int providers, block predicates, state providers, tree placers, rule tests or structure processors, AWI cannot know how to describe them. Without a plugin it falls back to dumping their JSON under an Auto-detected heading; with a plugin they render like vanilla ones.
Up to 26.2 a feature and its configuration are separate objects, a feature configuration is the thing you describe, and one AWI does not know shows as Not implemented rather than being auto-detected.
AWI ships no compatibility shims for individual mods. The supported way to get your content displayed properly is to ship a plugin with your mod.
This section covers the AWI-specific half only. The parts that are shared with Advanced Loot Info — the three registration phases and the tooltip builder — are documented once:
-
Plugin Lifecycle —
registerCommon/registerClient/registerServer, which side each runs on, and when. -
Tooltips —
TooltipBuilder, translation keys, and the two dispatch tiers.
Read both; the pages are written with ALI's names, but the mechanism is identical and lives in the same shared library.
AWI is published on Modrinth and CurseForge. There is no dedicated Maven repository for it, so use one of the usual mirrors (CurseMaven or the Modrinth Maven) and depend on the jar built for your Minecraft version and loader. Keep the dependency optional at runtime — your mod must still load when AWI is absent, which means the plugin class is the only place allowed to touch AWI's API.
The API you compile against spans two jars:
-
com.yanny.awi.api— the worldgen-specific part, from the AWI jar. -
com.yanny.aci.apiandcom.yanny.aci.tooltip— the shared part, from Advanced Core Info (ACI), a separate library mod that AWI requires, published on Modrinth and CurseForge. Add it as a second compile-time dependency, from the same mirrors.
At runtime you do not need to handle ACI separately: ACI is mandatory for AWI, so whenever AWI is present ACI is too, and when AWI is absent your plugin class is never touched.
1.20.1–1.21.1: Mojang's
Identifieris calledResourceLocation. API signatures on this wiki useIdentifier; substituteResourceLocationthere.
A plugin implements com.yanny.awi.api.IPlugin:
package com.example.mymod.awi;
import com.yanny.awi.api.AwiEntrypoint;
import com.yanny.awi.api.IClientRegistry;
import com.yanny.awi.api.ICommonRegistry;
import com.yanny.awi.api.IPlugin;
import com.yanny.awi.api.IServerRegistry;
@AwiEntrypoint
public class MyModAwiPlugin implements IPlugin {
@Override
public String getModId() {
return "mymod";
}
@Override
public void registerCommon(ICommonRegistry registry) {
}
@Override
public void registerClient(IClientRegistry registry) {
}
@Override
public void registerServer(IServerRegistry registry) {
// the interesting part, see the Registration Reference
}
}getModId() is the mod ID that owns the plugin — AWI uses it to skip plugins whose mod is not loaded.
All three methods are optional overrides, and for most mods only registerServer has content in it.
registerCommon exists to declare your translation keys and number functions,
registerClient only to register a custom node type.
Discovery differs per loader:
{
"entrypoints": {
"awi": [
"com.example.mymod.awi.MyModAwiPlugin"
]
}
}Annotate the class with @AwiEntrypoint (as in the example above). AWI scans the mod list for it; nothing else is
needed.
Annotating the class on Fabric too is harmless, so a multi-loader plugin can carry both.
Plugins are discovered in unspecified order. Never rely on running before or after another plugin — in particular, do not re-register a type that AWI itself registers and expect your registration to win.
Questions about the API, or a type you cannot get to render: Discord, or an issue if it looks like a bug on AWI's side.
- Registration Reference — every AWI-specific registration method with an example.
- Nodes and Widgets — when your content needs a custom node in the tree.
Users
Loot Info
Worldgen Info
Developers
Loot Info
Examples
Worldgen Info