TS-WOW ONLY (LFD) Requirements from Level 15 to Level 1 and group (5) to solo menu

Shout-Out

User Tag List

Results 1 to 1 of 1
  1. #1
    Delta3's Avatar Member
    Reputation
    2
    Join Date
    Oct 2023
    Posts
    22
    Thanks G/R
    13/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    TS-WOW ONLY (LFD) Requirements from Level 15 to Level 1 and group (5) to solo

    Goal: Allow level 1 players to use the Looking For Dungeon tool, queue solo (as DPS), and have the queue pop instantly, bypassing level, gear, and other requirements.

    We needed to modify three main areas:
    Client UI Files: To enable the LFG button at level 1.
    Server Core C++ Code: To change the required group size/composition from 5 players to 1 player.
    Server Data (Datascript): To change dungeon level ranges, target levels, and remove gear/quest/achievement requirements.

    Step-by-Step Guide:

    Part 1: Client-Side Modification (Enabling the LFG Button)

    Problem: The default WoW client UI disables the LFG button until level 15.

    File to Modify: Interface\FrameXML\Constants.lua (located within the client's MPQ files).

    Open up Ladik's MPQ Editor... go to ur data folder in ur wow 335 client I.E. C:\wowdev\client\Data\enUS ... open up the mpqs merged...

    (click the top mpq... hold down shift...click the bottom mpq..) open.. clicked merged mode... then click interface... then click FrameXML...

    Right click Constants.lua .. extract it.. find where it extracted (mine extracts to desktop... u may need to go to tools / options at the top and set work directory to ur client path.)

    open up Constants.lua where it was extracts...

    Change: Find the line defining SHOW_LFD_LEVEL and change its value to 1:

    -- Before:
    -- SHOW_LFD_LEVEL = 15; -- Or similar value

    -- After:
    SHOW_LFD_LEVEL = 1;

    (Alternatively, one could edit Interface\FrameXML\MainMenuBarMicroButtons.xml and change self.minLevel = SHOW_LFD_LEVEL; to self.minLevel = 1; specifically for the LFDMicroButton).

    Create a new, empty patch MPQ file (e.g., patch-Z.MPQ or patch-4.MPQ - ensure it loads after official patches).


    Inside the new MPQ, create the folder structure Interface\FrameXML\.

    Add your modified Constants.lua into this Interface\FrameXML\ folder within the MPQ.

    Close the MPQ .

    Place the new patch MPQ file into the client's Data folder.

    Delete the client's Cache folder.


    Part 2: Server Core C++ Changes (Setting Queue Requirement to 1 Player)

    Problem: The server's LFG system expects a full group (1 Tank, 1 Healer, 3 DPS = 5 players) before the queue pops.

    Files to Modify:

    cores/TrinityCore/src/server/game/DungeonFinding/LFG.h
    cores/TrinityCore/src/server/game/DungeonFinding/LFGQueue.cpp


    Changes:
    In LFG.h: Modify the LFGEnum to require only 1 DPS :

    Code:
        enum LFGEnum
            {
                LFG_TANKS_NEEDED                             = 0, // Changed from 1
                LFG_HEALERS_NEEDED                           = 0, // Changed from 1
                LFG_DPS_NEEDED                               = 1  // Changed from 3
            };
    In LFGQueue.cpp (First Change, around line 523): Modify the main "Enough players?" check in LFGQueue::CheckCompatibility to use the sum of roles needed instead of MAX_GROUP_SIZE:

    Code:
        // Calculate the total number of roles needed based on LFG.h constants
            uint8 totalRolesNeeded = LFG_TANKS_NEEDED + LFG_HEALERS_NEEDED + LFG_DPS_NEEDED;
    
            // Enough players based on roles needed?
            if (numPlayers != totalRolesNeeded) // <<< Ensure this uses totalRolesNeeded
            {
               // ... (rest of the block remains mostly the same) ...
               return LFG_COMPATIBLES_WITH_LESS_PLAYERS;
            }
    In LFGQueue.cpp (Second Change, around line 425): Modify the check for single queuing entities in LFGQueue::CheckCompatibility to also use the sum of roles needed:

    Code:
      // Calculate the total number of roles needed based on LFG.h constants
            uint8 totalRolesNeededForCheck = LFG_TANKS_NEEDED + LFG_HEALERS_NEEDED + LFG_DPS_NEEDED; // Can reuse variable or use new one
    
            // If checking a single entity (player or group), see if it meets the total roles needed OR if it's just partially filled (original logic)
            if (check.size() == 1 && numPlayers != totalRolesNeededForCheck) // <<< Ensure this uses totalRolesNeededForCheck
            {
                // ... (rest of the block remains mostly the same) ...
                 return LFG_COMPATIBLES_WITH_LESS_PLAYERS;
            }
    Tool: C++ Compiler (Visual Studio 2022 in your case) and CMake.

    Action:

    Make the code changes above and save the files.

    Recompile the Core: Open the TrinityCore.sln file from your build directory (tswow-build/TrinityCore) in Visual Studio (as Administrator). Set configuration to "RelWithDebInfo" / "x64". Rebuild the worldserver project (or ALL_BUILD).

    Then build the INSTALL project.

    Synchronize Binaries: Copy all generated files (.exe, .dlls, etc.) from the INSTALL output directory (e.g., tswow-build/TrinityCore/bin/RelWithDebInfo/) to your server's running bin directory (tswow-install/bin/), overwriting the existing files (backup first!).

    Part 3: Server Data Changes (Datascript for Levels & Requirements)

    Problem: Dungeons have default level ranges, target levels, and potentially requirements for gear, quests, items, or achievements stored in server data.

    File to Modify: Your custom datascript, modules/yourcreator-levelone/datascripts/level_control.ts.

    Changes: Ensure the script performs the following actions:

    Updates LfgDungeons.dbc: Loops through all dungeons and sets:
    dungeon.MinLevel.set(1)
    dungeon.MaxLevel.set(1)
    dungeon.Target_Level.set(1)
    dungeon.Target_Level_Min.set(1)
    dungeon.Target_Level_Max.set(1)

    Updates access_requirement table: Executes an SQL query to modify all entries:

    UPDATE access_requirement
    SET
    item_level = 0,
    level_min = 1,
    quest_done_A = 0,
    quest_done_H = 0,
    item = 0,
    item2 = 0,
    completed_achievement = 0;

    {Optionally) Updates creature_template levels if desired: UPDATE creature_template SET minlevel = 1, maxlevel = 1;


    Ensure the level_control.ts script contains all the logic above.

    Run the command build data in the TSWoW console.

    Restart the World Server. stop realm start realm.

    By performing all three parts (Client Patch, Core Recompile, Datascript Execution), you modify the necessary client UI behavior, server group formation logic, and server data definitions to enable instant solo LFG queuing at level 1.


    Full Script:

    Code:
    import { std } from 'wow/wotlk';
    
    // Set all creature levels to 1
    std.SQL.Databases.world_dest.write('UPDATE creature_template SET minlevel = 1, maxlevel = 1;');
    
    // Modify Dungeon Finder levels
    const lfgDbc = std.DBC.LfgDungeons;
    const numRows = lfgDbc.rowCount;
    
    for (let i = 0; i < numRows; i++) {
        const dungeon = lfgDbc.getRow(i);
        if (!dungeon) continue; // Should not happen if rowCount is correct
    
        // Set MinLevel if the property exists on the dungeon row object
        if (dungeon.MinLevel) {
            dungeon.MinLevel.set(1);
        }
    
        // Set Target_Level_Min if the property exists on the dungeon row object
        // This is often the primary field for LFG visibility and requirements.
        if (dungeon.Target_Level_Min) {
            dungeon.Target_Level_Min.set(1);
        }
    
        // Also set the main Target_Level to 1
        if (dungeon.Target_Level) {
            dungeon.Target_Level.set(1);
        }
    
        // Optional: Adjust MaxLevel and Target_Level_Max if you want to further refine
        // the dungeon visibility for level 1 characters.
        // For a strict level 1 twink server, you might set these to 1 or another low level.
        if (dungeon.MaxLevel) {
            dungeon.MaxLevel.set(1);
        }
        if (dungeon.Target_Level_Max) {
            dungeon.Target_Level_Max.set(1);
        }
    } 
    
    // Modify access_requirement table to remove item level, specific quest, item, and achievement requirements
    std.SQL.Databases.world_dest.write(`
        UPDATE access_requirement 
        SET 
            item_level = 0,
            level_min = 1,
            quest_done_A = 0, 
            quest_done_H = 0,
            item = 0,
            item2 = 0,
            completed_achievement = 0;
    `);
    
    console.log("TSWoW: Set creature levels to 1.");
    console.log("TSWoW: Set LFG dungeon levels to 1 (MinLevel, MaxLevel, Target_Level, Target_Level_Min, Target_Level_Max).");
    console.log("TSWoW: Updated access_requirement table to set item_level = 0, level_min = 1, and cleared other specific item/quest/achievement requirements.");

    TS-WOW ONLY (LFD) Requirements from Level 15 to Level 1 and group (5) to solo

Similar Threads

  1. [Selling] 15-year-old wow account. It contains 6 level 70 and 5 level 60 ch
    By Palivokcs in forum WoW-EU Account Buy Sell Trade
    Replies: 0
    Last Post: 03-01-2024, 07:35 PM
  2. [Boosting] ►EU+US◄ 💪 Mythic +10 only 13€ 💪⭐From M+15 to +24 timed. RIO Score boost⭐MDI Players
    By Easylvl in forum World of Warcraft Buy Sell Trade
    Replies: 7
    Last Post: 10-20-2018, 04:36 AM
  3. [Buying] GOLD ON ARTHAS HORDE ONLY! Will by from players that have too much and Want some cash
    By PlayerGold in forum World of Warcraft Buy Sell Trade
    Replies: 0
    Last Post: 10-17-2014, 01:06 AM
  4. [Selling] WOW EU Account with 8 level 85s and alts
    By cubesboy in forum WoW-EU Account Buy Sell Trade
    Replies: 2
    Last Post: 08-21-2012, 03:41 PM
All times are GMT -5. The time now is 05:13 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search