#development
1 messages · Page 7 of 1
I need to make sure my names don't overlap because I get strange unexpected behaviour otherwise
i would think it's expected that if you type the letters in order for the tag in, that the tag shows up yeah
Yes but I'm not searching the bank in this case, I'm using the bank tags layout plugin
i couldn't think of any reason why i would have tags with the same name
So then it's a bug in BTL for not doing exact matching in that case
not "the same"
do the names matter even in the slightest, when using that plugin?
tob_nfrz
tob_rdps
tob finds both, but thats an easy fix... just call em nfrz,rdps
they could all be named JEdkWRwPJWRJPWR
Apparently they do because I just reported a behaviour that's caused by having overlapping names
it uses bank tags under the hood
I have yama and yama-magic
and this is how inventory setups does it, uses banktags plugin but with bunked names lol
I think we "fixed" this once and a bunch of people got mad
was awhile ago
atm its the intended behavior
But I can't have that without screwing up one, so I need to manually bunk my names
they're now called yama, yamelee and yamemagic
but I dislike having to do that 🤷🏻♂️
yes
like Adam mentioned if we change it then the people who like this can't use it anymore
From the perspective of a person who makes two dirrerent tags and adds a layout to both, without understanding the underlying technicalities, this looks very much like a bug.
when you can change what you have to not have this issue, they could not
I don't need bank tags to change
if you want to reimplement part of bank tags in bank tag layouts I would accept that
and just hide things that shouldn't be in there
I would like it if BTL had different behaviour where it either bunked names internally, or changed the filter for shown items to only show exact matches
What about the name bunking thing for the other plugin?
Idk the exact mechanics of BTL but does it just show the items that bank tags would show, but place them differently?
Why would you need to reimplement bank tags to get this working (as expected by me lol)?
i cant find the commit where we fixed this before
It's not really needed
The logic change is probably very simple
Just match fuzzy until the search text matches exactly one tag
Geheur just said that so I trust him haha
no, match exact when a tag tab is open
at least, that's what I would want it to do
we could maybe try that again and measure how many people are mad
can we also measure how many people would be happy
given how infrequently we hear complaints about how it works now, we already have an idea of that number
even fewer people come in to complain that they are satisfied with it
how rude of them
that's not how things work? people don't complain about behavior they don't mind
thatsthejoke.jpg
k there is nothing in the queue older than like a week now
perfect time to drop my 10k diff
[[donger]]
ヽヽ༼༼ຈຈل͜ل͜ຈຈ༽༽ノノ
Rikten go brrrrr
The AudioPlayer is a bit too bare-bones for my use-case; no volume changing, detecting audio ended, stopping (although that might be mimicked by playing nothing if only 1 audio can be played at a time with Clip?)
Should I look into making a PR for it?
or am I maybe better off dropping .wav support on my side?
You can use java.sound if you have a good reason to. But if you want to PR the feature to AudioPlayer it would probably be appreciated
you're using jaco right
it's just picking that stuff up through jaco you can ignore it
Type
Incorrect behavior
Operating System
Linux
OS Version
Ubuntu Linux 25.10
Bug description
When using Menu Entry Swapper's "Shift-click Walk here" option or setting a custom swap that makes an NPC/object's shift-click option "Walk here", Ctrl-Shift-clicking does not respect the game's "Ctrl-click to invert run mode" setting. I.e. with that set to "Always" any my run enabled, I would expect:
- Ctrl-click walks up and attacks the NPC, and
- Ctrl-Shift-click walks under...
[ https://github.com/alowaniak ] [ @tribal sparrow 631149365834022939 ] mr.a_to_z#0
@tribal sparrow Hi, we've disabled your music-replacer plugin. Please see https://github.com/runelite/plugin-hub/pull/10743 and submit a new PR when the plugin is in a working state.
Thanks for catching the bug, apparently I practically only tested with my music volume on 😅 Should be fixed in https://github.com/runelite/plugin-hub/pull/10744
^Worries me a little bit though
I'm running cs2 scripts to turn music off/on so original track starts playing after an override
https://github.com/alowaniak/music-replacer/blob/15fb90df0b0d2196fadd8886c42789e62f78892b/src/main/java/nl/alowaniak/runelite/musicreplacer/MusicReplacerPlugin.java#L230
Is that behavior at risk of causing a ban? Or only because it was spamming it and will jagex resolve unjust ban?
(I'm also open for other ways to turn music back on, don't know any other way than that script abex pointed me to.
Also don't really understand the script, like why I have to turn it off first before on, and why I couldn't get it to work with a subscript like https://github.com/runelite/cs2-scripts/blob/5d5a7f977ce01ea4ec86c4e8d7c7d8b231f90005/scripts/[proc%2Cscript2475].cs2)
without looking at the flow of everything, I would make sure that those scripts are not being called every client tick because if they are I could see that being a bit off from the server perspective. of course I have no knowledge of what would or wouldn't trigger something on their end though
They shouldn't anymore but there was a bug where they were
because those two cs2 calls would be sending 1 packet each
c194073 Update Quests to 2026-2-25 - RuneLite Cache-Code Autoupdater
dc1fa3f Update Scripts to 2026-2-25 - RuneLite Cache-Code Autoupdater
19df6c3 Update Script arguments to 2026-2-25 - RuneLite Cache-Code Autoupdater
39dace5 Update Widget IDs to 2026-2-25 - RuneLite Cache-Code Autoupdater
f48edad Update Item variations to 2026-2-25 - RuneLite Cache-Code Autoupdater
37d06bb API docs for 1.12.18 - RuneLite updater
4e086e4 Release 1.12.18 - RuneLite updater
Question - my plugin seems to be overriding other plugin bar icon's, is this because I'm testing by running a Shadow jar, or is something in my code rucked up?
That just happens when you run the plugin test. I assume shadow jar as well. Should be fine on the hub
Sweet, thank you
Hey there! I built a Plugin Hub plugin that addresses this. It tracks the 30-minute cooldown on the Lumbridge tutors and is available here: https://runelite.net/plugin-hub/show/tutor-timer
I'm trying to add a config value for resetting a value, but a bool checkbox isn't the right UI component for this. But from searching in here, it seems we can't add JButtons to the config panel (correct me if I'm wrong here). What's the best pattern for a config option with idempotent behavior?
A user can right-click the config label and click "Reset" to reset it to its default value if that's what you're trying to do
Is there any interest in hiding ground items on boats other than the players? Looking through the message history and the attached discussion it seems that this is achieved currently using Hide boats setting in Entity Hider. While this works I would like to see boats of other players.
https://github.com/runelite/runelite/discussions/19591
can just set this to "drops" right?
dear god
That is another workaround I saw. Currently items located on WorldView.TOPLEVEL are hidden by default when on a boat. Though i think this behavior may have been a side effect
double tap alt!!!!!!!!!!!!!!! qucik!!!!!!!!!!!
not quite what I'm trying to do, but very similar. So I opened a PR for adding drag and drop functionality to the plugin toolbar where I had it written as a separate internal plugin. Adam said it should not be a plugin and should probably be integrated within the RuneLiteConfig. I've been working on this and here's where I'm at.
in the screenshot, you can see the "bot detector" plugin has been dragged up above Loot Tracker. As a user, I desire to reset the custom order but maintain customizability so I can start fresh and reorder the plugin tabs. Otherwise, I have no quick way to get icons back to how they started and would have to drag all the icons back to default order myself. This is distinctly different from just displaying the default order, which can be toggled with config.enableCustomOrder().
I maintain a "custom order" list separate from the default order, which I can fall back on when needed. I store/retrieve the custom order in configManager. When a user desires to reset their custom order to the same as the default, in my plugin implementation, I had overridden resetConfiguration() to include setting the custom order in configManager to the same as default order.
Current implementation is config.resetSidebar() is a bool and checking the box does reset to default, but this isn't an "on/off" behavior. So the user sees "Reset sidebar ✅" which communicates things in a funky way. They uncheck the box to reset it again, but again, that's a weird way to behave. I was thinking this should be a button that fires the reset behavior when pressed. Or, as a workaround, at least let me set config.resetSidebar() back to false once the event has been handled, but I can't find a way to do that.
I'm thinking if I had to, I could inform the users to always right click and hit "reset" on "Reset sidebar" but that's an unintuitive workaround. And overriding resetConfiguration() is a no go as that would reset all of the configuration values for RuneLiteConfig, not just the customize sidebar part
While this filter works I don't think these items should be shown at all by default as they cannot be taken by the player even with telegrab
Ah, yeah we haven't really done anything like this before iirc. Not sure what the preferred way to proceed with this is. Last I've read about it, I don't think it's desirable to add a "button" config.
Was there no discussion about other ways of doing this (e.g. right-clicking the config button or w/e to bring up a menu)?
don't try to do this. either native button support gets added or you find somewhere else to add the reset button (e.g. something on the sidebar).
one-off triggers on config options also suck because a profile change could trigger it.
i'm personally not sure why this would need a reset button when i could just put them wherever i wanted
someone is gonna come in and ask for it. but yes it really is their problem isn't it 😛
I put it in my message, but long = 😵💫
As a user, I desire to reset the custom order but maintain customizability so I can start fresh and reorder the plugin tabs. Otherwise, I have no quick way to get icons back to how they started and would have to drag all the icons back to default order myself.
yes i see that but i still don't see why that is actually a thing
I think I said this before, but just having a context menu on the toolbar to reset would work I think
I've ran into this personally lol. When dragging evry icon all over the place, it's a huge pain in the ass to get them back in the default order by dragging each. We made a plugin for solving the slide puzzles in game, I definitely don't want to make users do this for the plugin toolbar 😅
forgive me as I'm still learning swing as I use it, but would that be something we already have a pattern/component in use elsewhere for me to borrow?
actual users aren't going to be moving them randomly though. and since the position isn't decided by core and by the plugin author they are already essentially arbitrarily positioned. just my thoughts though
look for use of JMenu
what if instead you could just add buttons to the config, is that a really hard thing to do?
no, but i dont think it is a very good ux to reset the sidebar that way
yeah, I'm trying to be as least intrusive with this. The treeset that stores the plugins maintains a comparitor that uses all the plugins' defined priority to determine order, so I don't want to mess with those
only because people might not know to look in "runelite" plugin.
if this feature ends up being default off so people have to go there then I think it would be fine.
i think making people to go the rl config to enable the sorting is also pretty bad ux
ideally i would not do that either
honestly i think that is really just a terrible idea
yeah it's weird to have an "enable otherwise unobtrusive feature"
that's why I had initially made it the internal plugin because there are tags that users can search that would make it more obvious what it was instead of a setting buried in another "plugin"
but yeah, it could be just always on, right click toolbar to reset
if it could be always on and also in a way that prevents people from accidentally reordering that would be nice
not sure how hard that is
configuration of hotkey is what I designed to prevent exactly that 🙂
I would probably make it like the windows taskbar where you can just unlock it with a context menu
testing it myself, I knew there were times I would accidentally drag it and that was an issue when I wasn't expecting that and didn't realize which had been dragged
this is what i was thinking, but a hotkey could also work
I'm a fan of that idea too. It can use the exact same logic gates that are used for checking if the hotkey is pressed, and would reduce all the hotkey listener crap
it could be tied to alt like everything else we have
I haven't looked into all the extras that would be needed, but ConfigPanel.java has a big list of else if (cid.getType() == ... ) { item.add(createX(cd, cid), BorderLayout.EAST) }. It'd have to provide some way to provide the action listener, and there would probably be concerns around length of text in the button, but it seems feasible.
would you say it should use the same runeliteconfig hotkey?
yeah
I like it. Simplifies things. Working on a JMenu version now
from an implementation perspective, it seems it should either be drag with hotkey or lock/unlock behavior, but probably not both. The purpose is to prevent accidental movements, so both accomplish that goal. Not sure which is most intuitive for RL's design language. To me, I'm always using hotkeys as part of interacting with runelite, so I'm leaning that way
Having only a hotkey would seem like an annoying inconvenience because we don't really have an open and obviously hotkey modifier
I think you're forgetting the runelite config drag hotkey. Using that would keep the hotkey usage consistent across the application
What
obviously I'm still open to whatever the consensus is, but there's already the hotkey that we can use that would follow the same design language for dragging in the game window
the already-existing "Drag hotkey" abex mentioned here #development message
I got you ron
it would be consistent, and the tooltip for the "Drag hotkey" config is already "Configures the hotkey used to drag UI elements around." which fits this use case
I have the new DragAndDropTabbedPane UI component using a new JMenu entry. I'm currently chopping it down to just a "reset order" option and dragging will be always enabled but locked behind the drag hotkey
also see adam's thoughts on the menu implementation #development message
I didn't say that
can you explain? Your messages are pretty short which makes it easy to misinterpret what you were saying
You have this but you delete the runelite config you added
yeah, I'm in the middle of removing the runelite config entries for customizing the sidebar and removing the "enable/disable custom order" logic in favor of an always-on behavior, gated by either hotkey (preferred) or a lock/unlock value in the new right click menu. I'm currenty chopping out the lock/unlock menu entry and am working on switching over to using runeliteConfig.dragHotkey()
Yes and my reply is I think it's better to have both a drag hot key and the menu
People will right click the sidebar bar and see reset and then come into support asking why they can't drag tabs
menu = runelite config section or menu = right click?
Right click
awesome, we're on the same page, that's the plan
sorry the screenshot was misleading 😅 middle of changing things
It was a reply to this saying you removed the unlock and unlock
ahh, so you like the idea of needing to use the hot key as well as allowing locking/unlocking? Kind of a double safety measure?
No?
any maintainers, if i can get my core plugin down to 5-6k lines would that be feasible or would you like to see it smaller than that for the first review? this is regarding the lending tracker PR
5-6k is no problemo
im going through it now to see what i can cut out without dropping the whole use of the plugin.
also lol at you randomly having 11k of unused panel code
how soon after would yall be alright with me rolling out updates to try and get it back to somewhat close to how i built it?
yaaaa that was a really horrible fail on my part lol i thought i removed it but a huge overlook lol
i got to excited to submit and never looked back to see if i completely removed it 🤣
idk wym
well i want to cut it down now to get it pushed for review. but alot of the features i added i feel makes it pretty usefull. im sure theres a good chunk that can be removed perm but theres some that make it extremely user friendly and eventually id like to add them in with rolling updates. im not talking do this pr then a few days later submit another 4k lines maybe a few hundred lines at a time. so its manageable for review to build it back up
if your diff prs get a size-xl label then you're sending too much code basically
anything size-l or less would be fine
i just dont want to burden yall or take time way from other PRs
Do we know loc that triggers each size label?
looking at it i feel i could get it to about 13k max after redoing some structure and removing fluff (not sent all at once)
ill keep this in mind, thank you. if it helps too i can send some SS to show the plugin panel. not sure if thats doing to much or if it helps tho lol
that does nothing
it just gives us an idea of why
its visible in the github bots code yeah
but also your pr is sort of in the quantum realm
gotcha, ill keep working on it and resubmit when i get it worked out. thank you for the insight
haha ye i wasnt asking in reference to mine, was just curious. I'm aware that mine is as you say in the quantum realm hehe
I would love to one day return to it and just remove it all the dangerous obstacle stuff except the stuff that the core agility plugin also provides. So keep the route/floor timers, coffin obstacles, and customization of bolts/swords, all which should be a total non-issue - but its just really awkward when the plugin has already been disabled
Why is it awkward. If you remove the questionable features it can just be enabled again
what determines if a right-click menu opens up on left click?
(nevermind, ignore all that)
had an onmenuoptionclicked event.consume() that I forgot about
Hmm, maybe awkward is the wrong word, but because while i know which features were problematic, they didnt really give a clear message. So i cant expect code reviewer to accept/reject based on their vague message
as rikten said "'might be a little bit more palatable' is sort of a completely vague non statement so idk what to do with that"
Qq - where is the version # set in the bottom left?
took a glance at the plugin-hub docs and couldn't find anything on it
build.gradle
Thought so. I had <version>-SNAPSHOT, and currently my plugin shows the short-form commit hash. Will it use <version> if I remove "-SNAPSHOT"?
yep
Awesome, cheers
Is it possible to do custom animations? I want to make new cow pet do this
Note: when we automatically uncheck the box when we merge a PR, we still display the note
buh
why does bank tag layouts require maintainer review?
(just wondering)
is it the mouselistener?
What are the rules and regulations in regards to dynamic tile markers. I am pretty sure that a tile marker that tells you where to stand during a certain boss move is not allowed (afaik)
But are we allowed to have tile markers that are static from the boss's coordinates?
So basically similar to npc tile markers but outside the radius of the npc
Wouldn't that still make it dynamic 🤔
I would imagine the answer is no because it involves bossing and could help the player decide where to stand. Where-as a plugin like Radius Marker simply allows you to view a radius, and doesn't really provide the means to direct the player which exact tile to stand on. Just my two cents though. 🤷♂️
I also meant it as a radius marker basically just like circles around the boss
But you can decide the offset
But yeah I agree probably not allowed, was just an intrusive thought
Think you can already expand the radius within Radius Markers, but not too sure.
An offset to me just sounds like trying to circumvent not being allowed to mark tiles 🤷♂️
I didnt know that if thats the case then it answers my question 🤷🏻♂️
I'm not planning on making a plugin I was just curious what is "allowed" just an intrusive thought like i said 😄 ty for the info ❤️
just an update, this is still happening in a lot of areas. in some new sailing zones and on the ocean, i get the cave skybox instead of the outside skybox. and this still happens with 117 turned off.
Add an option to toggle displaying the ping packet loss percentage on the overlay
Fixes secondary request of #19875
Hi, there was a discussion of this recently in the #development channel in the RuneLite Discord if you want to read up on the reasoning behind there not being an option for this. #development message
Seems a bit odd to not include an option for something people want? Any reasoning for not having the option should then be immortalised either in the original Issue (because it should be closed if the remainder of it's request is not going to be done) or in this PR. Discord is not a good place for storing development decisions..
The crux of the discussion is that ping is a significantly less useful metric for determining connection quality once packet loss is added to the mix. The two values are both important, so having one without the other paints an incomplete picture, both for end users and the support team... much like it did before the packet loss output was added at all.
Hello!
Im thinking of adding group features to my plugin, got it mostly done.
I registered a SupaBase for db, and hooked the plugins multiplayer stuff to that.
I just wanna make sure this SupaBase solution for example is somethign that get accepted
how are you talking to the db from your plugin
rest apis+RPC for read write and websocket for live updates between party members
what rpc
join_group
create_group
leave_group
post_unlock
get_group_members
kick_member
set_display_name
what i ahve setup so far
basically as long as you're talking to whatever you're talking to over http/websocket (via okhttp) then you're good
so im basically calling it like this: POST /rest/v1/rpc/join_group
that doesn't matter
when you said rpc i thought you meant like grpc or something
which would be an issue
the only other callout is that this HAS to be opt-in since your plugin doesn't do any networking to 3rd party servers already. and the config needs a warning set to the style of the standard disclaimer message we use
gotchu ! thank you very much !
srry last question regarding this, where can I find the standard disclaimer message ? 😄
This plugin submits your IP address and <brief summary of information transmitted> to a 3rd party server not controlled or verified by the RuneLite Developers. Normally when a person introduces a new plugin that needs it I would set this for them but in this case I can't since it needs to be a warning on the @ConfigItem that controls it
If you're just sharing plugin state or whatever you can just say ip address
that's the main one we care about
awesome! thank you very much !
eaabcf6 update contextual-cursor to v1.9.2 (#10740) - ldavid432
b24bca5 update embargo-clan-plugin to v1.6.0 (#10751) - Sharpienero
480f159 update random-event-helper to v3.3.0 (#10756) - Infinitay
Hey all, working on last tweaks for the customize sidebar functionality. I'm still green when it comes to how Java and Runelite's EDT operates and its performance. I'm trying to sanity check response times when r-clicking on the plugin toolbar sometimes not registering. I'm not sure if this is a common pattern and it's not exclusive to my work or if it's due to how I've constructed listeners.
I have debug statements for when the right click event is caught, but sometimes right clicks aren't caught/logged at all. Trying to determine if this is something worth digging into if the cause are my changes or not. If anyone else can point me in the right direction or needs any additional info from me to help diagnose, I'm here to learn/help
the mouse needs to have not moved a single pixel for some events for it to register if i remember
I managed to record it happening. Black circles are left click, green circles are right clicks. Note the multiple right clicks with no JMenu popping up. No log statements appeared either. I assume it's processing something behind the scenes that hasn't completed. Researching causes now
you're moving your mouse
and when it works it didn't move
fwiw the screenshot button on the top bar doesn't work like this, idk if that would be useful to look at
you can move your mouse after pressing down right click and it will still work
(although if you could get the right-click menu to open on mouse down instead of on up, that is best imo)
plugin buttons can also have a right click menu iirc
the world hopper panel has a menu on each world
74d454a Update contextual-cursor to v1.9.3 (#10764) - ldavid432
9504980 dev tools: fix script inspector highlight list ... - BBeeaarr
7b1cc7d Deploying to gh-pages from @ runelite/runelite.... - Adam-
05dbf5a spellbook: null-check spellbook button widgets - Meantub
Thanks
I was looking at a PR made for a plugin which attempts to determine whether or not letters were suppose to be uppercased or not, and I had a question: IIRC we aren't allowed to do something like pasting in a message, but are we allowed to modify a message content such as introducing a special character that would ensure case-sensitivity?
My understanding is that you aren't allowed to manipulate what a player types into the chatbox whatsoever
95b7e41 Update wiki data - RuneLite Wiki Scraper
hey guys, my phub plugin does not need a config, yet i have a config file. when i updated the mod just now (it's been a few years since the last) the line @ConfigGroup("example") in the config file is getting flagged during the checks. Can i just nuke the whole HerbSackPriceCheckConfig.java file, or do i need to fill it with correct data?
delete the whole file
Hey so a bit of a weird situations I have myself in.
I decided to try to fix the zoom bug in Camera Smoothing all I did so far is update it's build.gradle to match the current template setup as well as fix it's CameraSmoothingPluginTest.java
Now with dev build running, the world hop zoom out issue dissapeared.
I have not changed the plugin code outside of removing this int variable.
int bombo; //PAY NO ATTENTION : BOMBO
Which was not referenced anywhere.
I am uncertain if the bug is truly gone or if the clean dev build is somehow affecting it.
Could someone more seasoned than I give me information to verify that the plugin is truly fixed?
Replicating the issue to verify you fixed it is probably a good step
i guess I can add the int back and see if that changes anything
it's a load-bearing bombo
Actually adding it back makes the build completely fail.
Only way to get the plugin to build and launch runelite was to update build.gradle and remove the int I mentioned above, which does not reproduce the bug.
Managed to get it to build and launch with minimal modifications, but I am unable to reproduce the bug, a tad frustrating.
ok this is funny, decided to test it again on live (non-dev) build, and the issue just dissapeared after I simply re-installed the plugin.
Doing more testing though.
I tried that before, but it didn't fix the issue. Interesting.
Ok so this is even more weird. I use an alt account for dev build stuff, due to the whole token thing, the issue does not exist on that account, but does on my main one ive used for a while. Ive already re-installed rl to make sure is not something local.
What could be causing the issue to show up on one account but not the other?
Seems it has to do with some character specific ingame setting. Not RL settings. My speedrun profile does not have the issue, time to dig 😄
Type
Crash or hang
Operating System
Windows
OS Version
Windows 11
Bug description
When I world hop or start the client I get the same error messages a few times over, after relogging again and again it disappears. I already deleted all files and reinstalled Runelite without any plugins.
The logs always have the same weird "Unknown Source" in them.
Screenshots or videos
From Launcher:
By world hopping:
RuneLite version
Runelite version: 1.12.18
Launcher ...
Ok it has something to do with the in-game settings which turn off camera effects.
Do you not get the dev menu when doing plugin development? Or do I need to pass an argument for it to load with it?
You need to use the --developer-mode client arg to get the developer tools sidebar thing
Cheers
should be way more manageable now lol
in IntelliJ, it seems my dependencies are missing for runelite (was working a few weeks before)
if i run the code it still works though, but i cant check the libraries, anyone knows what might be causing it?
Seems I've fixed it the zoom snapping in Camera Smoothing.
When the client is in the login state, the plugin is reading the viewport zoom VarClientInt while the CAMERA_ZOOM_BIG/SMALL is still animating towards -1, causing an unstable value.
Simple solution was to gate the zoom smoothing to > 0 on a game tick, after LOGGED_IN.
Restart intellij?
I tried it, and also restarting my pc, but didnt help sadly
delete .m2 folder
this, this is always the answer
like we actually gotta replace /moremaven with /deletem2
yeah
i have .gradle , don't think i'm using maven
there's still m2 if you're using gradle
m2 is mavenLocal
which gradle uses
but also blow up .gradle, close intellij and git clean your repo and all that
just add .m2 to the list of things to nuke off in this case basically
yeah weird, idk, i just don't have that folder there
ok will try
that worked, i just nuked everything and it re-downloaded the whole runelite gradle project, thanks
Removing .env
Removing .gradle/
Removing .idea/
Removing build/
this would be lovely. please consider it
Made the pull request, hopefully the maintainer of camera-smoothing sees it soon.
Summary:
This PR fixes the issue where smooth zoom would jump or zoom out unexpectedly after a world hop. The underlying problem was that the plugin’s smoothing logic was reading transitional or un...
has anyone else that doesnt use intellij come along issues trying to simply build runelite with gradle through the terminal?
building on the command line works for me, what issue are you having?
either javadoc related errors or issues with testing
build with java11
yeah, for some reason javadoc generation fails on higher versions
i see
I use JAVA_HOME=/lib/jvm/java-11-openjdk-amd64 ./gradlew :buildAll, but the path might be different for you
https://sdkman.io/ is great if you want something to manage different jdk installs
curl | bash!
i was just using direnv to have java 17 only in the runelite dir
but ill try 11 and see how it goes
pajaDank Has there been in uptick in vibecoded merching sites?
Hi, does anyone know a way to tell if an object is part of the map, as opposed to being spawned by the server? For example, trees are part of the original map. They exist in the map's default state. Fires on the other hand are spawned by players, they are are not part of the original map.
I think during loadScene, only stuff which "is part of the map" will be included, until a zone invalidation happens
ah right, thanks!
It makes sense; data vis is not a hard problem for the simple stuff economy people want to do. Scaling sucks, it's probably over-complex, but if you hire someone to do that nowadays they'll use garbage things like JS, react, and pre-written webservers; AI can do a mediocre job too, so the average web dev isn't special. What do you think?
You nailed the inside joke this is hilarious 🙂 ❤️
it reminded me of the apocryphal coconut.jpg story from TF2
https://static.runelite.net/runelite-api/apidocs/index.html does not have an entry for https://github.com/runelite/runelite/tree/master/runelite-api/src/main/java/net/runelite/api/gameval.
There's a few places where the other entries show up such as runelite-api/apidocs/type-search-index.js, and in these places gameval isn't present.
That might be related, but I don't know how this site works :D
Gameval javadoc that was generated was too large
Ok, but this is still a problem, and new devs will continue to be caught out by it. Is there some way to indicate to them that gameval's contents are missing from there?
github has a limit on the size of pages published to github-pages and these pages exceed that. If you can figure out a way to configure javadoc to do something better than excluding them I'm open to that, but I don't think that is possible.
My point is that you would expect this javadoc to be complete and it's "silently" missing an entire section of the API. Maybe there's a way to just add a dummy page under gameval that links to https://github.com/runelite/runelite/tree/master/runelite-api/src/main/java/net/runelite/api/gameval ? I don't know anything about javadoc or whether this is possible either.
This is the javadoc config https://github.com/runelite/runelite/blob/master/runelite-api/build.gradle.kts#L126-L139 if that helps.
@rancid marten do you need anything from me for https://github.com/runelite/rlawt/pull/4 ?
ok, lmk if you need anything! ☺️
i already had him test it
I'm suddenly getting al these kinds of errors, even though I can still run the plugin through Intellij?
CTRL+SHIFT+A and type "refresh gradle dependencies" (or go through the elephant icon in the right sidebar)
thanks, ctrl + shift + a method didn't work for me, but through the elephant option and SYNC ALL did work
I've been looking into the issue with plugins that draw to the screen (i.e, tile markers, outlines, clickboxes) being lower res when using the stretch mode plugin. Would it be possible to have plugins drawing on the ABOVE_SCENE layer do so to a separate, full resolution buffer, and put that on a quad behind the normal interface?
I tried hacking something together to test, but ran into issues with BufferedImage not supporting the right formats. And before I tried figuring out a shader or something to fix it, I thought I'd ask if this is something that would be more trivial to implement for someone with access to the internal code. Namely whatever image class supports the graphics API in the right pixel format natively that's used with the BufferProvider
Can read from here about the last time it was brought up #development message
Thanks, I missed that. Though, they didn't seem to bring up rendering to a separate buffer for that layer entirely, since that wouldn't require touching any of the internal UI drawing stuff, nor have the drawbacks they mentioned about mucking with the ordering of things
I dont think that is true
Like a really simple example would be you want to draw a overlay over a tile, but underneath the game ui like the inventroy or bank or something
"rendering to a separate buffer" doesnt actually solve that problem
The current interface is a texture drawn on a quad that's positioned perfectly in front of the camera in the GPU plugin, right? With the game geometry behind it?
only if gpu is on
you can interleave overlays in between ui layers though so that doesnt really matter
Sure, but this is a nonissue with GPU off, since then the whole game is drawn at a lower res when you use stretch mode like that
like another simple example would be you want the overlay to be above the inventory but below the right click menu
I don't know if it really matters if those elements are drawn at a higher res, because they're effectively always UI elements, which you'd also want scaled up, right?
Like interface tags. Drawn as is, it's pixel perfect with the normal Runescape interface. A higher res outline would probably actively look strange if anything
I guess if you made a layer only for scene overlays and nothing else that was larger that might work
you would end up instead of like, world draw + ui draw it would be world draw + new-larger-ui-buffer draw + normal ui draw
which is weird
also would like 3x the ui upload time
you might be able to composite them on gpu or something using j2d
the upload is probably faster than using j2d
although I guess even if you did do that, you would then be relying on j2d upscaling which defeats the point
I don't know if the ordering actually matters, if it's on a separate buffer rendered to a separate quad. It'd just be passing a graphics2d backed by something else to the renderer in drawScene(). The compositing would be naturally handled by positioning the quad behind the normal interface one
I don't really have anything to say about the GPU upload, though. Is a full screen resolution texture per frame a nontrivial cost?
at some point you would have to say all overlays before a certain point get the hires buffer and the ones after get a lowres buffer otherwise they would render wrong
yes its one of the most expensive parts of the frame draw really
i always thought about trying to just make the client ui render stuff just upscale everything itself
and then remove the gpu upscaling
presumably the gpu upscaling stuff is a lot better though when upscaling images
we could precalc sprites at least with the gpu algos
yeah
its stuff like the minimap that would be weird
I guess you would have to upscale the minimap image based on the client scale setting
and then from there apply zoom
idk, it seems like it would be possible mostly to do I think.
Would uploading it as a compressed texture of some kind work, since it'd be primarily empty alpha, or is it actually the latency that's the problem?
compression would probably be slower
- I'm not sure that would be a good idea for a ui texture
Minimap drawing was crazy expensive added it on gpu and it was fairly cheap tho just should not pr it coz needed apis
anyway for me to put the overlay under the amount number using WidgetItemOverlay?
the number is part of the sprite, so prob not
were any of those maybe causing string inputs in configs to not show up in the config panel
yes
added in b9ea1f8ff5fbeac7594e8dc6bdbf31ec1023fd43
added in b9ea1f8ff5fbeac7594e8dc6bdbf31ec1023fd43
added in b9ea1f8ff5fbeac7594e8dc6bdbf31ec1023fd43
reopen if this is still an issue post b9ea1f8ff5fbeac7594e8dc6bdbf31ec1023fd43
aff1210 Update barracuda-trial-helm-lock (#10800) - JoryAnderson
I don't care that much of the implementation (since I'm not the one using it). I was only pointing out the number of merching sites being put out these days. Reminds me of RL plugins Better x 😂
merching plugins are the new bingo it seems
i am noticing most of them seem to have verbage/code for a "premium" mode so i think it's just a grift
i have 40 claude agents coding up bestest bingo plugin gl
im surprised they even try instead of just getting people to download jars
i guess people be seeing flipping copilot success and want in
Hey I have two questions abotut the PH:
- Can i add a custom build step like so [https://github.com/117HD/RLHD/pull/977/changes/f36da7b479ccc65655ebe80c2e2f922077147f77]
- Can i use kts for gradle now since runelite does ?
Yep. Last two plugin hub submissions I saw were merching related and pulling up the site obviously has some premium mode pushed.
Thing is, it doesn't seem like that. So far at least. They seemed like yet another merching/flipping site.
Sorry I think I left the tag on
Looked further into this and it's a compatability issue with https://github.com/its-cue/compact-orbs
- Would prefer if you didn't (requires more thorough review)
- Yes, that option has been allowed for years - https://github.com/pajlads/runelite-plugin-template/blob/main/build.gradle.kts is what i use
62372ad Update slayer-assistant to v1.2.2 (#10807) - LeeOkeefe
8cfdab1 Update barracuda-trial-helm-lock to v1.01 (#10808) - JoryAnderson
My immediate response to the flipping premium modes is negative, but confronting my biases, I think it's actually wholesome people who want to give money to keep a developer employed to work on their favorite plugin can. Otherwise, no work would be done.
My problem with myself is I occasionally have this spite,
This kind of license has always seemed to me to be more about spite than anything else: "I didn't make any money from this, so there's no bloody way I'm going to let anyone else do so."
From https://www.reddit.com/r/programming/comments/6wie9/eric_haines_on_academic_use_only_licenses/
Flipping utilities has had a paid version for ages fwiw
Hi, does anyone know what to do here?
Within trouble brewing you can send a monkey up into a tree. I am trying to detect which option within the dialogue the player selected. I managed to do it with onMenuOptionClicked, but how do I detect the same thing when the player uses their keyboard to select an option within that menu? I cant seem to figure it out
it will fire a script event for script 57
tysm will look into that
theres probably some existing plugins somewhere which hooks to it, not sure
Even if it's a one time thing and we don't mind it taking a little longer? We could swap from groovy to java if that helps?
I think action progress does
Oh really? TIL
@Car-Role Would love to test this out! Discord is Spoops TYIA
When attempting to build weapon-animation-replacer plugin I get Unable to load class 'org.gradle.jvm.toolchain.JavaToolchainSpec'. error every time, no matter the Idea version. Tried using both 2025.3.1.1 and 2025.3.2
@trail marten I suspect that gradle version might be too old on that plugin, but I am not sure if that's the case. what do you use to build the plugin?
anyway, the reason I've tried setting up dev environment to look around and see if I can make a fix for "special -> special voidwaker (old)" replacement not working with voidwaker (deadman) as a trigger item. do you reckon this is fixable?
did you look at voidwalker deadman with id finder?
maybe the ids are different
idk about building it
I hit the run button, that's all I know.
yes, voidwaker's ID is 27690 vs voidwaker (deadman)'s ID is 29607
are you under "animation swap" or "attack swap"?
this is what I have, I think that's animation swap?
oh, I've found the issue. I must've somehow set up the swap for corrupted voidwaker and not voidwaker (deadman) 🤦♀️ I'm sorry for wasting your time. readding the swap worked
hey, i was wondering if anyone knows the best way to detect pet collection ?
Check the way Dink does it
what is dink, sorry im a little new
its a plugin
cheers will have a look
does anyone know if its possible to suppress the clog popup for a specific item instead of just turning it off
@soft olive jagex is now transmitting a varp for personal points VarPlayerID.TOA_PERSONAL_CONTRIBUTION. it's only set when the raid ends, not throughout the raid. I'm updating the toa plugin to respect it so you'll get the new value (and team values) from the existing PluginMessage, but you could also update raid data tracker to use it as a fallback if the user isn't using my plugin
I very much appreciate the heads up!
hey guys, just wondering - i submitted a plugin yesterday thats still waiting for review, just wonder if pushing a new commit will mess that up or should i wait until its approved/hopefully accepted before updating it?
It’ll get pushed down in review priority with each commit
alright ill just wait then, wasnt a major update just a little qol
it isn't going to make a difference if you submitted yesterday
how long does it usually take for the review? had like 50 ppl in cc bombarding me when its going to up lol
Depends on a bunch of factors, but mostly it’s just whenever someone gets to it
You can check open dates on closed PRs to see how long it took on average for plugins with the new plugin tag to get a rough estimate
yeah seemed like a few days at least on avg, not terrible, thanks for letting me know tho ❤️
the ci doesn't run automatically for new accounts so i ran it for you and you have a build issue you will need to fix anyways
oh didnt notice, worked perfect on my tests, ill double check
only thing i see on it is "MazchnaSkipPluginTest.java uses unchecked or unsafe operations." would that be causing the issue?
https://github.com/runelite/plugin-hub/actions/runs/22530544956/job/65338637333?pr=10796
MazchnaSkipping: invalid plugin file name "MazchnaSkipping"
in file plugins/MazchnaSkipping
plugin file names must be lowercase alphanumeric + dashes. try: "mazchnaskipping"
damn my capital letters
alright i swear im blind but ive checked every file and cant find that string of text anywhere 😒
It's the file name
did you see the slayer task boosting plugin its like super configurable
and probably does what you want
definetly looks pretty close to what i wanted, i originally made this plugin for myself, but i assume ppl want it since i had so many ppl in cc asking for it lol, and now that im this far i might as well see it through , but at least that plugin will help me out with my current project
would that error be from - @PluginDescriptor(
name = "Mazchna Skipping",
configName = "mazchnaskip",
enabledByDefault = true,
description = "Mazchna Slayer Boosting",
tags = {"slayer", "boost", "overlay", "task", "mazchna", "canfis"}
idk how thats there? i dont have it in intellij or on git? did i somehow do it when submitting?
yeah no i see that part, but i cant find the plugins file anywhere on my git/ide file
oh ffs i was looking on my plugin git not the plugin hub one
got it so i just named it wrong when submitting i guess, ill do a few small tweaks a resubmit properly
just push a new commit to your plugin hub fork that updates the file
dont need a new pr
hey guys just resubmitted my commit, missed a plugin name lol, just wondering - when i go to test my plugin it shows no errors, so is there anyway i can test these if they run properly in the future so i dont have to submit it multiple times?
your situation is only because you're using a brand new github account
and they dont let those auto run workflows, otherwise you'd just see within a minute if the build was successful or not
ohh gotcha, thanks 🙂
I registered one of my objects to the event bus like so:
@Inject
void register()
{
eventBus.register(this);
}
but I noticed after shutdown it's still receiving events because I have no way to unregister it. What is best practice for event bus registration? Do I just handle registration in my Plugin's startUp() and shutdown()?
yes
How can I make, test, and release a plugin. Is there a guide somewhere
How to develop plugin-hub plugins: https://github.com/runelite/plugin-hub/blob/master/README.md
Ty ty
Are there guidelines on what is and isnt allowed
Thinking of making a plugin that shows you the stepback method for muspah
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
that would not be allowed i guess
Ah mb im on my phone rn
ah
Hmm that just says it was removed cause it told you what to pray too
Well, how do you intend to show the stepback method for muspah? 🙂
Was gonna have tiles around muspah light up
Yea, you can't do that
is there a way to change linked github account i made a new account to have the same names
can you add colour outlines to the boss i think iv seen this done on muspahs different phases?
If they're to indicate the style or timing of an incoming attack, no
fair
I have lines around an npc, if the player moves past those lines the lines change colour. Would this be considered automatically indicating where to stand or not to stand? And if i have a timer changing colour and not those lines would that still not be okay?
Alright cool thank you, I want tk build something bit ill have to do a bit of research first
The line crossing thing seems bad, but having a timer change its' colour between ticks without any connection to events happening around you is probably fine (I think the Visual Metronome can already do this)
There may be some nuance I'm missing there...
im having trouble doing 2 pr for seperate plugins can anyone give us a hand before i spam the log
Use a branch for each plugin and pr each bracnh to plugin-hub
i did make seperate branchs but they seem to include each other in the plugin files im pretty new to github as well so that doesnt help
it's probably because you made the first one from master
Then im guessing what i have now wouldnt be allowed? I check the distance between player and npc. If that is above 8 i have the radius marker and pie component change colour. Changing colour on the distance to an npc (also when the npc moves) wouldnt be allowed im guessing. Just double checking before im asking for a review for plugin hub later so i can change it before then :D
just commit out the "other one" from each branch
we squash hub PRs so it doesn't matter if there's
"add plugin 1"
"add plugin 2"
"remove plugin 1"
easy cheers
hmm i must be missing something if i delete plugin 1 form branch 2 it also deletes plugin1 from branch 1
yeah sorry just realised it opened to changes
very new my bad hahha
thanks for the help
I don't see anything specifically mentioning attack ranges, though it could be interpreted that indicating a specific distance is good or bad is an indication of where to stand (or not stand)
By that logic, this would be rejected on the hub
By design, the list of things that are blocked by plugins is not exhaustive - players are a creative bunch 😄
at the moment the only way i can play test plugins is by using a legacy account and runing the client through intellij, is this the only way ?
👍 ty ill remove it
It wasnt for any attack range, it was purely to show if the player would get a bitternut in trouble brewing or if the npc that spawns when doing grubs is able to despawn
Ah, you might be fine with that - boss rules are a little more stringent, see
Hey guys, trying to ensure im super cautious regarding rules. Im thinking about adding a feature to my plugin, but want to confirm what is meant by the rejected feature: Plugins which "crowdsource" data about other players, such as player locations, gear, names, etc.
Does this mean i cant report the location of OTHER players, but i can report location of the players using the plugin? Then am i allowed to retrieve all of these voluntarily reported locations (plugin installed & config enabled to report location) in the plugin?
Thank you!
It means like reporting the gear of everyone you see in the wilderness isn't allowed. The intent is scouting those kinds of things
Ah that makes sense, thanks for clarifying 🙂
As far as a plugin letting its' users see the location of its' other users subject to config, that's basically the Party plugin 😄
though I suspect the net's a bit wider in your case
yes definitely haha, Still in 'planning' phase anyways, thank you!
Type
Incorrect behavior
Operating System
Windows
OS Version
11
Bug description
I was lucky enough to get a Moon key as a reward from the Chest (moon key) in Neypotzli.
However, while the loot tracker tracked the Splinters, it did not track the newly acquired key.
Screenshots or videos
Forgot to take a screenshot, but I promise this is a legit bug lol.
RuneLite version
RL version: 1.12.18
Launcher version 2.7.1
Logs
No response
does the key get removed the same tick the chest opens?
Quick question (and not sure to ask here or in #support)... If I run the plugin I am developing via Intellij and set the --debug argument; Is it (and how) possible to suppress other debug statements and only show those that are from my package?
the most recent build.gradle should do that if you run the gradle run instead of running the test class directly
yes, i think so
would that error be caused from the key being removed and replaced in the same tick so cant detect diff in inv? just curious trying to learn
that is the one from 3 months ago right?
if it has this in it
Yea, i have that. This starts runelite in debug mode, but im still seeing a lot of debug logs not related to my plugin
ah yeah it still shows core debugs but should exclude hub plugins
which are usually way worse
im seeing a lot of spam from OpenGL
Oh... well, i guess adding <logger name="net.runelite" level="WARN"/> to my logback test config removes nearly almost all unrelated logs 😮
ah yeah that should work
actually not sure why the gradle run task has --debug as the logback-test is trying to set core to info and your plugin to debug and that overwrites it
Oh that's very helpful. Thanks.
whats the rough time line for getting a plugin approved?
days to weeks to years
I think they’re currently over loaded with updates and new plugins, I just refresh the PRs page like I’m tracking a package delivery 😂
haha basically been doing the same
is there a risk of using plugins in dev before they have been approved
if they're not rulebreaking, no
sweet
In the runelite PartyService or PartyMember is the displayName ever set (this should be the users discord handle right?), because the discord img is loaded when the user connects their discord
I've been looking at the docs but I haven't really found an answer to this, what is the runelite event bus used for and why should I use it? (Next to the onTick, onEvent and the other triggers ofcourse)
events come from the event bus
Basically if you want to react to pretty much anything that happens in-game, then you'll be using the event bus
iirc your plugin gets registered on the event bus at startup (but I may be wrong)
Got a question regarding the Low Detail plugin.
Are there jagex limitation on including a text input to allow users to input their own gameobject ids they'd like to hide?
Having a user input IDs for anything is awful ux
https://github.com/runelite/runelite/wiki/Rejected-or-Rolled-Back-Features includes a provision against ID-based plugins, which presumably includes a retrofit of an existing plugin to include them
ok so they have to be hardcoded and not allow user input sounds good.
Hey again! I am wondering if there is an identifier to the signed in users which is fixed and does not change if the player changes their character name so that I can store some player related state (which does not get lost on name change)
are you still allowed to have features behind passwords like the coflipper plugin?
nah haha was more wondering about having a plugin made for commission, wondering what the best option for that is
ConfigManager::getRSProfileConfiguration probably
That is fixed based on the character or on their runelite profile?
Ah I see. so its just a different method using the same interface getting the exact value im looking for. Thats perfect! Thanks 💕
Keep in mind that someone could just fork it and remove the password stuff
yeah didnt really think of that, got any ideas for protecting it, or should i just let them run it from dev mode on their comp?
What are you trying to protect
There isnt a way to protect it, but imo you shouldnt want to anyway
yeah what just give them the plugin and have them pay you
i think end goal is free access plugin but they may just want to start a series first
There's been a couple of cases where a content creator has had something bespoke made, I know that much
Yeah they would just be running a shadowjar or running from source
I can't see any plugin ever making it to the hub that does nothing without some password being provided to it
yeah totally understand that
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 think its that
sweet
So, I had RuneLite installed via snap, and this experience just emphasizes why I never install anything from these "convenience" installers. Basically, it seems that snap's sandboxing was preventing RuneLite from seeing the updated openGL drivers (that's my suspicion, at least). This was confirmed by downloading the AppImage from the RuneLite website, which immediately ran with the GPU just fine. I've had RuneLite installed via snap for years without issue, but it suddenly decided to break,...
whats the best solution for a client to run the shadow jar without making them get an ide?
allows loading into jagex accounts?
there isnt a good way to distribute custom builds to people who also have a jagex account
you could tell them to do the --insecure-write-credentials thing
Place the files for the feature you want in %userprofile%\.runelite on Windows or ~/.runelite/ on Linux/OSX
The names and type for the files are:
- Custom cursor:
cursor.png - Custom default notification sound:
notification.wav - Custom specific notification sound:
<name>.wavin.runelite/notifications, then select<name>in the notification sound dropdown - Custom login screen:
login.pngImage size 765 x 503 recommended, larger images will be (simply) scaled down automatically.
can someone move this^ to the wiki and then also add the new font stuff and then also update /custom to point to the wiki?
after lunch i can look into it
ty
@upper valve apologies for tagging you.
Im guessing you kinda remember my name from the PRs, but im the publisher of Choicer plugin.
Id like to ask to disable/remove it from pluginhub
sure, just submit a PR that adds a line disabled=at author's request to the manifest file
(thats the runelite-plugin.properties right ? sorry)
the hub manifest file
no the choicer file in the plugin hub
That file
thank you!
Type
Performance
Operating System
Windows
OS Version
Windows 11
Bug description
Hello.
I am getting fps loss when I move my mouse.
If I quickly move my mouse in circles I can get as low as 30 fps from the 50fps cap.
This happens at 1000hz polling rate, and all the way up to 8000. Sometimes it seems ok at 1000hz. Cannot seem to reproduce it with 500hz setting.
If I hold down mouse1, mouse2, mouse3, or mouse4 fps returns to normal.
Reproducible in safe mode, issue appe...
Brutus counts as a cow, so it should be recognized as a valid cow slayer target.
nice
Are there any issues with a feature of a plugin being dependent on another plugin being installed?
probably not since lots of plugins have shortest path integration?
ty
as long as thats communicated well
To the other plugin maintainer, or user?
wonder how many are like that, how many would there need to be to consider a "dependsOn" in the runelite-plugin.properties
user
Rock Crabs and other NPCs that disguise themselves, like rocks for example were not being recognized as slayer targets because when they transformed into their attackable form, an NpcChanged event fires rather than NpcSpawned. Since there was no onNpcChanged handler, these NPCs were never added to the targets list, causing plugins that rely on getTargets() like the Slayer plugin to not recognize the slayer monster. This adds an onNpcChanged handler to handle this case.
A friend has now replicated and it works the exact same on his machine. He has a different machine.
What cases exist where a monster would be a target originally, then not be a target after transforming?
Are there any updates on this?
What I was thinking of was the crab transforming back into a rock so I understand that point, since you can't attack a rock anyway, it arguably doesn't matter if it stays in the target list. I included the remove for cleanliness so the list accurately reflects what is actually attackable at any given time as the game no longer shows an attack option and they are classified as a rock in the menu, but I can just remove the else block if you'd prefer to keep it simpler.
Is it possible for my plugin to use RuneLite account to authenticate with my server? Is there some way for my server to verify the auth token? Do any plugins do this already?
no
Is there any possibility of that ever happening?
probably the best form of an identity you can grab would be at a runescape account level (acccountHash), which wouldn't be really secure / might not fit what you want but figured I'd share it anyways just in case : )
its technically possible, but I don't think we would really want to do that
In what way is it not secure?
there's no way for your server to verify that the user who claims to be some player is actually that player, could just spoof account hash technically
So it's spoofable in the same way any token based auth is spoofable?
Ahh. Is it effectively private though? Beyond other plugins exfiltrating it
correct
One issue that will arise from this is that targets is a List, but some monsters can transform between forms which would both be highlighted, eg. Wyrms. This code as written would end up adding those monsters to the list multiple times, and resulting in them remaining in the list after despawning. I recommend either removing the npc from the list before re-adding it if it is a target, or considering whether this collection can becom...
You can just check .contains()
checked with .contains and also removed the else
@reef badger my git finally passed the inital tests, just wanted to say thanks for the help ❤️
01946cd update clue-teleport-helper (#10790) - kitten-lissy
336e493 update flipping-copilot to v1.7.22 (#10799) - jptrs93
I just wanted to check on the rules around menu entry swapping, in relation to a plugin PR we just received. The proposed feature would change the modify/abort menu entries on GE slots, based on data sent from a server which is doing market analysis. Would this be allowed?
I've been told that there are already plugins which swap menu entries based on the region you are in, so there is some precedent for conditional menu entry swapping.
are we allowed to change the skull cosmetics?
https://github.com/runelite/runelite/commit/cf73aed83ca12e2f92009690c3360ebd2e1a31ef
When is this change slated to release? I got a report about better npc highlight crashing with latest upstream changes when using the outline highlight. I'm guessing because it changed from npc to actor.
I won't have PC access until next week after today, so if this is releasing soonish I need to know to make sure the plugin isn't broken for an extended period
that feels different than menu-entry-swapping based on region to me, so I'd definitely question that change if it came to the plugin hub review queue
next RL release, which typically follows the jagex game update on wednesday, but only if the game update does something rl needs to release for
What would the fix pattern for this even look like? We would need a function overload that still accepts npc and is marked deprecated
cast the actor to npc?
Otherwise I can't fix until it's already broken
My point is I can't push a fix until it's broken
Not how to do it
you can submit an update and we can just mark it as hold for release
Alright will do
based on current experience and past conversations I found in this discord this does not work. You need to use "{build number}-SNAPSHOT"
latest.integration does work to test it locally, if you want to test an unreleased build
that worked, and looks like it targeted the latest snapshot
workaround was to look at all the snapshots latest.snapshot downloaded and manually type the newest one. same result but annoying that it had to download a few 100 snapshots
i think latest.snapshot just isn't a thing, so it goes searching for things that do exist
oh, oopsie
I dont even know what the reported issue actually was I guess because npc already extends actor, so nothing is broken as far as i can tell.
they might be running the latest snapshot and applying the hub from the previous version, which isnt very compatible if theres api changes 
I cant find the guy who opened the issue to tag him here so hopefully he responds to the issue. is the maker of the potion storage customizer plugin
(This was accidentally sent in General Chat - My Apologies! - Reposting here!)
I've been working on this Plugin for RuneLite for several months now. It has a party hub built into it, that connects to the same client-side backend, utilizing all the same feature types as Hub Party Panel/PartyService - My original Plugin idea which has been taking me several months to develop has been very tiring, with working a fulltime job 100+ hrs every two weeks.
I was thinking that the Party panel portion of it might be better suited as an improved update to the existing RuneLite PartyService Plugin, and was wondering if this is an option?
I don't like feeling as if I am stepping on anyones toes, regardless of whether or not it's public access
The Plugin party portion I refer to as "RaidParty" which obviously can be utilized for bossing as well. There are three fundamental reasons why I built RaidParty from the ground up rather than just slipping a PR into StonedTurtle's plugin.
1: Combined Party creation and Party Inspection into a single interface - Currently, users are forced to use two separate plugins taking up two sidebar menu slots. RaidParty absorbs the passphrase generation, joining, and leaving mechanic directly into the inspection panel.
2: RaidParty is also an inspection and communication tool, setting apart from Hub Party Panel which is only an inspection tool. - TheStonedTurtle's plugin is really great, and used a lot when looking at what gear your party is wearing, stats, inventory, etc, but that the entire scope. RaidParty introduces an entire suite of PvM communication tools. Such as:
-- 3D Ping System (Customizable): Safe, Caution, Danger markers hotkey placed for quick communication on tiles in the world natively synced across the party. Can also be enabled/disabled
-- Audio-Cues (Customizable): Can also be enabled/disabled
-- Hotkey Communication (Customizable): Overhead chat messages which bypass the standard chatbox broadcast. An entire mapping of hotkeys, 3d world overlays, and sound injections into StoneTurtle's plugin would bloat it way beyond its initial intended purpose.
3: A significantly flatter focused UI: Focuses entirely on fast-paced raiding/bossing, the codebase strips out a lot of the visual fluff and nested scrollbars. It's a UI that focuses on hotkey setups and instant communication readouts natively alongside the core stats [hp/prayer/spec/etc] rather than just being a passive viewer
What are audio cues
When the ping hotkey is activated - It utilizes sounds, much like the native Party plugin does, straight from those by Jagex. these can be turned off of course.
It's much like raiding or bossing - Some people play OSRS without any sound at all and focuses solely on visual queues, whereas others in raids or bossing focuses on audio cues to know when to pray, move, etc. These function much in the same manner.
you might want to call that ping sound
Yes, of course, lol. In the plugin they are Ping Sounds, I was just trying to explain it. Thank you.
We have a pr open for pings I think
Oh I guess we have that already, sorry I don't have friends
Ron, the native pings are cool, but they are strickly menu-entry based and only draw a basic colored square on the floor. Which I am not downplaying at all.
In high-level pvm (and even in low-level for those learning) nobody really has time to right-click through menus. RaidParty binds 3 entirely different semantic pings (Safe/Caution/Danger) directly to keyboard hotkeys so they can be dropped in a single frame(tick) while running, etc. It also explicitly hooks into the audio engine so your team hears the ping type without looking, and supports hooking directly into moving NPC's. It's built for pvm speed, not just marking a tile before a fight starts.
menus?
I was misinformed then. May I show a demonstration?
Stand-by...
You shouldn’t need to make any changes
Snipping not recording audio - give me a moment, I apologize....
These ping sounds are fully customizable and can be turned off. Along with the 3d model above the pinged tiles.
this pr covers that I believe https://github.com/runelite/runelite/pull/15721
I want to also state that originally - I was creating an entire ecosystem plugin on my flask backend for a Raid/Boss LFG. In hopes to eliminate discord LFGing completely. The pinging/com system was just an addition to this all-in-one queue plugin. I only recently put this idea on the backburner, and decided to reach out to StonedTurtle about integrating my system into this, where he recommended I reach our to Runelite and see if they would rather do it instead.
Therefore, I am not specifically here to debate or argue for my RaidParty plugin to be approved, but rather to see if it can be utilized as an update to the prexisting one.
wow thats cool
it needs some tlc
The wheel idea.. Yeah, I will admit that crossed my mind originally.. When I first began this queue system a couple months ago, I originally made it a right-click option, then a wheel option, then to a hotkey.
I've seen the pr 15721 and while the ping wheel is really cool for casual, slow planning, it inherently conflicts with fast-paced or high-end pvm.
-- Input speed (mouse/keyboard) pr 15721 requires the user to stop their mouse movement, hold shift, right-click, and drag through a radial menu. You're not doing that in an intense raid, your mouse is your most valuabnle asset. RaidParty completely decouples pings from the mouse menu.
It apparently also needs tlc >.>
which is just rebasing and replying to feedback
I for one would be concerned that such a plugin could be used to do indicators of the Sotetseg path for party members (which would be bad™), but idk if even the ping functions work there
we already have ping. If its not an issue there already, why would this make it one?
I guess it's somewhat offset by also having to do the mechanic, plus the slightly delayed nature...
the mazes are separate, it doesnt work there
I was not aware of this, consider my concern quashed 😄
Ron... It's good that those fuctions were added to that pr (15721), solved the APM issue, but... That actually higlights exactly why RaidParty is it's own plugin. That pr only solves one tiny slice. RP is not just a pinging tool. It's a complete pvm coordination suite. It merges everything into one, lightweight side-panel without bloating the client with multiple plugins to effectively function doing a raid or boss for example. Instead of users having to download and manage 3-4 separate plugins to get their group together, etc.
Psyche,
I've heard that actually and I have discussed it on my community discord, where months ago I originally started developing the queue plugin (as we're a raid/boss (pvm) community. It was considered when building this because jagex's strict ToS regarding the SOTE. To answer your qestion... It CANNOT be abused for SOTE.
1: Hotkeys - The plugin doesn't read world data to autodraw paths. The only way to generate a ping is by a player physically moving their mouse over a specific tile and pressing a hotkey. I don't think this can be possibly done fast enough.
2: The pings decay after 4secs (currently) there is no line drawing or to make it perm.
I was also going to type out what Hannah already stated.
What is happening
I was finally replying to your statements earlier, but extended to after reading more feedback.
I can send much smaller sentences instead of paragraphs if that helps.
you can make whatever hub plugin you want
Some people like to get a feel for whether things will get rejected before they start 🙂
You're not wrong Psyche.. I'm certainly not one that want's to waste my time. However, I think Ron is being negative instead of understanding my initial reason for even bringing the idea here.
oh they are replying to your username, thought this was some high level conversation
Sorry for my choice of name, Ron 😄
I wanted to present my idea, that although has functions that are similair to those that have been implimented elsewhere. I was requesting or otherwise asking, if I might be able to present it as a potential update to the preexisting native party plugin, rather than it being a standalone possibility.
what exactly do you want to add to the native party plugin? Because the overall raid plugin you're describing is not appropriate for the core client
I apologize if I don't understand why it's not appropriate for the core client - Assuming it's too comprehensive for the basic client. I was looking to see if the team was interested in mering the inspection profiles, hotkeys, audio, and highspeed pings directly into the party plugin. Since comprehensive raid features are not appropriate for the vanilla client, I will happily pivot this into a dedicated, standalone plugin for the plugin hub..... Thanks for the clarification...
it would be fine for core content but nowadays it is preferred to make a hub plugin instead
the contextual pings looked interesting
the party stuff might be fine, I'm referring to this stuff as being hub plugin:
I was creating an entire ecosystem plugin on my flask backend for a Raid/Boss LFG. In hopes to eliminate discord LFGing completely.
though re-reading you did say that was backburner
Yes, that's my original development. (still developing...)
These features that I have been discussing was a core feature in my original development.
But I have been spending months with the queue system, and I am tired... it's functioning, but I also have to eliminate abuse, etc, and so many other things that I just got tired.
So, I went to TheStonedTurtle with my core features within my queue system plugin and asked him if he wanted to update his plugin with them. He told me to come to you guys instead.
I will say it takes a lot longer for stuff to get into the core client (tending towards infinite time 😂) if the thing being changed is not actively broken currently
would need a green name to say if they will ever have any interest in looking at it
Yes, the native party service isn't broken. I just figured instead of users having to bloat their client with plugins. Maybe my idea can be integrated instead to "spruce up" /update the non-broken native party with features that will ultimately change raiding and bossing for the better.
the contextual pings i see it being more likely getting into core, the grouping system i don't, sadly
Unfortunately, I have not spoken to Adam is over 6 years. So, I am not sure how long it might taken, but if there was absolutely no interest, I would even take a "hell no" and I will just upload it for pending approval as a standalone
doesn't mean you can't make your phub plugin!
It's complicated to explain. I can understand that my queue system would probably never be considered, let alone read, haha! I cloned my entire core features, pings, etc, and created a standalone already (locally)
So, while although it still exists in the queue system, it also exists outside of it.
I've never though about creating a plugin or anything until near the beginning of this year. In the mean time, I will upload it to the hub and wait for a green name XD - I really appreciate all ya'lls input. I will still respond to any questions or anything of course. Thank you.
in the var inspector, is there any way to hide the vars related to time, like DATE_SECONDS_PAST_MINUTE
Not specifically like that, but you can blocklist individual vars by their ID. The right sidebar of the var inspector has that functionality
is there a setting somewhere i need to turn on or something?
i can't see anywhere on this that'd let me block things on the right
oh sorry, I'm thinking about the script inspector
currently hunting down varbits to do with various completion things. currently just a bit annoying having to sift through all of these basically
Not really as clean of an alternative, but I made the Action Logger https://runelite.net/plugin-hub/show/action-logger plugin on the plugin hub kinda for this purpose, for hunting down varbits related to quests when doing quest helper work.
It writes all varbit changes to a JSON file you can then filter through with jq or some other editor
You’ll need to add that functionality yourself 😥. I threw something together to filter/block/highlight stuff in the var inspector similar to the script inspector.
Hey! is there an easy way to detect if a player is a bank area?
no
Ah, that is a slight bummer. Then I'll have to map them out myself
https://www.githubstatus.com/
again it seems
Welcome to GitHub's home for real-time and historical data on system performance.
was having issues w/ push at work just now though it seems it worked eventually
someone vibe coding their prod configs again huh
Got it fixed. It was a simple change updating the mouse listener for the plugin panel from mouseClicked() to mousePressed(). This leaves the current configuration alone for mouseClicked() behavior when opening plugin panels requiring a press and release.
Regarding what ron said just below: "plugin buttons can also have a right click menu iirc". It appears so and I haven't seen any plugins that utilize this, yet.
I've made it so right clicking anywhere on the plugin bar brings up the reset popup menu. Just to be safe, it respects any plugin buttons' popup menus if they have one.
Curious on the consensus for the behavior of the menu appearing. Recording of current behavior attached.
i hope the reset order click shows a confirmation popup :D
it looks nice so far
There are hub plug-ins with it
I figured as such, seems super handy for implementing some quick access features. I'll take a look through plugin hub to see what some implementations look like. if you have any plugins that you know of that implement this, that would be handy
ah, that is not something i have any idea how to do. shame :/
Just added for you
there was a question earlier about some authentication stuff in plugins. semi related-ish, setting secret = true on a config item stars it out in the plugin settings, but still stores it plaintext. is there any use for that (or a new property) that makes the config store encrypted at rest?
Im not sure what plugins use that property right now, and what they use it for (maybe ive seen one that asks for an api token to somewhere?), but my thinking is it could prevent someone from accidentally leaking something if they share their config for debug purposes or example
I think its only used for the twitch plugin
its just to avoid sharing oauth tokens on stream really
fair enough, if that is all it is meant for
thats what i get for opening vscode right after work. i work in identity so brain is still in that mode
@tulip wagon is this the appropriate channel to ping you for sailing plugin? I'm interested in contributing to fix some edge cases and add some of the suggestions to achieve parity(as much as possible) with the mobile jagex app.
yep!
just note i'm pretty much mia until next week
😔 Stale
The timing of releasing GEX and (current feature of) Data-logger
Hi there, I was wondering what I can expect in terms of timeline for the review of my plugin I submitted last friday. Is there anything I can do to help making the review easier/faster? Not trying to push anything, as you'll are pretty swamped in submissions
Ooh definitely! Thats always step one of a PR ;p
I was thinking of adding documentation to the code with the intentions of what certain things should be doing (not what they are actually doing, thats in the written code itself)... Or anything that may help with readabilty of the code
But i dont know if that is helpfull to the reviews at all. Might be adding more bloat
documentation is not relevant we review the code we can't take your word for what it does
otherwise that would defeat the purpose of reviewing
Sure! But I was more like; im new here - maybe what i intented to do, can be doing way easier
Maybe another question than ;p I tried some things starting my plugin using a Jagex account, but all failed attempts. I am currently using my old Rs3 account to sign in using username & password, but that limits my ability to correctly add functionality in the non-f2p areas.
Im starting the plugin using ./gradlew run
Yeah. I did that 🙁
Picked up _JAVA_OPTIONS: -Duser.home="/home/mhollink/snap/runelite/common"
2026-03-04 07:53:18 CET [AWT-EventQueue-0] ERROR n.runelite.launcher.LauncherSettings - unable to save launcher settings!
java.nio.file.AccessDeniedException: /home/mhollink/settings.json
is $HOME or $HOME/settings.json write-protected or not writable for your user?
I guess the file does not exist at all
$ ls -l settings.json
ls: cannot access 'settings.json': No such file or directory
probably snap being stupid or something
Yea, I am guessing the same. I'm going to try an see if i can get the appimage to work
$ ./RuneLite.AppImage --configure
2026-03-04 08:12:52 CET [AWT-EventQueue-0] ERROR n.runelite.launcher.LauncherSettings - unable to save launcher settings!
java.nio.file.FileSystemException: /tmp/.mount_RuneLiihPgNa/settings.json: Read-only file system
Welp...
Is there a way to dictate where the settings.json is read from?
I assume you are launching with bolt?
Never heared of bolt 😮 so if its a default thingy - maybe?
are you running the jagex launcher in wine?
I cant remember how I installed it, Was some time ago when Jagex accounts became a thing. I used something called a flatpack
But seeing some docs, I guess that might be Bolt
bolt screws with stuff so it doesn't really work right, you need to make bolt launch it with --configure
then copy the credentials.properties from wherever bolt makes runelite put it into the real ~/.runelite
Is there any source of information on how i can check if im running it via bolt? and if so, how to pass it the --configure flag?
does it say bolt or jagex launcher when you start bolt or the jagex launcher?
The panel title is Jagex Launcher
Also the launcher title itself is Jagex Launcher (just to not create confusion)
so you need to run the runelite from in wine in the flatpak I guess with --configure
or otherwise drop a settings.json in it's install dir
or otherwise find a way to steal its env vars
Ooh, i guess i found this:
[Desktop Entry]
Type=Application
Name=Jagex Launcher
Comment=The Jagex Launcher is the new home for Jagex's PC games library. Discover, install, and play games from the RuneScape universe and beyond.
Terminal=false
Categories=Game;
Icon=com.jagex.Launcher
Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=/app/bin/launch.sh com.jagex.Launcher
X-Flatpak=com.jagex.Launcher
So i guess its run by using flatpack run ...
Plugin spamming NPE post-sailing updating while on a boat
Check repo to see last commit is 4 years ago
Can't even open an issue
It's cooked 😔 I cba taking over it either
Sounds like the kind of plugin that should probably get disabled, but as long as it's not actively breaking the game it'll stay where it is 😄
e4bed54 Update Widget IDs to 2026-3-4 - RuneLite Cache-Code Autoupdater
51ece21 Update Item variations to 2026-3-4 - RuneLite Cache-Code Autoupdater
5ccb8a8 Update Legacy ID classes to 2026-3-4 - RuneLite Cache-Code Autoupdater
35598aa Update Scripts to 2026-3-4 - RuneLite Cache-Code Autoupdater
f63280e Update GameVals to 2026-3-4 - RuneLite Cache-Code Autoupdater
I assume that is for removing the one from the aniversary event
or was unused anims that they are cleaning up
Oh is that why we also removed them from the legacy NpcID? 🤔
😔 Hopes and dreams shattered, thank you
f9eec43 API docs for 1.12.19 - RuneLite updater
2fb7234 Release 1.12.19 - RuneLite updater
SKILL GUIDES IN DB TABLES
I CAN REMOVE THE CS2 JANK
i presume my plugin about to break now
These plugins failed to build:
hunter-rumours odablock party-play unmutedjingles fixed-resizable-hybrid cox-scouter-external runelingual virtual-level-ups
@sand wing @stable mural @clever basin @fleet vine @misty meteor @quick path
Screenshot plugin has a error btw since varbit 9452 does not exist now
you are not using the release
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 10
Bug description
As of the most recent update, there are default icon-shaped glow artifacts behind the skill icons in the skill tab when using the Interface Styles plugin's 2010 gameframe option. Does not happen with other gameframe options. Tested in Safe Mode.
Screenshots or videos
RuneLite version
RuneLite version: 1.12.19
Launcher version: 2.7.1
Logs
No response
Is there a way to look at a TileItem and know reliably whether it's a mapped down item spawn, like Varrock leather body on a table? Wondering how feasible it is to crowdsource item spawns
why did they add background sprite you can't see? is it for locked skills?
its how they doing the glow i think 😆
dunno why they went with a glow and not a visible cycle like rs2 seems like a weird choice does not even look good imo
it's not visible at all tho
i was wondering the same thing. why not just toggle a visibility rather than keeping a background sprite behind an always rendered sprite just so they can scale it outward when needed. like at least toggle vis for it too
are you looking at this interface styles thing?
ye why i said its weird they added just for "glow" defo bettr ways to do it
Jagex gotta Jagex
the rs2 one where it did a pulse was a lot better imo made more sense probs did it not to be like rs2 tho
iirc RS3 flashes the icon rather than applying a glow
ye been like that since early rs2 much better
game jam quality
It's not bad, it's just different 🤷
is it an actual glow? I just assumed they would lerp the scaling of the background sprite so it pulses out from behind
is there a reference anywhere of what its supposed to look like when it happens
i think it looks rlly bad tbh
they just edit the main icon alpha pretty much
so show the under sprite
Yea, it's definitely one way to do it
thats even worse imo lol
what it looks like visually anyways guess ill check cs2
you want to volunteer for the engine work
https://cdn.runescape.com/assets/img/external/oldschool/2026/Newsposts/2026-02-10/flashing.gif is the image they included in their news post
now you can see why interface styles broke 😄
meh. i think an outlined glow would look better
don't think cs2 can do that
why dont they just ask chatGPT to make it in UE5
ok that image is triggering me, the Prayer icon is also using the effect but it's out of sync with the rest
and not as bright
i bet the pulsing timer starts on the level up tick instead of an in sync clock
unplayable
in what world would you level Attack, Runecrafting, Herblore, Fletching, Mining, Cooking and Sailing in the same tick? 😄
you could just time the ticks in cycle
I suppose, but this is funnier
they prob did that example in a dev env
but say you level attack, then 3t later level hitpoints. now u got two glows offset by 3t. assuming thats what happens
Sadly I don't have a noob account I can test that theory on atm
eh, they aren't even solid yellow images
they also do this if you're not on the skills tab and I hate it a lot https://i.guardian-bs.fun/image/d8290691-2815-457a-aaab-c1cc0eed7d2a.gif
interface styles disable glow option????