#development
1 messages · Page 9 of 1
The second one returns the gameval inventory id
different classes with the same name (inventoryid)
Says in the comment.
You guys are confusing me. There are two getItemContainer methods. The first's parameter is a deprecated class. It's deprecated, so presumably I shouldn't use it, meaning that I should be using the second getItemContainer. So why is the first getItemContainer not also marked deprecated? It's not a big deal but it feels a little strange.
because nobody bothered to mark it deprecated
ok that's what I figured ty
and you can only use it with another deprecated symbol so its w\e
for some reason my IDE is auto importing the deprecated class instead of showing me the gameval import which was really confusing.
Takes a screenshot of the loot screen on claim.
closes #19236
This should be in ScriptID and named something like DOM_BUILD_LOOT_UI. The last argument to the script also tells you if you have claimed the loot or not which you could use instead of checking if the widget is hidden.
^ The real name of that script is dom_end_level_ui_draw_loot
I noticed LootTracker just uses ScriptID.DOM_LOOT_CLAIM and I wasn't able to fire it with a different int value in-game, so it should be suffice I think.
I feel so stupid asking this but how do I get the launcher to run runelite with --insecure-write-credentials?
don't the instructions already say this?
it's ok. with ai you too can still write plugins
that doesn't sound like how it's supposed to go, but with ai more challenging and complex ways to accomplish the same things as before will become possible.
So I'm using the script inspector to know what is the "Skill Tab" menu. I see that they are indexed as "STONE" tab. However, I'm trying to dig deeper to know what are these numbers are when I open the tree. Anybody knows what they are being used/called for?
For instance: what does 914 means? Is it the enum for this particular tab? what's 71, 916 etc
seems for 914 is being used as an argument for [914, MIN_INT, 1130, 1]
914, 71, etc are script ids
Oh so it gets replaced
yes
wth is 40 and 992 😁 ? lmao
script ids
nono i mean like why there is 2 different ones for almost similar
just found it funny lol
?
so 992 triggers when mouse is in the skill STRENGTH
but when you hover outside of STRENGTH tab, i pressume it has an exit value from what skill it was, hence the script ID 40
one to add the tooltip and one to remove it
Ah, I wasn't looking good enough. I was looking the numbers in the API document, but not in the code lol
tyvm 😄
@Car-Role
Hey I am also interested, Discord is Rooxe
is Action Diagnostic not visible in the wiki? It says "You do not have permission to update this wiki" but I just want to see it
its not a wiki page
you only have that button because you are sideloading it
wdym sideloading it? like loading it from the side panel?
in the IDE
what even is action diagnostic
oh it is part of the actions progress dev path I guess
idk but i dont know how to use it to know what exactly does
anybody has the repo link for this? https://static.runelite.net/runelite-client/apidocs/net/runelite/client/plugins/devtools/package-summary.html
everything that has javadoc is in runelite/runelite
mb yeah, wasn't in the right directory lol
what are swing defaults? and what are they used for?
theming for swing uis
Hi, I'm just wondering if this is a issue I have created or if anyone else is experiencing this in the github plugin sidebar during development.
When hovering over certain parts of the plugin hub the graphic seem to be bugging out where I hover the mouse.
That’s the same !hw command to send through I think
Graphical artifacts? Try disabling hardware acceleration: https://github.com/runelite/runelite/wiki/Disable-Hardware-Acceleration
Thanks! I think I have fixed the issue now :)
Type
Incorrect behavior
Operating System
Windows
OS Version
Win11
Bug description
Example: Put "Burnt*" on highlighted items list, and "Burnt bones" on hidden items. Burnt bones should then NOT be highlighted but EVERY OTHER "burnt*" item should, since they weren't specifically excluded.
Screenshots or videos
No need - read description carefully.
RuneLite version
newest. any of them will behave like this. 1.12.20
Logs
No response
I'm trying to understand the args segment when the mouse is hovered on the skill. I was wondering where I can find more info of these args
These are pulled from the script inspector
A bit challenging than I expected
hey guys got a question if anyone knows, so i got a few test scripts ive been trying togethere to see if anything conflicts, - just wondering if theres a way to run the test script with a few working scripts, even if i have a broken one thats not finished - i tried obviously not putting the not finished plugin into the ExternalPluginManager.loadBuiltin, but wont launch unless i fix the errors or just pop it out of my files
Idk what you mean by scripts but follow the build guide for pluginhub
Are you trying to run RuneLite but with some things mocked in a test?
I don't think that's possible
idk what they’re asking for if they call stuff scripts.
my bad hard to explain, picture might help lol, -- so launching from here works ofc as long as all the plugins i have added are working. say i have plugin 1, 2 and 3 working and launching, but if im working on plugin 4 and its not finished yet, i cant launch even just putting 1/2/3 in my test launch - is there a way to completely disclude plugin 4 without having to move that plugin file out of that project folder
that was hard to word lol
You can continuously add more plugins to that folder and add a new entry to the test
I think they've got that working, they have a plugin that doesn't compile though and they don't want to have to remove the code
That's not how Java works
ExternalPluginManager.loadBuiltin(AnnoyanceMutePlugin.class, AnnoyanceMutePluginDebug.class); like this
that isnt the problem zom
O
yeah right now i got
public static void main(String[] args) throws Exception
{
ExternalPluginManager.loadBuiltin(MazchnaSkipPlugin.class,
DamnLolQoLTools.class,
Test1Plugin.class,
VisualSoundsPlugin.class,
Test2Plugin.class,
RuneLite.main(args);
}
They just have to fix the code
have a testplug3 class but that one isnt on there, but still wont launch with the other ones
Yeah either fix the code or remove the code
testing for conflicts on a few
ctrl+a, ctrl+/
plus i cant use my mazchna skip until its reviewed O.o
i mean on the base runelite with normal plugins
You can test conflicts without having to clone their code
They're saying they have to run the test
Just seems like you’re pulling in local code to adjust them for local use only
Like visual sounds idk
What conflict does skipping have with that
You're sort of overcomplicating things for yourself with the way you're doing things
sry im testing conflicts betwen my scripts, not the visual sounds one
And the being vague about things is also not helpful
Again with scripts, I’m not sure if you’re doing things the right way if you’re calling plugins scripts
That’s what cheaters call them
its a script of code tho?
Not everything is a script
java is not a scripting language
my bad, just always called any coding that, most of the guys i know do here too. thought it was normal lol
But really running a bunch of stuff together isn't a great way to find conflicts. You're much better off actually just looking at your code for the two plugins
Like what are these things doing that you think may conflict?
the one with all of the plugins that i run is because im usually doing slayer and using my submitted plugin, so i tend to add most of my plugins to that one, thought it would be easier for me tbh
im only checking my mazchna skip and one plugin for conflicts since they both highlight similar mobs
No that's just going to make a mess of things
this is actually part of your problem. Everything in your classpath has to compile
so its just best to test in a separate project to avoid any potential issues with multi plugins when testing
This isn't going to really conflict ever, at worst you just have things getting highlighted by multiple plugins
You should really have a separate project for each plugin
if you're in dev mode anyway you could sideload the jar for your other stuff that isnt on the hub yet
pretty new to intellij/git , got a link on where i can learn about the sideloading?
You really don't need to be side loading stuff for what you're trying to do
I just use gradle included builds to pull all of my local plugins (and RuneLite fork as well) into a separate project
That's more just for personal use though than testing
Like I said the "conflicts" you're concerned about aren't really an issue in the first place
true, if it doesnt glitch out or anything then no need for me to worry haha
thanks alot for all your guys' help 🙂
is component like a function call or something for java?
idk how does that line works exactly either 😂 like where is that clientscript even calling the component0 int1 component2 string0 string1 fontmetrics3 int4 from?
component means widget id
the client will download the entire cache/indices on startup today, right?
versus, like, the server just giving you whatever sectors you need for where you are in game
specifically map data (i think index 5?) and configs
configs are all aot
ok makes sense
that makes sense for maps, would explain why a lot of the really old caches on osrs.world just don't have a lot of map data, because it's whatever bobby pulled off his mom's 2004 optiplex at the time
is there any way to brute force that loading or do you have to crowdsource a full dump basically
from the client I don't think so
but the cache updater has stuff for it
this is what updates abextm/osrs-cache
ah ok
@Adam- I have thoroughly tested your version of this so I have now update the PR with your exact commit and also refreshed the branch master commit (5413f57). Reopening so it can be merged! Thanks Adam!
Sorry I forgot about this, I'll commit it now.
Search for mathiaslj returned no results.
Is there a way to get copilot on prs in a way that I can leave a comment on the pr and have it just make changes for me?
that seems like that would be useful
Oh yes, this seems better. And its good to keep the plugins consistent.
not sure if Copilot can, but Devin is a tool that works like that; it can automatically create a PRs based off of an issue, and comments added get worked on by it automatically
i absolutely dont want that
i want it so if someone submits a pr i can instruct the ai to make changes to it
i dont think copilot has the ability to commit iirc, you'd need some other tool to do that, like devin
Hmmmm
it seems it might be possible. you can give copilot custom instructions in an md file too
thats neat, didnt know about that. makes a child pr against the original pr
if you mean the runelite plugin update commits i would think that would be very difficult to setup this way since its a whole separate repo
you could also have it make suggestions and then accept them i think so it doesn't make a separate pr
why cant it just commit to the pr im leaving the comment on
i think you would need a combo of this https://docs.github.com/en/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review#using-copilot-code-review and custom instructions so it doesn't just make whatever random suggestions it wants https://docs.github.com/en/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review#customizing-copilots-reviews-with-custom-instructions
it cant commit directly on someone else's fork without their permission
child pr sounds better than seeing it fuckup and manually reverting things
if you open a pr it by default allows me to commit to your branch
so I dont see why this is any different
i think github right now deliberately avoids allowing AI to commit code directly for security/whatever concerns
you can use github actions and such to bridge the gap, or external tools
eg i want to be able to say like "delete this test" and have it just delete it
so i dont have to go switch branches, make the change, and push it
a suggestion is probably the easiest way to do that
you can just press merge on the pr?
ive never tried mutliline suggestions before, is that a thing
yes
mm
you can inline github comment kill an entire code block, hit apply suggestion, done
ill try that next time
Question, i opened a PR to someone's plugin and it's been there for a month with no activity - what's my next step in trying to get my fork merged?
They don't have their discord linked here. Not sure what other things I can do.
I guess I was wondering if there was any other steps beyond complete takeover, I suppose that really just means other ways of trying to get in contact with them, like their github email? Was curious if anyone had other experience like that- not trying to stalk someone, but would be nice to see if they want to continue dev on it.
Other than raising PRs and issues on their plugin, not really
It's not like the RL maintainers can force plugin developers to act
I did that already 😄
thanks, i took the open issue for collaborator route, will see how that goes
I'd like to make a small change to the RuneLite text boxes (i.e. not in-game ones, but the panel/swing views) to allow for Cmd+Backspace on macOS (to match system behaviour of removing all content in the text box).
I think it's probably best to set this up in FlatTextField.java since that seems to mostly be the extension point for other types of text boxes and thus this behaviour is auto-inherited. Does this seem like a good idea? This component hasn't been touched in years, so I assume there's been some discussion around maybe not adding this kind of feature here?
I see some discussions around keymapping in GitHub issues, these seem mostly to be around in-game text fields rather than the runelite ones.
Have an initial patch on my fork here: https://github.com/runelite/runelite/compare/master...NinjaLikesCheez:runelite:macos-cmd-backspace-keybinding?expand=1 Any feedback is appreciated!
Hi! I'm working on a plugin to log drop parties people host, and I wanted to add a icon similar to the FriendNotesPlugin to users in my friends list. However it seems to add more spacing than I would like and cannot figure out yet how to resolve this...
For in case my icon was the issue I decided to re-use the exact icon from the FriendNotesPlugin, where the first icon is the icon added by my plugin, and the second icon is the one from the FriendNotesPlugin.
This is the code I currently use.
I've tried changing the xpos += ICON_WIDTH + 1; to for example xpos += ICON_WIDTH/2 + 1; but that also doesn't reduce the spacing and seems to just offset the name change icon if there's one.
Can this be caused by some default spacing by the client when for example 2 icons are added in the text e.g. <img=409><img=409>?
And if so, any way to resolve my issue..?
This is the code I use:
@Subscribe
public void onScriptCallbackEvent(ScriptCallbackEvent event) {
if (friendHasHostedIconId == -1) {
return;
}
switch (event.getEventName())
{
case "friendsChatSetText":
Object[] objectStack = client.getObjectStack();
int objectStackSize = client.getObjectStackSize();
final String rsn = (String) objectStack[objectStackSize - 1];
final String sanitized = Text.toJagexName(Text.removeTags(rsn));
currentlyLayouting = sanitized;
if (getFriendNote(sanitized) != null)
{
objectStack[objectStackSize - 1] = rsn + "<img=" + chatIconManager.chatIconIndex(friendHasHostedIconId) + ">";
}
break;
case "friendsChatSetPosition":
if (currentlyLayouting == null || getFriendNote(currentlyLayouting) == null)
{
return;
}
int[] intStack = client.getIntStack();
int intStackSize = client.getIntStackSize();
int xpos = intStack[intStackSize - 4];
xpos += ICON_WIDTH + 1;
intStack[intStackSize - 4] = xpos;
break;
}
}
This is the issue I meant
It might be a combination of the code in the plugin + default spacing I just realized...
Am I the only one who gets their Var Inspector spammed with date/time/clock related Varbits/VarPlayers?
doesn't it allow you to exclude some ids
Just the script inspect
[ https://github.com/Enriath ] [ @grim laurel 85447424910323712 ] enriath.dev#0
Yeah <img> tags are 11px and all characters in text have a 2px spacing. Afaik there's not a way to get around that aside from maybe creating a separate widget for the icon manually
Type
Incorrect behavior
Operating System
Windows
OS Version
No response
Bug description
When having multiple bird nests with seeds in your inventory and searching only one, the game automatically continues to search the remaining bird nests in your inventory. The problem is that RuneLite's Loot Tracker plugin only seems to track the first bird nest, and not the auto-opened subsequent ones. Manually clicking to open them has no problem (disregarding the issue when open...
Briefly looking at the code, I saw that the bird nest loot tracking was being handled within the MenuOptionClicked event handler:
However, MenuOptionClicked isn't called whenever the game automatically searches the next items for you. Looking back now, I suppose any lootable item which the game auto-lo...
I'm scared to try and add support to a core plugin o7
I like to keep track of the birthday of my core PRs to celebrate their anniversaries
Docs: https://static.runelite.net/runelite-api/apidocs/net/runelite/api/events/MenuOptionClicked.html
MenuOptionClicked#getId is said to return "The ID of the object, actor, or item that the interaction targets."
MenuOptionClicked#getItemId is said to return "If this menu entry is an item op, get the item id"
Shouldn't these be returning the same values in that case? The reason I'm asking is because when I was debugging why a plugin wasn't functioning properly when clicking Search on an item within the player's inventory, it turns out MenuOptionClicked#getId was returning something that wasn't the item's ID, but according to the method description, it should be. FWIW MenuOptionClicked#getId was returning 2 while MenuOptionClicked#getItemId was returning the proper item's ID.
in this case id holds the widget's child id
Ohhhhhhhhhhh got it
I realized my build is breaking post gradle migration and I don't know if I did it properly. I'm supposed to link to the build.gradle.kts file, yea? Been a while since I ran from the RuneLite repo itself. Just fetched and rebased to upstream, and I selected build.gradle.kts but I'm having symbol issues and also a task wrapper issue for runelite-jshell and runelite-client 😶
Fixed. Solution: Make sure you're loading it fromt settings.gradle.kts and not the build 🤔
b89407b update bronzeman-unleashed to v0.2.0 (#11061) - elertan
d8501dc update boomerangbandits to v1.1 (#11088) - ostechgit
We'd welcome such a change, yes. I think mostly few (or none) of the devs play on MacOS regularly so we don't really come across a need for that feature
incidentally it seems like someone has opened a similar issue on flatlaf a month ago lol https://github.com/JFormDesigner/FlatLaf/issues/1095
whats the process for plugins getting approved, my codes been used in that new bank standing plugin and mines still waiting
You wait
[ https://github.com/calleb23 ] [ @bitter marten 211106677242593280 ] opaf_osrs#0
Are you talking about this: https://github.com/runelite/plugin-hub/pull/10722
If so, you closed it...
this one was just used in here
https://github.com/runelite/plugin-hub/pull/10829 i also have this one
Collection based game mode where collecting targeted log locked the rest of the log
Your GitHub account is new enough that a maintainer has to manually run some of the checks
yeah i made a new account to keep the names all consistent was a stupid idea....
Ah I see okay. Well FWIW new plugin requests is fair to say takes more time to be reviewed than plugin updates. All depending on size ofc. This isn't confirmed btw, but just generally seems to be the case.
One of those is from yesterday and the other had unaddressed feedback until yesterday
You just need to wait and be patient. The reviewers are all volunteers and there's a lot on their plates
Also I might be going insane, but why would you want to have a separate version of something you've already agreed to fold into another plugin
i didnt agree to fold it in i was trying to clarify he can have the same features
At this point it's not something we care about a ton anyway afaik
Two features can be implemented extremely differently and each plugin is reviewed independently anyway
The deluge of flipping plugins proves that, I think 🙂
anyway thanks for the feedback ill just be a bit more patient
You said "ok, go for it". So that's why i merged the bankstand tracker in my bankstanding plugin 🤔
yeah no thats my bad i misunderstood was happy for you to add the features to your plugin but i did mean to keep mine thats all, im completely new to this , and i dont work in tech so just didnt undestand
thats why i edited the message after to clarify
Ah, I did not see that 🫣
If you'd like, I can add you as a contributor straight to my plugin so you can alter its code and push changes straight to the remote?
Plugin hub readme states;
We recommend contributing to existing plugins if the author(s) are accepting contributions, and the feature you want to add fits well into the plugin, to avoid fragmentation of plugin ecosystem. Reducing plugin fragmentation helps users discover features more easily, and helps us review changes in a more timely manner.
yeah sounds good probably easier and stops the clutter
Which account(s) would you like to see added? Seeing as i noticed you use multiple
https://github.com/opaf-osrs this is the account im trying to stick with
as someone who prefers to develop on a mac and subsequently means playing on a mac in some capacity, as well as someone who always uses Opt+Backspace for single words, Cmd+Backspace functionality would be nice. Though I believe the recent "Modern Chat" plugin might have this solved: https://runelite.net/plugin-hub/show/modern-chat and https://github.com/BenDol/Modern-Chat. Though I do think bringing QoL features to core is always good.
has anyone here ever made a plugin related to PvM content? Like for instance you run a Zulrah session and want to do a plugin about Zulrah, what recommended approaches would you do?
RuneLite text boxes (i.e. not in-game ones, but the panel/swing views)
thank you 🤦🏼♂️
that's a very vague question, there are many pvm plugins
Mmm trying to think how to word it
typically there is no "i want to make a plugin, what should it do?" question, and instead there is a "this is what i want to do, how do i do it?" question
Ok, think of all the current PvM plugins, but look at Sotestgeg from ToB for this example. How do you get the information you want while doing PvMing at the same time? Do you like record yourself with some sort of debugger running (e.g. knowing the sound ID when he throws the big bomb)
ye
I can be more specific too if is not clear
Just add lots of logs, have the dev tools windows open etc
What exactly are you trying to do at zulrah? Because it's quite likely that anything beyond what's already available in a plugin isn't allowed
Also you probably should not be getting info like what is the sound of when he throws a big bomb cause I can only see that being used for rule breaking...
Well, not for Zulrah, but for Yama 😄
nothing to like improve, but to make it more fun!
like adding voice over, changing overhead text messages
nothing to be gamebreaking like the OG demonic gorillas, or OG zulrah plugins
Oh cool, I should look at their implementation recommendation to make sure I’m not doing something super dumb (not a Java dev)
I didn't look too closely at it, either way you can feel free to open a PR and we can look into it more closely there
our flatlaf version is also from Oct 2023 and idk how hard updating it is
weve never updated it before
Thanks! I’ll check out their implementation to make sure I’m doing it ‘wrong’ 🙂
Oh sorry I didn’t realise this was a downstream dep - can update saying to remove this code when it merges and is updated
That's fine; regardless, flatlaf doesn't seem to have that feature implemented anyway so even if we do update (whenever that might be), there's no telling if they'd have added it by then
Issue #19972 is caused by the ground items plugin allowing the same item to match both the highlighted and hidden lists without applying hidden as the final override.
This change makes explicit hidden matches win over explicit wildcard highlight matches for the same item and applies that rule consistently to overlay coloring, notifications and lootbeams.
Highlighted items overriding hidden items is intentionally how it works currently. Consider the inverse of your bug description:
I've hidden *bones* but added Hydra bones to highlight because I want to see those
So I think either way is valid and it's not clear that the way you are proposing is really better.
should it just be explicit > wildcard, in either direction?
yeah maybe
dont we have an old issue already discussing this
scary thing to change after 100 years though
Not sure if this is the intended result, but the ground items highlight list prioritizes over the block list. This isn't useful in any case but if the block list prioritized higher it would. Being able to highlight all grimy herbs using "grimy*" would be viable because you could then block the low-level herbs that you didn't want to see.
ron made a pr for it 8 years ago 
"explicit" is not the right word i think
exact
like I can see prioritizing non-wildcard > wildcard
that is what I meant yeah
Yeah that is probably a good solution I guess
I dont see a compelling reason to swap hidden>highlight in general
abex used "specific"
a specific hide makes sense over a generalised highlight
you want grimy herbs but not guams for example
Or you could just take the one that is longer maybe
hmm
I guess you would have to take the longest one, and if two match then take the one without wildcards
like if you have hidden bone and highlighted bones
you want the latter
if I highlight *bones but hide bones I would want Bones to be hidden, even though that is a shorter rule
oh
right yeah
so I guess take the exact match, and if there are none, take the longest wildcard then
right
distinguishing between wild and non wild entries seems enough
just tell them to use Loot Filters instead
rikten 
I think having highlight>hidden is expected and I don't want to change that globally. Having this prioritize matches that are exact (non-wildcard) matches over wildcard matches would be better and would address the concerns of #19972
fix(loottracker): Track automated bird nest searching (#19975)
- Added support for tracking the loot received from the next searched bird nest that's automated by the game itself
- Modified LootTrackerPlugin#onItemContainerChanged to see if a bird nest was searched by the game and whether or not to keep processing inventory changes while there are searchable bird nests remaining
- Added new test case LootTrackerPluginTest#testBirdNests
The following changes were made after notici...
This change adds the 'system' behavior of cmd+backspace in text fields for macOS (remove all text in text field) to the core/swing panels. I chose to add this feature to FlatTextField so it's inherited by (what seems to be) most of the core ui text fields.
This was discussed in [discord here](#development message).
Disclaimer: I am not a Java developer and AI tooling was used in this PR. However, the code was authored b...
^ I noticed while submitted this that there was a discussion on AI-authoring (https://github.com/runelite/runelite/pull/19836#issuecomment-3821302387) - this PR was assisted by, but not authored by, AI (mostly in helping me searching for appropriate spots to implement this and helping me find the appropriate APIs as I'm not a Java dev) - it was authored by me. I don't want to add to the mountain of slop, so if AI-assistance is also out of bounds for PRs I'll happy close this out, apologise profusely, and do what I used to before these tools: take a day or three to investigate what I want to do before I do it.
i would imagine this would go in our vendored flatlaf
I think this change is probably fine
#19836 was closed because it doesn't do anything and the author doesn't know that because they didn't write it
.. or test it
Ah yeah… im not looking to be that guy
Happy to try open something there if that’s determined to be the better path by maintainers!
no I dont want to update that it sucks
I did leave a comment in the code as someone else mentioned a potential issue in FlatLaf that could resolve it
you could submit it to upstream flatlaf if you want
that would probably be good in general
but idm also having it here
i would just not use fully qualified class names places that is an llmisim and is annoying to read
Let’s see how much time I have next week 😂
Do you mean like on Line 124? I’ll add an import instead (tomorrow, sorry the last time I wrote Java was 4 years ago for the Shortest Path plugin 😂)
Ah yeah I wrote it in VSCode initially and then read the setup guide for IntelliJ
And I have 0 setup for Java in VSCode
Reminder to self: don't use FQN here (per discord discussion)
revert(loottracker): Reverted ItemContainerChanged changes
Reverted the changes made within #ItemContainerChanged
fix(loottracker): Track automated bird nest searching onChatMessage (#19975)
- Added support for tracking the loot received from the next searched bird nest that's automated by the game itself
- Modified LootTrackerPlugin#onChatMessage to see if loot from a searched bird nest was received and call #onInvChange
- The message is also fired for the automated pro...
- Modified LootTrackerPlugin#onChatMessage to see if loot from a searched bird nest was received and call #onInvChange
wow this is obnoxious
😶
Type
Incorrect behavior
Operating System
Windows
OS Version
W11
Bug description
The March 11th 2026 update seems to have changed something to where multiple POH themes now use the cave skybox.
The update notes contain the line "Wilderness-themed POH Exit Portal should now appear more orange for all players." which may have something to do with it.
Asking others in my clan at least the "Basic stone", "Basic wood", and desert themes are affected.
Many are wondering why...
I should have used a color other than blue to take the desert screenshot but please note the sidebar showing blue as the underground color in the skybox plugin.
This was caused by a jagex update which moved the POH regions; it is already fixed in master by commit 2c3ff5938b52c03bdf21e6c46d110908d931a86f, and will be fixed in the next release.
slowly but surely chipping away at my dev build's merged branches list https://git.nightfirec.at/nightfirecat/dotfiles/commit/43bea61992b2fa690e7ea4b74067acc4ae1c6145
yeah I removed it from my local copy of the script but forgot to commit it for a while
Can’t you just use menu.getPlayer?
you mean menuEntry.getPlayer?
[ https://github.com/jeremybahadirli ] [ @lapis finch 286332077060784138 ] jer.b#0
@lapis finch fyi I took a look at your slayer name predicates PR and left some feedback. I think it'd be good to go after it's addressed.
Thanks I’ll take a look as soon as I can
I think having highlight>hidden is expected and I don't want to change that globally. Having this prioritize matches that are exact (non-wildcard) matches over wildcard matches would be better and would address the concerns of #19972
Sure. Then we ignore the change.
44e7243 hiscore: get Player reference from lookup menu ... - Nightfirecat
anyone know of any ingame sprites that look like this?👤 https://github.com/runelite/runelite/pull/19539 uses a fontawesome glyph, but if there's some ingame sprite maybe that'd look better
I've been scrolling through them all but haven't found anything yet
?
hmm maybe
maybe one of the cc rank icons or something
the problem with those is they're very small
could use a chathead
as an aside, it's crazy how many sprites exist for each league lol
yeah

that's sprite 1707, maybe the best one so far actually
I said sprite, not item
hey, it can be made into a sprite
I guess an item might be fine since you'd necessarily need to be logged in and have item cache loaded to view the world map
what about the sidebar though
tru
fallback icon for the fallback icon?
Do what every llm does
you don't need to be logged in to render an item
Draw it with swing
Make up a sprite that doesn't actually exist?
That icon would be fine, though it would be nice to use some osrs-themed sprite, preferably one in the cache (such as sprite 1707) or an item image. (there are few items resembling a player bust; the recipe for disaster heads are close but not quite what we'd be looking for)
That aside, I'll take a look at the implementation more closely this week.
i am attempting to edit grounditems to do this exact-match-over-wildcard thing and now I am editing ground items which is unfortunate
im always like maybe 60% sure edits to this are right
eventually we'll need a test suite to validate the behavior lol
honestly I'm surprised we haven't added one yet given how much we try to avoid changing the behavior as-is
it has a single test!
Is there a game or client setting that would be preventing colors from getting parsed?
I'm just getting <col=22b222>thisisastring</col> in my game chat, rather than having it change the text color
Yup!
There's an alternative append that you pass a color with it, the normal append escapes the string
Yeah, I just saw that. I had been using the ColorUtil function directly. I'll swap over, but I don't think that'll change things?
it would stem from you calling this public ChatMessageBuilder append(final String message) I believe
ah. in regular append:
builder.append(Text.escapeJagex(message))
that'll do it.
Good stuff, thanks Polar
man i even broke the one single test
i replaced the wildcard matcher with equals() sometimes but i needed to use equalsIgnoreCase it seems okay
so the single test is actually useful
I did not test this at all https://github.com/Adam-/runelite/commit/25196dfb1cbd64b4f83dc946051d20846c2acd8a but it might work
fun fact these were initialized to cowlists despite only ever being reassigned to
https://github.com/runelite/runelite/commit/b24a99626334cf91d0f8835dd1a01f9031edf6eb the commit adding them doesnt even make sense either
stuck around for the best part of a decade still
at least its extra threadsafe and not unsafe
theres this semi elaborate LoadingCache stuff from back when this used to get hit per frame
but now it does not so I just deleted it
if there are any sophisticated grounditems users here who want to try and break this that would be helpful
Blame db!
It's been a while since anyone's been able to say that
@Hallako sadly it just happened again with those settings..
I was wondering if there any guidelines regarding storing /loading a lot of data. Think loot tracker plugin but then with 10x as much items and 10x as much monsters. (Drop party plugin where i store the hosts, session/drop party and the dropped items)
Not sure how big of an impact it has on like memory and performance and all that / if it's even worth spending time getting that handled properly.
Right now i store a list of owners, sessions and items as separate keys, but of course the items will grow very big.
Not sure if it matters whether i store the items categorized under different keys and then only do a config.get for for those items when i need it. Or whether runelite loads the entire config file in memory no matter what.
Some data-heavy plugins rely on SQLite for their data - see @rugged pivot's Not Enough Runes plugin as an example https://github.com/Hannah-GBS/notenoughrunes/tree/main. I suspect if you'll be storing a lot of data, that'll be an OK approach
I was thinking maybe it's possible to specify that my plugin uses different files. So that by default only basic data is loaded in.
Ohhh, chatgpt suggested that but I couldn't really find much about it in the runelite project so thought it just hallucinated! I'll look into that!
it's been a hot minute, but working on the plugin again, I can't seem to get it to launch, I just get 'Failed to login'. Do I need to do the key thing?
regen your creds
Huh, weird. Maybe we are seeing two different problems... I haven't had the FPS drop / screen freeze since downgrading drivers.
Highlighted items overriding hidden items is intentionally how it works currently. Consider the inverse of your bug description:
I've hidden
*bones*but addedHydra bonesto highlight because I want to see thoseSo I think either way is valid and it's not clear that the way you are proposing is really better.
the point would be specificity > generality/wildcards in either scenario.. problem solved then.
Weird that in all cases fps stalls to exactly 12fps, and in some cases also Windows stutters at well below 1fps. Most likely cause definitely would be issues with driver, but what causes it to break is the question.
@koenvanzuijlen maybe try just upgrading to latest driver first. Then setting the power setting could help, as commented in the driver thread. Als...
anyone know how status bars gets the healed amount from food? is that something available game, or do they just have a map of pretty much every food available
where is the instance of this? It's a singleton, but I can't find where it's located
or do I need to impliment my own
I think you can just inject it
not used to injecting, that's new to me. And I've been digging around, but the plugins I know that use this are private
you @PluginDependency(ItemStatPlugin.class) then @Inject ItemStatChangesService
you need to plugin dependency a core runelite plugin?
Hmm, then I should also be able to inject into the hitsplats system, right?
in vitality, I had to fake hitsplats a sprite, but if I could interact directly with hitsplats, I could replace them
I don't think we have an api for creating hitsplats
I am having the same issue since switching to Linux. Please somebody tell me there is a fix for this.
I've made a change to prioritize exact matches over wildcard matches, if you can test it that would be helpful https://github.com/Adam-/runelite/commit/44a2ca32fe2bec466e5476fd24f1c948adf48d91
so you can create hitsplat objects, but you can't inject them into the hitsplat manager
I think the extended hitsplats plugin also just fakes it
they are just fakes
that class is only for the api
and going to become an interface soon
I have a few questions just to try and understand like what is and isn't allowed and why.
One big issue with the friends-chat is that the number of bans is limited to the owner's ignore list. I saw an autokick plugin rejected, which is really sad cause for this use-case, jagex should have simply implemented a better way of handling bans. But... I understand that it's automation that sends requests to their server and that it would need to specifically be allowed only for that use case, so.. I get that.
However I was wondering if it's possible to show a list of players "marked as banned" that joined in a ui where you can simply click those names to kick.
That would be the same as kicking a player manually from the friends-chat panel. Or... Is that immediately not allowed due to "Any feature which... Adds additional menu entries which cause actions to be sent to the server" under the menu category?
It's not a right click option, but I can imagine that's also not allowed...?
As an alternative, I'm wondering..
Can we look at the friendschat, press a key, and hide everyone who's not in the "ban list". So you only have to spam click at 1 spot to kick all of the users out?
And just trying to understand the whole entity hider situation for offline friends. As you can still show specific people by adding them to the ignore list. You would still "not respect their privacy settings". But if the hiding of ignored players were also not allowed, it would probably create a gray area in terms of... If even that is not allowed... Then what is..? Hence the reason to allow it..?
And in terms of why that is allowed, and the showing offline friends isn't, is the reasoning behind it something like: "The option to be able to show nearby ignores (ragger, stalkers), outweighs the situation of your privacy settings not being respected by the same functionality being used in reverse"?
i want to say the ability to only see ignored people is an oversight and actually a bug
as for the kicking thing, your "alternative" sounds viable to me
It was mentioned in like 10 GitHub issues / PR's though it seemed like when I searched for it. So also doesn't feel like an oversight in that regard..
yea i know, we had a discussion not too long ago about it and it caused some friction
alright, so I've ran into a bit of a snag. The system for extra effects works perfect for the heals/prayer etc. Even bluefin triggers both. however, antelope is triggering a false double heal because the consumable reports both heals at once
time to write some code
I can definitely understand that hahah. For me I'm just trying to understand the reasoning a bit more, whether i agree with it or not. It's just nice to know how Jagex and the main Runelite devs think about situations
I think I know the answer to this but I’ll just double check. There’s no way to get a NPCs HP that doesn’t have a visible health bar, correct?
correct
In our bronzeman unleashed plugin, we are developing a potential fresh start mode. It snapshots the bank and changes the quantity displayed to '0' for every item. When they deposit unlocked items on a stack already in their bank, we clamp the withdraw-x chat field. So if they type 600 and only have 300 deposited, it clamps the text to 300. Is this allowed? Otherwise they could just withdraw their whole stack and the game mode is impossible. The use case is for clan bingo/from scratch youtube videos/a player not wanting to sell everything in their bank to start bronzeman. https://github.com/joffewilliam/bronzeman-unleashed/blob/feat/freshstart-squash/src/main/java/com.elertan/policies/FromScratchPolicy.java
Would of asked sooner, but I thought there might of been as easier way, we still can't figure out withdraw-all, so we just disable it right now
Type
Incorrect behavior
Operating System
Windows
OS Version
windows 11
Bug description
big bones are not on my highlight or hidden, i have reset the plugin and cant seem to figure out how to get them to not show up in red text
Screenshots or videos
RuneLite version
1.12.20
2.7.5
Logs
No response
no logs but i think they just recolored it
Did you set the color by shift right clicking the item and picking a color?
<img width="624" height="391" alt="Image" src="https://github.com/user-attachments/assets/cd46dc68-e2f3-4756-aa3b-452ee256e924" />
For more troubleshooting steps you can join the Discord server.
c278475 add world-map-player-indicator (#10887) - jpsummer
late response, but that seems fine
Hey, quick question... is there an Etceteria item ban plugin that shows which items are disallowed? And if not, would it be OK if I create one or is it against any rules?
Jagex's third party client guidelines: https://secure.runescape.com/m=news/third-party-client-guidelines?oldschool=1
Additionally, these features have been rejected or removed from RuneLite: https://github.com/runelite/runelite/wiki/Rejected-or-Rolled-Back-Features
Oh entrana
yep
I don't see why that would be an issue
There is already one... just couldnt find it due to mismapping the island names in my head (https://runelite.net/plugin-hub/show/entrana)
is this normal when updating the version number in the build.grade? first time doing it, or am i doing something wrong
That looks like it's probably coming from an intelliJ plugin you have installed
hmm only have what was on intellij by default, but if i commit and push it wont effect the plugin will it?
2 vulnerabilities found in dependency:
CVE-2023-6378
7.1
Transitive Deserialization of Untrusted Data
CVE-2024-12798
6.6
Transitive JaninoEventEvaluator vulnerability
from this part
testImplementation 'junit:junit:4.12'
testImplementation group: 'net.runelite', name:'client', version: runeLiteVersion
it does give me an option to report it as false/positive
just ignore that
ty ty
I was wondering, is there a reason that the HiScore plugin doesn't have a config option to optionally require a key to be pressed to add the menu right click player menu option..? (it's extra code, takes time to write, so if it's just that, that's also a very valid reason lol)
I just realized how annoyed i was by the number of options when right clicking
so im still kinda new to git, i just used the update method from the pluginhub page
# Only necessary if you have not set it before
git remote add upstream https://github.com/runelite/plugin-hub.git
git fetch upstream
git checkout -B <your-plugin-name> upstream/master
# update commit= in plugins/<your-plugin-name>
git add plugins/<your-plugin-name>
git commit -m "update <your-plugin-name>"
git push -f -u origin <your-plugin-name>
but instead of updating my update post it made a new one and updated that one instead, how should i keep submitting to the same one?
After an update is merged you’ll always make a new PR. If that’s what you’re asking
it did the first time, but then i submitted a quick update and now i got 2 open pages
you can close the invalid one (#11118), the new one (#11120) looks good
will do thanks 🙂
for the branch conflict i had, im assuming thats just updating the plugin branch before pushing my update right?
I'm trying to render the friendsChatIcon in a menuEntry using the following code
clientThread.invokeLater(() ->
{
final BufferedImage image = spriteManager.getSprite(SpriteID.SideIcons.FRIENDS_CHAT, 0);
friendsChatIconId = chatIconManager.registerChatIcon(image);
});
<img=" + friendsChatIconId + ">"
But it doesn't seem to work.. It's a different sprite every time this invokeLater is called. As if the sprite does get added, but the wrong id is returned. Any idea what might be wrong here? 😄
the conflict is because you opened the first PR from the master branch
which was missing all commits since the last PR, including the PR from yourself for that plugin
ahh got it, didnt even notice i did it, and no idea how i changed it after 😂
Ahhhh forgot the chatIconManager.chatIconIndex() wrap
b2d7af8 Update mazchnaskipping to v1.2.1 (#11120) - DamnLol-GIT
Type
Crash or hang
Operating System
None
OS Version
No response
Bug description
Can't Hide Minigame Teleport on Spellbook (spellbook plugin?)
Screenshots or videos
No response
RuneLite version
newest
Logs
No response
Crash or hang too
hi, I put up a collaborator request for the bank memory plugin (https://github.com/Lazyfaith/runelite-bank-memory-plugin/issues/34) and have not heard anything in 6 weeks. seems someone also tried to takeover late last year (https://github.com/runelite/plugin-hub/pull/9524) but the author is still ignoring open PRs (https://github.com/Lazyfaith/runelite-bank-memory-plugin/pull/33)
should i go ahead and make a PR to point the plugin at the same commit in my github?
It's fine to continue to step 2 of the Plugin takeover policy, yes
Anyone here know how the TOA unique notifications work in Dink? Got a couple of questions.
I'm sure someone here does but pretty sure dink also has a discord
Dink doesn't really have a dedicated discord server, we would usually hang out in pajlada's twitch offline chat and if needed, set reminders to each other via a local chatbot
Thank you
feel free to dm
hey, after adopting a plugin I forgot to edit author metadata; previous owner has had all their plugins bundled in one repo and I switched to just having 1 repo dedicated for the plugin
for this, is editing rootProject.name in settings.gradle file safe to do so? along with author field in runelite-plugin.properties, do I need to acompany this with another change somewhere?
What kind of things would cause a config sync error? Are there size limits? I got a user with an issue. Log file shows {"rev":1,"failures":["watchdog.alerts"]}. He said that after deleting some of his bigger alerts, it started working (for now) so that's why I was thinking some kind of size thing.
yeah, there is a size limit of around 100k iirc
those are independent fields and safe to edit
Bytes or characters? Either way, I should probably start saving the json compressed
Wait I'm dumb, characters are bytes...lol
I'd like an update to my open PR, but I don't think anyone would see the comment in the PR itself, therefore I post it here
https://github.com/runelite/plugin-hub/pull/10793
This plugin allows you to rebind the middle mouse button to an additional button for free camera movement. Press the configured key and then move your mouse to freely move the camera.
People absolutely do see comments on PRs
reviewers get notifications on changes generally
we also see your comments in #github
you are kind of just in a long line
Your build was also failing until two weeks ago and you aren't really in line until the build is passing
in the future just let your pr sit if it is ready, otherwise you are sending your plugin to the back of line for most reviewers
why did the plugin get disabled? @rancid marten
anyone know what this falls under? didnt manage to find anything with dev tools 🙁
It’s doing a bunch of automated clicks on some stuff
i have it auto switching private off-on for screenshot, is it against ToS?
Almost any use of menuAction isn’t allowed
understand, is there any other way to switch it without menuactions?
No but you could hide the private chat instead
i thought about doing that before, but i could only make it work if private split chat was being used sadly. I will make the changes back to that then
thanks
I got a warning on my PR https://github.com/runelite/plugin-hub/pull/11116
Use of java.lang.Exception.printStackTrace is not allowed: system i/o, use a logger instead.
I assume it's for this (which is not new):
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
JTextArea textArea = new JTextArea(sw.toString());
I'm writing to a string; this is not system i/o. Is this a new check? Will my PR be ignored until I change it or can I ignore the feedback?
Maybe @tulip wagon can fix it to only warn for the ones which go to stderr
that was fast, thanks, does it take some time to reappear in the hub?
No
was removing disable=true enough? or do i need to set it to false instead?
removing it is enough, it did not have it before and worked as expected
the reason why its not showing up is gh actions just timed out
they got some blog i didn't read about why actions have been shit the past month
gotcha, thanks for letting me know
should be good now pine re-ran the action
yup perfect, many thanks guys
Because actions is like 2 people if that probably these days
Actions was already on life support when I still worked there and that was over a year ago
that was what i figured but i didn't read the blog since i assumed it wouldn't say "everything is AI now so nothing works"
yeah 2 people, claude sonnet and his cousin claude haiku
(and the latter was clearly a nepotism hire)
Leadership has been a rotating door there since like 2023, or earlier depending who you ask. The company has lost it's goal and way in the shuffle
That's the real answer the blog won't say, imo
I saw someone mining at MLM with this pickaxe https://oldschool.runescape.wiki/w/Dragon_pickaxe_(or)_(Trailblazer)#Trailblazer_Reloaded and noticed veins were not starting to deplete in the plugin. It looks like it is a separate animation id that I was able to grab with the creator's kit plugin.
https://github.com/user-attachments/assets/b3b1c34a-b945-48f7-b1bb-2621b5fc4a04
Is there any update on this? or is it simply in queue for review/adding? really nice feature
Type
Incorrect behavior
Operating System
None
OS Version
No response
Bug description
The Minigame Teleport spell cannot be hidden/unhidden on Standard, Ancient, or Lunar spellbooks. It only works correctly on Arceuus spellbook.
Root cause:
The Minigame Teleport spell is unique - it appears on all spellbooks but uses different spell IDs (33138-33141) while sharing the same widget (14286856). During initialization, each spellbook's OpListener overwrites the previou...
Problem
The Minigame Teleport spell is unique - it appears on all spellbooks but uses different spell IDs (33138-33141) while sharing the same widget (14286856). When each spellbook initialized, the OpListener was overwritten, with Arceuus initializing last and capturing spell ID 33140. This caused hiding/unhiding to only work on Arceuus spellbook.
Solution
Build a lookup map (spellIdsByWidgetAndSpellbook) during initialization to store spell IDs per widget per spellbook. The OpL...
anyone who has used the projectileMoved event know why the projectile's source actor is always null?
target actor seems to be working tho
feat: CyberWorld MMORPG rebranding & technical overhaul 😂
>Checks repo and Personfu/copilot/
Classic
Could anyone help me with if this would be within the rules -- Sorry if this isn't the right place and for such a long message.
Functionality:
- User can press a key, causing a countdown to start for a configurable number of ticks.
- User's attack speed is checked, along with the tick they attack on.
- A "tick fix" is suggested, allowing the user to hit on the last possible tick in the countdown (e.g. claw, ayak or bp once to hit on the final tick).
Possible uses:
- User presses key at the start of each zulrah phase. They get an extra hit in sometimes with a different weapon by tick fixing.
- User presses a key at the start of bloat's down. They can now fix to make sure they hit on the last possible tick before bloat starts moving again (reduced damage).
Lots of others time based mechanics, those are just 2 that are very easy to explain and come to mind.
Rules/Concerns:
- Indicates the time where a boss mechanic may start or end -> The plugin isn't indicating this directly, it's simply a timer that the user configures, and sets. It does however achieve this end goal. So does every timer plugin though.
- Adds additional visual or audio indicators of a boss mechanic except in cases where this is a manually triggered external helper. -> This is the very next rule after the above, and seems to carve out an exception for our case?
This feels iffy at best imo and because it's checking the player's attack speed I think it does a little too much to fall under the manually triggered helper bit
Checking attack speed could be moved to settings, the integration that's crucial to this is checking the tick they're attacking on. I'm guessing thats the same from what you're saying though.
You can use a keybind to reset visual metronome so step 1 feels the same to me
Effectively
- Timer Plugin
- Attack timer metronome
- Do basic math
This would just be automating #3
The "tick fix" feels not ok
Has this been released? I have change my FPS back to 120 and it's started to flicker here. Sorry for the ignorance, having an bit of a problem determining if this has been released or not
Not yet, no - it's been merged but still needs a snapshot or release to come out with the change included
What is the best way to test a feature that uses the party system? I need to quickly be able to launch 2 clients using the same plugin jar with different characters.
--profile can't change character though can it?
login to a different character?
As I understand if I use --insecure-write-credentials and make credentials for each character there's no command line flag to specify which credentials to use
i just save the file and swap it out
so I'd have to rename them each time I want to restart
Change your home dir for each one
If that's the best that can be done it's OK, just curious if there's better
how do I change home dir?
-Duser.home iirc
that's the path to .runelite?
no its the path to your user.home
Do credentials ever expire?
Home dir is working well. Thanks @oak rock ❤️
Stolen valor
and Ron ❤️
Is there a way to detect if the party plugin is installed & enabled? So I can disable party-related UI if party plugin is not enabled.
Looking to see if there are any additional thoughts or input on the design of this to refine it any further. Willing to make contribution to a nonprofit of runelite team's choice to get this reviewed
I bought my own ornament kit and filled in some other missing animation ids where there were already the respective dragon tool (or) animations in AnimationID:
Mining a crashed star:
<img width="224" height="191" alt="Screenshot 2026-03-19 164113" src="https://github.com/user-attachments/assets/d00190e9-28f3-48d4-90df-7976d0308873" />
Chopping a tree:
<img width="209" height="240" alt="Screenshot 2026-03-19 164233" src="https://github.com/user-attachments/assets/be9d365b-c36e-4582-9fc...
Is there a way to programmatically set whether the player will run or walk when they move?
These IDs are already defined in the gamevals package at net.runelite.api.gameval.AnimationID, specifically:
public static final int HUMAN_MINING_TRAILBLAZER_RELOADED_PICKAXE_NO_INFERNAL_WALL = 11827;
public static final int HUMAN_MINING_TRAILBLAZER_RELOADED_PICKAXE_NO_INFERNAL_NOREACHFORWARD = 11839;
public static final int HUMAN_WOODCUTTING_TRAILBLAZER_RELOADED_AXE_NO_INFERNAL = 11940;
Moreover, we usually do not add API constants for hub plugins; they can define the...
no
is it against rules/guidelines to have a plugin virtually press and hold ctrl?
I'd think so, yes
In my research I have not seen anything that specifies this but it might just be because I want to believe. Does anyone know of any documentation that might tell me whether or not having a plugin press and hold ctrl is allowed?
Jagex's third party client guidelines: https://secure.runescape.com/m=news/third-party-client-guidelines?oldschool=1
Additionally, these features have been rejected or removed from RuneLite: https://github.com/runelite/runelite/wiki/Rejected-or-Rolled-Back-Features
unfortunately I have already read through both of those links and maybe I am reading it wrong but I don't see anything that addresses my concern
having a plugin press a keybind for you is basically the definition of botting no?
anything providing automatic keypresses is against the rules... yes
thats what I figured. I was just wondering why documentation didn't seem to say those words but I guess botting does cover it.
probably because of the "this is not exhaustive" section
with a game over 2 decades old, I was just hoping that maybe an exhaustive list would exist by now.
oh my goodness no
Wasn't there some talk recently about updating the third party client guidelines?
Ah somehow I missed the big @deprecated tag in this file, I also didn't realize there was a much more complete list elsewhere.
Thanks for the pointers and appreciate you taking a look at this!
i think goblin said something like that b/c of the hallowed sep plugin loophole but idk if it happened
After looking at it again, I agree that your naming is better.
Separated the plugin changes, new task predicates, and new tests into separate commits as requested.
Added predicates to fix the following tasks:
- Cave kraken
- Kraken boss
- Cows
- Crabs
- Elves
- Vampyres
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 11
Bug description
The plugin is highlighting the wrong object/npcs/item when clicking 2 different things, for example clicking to pick up a drop right after clicking on an npc will highlight both the npc and the item on the ground
The best way to reproduce this I found is trying to pick up an item will a full inventory while attacking an npc
Screenshots or videos
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 11
Bug description
Attempted to use the ProjectileMoved event to find whether or not the player has created it. (projectile.getProjectile().getSourceActor() )
Tested with various magic projectiles from both the player casting it and from an NPC.
Tested will all plugins disabled except fresh example plugin (to output projectile information)
Screenshots or videos
No response
RuneLite version...
ebc03d9 Update action-progress to v1.27 (#11153) - guillaume009
Type
Incorrect behavior
Operating System
Windows
OS Version
windows 11
Bug description
agility plugin has the incorrect level for this shortcut
Screenshots or videos
https://github.com/user-attachments/assets/ee1e96b3-623d-4f09-8793-23319ae2edbc
RuneLite version
1.12.20
2.7.5
Logs
No response
2884 nor 2885 are the coords in this file so i'm just going to close my eyes and assume rhysdog is crazy
maybe the obj is reused from somewhere else with that level?
oo ok
that's fine then
objects maybe just changed cuz i feel like these haven't been wrong for 7 years
but who knows~
I have a question. I got the example plugin compiling and running through Intellij. Is it possible to run the plugin in the official client without launching it through Intellij? I want to ideally launch it through the Jagex launcher and have it be like any other plugin.
If the plugin is useful for others, consider publishing the plugin to the plugin hub. That'd be the path-of-least-resistance imo
I agree. But I would like to do long term testing of the plugin before considering polluting the hub
You could built a shadow jar
Run gradle shadowJar to generate a runnable jar in build/libs/*-all.jar. You can run the jar with java -jar -ea jarName.jar. If you run into problems, update build.gradle to the latest plugin template version.
I did that but placing it in the plugin folder didn't show any results
Read the second portion of that message above
It's not as simple as just running the jagex launcher, but it's maybe nicer than having intellij running at the same time
Dang well alright thanks. I was hoping that wasn't the only option but I guess it is.
Hey all, I'd like to contribute to the chat notifications plugin (but that falls under the build-in Runelite plugin it seems). I started using this plugin like a week ago when starting slayer and I'd love more customization. Currently all my highlights are 1 dark screen colour with Notify on highlight, but I would love 1 colour for my highlighted drops, 1 colour when my goading potion stops working, 1 colour when my antifire stops etc. I made a concept drawing and I'd like to hear what you think and if I can try to built that in. 2 images attached (current plugin interface and concept for new one)
hmm yeah there really isnt a great way to achieve something like that I think
you could do that (have like 3 separate highlight lists + notif settings) but then someone will want a 4th lol
i think the force recolor hub plugin can do this?
it doesnt notify but it does recolor
Time for a new setting/layout 👀 accordion list or w/e the appropriate name is for a thing similar to Radius Markers panel options
if im going to do any new work its going to be that sidebar reorder thing probably
Is it against ToS to consume a click on an object conditionally?
I would think so, but that’s a super vague question
We raised this to Jagex and they said they're going to fix the widgets to not get reused like this, so I might just wait for them to fix it.
For more info, clicking on the mastering mixology deposit without the requested potions
@random narwhal can you test https://github.com/runelite/runelite/pull/19978 ?
Under rejected features is menu entry swapping
Basically the same thing here
(?)
Not sure, maybe there’s more nuance
https://github.com/runelite/runelite/wiki/Rejected-or-Rolled-Back-Features#menu-entry-swapping for context
even though conditional menu swapping is on the list, i thinik there are some plugins that do it like that ess pouch plugin
lol
cg plugin "no raw fish" option too apparently
construction qol just got contextual swapping for log basket last week 😄
Interesting
maybe the context of contextual swapping matters
it works, tested on the plugin settings search box and timetracking timer text
it doesn't work on text inputs in the plugin settings though, it would be nice if it did, but theyré presumably not FlatTextField
Even better 🙏 Thanks for your work
I would love you forever
is the /shadowjar help message out of date? I don't see any generated jars with *-all.jar in any of the build folders. These are the ones I've found (intellij search excludes build folders 😥 ) but I'm not a java dev, so I'm not sure if there are more build/libs/ dirs that I couldn't find
cache/build/libs/cache-1.12.18-SNAPSHOT.jar
runelite-api/build/libs/runelite-api-1.12.18-SNAPSHOT.jar
runelite-client/build/libs/client-1.12.18-SNAPSHOT-shaded.jar
runelite-gradle-plugin/build/libs/runelite-gradle-plugin-1.12.18-SNAPSHOT.jar
runelite-jshell/build/libs/jshell-1.12.18-SNAPSHOT.jar
Run gradle shadowJar to generate a runnable jar in build/libs/*-all.jar. You can run the jar with java -jar -ea jarName.jar. If you run into problems, update build.gradle to the latest plugin template version.
the client shaded jar should be what you want
ah, you're right. I realized they were talking about a plugin. I was seeing if it was possible to create the same shadowjar to use my sidebar changes but it's not a plugin. Thanks for the tip ron
running the shadow jar works great. It didn't bring in my plugins, but adding the VM option -Drunelite.pluginhub.version=1.12.18 from the run configuration to the command has it working great.
Full command for anyone wondering or searching in the future: java -jar -Drunelite.pluginhub.version=1.12.18 -ea /path/to/client/shaded.jar
yes
Thank you for your infinite wisdom Ron 🙏🏼
hmm that was a good tip, but I play with the chat box hidden (or wouldn't even note the small chat message) and it doesn't seem to have a functionality for full screen notification
I will see what I can do, maybe a max of like 25 notifications and dynamically show the extra highlight checkboxes
I’m not sure I want something that convolutedly complex in a core plugin or not lol
with core plugin you refer to the build-in runelite plugin of which this is part? Maybe then I could make it simpler with just numbers 1 to 5 or something and otherwise try to make my own plugin for it?
If you wanted something super extensible the best thing to do is make your own plugin panel for it I think
my WIP plugin's plugin panel has a list selector that lets you add/remove things, something like this could work for making n different notifications
what plugin is that from?
my not currently released Nameplates & Hitsplats plugin
I do not know yet how developing a panel actually works. I think I will try to make a new plugin for it. Getting the general big Runelite repo working in IntelliJ and VS Code seems impossible for me with a bunch of errors everywhere
Ai tools are as good as anyone at generating kind of working swing code lol
it took me hours to figure out what was wrong with my (extremely) simple plugin panel, swing sucks
*Anyone not named Gnome
I'd guess you probably need to install the extension pack for Java so it has lombok support
Oh yeah gnome is really good lol
Good, nuts, potato potato
I already have multiple. With the official Java one I have an error since I am using JDK 11
Same bro i tried installing the extensions in VS Code and it made my git clone button not work, it instead just reopens my existing local branch
Stick with IntelliJ if you can; it's awkward af to get used to coming from VS Code but you'll have a much easier time getting it to work at all lol.
what would the world be without ide's
85b807b Update wiki data - RuneLite Wiki Scraper
does anyone with the actual client code have the exact hitsplat rendering code? I want to anchor to the existing hitsplats so that they work in any orientation
what is a hitsplat orientation?
or you want to overlay over a hitsplat and want to know where they draw it?
Hey just noticed that the camphor crates are misplaced as they are definitily crafting req/xp and were misplaced into construction. Am I free to make a pr for that? first time contributing and wanted to make sure it was a oversight.
if you think it is an oversite a pr with the fix and that as evidence is enough
it was added in a PR adding all sailing stuff so it was probably just a misplace yeah
b1a8125 update pvp-performance-tracker to v1.7.2 (#11107) - Matsyir
I noticed making my first batch of crates, and then going to calc some construction stuff that this was misplaced.
I've moved it into the crafting section, this meant I had to change the args as it changed from named to item. I also marked it as a members action, the surrounding items dont seem to respect that arg (fire battle staff action is def members) so im unsure if I made a mistake there.
I haven't actually built it yet and looked, as it seemed like a small enough change, let ...
I probably overlooked that when I reviewed the big sailing calc PR, I'll look that over tonight
1/106 aint bad
@final crater your PR is failing tests; specifically, the added line needs to appear in level and exp order, so it needs to be moved up above green d'hide shield
oh neat i looked at actions for unit tests on other prs and didnt see them, sry i opened the pr and didnt see if they passed. will get that in a bit.
yes, offset or whatever the word is
@FalloutFalcon
I also dont know if there is a scheme for sorting outside of level and maybe xp so i just put it a the bottom of the 62 section.
Order goes Level -> XP -> Alphabetical
My bad, must have seen the nails and for w/e reason mentally mapped it to construction
I've moved it into the crafting section, this meant I had to change the args as it changed from named to item. I also marked it as a members action, the surrounding items dont seem to respect that arg (fire battle staff action is def members) so im unsure if I made a mistake there.
No mistake on your end, the member/non-member thing is very spotty in terms of accuracy, few contributors to the skill calc have been respecting it, so overall it needs one big revision to fix them all up. Has...
No worries
Hey! I have some additional breaking changes planned for my plugin that has yet to be reviewed. Shall i put the initial PR in draft or close it an reopen when im done?
Up to you, either option is fine
i will probably fix it during leagues
too much effort to check why its broken on main game
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 11
Bug description
During Friendly Ent forestry events, you clip the branches of entlings.
When correctly clipping the branches, a game chat message appears in red that says "You've killed an Entling for 0 loot." at the end of the event, another similar message appears in red stating the actual amount of loot you collected for the event.
The bug appears for the first of the two above.
When this messa...
I second this.. i saw the same issues as well.
<img width="251" height="819" alt="Image" src="https://github.com/user-attachments/assets/f5699c46-763e-468b-9eae-7bc0b2397112" />
These were not wiped they are just no longer valid as the markers are saved to the exact coordinates the relevant tile/object sits on, and in that game update all of the PoH's were moved by Jagex, meaning the coords we have saved are no longer the correct ones.
It was colored! thank you so much @jzomdev!
@im2be, thank you and good eye! that was a silly mistake to take the ss with that in there, i had been playing with it every which way prior for ages.
thank you guys
<3 a noob
I made a change to a plugin I want to test out, but when launching it in test it launches with this. These accounts aren't supported anymore, you can only use jagex accounts right?do I need to update it somehow?
...no?
you'd definitely know if they banned legacy accounts from playing, people would be very very mad
it's not officially banned but when you download runelite you can't login to one and are forced to migrate, and I can't create new ones, so they're effectively EOL for me after my drive got wiped and I had to re-download runelite 
Great, thanks adam
you can definitely log into a legacy account with RuneLite
what adam linked is not what you're saying
it might be the answer, but it's not what ur saying
I wanted to be sure to get as much info as possible, so I closed the client, enabled debug mode, and waited for another Friendly Ent event, interacted with that event, then closed the client again.
Attached are the new client.log and launcher.log both modified today
do we want console messages collapsed
AH I see! Ok so POH markers are just not going to be a good idea then. Got it. Appreciate it!
Type
Incorrect behavior
Operating System
None
OS Version
No response
Bug description
Big-search for Tempoross Reward Pool miscounts by 4. It should increment loot tracker by 5 but only increments by 1
Screenshots or videos
No response
RuneLite version
I don't know how to tell which version I'm on but I think it is up to date as of this posting 03/21/2026 12:34pm PST
Logs
No response
I'm not sure the methods currently used but you can at least see how many different items were received and if it is more than 1 type in a single netting then you know to increment the counter by 5 instead of 1 or if you get more drops of a single item than is normally possible.
Only edge case would be the pages. You would have to have logic that if you got exactly 25 it could be a single drop of getting a dupe tackle box or fish barrel or just 5 drops of the lowest possible amount of pages...
Personally I want everything collapsed but I may be a minority
mb sorry for the delay, i forgor!
should pass tests now.
How long does it take for an addon to be reviewed usually?
is there any way to check if the player swaps 2 items with the same ID and quantity in their inventory?
Not super easily, i think you could use a script hook for it though
// 6013
[clientscript,inventory_reorder](component $drop0, component $drop1, int $comsubid2, int $dropsubid3, int $comsubid4, int $int5)
this
the args don't seem to be very useful, or is this a limitation of script inspector?
might just be the inspector
hook to script pre fixed and read the args off the stack
should be [2] and [3]
nothing useful in intStack (all values same when swapping different slots around)
getIntStackSize and getObjectStackSize both 0 🙁
Anyone with the client dev open able to find the hitsplat offsets? I want to align mine so they don't overlap
oh, try .getScriptEvent().getSource()/getTarget()
what's your plugin?
Vitality
0, 0,
0, -20
-15, -10,
15, -10
they are offset from the screen position of the actor at half its height
perfect, ty!
Old photo, but I've been playing with the prayer splats, what would be a cleaner icon for prayer restored? I tried to remove the black border on this icon, but it makes it feel washed out. But anything larger feels disproportional
try a shadow or outline to the text
looks like the prayer icon in the orb next to the minimap is slightly different. maybe that would look better?
Hmm, on mobile, can you send a screenshot?
I have my text for healing black on white, I tried white on black and it didn't look good
Original for reference
Oh yeah, that is different lol. I guess I used the skill icon
I thought someone just stole my (unreleased) plugin for a minute lol
latest preview of my nameplates (& hitsplats soon) plugin (60MB video)
Making an April fools feature, what class do I look in to find the currently worn equipment, and by extension the textures for said equipment?
And related, the textures for stuff like hitsplat icons etc
client.getItemContainer(InventoryID.WORN), inventory icons can be obtained with itemManager.getImage
for hitsplats etc you want spriteManager
Hi @tulip wagon I do not mean to disturb but are you open to collaborators for the sailing plugin? There are several bugs that can be fixed from the reported issues on the github repo to improve the plugin. There also seems to be others who are eager to contribute to improve the plugin; it is quite popular after all.
Ah, legend, thank you. I was only able to find this in the container changed event, this helps a ton
yeah, totally. i couldn't work on stuff for the last ~month and am catching up on rl review mostly when i can, but feel free to open prs. i've merged a couple in the last week or so, and a handful more on my other plugins
Allows disabling rock overlays independent of other plugin features.
Allows changing the angle, in degrees, where the pie fill starts. 90 is the default starting in the up direction.
Allows changing the fill direction. Defaults to counterclockwise which is how it worked before. Clockwise is how the official client has implemented this feature. Both fills in both directions at the same time like pacman's mouth.
I understand that as a rl reviewer and with your other plugins you always have tons of PRs to review. Id be more than happy to assist with maintaining the plugin—whether that’s helping review PRs, triaging issues, or keeping things moving.
That's pretty cool
Random question, anyone know which gameval ID is the Battlefront Teleport?
The spirit tree interface or the spell?
the spell
The Sprite ModelID is 2060 if that's what you're looking for
public static final class _2XNecroSpellsOn
{
public static final int _0 = 2052;
public static final int _1 = 2053;
public static final int _2 = 2054;
public static final int _3 = 2055;
public static final int _4 = 2056;
What the hell 😂
yeah jagex doesn't really name sprites so they do that
Time to revive RL Sprite ID :^)
we can tack better names on to the end of those
we do that with the hiscores sprites
like in cs2 they will write something like cc_setgraphic("2x_necro_spells_on,2") and that gets compiled to cc_setgraphic(2054)
DRAYNOR_MANOR("Draynor Manor Teleport", Spellbook.ARCEUUS, SpriteID.MagicNecroOn.DRAYNOR_MANOR_TELEPORT),
BATTLEFRONT("Battlefront Teleport", Spellbook.ARCEUUS, 2060),
MIND_ALTAR("Mind Altar Teleport", Spellbook.ARCEUUS, SpriteID.MagicNecroOn.MIND_ALTAR_TELEPORT),
RESPAWN("Respawn Teleport", Spellbook.ARCEUUS, SpriteID.MagicNecroOn.RESPAWN_TELEPORT),
SALVE_GRAVEYARD("Salve Graveyard Teleport", Spellbook.ARCEUUS, SpriteID.MagicNecroOn.SALVE_GRAVEYARD_TELEPORT),
FENKENSTRAINS_CASTLE("Fenkenstrain's Castle Teleport", Spellbook.ARCEUUS, SpriteID.MagicNecroOn.FENKENSTRAINS_CASTLE_TELEPORT),
WEST_ARDOUGNE("West Ardougne Teleport", Spellbook.ARCEUUS, SpriteID.MagicNecroOn.WEST_ARDOUGNE_TELEPORT),
HARMONY_ISLAND("Harmony Island Teleport", Spellbook.ARCEUUS, SpriteID.MagicNecroOn.HARMONY_ISLAND_TELEPORT),
CEMETERY("Cemetery Teleport", Spellbook.ARCEUUS, SpriteID.MagicNecroOn.CEMETERY_TELEPORT),
BARROWS("Barrows Teleport", Spellbook.ARCEUUS, SpriteID.MagicNecroOn.BARROWS_TELEPORT);```
should be correct then?? lol
Oh shit you're doing that yourself?
I think they are params on the spell items
yeah, params 597-600
and there are some enums to enumerate all the spellbooks and their spells
Oh! Where are the enums?
Seems to be
public static final int SPELLBOOKS = 1981;
public static final int SPELLBOOKS_SUB = 5280;
https://abextm.github.io/cache2/#/viewer/enum/1981
Spellbook list -> Spellbook -> Spell
Key 599 for the Spell Enums seems to be the Sprite ID when it's castable
there are 2 on and 2 off sprites for every spell because there are 2x variants
for icon resizing
Ohhhhhh right when you're in Wildy
Abex do you know if they changed any IDs after the minigame teleport addition? Just realized my shift clicks weren't working on the (normal) spellbook. I assume that's the reason?
I think they all shifted +1 except home tele
so I need to add the "off" and "on" variants?
you can look at the gameval diffs to se
Oh right
depends on what you are doing
yeah they put it at child 8 lol
then last week they screwed up the item structs so that there are 4 different spells with the same component
yeah im not sure why they did that lol
we complained and they are fixing it
fixing it by making new component for each spellbook? 😛
no clue
Unironically they should open source their code and just let people fix it :^)
Essentially, working with a youtuber to make a "random teleport" plugin where he needs to teleport within a random time (5 min to 3 hours) the teleport he needs to use pops up in an overlay, and everything except walk and the teleport allowed is blocked
if you just need to draw it in the overlay you can choose whichever one fits best and use that
Thanks Abex
Selecting Big-Search on the tempoross reward pool awards the player with 5 rolls if the Tempoross drop table. This can be confirmed by checking Reward permits claimed in the collection log under Tempoross.
Investigating into this a bit further it seems that the following occurs to combine each of these separate loot rolls into a single LootRecord object:
- Each chat message overwrites
inventorySnapshotCbto a single pending callback...
b16a2fe update quest-helper to v4.13.0.1 (#11174) - Zoinkwiz
7b33b71 update max-hit-calculator to v2.1.4 (#11171) - j-cob44
9de82fa update old-school-snitch to v1.1.5 (#11164) - wkpatrick
I've read through the ClientUI changes (will ignore the rest for later) and these are my comments:
- I don't see any reason to have both sidebarEntries/sidebarTabOrder. Maybe I'm missing something. But this just introduces a lot of extra state keeping for no reason that I can tell.
- "customOrder" is a pretty bad name because it isn't descriptive enough. Something like
private static final String CONFIG_CLIENT_SIDEBAR_ORDER = "clientSidebarOrder";is better. This naming is littered over...
are world entity ids fixed such that 3 is always sloop and 12 is always pirate ship and so on?
awesome, ty
@hollow stratus have you look at 18720 at all?
56c566c update creators-kit to v2.1.9 (#11180) - ScreteMonge
Add "royal titans" and "titans" as boss aliases mapping to "The Royal Titans" for the !kc chat command.
Close #19955
Is it still not possible to detect the SoundEffectPlayed event if the client is muted?
It’s not a “still” it’s that they don’t send them if it’s muted I don’t think
But I’m not so sure because visual sounds shows stuff when it’s all muted, doesn’t it?
Visual sounds? Im not familar
Server does send, but the event will not post if you have sound off
Hub plugin that people use to assist other plugins like annoyance mute.
Thats a bummer. Runelite API doesnt support getting this information from the server?
nope, it basically hooks where client adds to the sound queue, which is wrapped in if (volumn != 0) p much
I guess a workaround could be to use setSoundEffectVolume to enable the event to post when I'm anticipating a certain sound effect
lol, idk how viable it'd be but you might be able to override the volume to set it to 1 but just consume all of the sounds so they don't play
The metronome plugin does this but it plays the sound instead of consuming it. good call
it works, thanks!
lol nice
Seems strange to gate these soundFX events to volume if the server sends the information regardless.
for RL it's just a side effect of how it detects a sound event
having a bit of a puzzle here. I have a list of items, and a snapshot. I want to remove all the items from one list to the other, to get the difference
but stream.removeall will just remove every x item if it exists, and not individuals. Is there a method that will individually filter out existing without using a convoluted for loop
I recommend looking at how we do item container diffs in core, mostly in the loot tracker plugin
I believe we do multiset diffs
is there an easier way to find the actual github pages of the plugins?
I have such a hard time searching up code because google always brings me to the runelite page
use an IDE like intellij
for the plugin hub project, and get the github address from that?
wait, I can just use the plugin hub, duh
hmm, those are just plugin hub plugins though
the loot tracker is a core plugin
nevermind, I was overcomplicating it
what is MenuAction.ExamineItem depricated for?
is there an event now?
or am I safe to use MenuOptionClicked event and filter out Item examine?
it would be CC_OP_LOW_PRIORITY now i think, it isn't a special thing anymore like it was a couple years ago
assuming you're examining from an interface
ah, perfect. I would have never guessed, ty
EXAMINE_ITEM probably should be removed at this point since it is never used anymore lol
they never really removed any of the if1 inv stuff from the client so I kept it all still idk
they did, sorta
they might have removed the rendering
the item id and count arrays still exist
oh yeah
but they can never assign to them
lol
and the whole building of the menu ops from those is gone now too
what even does CC_OP_LOW_PRIORITY stand for
cc is just because the widget is made with cs2, which they do with cc_create
dont think about jagex naming you'll die
though i think this is used for more than just those
is it?
CC_OP_LOW_PRIORITY is our name also
it's still in 236
isnt it? i dont see it
oh wait
im greping runescape-client from master so i guess it wont find it
very well
i got pine's sidebar reorder pr to sort of work
that'll be nice if it ever lands
fwiw they call those 2 IF_BUTTONX1 and IF_BUTTONX2, which idk if that's much better lol
so I'm just trying to find the itemm id being examined, sure that's event.getItemId, but what is OP?
did you take the examine plugin and reformat it
what do you mean
I'm just adding examine text to foods, to display how much they'd heal
ths is the examine plugin
yeah, in fact that's what I posted here
except it isnt because the comment is missing and the code is reformatted
I'm digging around, can't figure out what op is, or if it matters
uhh, this is just what the ide shows
oh it might be decompiling it or something
I don't have the actual runelite dev kit, just the plugin dev stuff
You can find the original source in the runelite/runelite repo
Hmm, I can't seem to find this in the runelite files. I can find the hitmarks for stuff like healing, but I can't find the ui elements, namely the prayer icon on the hud
I'd recommend https://abextm.github.io/cache2/#/viewer/sprite for browsing sprites
god i love how intrusive sprite 4 is so early in the sprite list
I was hoping to use the builtin images. I guess the small prayer icon will work
ok, that is somehow really adorable
You could always size the sprite up so it's not quite so tiny
Can this get merged? I would really like this option so that I can see at a glance when my contract is done instead of having to fuss with plot-specific timers.
I'm trying to tidy up my codebase, and I'm running in to strange behavior
in a SubscribeEvent, the relevant code runs as expected, but if I try to move it into another class, not even debug messages trigger
and that leads to this being null and erroring
you have to register your other class with the event bus
and unregister when you are done
idk what you are asking really
if you @Subscribe outside of your plugin class, you are responsible with registering it to the event bus
setTile works inside the subscribe event. But the moment I move it into a method of another class, it's not executed
when all I'm doing is calling the method from the instance of the object
this works just fine when I do subscribe events on Forge, for example
minecraft forge?
sure
we have nothing to do with minecraft forge
and our event subscribers probably don't work the same
up until now they've been identical. The point is, why doesn't method calls from other classes work inside of a subscribe event?
Closes #11935
Adds display options for the farming contract infobox, allowing users to choose when it appears:
- Always - Show the infobox everywhere (addresses the request for a "persistent farming contract indicator")
- In Guild - Only show when inside the Farming Guild (default, maintains current behavior)
- Never - Never show the infobox
This is a fresh implementation of #12055 with all review feedback addressed.
they do
what am I doing wrong here then?
I'd need to see your code to tell you
but my guess is the same as abex: it sounds like you're trying to subscribe to an event from a class which isn't registered with the event bus
the main file is subscribed, it executes just fine here
but the moment I move it to a call to the instance created in the event, doesn't run
is it throwing an exception?
Hmm. Gimme a sec. Because it was only throwing a null exception due to one of those fields not being initialized, but now that doesn't make sense because it's skipping the debug text