Skip to content

bug(Core/Loot): Master Looter sees needs_quest items without having the quest after #24828 #193

@richarddannweb-png

Description

@richarddannweb-png

Current Behaviour

Sorry for AI-generated text, I'm not an expert in this area.

After updating the server to a version that includes azerothcore#24828, the Master Looter sees needs_quest items in the loot window even when they do not have the corresponding quest active. The item is visible but cannot be looted or assigned. This was not happening before the update.

Expected Behaviour

Quest items with QuestRequired = 1 should not appear in the loot window for players (including the Master Looter) who do not have the quest active, matching the behavior prior to azerothcore#24828.

Source

The old AllowedForPlayer() had a Master Looter bypass that explicitly excluded quest items:

bool itemVisibleForMasterLooter = !needs_quest && (!follow_loot_rules || !is_underthreshold);

!needs_quest ensured quest-required items were never shown to the ML through the bypass.
In azerothcore#24828, the ML handling was moved to FillQuestLoot():

bool allowed = item.AllowedForPlayer(player, sourceWorldObjectGUID);
if (!allowed && !isMasterLooter)
    continue;

This bypasses AllowedForPlayer() for all quest items when the player is ML, including items where HasQuestForItem() returns false. The item gets added to the ML's loot view (ql->push_back), but since allowed is false, AddAllowedLooter() is never called — so the item is visible but cannot be picked up or distributed.

Steps to reproduce the problem

  1. Create a group with Master Loot enabled
  2. Be the Master Looter, do not accept a quest that requires a specific drop
  3. Kill a creature with QuestRequired = 1 items in its loot table
  4. Open the loot window — quest items are visible but cannot be looted or assigned

Extra Notes

The old AllowedForPlayer() ML bypass used !needs_quest to explicitly keep quest items out of the ML's view. The new code in FillQuestLoot() removed this restriction, making all quest items visible to the ML regardless of quest status.

AC rev. hash/commit

server debug
AC> AzerothCore rev. 5e741c3 2026-03-30 11:59:44 -0700 (Playerbot branch) (Unix, RelWithDebInfo, Static)
Connected players: 1. Characters in world: 5.
Connection peak: 1.
Server uptime: 9 minute(s) 47 second(s)
Update time diff: 10ms. Last 500 diffs summary:
|- Mean: 10ms
|- Median: 10ms
|- Percentiles (95, 99, max): 12ms, 14ms, 16ms
Using SSL version: OpenSSL 3.0.13 30 Jan 2024 (library: OpenSSL 3.0.13 30 Jan 2024)
Using Boost version: 1.83.0
Using CMake version: 3.28.3
Using MySQL version: 80045
Found MySQL Executable: /usr/bin/mysql
Compiled on: Linux 6.8.0-107-generic
Worldserver listening connections on port 8085
Realmlist (Realm Id: 1) configured in port 8085
VMAPs status: Enabled. LineOfSight: true, getHeight: true, indoorCheck: true
MMAPs status: Enabled
maps directory located in /home/buratinich/Data/maps. Total size: 291014951 bytes
vmaps directory located in /home/buratinich/Data/vmaps. Total size: 657798358 bytes
mmaps directory located in /home/buratinich/Data/mmaps. Total size: 2192760616 bytes
Default DBC locale: enUS.
All available DBC locales: enUS frFR deDE zhCN
Using World DB: ACDB 335.16-dev
Using Playerbots DB Revision:
Latest LoginDatabase update: 2025_07_24_00.sql
Latest CharacterDatabase update: playerbots_names.sql
Latest WorldDatabase update: zone_zangarmarsh.sql
LoginDatabase queue size: 0
CharacterDatabase queue size: 0
WorldDatabase queue size: 0
PlayerbotsDatabase queue size: 0
List of enabled modules:
|- mod-TimeIsTime
|- mod-ah-bot-plus
|- mod-assistant
|- mod-autobalance
|- mod-easy-respawn
|- mod-individual-progression
|- mod-instance-tools
|- mod-junk-to-gold
|- mod-playerbots
|- mod-progression-system
|- mod-quest-loot-party
|- mod-reagent-bank
|- mod-solo-lfg
|- mod-warlock-pet-rename
|- mod_weather_vibe
AC> Update time diff: 179ms with 1 players online
Last 500 diffs summary:
|- Mean: 10ms
|- Median: 10ms
|- Percentiles (95, 99, max): 12ms, 14ms, 179ms

Operating system

Ubuntu 24.04.4 LTS

Custom changes or Modules

none

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions