mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 00:58:34 +00:00
279 lines
7.8 KiB
Markdown
279 lines
7.8 KiB
Markdown
# Configuration Management System
|
||
|
||
This system allows easy management of AzerothCore server settings using familiar INI/conf file syntax.
|
||
|
||
## 📁 File Structure
|
||
|
||
```
|
||
config/
|
||
├── server-overrides.conf # Main configuration overrides
|
||
└── presets/ # Pre-configured server types
|
||
├── blizzlike.conf # Authentic WotLK experience
|
||
├── fast-leveling.conf # 3x XP rates
|
||
├── hardcore-pvp.conf # Competitive PvP server
|
||
└── casual-pve.conf # Relaxed PvE experience
|
||
```
|
||
|
||
## 🚀 Quick Start
|
||
|
||
### 1. Edit Configuration Settings
|
||
|
||
Edit `config/server-overrides.conf` with your desired settings:
|
||
|
||
```ini
|
||
[worldserver.conf]
|
||
Rate.XP.Kill = 2.0
|
||
Rate.XP.Quest = 2.0
|
||
GM.InGMList.Level = 3
|
||
|
||
[playerbots.conf]
|
||
AiPlayerbot.MinRandomBots = 100
|
||
AiPlayerbot.MaxRandomBots = 300
|
||
```
|
||
|
||
### 2. Apply Configuration
|
||
|
||
```bash
|
||
# Apply your custom overrides
|
||
./scripts/apply-config.py
|
||
|
||
# Or apply a preset
|
||
./scripts/apply-config.py --preset fast-leveling
|
||
|
||
# Preview changes without applying
|
||
./scripts/apply-config.py --dry-run
|
||
```
|
||
|
||
### 3. Restart Server
|
||
|
||
Restart your AzerothCore containers to apply the changes:
|
||
|
||
```bash
|
||
docker compose down && docker compose up -d
|
||
```
|
||
|
||
## 🤖 Automated Integration
|
||
|
||
The configuration system is fully integrated into the setup and deployment workflow for seamless automation.
|
||
|
||
### **Setup Integration**
|
||
During `./setup.sh`, you can choose a server configuration preset:
|
||
```
|
||
SERVER CONFIGURATION PRESET
|
||
Choose a server configuration preset:
|
||
1) Default (No Preset)
|
||
Use default AzerothCore settings without any modifications
|
||
2) Blizzlike Server
|
||
Authentic WotLK experience with 1x rates and original mechanics
|
||
3) Fast Leveling Server
|
||
3x XP rates with quality of life improvements and cross-faction features
|
||
4) Hardcore PvP Server
|
||
Competitive PvP environment with 1.5x leveling and minimal bots
|
||
5) Casual PvE Server
|
||
Relaxed PvE experience with 2x rates and social features
|
||
```
|
||
|
||
The chosen preset is stored in `.env`:
|
||
```bash
|
||
SERVER_CONFIG_PRESET=fast-leveling
|
||
```
|
||
|
||
### **Deploy Integration**
|
||
During `./deploy.sh`, the configuration is automatically applied:
|
||
```
|
||
Step 5/6: Applying server configuration
|
||
✅ Applying server configuration preset: fast-leveling
|
||
✅ Server configuration preset 'fast-leveling' applied successfully
|
||
ℹ️ Restarting worldserver to apply configuration changes
|
||
```
|
||
|
||
### **Automated Usage Examples**
|
||
|
||
**Interactive Setup:**
|
||
```bash
|
||
./setup.sh
|
||
# Choose preset during interactive configuration
|
||
./deploy.sh
|
||
# Configuration automatically applied
|
||
```
|
||
|
||
**Non-Interactive Setup:**
|
||
```bash
|
||
./setup.sh --server-config fast-leveling --non-interactive
|
||
./deploy.sh
|
||
# Configuration automatically applied
|
||
```
|
||
|
||
**Skip Configuration:**
|
||
```bash
|
||
./deploy.sh --skip-config
|
||
# Deploys without applying any configuration changes
|
||
```
|
||
|
||
## 📋 Available Commands
|
||
|
||
### Apply Custom Overrides
|
||
```bash
|
||
./scripts/apply-config.py
|
||
```
|
||
|
||
### Apply a Preset
|
||
```bash
|
||
# List available presets
|
||
./scripts/apply-config.py --list-presets
|
||
|
||
# Apply specific preset
|
||
./scripts/apply-config.py --preset blizzlike
|
||
./scripts/apply-config.py --preset fast-leveling
|
||
./scripts/apply-config.py --preset hardcore-pvp
|
||
./scripts/apply-config.py --preset casual-pve
|
||
```
|
||
|
||
### Advanced Usage
|
||
```bash
|
||
# Apply only specific conf files
|
||
./scripts/apply-config.py --files "worldserver.conf,playerbots.conf"
|
||
|
||
# Preview changes without applying
|
||
./scripts/apply-config.py --dry-run
|
||
|
||
# Use different storage path
|
||
./scripts/apply-config.py --storage-path /custom/storage
|
||
|
||
# Use different overrides file
|
||
./scripts/apply-config.py --overrides-file /path/to/custom.conf
|
||
```
|
||
|
||
## ⚙️ Configuration Format
|
||
|
||
### Section Headers
|
||
Each section corresponds to a `.conf` file:
|
||
```ini
|
||
[worldserver.conf] # Settings for worldserver.conf
|
||
[authserver.conf] # Settings for authserver.conf
|
||
[playerbots.conf] # Settings for playerbots.conf
|
||
[mod_transmog.conf] # Settings for mod_transmog.conf
|
||
```
|
||
|
||
### Data Types
|
||
```ini
|
||
# Boolean values (0 = disabled, 1 = enabled)
|
||
SomeFeature.Enable = 1
|
||
|
||
# Numeric values
|
||
Rate.XP.Kill = 2.5
|
||
MaxPlayerLevel = 80
|
||
|
||
# String values (can be quoted or unquoted)
|
||
ServerMessage = "Welcome to our server!"
|
||
DatabaseInfo = "127.0.0.1;3306;user;pass;db"
|
||
```
|
||
|
||
### Comments
|
||
Lines starting with `#` are comments and are ignored:
|
||
```ini
|
||
# This is a comment
|
||
# Rate.XP.Kill = 1.0 # This setting is disabled
|
||
Rate.XP.Quest = 2.0 # Active setting with comment
|
||
```
|
||
|
||
## 🎯 Available Presets
|
||
|
||
### blizzlike.conf
|
||
- **Description**: Authentic WotLK experience
|
||
- **XP Rates**: 1x (Blizzlike)
|
||
- **Features**: No cross-faction interaction, standard death penalties
|
||
|
||
### fast-leveling.conf
|
||
- **Description**: 3x XP with quality of life improvements
|
||
- **XP Rates**: 3x Kill/Quest, 2.5x Money
|
||
- **Features**: Cross-faction interaction, faster corpse decay, autobalance
|
||
|
||
### hardcore-pvp.conf
|
||
- **Description**: Competitive PvP environment
|
||
- **XP Rates**: 1.5x (to reach endgame faster)
|
||
- **Features**: No cross-faction interaction, minimal bots, expensive transmog
|
||
|
||
### casual-pve.conf
|
||
- **Description**: Relaxed PvE with social features
|
||
- **XP Rates**: 2x XP, 2.5x Rest bonus
|
||
- **Features**: Full cross-faction interaction, high bot population, solo LFG
|
||
|
||
## 🔧 How It Works
|
||
|
||
1. **Preservation**: The system reads your existing `.conf` files and preserves all comments and structure
|
||
2. **Override**: Only the settings you specify are updated
|
||
3. **Fallback**: If a `.conf` file doesn't exist, it's created from the corresponding `.dist` file
|
||
4. **Safety**: Use `--dry-run` to preview changes before applying
|
||
|
||
## 📝 Common Settings Reference
|
||
|
||
### XP and Progression
|
||
```ini
|
||
[worldserver.conf]
|
||
Rate.XP.Kill = 2.0 # XP from killing monsters
|
||
Rate.XP.Quest = 2.0 # XP from completing quests
|
||
Rate.XP.Explore = 1.5 # XP from exploring new areas
|
||
Rate.Rest.InGame = 2.0 # Rest bonus while logged in
|
||
Rate.Rest.Offline.InTavernOrCity = 2.0 # Rest bonus while offline in safe zones
|
||
```
|
||
|
||
### Drop Rates
|
||
```ini
|
||
[worldserver.conf]
|
||
Rate.Drop.Money = 1.5 # Money drop rate
|
||
Rate.Drop.Items = 1.2 # Item drop rate
|
||
```
|
||
|
||
### Cross-Faction Settings
|
||
```ini
|
||
[worldserver.conf]
|
||
AllowTwoSide.Interaction.Chat = 1 # Cross-faction chat
|
||
AllowTwoSide.Interaction.Group = 1 # Cross-faction groups
|
||
AllowTwoSide.Interaction.Guild = 1 # Cross-faction guilds
|
||
AllowTwoSide.Interaction.Auction = 1 # Shared auction house
|
||
AllowTwoSide.Interaction.Mail = 1 # Cross-faction mail
|
||
```
|
||
|
||
### Playerbot Settings
|
||
```ini
|
||
[playerbots.conf]
|
||
AiPlayerbot.RandomBotMinLevel = 15 # Minimum bot level
|
||
AiPlayerbot.RandomBotMaxLevel = 80 # Maximum bot level
|
||
AiPlayerbot.MinRandomBots = 50 # Minimum number of bots
|
||
AiPlayerbot.MaxRandomBots = 200 # Maximum number of bots
|
||
AiPlayerbot.RandomBotJoinLfg = 1 # Bots join LFG
|
||
AiPlayerbot.RandomBotJoinBG = 1 # Bots join battlegrounds
|
||
```
|
||
|
||
### Module Settings
|
||
```ini
|
||
[mod_transmog.conf]
|
||
Transmogrification.Enable = 1 # Enable transmogrification
|
||
Transmogrification.Cost = 100000 # Cost in copper
|
||
|
||
[mod_autobalance.conf]
|
||
AutoBalance.enable = 1 # Enable dungeon scaling
|
||
AutoBalance.MinPlayerReward = 1 # Scale rewards for solo play
|
||
```
|
||
|
||
## 🆘 Troubleshooting
|
||
|
||
### Configuration Not Applied
|
||
- Ensure you restart the server after applying changes
|
||
- Check that the `.conf` files exist in your `storage/config/` directory
|
||
- Use `--dry-run` to verify what changes would be made
|
||
|
||
### Permission Errors
|
||
```bash
|
||
# Make sure the script is executable
|
||
chmod +x scripts/apply-config.py
|
||
|
||
# Check file permissions in storage/config/
|
||
ls -la storage/config/
|
||
```
|
||
|
||
### Finding Available Settings
|
||
- Look in your `storage/config/` directory for `.conf` files
|
||
- Each module's available settings are documented in their `.conf` files
|
||
- Use `--dry-run` to see which files would be affected |