Cobblebase
← Back to Documentation Index

📦 Datapacks

Cobblebase is fully customizable via Minecraft datapacks. You can add new skills, modify loot tables, or reassign Pokemon species without touching any code.

Overview

Cobblebase uses two types of JSON data:

  1. Skill definitions -- Define what a job does, its cooldown, search radius, and executor
  2. Species assignments -- Map Pokemon species to skills and set proficiency levels

Both can be overridden or extended via datapacks placed in your world's datapacks/ folder.

File Structure

A Cobblebase datapack follows the standard Minecraft datapack structure:

my_cobblebase_pack/
  pack.mcmeta
  data/
    cobblebase/
      skills/
        my_custom_skill.json
      species/
        my_custom_pokemon.json

pack.mcmeta

{
  "pack": {
    "pack_format": 48,
    "description": "My custom Cobblebase datapack"
  }
}

Use pack format 48 for Minecraft 1.21.1.

Skill Definition Format

Each skill is defined as a JSON file in data/cobblebase/skills/. Here is the full format with all available fields:

{
  "id": "cobblebase:my_skill",
  "name": "My Custom Skill",
  "description": "What this skill does",
  "category": "gathering",
  "cooldownSeconds": 300,
  "searchRadius": 10,
  "executor": "harvester",
  "effectType": "default",
  "lootTable": "cobblebase:my_loot_table",
  "targetBlock": "minecraft:water",
  "requiresNearby": true,
  "xpReward": 50
}

Note: Since v1.3.0, the standard base cooldown is 300 seconds for most jobs.

Field Reference

FieldTypeRequiredDescription
idstringYesUnique identifier in namespace:name format
namestringYesDisplay name shown in the GUI
descriptionstringYesTooltip text
categorystringYesSkill category (see below)
cooldownSecondsintegerYesBase cooldown in seconds (modified by proficiency)
searchRadiusintegerYesHow far the Pokemon searches for targets
executorstringYesWhich executor handles this skill (see below)
effectTypestringYesVisual effect type
lootTablestringNoLoot table reference for loot-based skills
targetBlockstringNoBlock the Pokemon needs nearby (e.g., minecraft:water)
requiresNearbybooleanNoWhether the target block must be within search radius
xpRewardintegerNoXP awarded on successful execution

Categories

CategoryDescription
gathering🌾 Resource collection skills
combat⚔️ Fighting and defense
support💚 Healing and buff skills
generation🌍 Block/fuel generation (furnace, cauldron, brewing)
utility📦 Utility skills (gathering items, irrigating, scouting)
fairy🤝 Recruiting skills
legendary🌟 Legendary-exclusive abilities

Executors

ExecutorUsed By
harvesterHarvester
fishingFishing
miningMining
producerProducer
archeologyArcheologist
finder_evo, finder_hea, finder_bui, etc.All Finder subtypes
guardGuard
healerHealer
mentorMentor
gather_itemsItem Gatherer
scoutScout
irrigateIrrigator
cauldron_fillLava Fill, Water Fill, Snow Fill
furnace_fuelFurnace Fuel
brew_fuelBrewing Fuel
recruiterFriend Recruiter, Legendary Recruiter
lucky_charmLucky Charm
growthGrowth Aura
extinguishExtinguisher
speed_boost, strength_boost, etc.All buff skills
auraAura Boost

Effect Types

Effect TypeVisual
defaultStandard particles
harvest🌿 Green/nature particles
water💧 Blue water particles
fire🔥 Fire/orange particles
combat⚔️ Red combat particles
heal💚 Pink/green heal particles
special✨ Gold/sparkle particles

Skill Definition Examples

Example: Custom Gathering Skill

{
  "id": "mypack:mushroom_forager",
  "name": "Mushroom Forager",
  "description": "Forages for mushrooms in dark areas",
  "category": "gathering",
  "cooldownSeconds": 300,
  "searchRadius": 15,
  "executor": "harvester",
  "effectType": "harvest"
}

Example: Custom Environmental Skill

{
  "id": "mypack:campfire_lighter",
  "name": "Campfire Lighter",
  "description": "Lights nearby campfires",
  "category": "generation",
  "cooldownSeconds": 300,
  "searchRadius": 10,
  "executor": "furnace_fuel",
  "effectType": "fire"
}

Example: Overriding a Built-in Skill

To modify an existing skill, create a file with the same path. For example, to change Mining's cooldown from 300 to 180 seconds, create:

data/cobblebase/skills/mining.json

{
  "id": "cobblebase:mining",
  "name": "Mining",
  "description": "Digs for ores, tumblestones, fossils, and gems",
  "category": "gathering",
  "cooldownSeconds": 180,
  "searchRadius": 10,
  "executor": "mining",
  "effectType": "harvest"
}

Species Assignment Format

Species skill assignments map Pokemon to their available skills and proficiency levels. These are stored in data/cobblebase/species/ with one JSON file per species.

{
  "species": "cobblemon:charizard",
  "skills": {
    "cobblebase:guard": 4,
    "cobblebase:lava_fill": 5,
    "cobblebase:furnace_fuel": 4
  }
}

The keys are skill IDs and the values are proficiency levels (1-5).

Example: Adding Skills to a Fakemon

{
  "species": "myfakemons:flamedeer",
  "skills": {
    "cobblebase:guard": 3,
    "cobblebase:furnace_fuel": 4,
    "cobblebase:lava_fill": 3,
    "cobblebase:finder_food": 2
  }
}

Loading Datapacks

  1. Place your datapack folder in <world>/datapacks/
  2. Run /reload or restart the server
  3. The new skills and species assignments take effect immediately

Priority Order

When multiple sources define skills for the same species:

  1. Admin GUI overrides (highest priority) -- saved in cobblebase_species_overrides.json
  2. Datapacks -- loaded from datapacks/ folder
  3. Built-in data (lowest priority) -- shipped with the mod

This means datapacks override built-in data, and the Admin GUI overrides everything.

💡 Tips

  • Use the Admin GUI for quick edits. The Admin GUI is faster for one-off changes. Use datapacks for large-scale modifications that should be shared or version-controlled.
  • Back up before overriding. If you override built-in skills, keep a copy of the original values so you can restore them.
  • Namespace your custom skills. Use your own namespace (e.g., mypack:skill_name) instead of cobblebase: to avoid conflicts with future updates.