{
  "version": "1.0",
  "library": "CUCoreLib",
  "description": "Machine-readable CUCoreLib web docs generated from the interactive docs sources.",
  "generatedAt": "2026-08-14T09:29:22.547Z",
  "baseUrl": "/",
  "topics": [
    {
      "id": "welcome",
      "label": "Welcome",
      "crumb": "CUCoreLib",
      "title": "Welcome to CUCoreLib",
      "lead": "Welcome! This is the documentation website for the CUCoreLib modding library.",
      "appUrl": "/docs/welcome/",
      "machineUrl": "/api/topics/welcome.json"
    },
    {
      "id": "unity-csharp",
      "label": "Modding TL;DR",
      "crumb": "Getting Started",
      "title": "A quick TL;DR on Unity, C#, Decompilation, and BepInEx",
      "lead": "To create a BepInEx plugin, we must first create the universe...",
      "appUrl": "/docs/unity-csharp/",
      "machineUrl": "/api/topics/unity-csharp.json"
    },
    {
      "id": "setup",
      "label": "Setup",
      "crumb": "Getting Started",
      "title": "Install ScavTemplate",
      "lead": "Getting ready for modding!",
      "appUrl": "/docs/setup/",
      "machineUrl": "/api/topics/setup.json"
    },
    {
      "id": "harmony0",
      "label": "Harmony0",
      "crumb": "Getting Started",
      "title": "Harmony0",
      "lead": "What is this, music theory?",
      "appUrl": "/docs/harmony0/",
      "machineUrl": "/api/topics/harmony0.json"
    },
    {
      "id": "tutorial-first-mod",
      "label": "Making A First Mod",
      "crumb": "Tutorial",
      "title": "Making a first mod",
      "lead": "Is this a subnautica reference?",
      "appUrl": "/docs/tutorial-first-mod/",
      "machineUrl": "/api/topics/tutorial-first-mod.json"
    },
    {
      "id": "assets",
      "label": "Loading Assets",
      "crumb": "Content APIs",
      "title": "Loading assets",
      "lead": "Load embedded and loose sprites, audio clips, UI sprites, and text resources through CUCoreLib.",
      "appUrl": "/docs/assets/",
      "machineUrl": "/api/topics/assets.json"
    },
    {
      "id": "audio",
      "label": "Audio",
      "crumb": "Content APIs",
      "title": "Loading audio",
      "lead": "Load embedded and loose audio clips, reuse cached sounds, and wire them into buildings or AudioSource components.",
      "appUrl": "/docs/audio/",
      "machineUrl": "/api/topics/audio.json"
    },
    {
      "id": "item",
      "label": "Item API",
      "crumb": "Content APIs",
      "title": "Create an item",
      "lead": "Register an item with vanilla ItemInfo fields and a CUCoreLib sprite lookup. ",
      "appUrl": "/docs/item/",
      "machineUrl": "/api/topics/item.json"
    },
    {
      "id": "advanced-item",
      "label": "Advanced Item API",
      "crumb": "Items / Liquids",
      "title": "Advanced Item API",
      "lead": "Using CustomItemInfo",
      "appUrl": "/docs/advanced-item/",
      "machineUrl": "/api/topics/advanced-item.json"
    },
    {
      "id": "custom-item-scripts",
      "label": "Creating Custom Item Scripts",
      "crumb": "Items / Liquids",
      "title": "Creating Custom Item Scripts",
      "lead": "Attach MonoBehaviours to custom items, read custom item metadata, and structure wearable runtime logic.",
      "appUrl": "/docs/custom-item-scripts/",
      "machineUrl": "/api/topics/custom-item-scripts.json"
    },
    {
      "id": "recipe",
      "label": "Recipe API",
      "crumb": "Content APIs",
      "title": "Creating recipes",
      "lead": "Creating custom recipes for all sorts of items!",
      "appUrl": "/docs/recipe/",
      "machineUrl": "/api/topics/recipe.json"
    },
    {
      "id": "liquids",
      "label": "Liquid API",
      "crumb": "Items / Liquids",
      "title": "Liquid API",
      "lead": "Register liquid definitions, fill liquid containers, and understand WaterContainerItem behavior.",
      "appUrl": "/docs/liquids/",
      "machineUrl": "/api/topics/liquids.json"
    },
    {
      "id": "liquid-tiles",
      "label": "Liquid Tiles",
      "crumb": "World",
      "title": "Liquid Tile API",
      "lead": "Register swimmable world liquids with custom visuals, touch effects, drinking behavior, and worldgen.",
      "appUrl": "/docs/liquid-tiles/",
      "machineUrl": "/api/topics/liquid-tiles.json"
    },
    {
      "id": "player",
      "label": "Player",
      "crumb": "Player",
      "title": "Player",
      "lead": "Reference for the vanilla Body player fields you will usually read or modify from mods, plus a few CUCoreLib helpers for accessing them safely.",
      "appUrl": "/docs/player/",
      "machineUrl": "/api/topics/player.json"
    },
    {
      "id": "statuses",
      "label": "Statuses",
      "crumb": "Player",
      "title": "Statuses",
      "lead": "Reference for status effects, common status state, and the gameplay hooks mods usually read or modify.",
      "appUrl": "/docs/statuses/",
      "machineUrl": "/api/topics/statuses.json"
    },
    {
      "id": "moodles",
      "label": "Moodles",
      "crumb": "Player",
      "title": "Moodles",
      "lead": "Reference for moodle display, intensity tiers, and the player condition indicators mods commonly surface.",
      "appUrl": "/docs/moodles/",
      "machineUrl": "/api/topics/moodles.json"
    },
    {
      "id": "building-entities",
      "label": "Building Entities",
      "crumb": "World",
      "title": "BuildingEntity API",
      "lead": "Register sprite-backed world objects with placement rules, custom scripts, drops, and optional world generation.",
      "appUrl": "/docs/building-entities/",
      "machineUrl": "/api/topics/building-entities.json"
    },
    {
      "id": "advanced-building-entities",
      "label": "Advanced Buildings",
      "crumb": "World",
      "title": "Advanced BuildingEntity API",
      "lead": "Advanced building prefab hooks, worldgen details, loot crate patterns, and minigame-driven buildings.",
      "appUrl": "/docs/advanced-building-entities/",
      "machineUrl": "/api/topics/advanced-building-entities.json"
    },
    {
      "id": "minigames",
      "label": "Minigames",
      "crumb": "Misc / API",
      "title": "Minigame API",
      "lead": "Shared helpers for creating custom minigames on top of the game's vanilla Minigame base.",
      "appUrl": "/docs/minigames/",
      "machineUrl": "/api/topics/minigames.json"
    },
    {
      "id": "tiles",
      "label": "Tiles",
      "crumb": "World",
      "title": "Tile API",
      "lead": "Register terrain tiles with stable names, vanilla block behavior, and normal world or Tilemap placement.",
      "appUrl": "/docs/tiles/",
      "machineUrl": "/api/topics/tiles.json"
    },
    {
      "id": "multi-block-structures",
      "label": "Multi-Block Structures",
      "crumb": "World",
      "title": "Multi-block structures",
      "lead": "Planned documentation for structures made from multiple world blocks.",
      "appUrl": "/docs/multi-block-structures/",
      "machineUrl": "/api/topics/multi-block-structures.json"
    },
    {
      "id": "traps",
      "label": "Traps",
      "crumb": "World",
      "title": "Traps",
      "lead": "Woah, custom layers and biomes?",
      "appUrl": "/docs/traps/",
      "machineUrl": "/api/topics/traps.json"
    },
    {
      "id": "debug-testing",
      "label": "Hot Reload / Testing",
      "crumb": "Debug APIs",
      "title": "Debugging, testing, and hot reload",
      "lead": "Are you tired of restarting the game to test your mod?",
      "appUrl": "/docs/debug-testing/",
      "machineUrl": "/api/topics/debug-testing.json"
    },
    {
      "id": "utils",
      "label": "CUCoreUtils",
      "crumb": "Helper APIs",
      "title": "CUCoreUtils",
      "lead": "Small helper APIs for timing, readiness checks, PlayerPrefs accessors, world/item helpers, alerts, reflection, console bridging, keys, audio, and compression.",
      "appUrl": "/docs/utils/",
      "machineUrl": "/api/topics/utils.json"
    },
    {
      "id": "console",
      "label": "Console and You",
      "crumb": "Debug APIs",
      "title": "The Console and You",
      "lead": "...and the many comcurmands for the few~. Register development commands that can be ran via the game's console.",
      "appUrl": "/docs/console/",
      "machineUrl": "/api/topics/console.json"
    },
    {
      "id": "tools",
      "label": "Tools",
      "crumb": "Tools",
      "title": "Custom item tools",
      "lead": "A dedicated place for richer CUCoreLib item creation helpers.",
      "appUrl": "/tools/",
      "machineUrl": "/api/topics/tools.json"
    },
    {
      "id": "settings",
      "label": "Settings API",
      "crumb": "Misc / API",
      "title": "Settings API",
      "lead": "Register native settings rows in the vanilla options menu with CUCoreLib handling save, reset, apply, and labels.",
      "appUrl": "/docs/settings/",
      "machineUrl": "/api/topics/settings.json"
    },
    {
      "id": "locale",
      "label": "Locale",
      "crumb": "Misc / API",
      "title": "Locale",
      "lead": "Generate item, liquid, and manual locale keys for your mod.",
      "appUrl": "/docs/locale/",
      "machineUrl": "/api/topics/locale.json"
    },
    {
      "id": "saving",
      "label": "Saving",
      "crumb": "Misc / API",
      "title": "Saving",
      "lead": "Extend the vanilla save.sv flow with versioned CUCoreLib save providers.",
      "appUrl": "/docs/saving/",
      "machineUrl": "/api/topics/saving.json"
    },
    {
      "id": "animations",
      "label": "Animations",
      "crumb": "Misc / API",
      "title": "Animations",
      "lead": "Lights, camera, animation!",
      "appUrl": "/docs/animations/",
      "machineUrl": "/api/topics/animations.json"
    },
    {
      "id": "multi-mod-compatibility",
      "label": "Multiplayer Sync",
      "crumb": "Misc / API",
      "title": "Multiplayer sync",
      "lead": "Experimental early automatic multiplayer sync for CUCoreLib",
      "appUrl": "/docs/multi-mod-compatibility/",
      "machineUrl": "/api/topics/multi-mod-compatibility.json"
    }
  ]
}
