From a005bff9892e6959efe169e5a066a4b428057779 Mon Sep 17 00:00:00 2001 From: uprightbass360 Date: Wed, 5 Nov 2025 00:31:33 -0500 Subject: [PATCH] feat: add 25 new modules, categorization system, and improved UX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added 25 new AzerothCore modules (mod-guildhouse + 24 others) - Implemented category system with 17 categories across all 93 modules - Updated README with categorized module table (68 โ†’ 93 modules) - Added 11 NPC spawn commands to documentation - Updated .env.template with categorized module sections - Created profiles/all-modules.conf (enables all 91 production modules) - Enhanced setup.sh manual selection with category grouping ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code) --- .env.template | 240 +++++++++++------- README.md | 247 +++++++++++++----- config/modules.json | 517 +++++++++++++++++++++++++++++++++----- profiles/all-modules.conf | 1 + setup.sh | 108 ++++++-- 5 files changed, 866 insertions(+), 247 deletions(-) create mode 100644 profiles/all-modules.conf diff --git a/.env.template b/.env.template index 9c8d26a..3b33e9c 100644 --- a/.env.template +++ b/.env.template @@ -147,98 +147,164 @@ CLIENT_DATA_VOLUME=ac-client-data # ===================== # Module toggles (0/1) # ===================== -MODULE_PLAYERBOTS=0 -MODULE_AOE_LOOT=0 -MODULE_LEARN_SPELLS=0 -MODULE_FIREWORKS=0 -# Requires worldserver.conf tweaks (EnablePlayerSettings=1, DBC.EnforceItemAttributes=0) -MODULE_INDIVIDUAL_PROGRESSION=0 -MODULE_AHBOT=0 -MODULE_AUTOBALANCE=0 -MODULE_TRANSMOG=0 -MODULE_NPC_BUFFER=0 -MODULE_DYNAMIC_XP=0 -MODULE_SOLO_LFG=0 -MODULE_1V1_ARENA=0 -MODULE_PHASED_DUELS=0 -# Needs BreakingNews HTML asset configured (BreakingNews.HtmlPath) -MODULE_BREAKING_NEWS=0 -MODULE_BOSS_ANNOUNCER=0 -MODULE_ACCOUNT_ACHIEVEMENTS=0 -MODULE_AUTO_REVIVE=0 -MODULE_GAIN_HONOR_GUARD=0 -MODULE_ARAC=0 -MODULE_ELUNA=1 -# Enables AzerothCore Lua Engine (mod-ale) for Lua scripting -# Requires optional SQL/DBC patches; leave off by default -MODULE_TIME_IS_TIME=0 -# Requires in-game NPC placement/config; leave off by default -MODULE_POCKET_PORTAL=0 -# Pending upstream verification; leave disabled until tested -MODULE_RANDOM_ENCHANTS=0 -MODULE_SOLOCRAFT=0 -MODULE_PVP_TITLES=0 -# Custom NPC modules pending compatibility validation -MODULE_NPC_BEASTMASTER=0 -MODULE_NPC_ENCHANTER=0 -MODULE_INSTANCE_RESET=0 -# mod-quest-count-level currently fails (uses removed sConfigMgr::GetBoolDefault) -MODULE_LEVEL_GRANT=0 -# Popular catalogue modules (disabled by default until evaluated) -MODULE_CHALLENGE_MODES=0 -MODULE_OLLAMA_CHAT=0 -# Template module for rapid prototyping -MODULE_SKELETON_MODULE=0 -# Requires custom client patch / dbc edits -MODULE_BG_SLAVERYVALLEY=0 -# TypeScriptโ†’Lua toolchain for Eluna scripts -MODULE_ELUNA_TS=0 -# Enhances playerbot deployment; expects MODULE_PLAYERBOTS=1 -MODULE_PLAYER_BOT_LEVEL_BRACKETS=0 -MODULE_STATBOOSTER=0 -MODULE_DUNGEON_RESPAWN=0 -MODULE_AZEROTHSHARD=0 -# Adds Worgen/Goblin races; requires Patch-W.MPQ + DBC sync -MODULE_WORGOBLIN=0 -MODULE_ASSISTANT=0 -MODULE_REAGENT_BANK=0 -MODULE_BLACK_MARKET_AUCTION_HOUSE=0 +# Enable/disable modules by setting to 1 (enabled) or 0 (disabled) +# Modules are organized by category for easier navigation -# ===================== -# Eluna Lua Script Modules (requires MODULE_ELUNA=1) -# ===================== -# Collection of Eluna scripts from elunascripts.github.io -MODULE_ELUNA_SCRIPTS=0 -MODULE_EVENT_SCRIPTS=0 -MODULE_LEVEL_UP_REWARD=0 -MODULE_ACCOUNTWIDE_SYSTEMS=0 -MODULE_EXCHANGE_NPC=0 -MODULE_RECRUIT_A_FRIEND=0 -MODULE_PRESTIGE_DRAFT_MODE=0 -MODULE_LUA_AH_BOT=0 -MODULE_HARDCORE_MODE=0 +# ๐Ÿค– Automation +# Playerbot and AI systems MODULE_NPCBOT_EXTENDED_COMMANDS=0 -MODULE_MULTIVENDOR=0 -MODULE_TREASURE_CHEST_SYSTEM=0 -MODULE_ACTIVE_CHAT=0 -MODULE_ULTIMATE_FULL_LOOT_PVP=0 -MODULE_HORADRIC_CUBE=0 -MODULE_CARBON_COPY=0 -MODULE_TEMP_ANNOUNCEMENTS=0 -MODULE_ZONE_CHECK=0 -MODULE_SEND_AND_BIND=0 -MODULE_DYNAMIC_TRADER=0 -MODULE_LOTTERY_LUA=0 -MODULE_DISCORD_NOTIFIER=0 -MODULE_GLOBAL_MAIL_BANKING_AUCTIONS=0 +MODULE_OLLAMA_CHAT=0 +# mod-playerbots: Installs SQL/config assets; core functionality is built into playerbot images +MODULE_PLAYERBOTS=0 +MODULE_PLAYER_BOT_LEVEL_BRACKETS=0 -# ===================== -# AIO (Azeroth Interface Override) Modules (requires MODULE_AIO=1) -# ===================== -# Client-server interface communication modules -MODULE_AIO=0 +# โœจ Quality of Life +# Convenience features that improve gameplay experience +MODULE_AOE_LOOT=0 +MODULE_AUTO_REVIVE=0 +MODULE_FIREWORKS=0 +MODULE_INSTANCE_RESET=0 +MODULE_LEARN_SPELLS=0 +MODULE_SOLO_LFG=0 + +# โš”๏ธ Gameplay Enhancement +# Core gameplay improvements and mechanics +MODULE_AUTOBALANCE=0 +MODULE_CHALLENGE_MODES=0 +MODULE_DUEL_RESET=0 +MODULE_DUNGEON_RESPAWN=0 +MODULE_HARDCORE_MODE=0 +MODULE_HORADRIC_CUBE=0 +MODULE_SOLOCRAFT=0 +MODULE_STATBOOSTER=0 +MODULE_TIME_IS_TIME=0 + +# ๐Ÿช NPC Services +# Service NPCs that provide player utilities +MODULE_ASSISTANT=0 +MODULE_MULTIVENDOR=0 +MODULE_NPC_BEASTMASTER=0 +MODULE_NPC_BUFFER=0 +MODULE_NPC_ENCHANTER=0 +MODULE_NPC_FREE_PROFESSIONS=0 +# mod-npc-talent-template: Admin commands: .templatenpc create [TemplateName] and .templatenpc reload +MODULE_NPC_TALENT_TEMPLATE=0 +MODULE_REAGENT_BANK=0 +MODULE_TRANSMOG=0 + +# โšก PvP +# Player vs Player focused modules +MODULE_1V1_ARENA=0 +# mod-arena-replay: NPC ID: 98500; known issue: players who were participants experience unusual behavior when watching their own replay +MODULE_ARENA_REPLAY=0 +MODULE_GAIN_HONOR_GUARD=0 +MODULE_PHASED_DUELS=0 +MODULE_PVP_TITLES=0 +MODULE_ULTIMATE_FULL_LOOT_PVP=0 + +# ๐Ÿ“ˆ Progression +# Character and server progression systems +MODULE_DYNAMIC_XP=0 +MODULE_INDIVIDUAL_PROGRESSION=0 +MODULE_ITEM_LEVEL_UP=0 +MODULE_LEVEL_GRANT=0 +# mod-progression-system: SQL files cannot be unloaded once executed; requires auto DB updater enabled in worldserver config +MODULE_PROGRESSION_SYSTEM=0 +MODULE_PROMOTION_AZEROTHCORE=0 +MODULE_WEEKEND_XP=0 +# mod-zone-difficulty: Mythicmode NPC 1128001 spawned in raids/heroic dungeons; NPC 1128002 for Mythicmode rewards +MODULE_ZONE_DIFFICULTY=0 + +# ๐Ÿ’ฐ Economy +# Auction house, trading, and economic systems +MODULE_AHBOT=0 +MODULE_BLACK_MARKET_AUCTION_HOUSE=0 +MODULE_DYNAMIC_TRADER=0 +MODULE_EXCHANGE_NPC=0 +MODULE_GLOBAL_MAIL_BANKING_AUCTIONS=0 +MODULE_LOTTERY_LUA=0 +MODULE_LUA_AH_BOT=0 +MODULE_RANDOM_ENCHANTS=0 + +# ๐Ÿ‘ฅ Social +# Social and community features +MODULE_ACTIVE_CHAT=0 +MODULE_BOSS_ANNOUNCER=0 +MODULE_BREAKING_NEWS=0 +MODULE_DISCORD_NOTIFIER=0 +MODULE_GLOBAL_CHAT=0 +MODULE_TEMP_ANNOUNCEMENTS=0 + +# ๐Ÿ‘ค Account-Wide +# Features that apply across all characters on an account +MODULE_ACCOUNTWIDE_SYSTEMS=0 +MODULE_ACCOUNT_ACHIEVEMENTS=0 +MODULE_ACCOUNT_MOUNTS=0 + +# ๐ŸŽจ Customization +# Character and appearance customization +MODULE_ARAC=0 +# mod-morphsummon: Allows customization of summoned creature appearances (Warlock demons, Death Knight ghouls, Mage water elementals); NPC ID: 601072 +MODULE_MORPHSUMMON=0 MODULE_TRANSMOG_AIO=0 +MODULE_WORGOBLIN=0 + +# ๐Ÿ“œ Scripting +# Lua/Eluna scripting frameworks and tools +# mod-aio: Azeroth Interface Override - enables client-server interface communication +MODULE_AIO=0 +MODULE_ELUNA=1 +MODULE_ELUNA_SCRIPTS=0 +MODULE_ELUNA_TS=0 +MODULE_EVENT_SCRIPTS=0 + +# ๐Ÿ”ง Admin Tools +# Server administration and management utilities +MODULE_ANTIFARMING=0 +MODULE_CARBON_COPY=0 +# mod-keep-out: Requires editing database table mod_mko_map_lock; use .gps command to obtain map and zone IDs +MODULE_KEEP_OUT=0 +MODULE_SEND_AND_BIND=0 +MODULE_SERVER_AUTO_SHUTDOWN=0 +# mod-spell-regulator: WARNING: Custom code changes mandatory before module functions; requires custom hooks from external gist +MODULE_SPELL_REGULATOR=0 +MODULE_WHO_LOGGED=0 +MODULE_ZONE_CHECK=0 + +# ๐Ÿ’Ž Premium/VIP +# Premium account and VIP systems +MODULE_ACORE_SUBSCRIPTIONS=0 +# mod-premium: Script must be assigned to an item (like hearthstone) using script name 'premium_account' +MODULE_PREMIUM=0 +MODULE_SYSTEM_VIP=0 + +# ๐ŸŽฎ Mini-Games +# Fun and entertainment features MODULE_AIO_BLACKJACK=0 +MODULE_POCKET_PORTAL=0 +# mod-tic-tac-toe: NPC ID: 100155 +MODULE_TIC_TAC_TOE=0 + +# ๐Ÿฐ Content +# Additional game content and features +MODULE_AZEROTHSHARD=0 +MODULE_BG_SLAVERYVALLEY=0 +MODULE_GUILDHOUSE=0 +MODULE_TREASURE_CHEST_SYSTEM=0 +MODULE_WAR_EFFORT=0 + +# ๐ŸŽ Rewards +# Player reward and incentive systems +MODULE_LEVEL_UP_REWARD=0 +MODULE_PRESTIGE_DRAFT_MODE=0 +MODULE_RECRUIT_A_FRIEND=0 +# mod-resurrection-scroll: Requires EnablePlayerSettings to be enabled in worldserver config file +MODULE_RESURRECTION_SCROLL=0 +MODULE_REWARD_PLAYED_TIME=0 + +# ๐Ÿ› ๏ธ Developer Tools +# Development and testing utilities +MODULE_SKELETON_MODULE=0 # ===================== # Rebuild automation diff --git a/README.md b/README.md index 31534a3..a97868c 100644 --- a/README.md +++ b/README.md @@ -41,78 +41,186 @@ See [Local Deployment](#-local-deployment) for detailed walkthrough. ### โœ… Available Enhanced Modules -All modules are automatically downloaded, configured, and SQL scripts executed when enabled. Browse the complete collection of **68 modules** below: +All modules are automatically downloaded, configured, and SQL scripts executed when enabled. Browse the complete collection of **93 modules** organized by category: + +#### ๐Ÿค– Automation | Module | Description | |--------|-------------| -| **[mod-playerbots](https://github.com/mod-playerbots/mod-playerbots.git)** | Adds scriptable playerbot characters that can form dungeon parties, raid, and PvP with humans | -| **[mod-aoe-loot](https://github.com/azerothcore/mod-aoe-loot.git)** | Lets characters loot multiple corpses with one click for faster farming | -| **[mod-learn-spells](https://github.com/azerothcore/mod-learn-spells.git)** | Teaches class spells automatically at the correct level to streamline leveling | -| **[mod-fireworks-on-level](https://github.com/azerothcore/mod-fireworks-on-level.git)** | Spawns celebratory fireworks whenever a player dings a new level | -| **[mod-individual-progression](https://github.com/ZhengPeiRu21/mod-individual-progression.git)** | Tracks each character through Vanilla โ†’ TBC โ†’ WotLK progression, unlocking content sequentially | -| **[mod-ahbot](https://github.com/azerothcore/mod-ahbot.git)** | Populates the auction house with configurable buying/selling behavior to keep markets active | -| **[mod-autobalance](https://github.com/azerothcore/mod-autobalance.git)** | Adjusts creature health and damage in real time to keep fights tuned for the current party size | -| **[mod-transmog](https://github.com/azerothcore/mod-transmog.git)** | Adds a transmogrification vendor so players can restyle gear without changing stats | -| **[mod-npc-buffer](https://github.com/azerothcore/mod-npc-buffer.git)** | Provides a ready-to-use buff NPC who hands out class buffs, food, and utility spells | -| **[mod-dynamic-xp](https://github.com/azerothcore/mod-dynamic-xp.git)** | Tweaks XP gain based on population or custom rules to keep leveling flexible | -| **[mod-solo-lfg](https://github.com/azerothcore/mod-solo-lfg.git)** | A solo-friendly queue that lets every player run dungeons without needing a premade group | -| **[mod-1v1-arena](https://github.com/azerothcore/mod-1v1-arena.git)** | Creates a structured 1v1 ranked arena ladder for duel enthusiasts | -| **[mod-phased-duels](https://github.com/azerothcore/mod-phased-duels.git)** | Moves duelers into their own phase to block interference and griefing | -| **[mod-breaking-news-override](https://github.com/azerothcore/mod-breaking-news-override.git)** | Replaces the client breaking-news panel with server-managed announcements | -| **[mod-boss-announcer](https://github.com/azerothcore/mod-boss-announcer.git)** | Broadcasts dramatic messages when raid bosses fall to your players | -| **[mod-account-achievements](https://github.com/azerothcore/mod-account-achievements.git)** | Shares achievements across characters on the same account for persistent milestones | -| **[mod-auto-revive](https://github.com/azerothcore/mod-auto-revive.git)** | Automatically resurrects characters on deathโ€”handy for casual PvE or testing realms | -| **[mod-gain-honor-guard](https://github.com/azerothcore/mod-gain-honor-guard.git)** | Awards honor when players kill city guards, spicing up world PvP raids | -| **[mod-ale](https://github.com/azerothcore/mod-ale.git)** | Adds Eluna Lua scripting engine for creating custom gameplay mechanics | -| **[mod-TimeIsTime](https://github.com/dunjeon/mod-TimeIsTime.git)** | Adds experimental time-twisting mechanics suited for custom events | -| **[mod-pocket-portal](https://github.com/azerothcore/mod-pocket-portal.git)** | Gives players a portal gadget for quick travel to configured destinations | -| **[mod-random-enchants](https://github.com/azerothcore/mod-random-enchants.git)** | Rolls randomized stat bonuses on loot to add Diablo-style gear chasing | -| **[mod-solocraft](https://github.com/azerothcore/mod-solocraft.git)** | Automatically scales dungeon and raid encounters for solo players or small teams | -| **[mod-pvp-titles](https://github.com/azerothcore/mod-pvp-titles.git)** | Restores classic honor titles with a configurable ranking ladder | -| **[mod-npc-beastmaster](https://github.com/azerothcore/mod-npc-beastmaster.git)** | Adds an NPC who can teach, reset, and manage hunter pets for convenience | -| **[mod-npc-enchanter](https://github.com/azerothcore/mod-npc-enchanter.git)** | Introduces an enchanting vendor who applies enchants directly for a fee | -| **[mod-instance-reset](https://github.com/azerothcore/mod-instance-reset.git)** | Adds commands to reset instances quicklyโ€”useful for testing or events | -| **[mod-quest-count-level](https://github.com/michaeldelago/mod-quest-count-level.git)** | Enables leveling exclusively through questing by awarding tokens after quest completion | -| **[mod-arac](https://github.com/heyitsbench/mod-arac.git)** | Unlocks every race/class pairing so players can roll any combination | -| **[mod-assistant](https://github.com/noisiver/mod-assistant.git)** | Spawns an all-purpose assistant NPC with heirlooms, professions, and convenience commands | -| **[mod-reagent-bank](https://github.com/ZhengPeiRu21/mod-reagent-bank.git)** | Lets players stash crafting reagents with a dedicated banker NPC | -| **[mod-black-market](https://github.com/Youpeoples/Black-Market-Auction-House.git)** | Backports the Mists-era Black Market Auction House via Eluna scripts | -| **[mod-challenge-modes](https://github.com/ZhengPeiRu21/mod-challenge-modes.git)** | Implements keystone-style timed runs with leaderboards and scaling modifiers | | **[mod-ollama-chat](https://github.com/DustinHendrickson/mod-ollama-chat.git)** | Connects playerbots to an Ollama LLM so they can chat with humans organically | | **[mod-player-bot-level-brackets](https://github.com/DustinHendrickson/mod-player-bot-level-brackets.git)** | Keeps bot levels spread evenly across configured brackets | -| **[StatBooster](https://github.com/AnchyDev/StatBooster.git)** | Lets players refine gear stats by rerolling random enchantments with special materials | -| **[DungeonRespawn](https://github.com/AnchyDev/DungeonRespawn.git)** | Teleports dead players back to the dungeon entrance instead of a distant graveyard | -| **[skeleton-module](https://github.com/azerothcore/skeleton-module.git)** | Provides a minimal AzerothCore module scaffold for building new features | -| **[mod-bg-slaveryvalley](https://github.com/Helias/mod-bg-slaveryvalley.git)** | Adds the Slavery Valley battleground complete with objectives and queue hooks | -| **[mod-azerothshard](https://github.com/azerothcore/mod-azerothshard.git)** | Bundles AzerothShard tweaks: utility NPCs, scripted events, and gameplay improvements | -| **[mod-worgoblin](https://github.com/heyitsbench/mod-worgoblin.git)** | Enables Worgen and Goblin characters with DB/DBC adjustments | -| **[eluna-ts](https://github.com/azerothcore/eluna-ts.git)** | Adds a TS-to-Lua workflow so Eluna scripts can be authored with modern tooling | -| **[mod-aio](https://github.com/Rochet2/AIO.git)** | Pure Lua server-client communication system for bidirectional data transmission | -| **[eluna-scripts](https://github.com/Isidorsson/Eluna-scripts.git)** | Collection of Lua scripts for creating custom gameplay mechanics and features | -| **[azerothcore-transmog-3.3.5a](https://github.com/DanieltheDeveloper/azerothcore-transmog-3.3.5a.git)** | Transmogrification system built with AIO and Eluna for changing equipment appearance | -| **[acore-eventscripts](https://github.com/55Honey/Acore_eventScripts.git)** | Lua scripts that spawn custom NPCs with scripted combat and community events | -| **[acore-levelupreward](https://github.com/55Honey/Acore_LevelUpReward.git)** | Rewards players with in-game mail when reaching certain levels | -| **[azerothcore-eluna-accountwide](https://github.com/Aldori15/azerothcore-eluna-accountwide.git)** | Shares achievements, currency, mounts, and reputation across account characters | -| **[acore-exchangenpc](https://github.com/55Honey/Acore_ExchangeNpc.git)** | Spawns a customizable NPC vendor that exchanges materials based on settings | -| **[acore-recruitafriend](https://github.com/55Honey/Acore_RecruitAFriend.git)** | Implements Recruit-a-Friend system with rewards for reaching level milestones | -| **[prestige-and-draft-mode](https://github.com/Youpeoples/Prestige-and-Draft-Mode.git)** | Enables characters to reset to level one for prestige rewards with optional spell selection | -| **[azerothcore-lua-ah-bot](https://github.com/mostlynick3/azerothcore-lua-ah-bot.git)** | Automated auction house bot for buying and selling items | -| **[lua-hardcoremode](https://github.com/HellionOP/Lua-HardcoreMode.git)** | Implements hardcore mode system allowing activation via NPC token | +| **[mod-playerbots](https://github.com/mod-playerbots/mod-playerbots.git)** | Adds scriptable playerbot characters that can form dungeon parties, raid, and PvP with humans | | **[npcbot-extended-commands](https://github.com/Day36512/Npcbot_Extended_Commands.git)** | Provides gear templates, transmog clearing, and chat features for NPC bots | -| **[azerothcore-lua-multivendor](https://github.com/Shadowveil-WotLK/AzerothCore-lua-MultiVendor.git)** | Enables multiple NPC merchants with database integration | -| **[treasure-chest-system](https://github.com/zyggy123/Treasure-Chest-System.git)** | Allows GMs to create and manage treasure chests with custom loot | -| **[activechat](https://github.com/Day36512/ActiveChat.git)** | Populates artificial world and guild chat to make servers feel more lively | -| **[ultimate-full-loot-pvp](https://github.com/Youpeoples/Ultimate-Full-Loot-Pvp.git)** | Spawns loot chests containing gear and gold when players die in PvP | + +#### โœจ Quality of Life + +| Module | Description | +|--------|-------------| +| **[mod-aoe-loot](https://github.com/azerothcore/mod-aoe-loot.git)** | Lets characters loot multiple corpses with one click for faster farming | +| **[mod-auto-revive](https://github.com/azerothcore/mod-auto-revive.git)** | Automatically resurrects characters on deathโ€”handy for casual PvE or testing realms | +| **[mod-fireworks-on-level](https://github.com/azerothcore/mod-fireworks-on-level.git)** | Spawns celebratory fireworks whenever a player dings a new level | +| **[mod-instance-reset](https://github.com/azerothcore/mod-instance-reset.git)** | Adds commands to reset instances quicklyโ€”useful for testing or events | +| **[mod-learn-spells](https://github.com/azerothcore/mod-learn-spells.git)** | Teaches class spells automatically at the correct level to streamline leveling | +| **[mod-solo-lfg](https://github.com/azerothcore/mod-solo-lfg.git)** | A solo-friendly queue that lets every player run dungeons without needing a premade group | + +#### โš”๏ธ Gameplay Enhancement + +| Module | Description | +|--------|-------------| +| **[DungeonRespawn](https://github.com/AnchyDev/DungeonRespawn.git)** | Teleports dead players back to the dungeon entrance instead of a distant graveyard | +| **[StatBooster](https://github.com/AnchyDev/StatBooster.git)** | Lets players refine gear stats by rerolling random enchantments with special materials | | **[horadric-cube-for-world-of-warcraft](https://github.com/TITIaio/Horadric-Cube-for-World-of-Warcraft.git)** | Diablo II-inspired crafting system with item synthesis and transmutation | -| **[acore-carboncopy](https://github.com/55Honey/Acore_CarbonCopy.git)** | Enables creating character copies at specific progression points for twinking | -| **[acore-tempannouncements](https://github.com/55Honey/Acore_TempAnnouncements.git)** | Allows GMs to create temporary server announcements that repeat at intervals | -| **[acore-zonecheck](https://github.com/55Honey/Acore_Zonecheck.git)** | Checks player zones and automatically removes players from restricted areas | -| **[aio-blackjack](https://github.com/Manmadedrummer/AIO-Blackjack.git)** | Implements a Blackjack game for players to gamble against an NPC dealer | -| **[acore-sendandbind](https://github.com/55Honey/Acore_SendAndBind.git)** | Allows admins to send soulbound items to players via command | +| **[lua-hardcoremode](https://github.com/HellionOP/Lua-HardcoreMode.git)** | Implements hardcore mode system allowing activation via NPC token | +| **[mod-TimeIsTime](https://github.com/dunjeon/mod-TimeIsTime.git)** | Adds experimental time-twisting mechanics suited for custom events | +| **[mod-autobalance](https://github.com/azerothcore/mod-autobalance.git)** | Adjusts creature health and damage in real time to keep fights tuned for the current party size | +| **[mod-challenge-modes](https://github.com/ZhengPeiRu21/mod-challenge-modes.git)** | Implements keystone-style timed runs with leaderboards and scaling modifiers | +| **[mod-duel-reset](https://github.com/azerothcore/mod-duel-reset.git)** | Adds some duel reset features | +| **[mod-solocraft](https://github.com/azerothcore/mod-solocraft.git)** | Automatically scales dungeon and raid encounters for solo players or small teams | + +#### ๐Ÿช NPC Services + +| Module | Description | +|--------|-------------| +| **[azerothcore-lua-multivendor](https://github.com/Shadowveil-WotLK/AzerothCore-lua-MultiVendor.git)** | Enables multiple NPC merchants with database integration | +| **[mod-assistant](https://github.com/noisiver/mod-assistant.git)** | Spawns an all-purpose assistant NPC with heirlooms, professions, and convenience commands | +| **[mod-npc-beastmaster](https://github.com/azerothcore/mod-npc-beastmaster.git)** | Adds an NPC who can teach, reset, and manage hunter pets for convenience | +| **[mod-npc-buffer](https://github.com/azerothcore/mod-npc-buffer.git)** | Provides a ready-to-use buff NPC who hands out class buffs, food, and utility spells | +| **[mod-npc-enchanter](https://github.com/azerothcore/mod-npc-enchanter.git)** | Introduces an enchanting vendor who applies enchants directly for a fee | +| **[mod-npc-free-professions](https://github.com/azerothcore/mod-npc-free-professions.git)** | Makes a ProfessionsNPC who gives 2 free professions (full with recipes) to player | +| **[mod-npc-talent-template](https://github.com/azerothcore/mod-npc-talent-template.git)** | An NPC that allows players to instantly apply pre-configured character templates that gear up, gem, set talents, and apply glyphs for any class | +| **[mod-reagent-bank](https://github.com/ZhengPeiRu21/mod-reagent-bank.git)** | Lets players stash crafting reagents with a dedicated banker NPC | +| **[mod-transmog](https://github.com/azerothcore/mod-transmog.git)** | Adds a transmogrification vendor so players can restyle gear without changing stats | + +#### โšก PvP + +| Module | Description | +|--------|-------------| +| **[mod-1v1-arena](https://github.com/azerothcore/mod-1v1-arena.git)** | Creates a structured 1v1 ranked arena ladder for duel enthusiasts | +| **[mod-arena-replay](https://github.com/azerothcore/mod-arena-replay.git)** | Allows you to watch a replay of rated arena games | +| **[mod-gain-honor-guard](https://github.com/azerothcore/mod-gain-honor-guard.git)** | Awards honor when players kill city guards, spicing up world PvP raids | +| **[mod-phased-duels](https://github.com/azerothcore/mod-phased-duels.git)** | Moves duelers into their own phase to block interference and griefing | +| **[mod-pvp-titles](https://github.com/azerothcore/mod-pvp-titles.git)** | Restores classic honor titles with a configurable ranking ladder | +| **[ultimate-full-loot-pvp](https://github.com/Youpeoples/Ultimate-Full-Loot-Pvp.git)** | Spawns loot chests containing gear and gold when players die in PvP | + +#### ๐Ÿ“ˆ Progression + +| Module | Description | +|--------|-------------| +| **[mod-dynamic-xp](https://github.com/azerothcore/mod-dynamic-xp.git)** | Tweaks XP gain based on population or custom rules to keep leveling flexible | +| **[mod-individual-progression](https://github.com/ZhengPeiRu21/mod-individual-progression.git)** | Tracks each character through Vanilla โ†’ TBC โ†’ WotLK progression, unlocking content sequentially | +| **[mod-item-level-up](https://github.com/azerothcore/mod-item-level-up.git)** | Creates an item that allows you to level up (id = 701001) | +| **[mod-progression-system](https://github.com/azerothcore/mod-progression-system.git)** | Allows for the automatic loading of scripts and SQL files based on level brackets | +| **[mod-promotion-azerothcore](https://github.com/azerothcore/mod-promotion-azerothcore.git)** | Allows player to receive a promotion consisting of a level 90 character, backpacks, gold, armor, and a mount | +| **[mod-quest-count-level](https://github.com/michaeldelago/mod-quest-count-level.git)** | Enables leveling exclusively through questing by awarding tokens after quest completion | +| **[mod-weekend-xp](https://github.com/azerothcore/mod-weekend-xp.git)** | XP module that allows server owner to select how much XP players can receive on the weekend via config file | +| **[mod-zone-difficulty](https://github.com/azerothcore/mod-zone-difficulty.git)** | Support module for mod-progression-system, handles nerfs and debuffs per zone | + +#### ๐Ÿ’ฐ Economy + +| Module | Description | +|--------|-------------| +| **[acore-exchangenpc](https://github.com/55Honey/Acore_ExchangeNpc.git)** | Spawns a customizable NPC vendor that exchanges materials based on settings | +| **[azerothcore-global-mail-banking-auctions](https://github.com/Aldori15/azerothcore-global-mail_banking_auctions.git)** | Allows access to bank, mailbox, and auction house from anywhere via chat commands | +| **[azerothcore-lua-ah-bot](https://github.com/mostlynick3/azerothcore-lua-ah-bot.git)** | Automated auction house bot for buying and selling items | | **[dynamic-trader](https://github.com/Day36512/Dynamic-Trader.git)** | Provides auction house alternative with dynamic pricing | | **[lottery-lua](https://github.com/zyggy123/lottery-lua.git)** | Implements customizable lottery system where players can win prizes | +| **[mod-ahbot](https://github.com/azerothcore/mod-ahbot.git)** | Populates the auction house with configurable buying/selling behavior to keep markets active | +| **[mod-black-market](https://github.com/Youpeoples/Black-Market-Auction-House.git)** | Backports the Mists-era Black Market Auction House via Eluna scripts | +| **[mod-random-enchants](https://github.com/azerothcore/mod-random-enchants.git)** | Rolls randomized stat bonuses on loot to add Diablo-style gear chasing | + +#### ๐Ÿ‘ฅ Social + +| Module | Description | +|--------|-------------| | **[acore-discordnotifier](https://github.com/0xCiBeR/Acore_DiscordNotifier.git)** | Relays in-game chat events to Discord channels | -| **[azerothcore-global-mail-banking-auctions](https://github.com/Aldori15/azerothcore-global-mail_banking_auctions.git)** | Allows access to bank, mailbox, and auction house from anywhere via chat commands | +| **[acore-tempannouncements](https://github.com/55Honey/Acore_TempAnnouncements.git)** | Allows GMs to create temporary server announcements that repeat at intervals | +| **[activechat](https://github.com/Day36512/ActiveChat.git)** | Populates artificial world and guild chat to make servers feel more lively | +| **[mod-boss-announcer](https://github.com/azerothcore/mod-boss-announcer.git)** | Broadcasts dramatic messages when raid bosses fall to your players | +| **[mod-breaking-news-override](https://github.com/azerothcore/mod-breaking-news-override.git)** | Replaces the client breaking-news panel with server-managed announcements | +| **[mod-global-chat](https://github.com/azerothcore/mod-global-chat.git)** | Simple global chat for AzerothCore enabling worldserver-wide messaging functionality | + +#### ๐Ÿ‘ค Account-Wide + +| Module | Description | +|--------|-------------| +| **[azerothcore-eluna-accountwide](https://github.com/Aldori15/azerothcore-eluna-accountwide.git)** | Shares achievements, currency, mounts, and reputation across account characters | +| **[mod-account-achievements](https://github.com/azerothcore/mod-account-achievements.git)** | Shares achievements across characters on the same account for persistent milestones | +| **[mod-account-mounts](https://github.com/azerothcore/mod-account-mounts.git)** | Goes through the list of characters on an account to obtain playerGuids and store mount spells that all characters know | + +#### ๐ŸŽจ Customization + +| Module | Description | +|--------|-------------| +| **[azerothcore-transmog-3.3.5a](https://github.com/DanieltheDeveloper/azerothcore-transmog-3.3.5a.git)** | Transmogrification system built with AIO and Eluna for changing equipment appearance | +| **[mod-arac](https://github.com/heyitsbench/mod-arac.git)** | Unlocks every race/class pairing so players can roll any combination | +| **[mod-morphsummon](https://github.com/azerothcore/mod-morphsummon.git)** | Change appearance of summoned permanent creatures | +| **[mod-worgoblin](https://github.com/heyitsbench/mod-worgoblin.git)** | Enables Worgen and Goblin characters with DB/DBC adjustments | + +#### ๐Ÿ“œ Scripting + +| Module | Description | +|--------|-------------| +| **[acore-eventscripts](https://github.com/55Honey/Acore_eventScripts.git)** | Lua scripts that spawn custom NPCs with scripted combat and community events | +| **[eluna-scripts](https://github.com/Isidorsson/Eluna-scripts.git)** | Collection of Lua scripts for creating custom gameplay mechanics and features | +| **[eluna-ts](https://github.com/azerothcore/eluna-ts.git)** | Adds a TS-to-Lua workflow so Eluna scripts can be authored with modern tooling | +| **[mod-aio](https://github.com/Rochet2/AIO.git)** | Pure Lua server-client communication system for bidirectional data transmission | +| **[mod-ale](https://github.com/azerothcore/mod-ale.git)** | Adds Eluna Lua scripting engine for creating custom gameplay mechanics | + +#### ๐Ÿ”ง Admin Tools + +| Module | Description | +|--------|-------------| +| **[acore-carboncopy](https://github.com/55Honey/Acore_CarbonCopy.git)** | Enables creating character copies at specific progression points for twinking | +| **[acore-sendandbind](https://github.com/55Honey/Acore_SendAndBind.git)** | Allows admins to send soulbound items to players via command | +| **[acore-zonecheck](https://github.com/55Honey/Acore_Zonecheck.git)** | Checks player zones and automatically removes players from restricted areas | +| **[mod-antifarming](https://github.com/azerothcore/mod-antifarming.git)** | Port of the AntiFarming Script from SymbolixDEV's repo to AzerothCore | +| **[mod-keep-out](https://github.com/azerothcore/mod-keep-out.git)** | Keeps players who are non-GM from entering a zone/map | +| **[mod-server-auto-shutdown](https://github.com/azerothcore/mod-server-auto-shutdown.git)** | Establishes a daily restart with configurable time, notification period, and custom messages | +| **[mod-spell-regulator](https://github.com/azerothcore/mod-spell-regulator.git)** | Modify the percentage of the spells by regulating in the best way | +| **[mod-who-logged](https://github.com/azerothcore/mod-who-logged.git)** | Outputs to the console when a player logs into the world | + +#### ๐Ÿ’Ž Premium/VIP + +| Module | Description | +|--------|-------------| +| **[mod-acore-subscriptions](https://github.com/azerothcore/mod-acore-subscriptions.git)** | Handles the subscription logic, no longer requires modules or services to have subscription logic in their code | +| **[mod-premium](https://github.com/azerothcore/mod-premium.git)** | Adds Premium account features to players | +| **[mod-system-vip](https://github.com/azerothcore/mod-system-vip.git)** | System offering VIP features and benefits to players | + +#### ๐ŸŽฎ Mini-Games + +| Module | Description | +|--------|-------------| +| **[aio-blackjack](https://github.com/Manmadedrummer/AIO-Blackjack.git)** | Implements a Blackjack game for players to gamble against an NPC dealer | +| **[mod-pocket-portal](https://github.com/azerothcore/mod-pocket-portal.git)** | Gives players a portal gadget for quick travel to configured destinations | +| **[mod-tic-tac-toe](https://github.com/azerothcore/mod-tic-tac-toe.git)** | Allows players to play Tic Tac Toe between players and against different AI | + +#### ๐Ÿฐ Content + +| Module | Description | +|--------|-------------| +| **[mod-azerothshard](https://github.com/azerothcore/mod-azerothshard.git)** | Bundles AzerothShard tweaks: utility NPCs, scripted events, and gameplay improvements | +| **[mod-bg-slaveryvalley](https://github.com/Helias/mod-bg-slaveryvalley.git)** | Adds the Slavery Valley battleground complete with objectives and queue hooks | +| **[mod-guildhouse](https://github.com/azerothcore/mod-guildhouse.git)** | Phased guild house system allowing guild members to visit their private guild house | +| **[mod-war-effort](https://github.com/azerothcore/mod-war-effort.git)** | Brings back the war effort of the two factions for the opening of the gates of Ahn'Qiraj | +| **[treasure-chest-system](https://github.com/zyggy123/Treasure-Chest-System.git)** | Allows GMs to create and manage treasure chests with custom loot | + +#### ๐ŸŽ Rewards + +| Module | Description | +|--------|-------------| +| **[acore-levelupreward](https://github.com/55Honey/Acore_LevelUpReward.git)** | Rewards players with in-game mail when reaching certain levels | +| **[acore-recruitafriend](https://github.com/55Honey/Acore_RecruitAFriend.git)** | Implements Recruit-a-Friend system with rewards for reaching level milestones | +| **[mod-resurrection-scroll](https://github.com/azerothcore/mod-resurrection-scroll.git)** | Allows users to grant rested XP bonuses to players who have not logged in X days | +| **[mod-reward-played-time](https://github.com/azerothcore/mod-reward-played-time.git)** | Adds items for players that have stayed logged in for x amount of time | +| **[prestige-and-draft-mode](https://github.com/Youpeoples/Prestige-and-Draft-Mode.git)** | Enables characters to reset to level one for prestige rewards with optional spell selection | + +#### ๐Ÿ› ๏ธ Developer Tools + +| Module | Description | +|--------|-------------| +| **[skeleton-module](https://github.com/azerothcore/skeleton-module.git)** | Provides a minimal AzerothCore module scaffold for building new features | + ### โœ… Automated Configuration - **Intelligent Database Setup** - Smart backup detection, restoration, and conditional schema import @@ -901,9 +1009,17 @@ Some modules require additional manual configuration after deployment: - **NPC spawning required**: Use GM commands to spawn service NPCs - Examples: ```bash - .npc add 190010 # Transmog NPC - .npc add 290011 # Reagent Bank NPC - # Check module docs for enchanter/beastmaster NPC IDs + .npc add 190010 # Transmog NPC (mod-transmog) + .npc add 601016 # Buff NPC (mod-npc-buffer) + .npc add 601026 # Beastmaster NPC "White Fang" (mod-npc-beastmaster) + .npc add 601015 # Enchanter NPC (mod-npc-enchanter) + .npc add 290011 # Reagent Bank NPC (mod-reagent-bank) + .npc add 500030 # Guild House vendor (mod-guildhouse) + .npc add 601072 # Morph Summon NPC (mod-morphsummon) + .npc add 98500 # Arena Replay NPC (mod-arena-replay) + .npc add 100155 # Tic-Tac-Toe game NPC (mod-tic-tac-toe) + .npc add 1128001 # Mythic Mode NPC (mod-zone-difficulty, spawns in raids/heroic dungeons) + .npc add 1128002 # Mythic Rewards NPC (mod-zone-difficulty) ``` #### mod-arac (All Races All Classes) @@ -1129,6 +1245,7 @@ rm -rf local-storage/source local-storage/images - Solo LFG: Queue for a dungeon solo - Transmog: Use `.npc add 190010` to spawn transmog NPC - Playerbots: Use `.bot add` command (if enabled) + - See "Module-Specific Requirements" section for complete list of NPC spawn commands 3. **Configure Realmlist** - Update server address in database: ```sql diff --git a/config/modules.json b/config/modules.json index c0850fe..122b229 100644 --- a/config/modules.json +++ b/config/modules.json @@ -11,7 +11,8 @@ "post_install_hooks": [], "config_cleanup": [ "playerbots.conf*" - ] + ], + "category": "automation" }, { "key": "MODULE_AOE_LOOT", @@ -23,7 +24,8 @@ "post_install_hooks": [], "config_cleanup": [ "mod_aoe_loot.conf*" - ] + ], + "category": "quality-of-life" }, { "key": "MODULE_LEARN_SPELLS", @@ -35,7 +37,8 @@ "post_install_hooks": [], "config_cleanup": [ "mod_learnspells.conf*" - ] + ], + "category": "quality-of-life" }, { "key": "MODULE_FIREWORKS", @@ -47,7 +50,8 @@ "post_install_hooks": [], "config_cleanup": [ "mod_fireworks.conf*" - ] + ], + "category": "quality-of-life" }, { "key": "MODULE_INDIVIDUAL_PROGRESSION", @@ -59,7 +63,8 @@ "post_install_hooks": [], "config_cleanup": [ "individual_progression.conf*" - ] + ], + "category": "progression" }, { "key": "MODULE_AHBOT", @@ -71,7 +76,8 @@ "post_install_hooks": [], "config_cleanup": [ "mod_ahbot.conf*" - ] + ], + "category": "economy" }, { "key": "MODULE_AUTOBALANCE", @@ -83,7 +89,8 @@ "config_cleanup": [ "AutoBalance.conf*" ], - "description": "Adjusts creature health and damage in real time to keep fights tuned for the current party size" + "description": "Adjusts creature health and damage in real time to keep fights tuned for the current party size", + "category": "gameplay-enhancement" }, { "key": "MODULE_TRANSMOG", @@ -95,7 +102,8 @@ "config_cleanup": [ "transmog.conf*" ], - "description": "Adds a transmogrification vendor so players can restyle gear without changing stats" + "description": "Adds a transmogrification vendor so players can restyle gear without changing stats", + "category": "npc-service" }, { "key": "MODULE_NPC_BUFFER", @@ -107,7 +115,8 @@ "config_cleanup": [ "npc_buffer.conf*" ], - "description": "Provides a ready-to-use buff NPC who hands out class buffs, food, and utility spells" + "description": "Provides a ready-to-use buff NPC who hands out class buffs, food, and utility spells", + "category": "npc-service" }, { "key": "MODULE_DYNAMIC_XP", @@ -119,7 +128,8 @@ "config_cleanup": [ "Individual-XP.conf*" ], - "description": "Tweaks XP gain based on population or custom rules to keep leveling flexible" + "description": "Tweaks XP gain based on population or custom rules to keep leveling flexible", + "category": "progression" }, { "key": "MODULE_SOLO_LFG", @@ -131,7 +141,8 @@ "config_cleanup": [ "SoloLfg.conf*" ], - "description": "A solo-friendly queue that lets every player run dungeons without needing a premade group" + "description": "A solo-friendly queue that lets every player run dungeons without needing a premade group", + "category": "quality-of-life" }, { "key": "MODULE_1V1_ARENA", @@ -143,7 +154,8 @@ "config_cleanup": [ "1v1arena.conf*" ], - "description": "Creates a structured 1v1 ranked arena ladder for duel enthusiasts" + "description": "Creates a structured 1v1 ranked arena ladder for duel enthusiasts", + "category": "pvp" }, { "key": "MODULE_PHASED_DUELS", @@ -155,7 +167,8 @@ "config_cleanup": [ "phasedduels.conf*" ], - "description": "Moves duelers into their own phase to block interference and griefing" + "description": "Moves duelers into their own phase to block interference and griefing", + "category": "pvp" }, { "key": "MODULE_BREAKING_NEWS", @@ -167,7 +180,8 @@ "config_cleanup": [ "breaking_news.conf*" ], - "description": "Replaces the client breaking-news panel with server-managed announcements" + "description": "Replaces the client breaking-news panel with server-managed announcements", + "category": "social" }, { "key": "MODULE_BOSS_ANNOUNCER", @@ -179,7 +193,8 @@ "config_cleanup": [ "boss_announcer.conf*" ], - "description": "Broadcasts dramatic messages when raid bosses fall to your players" + "description": "Broadcasts dramatic messages when raid bosses fall to your players", + "category": "social" }, { "key": "MODULE_ACCOUNT_ACHIEVEMENTS", @@ -191,7 +206,8 @@ "config_cleanup": [ "account_achievements.conf*" ], - "description": "Shares achievements across characters on the same account for persistent milestones" + "description": "Shares achievements across characters on the same account for persistent milestones", + "category": "account-wide" }, { "key": "MODULE_AUTO_REVIVE", @@ -203,7 +219,8 @@ "config_cleanup": [ "AutoRevive.conf*" ], - "description": "Automatically resurrects characters on death\u2014handy for casual PvE or testing realms" + "description": "Automatically resurrects characters on death\u2014handy for casual PvE or testing realms", + "category": "quality-of-life" }, { "key": "MODULE_GAIN_HONOR_GUARD", @@ -215,7 +232,8 @@ "config_cleanup": [ "GainHonorGuard.conf*" ], - "description": "Awards honor when players kill city guards, spicing up world PvP raids" + "description": "Awards honor when players kill city guards, spicing up world PvP raids", + "category": "pvp" }, { "key": "MODULE_ELUNA", @@ -229,7 +247,8 @@ "config_cleanup": [ "mod_eluna.conf*" ], - "description": "Adds Eluna Lua scripting engine for creating custom gameplay mechanics" + "description": "Adds Eluna Lua scripting engine for creating custom gameplay mechanics", + "category": "scripting" }, { "key": "MODULE_TIME_IS_TIME", @@ -241,7 +260,8 @@ "config_cleanup": [ "mod-time_is_time.conf*" ], - "description": "Adds experimental time-twisting mechanics suited for custom events" + "description": "Adds experimental time-twisting mechanics suited for custom events", + "category": "gameplay-enhancement" }, { "key": "MODULE_POCKET_PORTAL", @@ -255,7 +275,8 @@ "config_cleanup": [ "pocketportal.conf*" ], - "description": "Gives players a portal gadget for quick travel to configured destinations" + "description": "Gives players a portal gadget for quick travel to configured destinations", + "category": "minigame" }, { "key": "MODULE_RANDOM_ENCHANTS", @@ -267,7 +288,8 @@ "config_cleanup": [ "RandomEnchants.conf*" ], - "description": "Rolls randomized stat bonuses on loot to add Diablo-style gear chasing" + "description": "Rolls randomized stat bonuses on loot to add Diablo-style gear chasing", + "category": "economy" }, { "key": "MODULE_SOLOCRAFT", @@ -279,7 +301,8 @@ "config_cleanup": [ "Solocraft.conf*" ], - "description": "Automatically scales dungeon and raid encounters for solo players or small teams" + "description": "Automatically scales dungeon and raid encounters for solo players or small teams", + "category": "gameplay-enhancement" }, { "key": "MODULE_PVP_TITLES", @@ -294,7 +317,8 @@ "description": "Restores classic honor titles with a configurable ranking ladder", "requires": [ "MODULE_ELUNA" - ] + ], + "category": "pvp" }, { "key": "MODULE_NPC_BEASTMASTER", @@ -308,7 +332,8 @@ "config_cleanup": [ "npc_beastmaster.conf*" ], - "description": "Adds an NPC who can teach, reset, and manage hunter pets for convenience" + "description": "Adds an NPC who can teach, reset, and manage hunter pets for convenience", + "category": "npc-service" }, { "key": "MODULE_NPC_ENCHANTER", @@ -320,7 +345,8 @@ "config_cleanup": [ "npc_enchanter.conf*" ], - "description": "Introduces an enchanting vendor who applies enchants directly for a fee" + "description": "Introduces an enchanting vendor who applies enchants directly for a fee", + "category": "npc-service" }, { "key": "MODULE_INSTANCE_RESET", @@ -332,7 +358,8 @@ "config_cleanup": [ "instance-reset.conf*" ], - "description": "Adds commands to reset instances quickly\u2014useful for testing or events" + "description": "Adds commands to reset instances quickly\u2014useful for testing or events", + "category": "quality-of-life" }, { "key": "MODULE_LEVEL_GRANT", @@ -344,7 +371,8 @@ "config_cleanup": [ "levelGrant.conf*" ], - "description": "Enables leveling exclusively through questing by awarding tokens after quest completion" + "description": "Enables leveling exclusively through questing by awarding tokens after quest completion", + "category": "progression" }, { "key": "MODULE_ARAC", @@ -356,7 +384,8 @@ "config_cleanup": [ "arac.conf*" ], - "description": "Unlocks every race/class pairing so players can roll any combination" + "description": "Unlocks every race/class pairing so players can roll any combination", + "category": "customization" }, { "key": "MODULE_ASSISTANT", @@ -365,7 +394,8 @@ "needs_build": true, "type": "cpp", "post_install_hooks": [], - "description": "Spawns an all-purpose assistant NPC with heirlooms, professions, and convenience commands" + "description": "Spawns an all-purpose assistant NPC with heirlooms, professions, and convenience commands", + "category": "npc-service" }, { "key": "MODULE_REAGENT_BANK", @@ -374,7 +404,8 @@ "needs_build": true, "type": "cpp", "post_install_hooks": [], - "description": "Lets players stash crafting reagents with a dedicated banker NPC" + "description": "Lets players stash crafting reagents with a dedicated banker NPC", + "category": "npc-service" }, { "key": "MODULE_BLACK_MARKET_AUCTION_HOUSE", @@ -388,7 +419,8 @@ "post_install_hooks": [ "black-market-setup" ], - "description": "Backports the Mists-era Black Market Auction House via Eluna scripts" + "description": "Backports the Mists-era Black Market Auction House via Eluna scripts", + "category": "economy" }, { "key": "MODULE_CHALLENGE_MODES", @@ -397,7 +429,8 @@ "needs_build": true, "type": "cpp", "post_install_hooks": [], - "description": "Implements keystone-style timed runs with leaderboards and scaling modifiers" + "description": "Implements keystone-style timed runs with leaderboards and scaling modifiers", + "category": "gameplay-enhancement" }, { "key": "MODULE_OLLAMA_CHAT", @@ -406,7 +439,8 @@ "needs_build": true, "type": "cpp", "post_install_hooks": [], - "description": "Connects playerbots to an Ollama LLM so they can chat with humans organically" + "description": "Connects playerbots to an Ollama LLM so they can chat with humans organically", + "category": "automation" }, { "key": "MODULE_PLAYER_BOT_LEVEL_BRACKETS", @@ -418,7 +452,8 @@ "MODULE_PLAYERBOTS" ], "post_install_hooks": [], - "description": "Keeps bot levels spread evenly across configured brackets" + "description": "Keeps bot levels spread evenly across configured brackets", + "category": "automation" }, { "key": "MODULE_STATBOOSTER", @@ -429,7 +464,8 @@ "post_install_hooks": [ "fix-statbooster-api" ], - "description": "Lets players refine gear stats by rerolling random enchantments with special materials" + "description": "Lets players refine gear stats by rerolling random enchantments with special materials", + "category": "gameplay-enhancement" }, { "key": "MODULE_DUNGEON_RESPAWN", @@ -440,7 +476,8 @@ "status": "blocked", "block_reason": "Upstream override signature mismatch (OnBeforeTeleport); awaiting fix", "post_install_hooks": [], - "description": "Teleports dead players back to the dungeon entrance instead of a distant graveyard" + "description": "Teleports dead players back to the dungeon entrance instead of a distant graveyard", + "category": "gameplay-enhancement" }, { "key": "MODULE_SKELETON_MODULE", @@ -449,7 +486,8 @@ "needs_build": true, "type": "cpp", "post_install_hooks": [], - "description": "Provides a minimal AzerothCore module scaffold for building new features" + "description": "Provides a minimal AzerothCore module scaffold for building new features", + "category": "developer" }, { "key": "MODULE_BG_SLAVERYVALLEY", @@ -461,7 +499,8 @@ "description": "Adds the Slavery Valley battleground complete with objectives and queue hooks", "requires": [ "MODULE_ELUNA" - ] + ], + "category": "content" }, { "key": "MODULE_AZEROTHSHARD", @@ -470,7 +509,8 @@ "needs_build": true, "type": "cpp", "post_install_hooks": [], - "description": "Bundles AzerothShard tweaks: utility NPCs, scripted events, and gameplay improvements" + "description": "Bundles AzerothShard tweaks: utility NPCs, scripted events, and gameplay improvements", + "category": "content" }, { "key": "MODULE_WORGOBLIN", @@ -482,7 +522,8 @@ "description": "Enables Worgen and Goblin characters with DB/DBC adjustments", "requires": [ "MODULE_ELUNA" - ] + ], + "category": "customization" }, { "key": "MODULE_ELUNA_TS", @@ -494,7 +535,8 @@ "MODULE_ELUNA" ], "post_install_hooks": [], - "description": "Adds a TS-to-Lua workflow so Eluna scripts can be authored with modern tooling" + "description": "Adds a TS-to-Lua workflow so Eluna scripts can be authored with modern tooling", + "category": "scripting" }, { "key": "MODULE_AIO", @@ -504,7 +546,8 @@ "type": "cpp", "notes": "Azeroth Interface Override - enables client-server interface communication", "post_install_hooks": [], - "description": "Pure Lua server-client communication system for bidirectional data transmission" + "description": "Pure Lua server-client communication system for bidirectional data transmission", + "category": "scripting" }, { "key": "MODULE_ELUNA_SCRIPTS", @@ -518,7 +561,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Collection of Lua scripts for creating custom gameplay mechanics and features" + "description": "Collection of Lua scripts for creating custom gameplay mechanics and features", + "category": "scripting" }, { "key": "MODULE_TRANSMOG_AIO", @@ -532,7 +576,8 @@ "post_install_hooks": [ "copy-aio-lua" ], - "description": "Transmogrification system built with AIO and Eluna for changing equipment appearance" + "description": "Transmogrification system built with AIO and Eluna for changing equipment appearance", + "category": "customization" }, { "key": "MODULE_EVENT_SCRIPTS", @@ -546,7 +591,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Lua scripts that spawn custom NPCs with scripted combat and community events" + "description": "Lua scripts that spawn custom NPCs with scripted combat and community events", + "category": "scripting" }, { "key": "MODULE_LEVEL_UP_REWARD", @@ -560,7 +606,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Rewards players with in-game mail when reaching certain levels" + "description": "Rewards players with in-game mail when reaching certain levels", + "category": "rewards" }, { "key": "MODULE_ACCOUNTWIDE_SYSTEMS", @@ -574,7 +621,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Shares achievements, currency, mounts, and reputation across account characters" + "description": "Shares achievements, currency, mounts, and reputation across account characters", + "category": "account-wide" }, { "key": "MODULE_EXCHANGE_NPC", @@ -588,7 +636,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Spawns a customizable NPC vendor that exchanges materials based on settings" + "description": "Spawns a customizable NPC vendor that exchanges materials based on settings", + "category": "economy" }, { "key": "MODULE_RECRUIT_A_FRIEND", @@ -602,7 +651,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Implements Recruit-a-Friend system with rewards for reaching level milestones" + "description": "Implements Recruit-a-Friend system with rewards for reaching level milestones", + "category": "rewards" }, { "key": "MODULE_PRESTIGE_DRAFT_MODE", @@ -616,7 +666,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Enables characters to reset to level one for prestige rewards with optional spell selection" + "description": "Enables characters to reset to level one for prestige rewards with optional spell selection", + "category": "rewards" }, { "key": "MODULE_LUA_AH_BOT", @@ -630,7 +681,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Automated auction house bot for buying and selling items" + "description": "Automated auction house bot for buying and selling items", + "category": "economy" }, { "key": "MODULE_HARDCORE_MODE", @@ -644,7 +696,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Implements hardcore mode system allowing activation via NPC token" + "description": "Implements hardcore mode system allowing activation via NPC token", + "category": "gameplay-enhancement" }, { "key": "MODULE_NPCBOT_EXTENDED_COMMANDS", @@ -658,7 +711,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Provides gear templates, transmog clearing, and chat features for NPC bots" + "description": "Provides gear templates, transmog clearing, and chat features for NPC bots", + "category": "automation" }, { "key": "MODULE_MULTIVENDOR", @@ -672,7 +726,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Enables multiple NPC merchants with database integration" + "description": "Enables multiple NPC merchants with database integration", + "category": "npc-service" }, { "key": "MODULE_TREASURE_CHEST_SYSTEM", @@ -686,7 +741,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Allows GMs to create and manage treasure chests with custom loot" + "description": "Allows GMs to create and manage treasure chests with custom loot", + "category": "content" }, { "key": "MODULE_ACTIVE_CHAT", @@ -700,7 +756,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Populates artificial world and guild chat to make servers feel more lively" + "description": "Populates artificial world and guild chat to make servers feel more lively", + "category": "social" }, { "key": "MODULE_ULTIMATE_FULL_LOOT_PVP", @@ -714,7 +771,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Spawns loot chests containing gear and gold when players die in PvP" + "description": "Spawns loot chests containing gear and gold when players die in PvP", + "category": "pvp" }, { "key": "MODULE_HORADRIC_CUBE", @@ -728,7 +786,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Diablo II-inspired crafting system with item synthesis and transmutation" + "description": "Diablo II-inspired crafting system with item synthesis and transmutation", + "category": "gameplay-enhancement" }, { "key": "MODULE_CARBON_COPY", @@ -742,7 +801,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Enables creating character copies at specific progression points for twinking" + "description": "Enables creating character copies at specific progression points for twinking", + "category": "admin" }, { "key": "MODULE_TEMP_ANNOUNCEMENTS", @@ -756,7 +816,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Allows GMs to create temporary server announcements that repeat at intervals" + "description": "Allows GMs to create temporary server announcements that repeat at intervals", + "category": "social" }, { "key": "MODULE_ZONE_CHECK", @@ -770,7 +831,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Checks player zones and automatically removes players from restricted areas" + "description": "Checks player zones and automatically removes players from restricted areas", + "category": "admin" }, { "key": "MODULE_AIO_BLACKJACK", @@ -784,7 +846,8 @@ "post_install_hooks": [ "copy-aio-lua" ], - "description": "Implements a Blackjack game for players to gamble against an NPC dealer" + "description": "Implements a Blackjack game for players to gamble against an NPC dealer", + "category": "minigame" }, { "key": "MODULE_SEND_AND_BIND", @@ -798,7 +861,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Allows admins to send soulbound items to players via command" + "description": "Allows admins to send soulbound items to players via command", + "category": "admin" }, { "key": "MODULE_DYNAMIC_TRADER", @@ -812,7 +876,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Provides auction house alternative with dynamic pricing" + "description": "Provides auction house alternative with dynamic pricing", + "category": "economy" }, { "key": "MODULE_LOTTERY_LUA", @@ -826,7 +891,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Implements customizable lottery system where players can win prizes" + "description": "Implements customizable lottery system where players can win prizes", + "category": "economy" }, { "key": "MODULE_DISCORD_NOTIFIER", @@ -840,7 +906,8 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Relays in-game chat events to Discord channels" + "description": "Relays in-game chat events to Discord channels", + "category": "social" }, { "key": "MODULE_GLOBAL_MAIL_BANKING_AUCTIONS", @@ -854,7 +921,319 @@ "post_install_hooks": [ "copy-standard-lua" ], - "description": "Allows access to bank, mailbox, and auction house from anywhere via chat commands" + "description": "Allows access to bank, mailbox, and auction house from anywhere via chat commands", + "category": "economy" + }, + { + "key": "MODULE_GUILDHOUSE", + "name": "mod-guildhouse", + "repo": "https://github.com/azerothcore/mod-guildhouse.git", + "description": "Phased guild house system allowing guild members to visit their private guild house", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "mod_guildhouse.conf*" + ], + "category": "content" + }, + { + "key": "MODULE_PROGRESSION_SYSTEM", + "name": "mod-progression-system", + "repo": "https://github.com/azerothcore/mod-progression-system.git", + "description": "Allows for the automatic loading of scripts and SQL files based on level brackets", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "progression_system.conf*" + ], + "notes": "SQL files cannot be unloaded once executed; requires auto DB updater enabled in worldserver config", + "category": "progression" + }, + { + "key": "MODULE_NPC_FREE_PROFESSIONS", + "name": "mod-npc-free-professions", + "repo": "https://github.com/azerothcore/mod-npc-free-professions.git", + "description": "Makes a ProfessionsNPC who gives 2 free professions (full with recipes) to player", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "category": "npc-service" + }, + { + "key": "MODULE_DUEL_RESET", + "name": "mod-duel-reset", + "repo": "https://github.com/azerothcore/mod-duel-reset.git", + "description": "Adds some duel reset features", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "duelreset.conf*" + ], + "category": "gameplay-enhancement" + }, + { + "key": "MODULE_ZONE_DIFFICULTY", + "name": "mod-zone-difficulty", + "repo": "https://github.com/azerothcore/mod-zone-difficulty.git", + "description": "Support module for mod-progression-system, handles nerfs and debuffs per zone", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "notes": "Mythicmode NPC 1128001 spawned in raids/heroic dungeons; NPC 1128002 for Mythicmode rewards", + "category": "progression" + }, + { + "key": "MODULE_MORPHSUMMON", + "name": "mod-morphsummon", + "repo": "https://github.com/azerothcore/mod-morphsummon.git", + "description": "Change appearance of summoned permanent creatures", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "morphsummon.conf*" + ], + "notes": "Allows customization of summoned creature appearances (Warlock demons, Death Knight ghouls, Mage water elementals); NPC ID: 601072", + "category": "customization" + }, + { + "key": "MODULE_SPELL_REGULATOR", + "name": "mod-spell-regulator", + "repo": "https://github.com/azerothcore/mod-spell-regulator.git", + "description": "Modify the percentage of the spells by regulating in the best way", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "notes": "WARNING: Custom code changes mandatory before module functions; requires custom hooks from external gist", + "category": "admin" + }, + { + "key": "MODULE_WEEKEND_XP", + "name": "mod-weekend-xp", + "repo": "https://github.com/azerothcore/mod-weekend-xp.git", + "description": "XP module that allows server owner to select how much XP players can receive on the weekend via config file", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "mod-double-xp-weekend.conf*" + ], + "category": "progression" + }, + { + "key": "MODULE_REWARD_PLAYED_TIME", + "name": "mod-reward-played-time", + "repo": "https://github.com/azerothcore/mod-reward-played-time.git", + "description": "Adds items for players that have stayed logged in for x amount of time", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "reward_system.conf*" + ], + "category": "rewards" + }, + { + "key": "MODULE_RESURRECTION_SCROLL", + "name": "mod-resurrection-scroll", + "repo": "https://github.com/azerothcore/mod-resurrection-scroll.git", + "description": "Allows users to grant rested XP bonuses to players who have not logged in X days", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "notes": "Requires EnablePlayerSettings to be enabled in worldserver config file", + "category": "rewards" + }, + { + "key": "MODULE_ITEM_LEVEL_UP", + "name": "mod-item-level-up", + "repo": "https://github.com/azerothcore/mod-item-level-up.git", + "description": "Creates an item that allows you to level up (id = 701001)", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "category": "progression" + }, + { + "key": "MODULE_NPC_TALENT_TEMPLATE", + "name": "mod-npc-talent-template", + "repo": "https://github.com/azerothcore/mod-npc-talent-template.git", + "description": "An NPC that allows players to instantly apply pre-configured character templates that gear up, gem, set talents, and apply glyphs for any class", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "notes": "Admin commands: .templatenpc create [TemplateName] and .templatenpc reload", + "category": "npc-service" + }, + { + "key": "MODULE_GLOBAL_CHAT", + "name": "mod-global-chat", + "repo": "https://github.com/azerothcore/mod-global-chat.git", + "description": "Simple global chat for AzerothCore enabling worldserver-wide messaging functionality", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "GlobalChat.conf*" + ], + "category": "social" + }, + { + "key": "MODULE_PREMIUM", + "name": "mod-premium", + "repo": "https://github.com/azerothcore/mod-premium.git", + "description": "Adds Premium account features to players", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "premium.conf*" + ], + "notes": "Script must be assigned to an item (like hearthstone) using script name 'premium_account'", + "category": "premium" + }, + { + "key": "MODULE_SYSTEM_VIP", + "name": "mod-system-vip", + "repo": "https://github.com/azerothcore/mod-system-vip.git", + "description": "System offering VIP features and benefits to players", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "SystemVip.conf*" + ], + "category": "premium" + }, + { + "key": "MODULE_ACORE_SUBSCRIPTIONS", + "name": "mod-acore-subscriptions", + "repo": "https://github.com/azerothcore/mod-acore-subscriptions.git", + "description": "Handles the subscription logic, no longer requires modules or services to have subscription logic in their code", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "category": "premium" + }, + { + "key": "MODULE_KEEP_OUT", + "name": "mod-keep-out", + "repo": "https://github.com/azerothcore/mod-keep-out.git", + "description": "Keeps players who are non-GM from entering a zone/map", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "notes": "Requires editing database table mod_mko_map_lock; use .gps command to obtain map and zone IDs", + "category": "admin" + }, + { + "key": "MODULE_SERVER_AUTO_SHUTDOWN", + "name": "mod-server-auto-shutdown", + "repo": "https://github.com/azerothcore/mod-server-auto-shutdown.git", + "description": "Establishes a daily restart with configurable time, notification period, and custom messages", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "category": "admin" + }, + { + "key": "MODULE_WHO_LOGGED", + "name": "mod-who-logged", + "repo": "https://github.com/azerothcore/mod-who-logged.git", + "description": "Outputs to the console when a player logs into the world", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "who-logged.conf*" + ], + "category": "admin" + }, + { + "key": "MODULE_ACCOUNT_MOUNTS", + "name": "mod-account-mounts", + "repo": "https://github.com/azerothcore/mod-account-mounts.git", + "description": "Goes through the list of characters on an account to obtain playerGuids and store mount spells that all characters know", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "category": "account-wide" + }, + { + "key": "MODULE_ANTIFARMING", + "name": "mod-antifarming", + "repo": "https://github.com/azerothcore/mod-antifarming.git", + "description": "Port of the AntiFarming Script from SymbolixDEV's repo to AzerothCore", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "AntiFarming.conf*" + ], + "category": "admin" + }, + { + "key": "MODULE_ARENA_REPLAY", + "name": "mod-arena-replay", + "repo": "https://github.com/azerothcore/mod-arena-replay.git", + "description": "Allows you to watch a replay of rated arena games", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "notes": "NPC ID: 98500; known issue: players who were participants experience unusual behavior when watching their own replay", + "category": "pvp" + }, + { + "key": "MODULE_TIC_TAC_TOE", + "name": "mod-tic-tac-toe", + "repo": "https://github.com/azerothcore/mod-tic-tac-toe.git", + "description": "Allows players to play Tic Tac Toe between players and against different AI", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [], + "notes": "NPC ID: 100155", + "category": "minigame" + }, + { + "key": "MODULE_WAR_EFFORT", + "name": "mod-war-effort", + "repo": "https://github.com/azerothcore/mod-war-effort.git", + "description": "Brings back the war effort of the two factions for the opening of the gates of Ahn'Qiraj", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "mod_aq_war_effort.conf*" + ], + "category": "content" + }, + { + "key": "MODULE_PROMOTION_AZEROTHCORE", + "name": "mod-promotion-azerothcore", + "repo": "https://github.com/azerothcore/mod-promotion-azerothcore.git", + "description": "Allows player to receive a promotion consisting of a level 90 character, backpacks, gold, armor, and a mount", + "needs_build": true, + "type": "cpp", + "post_install_hooks": [], + "config_cleanup": [ + "mod_promotion.conf*" + ], + "category": "progression" } ] -} +} \ No newline at end of file diff --git a/profiles/all-modules.conf b/profiles/all-modules.conf new file mode 100644 index 0000000..102a3c2 --- /dev/null +++ b/profiles/all-modules.conf @@ -0,0 +1 @@ +MODULE_1V1_ARENA,MODULE_ACCOUNTWIDE_SYSTEMS,MODULE_ACCOUNT_ACHIEVEMENTS,MODULE_ACCOUNT_MOUNTS,MODULE_ACORE_SUBSCRIPTIONS,MODULE_ACTIVE_CHAT,MODULE_AHBOT,MODULE_AIO,MODULE_AIO_BLACKJACK,MODULE_ANTIFARMING,MODULE_AOE_LOOT,MODULE_ARAC,MODULE_ARENA_REPLAY,MODULE_ASSISTANT,MODULE_AUTOBALANCE,MODULE_AUTO_REVIVE,MODULE_AZEROTHSHARD,MODULE_BG_SLAVERYVALLEY,MODULE_BLACK_MARKET_AUCTION_HOUSE,MODULE_BOSS_ANNOUNCER,MODULE_BREAKING_NEWS,MODULE_CARBON_COPY,MODULE_CHALLENGE_MODES,MODULE_DISCORD_NOTIFIER,MODULE_DUEL_RESET,MODULE_DUNGEON_RESPAWN,MODULE_DYNAMIC_TRADER,MODULE_DYNAMIC_XP,MODULE_ELUNA,MODULE_ELUNA_SCRIPTS,MODULE_ELUNA_TS,MODULE_EVENT_SCRIPTS,MODULE_EXCHANGE_NPC,MODULE_FIREWORKS,MODULE_GAIN_HONOR_GUARD,MODULE_GLOBAL_CHAT,MODULE_GLOBAL_MAIL_BANKING_AUCTIONS,MODULE_GUILDHOUSE,MODULE_HARDCORE_MODE,MODULE_HORADRIC_CUBE,MODULE_INDIVIDUAL_PROGRESSION,MODULE_INSTANCE_RESET,MODULE_ITEM_LEVEL_UP,MODULE_KEEP_OUT,MODULE_LEARN_SPELLS,MODULE_LEVEL_GRANT,MODULE_LEVEL_UP_REWARD,MODULE_LOTTERY_LUA,MODULE_LUA_AH_BOT,MODULE_MORPHSUMMON,MODULE_MULTIVENDOR,MODULE_NPCBOT_EXTENDED_COMMANDS,MODULE_NPC_BEASTMASTER,MODULE_NPC_BUFFER,MODULE_NPC_ENCHANTER,MODULE_NPC_FREE_PROFESSIONS,MODULE_NPC_TALENT_TEMPLATE,MODULE_OLLAMA_CHAT,MODULE_PHASED_DUELS,MODULE_PLAYERBOTS,MODULE_PLAYER_BOT_LEVEL_BRACKETS,MODULE_POCKET_PORTAL,MODULE_PREMIUM,MODULE_PRESTIGE_DRAFT_MODE,MODULE_PROGRESSION_SYSTEM,MODULE_PROMOTION_AZEROTHCORE,MODULE_PVP_TITLES,MODULE_RANDOM_ENCHANTS,MODULE_REAGENT_BANK,MODULE_RECRUIT_A_FRIEND,MODULE_RESURRECTION_SCROLL,MODULE_REWARD_PLAYED_TIME,MODULE_SEND_AND_BIND,MODULE_SERVER_AUTO_SHUTDOWN,MODULE_SOLOCRAFT,MODULE_SOLO_LFG,MODULE_STATBOOSTER,MODULE_SYSTEM_VIP,MODULE_TEMP_ANNOUNCEMENTS,MODULE_TIC_TAC_TOE,MODULE_TIME_IS_TIME,MODULE_TRANSMOG,MODULE_TRANSMOG_AIO,MODULE_TREASURE_CHEST_SYSTEM,MODULE_ULTIMATE_FULL_LOOT_PVP,MODULE_WAR_EFFORT,MODULE_WEEKEND_XP,MODULE_WHO_LOGGED,MODULE_WORGOBLIN,MODULE_ZONE_CHECK,MODULE_ZONE_DIFFICULTY diff --git a/setup.sh b/setup.sh index 9a325f8..29848f9 100755 --- a/setup.sh +++ b/setup.sh @@ -360,6 +360,7 @@ declare -A MODULE_NEEDS_BUILD_MAP=() declare -A MODULE_REQUIRES_MAP=() declare -A MODULE_NOTES_MAP=() declare -A MODULE_DESCRIPTION_MAP=() +declare -A MODULE_CATEGORY_MAP=() declare -A MODULE_DEFAULT_VALUES=() declare -A KNOWN_MODULE_LOOKUP=() declare -A ENV_TEMPLATE_VALUES=() @@ -418,13 +419,14 @@ PY exit 1 fi - while IFS=$'\t' read -r key name needs_build module_type status block_reason requires notes description; do + while IFS=$'\t' read -r key name needs_build module_type status block_reason requires notes description category; do [ -n "$key" ] || continue # Convert placeholder back to empty string [ "$block_reason" = "-" ] && block_reason="" [ "$requires" = "-" ] && requires="" [ "$notes" = "-" ] && notes="" [ "$description" = "-" ] && description="" + [ "$category" = "-" ] && category="" MODULE_NAME_MAP["$key"]="$name" MODULE_NEEDS_BUILD_MAP["$key"]="$needs_build" MODULE_TYPE_MAP["$key"]="$module_type" @@ -433,6 +435,7 @@ PY MODULE_REQUIRES_MAP["$key"]="$requires" MODULE_NOTES_MAP["$key"]="$notes" MODULE_DESCRIPTION_MAP["$key"]="$description" + MODULE_CATEGORY_MAP["$key"]="$category" KNOWN_MODULE_LOOKUP["$key"]=1 done < <( python3 - "$MODULE_MANIFEST_PATH" <<'PY' @@ -464,7 +467,8 @@ for entry in manifest.get("modules", []): requires_csv = ",".join(ordered) if ordered else "-" notes = clean(entry.get("notes", "")) description = clean(entry.get("description", "")) - print("\t".join([key, name, needs_build, module_type, status, block_reason, requires_csv, notes, description])) + category = clean(entry.get("category", "")) + print("\t".join([key, name, needs_build, module_type, status, block_reason, requires_csv, notes, description, category])) PY ) @@ -1129,7 +1133,7 @@ fi module_mode_label="preset 2 (Playerbots + Suggested)" elif [ "$MODE_SELECTION" = "3" ]; then MODE_PRESET_NAME="" - say INFO "Answer y/n for each module" + say INFO "Answer y/n for each module (organized by category)" for key in "${!DISABLED_MODULE_REASONS[@]}"; do say WARNING "${key#MODULE_}: ${DISABLED_MODULE_REASONS[$key]}" done @@ -1137,35 +1141,87 @@ fi if [ ${#selection_keys[@]} -eq 0 ]; then selection_keys=("${MODULE_KEYS[@]}") fi + + # Define category display order and titles + local -a category_order=( + "automation" "quality-of-life" "gameplay-enhancement" "npc-service" + "pvp" "progression" "economy" "social" "account-wide" + "customization" "scripting" "admin" "premium" "minigame" + "content" "rewards" "developer" + ) + declare -A category_titles=( + ["automation"]="๐Ÿค– Automation" + ["quality-of-life"]="โœจ Quality of Life" + ["gameplay-enhancement"]="โš”๏ธ Gameplay Enhancement" + ["npc-service"]="๐Ÿช NPC Services" + ["pvp"]="โšก PvP" + ["progression"]="๐Ÿ“ˆ Progression" + ["economy"]="๐Ÿ’ฐ Economy" + ["social"]="๐Ÿ‘ฅ Social" + ["account-wide"]="๐Ÿ‘ค Account-Wide" + ["customization"]="๐ŸŽจ Customization" + ["scripting"]="๐Ÿ“œ Scripting" + ["admin"]="๐Ÿ”ง Admin Tools" + ["premium"]="๐Ÿ’Ž Premium/VIP" + ["minigame"]="๐ŸŽฎ Mini-Games" + ["content"]="๐Ÿฐ Content" + ["rewards"]="๐ŸŽ Rewards" + ["developer"]="๐Ÿ› ๏ธ Developer Tools" + ) + + # Group modules by category + declare -A modules_by_category local key for key in "${selection_keys[@]}"; do [ -n "${KNOWN_MODULE_LOOKUP[$key]:-}" ] || continue - local status_lc="${MODULE_STATUS_MAP[$key],,}" - if [ -n "$status_lc" ] && [ "$status_lc" != "active" ]; then - local reason="${MODULE_BLOCK_REASON_MAP[$key]:-Blocked in manifest}" - say WARNING "${key#MODULE_} is blocked: ${reason}" - printf -v "$key" '%s' "0" - continue - fi - local prompt_label - prompt_label="$(module_display_name "$key")" - if [ "${MODULE_NEEDS_BUILD_MAP[$key]}" = "1" ]; then - prompt_label="${prompt_label} (requires build)" - fi - local description="${MODULE_DESCRIPTION_MAP[$key]:-}" - if [ -n "$description" ]; then - printf '%b\n' "${BLUE}โ„น๏ธ ${MODULE_NAME_MAP[$key]:-$key}: ${description}${NC}" - fi - local default_answer - default_answer="$(module_default "$key")" - local response - response=$(ask_yn "$prompt_label" "$default_answer") - if [ "$response" = "1" ]; then - printf -v "$key" '%s' "1" + local category="${MODULE_CATEGORY_MAP[$key]:-uncategorized}" + if [ -z "${modules_by_category[$category]:-}" ]; then + modules_by_category[$category]="$key" else - printf -v "$key" '%s' "0" + modules_by_category[$category]="${modules_by_category[$category]} $key" fi done + + # Process modules by category + local cat + for cat in "${category_order[@]}"; do + local module_list="${modules_by_category[$cat]:-}" + [ -n "$module_list" ] || continue + + # Display category header + local cat_title="${category_titles[$cat]:-$cat}" + printf '\n%b\n' "${BOLD}${CYAN}โ•โ•โ• ${cat_title} โ•โ•โ•${NC}" + + # Process modules in this category + for key in $module_list; do + [ -n "${KNOWN_MODULE_LOOKUP[$key]:-}" ] || continue + local status_lc="${MODULE_STATUS_MAP[$key],,}" + if [ -n "$status_lc" ] && [ "$status_lc" != "active" ]; then + local reason="${MODULE_BLOCK_REASON_MAP[$key]:-Blocked in manifest}" + say WARNING "${key#MODULE_} is blocked: ${reason}" + printf -v "$key" '%s' "0" + continue + fi + local prompt_label + prompt_label="$(module_display_name "$key")" + if [ "${MODULE_NEEDS_BUILD_MAP[$key]}" = "1" ]; then + prompt_label="${prompt_label} (requires build)" + fi + local description="${MODULE_DESCRIPTION_MAP[$key]:-}" + if [ -n "$description" ]; then + printf '%b\n' "${BLUE}โ„น๏ธ ${MODULE_NAME_MAP[$key]:-$key}: ${description}${NC}" + fi + local default_answer + default_answer="$(module_default "$key")" + local response + response=$(ask_yn "$prompt_label" "$default_answer") + if [ "$response" = "1" ]; then + printf -v "$key" '%s' "1" + else + printf -v "$key" '%s' "0" + fi + done + done module_mode_label="preset 3 (Manual)" elif [ "$MODE_SELECTION" = "4" ]; then for key in "${MODULE_KEYS[@]}"; do