Configuration Reference
Full reference for plugins/SteadfastVillagers/config.yml
Conversion Settings
Controls how villagers are converted to blocks.
conversion:
item: EMERALD_BLOCK
consume-item: true
min-conversion-level: 1
preserve-custom-name: true
allowed-professions:
- ARMORER
- BUTCHER
- CARTOGRAPHER
| Setting | Type | Default | Description |
item | Material | EMERALD_BLOCK | Item required to convert a villager |
consume-item | Boolean | true | Whether the item is consumed on use |
min-conversion-level | 1-5 | 1 | Minimum villager level (1=Novice, 5=Master) |
preserve-custom-name | Boolean | true | Keep villager's custom name on the block |
allowed-professions | List | All 13 | Which professions can be converted |
Villager Levels
| Level | Name | Trades Unlocked |
| 1 | Novice | 1-2 trades |
| 2 | Apprentice | 3-4 trades |
| 3 | Journeyman | 5-6 trades |
| 4 | Expert | 7-8 trades |
| 5 | Master | All trades |
Block Behavior
block:
require-silk-touch: true
blast-resistant: true
fire-resistant: true
| Setting | Type | Default | Description |
require-silk-touch | Boolean | true | Require Silk Touch to pick up |
blast-resistant | Boolean | true | Immune to explosions |
fire-resistant | Boolean | true | Immune to fire/lava |
Visual Effects
effects:
particles:
enabled: true
type: HAPPY_VILLAGER
frequency-ticks: 20
comparator-output: true
| Setting | Type | Default | Description |
particles.enabled | Boolean | true | Show ambient particles |
particles.type | Particle | HAPPY_VILLAGER | Particle type to display |
particles.frequency-ticks | Integer | 20 | Ticks between particles (20 = 1 sec) |
comparator-output | Boolean | true | Enable redstone comparator output |
Comparator Output Values
| Signal | Meaning |
| 0 | No active trade or output full |
| 1-14 | Proportional to output buffer fill |
| 15 | Output empty, actively trading |
Storage Buffers
storage:
input-buffer-size: 27
output-buffer-size: 27
27 slots = chest size, 54 slots = double chest size (max).
XP System
xp:
enabled: true
max-stored: 10000
allow-mending: true
xp-to-bottles:
enabled: false
xp-per-bottle: 10
output-to-hopper: true
| Setting | Type | Default | Description |
enabled | Boolean | true | Collect XP from trades |
max-stored | Integer | 10000 | Maximum XP storage |
allow-mending | Boolean | true | Repair Mending items when collecting |
xp-to-bottles.enabled | Boolean | false | Convert XP to bottles |
Villager Leveling
leveling:
enabled: true
xp-multiplier: 1.0
play-effects: true
| Setting | Type | Default | Description |
enabled | Boolean | true | Allow blocks to level up |
xp-multiplier | Double | 1.0 | XP rate (2.0 = twice as fast) |
play-effects | Boolean | true | Level-up particles/sounds |
Trade Mechanics
trades:
lock-mode: VANILLA
activation-range: 16
vanilla:
max-uses-per-restock: 4
restock-interval-ticks: 24000
require-workstation: true
cooldown-ticks: 200
Lock Modes
| Mode | Description |
VANILLA | Trades lock after uses, restock periodically |
INFINITE | Trades never lock, no restocking needed |
| Setting | Type | Default | Description |
activation-range | Integer | 16 | Player distance for processing (0 = chunk-loaded only) |
vanilla.restock-interval-ticks | Integer | 24000 | Ticks between restocks (24000 = 20 min) |
vanilla.require-workstation | Boolean | true | Require workstation in GUI |
cooldown-ticks | Integer | 200 | Ticks between trades (200 = 10 sec) |
Workstation Requirements
| Profession | Workstation |
| Armorer | Blast Furnace |
| Butcher | Smoker |
| Cartographer | Cartography Table |
| Cleric | Brewing Stand |
| Farmer | Composter |
| Fisherman | Barrel |
| Fletcher | Fletching Table |
| Leatherworker | Cauldron |
| Librarian | Lectern |
| Mason | Stonecutter |
| Shepherd | Loom |
| Toolsmith | Smithing Table |
| Weaponsmith | Grindstone |
Discount Settings
discount:
enabled: true
max-percent: 80
hero-of-village: true
Key Difference: Vanilla discounts decay over time and are player-specific. SteadfastVillagers captures the discount at conversion — it's permanent and transfers with the block.
Protection Integration
protection:
griefprevention:
enabled: true
required-trust: CONTAINER
Database Configuration
database:
host: localhost
port: 3306
database: steadfastvillagers
username: minecraft
password: your_password
table-prefix: vb_
Database Setup SQL
CREATE DATABASE steadfastvillagers;
CREATE USER 'minecraft'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON steadfastvillagers.* TO 'minecraft'@'localhost';
FLUSH PRIVILEGES;
Example Configurations
Vanilla SMP
conversion:
min-conversion-level: 5
trades:
lock-mode: VANILLA
vanilla:
require-workstation: true
block:
require-silk-touch: true
Economy Server
conversion:
min-conversion-level: 3
discount:
enabled: true
max-percent: 50
trades:
cooldown-ticks: 100
Skyblock
conversion:
min-conversion-level: 1
trades:
lock-mode: INFINITE
activation-range: 0
storage:
input-buffer-size: 54
output-buffer-size: 54