Broker_Portals
Why would you have actionbars filled with portals, or open your spellbook everytime you cast a portal? Just right click on icon or minimap button and you can access all portals so comfortably.
It is designed as DataBroker plug-in, that lets you access all portal and teleport spells from one spot. Addon will be attached to minimap by default, but if you want to move/customize it, you will have to install additional addon like TitanPanel, HidingBar, or Bazooka and there are many more.
Features:
- All mage portals, hearthstone and teleporting items available from simple dropdown menu
- Minimap button, so you don't have to install any additional addon
- Hearthstone location and cooldown in tooltip
- Reagent count in tooltip (for Cataclusm Classic)
- If hearthstone is on cooldown, Scroll of Recall will be used instead if possible
- Can announce, that you're casting a portal
Localization:
If you'd like to add/update localizations, do so here. Then leave a comment on WowAce or on Curse as I'm checking those more often than localization app itself, and I'll repack it.
Bugs / Suggestions:
If you have encountered any problem, or if you think theres something missing. Feel free to post a ticket here.
FAQ:
- I managed to hide my minimap icon, how do I turn it on again?
- Just simply type "/portals".
- Does it support teleportation items like engineering teleports or Kirin Tor rings?
- Yes.
TODO:
Enable adding custom items/spells
-
View User Profile
-
Send Message
Posted Feb 9, 2026I just discovered this addon trying to replace mage nuggets which I've used for nearly 10 years. I love this so far but the menu is so big it cuts off at the bottom of my screen. Is there any way you could make it scrollable?
-
View User Profile
-
Send Message
Posted Feb 10, 2026In reply to kyleswiss: For context I play a mage and have most of the hearthstones and other teleports in the game so the list goes off the bottom edge of my screen :(
-
View User Profile
-
Send Message
Posted Jan 28, 2026TBC anniversary!
Just got this and now the Brokerportal doesn't work...
5x ...roker_Portals/libs/LibDewdrop-3.0-1/LibDewdrop-3.0.lua:745: Action[SetPoint] failed because[SetPoint would result in anchor family connection]: attempted from: LibDewdrop30Level1:SetPoint.
[Broker_Portals/libs/LibDewdrop-3.0-1/LibDewdrop-3.0.lua]:745: in function <...roker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua:509>
[Broker_Portals/libs/LibDewdrop-3.0-1/LibDewdrop-3.0.lua]:2889: in function 'AddLine'
[Broker_Portals/portals.lua]:1085: in function <Broker_Portals/portals.lua:1080>
[Broker_Portals/portals.lua]:1216: in function <Broker_Portals/portals.lua:1216>
[Broker_Portals/libs/LibDewdrop-3.0-1/LibDewdrop-3.0.lua]:1797: in function <...roker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua:1773>
[Broker_Portals/libs/LibDewdrop-3.0-1/LibDewdrop-3.0.lua]:2680: in function <...roker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua:2649>
[Broker_Portals/libs/LibDewdrop-3.0-1/LibDewdrop-3.0.lua]:2830: in function 'Open'
[Broker_Portals/portals.lua]:1216: in function 'OnClick'
[BugSack/Libs/LibDBIcon-1.0-55/LibDBIcon-1.0.lua]:179: in function <BugSack/Libs/LibDBIcon-1.0/LibDBIcon-1.0.lua:177>
Locals:
level = LibDewdrop30Level1 {
parent = LibDBIcon10_Broker_Portals {
}
scrollFrame = LibDewdrop30ScrollFrame1 {
}
lastVDirection = "DOWN"
num = 1
parented = true
lastDirection = "RIGHT"
}
button = LibDewdrop30Button8 {
highlight = Texture {
}
arrow = Texture {
}
text = FontString {
}
radioHighlight = Texture {
}
check = Texture {
}
level = LibDewdrop30Level1 {
}
colorSwatch = Texture {
}
}
levels = <table> {
1 = LibDewdrop30Level1 {
}
2 = LibDewdrop30Level2 {
}
}
buttons = <table> {
1 = LibDewdrop30Button7 {
}
2 = LibDewdrop30Button6 {
}
3 = LibDewdrop30Button5 {
}
4 = LibDewdrop30Button4 {
}
5 = LibDewdrop30Button3 {
}
6 = LibDewdrop30Button2 {
}
7 = LibDewdrop30Button1 {
}
8 = LibDewdrop30Button18 {
}
9 = LibDewdrop30Button17 {
}
10 = LibDewdrop30Button16 {
}
11 = LibDewdrop30Button15 {
}
12 = LibDewdrop30Button14 {
}
13 = LibDewdrop30Button13 {
}
14 = LibDewdrop30Button12 {
}
15 = LibDewdrop30Button11 {
}
16 = LibDewdrop30Button10 {
}
17 = LibDewdrop30Button9 {
}
}
numButtons = 18
sliderFrame = nil
editBoxFrame = nil
Dewdrop = <table> {
scrollListSize = 39
KEY_BUTTON2 = "Right Mouse"
fontsize = 12
hookedTooltip = true
onceRegistered = <table> {
}
registry = <table> {
}
frame = Frame {
}
KEY_BUTTON1 = "Left Mouse"
}
secureFrame = Button {
}
underlineFrame = Frame {
tx = Texture {
}
}
tmpt = <table> {
}
-
View User Profile
-
Send Message
Posted Jan 28, 2026In reply to frkstram:
where exactly that happens, what are you doing at that moment? also class?
-
View User Profile
-
Send Message
Posted Jan 28, 2026In reply to frkstram:
Do you have MoveAnything installed?
-
View User Profile
-
Send Message
Posted Jan 28, 2026In reply to frkstram:
Nevermind, I found culprit anyway, should be fixed in 1.5.11
-
View User Profile
-
Send Message
Posted Jan 22, 2026Do you plan to update for 12.0 Midnight ?
-
View User Profile
-
Send Message
Posted Jan 28, 2026In reply to korgen63:
it updated for midnight but all the items / spells will be added later, I have no idea what's there atm, I'll have a look at wowhead a bit later this week ^^
-
View User Profile
-
Send Message
Posted Jan 19, 2026Man, I remember this back in retail was a sad day when it was no longer updated.
Seems like the dark portal hearth doesn't work. When you click it just says toy limit reached even when you don't have it some how it's trying to use it
-
View User Profile
-
Send Message
Posted Jan 19, 2026In reply to Furydeath9:
where's that ? mop, retail?
-
View User Profile
-
Send Message
Posted Jan 20, 2026In reply to artscout375:
Found it, it's a TBC Anniversary. Blizzard for some reason decided that ToyBox should exist in this version too even though they're not really supporting it via interface and toys are still exist as items in bags. Weird shit. Also for some reason Naaru's Embrace doesn't count :)
going to fix that
-
View User Profile
-
Send Message
Posted Jan 22, 2026In reply to artscout375: I was thinking that was what it was I'm like wtf what toy box tho I never was able to see if anyone else saw it wonder what else could trick it
-
View User Profile
-
Send Message
Posted Jan 20, 2026In reply to Furydeath9:
Fixed ;)
-
View User Profile
-
Send Message
Posted Jan 16, 2026Can you please add Naaru's Embrace for TBC anniversary to the menu?
-
View User Profile
-
Send Message
Posted Jan 20, 2026In reply to VenTheFairy:
Done and released
-
View User Profile
-
Send Message
Posted Jan 8, 2026Do you think you could add the Lucky Tortollan Charm (Jeweled Coast, Stormsong teleport)?
-
View User Profile
-
Send Message
Posted Jan 10, 2026In reply to Mikki_Frost:
Done and pushed to wowace/curse
-
View User Profile
-
Send Message
Posted Sep 22, 2025Any chance you could add a sub-menu for hearthstones similar to the one for Engineering?
Love the addon!
-
View User Profile
-
Send Message
Posted Aug 8, 2025Version 1.15.1, Retail WoW:
Message: Interface/AddOns/Broker_Portals/portals.lua:523: attempt to concatenate field 'scrollListSize' (a nil value)
Time: Fri Aug 8 15:55:46 2025
Count: 1
Stack:
[C]: ?
[Interface/AddOns/Broker_Portals/portals.lua]:523: in function <Interface/AddOns/Broker_Portals/portals.lua:426>
[Interface/AddOns/Broker_Portals/portals.lua]:1195: in function <Interface/AddOns/Broker_Portals/portals.lua:1140>
[tail call]: ?
Locals:
---
Message: ...roker_Portals/libs/LibDewdrop-3.0-1/LibDewdrop-3.0.lua:317: attempt to compare number with nil
Time: Fri Aug 8 15:56:11 2025
Count: 2
Stack:
[C]: ?
[Interface/AddOns/Broker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua]:317: in function <...roker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua:315>
[Interface/AddOns/Broker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua]:1804: in function <...roker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua:1773>
[Interface/AddOns/Broker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua]:2680: in function <...roker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua:2649>
[Interface/AddOns/Broker_Portals/libs/LibDewdrop-3.0/LibDewdrop-3.0.lua]:2830: in function 'Open'
[Interface/AddOns/Broker_Portals/portals.lua]:1212: in function <Interface/AddOns/Broker_Portals/portals.lua:1210>
[Interface/AddOns/Titan/TitanLDB.lua]:303: in function <Interface/AddOns/Titan/TitanLDB.lua:301>
Locals:
---
Edit: I fixed it myself. I just added:
if PortalsDB.scrollListSize == nil then
PortalsDB.scrollListSize = 33
end
Into "function frame:PLAYER_LOGIN()", just after the whole "Upgrade from versions" part. So this part around line 1194 now looks this way:
elseif PortalsDB.version < 2 then
PortalsDB.showItems = true
PortalsDB.showItemCooldowns = true
PortalsDB.announce = false
PortalsDB.version = 4
end
if PortalsDB.scrollListSize == nil then
PortalsDB.scrollListSize = 33
end
if icon then icon:Register('Broker_Portals', obj, PortalsDB.minimap) end
CreateSettingsPanel()
PrepareMenuData()
PrepareMenuData()
self:UnregisterEvent('PLAYER_LOGIN')
-
View User Profile
-
Send Message
Posted Aug 8, 2025In reply to dabear78:
ok I'll look into it tomorrow. but it's strange, should be there.