Configuration
Every Mercantile setting, organized by section. Tune via the Mod Menu + Cloth Config GUI or by hand-editing the JSON file.
File Location & Reload
The config file is generated on first launch at:
.minecraft/config/mercantile.json
Server operators can apply changes without a restart with:
/mercantile reload
Missing keys are filled with defaults and saved. Unknown keys are ignored. All numeric values are clamped on load — out-of-range hand edits are silently corrected.
Server Config
Server-side settings that affect gameplay rules. Synced to clients via the ConfigSyncS2CPayload on join and after /mercantile reload.
| Key | Type | Default | Range | Description |
|---|---|---|---|---|
| Pickup | ||||
enableVillagerPickup | boolean | true | — | Master toggle for villager pickup feature. |
pickupXpCost | int | 5 | 0+ | XP levels deducted per pickup (creative waived). |
| Names | ||||
enableNames | boolean | true | — | Auto-assign biome-themed names on villager spawn. |
| Trade Cycling | ||||
enableTradeCycling | boolean | true | — | Show the "Re-roll Trades" button in the merchant GUI. |
tradeCycleEmeraldCost | int | 6 | 0+ | Emeralds consumed per cycle (creative waived). |
| Reputation | ||||
enableReputation | boolean | true | — | Master toggle for the reputation system (score, tiers, exclusive trades). |
reputationTradeGain | int | 1 | 0+ | Score gained per completed trade. |
reputationCureGain | int | 15 | 0+ | Score gained per cured zombie villager (one-time per UUID). |
reputationAttackLoss | int | 10 | 0+ | Score lost per villager attack (absolute value). |
reputationKillLoss | int | 25 | 0+ | Score lost per villager kill (absolute value). |
reputationCycleGain | int | 2 | 0+ | Score gained per trade cycle. |
| Follow Mode | ||||
enableFollowMode | boolean | true | — | Sneak-right-click + emerald to recruit a villager to follow. |
maxFollowingVillagers | int | 3 | 1+ | Maximum villagers one player may have following at once. |
| Pathfinding | ||||
enablePathfindingFixes | boolean | true | — | Master toggle for all pathfinding improvements. |
enablePathfindingDoors | boolean | true | — | Fence gate + double door navigation. |
enablePathfindingStairs | boolean | true | — | Multi-step staircase + slab transitions. |
enablePathfindingLadders | boolean | true | — | Allow villagers to climb ladders. |
enablePathfindingWater | boolean | true | — | Penalize water paths so villagers prefer dry routes. |
| Bulk Trading | ||||
enableBulkTrading | boolean | true | — | Shift-click trade output to repeat the trade up to 64 times. |
| Profession Lock | ||||
enableProfessionLock | boolean | true | — | Permanently lock profession after any completed trade. |
| Healing | ||||
enableHealing | boolean | true | — | Multiply splash/lingering heal + regen effects on villagers. |
healingMultiplier | float | 2.0 | 1.0 – 10.0 | Multiplier applied to heal amount and regen duration. |
| Trade GUI | ||||
enableRestockIndicator | boolean | true | — | Show restock timer + counter in the merchant screen. |
enableDemandTransparency | boolean | true | — | Show hoverable price breakdown tooltip. |
| Breeding Tooltip | ||||
enableBreedingTooltip | boolean | true | — | Send breeding data to Jade/WTHIT tooltips. |
| State Indicators | ||||
enableStateIndicators | boolean | true | — | Send contextual state icons (needs workstation, panicking, trading) to Jade/WTHIT. |
| Sentry Pylon | ||||
enableSentryPylon | boolean | true | — | Master toggle for the Sentry Pylon block + crafting recipe. |
pylonDetectionRadius | int | 32 | 4 – 128 | Blocks within which the pylon detects hostile mobs. |
pylonMaxFuel | int | 8 | 1+ | Iron blocks the pylon can store at once. |
pylonMaxGolems | int | 3 | 1+ | Maximum active sentry golems per pylon. |
sentryDespawnSeconds | int | 30 | 5+ | Seconds without hostiles before a sentry despawns. |
Client Config
Client-side rendering and audio preferences. Stored in the same JSON file but never synced — every client owns its values independently.
| Key | Type | Default | Range | Description |
|---|---|---|---|---|
villagerSoundVolume | float | 1.0 | 0.0 – 1.0 | Volume for all villager sound events (0.0 = mute, 1.0 = vanilla). |
enableWorkstationVis | boolean | true | — | Render workstation-link particles while holding a bell. |
enableBellRadiusVis | boolean | true | — | Render the 48-block bell radius circle while holding a bell. |
enableInfoPanel | boolean | true | — | Show the villager info side panel in the merchant screen. |
enableReputationHud | boolean | true | — | Show the top-left reputation tier indicator near villagers. |
Full Default JSON
For reference, the complete mercantile.json with every field set to its default value:
{
"enableVillagerPickup": true,
"pickupXpCost": 5,
"enableNames": true,
"enableTradeCycling": true,
"tradeCycleEmeraldCost": 6,
"enableReputation": true,
"reputationTradeGain": 1,
"reputationCureGain": 5,
"reputationAttackLoss": 15,
"reputationKillLoss": 40,
"reputationCycleGain": 1,
"reputationDailyCap": 5,
"reputationTradesPerGain": 5,
"reputationDailyMaxTradeRep": 2,
"reputationDailyMaxCycleRep": 1,
"enableFollowMode": true,
"maxFollowingVillagers": 3,
"enablePathfindingFixes": true,
"enablePathfindingDoors": true,
"enablePathfindingStairs": true,
"enablePathfindingLadders": true,
"enablePathfindingWater": true,
"enableBulkTrading": true,
"enableProfessionLock": true,
"enableHealing": true,
"healingMultiplier": 2.0,
"enableRestockIndicator": true,
"enableDemandTransparency": true,
"enableBreedingTooltip": true,
"enableStateIndicators": true,
"enableSentryPylon": true,
"pylonDetectionRadius": 32,
"pylonMaxFuel": 8,
"pylonMaxGolems": 3,
"sentryDespawnSeconds": 30,
"villagerSoundVolume": 1.0,
"enableWorkstationVis": true,
"enableBellRadiusVis": true,
"enableInfoPanel": true,
"enableReputationHud": true
}