- Complete module catalog with descriptions and dependencies - Step-by-step download instructions for GitHub Actions workflow - Production deployment process documentation - Developer setup and contributing guidelines 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
9.0 KiB
ETS Module Collection
A comprehensive collection of World of Warcraft Eluna TypeScript (ETS) modules for AzerothCore servers. These modules add custom gameplay features, UI enhancements, and server management tools.
🎮 Available Modules
🖥️ User Interface (UI) Modules
Bot Manager (UI/botmgr)
Advanced bot management system with equipment handling and statistics.
- Dependencies:
constants,classes - Features: Bot equipment management, stat tracking, unit handling
- Files:
botmgr.client.ts,botmgr.server.ts,bot.ts,botUnit.ts
Gambler (UI/gambler)
Interactive slot machine gambling system.
- Dependencies:
classes - Features: Slot machine gameplay, currency handling
- Command:
/gamble - Files:
gambler.client.ts,gambler.server.ts
Mythic Plus (UI/mythicplus)
Comprehensive dungeon enhancement system with advancement mechanics.
- Dependencies:
classes,constants - Features: Custom spells, dungeon modifications, player advancement, mythic items
- Files:
mythicplus.client.ts,mythicplus.server.ts,advance.client.ts,advance.server.ts,mythic_*
Shared UI (UI/shared)
Common UI utilities and components.
- Dependencies: None
- Features: Audio player client functionality
- Files:
audioplayer.client.ts
🛠️ Core Classes (classes)
Essential utility classes used across modules.
- Dependencies: None
- Components:
account.ts- Account information handlinggroup.ts- Group size and management utilitiesitemdetails.ts- Item information processinglogger.ts- Logging systemmapzones.ts- Map and zone utilitiesmoney.ts- Currency conversion and handlingserver-utils.ts- Server utility functionsstats.ts- Player statistics trackingtriggers.ts- Event trigger systemui-utils.ts- User interface utilities
⚙️ Commands (commands)
Server administration commands.
- Dependencies:
classes - Available:
set-xp-rate.ts- Dynamic experience rate adjustment
📊 Constants (constants)
Shared constants and ID mappings.
- Dependencies: None
- Components:
idmaps.ts- Game object and item ID mappings
🎯 Events (events)
Server event handlers and modifications.
- Dependencies:
classes - Available:
achievement-tokens.ts- Achievement-based token rewardsworgoblin-patch.ts- Worgen/Goblin currency fixes
🏺 Game Objects (gameobject)
Interactive world objects.
- Dependencies:
classes - Available:
gamblechest.ts- Gambling chest mechanicswindpeak.ts- Windpeak-specific objects
🎲 Gameplay (gameplay)
Core gameplay modifications.
- Dependencies:
classes - Available:
reputation-tabard.ts- Reputation system enhancements
👑 GM Tools (gm)
Game Master utilities and tools.
- Dependencies: None
- Available:
play-leeroy.ts- Leeroy Jenkins easter eggtest-hidden-channel.ts- Hidden channel testing
🎒 Items (items)
Custom item behaviors and handlers.
- Dependencies:
classes - Available:
badge-of-justice.ts- Badge of Justice mechanicsbonus-enchantment.ts- Bonus enchantment systembook-of-travel.ts- Teleportation itemdarkmoon.ts- Darkmoon Faire enhancementstokens.ts- Token drop system for dungeon bossesvashj-fix.ts- Lady Vashj encounter fixes
🤖 NPCs (npcs)
Non-player character enhancements.
- Dependencies:
classes,constants - Available:
npcbot.ts- NPC bot functionalitysoulswapper.ts- Cross-character soulbound item transfer
🌐 Global Environment (00_Envs)
Essential global configurations and environment setup.
- Dependencies: None
- Note: Always included in builds
- Files:
global_envs.ts
📥 How to Download Individual Modules
For Server Administrators & Users
- Navigate to Actions: Go to the Actions tab in this repository
- Select Workflow: Click on "Download Individual Module"
- Run Workflow: Click "Run workflow" and configure your download:
- Module Category: Choose from dropdown (e.g.,
UI/gambler,items,classes) - Specific Module (optional): Enter a specific file name (e.g.,
tokens.ts) - Include Dependencies: ✅ Recommended - automatically includes required modules
- Module Category: Choose from dropdown (e.g.,
- Download: Once complete, download the generated artifact ZIP file
- Install: Extract to your server's Eluna scripts directory
Download Examples
- Complete Gambler System: Select
UI/gambler+ dependencies → Gets gambler + classes + global environment - Just Token System: Select
items+tokens.ts+ dependencies → Gets tokens.ts + classes + global environment - Bot Manager: Select
UI/botmgr+ dependencies → Gets bot manager + constants + classes + global environment - Everything: Select
all-modules→ Gets complete module collection
Installation Notes
- Dependencies: When enabled, automatically includes required shared modules
- Global Environment:
00_Envsis always included (contains essential configurations) - Duplicates: Safe to overwrite if downloading multiple modules separately
- Compatibility: Built for AzerothCore with Eluna scripting engine
🚀 Production Deployment
Automated Deployment System
This repository uses GitHub Actions for automated building and deployment:
Deployment Trigger
- When: Pull Request merged from
dev→mainbranch - What: Builds all modules and deploys to production server
- Where: Deploys to
/home/bcarter/acore/scripts/etson production server
Deployment Process
- Build: Compiles TypeScript to Lua using ETS build system
- Version: Creates date-commit versioned build (e.g.,
2024-08-26-abc1234) - Clean: Removes all existing files from production directory
- Deploy: Uploads compiled Lua files to production server
- Verify: Confirms successful deployment
- Release: Creates GitHub release with build artifacts
Build Artifacts
Each deployment creates:
version.txt: Build version, date, and commit informationchangelog.txt: Recent commit history and changes- Compiled Lua Files: All TypeScript modules converted to Lua
- GitHub Release: Tagged release with downloadable artifacts
Server Requirements
- SSH Access: Production server accessible via SSH key authentication
- Path: Clean deployment to
/home/bcarter/acore/scripts/ets - Eluna: AzerothCore server with Eluna scripting enabled
Manual Deployment Commands
For development and testing:
# Development build and copy
npm run dev
# Development build and deploy
npm run deploy:dev
# Production build and deploy
npm run deploy:prod
# Watch and auto-deploy on changes
npm run watch:dev
🔧 Development Setup
Prerequisites
- Node.js 18+
- TypeScript
- ETS (Eluna TypeScript) build system
Installation
# Clone repository
git clone https://github.com/araxiaonline/ets-module-collection.git
cd ets-module-collection
# Install dependencies
npm install
# Configure environment
cp ets.env.example ets.env # Configure your settings
# Build modules
npm run build
Project Structure
modules/
├── 00_Envs/ # Global environment (always included)
├── UI/ # User interface modules
├── classes/ # Core utility classes
├── constants/ # Shared constants and mappings
├── events/ # Event handlers
├── gameobject/ # Interactive world objects
├── gameplay/ # Core gameplay modifications
├── gm/ # Game Master tools
├── items/ # Custom item behaviors
└── npcs/ # NPC enhancements
📖 Module Dependencies
The build system automatically handles dependencies:
- UI Modules: Require
classesand/orconstants - Feature Modules: Most require
classesfor utility functions - Core Modules:
classes,constantshave no dependencies - Global:
00_Envsalways included in every build
🤝 Contributing
- Fork the repository
- Create feature branch from
dev - Make your changes
- Submit Pull Request to
devbranch - Changes will be automatically deployed when merged to
main
📄 License
This project is open source. Please check individual module files for specific licensing information.
🆘 Support
- Issues: Report bugs and feature requests in Issues
- Discussions: Join community discussions in Discussions
- Documentation: Module-specific documentation available in source files
Built for AzerothCore with ❤️ by the Araxia Online community