# 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` | Boolean | `false` | Whether apple drop rates are increased. |
| `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.
---
## 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