refactoring and adding automations

This commit is contained in:
Deckard
2025-10-17 01:40:50 -04:00
parent 4bf22d1829
commit 859a214e12
65 changed files with 4622 additions and 956 deletions

View File

@@ -1,282 +0,0 @@
# AzerothCore Module Configuration Requirements
This document outlines all manual configuration steps required for the enabled modules that cannot be automated through Docker container processes.
## 🚨 Critical Compatibility Issues
### MODULE_PLAYERBOTS - INCOMPATIBLE WITH STANDARD AZEROTHCORE
**❌ BREAKING ISSUE**: mod-playerbots requires a completely different AzerothCore branch:
- **Required Branch**: `liyunfan1223/azerothcore-wotlk/tree/Playerbot`
- **Current Setup**: Standard AzerothCore (INCOMPATIBLE)
**Resolution Options**:
1. **Switch to Playerbot Branch** (Recommended for bot-focused servers)
- Fork the Playerbot branch
- Rebuild entire server stack with Playerbot core
- Note: May be incompatible with some other modules
2. **Disable Playerbots** (Recommended for standard servers)
- Set `MODULE_PLAYERBOTS=0` in environment file
- Continue with standard AzerothCore
---
## 📦 Client-Side Patch Requirements
### MODULE_INDIVIDUAL_PROGRESSION
**Required Client Patches** (stored in: `${STORAGE_PATH}/modules/mod-individual-progression/optional/`):
| Patch File | Description | Required |
|------------|-------------|----------|
| `patch-V.mpq` | Vanilla crafting and recipe restoration | ✅ Yes |
| `patch-J.mpq` | Vanilla login screen | ❌ Optional |
| `patch-U.mpq` | Vanilla loading screens | ❌ Optional |
| `patch-S.mpq` | Alternative WotLK mana costs | ❌ Don't use with patch-V |
**Installation**: Players must copy required patches to their `WoW/Data/` directory.
### MODULE_ARAC (All Races All Classes)
**Required Client Patch**:
- **File**: `Patch-A.MPQ`
- **Location**: `${STORAGE_PATH}/modules/mod-arac/patch-contents/`
- **Installation**: Players must copy to `WoW/Data/` directory
**Server-Side**: DBC files are automatically applied during module installation.
---
## ⚙️ Critical Server Configuration Changes
### MODULE_INDIVIDUAL_PROGRESSION
**Required worldserver.conf Changes**:
```ini
# CRITICAL - Required for progress saving
EnablePlayerSettings = 1
# CRITICAL - Required for item stat overrides
DBC.EnforceItemAttributes = 0
```
**File Location**: `${STORAGE_PATH}/config/worldserver.conf`
### MODULE_AOE_LOOT
**Required worldserver.conf Optimization**:
```ini
# Prevent corpse cleanup issues with AoE looting
# Default: 0.5, Required: 0.01 or lower
Rate.Corpse.Decay.Looted = 0.01
```
---
## 🤖 Manual NPC Spawning Requirements
The following modules require manual NPC spawning using GM commands:
### MODULE_TRANSMOG
```
.npc add 190010
```
**Recommended Locations**: Major cities (Stormwind, Orgrimmar, Ironforge, Undercity)
### MODULE_NPC_ENCHANTER
```
.npc add [enchanter_npc_id]
```
**Note**: Check module documentation for specific NPC ID
### MODULE_REAGENT_BANK
```
.npc add 290011
```
**Recommended Locations**: Major cities near banks
### MODULE_ASSISTANT
```
.npc add [assistant_npc_id]
```
**Note**: Check module documentation for specific NPC ID
**Requirements**:
- GM account with level 3+ permissions
- Access to worldserver console or in-game GM commands
---
## 💾 Database Backup Requirements
**CRITICAL**: The following modules modify core database tables and require backup:
- **MODULE_ARAC**: Modifies race/class restrictions
- **MODULE_INDIVIDUAL_PROGRESSION**: Adds progression tracking tables
**Backup Command**:
```bash
docker exec ac-mysql mysqldump -u root -p${MYSQL_ROOT_PASSWORD} --all-databases > backup-$(date +%Y%m%d-%H%M%S).sql
```
---
## 🖥️ Eluna Lua Scripting Setup
### MODULE_ELUNA - Complete Setup
**Automated Setup Available**:
```bash
./scripts/setup-eluna.sh
```
**Manual Configuration Requirements**:
- **Script Directory**: `${STORAGE_PATH}/lua_scripts/` (volume mounted automatically)
- **English DBC Files**: Recommended for full functionality
- **Container Integration**: Scripts loaded automatically on worldserver start
**Example Scripts Provided**:
- `welcome.lua` - Player login welcome messages
- `server_info.lua` - Custom `.info` and `.serverinfo` commands
- `level_rewards.lua` - Milestone rewards for leveling
- `init.lua` - Script documentation and loader
**Key Configuration** (`mod_LuaEngine.conf`):
```ini
Eluna.ScriptPath = "lua_scripts"
Eluna.AutoReload = false # Enable only for development
Eluna.BytecodeCache = true # Performance optimization
Eluna.TraceBack = false # Enable for debugging
```
**Important Compatibility Notes**:
- ⚠️ **AzerothCore mod-eluna is NOT compatible with standard Eluna scripts**
- Scripts must be written specifically for AzerothCore's mod-eluna API
- Standard Eluna community scripts will NOT work
**Script Management Commands**:
- `.reload eluna` - Reload all Lua scripts
- `.lua [code]` - Execute Lua code directly (if enabled)
---
## 🔧 Module-Specific Configuration Files
### MODULE_PLAYERBOTS - playerbots.conf
**Key Settings**:
- `MinRandomBots = 500` (Default - reduce for performance)
- `MaxRandomBots = 500` (Default - reduce for performance)
- RandomBot account management settings
### MODULE_AOE_LOOT - mod_aoe_loot.conf
**Key Settings**:
- Loot range configuration (default: 55.0)
- Group behavior settings
### MODULE_LEARN_SPELLS - mod_learnspells.conf
**Key Settings**:
- Maximum level limits
- First login behavior
### MODULE_INDIVIDUAL_PROGRESSION - individual_progression.conf
**Key Settings**:
- Era progression rules
- Content unlock thresholds
### MODULE_TRANSMOG - transmog.conf
**Key Settings**:
- Transmogrification rules
- Cost settings
- Restriction configurations
---
## 🎯 Performance Considerations
### MODULE_PLAYERBOTS
- **Impact**: High - Can run thousands of AI bots
- **Recommendation**: Start with low bot counts (50-100)
- **Monitoring**: CPU usage, memory consumption, database load
### MODULE_ELUNA
- **Impact**: Variable - Depends on Lua script complexity
- **Requirement**: English DBC files for full functionality
- **Script Location**: `${STORAGE_PATH}/lua_scripts/` (automatically mounted)
- **Setup**: Run `./scripts/setup-eluna.sh` to create example scripts
- **Monitoring**: Script execution times
- **Reloading**: Use `.reload eluna` command in worldserver console
---
## 📋 Deployment Checklist
### Pre-Deployment
- [ ] **Critical**: Resolve Playerbots compatibility (switch branch OR disable)
- [ ] Backup database (if using ARAC or INDIVIDUAL_PROGRESSION)
- [ ] Update worldserver.conf with required settings
- [ ] Test configuration in development environment
### During Deployment
- [ ] Rebuild containers: `./scripts/rebuild-with-modules.sh`
- [ ] Verify module compilation success
- [ ] Apply any remaining SQL scripts manually
- [ ] Create GM account for NPC spawning
### Post-Deployment
- [ ] Spawn required NPCs using GM commands
- [ ] Test each module's functionality
- [ ] Distribute client patches to players
- [ ] Monitor server performance
- [ ] Adjust module configurations as needed
---
## 🚨 Known Compatibility Issues
### AzerothCore Version Dependencies
- **MODULE_TRANSMOG**: Requires minimum commit `b6cb9247ba96a862ee274c0765004e6d2e66e9e4`
- **MODULE_PLAYERBOTS**: Requires custom Playerbot branch (incompatible with standard)
### Module Conflicts
- **INDIVIDUAL_PROGRESSION + Standard AzerothCore**: patch-S.mpq conflicts with patch-V.mpq
- **ELUNA Scripts**: AzerothCore mod-eluna is NOT compatible with standard Eluna scripts
### Database Conflicts
- **MODULE_TRANSMOG**: Must delete conflicting npc_text IDs (50000, 50001) if upgrading
---
## 📞 Support and Resources
### Module Documentation
Each module's GitHub repository contains detailed configuration documentation:
- Configuration file examples (`.conf.dist` files)
- SQL requirements
- Client-side patch information
### Testing Recommendations
1. **Development Environment**: Test all modules in non-production environment first
2. **Staged Rollout**: Enable modules incrementally to identify issues
3. **Player Communication**: Provide clear client patch installation instructions
4. **Rollback Plan**: Maintain database backups for quick rollback if needed
---
## 🔄 Configuration Update Script
Run the module configuration analysis script to check your current setup:
```bash
./scripts/configure-modules.sh
```
This script will:
- Analyze your enabled modules
- Identify missing configuration requirements
- Provide step-by-step resolution guidance
- Check for compatibility issues
---
*Last Updated: $(date)*