Reference

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

Custom Arena Maps

Step 1: Build Your Arena

Create the full scene in creative mode including a flat area for the grid, surrounding decorations (trees, ruins, water, cliffs), and any blocks you want. The area outside the grid is purely cosmetic. The game only reads the grid boundaries and spawn markers.

Step 2: Place Marker Blocks

Place special marker blocks to define the playable grid and spawn positions. The game scans for these blocks when loading the arena.

┌─────────────────────────────┐ │ Decorations... │ │ DIAMOND────────────────EMERALD │ ← Diamond + Emerald on opposite corners OUTSIDE grid │ │ GOLD │ │ ← Gold = Player 1 spawn (inside grid) │ │ (playable grid) │ │ │ │ IRON │ │ ← Iron = Player 2 spawn (optional) │ │ │ │ │ │ │ │ │ More terrain... │ └─────────────────────────────┘

Marker Block Reference

BlockPurpose
Diamond BlockCamera corner. Place on one corner outside the grid (required).
Emerald BlockOpposite corner. Place on the corner diagonally opposite the Diamond Block (required).
Gold BlockPlayer 1 spawn (primary)
Iron BlockPlayer 2 spawn (multiplayer)
Copper BlockPlayer 3 spawn
Coal BlockPlayer 4 spawn

All markers must be at the same Y level.

Step 3: Export

Option A: WorldEdit (recommended)

  1. Select: //pos1 and //pos2
  2. Copy: //copy
  3. Save: //schem save <name>
  4. Find in config/worldedit/schematics/
  5. Copy to craftics_arenas/<biome>/<number>.schem

Option B: Vanilla Structure Block (48×48×48 limit)

  1. /give @s structure_block
  2. Set to Save mode, define box, name it, click SAVE
  3. Find in <world>/generated/minecraft/structures/
  4. Copy to datapack at data/craftics/structures/arenas/<biome>/<number>.nbt

File Naming

craftics_arenas/          (in game run directory, for .schem)
  plains/
    1.schem
    2.schem
    boss_1.schem
  forest/
    1.schem

data/craftics/structures/arenas/   (in datapack, for .nbt)
  plains/
    1.nbt
    boss_1.nbt

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

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