Jump to content

[TUT - MaNGOS] Using Auction House Bot (AHbot)


Recommended Posts

Posted

Chris K did a marvelous job at writing a job for it, so I won't bother making my own. 100% credits to him <3

 

 

This patch modifies the core so it populates the auction houses with items. It makes the game feel a bit more like official. Items and prices are chosen randomly based on the parameters you define. If an auction expires, auctions are deleted quietly. If the auction sells, you *can* get the in-game mail for that item.

 

Step 1.) Create a character that you are going to use as the auction house bot character. This character will be the auctions' owner for all the items created by the bot.

 

Step 2.) Go into the realm database and note the account number for the character.

 

Step 3.) Go into the mangos database and note the character's GUID.

 

Step 4.) Log in at least once with this character.

 

Step 5.) Apply the patch and rebuild MaNGOS. For unix, you will need to re-run "automake"

 

Step 6.) Tune the newly added configuration options in the configuration file. They are discussed below...

 

Code:

# Auction House Bot
AuctionHouseBot.Account = 0
AuctionHouseBot.GUID = 0
AuctionHouseBot.NoMail = 0
AuctionHouseBot.AllianceItems = 0
AuctionHouseBot.HordeItems = 0
AuctionHouseBot.NeutralItems = 0
AuctionHouseBot.MinTime = 8
AuctionHouseBot.MaxTime = 24
AuctionHouseBot.PercentWhiteTradeGoods = 30
AuctionHouseBot.PercentGreenTradeGoods = 13
AuctionHouseBot.PercentBlueTradeGoods = 9
AuctionHouseBot.PercentPurpleTradeGoods = 1
AuctionHouseBot.PercentWhiteItems = 6
AuctionHouseBot.PercentGreenItems = 30
AuctionHouseBot.PercentBlueItems = 9
AuctionHouseBot.PercentPurpleItems = 2
AuctionHouseBot.MinPriceWhite = 150
AuctionHouseBot.MaxPriceWhite = 250
AuctionHouseBot.BidPriceWhite = 100
AuctionHouseBot.MaxStackWhite = 0
AuctionHouseBot.MinPriceGreen = 200
AuctionHouseBot.MaxPriceGreen = 300
AuctionHouseBot.BidPriceGreen = 100
AuctionHouseBot.MaxStackGreen = 3
AuctionHouseBot.MinPriceBlue = 250
AuctionHouseBot.MaxPriceBlue = 350
AuctionHouseBot.BidPriceBlue = 100
AuctionHouseBot.MaxStackBlue = 2
AuctionHouseBot.MinPricePurple = 300
AuctionHouseBot.MaxPricePurple = 450
AuctionHouseBot.BidPricePurple = 100
AuctionHouseBot.MaxStackPurple = 1

 

AuctionHouseBot.Account is the account number (in realmd->account table) of the player you want to run as the auction bot. Note: a value of 0 will disable the bot.

 

AuctionHouseBot.GUID is the GUID (in mangos->character table) of the player you want to run as the auction bot. Note: a value of 0 will disable the bot.

 

AuctionHouseBot.NoMail is a flag to disable mail for successfull auctions. A value of 0 will allow mail for successful auctions to be sent, which is the default. Non-zero (e.g. AuctionHouseBot.NoMail = 1) will stop successful auction mail.

 

AuctionHouseBot.AllianceItems is the number of items you want to keep in the Alliance auction house.

 

AuctionHouseBot.HordeItems is the number of items you want to keep in the Horde auction house.

 

AuctionHouseBot.NeutralItems is the number of items you want to keep in the Neutral auction house.

 

AuctionHouseBot.MinTime is the minimum number of hours for an auction.

 

AuctionHouseBot.MaxTime is the maximum number of hours for an auction.

 

AuctionHouseBot.PercentWhiteTradeGoods is the percentage of the auction items that should be trade goods of white quality. A value of 0 will disable.

 

AuctionHouseBot.PercentGreenTradeGoods - see above

AuctionHouseBot.PercentBlueTradeGoods - see above

AuctionHouseBot.PercentPurpleTradeGoods - see above

AuctionHouseBot.PercentWhiteItems - see above

AuctionHouseBot.PercentGreenItems - see above

AuctionHouseBot.PercentBlueItems - see above

AuctionHouseBot.PercentPurpleItems - see above

 

AuctionHouseBot.MinPriceWhite is the minimum price adjustment for white items. For example the default is 150, which means 150%. So if an item vendors for 1g it would go to auction for a minimum of 1.5g.

 

AuctionHouseBot.MaxPriceWhite is the maximum price adjustment for white items.

 

AuctionHouseBot.BidPriceWhite is the starting bid as a percent of the buyout price. For example, if this value is 50 and the buyout price is randomly chosen to be 1g, then the bid price will be 50s.

 

AuctionHouseBot.MaxStackWhite is maximum stack size to create for this quality type. A value of zero will disable the maximum stack size for this quality allowing the bot to create stacks (of random size) of items as big as the item type allows.

 

AuctionHouseBot.MinPriceGreen - see above

AuctionHouseBot.MaxPriceGreen - see above

AuctionHouseBot.BidPriceGreen - see above

AuctionHouseBot.MaxStackGreen - see above

AuctionHouseBot.MinPriceBlue - see above

AuctionHouseBot.MaxPriceBlue - see above

AuctionHouseBot.BidPriceBlue - see above

AuctionHouseBot.MaxStackBlue - see above

AuctionHouseBot.MinPricePurple - see above

AuctionHouseBot.MaxPricePurple - see above

AuctionHouseBot.BidPricePurple - see above

AuctionHouseBot.MaxStackPurple - see above

 

If you chose to include the ahcommands.patch, it will add the following commands for GM level 3 players:

ahexpire <house id> <player GUID>

ahdelete <house id> <player GUID>

 

ahexpire will expire all the auctions in the requested auction house with the player GUID as the owner.

ahdelete will delete all the auctions in the requested auction house with the player GUID as the owner.

 

The real difference between them is that 'ahexpire' will actually deliver the auction if some has bid on it, and ahdelete will just delete the auction regardless if someone has bid on it or not.

 

The auction house IDs are:

2 - Alliance

6 - Horde

7 - Neutral

 

Example, if my auction house bot character's GUID is 42, and I want to clear out all their auctions from the neutral auction house, I would run the following:

 

ahdelete 7 42

 

Please post any questions or bugs you have.

 

Thanks!

 

Last tried with MaNGOS v4671

 

Download

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • GoldRush launches tomorrow! July 18 16:00 GMT+3 Europe / International Register your account in the website, connect wallet and be ready to dominate!
    • 🏰 L2EXALTA LEGACY — Interlude x45 📅 Grand Opening: 31/07/2026 — 21:30 (GMT+3) 🌐 Website: https://l2exalta.org/ 💬 Discord: https://discord.gg/zNTCZD4AcT 📌 Wiki: https://l2exalta.org/en/wiki.html#progression   ⚙️ MAIN INFO Chronicle : Interlude Rates : x45 Adena : x50 Spoil : x1 Drop : x5 Safe Enchant : +3 Files : L2OFF   💰 ECONOMY EX Coin : dynamic market currency, mined from monsters, Raid Bosses and Grand Bosses value fluctuates over time Exalta Vouchers : premium currency used for store, donations and EX Coin exchange Exchange : convert EX Coin into Exalta Vouchers Investment options : choose safer or riskier market strategies with EX Coin   ⚔️ PROGRESSION & GEAR Exalta Armors : signature top-tier gear line Forge System : upgrade weapons, armor and jewels with risk/reward mechanics Raid Boss progression tied to materials and prestige   🤖 AUTOFARM Access : Auto Hunting button, bottom-right UI Duration : controlled via tickets or in-game currency Route Mode : record custom farm routes Support Mode : healer/support builds auto-follow, heal and assist party Smart targeting logic with class-specific behavior (mage/archer/melee/support) Captcha designed not to interrupt legitimate AutoFarm sessions   🧪 BUFFER Exalta Buffer NPC/interface Scheme Buffer : save multiple buff loadouts Class presets for mage, fighter, support, PvP   🛠️ SMART GADGETS / QOL Autoloot filter Drop value tracker Boss timer tools Farm stats tracker Auto-consume system In-game server assistant   🗺️ DUNGEON FINDER / PVE Party matching with roles (Tank / Healer / DPS) Ready-check before teleport Monastery of Silence custom PvE zone Party-based reward structure   🎟️ DAILY PROGRESS / EXALTA PASS Daily and weekly tasks (farm, PvP, boss, check-in) Premium Pass track with extra rewards Monastery Daily Quest Reward boards for claiming progress   🏠 HOUSING & EXPEDITIONS Player residences with service NPCs Exalta Spirit Expeditions to themed territories Rewards vary by territory Owner-only access   🏆 PVP / TOURNAMENT Scheduled Tournament system Ranking points from wins/participation Spectator Mode for watching live matches PvP Statues for top-ranked players Anti-feed protections   🛡️ CLAN CONTENT Clan Civil War battlefield event Clan Dungeon Raid content DPS Meter for contribution tracking Support Credit system Classic siege/clan politics preserved   🏪 AUCTION / SHOPS Auction House with seller fee Black Market Dealer (limited-time special offers) Custom shops and multisells Confirmation prompts on purchases/sales   💳 DONATIONS / VIP Donation rewards linked to Exalta Vouchers VIP tiers with comfort/cosmetic bonuses Premium store Gift/promo codes for events   🎥 STREAMER / COMMUNITY Streamer Panel with visible stream links Viewer rewards system Streamer Points for cosmetics/vouchers In-game voice chat (global/party/clan/alliance/command)   🔒 FAIR PLAY Strong Anti-Bot protection Reward protection tied to valid client state Captcha on suspicious activity Staff investigation tools No bots, packet tools or modified clients allowed   👑 GRANDBOSS SPAWNS Orfen : 1 day + 1h random Core : 1 day + 1h random Queen Ant : 1 day 6h + 1h random Zaken : 2 days 12h + 1h random Baium : 5 days + 1h random Antharas : 8 days + 1h random Valakas : 11 days + 1h random   🏅 OLYMPIAD Runs Thursday, Friday, Saturday Heroes change monthly Balanced and fair matchmaking
    • yup basically another one just in case https://drive.google.com/file/d/1UtccbD9e50x3WEnQBab2PTZnBHwpcGYM/view?usp=sharing LineageWarrior.FMagic (CollideActors = True; > False) LineageWarrior.FOrc (CollideActors = True; > False) LineageWarrior.FShaman (CollideActors = True; > False) LineageWarrior.MDarkElf (CollideActors = True; > False) LineageWarrior.MDwarf (CollideActors = True; > False) LineageWarrior.MElf (CollideActors = True; > False) LineageWarrior.MFighter (CollideActors = True; > False) LineageWarrior.MMagic (CollideActors = True; > False) LineageWarrior.MOrc (CollideActors = True; > False) LineageWarrior.MShaman (CollideActors = True; > False) LineageWarrior.FDwarf (CollideActors = True; > False) LineageWarrior.FElf (CollideActors = True; > False) LineageWarrior.FFighter (CollideActors = True; > False)
    • @l2naylondev Requiring a player to log in just for the sake of logging  seems exploitable. Someone could log in only to claim the reward and immediately leave, or repeatedly change their ip. So i guess  are there are additional protections in place ? such as locking the reward by account, character , and ip. It would also be useful to add a playtime requirement. For example, after logging in, the player would need to remain active for at least x playtime  before getting the reward or other parameters configurable by the xml.  I suggest improving the system before selling it. 
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..