#development

1 messages · Page 7 of 1

worthy sparrow
#

I mean it is, its usefulness is just arguable to different people

glad ermine
#

I need to make sure my names don't overlap because I get strange unexpected behaviour otherwise

reef badger
#

i would think it's expected that if you type the letters in order for the tag in, that the tag shows up yeah

glad ermine
#

Yes but I'm not searching the bank in this case, I'm using the bank tags layout plugin

reef badger
#

i couldn't think of any reason why i would have tags with the same name

glad ermine
#

So then it's a bug in BTL for not doing exact matching in that case

reef badger
#

do the names matter even in the slightest, when using that plugin?

stuck shale
reef badger
#

they could all be named JEdkWRwPJWRJPWR

glad ermine
#

Apparently they do because I just reported a behaviour that's caused by having overlapping names

worthy sparrow
#

it uses bank tags under the hood

glad ermine
#

I have yama and yama-magic

stuck shale
rancid marten
#

I think we "fixed" this once and a bunch of people got mad

#

was awhile ago

#

atm its the intended behavior

glad ermine
#

they're now called yama, yamelee and yamemagic

#

but I dislike having to do that 🤷🏻‍♂️

reef badger
#

like Adam mentioned if we change it then the people who like this can't use it anymore

glad ermine
#

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.

reef badger
#

when you can change what you have to not have this issue, they could not

glad ermine
#

I don't need bank tags to change

trail marten
#

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

glad ermine
#

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?

trail marten
#

you can easily hide items

#

but yes, it relies on bank tags to filter

glad ermine
#

Why would you need to reimplement bank tags to get this working (as expected by me lol)?

trail marten
#

just part of it

#

just a few lines really actually

rancid marten
#

i cant find the commit where we fixed this before

glad ermine
#

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

ember flareBOT
trail marten
#

at least, that's what I would want it to do

rancid marten
#

we could maybe try that again and measure how many people are mad

hollow parrot
#

can we also measure how many people would be happy

quick path
#

given how infrequently we hear complaints about how it works now, we already have an idea of that number

trail marten
#

even fewer people come in to complain that they are satisfied with it

worthy sparrow
#

how rude of them

quick path
#

that's not how things work? people don't complain about behavior they don't mind

restive garnet
#

thatsthejoke.jpg

ember flareBOT
ember flareBOT
upper valve
#

k there is nothing in the queue older than like a week now

rugged pivot
#

perfect time to drop my 10k diff

upper valve
#

[[donger]]

reef badger
#

ヽヽ༼༼ຈຈل͜ل͜ຈຈ༽༽ノノ

heavy bobcat
#

Rikten go brrrrr

tribal sparrow
#

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?

glass sandal
#

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

upper valve
#

you're using jaco right

#

it's just picking that stuff up through jaco you can ignore it

ember flareBOT
#

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...
ember flareBOT
ember flareBOT
ember flareBOT
topaz pierBOT
sinful lava
tribal sparrow
ember flareBOT
tribal sparrow
#

^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)

GitHub

Replace OSRS music tracks with user defined music. Contribute to alowaniak/music-replacer development by creating an account on GitHub.

late hare
#

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

tribal sparrow
#

They shouldn't anymore but there was a bug where they were

late hare
#

because those two cs2 calls would be sending 1 packet each

ember flareBOT
#

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

#
[runelite/runelite] New tag created: runelite-parent-1.12.18
#
[runelite/static.runelite.net] New branch created: 1.12.18-22393973430
#
[runelite/static.runelite.net] New branch created: cache-code-2026-02-25-rev236
ember flareBOT
swift knot
#

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?

glass sandal
#

That just happens when you run the plugin test. I assume shadow jar as well. Should be fine on the hub

swift knot
#

Sweet, thank you

ember flareBOT
ember flareBOT
ember flareBOT
hollow stratus
#

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?

sinful lava
granite quest
#

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

GitHub

This could be a setting, probably default, or just make it permanent. You can't interact with items on someone else's boat at all. All you can do is see it and the only use for that is clut...

solid shadow
#

can just set this to "drops" right?

trail marten
#

dear god

granite quest
#

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

misty hornet
hollow stratus
# sinful lava A user can right-click the config label and click "Reset" to reset it to its def...

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

granite quest
sinful lava
trail marten
grizzled aspen
#

i'm personally not sure why this would need a reset button when i could just put them wherever i wanted

trail marten
#

someone is gonna come in and ask for it. but yes it really is their problem isn't it 😛

hollow stratus
grizzled aspen
#

yes i see that but i still don't see why that is actually a thing

rancid marten
#

I think I said this before, but just having a context menu on the toolbar to reset would work I think

hollow stratus
#

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 😅

hollow stratus
grizzled aspen
#

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

rancid marten
#

look for use of JMenu

trail marten
#

what if instead you could just add buttons to the config, is that a really hard thing to do?

rancid marten
#

no, but i dont think it is a very good ux to reset the sidebar that way

hollow stratus
trail marten
rancid marten
#

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

trail marten
#

yeah it's weird to have an "enable otherwise unobtrusive feature"

hollow stratus
#

but yeah, it could be just always on, right click toolbar to reset

rancid marten
#

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

hollow stratus
#

configuration of hotkey is what I designed to prevent exactly that 🙂

amber rampart
#

I would probably make it like the windows taskbar where you can just unlock it with a context menu

hollow stratus
#

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

rancid marten
hollow stratus
amber rampart
#

it could be tied to alt like everything else we have

hollow stratus
hollow stratus
amber rampart
#

yeah

hollow stratus
#

I like it. Simplifies things. Working on a JMenu version now

hollow stratus
#

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

ember flareBOT
worthy sparrow
#

Having only a hotkey would seem like an annoying inconvenience because we don't really have an open and obviously hotkey modifier

ember flareBOT
hollow stratus
#

I think you're forgetting the runelite config drag hotkey. Using that would keep the hotkey usage consistent across the application

worthy sparrow
#

What

hollow stratus
#

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

sinful lava
worthy sparrow
#

Sure, still annoying though

#

You will need a menu to reset it anyway

hollow stratus
#

I got you ron

sinful lava
#

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

hollow stratus
#

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

worthy sparrow
#

Both > menu > hotkey

#

Is how I view it from ux

hollow stratus
worthy sparrow
#

I didn't say that

hollow stratus
#

can you explain? Your messages are pretty short which makes it easy to misinterpret what you were saying

worthy sparrow
hollow stratus
# worthy sparrow 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()

worthy sparrow
#

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

hollow stratus
#

menu = runelite config section or menu = right click?

heavy bobcat
#

Right click

hollow stratus
#

sorry the screenshot was misleading 😅 middle of changing things

worthy sparrow
hollow stratus
#

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?

worthy sparrow
#

No?

paper silo
#

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

upper valve
#

5-6k is no problemo

paper silo
#

im going through it now to see what i can cut out without dropping the whole use of the plugin.

upper valve
#

also lol at you randomly having 11k of unused panel code

paper silo
#

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 🤣

worthy sparrow
#

Do you really need 10k lines of swing

#

like really need it?

paper silo
# upper valve 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

upper valve
#

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

paper silo
#

i just dont want to burden yall or take time way from other PRs

hidden echo
paper silo
#

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)

paper silo
upper valve
#

that does nothing

worthy sparrow
#

it just gives us an idea of why

upper valve
#

but also your pr is sort of in the quantum realm

paper silo
#

gotcha, ill keep working on it and resubmit when i get it worked out. thank you for the insight

hidden echo
hidden echo
# upper valve but also your pr is sort of in the quantum realm

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

grizzled aspen
#

Why is it awkward. If you remove the questionable features it can just be enabled again

trail marten
#

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

hidden echo
#

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"

spice stirrup
#

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

upper valve
#

build.gradle

spice stirrup
#

Thought so. I had <version>-SNAPSHOT, and currently my plugin shows the short-form commit hash. Will it use <version> if I remove "-SNAPSHOT"?

upper valve
#

yep

spice stirrup
#

Awesome, cheers

ember flareBOT
odd oasis
#

Is it possible to do custom animations? I want to make new cow pet do this

ember flareBOT
reef badger
#

Note: when we automatically uncheck the box when we merge a PR, we still display the note

#

buh

trail marten
#

why does bank tag layouts require maintainer review?

#

(just wondering)

#

is it the mouselistener?

ember flareBOT
kind junco
#

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

low hatch
#

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. 🤷‍♂️

kind junco
#

But you can decide the offset

#

But yeah I agree probably not allowed, was just an intrusive thought

low hatch
low hatch
kind junco
kind junco
ember flareBOT
ember flareBOT
ember flareBOT
wind fjord
#

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

upper valve
#

how are you talking to the db from your plugin

wind fjord
#

rest apis+RPC for read write and websocket for live updates between party members

upper valve
#

what rpc

wind fjord
#

join_group
create_group
leave_group
post_unlock
get_group_members
kick_member
set_display_name
what i ahve setup so far

upper valve
#

basically as long as you're talking to whatever you're talking to over http/websocket (via okhttp) then you're good

wind fjord
#

so im basically calling it like this: POST /rest/v1/rpc/join_group

upper valve
#

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

wind fjord
#

gotchu ! thank you very much !
srry last question regarding this, where can I find the standard disclaimer message ? 😄

upper valve
#

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

wind fjord
#

awesome! thank you very much !

ember flareBOT
ember flareBOT
ember flareBOT
ember flareBOT
ember flareBOT
#
[runelite/launcher] New tag created: 2.7.7
hollow stratus
#

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

grizzled aspen
#

the mouse needs to have not moved a single pixel for some events for it to register if i remember

hollow stratus
#

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

trail marten
#

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)

worthy sparrow
#

plugin buttons can also have a right click menu iirc

rancid marten
#

the world hopper panel has a menu on each world

ember flareBOT
ember flareBOT
ember flareBOT
low hatch
#

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?

heavy bobcat
#

My understanding is that you aren't allowed to manipulate what a player types into the chatbox whatsoever

ember flareBOT
#
[runelite/static.runelite.net] New branch created: wiki-data-2026-02-27
raven terrace
#

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?

rancid marten
#

delete the whole file

ember flareBOT
rustic canyon
#

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?

glass sandal
#

Replicating the issue to verify you fixed it is probably a good step

rustic canyon
#

i guess I can add the int back and see if that changes anything

restive garnet
#

it's a load-bearing bombo

rustic canyon
#

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.

rustic canyon
#

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 😄

ember flareBOT
#

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 ...

rustic canyon
#

Ok it has something to do with the in-game settings which turn off camera effects.

frosty fern
#

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?

sinful lava
frosty fern
#

Cheers

ember flareBOT
paper silo
ember flareBOT
ember flareBOT
frank sapphire
#

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?

rustic canyon
#

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.

frank sapphire
worthy sparrow
#

delete .m2 folder

upper valve
#

this, this is always the answer

#

like we actually gotta replace /moremaven with /deletem2

frank sapphire
#

I'm still trying to find it

#

should it be at C:\Users\User\.m2?

upper valve
#

yeah

frank sapphire
#

i have .gradle , don't think i'm using maven

upper valve
#

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

frank sapphire
#

yeah weird, idk, i just don't have that folder there

frank sapphire
ember flareBOT
rustic canyon
prisma meadow
#

has anyone else that doesnt use intellij come along issues trying to simply build runelite with gradle through the terminal?

quick path
#

building on the command line works for me, what issue are you having?

prisma meadow
#

either javadoc related errors or issues with testing

quick path
#

build with java11

prisma meadow
#

which is weird since its just a fresh clone of the repo

#

with 11?

quick path
#

yeah, for some reason javadoc generation fails on higher versions

prisma meadow
#

i see

quick path
#

I use JAVA_HOME=/lib/jvm/java-11-openjdk-amd64 ./gradlew :buildAll, but the path might be different for you

neon haven
rancid marten
#

curl | bash!

prisma meadow
#

i was just using direnv to have java 17 only in the runelite dir

#

but ill try 11 and see how it goes

prisma meadow
#

ty

ember flareBOT
ember flareBOT
ember flareBOT
ember flareBOT
low hatch
#

pajaDank Has there been in uptick in vibecoded merching sites?

pastel tree
#

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.

quiet kettle
neat wyvern
# low hatch pajaDank Has there been in uptick in _vibecoded_ merching sites?

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?

neat wyvern
restive garnet
#

it reminded me of the apocryphal coconut.jpg story from TF2

ember flareBOT
ember flareBOT
ember flareBOT
knotty lintel
rancid marten
#

no

#

i just need to find some time to test it

knotty lintel
#

ok, lmk if you need anything! ☺️

stuck shale
#

I can try to run it and see

#

Maybe testing can help he’s the mac guy

rancid marten
#

i already had him test it

prime bane
#

I'm suddenly getting al these kinds of errors, even though I can still run the plugin through Intellij?

sinful lava
prime bane
#

thanks, ctrl + shift + a method didn't work for me, but through the elephant option and SYNC ALL did work

visual nymph
#

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

glass sandal
visual nymph
#

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

rancid marten
#

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

visual nymph
#

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?

rancid marten
#

only if gpu is on

#

you can interleave overlays in between ui layers though so that doesnt really matter

visual nymph
#

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

rancid marten
#

like another simple example would be you want the overlay to be above the inventory but below the right click menu

visual nymph
#

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

rancid marten
#

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

amber rampart
#

also would like 3x the ui upload time

rancid marten
#

you might be able to composite them on gpu or something using j2d

amber rampart
#

the upload is probably faster than using j2d

rancid marten
#

although I guess even if you did do that, you would then be relying on j2d upscaling which defeats the point

visual nymph
#

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?

amber rampart
#

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

rancid marten
#

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

amber rampart
#

we could precalc sprites at least with the gpu algos

rancid marten
#

yeah

amber rampart
#

its stuff like the minimap that would be weird

rancid marten
#

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.

visual nymph
amber rampart
#

compression would probably be slower

#
  • I'm not sure that would be a good idea for a ui texture
fluid stump
#

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?

late hare
#

the number is part of the sprite, so prob not

fluid stump
#

ye it at least in vanilla

#

bugs me 😄 i could redraw the count above it

ember flareBOT
upper valve
#

were any of those maybe causing string inputs in configs to not show up in the config panel

rancid marten
#

yes

ember flareBOT
low hatch
upper valve
#

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

desert fulcrum
rose void
#

im surprised they even try instead of just getting people to download jars

thorn grotto
fluid stump
low hatch
low hatch
#

Sorry I think I left the tag on

ember flareBOT
heady pond
ember flareBOT
neat wyvern
#

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.

sharp knot
#

Flipping utilities has had a paid version for ages fwiw

ember flareBOT
kindred condor
#

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

rancid marten
#

it will fire a script event for script 57

kindred condor
#

tysm will look into that

rancid marten
#

theres probably some existing plugins somewhere which hooks to it, not sure

fluid stump
glass sandal
#

I think action progress does

ember flareBOT
low hatch
ember flareBOT
ember flareBOT
ember flareBOT
tribal root
#

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?

trail marten
#

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.

tribal root
#

yes, voidwaker's ID is 27690 vs voidwaker (deadman)'s ID is 29607

trail marten
#

that's an item id

#

i mean animations

tribal root
#

oh

#

animations are the same

#

1378 for both

trail marten
#

are you under "animation swap" or "attack swap"?

tribal root
#

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

ember flareBOT
bitter marten
#

hey, i was wondering if anyone knows the best way to detect pet collection ?

misty hornet
#

Check the way Dink does it

bitter marten
#

what is dink, sorry im a little new

rancid marten
#

its a plugin

bitter marten
#

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

tulip wagon
#

@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

soft olive
twin rover
#

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?

misty hornet
twin rover
#

alright ill just wait then, wasnt a major update just a little qol

grizzled aspen
#

it isn't going to make a difference if you submitted yesterday

twin rover
#

how long does it usually take for the review? had like 50 ppl in cc bombarding me when its going to up lol

misty hornet
#

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

twin rover
#

yeah seemed like a few days at least on avg, not terrible, thanks for letting me know tho ❤️

grizzled aspen
#

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

twin rover
#

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?

glass sandal
twin rover
#

damn my capital letters

#

alright i swear im blind but ive checked every file and cant find that string of text anywhere 😒

heavy bobcat
#

It's the file name

upper valve
#

did you see the slayer task boosting plugin its like super configurable

#

and probably does what you want

twin rover
#

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"}

glass sandal
#

No it's literally in file plugins/MazchnaSkipping

twin rover
#

idk how thats there? i dont have it in intellij or on git? did i somehow do it when submitting?

glass sandal
twin rover
#

yeah no i see that part, but i cant find the plugins file anywhere on my git/ide file

twin rover
#

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

upper valve
#

just push a new commit to your plugin hub fork that updates the file

#

dont need a new pr

twin rover
#

will do thanks ❤️

#

there we go, hopeully thats better

ember flareBOT
twin rover
#

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?

reef badger
#

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

twin rover
#

ohh gotcha, thanks 🙂

snow needle
#

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()?

amber rampart
#

yes

tulip crescent
#

How can I make, test, and release a plugin. Is there a guide somewhere

topaz pierBOT
tulip crescent
#

Ty ty

#

Are there guidelines on what is and isnt allowed

#

Thinking of making a plugin that shows you the stepback method for muspah

topaz pierBOT
thorn grotto
#

that would not be allowed i guess

reef badger
#

both those links are listed on the first page you were linked

#

if you ctrl+f rules

tulip crescent
#

Ah mb im on my phone rn

reef badger
#

ah

tulip crescent
#

Hmm that just says it was removed cause it told you what to pray too

restive garnet
#

Well, how do you intend to show the stepback method for muspah? 🙂

tulip crescent
#

Was gonna have tiles around muspah light up

restive garnet
#

Yea, you can't do that

bitter marten
#

is there a way to change linked github account i made a new account to have the same names

bitter marten
# restive garnet

can you add colour outlines to the boss i think iv seen this done on muspahs different phases?

restive garnet
#

If they're to indicate the style or timing of an incoming attack, no

bitter marten
#

fair

kindred condor
# restive garnet

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?

tulip crescent
#

Alright cool thank you, I want tk build something bit ill have to do a bit of research first

restive garnet
bitter marten
#

im having trouble doing 2 pr for seperate plugins can anyone give us a hand before i spam the log

glass sandal
#

Use a branch for each plugin and pr each bracnh to plugin-hub

bitter marten
#

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

reef badger
#

it's probably because you made the first one from master

kindred condor
#

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

reef badger
#

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"

bitter marten
#

easy cheers

#

hmm i must be missing something if i delete plugin 1 form branch 2 it also deletes plugin1 from branch 1

reef badger
#

where are you seeing that?

#

both your PRs seem correct right now

bitter marten
#

yeah sorry just realised it opened to changes

#

very new my bad hahha

#

thanks for the help

restive garnet
#

By design, the list of things that are blocked by plugins is not exhaustive - players are a creative bunch 😄

bitter marten
#

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 ?

kindred condor
restive garnet
#

Ah, you might be fine with that - boss rules are a little more stringent, see

kindred condor
#

Ahh fair, ye

#

Ill leave it for now then. Again ty

wispy panther
#

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!

glass sandal
#

It means like reporting the gear of everyone you see in the wilderness isn't allowed. The intent is scouting those kinds of things

wispy panther
#

Ah that makes sense, thanks for clarifying 🙂

restive garnet
#

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

wispy panther
ember flareBOT
#

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

bitter marten
#

does the key get removed the same tick the chest opens?

sonic quest
#

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?

rugged pivot
#

the most recent build.gradle should do that if you run the gradle run instead of running the test class directly

polar lake
bitter marten
#

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

sonic quest
rugged pivot
#

if it has this in it

sonic quest
#

Yea, i have that. This starts runelite in debug mode, but im still seeing a lot of debug logs not related to my plugin

rugged pivot
#

ah yeah it still shows core debugs but should exclude hub plugins

#

which are usually way worse

sonic quest
#

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 😮

rugged pivot
#

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

bitter marten
#

whats the rough time line for getting a plugin approved?

rugged pivot
#

days to weeks to years

wispy panther
bitter marten
bitter marten
#

is there a risk of using plugins in dev before they have been approved

rugged pivot
#

if they're not rulebreaking, no

bitter marten
#

sweet

glacial mulch
#

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

empty nexus
#

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)

thorn grotto
#

events come from the event bus

restive garnet
#

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)

rustic canyon
#

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?

solid shadow
#

Having a user input IDs for anything is awful ux

restive garnet
rustic canyon
#

ok so they have to be hardcoded and not allow user input sounds good.

sonic quest
#

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)

bitter marten
#

are you still allowed to have features behind passwords like the coflipper plugin?

upper valve
#

yes

#

good luck competing with the other 26 flipping platforms though

bitter marten
#

nah haha was more wondering about having a plugin made for commission, wondering what the best option for that is

upper valve
sonic quest
#

That is fixed based on the character or on their runelite profile?

upper valve
#

that is fixed to the account/character

#

getConfiguration is rl profile

sonic quest
#

Ah I see. so its just a different method using the same interface getting the exact value im looking for. Thats perfect! Thanks 💕

solid shadow
bitter marten
restive garnet
#

What are you trying to protect

bitter marten
#

just a plugin game mode basicly

#

for a content creator

solid shadow
#

There isnt a way to protect it, but imo you shouldnt want to anyway

upper valve
#

yeah what just give them the plugin and have them pay you

bitter marten
#

i think end goal is free access plugin but they may just want to start a series first

restive garnet
#

There's been a couple of cases where a content creator has had something bespoke made, I know that much

solid shadow
#

Yeah they would just be running a shadowjar or running from source

bitter marten
#

yeah true

#

any guides on the shadowjar?

restive garnet
#

I can't see any plugin ever making it to the hub that does nothing without some password being provided to it

topaz pierBOT
#

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.

solid shadow
#

I think its that

bitter marten
#

sweet

ember flareBOT
#

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,...

bitter marten
#

whats the best solution for a client to run the shadow jar without making them get an ide?

oak rock
#

install the jre

#

or really, if you have RL already installed it has its own jre

bitter marten
#

allows loading into jagex accounts?

rancid marten
#

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

bitter marten
#

yeah easy as

#

thank you

topaz pierBOT
#

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>.wav in .runelite/notifications, then select <name> in the notification sound dropdown
  • Custom login screen: login.png Image size 765 x 503 recommended, larger images will be (simply) scaled down automatically.
rancid marten
#

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?

oak rock
#

after lunch i can look into it

rancid marten
#

ty

ember flareBOT
wind fjord
#

@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

upper valve
#

sure, just submit a PR that adds a line disabled=at author's request to the manifest file

wind fjord
#

(thats the runelite-plugin.properties right ? sorry)

rugged pivot
#

the hub manifest file

upper valve
#

no the choicer file in the plugin hub

sharp knot
#

That file

wind fjord
#

thank you!

ember flareBOT
#

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...

ember flareBOT
rancid marten
#

nice

flat furnace
#

Are there any issues with a feature of a plugin being dependent on another plugin being installed?

reef badger
#

probably not since lots of plugins have shortest path integration?

flat furnace
#

ty

oak rock
#

as long as thats communicated well

flat furnace
#

To the other plugin maintainer, or user?

neon haven
#

wonder how many are like that, how many would there need to be to consider a "dependsOn" in the runelite-plugin.properties

ember flareBOT
#

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.

ember flareBOT
ember flareBOT
#

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.

snow needle
#

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?

amber rampart
#

no

snow needle
#

Is there any possibility of that ever happening?

rotund pier
amber rampart
#

its technically possible, but I don't think we would really want to do that

rotund pier
#

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

snow needle
#

So it's spoofable in the same way any token based auth is spoofable?

amber rampart
#

the account hash isn't supposed to be private necessarily

#

its just an id

snow needle
#

Ahh. Is it effectively private though? Beyond other plugins exfiltrating it

amber rampart
#

its stored plaintext in the config

#

which get posted publicly somewhat regularly

snow needle
#

Oh ok yeah that won't work

#

So there's no existing identity system I can use, right?

amber rampart
#

correct

ember flareBOT
#

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...

rancid marten
#

You can just check .contains()

ember flareBOT
twin rover
#

@reef badger my git finally passed the inital tests, just wanted to say thanks for the help ❤️

ember flareBOT
ember flareBOT
ember flareBOT
ember flareBOT
ember flareBOT
novel stirrup
#

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.

bitter marten
#

are we allowed to change the skull cosmetics?

rose void
#

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

sinful lava
oak rock
rose void
oak rock
#

cast the actor to npc?

rose void
#

Otherwise I can't fix until it's already broken

rose void
#

Not how to do it

oak rock
#

set version to latest.integration

#

then push a pr and tell us to hold for release

solid shadow
#

you can submit an update and we can just mark it as hold for release

rose void
#

Alright will do

rose void
sinful lava
#

latest.integration does work to test it locally, if you want to test an unreleased build

rose void
#

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

sinful lava
#

i think latest.snapshot just isn't a thing, so it goes searching for things that do exist

oak rock
#

oh, oopsie

rose void
#

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.

solid shadow
#

they might be running the latest snapshot and applying the hub from the previous version, which isnt very compatible if theres api changes ahehe

rose void
#

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

ember flareBOT
native harbor
#

(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

worthy sparrow
#

What are audio cues

native harbor
#

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.

thorn grotto
#

you might want to call that ping sound

native harbor
#

Yes, of course, lol. In the plugin they are Ping Sounds, I was just trying to explain it. Thank you.

worthy sparrow
#

We have a pr open for pings I think

#

Oh I guess we have that already, sorry I don't have friends

native harbor
#

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.

rugged pivot
#

menus?

native harbor
#

I was misinformed then. May I show a demonstration?

rugged pivot
#

not disputing the utility of different types of pings btw

#

just for clarity

native harbor
#

Stand-by...

rancid marten
native harbor
#

Snipping not recording audio - give me a moment, I apologize....

worthy sparrow
native harbor
#

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.

worthy sparrow
#

it needs some tlc

native harbor
#

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.

worthy sparrow
#

it has hotkey short cuts in it

#

it also has ping sounds

native harbor
#

It apparently also needs tlc >.>

worthy sparrow
#

which is just rebasing and replying to feedback

restive garnet
#

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

rugged pivot
#

we already have ping. If its not an issue there already, why would this make it one?

restive garnet
#

I guess it's somewhat offset by also having to do the mechanic, plus the slightly delayed nature...

rugged pivot
#

the mazes are separate, it doesnt work there

restive garnet
native harbor
#

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.

worthy sparrow
#

What is happening

native harbor
#

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.

rugged pivot
#

you can make whatever hub plugin you want

restive garnet
#

Some people like to get a feel for whether things will get rejected before they start 🙂

native harbor
#

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.

worthy sparrow
#

oh they are replying to your username, thought this was some high level conversation

restive garnet
#

Sorry for my choice of name, Ron 😄

native harbor
#

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.

rugged pivot
#

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

native harbor
#

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...

lavish ice
#

it would be fine for core content but nowadays it is preferred to make a hub plugin instead

#

the contextual pings looked interesting

rugged pivot
#

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.

lavish ice
#

oh, yes

#

that's phub content

rugged pivot
#

though re-reading you did say that was backburner

native harbor
#

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.

rugged pivot
#

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

native harbor
#

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.

lavish ice
#

the contextual pings i see it being more likely getting into core, the grouping system i don't, sadly

native harbor
#

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

lavish ice
#

doesn't mean you can't make your phub plugin!

native harbor
#

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.

ember flareBOT
spare phoenix
#

in the var inspector, is there any way to hide the vars related to time, like DATE_SECONDS_PAST_MINUTE

sinful lava
spare phoenix
#

i can't see anywhere on this that'd let me block things on the right

sinful lava
#

oh sorry, I'm thinking about the script inspector

spare phoenix
#

currently hunting down varbits to do with various completion things. currently just a bit annoying having to sift through all of these basically

sinful lava
#

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

ember flareBOT
granite quest
sonic quest
#

Hey! is there an easy way to detect if a player is a bank area?

quick path
#

no

sonic quest
#

Ah, that is a slight bummer. Then I'll have to map them out myself

upper valve
#

was having issues w/ push at work just now though it seems it worked eventually

restive garnet
#

someone vibe coding their prod configs again huh

hollow stratus
# trail marten fwiw the screenshot button on the top bar doesn't work like this, idk if that wo...

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.

upper grove
#

i hope the reset order click shows a confirmation popup :D

it looks nice so far

worthy sparrow
hollow stratus
# worthy sparrow 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

worthy sparrow
spare phoenix
rose void
#

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

rancid marten
#

I think its only used for the twitch plugin

#

its just to avoid sharing oauth tokens on stream really

rose void
#

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

granite quest
#

@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.

tulip wagon
#

just note i'm pretty much mia until next week

ember flareBOT
low hatch
#

The timing of releasing GEX and (current feature of) Data-logger

ember flareBOT
ember flareBOT
ember flareBOT
sonic quest
#

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

worthy sparrow
#

not really

#

make sure it builds and the bot isn't yelling at you

sonic quest
#

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

reef badger
#

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

sonic quest
#

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

sonic quest
#

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
quick path
#

is $HOME or $HOME/settings.json write-protected or not writable for your user?

sonic quest
#

I guess the file does not exist at all

#

$ ls -l settings.json
ls: cannot access 'settings.json': No such file or directory

amber rampart
#

probably snap being stupid or something

sonic quest
#

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?

amber rampart
#

I assume you are launching with bolt?

sonic quest
#

Never heared of bolt 😮 so if its a default thingy - maybe?

amber rampart
#

are you running the jagex launcher in wine?

sonic quest
#

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

amber rampart
#

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

sonic quest
#

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?

amber rampart
#

does it say bolt or jagex launcher when you start bolt or the jagex launcher?

sonic quest
#

The panel title is Jagex Launcher

#

Also the launcher title itself is Jagex Launcher (just to not create confusion)

amber rampart
#

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

sonic quest
#

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 ...

low hatch
#

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

restive garnet
#

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 😄

ember flareBOT
#

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

amber rampart
#

I assume that is for removing the one from the aniversary event

#

or was unused anims that they are cleaning up

low hatch
#

Oh is that why we also removed them from the legacy NpcID? 🤔

low hatch
ember flareBOT
#
[runelite/runelite] New tag created: runelite-parent-1.12.19
#
[runelite/static.runelite.net] New branch created: 1.12.19-22666556600
fluid stump
#

SKILL GUIDES IN DB TABLES

#

I CAN REMOVE THE CS2 JANK

#

i presume my plugin about to break now

amber rampart
#

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

ember flareBOT
#
[runelite/static.runelite.net] New branch created: cache-code-2026-03-04-rev236
fluid stump
#

Screenshot plugin has a error btw since varbit 9452 does not exist now

amber rampart
#

you are not using the release

fluid stump
#

oh true quest helper bugged for me thats why 😄

#

sorry

ember flareBOT
#

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

lyric wasp
#

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

worthy sparrow
#

why did they add background sprite you can't see? is it for locked skills?

fluid stump
#

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

worthy sparrow
#

it's not visible at all tho

dusk ridge
#

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

rancid marten
worthy sparrow
#

yeah

#

oic it's for on level up

fluid stump
#

ye why i said its weird they added just for "glow" defo bettr ways to do it

restive garnet
#

Jagex gotta Jagex

fluid stump
#

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

restive garnet
#

iirc RS3 flashes the icon rather than applying a glow

fluid stump
#

ye been like that since early rs2 much better

autumn star
#

game jam quality

restive garnet
#

It's not bad, it's just different 🤷

dusk ridge
#

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

fluid stump
fluid stump
#

so show the under sprite

restive garnet
#

Yea, it's definitely one way to do it

dusk ridge
#

thats even worse imo lol

fluid stump
#

what it looks like visually anyways guess ill check cs2

worthy sparrow
#

you want to volunteer for the engine work

restive garnet
#

now you can see why interface styles broke 😄

dusk ridge
worthy sparrow
#

don't think cs2 can do that

dusk ridge
#

why dont they just ask chatGPT to make it in UE5

restive garnet
#

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

dusk ridge
#

i bet the pulsing timer starts on the level up tick instead of an in sync clock

upper grove
#

unplayable

restive garnet
worthy sparrow
#

you could just time the ticks in cycle

restive garnet
#

I suppose, but this is funnier

dusk ridge
#

but say you level attack, then 3t later level hitpoints. now u got two glows offset by 3t. assuming thats what happens

restive garnet
#

Sadly I don't have a noob account I can test that theory on atm

worthy sparrow
#

eh, they aren't even solid yellow images

rugged pivot
worthy sparrow
#

interface styles disable glow option????

rugged pivot
#

yes please

#

(I know you can disable it but then I assume you lose the "here's all your new stuff" interface in the skill guides too)