Reference

Custom arena maps, mob head textures for the combat HUD, and the addon policy for distributing Craftics addons.

Custom Arena Maps

An arena is a schematic with a few marker blocks in it. Craftics ships a set for every biome, and you can replace any of them, or supply arenas for a biome of your own, without writing code. Putting the file in the right folder under the right name is all it takes.

There is a worked example. The Example_Arena_Addon folder in the repository is a ready-made data pack that replaces three Plains arenas, a script that tells you what Craftics will make of any .schem before you start the game, and a walkthrough of everything on this page.

Step 1: Build the arena

Build in a creative world that has Craftics and WorldEdit installed. An arena is three things: a flat floor to fight on, scenery around it, and marker blocks that tell Craftics where the floor is. The floor layer is the layer of blocks the fighters stand on. Every marker goes in that layer, replacing a floor block, not on top of it.

Step 2: Place the markers

The Arena Corner Marker (craftics:arena_corner) draws the arena. It is in the Craftics creative tab, or run /give @s craftics:arena_corner. How many you place decides what you get.

Two markers: a rectangle Three or more: any shape C . . . . . . . . C - - - - C . . . . . . . . . / . . . . . \ . . . . G . . . . C . . . . . . . C . . . . . . . . . | . . G . . . . | . . . . . . . . . C . . . . . . . C . . . . . . . . C \ . . . . . / C - - - - C The two markers are corner tiles The markers are the border. of the arena, and part of it. The arena is the tiles inside it. C = Arena Corner Marker G = gold block, player 1 start
MarkersArena
Two Arena Corner MarkersA rectangle. Put them on two opposite corner tiles. Both tiles are part of the arena, so markers nine blocks apart give a 9 by 9 arena.
Three or more Arena Corner MarkersAny shape. Walk the outline and place one at each corner, in any order. The markers are the border: the arena is the tiles strictly inside the line they draw. A marker may be hidden under the floor, up to two blocks down, or lie in the floor with a wall built on top of it: the floor is the height most of the arena can be stood on. A marker that is not a corner, part way along a straight edge or inside the shape, is set aside (four at most), so a room built from cells can have one at every cell corner.
Gold block (optional)Where player 1 starts. It goes in the floor layer, inside the arena. Without one, Craftics uses the middle column one row in from the camera on a rectangle, and the tile nearest the middle on any other shape.

Craftics removes every marker and patches the hole with the block most common around it, so none of them shows in the finished arena.

Diamond and emerald blocks are the old markers. Earlier arenas mark the two corners of a rectangle with a diamond block and an emerald block. They still load and do not need converting, and a diamond block placed among Arena Corner Markers still sets the camera corner. Use the Arena Corner Marker for anything new.

Numbered arenas and boss rooms

A biome's ordinary levels use numbered files, and its last level, the boss, uses boss.schem. The two are treated differently, so decide which one you are building first.

Numbered arena (1.schem, 2.schem, ...)Boss room (boss.schem)
Floor inside the arenaRepainted with the biome's floor_blocks. Water, lava and gaps are kept.Kept exactly as built.
Blocks standing on that floorRemoved. Carpets are kept. The biome's obstacle_blocks are scattered instead.Kept. They become obstacles.
Around the arenaA ring of concrete is laid as a border.Nothing is added.
Edge of the schematicThe outer 4 blocks are cut into a slope.Kept exactly as built.

A numbered arena is terrain: you supply the shape, the water and the scenery, and Craftics dresses the floor to match the biome. A boss room is yours block for block, which also means its edges have to look finished on their own. Trial chamber arenas are kept as built too.

In both kinds, everything two or more blocks above the floor is cleared inside the arena, apart from cobwebs, so keep roofs, branches and tall pillars outside it. Craftics also adds lamp posts around every arena, in the blocks of the biome's environment, and on rectangular arenas the environment's usual scatter (tall grass on Plains, cactus in the Desert, and so on).

What a block means

After the arena is placed, Craftics reads each tile from the blocks that are left. This matters most in a boss room, where everything you built is still there.

In the arenaBecomes
A block standing on the floorAn obstacle. Fences, walls and glass panes count.
Stairs or a bottom slab on the floorA step. Full blocks beside a step become a raised platform you can walk onto.
Stairs or a bottom slab on a raised platformA second step. Full blocks beside it become a second floor. Three floors up is the limit.
A cobweb on the floor, or one block upA web trap.
Water in the floor layer, one block deepShallow water. Walkable, and it soaks you.
Water two or more blocks deepDeep water. Nobody can enter it.
Lava or a magma block in the floor layerA lava tile.
Powder snow in the floor layerA powder snow tile.
A gap in the floor with ground one block downA pit you can walk through.
A gap with nothing under itA void tile. Nobody can walk onto it, and anything knocked in falls to its death.

Step 3: Save it

  1. Select the whole build, including the scenery and the ground under it: //pos1 and //pos2
  2. Copy: //copy
  3. Save: //schem save plains_1

That writes config/worldedit/schematics/plains_1.schem in the game folder. Any tool that saves Sponge .schem files, version 2 or 3, works.

Step 4: Put it where Craftics looks

There are three places. The first two are loose files in the game folder, which is .minecraft or your launcher's instance folder in single player, and the folder the server is started from on a server. The third is a data pack.

WhereFilesGood for
config/worldedit/schematics/plains_1.schem to plains_10.schem, plains_boss.schemTesting. This is where WorldEdit already saved it.
craftics_arenas/plains/1.schem to 10.schem, boss.schemKeeping arenas apart from your other schematics.
A data pack: data/craftics/arenas/plains/1.schem to 10.schem, boss.schemSharing, and anything tied to one world.

Biome IDs for Arena Folders

OverworldNetherEnd
plainsnether_wastesouter_end_islands
forestsoul_sand_valleyend_city
desertcrimson_forestchorus_grove
junglewarped_forestdragons_nest
riverbasalt_deltas
mountain
snowy
cave
deep_dark

Trial chambers use trial_chamber and trial_chamber_ominous. The Pale Garden is a single file, forest/pale_garden.schem. outer_end_islands ignores loose files, so use a data pack for it.

A biome you add yourself keeps its arenas under its own namespace. See Arenas for a biome.

Shipping arenas in a mod jar. The same data/.../arenas/ layout works inside a jar, but only use it for biomes your mod adds. To replace a built-in arena, ship a data pack: when two mods provide the same file there is no telling which one wins, and a world's data pack always does.

Vanilla structure files. For a biome with no .schem arenas at all, Craftics also reads structures saved with a structure block, at data/<namespace>/structure/arenas/<biome>/1.nbt (boss_1.nbt for the boss). Schematics are looked for first, so a structure file cannot replace a built-in arena, and a structure block is limited to 48 blocks a side.

Step 5: Rebuild and test

An arena is built the first time a level is entered on an island and reused after that, so an island that has already seen the old arena keeps it until you ask:

/craftics rebuild_arenas plains

This rebuilds every arena of that biome on your island from the files as they are now. It is for operators unless the server config opens it up, and it refuses while anyone on the island is in a run. Loose files are read fresh each time. If you changed a data pack while the world was running, run /reload first. /craftics skip_level wins the current fight, which is the quick way to step through a biome and see each arena in turn.

Then read logs/latest.log. A good load looks like this:

ArenaBuilder: resolved biomeId='plains' isBoss=false ...
Found 2 disk .schem candidate(s) for biome 'plains': [...]
Structure 1.schem marker scan: diamond=false, emerald=false, corners=2, spawns=[true,false,false,false]
Arena built. origin=..., size=9x9, playerStart=GridPos[x=4, z=1], polygon=false

An arena from a zipped data pack is reported as Loading bundled arena: craftics:arenas/plains/1.schem, the same wording as a built-in one.

Troubleshooting

What you seeWhy, and what to do
The old arena is still thereArenas are reused once built. Run /craftics rebuild_arenas <biome>.
Nothing changed even after a rebuildCheck the file name and folder, and that the numbering starts at 1 with no gaps. The log says which file was loaded.
Every level now uses one arenaLoose files replace the whole set. Add more numbered files, or ship a zipped data pack to replace a single arena.
The floor was repainted and the decorations are goneThat is what happens to a numbered arena. Keep decorations outside the arena, or build a boss room.
The log says has no arena corner markersNo markers were found, so Craftics guessed a floor and laid the biome's default grid. Put the markers in the floor layer and include them in the selection you save.
The arena is one tile smaller all round than expectedWith three or more markers they are the border, not part of the floor. Move them out a tile, or use two for a rectangle.
Players start in a strange placeThe gold block has to be in the floor layer and inside the arena.
The camera faces the wrong wayIt sits at a marker on the west side. Turn the build and save it again.
There are holes in the floorEither gaps you left, or blocks from a mod that is not installed. The log names the missing mod.

Tips

Mob Head Textures

The combat HUD displays a small head icon for every enemy and ally in the arena. Craftics ships 80+ vanilla mob heads and auto-discovers textures for modded mobs at runtime, so no code changes are needed to add heads for new mobs.

Resolution Order

When the HUD requests a head for entity type somemod:bigwolf, MobHeadTextures.get() checks three sources in order:

  1. Hardcoded vanilla map: ~80 built-in entries for all vanilla mobs. Always checked first.
  2. Runtime registration: entries added via the Java API (see below). Checked second.
  3. Resource auto-discovery: probes the loaded resource manager for a PNG at two path conventions (see below). Results are cached until /reload.

If none of the three sources return a texture, the HUD falls back to a colored square with the mob's first initial.

Resource Pack Method (No Code)

Drop a 16×16 PNG at one of these two paths inside any resource pack:

ConventionPathUse Case
Craftics namespace assets/craftics/textures/mob_heads/{modid}/{mobname}.png Resource packs shipping heads for any modded mob under Craftics' namespace
Mod namespace assets/{modid}/textures/mob_heads/{mobname}.png A mod shipping its own head texture in its own namespace

For a mob with entity type alexsmobs:bone_serpent, the auto-discovery probes:

assets/craftics/textures/mob_heads/alexsmobs/bone_serpent.png   (Craftics namespace)
assets/alexsmobs/textures/mob_heads/bone_serpent.png            (mod namespace)

Run /reload or toggle the resource pack and the head appears on the combat HUD immediately, with no client restart required.

Java API Method (Mod Code)

Addon mods can register head textures explicitly during client initialization:

import com.crackedgames.craftics.client.MobHeadTextures;
import net.minecraft.util.Identifier;

// In your ClientModInitializer.onInitializeClient():
MobHeadTextures.register(
    "somemod:bigwolf",
    Identifier.of("somemod", "textures/hud/bigwolf_head.png")
);

Runtime-registered entries take priority over auto-discovery but not over the built-in vanilla map.

Cache and Reload

Auto-discovered textures are cached after the first lookup. The cache is cleared automatically whenever /reload runs or resource packs change (via a SimpleSynchronousResourceReloadListener registered in CrafticsClient), so new or updated PNGs are picked up without restarting the client.

Addon Policy

Allowed

Not Allowed