# Configuration
Observer uses multiple configuration files to manage its systems. The primary `config.yml` controls core settings, while individual manager files handle system-specific options.
---
## config.yml
The main configuration file located at `plugins/Observer/config.yml`.
### License
Your license key is your Discord ID. See the comment block at the top of the file for instructions on how to find it.
### Core Settings
| Key | Type | Default | Description |
|---|---|---|---|
| `version` | Integer | `9` | Internal config version. Do not modify. |
| `state` | String | `IN_GAME` | The current game state. Valid values: `IN_LOBBY`, `PRE_GAME`, `IN_GAME`. |
| `worlds.event` | String | `"world"` | The name of the event world. |
| `worlds.lobby` | String | `"lobby"` | The name of the lobby world. |
| `base_health` | Double | `20.0` | The base health points players start with. |
| `should_load_event_world` | Boolean | `true` | Whether Observer should load the event world on startup. |
### Command Namespaces
The `commands.namespaces` section allows you to rename any command registered by Observer. Change the value to your preferred command alias.
| Key | Default Namespace |
|---|---|
| `commands.namespaces.kit` | `kit` |
| `commands.namespaces.capsules` | `capsules` |
| `commands.namespaces.enchantments` | `enchantments` |
| `commands.namespaces.items` | `items` |
| `commands.namespaces.mechanics` | `mechanics` |
| `commands.namespaces.pedestals` | `pedestals` |
| `commands.namespaces.recipes` | `recipes` |
| `commands.namespaces.respawn` | `respawn` |
| `commands.namespaces.settings` | `settings` |
| `commands.namespaces.resetallbans` | `resetallbans` |
| `commands.namespaces.lifesteal` | `lifesteal` |
### Command Permissions
The `commands.permissions` section allows you to customize the permission node required for each command.
| Key | Default Permission |
|---|---|
| `commands.permissions.kit` | `lodestone.observer.commands.kit` |
| `commands.permissions.capsules` | `lodestone.observer.commands.capsules` |
| `commands.permissions.enchantments` | `lodestone.observer.commands.enchantments` |
| `commands.permissions.items` | `lodestone.observer.commands.items` |
| `commands.permissions.mechanics` | `lodestone.observer.commands.mechanics` |
| `commands.permissions.pedestals` | `lodestone.observer.commands.pedestals` |
| `commands.permissions.recipes` | `lodestone.observer.commands.recipes` |
| `commands.permissions.respawn` | `lodestone.observer.commands.respawn` |
| `commands.permissions.settings` | `lodestone.observer.commands.settings` |
| `commands.permissions.resetallbans` | `lodestone.observer.commands.resetallbans` |
| `commands.permissions.lifesteal` | `lodestone.observer.commands.lifesteal` |
---
## capsules.yml
Controls the capsule spawning system.
| Key | Type | Default | Description |
|---|---|---|---|
| `type` | String | `BATTLE_ROYALE` | Capsule mode. Valid values: `BATTLE_ROYALE`, `CIVILIZATION`, `WORLD_SPAWN`. |
| `config.scatter.min` | Integer | `20` | Minimum scatter distance for BATTLE_ROYALE mode. |
| `config.scatter.max` | Integer | `50` | Maximum scatter distance for BATTLE_ROYALE mode. |
| `config.radius.CIVILIZATION` | Integer | `15` | Spawn radius for CIVILIZATION mode. |
| `config.radius.WORLD_SPAWN` | Integer | `30` | Spawn radius for WORLD_SPAWN mode. |
| `capsules` | List | `[]` | List of capsule locations. Managed automatically. |
| `whitelist` | List | `[]` | Player whitelist for capsule assignment. |
---
## mechanics.yml
Controls gameplay mechanics toggles.
| Key | Type | Default | Description |
|---|---|---|---|
| `increased_apple_rates` | Double | `0.0` | Multiplier for increased apple drop rates. `0.0` means default rates. |
| `increased_flint_rates` | Double | `0.0` | Multiplier for increased flint drop rates. `0.0` means default rates. |
| `is_sleeping_allowed` | Boolean | `true` | Whether players can sleep in beds. |
| `can_enchant_items` | Boolean | `true` | Whether enchanting tables function. |
| `can_use_anvils` | Boolean | `true` | Whether anvils function. |
| `can_use_ender_chests` | Boolean | `true` | Whether ender chests can be opened. |
| `can_breed_villagers` | Boolean | `true` | Whether villagers can breed. |
| `can_trade_with_villagers` | Boolean | `true` | Whether players can trade with villagers. |
| `can_use_respawn_anchors` | Boolean | `true` | Whether respawn anchors function. |
| `can_bed_bomb` | Boolean | `true` | Whether bed explosions deal damage. |
| `can_portal_trap` | Boolean | `true` | Whether portal trapping is allowed. |
| `can_indirect_pvp` | Boolean | `true` | Whether indirect PvP (lava, TNT, etc.) is allowed. |
| `should_global_block_decay` | Boolean | `false` | Whether all placed blocks decay over time. |
| `is_unbreakable_spawners` | Boolean | `false` | Whether spawners are indestructible. |
| `is_better_world_border` | Boolean | `false` | Whether the improved world border system is active. |
| `should_match_world_borders` | Boolean | `false` | Whether world borders synchronize across dimensions. |
| `can_brew_potions` | Boolean | `true` | Whether brewing stands function. |
| `is_nether_allowed` | Boolean | `true` | Whether players can enter the Nether. |
| `is_end_allowed` | Boolean | `true` | Whether players can enter the End. |
| `should_grant_all_recipes` | Boolean | `false` | Whether all recipes are unlocked for players. |
| `allow_block_trampling` | Boolean | `true` | Whether farmland can be trampled. |
### Combat Logging
| Key | Type | Default | Description |
|---|---|---|---|
| `combat_logging.enabled` | Boolean | `false` | Whether combat logging detection is active. |
| `combat_logging.duration` | Integer | `5` | Combat tag duration in seconds. |
| `combat_logging.display_type` | String | `ACTION_BAR` | Where to show combat status. Valid values: `ACTION_BAR`, `TITLE`, `CHAT`. |
| `combat_logging.display_message` | String | `"You are in combat for {time} seconds!"` | The message shown to players in combat. |
| `combat_logging.combat_notification_translation` | String | `COMBAT_NOTIFICATION` | The translation key used when a player is combat tagged. |
---
## Elimination Manager (managers/elimination.yml)
| Key | Type | Default | Description |
|---|---|---|---|
| `enabled` | Boolean | `false` | Whether the elimination system is active. |
| `gamemode_on_death` | String | `SPECTATOR` | Gamemode assigned to eliminated players. |
| `lightning_on_kill` | Boolean | `true` | Whether lightning strikes at the death location. |
| `auto_ban.enabled` | Boolean | `false` | Whether eliminated players are automatically banned. |
| `auto_ban.bypass` | String | `lodestone.observer.auto_ban.bypass` | Permission to bypass auto-ban. |
| `death_message` | String | `ELIMINATION_MESSAGE` | Translation key for death broadcast. |
| `kick_message` | String | `ELIMINATION_KICK_MESSAGE` | Translation key for the kick message shown to eliminated players. |
| `auto_respawn` | Boolean | `false` | Whether players are automatically respawned after death. |
| `minimum_remaining_players` | Integer | `0` | Number of "fake players" added to the remaining count. |
---
## Lifesteal Manager (managers/lifesteal.yml)
| Key | Type | Default | Description |
|---|---|---|---|
| `enabled` | Boolean | `false` | Whether the lifesteal system is active. |
| `name` | String | `<red><bold>Heart` | Display name of the heart item (MiniMessage format). |
| `lore` | String | *(multiline)* | Lore text for the heart item (MiniMessage format). |
| `material` | String | `NETHER_STAR` | Material type for the heart item. |
| `item_model` | String | `minecraft:nether_star` | Item model identifier. |
| `stackable` | Boolean | `false` | Whether heart items can stack. |
| `heart_pop` | Boolean | `true` | Whether hearts "pop" with a visual effect. |
| `type` | String | `DROP` | Lifesteal type. Valid values: `DROP`, `CONSUME`, `OBTAIN`, `ANYTIME`. |
| `max_health` | Double | `40` | Maximum health a player can reach. |
| `min_health` | Double | `14` | Minimum health before withdrawal is blocked. |
| `can_withdraw` | Boolean | `true` | Whether players can withdraw hearts from their own health. |
| `should_remove_heart` | Boolean | `false` | Whether the heart item is consumed on use. |
| `display.drop` | String | `LIFESTEAL_FULL_INVENTORY` | Translation key for full inventory message. |
| `display.min` | String | `LIFESTEAL_MIN` | Translation key for minimum health reached. |
| `display.withdraw` | String | `LIFESTEAL_WITHDRAW` | Translation key for heart withdrawal. |
| `display.max` | String | `LIFESTEAL_MAX` | Translation key for maximum health reached. |
| `display.consume` | String | `LIFESTEAL_CONSUME` | Translation key for heart consumption. |
---
## Respawn Manager (managers/respawn.yml)
| Key | Type | Default | Description |
|---|---|---|---|
| `enabled` | Boolean | `false` | Whether the respawn system is active. |
---
## Late Scatter Manager (managers/late_scatter.yml)
| Key | Type | Default | Description |
|---|---|---|---|
| `enabled` | Boolean | `false` | Whether late scatter is active. |
| `gamemode` | String | `SURVIVAL` | Gamemode assigned to late-scattered players. |
| `translation` | String | `LATE_JOIN` | Translation key for the late join message. |
| `inventory` | Object | `null` | Starting inventory for late-scattered players. |
---
## HelpOp Manager (managers/helpop.yml)
| Key | Type | Default | Description |
|---|---|---|---|
| `enabled` | Boolean | `false` | Whether the HelpOp system is active. |
| `cooldown` | Long | `300000` | Cooldown between help requests in milliseconds (default: 5 minutes). |
---
## translations.yml
Defines all player-facing messages, titles, and sounds. Each translation key can include:
- `tellraw` - A MiniMessage-formatted chat message. Prefix with `<center>` to center the text.
- `title` - A title/subtitle display with `title` and `subtitle` fields.
- `sound` - A sound effect with `sound`, `volume`, and `pitch` fields.
See the default `translations.yml` for all available keys and their placeholder variables.
---
## restrictions.yml
Manages item and enchantment restrictions. Use the in-game menu (`/observer` > Restrictions) to manage restrictions rather than editing this file directly. Changes persist across restarts.
The file contains three top-level sections:
- `enchantments.enchants` - Global enchantment level caps (e.g. `SHARPNESS: 4`).
- `enchantments.items` - Per-item enchantment overrides that beat the global caps (e.g. `SHIELD: { UNBREAKING: 0 }`).
- `items.<MATERIAL_OR_ID>` - Per-item attribute restrictions (`obtainable`, `craftable`, `usable`, `cooldown`, `max_quantity`, `max_durability`, `max_stack_size`, `damage_boost`, `damage_reduction`, `can_enchant`, `can_combine`, etc.).
- `groups.<GROUP_KEY>` - Group restrictions that apply to many items at once. Created from the **Add Item** menu by toggling one or more group switches before confirming. Supported group keys:
- **Tool tiers** - `swords`, `axes`, `pickaxes`, `shovels`, `hoes`, `spears` (every tier of that tool).
- **Tool families** - `<tier>_tools` (e.g. `diamond_tools`) - every tool of that tier.
- **Armor sets** - `<tier>_armor` (e.g. `diamond_armor`, `leather_armor`) - every armor piece of that tier.
- **Potion variants** - `potion_<TYPE>` (e.g. `potion_STRENGTH`) - drinkable / splash / lingering forms of a specific variant.
- **Potion effects** - `effect_<EFFECT>` (e.g. `effect_STRENGTH`) - every level, duration, and form of an effect.
- **Item categories** - selected via the **Affect Item Category** toggle. Auto-detected category keys include `banner_patterns`, `pottery_shards`, `templates`, `enchanted_books`, `spawn_eggs`, `arrows`, `nautilus_armor`, `horse_armor`, `heads`, `golem_statues`, `chests`, `signs`, `boats`, `lanterns`, `torches`, `bulbs`, `anvils`, `beds`, `corals`, `coral_fans`, `chains`, `potions`, `splash_potions`, `lingering_potions`, `discs`, `goat_horns`, `harnesses`, `bundles`.
Lookup priority: a defined `items.<id>` entry fully overrides every matching `groups.<key>` entry — use a specific item entry whenever you need an exception to a broader group restriction. If no `items.<id>` entry exists, every applicable `groups.<key>` is consulted in order. Multiple group toggles produce multiple independent group entries that can later be edited separately from the restriction list.
---
## pedestals.yml
Stores pedestal crafting station data. Managed through the in-game pedestal commands and GUI.
---
## custom_recipes.yml
Stores custom crafting recipes. Managed through the in-game recipe commands and GUI.
---
## Related Pages
- [[Observer/Server Owners/Overview]] - Plugin overview and features
- [[Observer/Server Owners/Commands]] - Complete commands reference