#development

1 messages · Page 12 of 1

rancid marten
#

i flipped a -1/+1 somewhere

ember flareBOT
rugged pivot
#

remarkably after setting up that alignment with the old jar and restarting both clients they launched still perfectly aligned

#

an april fools miracle

onyx patio
#

now ill have to remember to update the wiki pic when this change goes through

rancid marten
#

you should document the 1 week we have it off by 1px

onyx patio
#

if you insist

rancid marten
#

btw i asked people what happened with that akd login screen thing going back to the old version

onyx patio
#

i document the welcome screen to levels of "they moved the message of the week up 2 pixels at the start of 2026"

rancid marten
#

noone has any idea

onyx patio
#

which is why all the ones ive taken are on official, java would cut off the bottom 2 pixels

onyx patio
#

i informed them about the transparent border thing, which was fixed for yama, unfixed for varlamore 3 and fixed for sailing

ember flareBOT
ember flareBOT
midnight palm
#

Hey, quick question for anyone who’s worked with consumable overlays
I’m working on something that writes a single value directly onto food and boost potions in the inventory, and colors it based on waste. Everything is evaluated at a single point in time.
That works fine for normal food and boosts, but I’m not sure how to handle things like the prayer regeneration potion where the restoration happens over time instead of instantly.
Right now I can just flatten it into a single total value, but that feels a bit off since part of the effect happens later and could be wasted depending on timing.
Since I’m limited to a single small number drawn on each item, I was thinking about adding a small indicator (like a ~) to show it’s spread out over time, but I’m not sure if that’s the right approach.

Do people usually just treat those as a flat total, or is there a better way to model or display them within this kind of constraint? I want it to be clear at a glance, but adding extra symbols or detail starts to look cluttered pretty quickly

#

Ex of what it looks like when hp is 92 so it's easier to visualize

trail marten
#

Didn't someone make this recently? I thought I saw a plug-in get submitted that did something like this.

midnight palm
#

thats me prolly lol

#

foodutils

#

Unless someone else made one too lmao

trail marten
#

Nvm then. Nice plug-in

midnight palm
#

ty

restive garnet
#

How are you handling the hunter meats that have a delayed secondary heal?

midnight palm
#

that's part of the outlier items i'm not sure how to handle I was going to apply a similar logic to whatever i end up doing for this or just show their flat healing value assuming all of it goes off

polar lake
#

"x+x" ?

#

so you can see the first instance of heals, and then the second

midnight palm
#

The only issue with that is for the higher heal items like the anteloupe it would basically be the whole bottom of the item with text

polar lake
#

there is room there for 5 characters, so if you had a high healing food like moonlight antelope 14 + 12 would fit

#

why is that an issue? U think people will be upset that the bottom part of the graphic is covered?

midnight palm
#

I actually did lmao but now that you put it that way I can just add a override option so they can toggle off the secondary heal if it bothers them or a display mode for that specific item type

#

For option like that do you guys lean towards default on or off?

rugged pivot
#

i think most people dont read configs so default the most amount of useful info on

polar lake
#

realistically speaking people open to using an inventory item overlay plugin, typically don't care about the original graphic's visual fidelity. Unless it is completely butchered to the point where it hinders their ability to understand what the icon is.
So I don't think that's inherently an issue you would run into, but I am always of the opinion that giving people the choice to toggle the setting is the way to go, so if it's easy to implement then yeah do it.
Default off, if your intended display of the item is "xx+yy".
Also, you could add an option for those who care about this to be able to just have the combined value. So someone may prefer "26" over "14+12"

midnight palm
#

Yeah i'll add the the toggles in the settings and push that in my next update thank you so much for your input everyone.

polar lake
#

Also idk how hard this is for u to implement but if u could colour each of the two values based on waste that would be good too

#

for example if someone is 85/99 HP, the initial 14 is in green, but the second 12 is in red

#

maybe that's overkill, idk how that would look visually but yeah

midnight palm
#

yeah I was planning to do that actually, should be pretty straightforward to implement thanks again

ember flareBOT
ember flareBOT
#

Other than the NPC aggro and LootTracker plugins mentioned in this issue should all plugins that call client.getLocalPlayer() without some sort of null checking be updated to check that client.getLocalPlayer() != null as a precaution? Or should I do some digging to see where the check is needed? There are lots of occurrences of client.getLocalPlayer().someOtherFunction() but not all seem to be throwing a NPE.

#

A bit of a naive approach but I turned on all core plugins and looked for NPEs caused by client.getLocalPlayer().someOtherFunction() near the login boundary. I'm sure there are others that have not been reported yet but that will require more careful testing of boundary cases.

Other than the NPEs listed in #20010 I observed the agility plugin throwing the following error:

2026-03-31 23:36:00 PDT [Client] WARN  n.runelite.client.eventbus.EventBus - Uncaught exception in event subsc...
#

onLogin() calls loadConfig() which populates the array safeCenters and finally scanNpcs() eventually calls generateSafeArea() which generates the NPC aggro reset borders. With the invokeLater method likely delaying the call of onLogin() I found upon logging in the NPC aggro reset borders were not drawn even if the player did not move at all. This makes sense, we are delaying the onLogin() call until client.getLocalPlayer() is not null.

#

Some other plugins that can throw, i've found that a quick way triggering this is logging in while in a boat

java.lang.NullPointerException: Cannot invoke "net.runelite.api.Player.getWorldLocation()" because "player" is null
    at net.runelite.client.plugins.timersandbuffs.TimersAndBuffsPlugin.onGameTick(TimersAndBuffsPlugin.java:1205)
    
java.lang.NullPointerException: Cannot invoke "net.runelite.api.Player.getWorldLocation()" because the return value of "net.runelite.api.Client.getLo...
granite quest
# ember flare

I can further explain here; feel free to ask me. Before this change, the previous NPC non aggression area was always lost upon logging out then logging back in.

worthy sparrow
#

confirming your own wording reads weird

ember flareBOT
valid wave
#

so many issues with NPE because of localplayer

#

why would you receive a logged in event, if you don't even exist yet

amber rampart
#

because you have to login before players can be sent to you

ember flareBOT
late hare
#

jagex changed when they initialize the local player to be when it receives all other players instead of right after login response or something like that

granite quest
#

It is a bit unintuitive that the gamestate changes from LOADING to LOGGED_IN while still not having access to the local player. No idea what goes on behind the scenes of getLocalPlayer() though

amber rampart
#

if you are not on a boat it looks you up in the normal players() container

fading iris
#

How does the !kc command supply the text colors? Part of this string ("Herbiboar" and "2,154") is in black, and the other part "kill count:" uses whatever public chat color the player has for their default
Is this a pattern I can use in my own chat commands?

ember flareBOT
ember flareBOT
#

Type

Incorrect behavior

Operating System

Windows

OS Version

Windows 10

Bug description

  1. Area lines are not visible while on a player boat
  2. The timer shown in the top right does not ever reset no matter how far the player sails their boat
    • I believe WorldPoint newLocation = client.getLocalPlayer().getWorldLocation(); does not change when a player moves their boat at all

Screenshots or videos

Area lines off boat:

Area lines missing while boarded:

Tim...

desert fulcrum
quick path
#

not that I remember

ember flareBOT
ember flareBOT
dry birch
# desert fulcrum Hi has anyone else reported issues with client.addChatMessage? For reference: h...

From talking to a couple others, it seems like the behavior started within the past week or so.

I'm not sure why client.addChatMessage() does not render immediately, but I see most of the newer plugins use a pattern like this: https://github.com/usa-usa-usa-usa/inferno-wave-splits/blob/master/src/main/java/com/infernosplittimer/InfernoSplitTimerPlugin.java#L117C2-L130

Testing locally, the switch to using ChatMessageManager seems to resolve the issue.

I assume using ChatColorType.HIGHLIGHT is preferred over hardcoding text color, so it's probably worth switching regardless? Curious if there's an issue with client.addChatMessage() that needs to be investigated further, though

rancid marten
#

hmmm you are seeing chat messages not being rendered immediately?

dry birch
#

I see the log when the room completes, at the time when the chat message should show. The chat message doesn't appear in game until I toggle between chat tabs or run further into the raid

rancid marten
#

if I do client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "test", ""); in jshell it works ok

#

do you have an example of something which doesnt work?

dry birch
rancid marten
#

i dont see anything obviously wrong with the code mm

dry birch
rancid marten
#

if i cant reproduce the issue and dont see anything wrong then i cant do much

#

is it possible its just some plugin breaking it?

#

the queued chat message stuff uses addChatMessage() so I dont see why that might fix it

dry birch
#

Not that I know of, I did try turning all plugins off on a fresh profile and still reproduced the issue

rancid marten
#

it is possible to call addChatMessage() at the wrong time and it will do that

#

but that isnt new

#

if you call it in like post tick or something

#

im looking at the 237 changes and i dont see anything newly wrong with it at least

dry birch
#

Fair, thanks for taking a look. I'll do some more testing later today and see if I can pin down anything more detailed. Regardless, may end up making a PR for the queued chat message/message builder since it seems to have better support for a dynamic highlight color at the very least

rancid marten
#

yeah

autumn star
#

ive seen the same happen with Scroll Box Info

rancid marten
#

whats the deal with dey0 btw? is he gone gone?

ember flareBOT
twin rover
#

found an off marked cannon tile from the cannon plugin when i was testing my new plugin, idk how minor bug reports for a build in plugin work . should i just post the coords here?

glass sandal
#

You could PR the updated coords

twin rover
#

so just fork a copy and pr it?

glass sandal
#

Yes

twin rover
#

sounds good will do, thanks 🙂

ember flareBOT
rugged pivot
#

see above PR

twin rover
#

was just 1 tile off, couldnt place cannon down on that tile

quick path
#

Ah ok

twin rover
#

didnt know i could push to the runelite itself, so thats pretty neat for the future 🙂

ember flareBOT
#

Some other plugins that can throw, i've found that a quick way triggering this is logging in while in a boat

java.lang.NullPointerException: Cannot invoke "net.runelite.api.Player.getWorldLocation()" because "player" is null
    at net.runelite.client.plugins.timersandbuffs.TimersAndBuffsPlugin.onGameTick(TimersAndBuffsPlugin.java:1205)
    
java.lang.NullPointerException: Cannot invoke "net.runelite.api.Player.getWorldLocation()" because the return value of "net.runelite.a...
rich bronze
#

quick question, is it forbidden to make plugins to highlight the bombs in p2 warden in toa?

#

my buddys got pretty bad eyesight so he doesnt see them like ever

topaz pierBOT
solid shadow
#

yes thats forbidden

Adds additional visual or audio indicators of a boss mechanic except in cases where this is a manually triggered external helper.

rich bronze
#

alrighty

#

tyty ❤️

twin rover
#

speaking of forbidden plugins, i know this ones against the rules so i never finished it - you guys think they ever change this in the future? it was going just send a gzz from a list based on tier . had it working for local chat . honestly figured it would be fine since theres literally an in game autotyper, but the rules still have it banned 🙁

sharp knot
#

No

twin rover
#

yeah didnt think so, thought it might be ok since its not nefarious 😂 worth a shot though

jolly hearth
#

is there any way to find out what effects overhead text has applied to it? actor.getOverheadText() doesn't include red: etc

amber rampart
#

no, the server parses it out and sends it in a different format that we don't expose and iirc sucks

jolly hearth
#

that's a shame, but I suppose it's not that big of a deal really, I ask because I'm having to re-render overhead text myself for my new plugin to work, because the only way to hide overheads and skulls is to hide everything else too

#

I'm also trying to find the overhead text font, I'm using FontManager.getRunescapeBoldFont() atm but it's not the same

amber rampart
#

that is the best you can get if you want an actual Font

#

otherwise you would have to use the client's text drawing stuff

hollow parrot
jolly hearth
amber rampart
#

FontTypeFace::drawWidgetText

#

you have to steal the font from a widget that has it loaded because reasons

jolly hearth
#

I see, sounds like it'd be better to include the ttf from RuneStar repo

amber rampart
#

I think that is what we use

shy pine
hollow parrot
#

i use the 0 to judge since the fontmanager bold font doesnt have a slash through it while the bold font used in some places in the client does

jolly hearth
#

it might be an interface scaling problem

shy pine
#

Share an image?

jolly hearth
shy pine
#

(I assume it's the yellow text) That looks like RS Small font. Are you sure you're switching to Bold properly? I haven't had issues using either myself, including rendering overhead

jolly hearth
#

I'm using graphics.setFont(FontManager.getRunescapeBoldFont())

shy pine
#

🤨 lemee see your plugin, something doesn't sound right

jolly hearth
shy pine
#

Text is all correct and everything

hollow parrot
#

its close but the overhead text is not the same font

shy pine
#

Unless I'm confused, left is what he's showing, right is what he wants. When I ran the plugin, I'm getting what's showing on the right

hollow parrot
#

oh i meant the overhead font in your picture compared to what the client uses

shy pine
#

Yeah RL doesn't use the actual in-game bold font and instead uses some slight perversion (see here for a lengthier conversation #development message). But he's having issues using any bold font

twin rover
#

if i want to PR a new plugin while im still waiting for my other ones updates to get reviewed, how do i do that? creating a new PR shows my new plugin + the updated old one, should i keep it like that or change my old plugin to the current commit thats listed in the hub while just keeping the new plugin updated?

oak rock
#

Branches

twin rover
#

ahh thats right, havnt used a branch in a while ty

grizzled aspen
#

i personally find multiple plugins in 1 repo w/ branches annoying because github ui code search doesn't work

late hare
#

github search sucks anyway, should use github.dev if you want to actually search for something (which you can access if you just press . while logged in and looking at a repo)

grizzled aspen
#

i only use it when i feel like i can find the answer to someones question in 5 seconds if i get some roadblock i just close the tab, cba and not worth spinning up the whole embedded editor for that lol

worthy sparrow
#

just use the mega checkout script

tulip wagon
amber rampart
tulip wagon
#

done, was a bit awkward tho since no config object in KPXCSocket

ember flareBOT
#
[runelite/static.runelite.net] New branch created: wiki-data-2026-04-03
jolly hearth
#

yes, it was the issue, my self rendered chat now looks better and my Ws are pointy instead of round

reef badger
#

it was very amusing that 3 people all had that issue in the same time frame

wispy panther
#

Just wanted to thank the Admins & Reviewers, you guys are great. Flood of PRs past few weeks and ya'll still reviewing our plugin updates 🔥

desert fulcrum
shy pine
ember flareBOT
twin rover
worthy sparrow
#

looks fine

twin rover
#

good good, thats a relief, ty ty

snow needle
#

Is there any way to intercept and listen for PartyMemberMessages from a different plugin?

#

(I tried defining a class with the same package+name and subscribing to it)

rancid marten
#

no

snow needle
#

🙁 ty

topaz pierBOT
storm matrix
#

So I was trying to make a small change to the world hopper plugin and I managed to run runelite from ide but I don't really have a normal account so how would you test it in game?

storm matrix
#

Thanks Adam!

ember flareBOT
rustic canyon
#

Question regarding abandoned plugins.

If a hub plugin is abandoned, would a fork be accepted as a replacement for the current version on the hub?

As an example: Resizeable Chat which has a BSD 2-Clause License

topaz pierBOT
rancid marten
#

have you read this?

rustic canyon
#

I have not, thank you.

That clears things up, thank you Adam.

dusky crane
#

Hello people 👋, is Java 11 the recommended version to use?

rancid marten
#

yes

hollow parrot
#

wish yvesw was here to update default minimap zoom 🙁

rancid marten
#

I think I made the default minimap plugin do that?

hollow parrot
#

it just allows zoom right? im looking for the feature where you can change the default value of this zoom level

#

i dont see that in the minimap plugin settings if that's the one you meant

rancid marten
#

it remembers the zoom between client sessions

#

is all i think

hollow parrot
#

oh thats nice. now i need to stop rightclicking the minimap all the time 😂

snow needle
#

I'm seeing some weird player event behavior when boarding boats. The sequence is this:

onPlayerChanged player: 'cc@435d9979' client.getLocalPlayer: 'null'        view_id: 0
onPlayerSpawned player: 'cc@435d9979' client.getLocalPlayer: 'cc@435d9979' view_id: 3689

Notably PlayerChanged fires before PlayerSpawned. PlayerChanged has the new Player object with the old WorldView ID and a null local player before PlayerSpawned fires. I assume this is a bug?

dusky crane
#

I'm having some trouble figuring what the replacement for ComponentID.CHATBOX_GE_SEARCH_RESULTS = 10616884 is in InterfaceID. How do I figure it out?

late hare
#

if you use the widget inspector you should see the interface and child name, there will be a constant in InterfaceID.Chatbox that refers to the child you're wanting

dusky crane
#

@late hare I guess it's InterfaceID.Chatbox.MES_LAYER_SCROLLCONTENTS you think?

late hare
#

looks like it, ye

ember flareBOT
ember flareBOT
native notch
#

I thought it was the default minimap zoom plugin, but that is unavailable. Seems to be the 'Minimap' plugin that is part of Runelite defaults

#

Or just a checkbox here with something like 'Allow right click to reset zoom'. I could try to do that but I haven't got the full Runelite repo working yet in IntelliJ, only separated plugins

stuck shale
#

since you can only left click the mini-map to do anything with it, right click reset is appropriate, maybe a right click could make a menu to call the reset to prevent a misclick instead of disabling entirely

#

Idk if that would work tho since it’s not a jagex thing tho

stuck shale
native notch
#

That's a good alternative, I'd rather not have the whole reset function and rebinding it to something else feels off too. Either a 'Allow right click to reset' in the Minimap plugin or a Prevent minimap reset seems good. I will try that

#

Is the preference a new configuration box or separated plugin?

stuck shale
#

Hub maybe, if Adam wanted it core he can make it core lol

kind summit
#

I've taken a break from Runescape for a while and just came back. I was working on a small plugin before I left in IntelliJ, but now I'm on a new computer.

It's been a while now since I set it up and I don't quite remember how I did it, or how I should go about transferring over my project to the new PC. Would anyone have any suggestions?

stuck shale
#

push the projects to github and pull them onto the other pc

kind summit
#

Alright. I'll look into how to do that. Once I do push the project to Github, do you have any suggestions for a guide I might follow to pull them to the new PC? I remember originally setting it up with Github, but it's been a while and I can't quite remember the process.

native notch
#

Have you installed GIT on the new pc already?

stuck shale
#

you got the code you're working with via git cloning, you'll get it again that way

#

git push -> github from old pc
git clone from github -> new pc

kind summit
#

Got it ok, so I basically just upload my project to Github and then clone it to the new PC through the same original method, but with my version rather than the template.

ember flareBOT
rancid marten
#
    at client.queueChangedSkill(client.java:44695)
    at com.prestigemode.PrestigeSkill.configChanged(PrestigeSkill.java:75)
    at com.prestigemode.PrestigeModePlugin.lambda$onConfigChanged$0(PrestigeModePlugin.java:71)
    at net.runelite.client.callback.ClientThread.lambda$invoke$0(ClientThread.java:49)
    at net.runelite.client.callback.ClientThread.invoke(ClientThread.java:62)
    at net.runelite.client.callback.ClientThread.invoke(ClientThread.java:47)
    at com.prestigemode.PrestigeModePlugin.onConfigChanged(PrestigeModePlugin.java:62)
    at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70)
    at net.runelite.client.eventbus.EventBus.post(EventBus.java:223)
    at net.runelite.client.config.ConfigManager.setConfiguration(ConfigManager.java:901)
    at net.runelite.client.config.ConfigManager.setConfiguration(ConfigManager.java:912)
    at net.runelite.client.config.ConfigManager.setConfiguration(ConfigManager.java:923)
    at net.runelite.client.config.ConfigManager.setConfiguration(ConfigManager.java:928)
    at tictac7x.charges.item.ChargedItem.setCharges(ChargedItem.java:68)
    at tictac7x.charges.item.ChargedItem.decreaseCharges(ChargedItem.java:73)
    at tictac7x.charges.item.listeners.ListenerBase.trigger(ListenerBase.java:42)
    at tictac7x.charges.item.listeners.ListenerOnXpDrop.trigger(ListenerOnXpDrop.java:26)
    at tictac7x.charges.item.ChargedItemBase.onStatChanged(ChargedItemBase.java:213)
    at tictac7x.charges.TicTac7xChargesImprovedPlugin.lambda$onStatChanged$7(TicTac7xChargesImprovedPlugin.java:734)
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
    at tictac7x.charges.TicTac7xChargesImprovedPlugin.onStatChanged(TicTac7xChargesImprovedPlugin.java:734)
    at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70)
    at net.runelite.client.eventbus.EventBus.post(EventBus.java:223)
    at net.runelite.client.callback.Hooks.post(Hooks.java:217)
    at ow.ps(ow.java:51143)
    at ow.ae(ow.java)
    at ow.un(ow.java)
    at client.queueChangedSkill(client.java:44695)
    at com.prestigemode.PrestigeSkill.configChanged(PrestigeSkill.java:75)
reef badger
#
2026-04-04 16:51:40 EET [AWT-EventQueue-0] ERROR n.r.client.plugins.PluginManager - Unable to start plugin GamesensePlugin
net.runelite.client.plugins.PluginInstantiationException: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found
``` i like this one from that same persons logs
hollow parrot
rancid marten
#

is that new with 237?

hollow parrot
#

not sure when it started happening

#

when was 237 release?

rancid marten
#

march 24

hollow parrot
#

not sure. i cant find any clip or picture confirming it

#

it seems client.addChatMessage in onclienttick is always affected from some quick testing

#
@Subscribe
    protected void onClientTick(ClientTick clientTick)
    {
        if (client.isKeyPressed(KeyCode.KC_9))
            client.addChatMessage(ChatMessageType.FRIENDSCHATNOTIFICATION, "", "test", null);
        if (client.isKeyPressed(KeyCode.KC_8))
            client.addChatMessage(ChatMessageType.FRIENDSCHATNOTIFICATION, "", "test", "me");
        if (client.isKeyPressed(KeyCode.KC_7))
            client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "test", null);
    }

notice how the client gets the message as shown in the logs but it doesnt render until i create the next message by using 2 items on each other

rancid marten
#

is it new with 237?

hollow parrot
#

not sure how i can find out. i cant go back to the prev rev right

rancid marten
#

not really

#

I think this might be new

hollow parrot
#

does the queued chat message way of adding a message do anything to update the chatbox that client.addchatmessage doesnt do?

rancid marten
#

no, it just does it later

#

i think this might be a 237 regression

hollow parrot
#

what does client.refreshChat do? (doesnt seem to fix the issue)

rancid marten
#

it sets widget.chatcycle = currenttick

#

i fixed it

hollow parrot
#

what was the fix?

#

i noticed if i wrap it in a invokeAtTickEnd it also works

#
if (client.isKeyPressed(KeyCode.KC_7))
        {
            clientThread.invokeAtTickEnd(() -> client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "test", null));
        }```
rancid marten
#

ClientTick was firing before the current tick incremented instead of after like before

#

all of this code got rewritten by jagex in 237

#

and i had to touch a lot of stuff

#

its very hard to do correctly

hollow parrot
#

i see

#

so more stuff that was using clienttick couldve had subtle bugs due to this

#

nice find

rancid marten
#

i liked it more when jagex didnt have the people to make engine changes and so nothing ever changed

ember flareBOT
low hatch
ember flareBOT
deft hatch
#

Has something changed recently for MenuAction? E.g. MenuAction.GAME_OBJECT_FIFTH_OPTION?

amber rampart
#

the identifier has stuff bitpacked into it now

deft hatch
#

Is there something in core to strip those?

amber rampart
#

no

#

it might also change next rev

deft hatch
#

or how should comparisons be done?

amber rampart
#

you can compare MenuActions themselves with ==

deft hatch
#

like, I am doing this:
MenuAction.GAME_OBJECT_FIFTH_OPTION.equals(menuAction)

amber rampart
#

that is fine, == also works since they are enums

rancid marten
#

poh got moved?

deft hatch
#

did it?

amber rampart
#

yes

deft hatch
#

oh wow lol

#

to where?

rancid marten
#

you should learn how to work a debugger btw

deft hatch
#

hard to use a debugger when you don't log in anymore 😄

rancid marten
#

i guess

amber rampart
#

7257, 7534, 7535, 7790, 7791, 8046, 8047, 8302, 8303

deft hatch
#

is 7257 still daddys home?

amber rampart
#

I think so

#

yes

ember flareBOT
red rapids
#

Is it okay to have non-plugin code in the repo (i.e. companion github pages website code) or is it better to have that in a separate repo?

oak rock
#

Separate

red rapids
#

okay thanks!

ember flareBOT
midnight palm
#

if i just put ina pull request but realized i fucked something up do i just close the pull request? smh 🙁 lol

valid wave
#

Edit the pull request with the updated commit

midnight palm
#

ok i missed 6 items from delayed heals no idea how zzz

valid wave
#

Genuine question: I was thinking back to when the sepulcher plugin got axed because it was deemed unfair, or was using information from the game to display solves. What is different about the toa puzzle solver, the one that tells you which tiles to walk over?

glass sandal
#

The toa plugin only shows the answer after you've flipped the tiles over manually.

stuck shale
#

Or tells you the number to get after you check the sum to get.

The lights out one just tells you.

valid wave
#

I don't think we're taking about the right puzzle Cooper

stuck shale
#

The difference is

#

Back when Llemon made it, it was checked by jagex often if I recall so nothing was against the rules

quick path
#

The real difference is that jagex asked us to remove the sepulchre plugin, and not the toa plugin

#

anything beyond that is speculation on our part

valid wave
#

So I've been playing some rs3 lately, and some of the boss attacks have telegraphed zones, and I was curious to what extent a plugin could indicate. Obviously preemptive indicators (zulrah helper) are highly frowned upon unless manual interaction is involved, while timed events (hunleff helper) are perfectly acceptable, even making its way into main game. So what is the main distinction, is a timed event, ambiguous to player input valid for plugin prediction?

glass sandal
#

Hunllef Helper is manually triggered which is fine. It isn't synced to any game events

valid wave
#

Yes, that's what I said

upper valve
#

i didn't read it that way

glass sandal
#

Thats what makes it fine. It uses no game events. It could be an external website (and previously was) and function the exact same

valid wave
#

Yes, welcome to the same page. My question was to how the toa plugin determines the sum puzzle (where you run over the tiles to add up to the value)

glass sandal
#

Well the puzzles aren't a boss so they're allowed more leeway

#

And its not much different than keeping this open on another window

upper valve
#

to nfc's point we have no idea what the ultimate boundaries are. maybe if CM looked at this today they'd say "omg this needs to go", who knows

#

there is no deeper reasoning

valid wave
#

Ok, so the information that the plugin solver is using, is purely chat based

#

That's all I was wanting to know

upper valve
#

idt thats the answer but ok

valid wave
#

Well on this specific answer, that's all I can seem to get

sharp knot
#

You can just look at the source of the plugin to see what it does

valid wave
#

I wasn't looking for an objective "how does this", but more of a "what is allowed". And yes I know the clarifications that jagex has posted about plugin legality, even though I've seen them skirt and edge the rules

#

Like the deep sea trawling plugin, love it to death, but what's the difference between highlighting the net buttons when the shoal moves, vs other highlight features

sharp knot
#

Combat, for one

low hatch
sharp knot
#

And really NFC's point about "Jagex hasn't asked us to remove that" is the other big one

low hatch
#

Also as someone who enjoys ToA but hates that puzzle room, can we change the subject and not give it any attention? Thanks 😂

stuck shale
#

the deep sea trawler plugin could literally do it for you like a bot and the content is still cheeks, it’s so bad.

valid wave
#

God I wish I could just hire a driver NPC lmao. No but I'll give a better example - for cerb, the ghosts are old-school attacks - that is, their damage is calculated immediately instead of on impact. Now, the projectile override allows you to replace projectiles for visual clarity, but what of overlays on non-clickable entities, for colorblind purposes?

worthy sparrow
#

What are you asking

#

Radius markers can highlight the ghosts

upper valve
#

iirc there's a discussion somewhere where someone is claiming that radius markers on akkha is cheating and they demanded jagex look at it

worthy sparrow
#

Hope not, I can barely see the ghosts

valid wave
low hatch
#

I love when people willingly handicap themselves by refusing to use plugins; however, they'll go out of their way to make sure nobody else can do the same, and to not devalue their pride. 🤦‍♂️

upper valve
#

didn't that start the original sepulchre getting removed

#

bunch of freaks with 200m on like 10 accounts tweeted jagex

oak rock
#

Ye

low hatch
#

😔 Elitists

#

I feel like OSRS is the only community that wants people to suffer just because they did 🙃

heavy bobcat
#

That's probably just the MMO grindset

low hatch
#

Yea, fair enough

ember flareBOT
upper valve
#

i was impressed that you were able to do that in 4000 lines of code less than the other one

upper valve
#

ah

low hatch
#

Come on Paj, pick up the slack 😏 The AI caught you slacking

upper valve
#

oh yeah the AI analysis of review queue timings in the original was amusing

ember flareBOT
ember flareBOT
#

Type

Incorrect behavior

Operating System

Windows

OS Version

Windows 11

Bug description

I sent this to Jagex as well, i apologize if this has already been done, but if you type into chat "::bank" it auto-sends, "Hey, everyone, I just tried to do something very silly!" which is the Stella Bot auto-type message whenever you encounter one.

Screenshots or videos

https://github.com/user-attachments/assets/50aa712f-efbf-493d-aed1-87238d96ea05

RuneLite version

1.12...

ember flareBOT
rose void
# ember flare

this whole situation is a bit confusing looking at it from an outsider perspective

rose void
reef badger
#

the license allows you to do that

low jacinth
#

I'm not exactly sure why they're allowed in the first place, maybe I'm misremembering but didn't runelite originate because the main 3pc at the time (OSBuddy) pay walled plugins with pro?

rose void
grizzled aspen
#

Plugins that practically do the same thing as each other are already prevalent on the plugin hub. It’s not really any different

rose void
#

I'm not going to argue for it against it, I'm not a maintainer so my opinion on it isn't worth anything at the end of the day. Just sharing the viewpoint that it looks and feels odd

worthy sparrow
#

you can still use the plugins

grizzled aspen
#

If someone doesn’t want their code copied and edited then they shouldn’t publish it publicly with a license that allows that explicitly. There are ways to do that and it’s not really runelites responsibility to manage their own code”paid” features

rose void
#

I think it's more that the situation in question didn't result in an end to end working solution, but was still allowed to be published.

#

So it's questionably not providing any value over the one it copies

low hatch
# sinful lava Huh

I was just joking about how the AI had you down as 4th for merging Plugin Hub PRs

low hatch
low jacinth
dusky crane
#

Do we have anything to identify if an Item ID is a quest item or otherwise not a "normal" item? For example, actual Unicorn Horn vs Underground Pass Unicorn Horn or actual Abyssal Whip vs LMS Abyssal Whip?

quick path
#

no, but you can usually look at whether it is tradeable and/or loook at its config name to figure that out

#

for instance, LMS items have a br_ prefix iirc

dusky crane
#

Is the config name available through itemcomp or manager or do I need to do some sort of reflection to get that programmatically?

low jacinth
#

Itemdefinition is a thing I think?

upper valve
#

it's literally just a place for people to throw their code on without having to contribute to core, there are some gems naturally and some really talented people doing work but 98% of it is not that

#

from a software standpoint having 20 bingo plugins and 97 bank trackers and 203 flipping assistants doesn't make sense either, that's not the point

low hatch
rose void
#

If the goal is to provide devs a platform for their work and not to deliver a cohesive/consistent experience to the user then it makes sense

#

I probably disagree with that stance but it's not an invalid way to do it

grizzled aspen
#

We used to suggest people contribute to similar existing plugins more regularly but no one ever wants to do that and it makes people upset

reef badger
#

the core project is a consistent experience for users thats why the plugins work

#

but yeah there's not much we can do when the people making the plugins refuse to work with us

upper valve
#

i used to think in that same way when i started reviewing stuff but it's really just too much effort and also like pine said people crash out

#

not all of these people writing plugins are software professionals, they're not thinking about the UX of the hub or whatever, they just want to use their plugin

rose void
#

Thanks for the discussion about it

dusky crane
#

I was able to get LMS ids using some reflection, and estimate a lot of "odd" items by finding duplicate names and comparing item comp properties like tradeable. I think stackable might also work to filter some more things. I did notice in F2P many member items will not get filtered this way because they are listed as untradeable in f2p, which is fine.

dim wraith
#

I'm working on a small plugin where you eventually have to end up to hop between worlds, and with a hotkey it'll get the next world.

#

It feels very illegal, but is it allowed or not?

thorn grotto
#

there’s already hop hotkey in world hopper

dim wraith
#

Oh good, it just feels very illegal

thorn grotto
#

i’m not sure if you can put one in your plugin, but your users can just use world hopper hotkey

dim wraith
#

Good to know, thanks for the tip

thorn grotto
#

world hopper is a special case when it comes to plugins and i recall some bans (many years ago) from it having some feature that jagex didn’t like

deft hatch
dim wraith
#

MR sent in, I better hurry up and get 91 thieving now since it's probably my favorite way to train thieving this way lmao

reef badger
#

azerty keyboard spotted

dusky crane
quick path
#

or looking at the variable names in gameval/ItemID, or using reflection to collect a list to use at runtime

dusky crane
#

The latter is what I’m doing.

#

I didn’t see configName exposed in any API. Is it available somewhere?

#

Where are the rules that show reflection is not allowed? I’ve checked the developer and plugin hub guide.

topaz pierBOT
dusky crane
#

Ah thanks!

heavy bobcat
#

This is also definitely linked in the hub dev guide under the reviewing section

#

I'm surprised it's not up higher on the guide

dusky crane
#

Yeah I missed it 🙂

#

Well, I guess I’ll just hard code them in lol

hoary spindle
#

Is MenuShouldLeftClick not supposed to work with placeholder bank items?

hoary spindle
#

was trying something like this:

    {
        MenuEntry[] menuEntries = client.getMenu().getMenuEntries();

        for (MenuEntry entry : menuEntries)
        {
            log.debug(entry.toString());
            if(entry.getOption().equals("Release") || entry.getOption().contains("Edit-tags")){
                log.debug("Left click menu prevented!");

                event.setForceRightClick(false);
                return;
            }
        }
    }```
heavy bobcat
#

Don't you want setForceRightClick(true)?

#

Oh wait no I'm thinking of mobile

hoary spindle
#

The thing is, the only entries that get logged are the options for the actual bank object. Collect, open, etc. So maybe this isnt the event i should be using.

ember flareBOT
#

Type

Incorrect behavior

Operating System

Windows

OS Version

Windows 11

Bug description

I use the Login Screen plugin with the below login.png file (image 3) 1920x1080, last modified in 2020. My window size is 800 x 500, I play on modern resizable. When I loaded runelite today I noticed the background image was no longer resized to fit fixed dimensions (ie image 2) and instead just cropped the top left (image 1)

I looked at recent changes and couldn't see anything that...

#

I looked at recent changes and couldn't see anything that would have broken this. My expected behavior would be for it to remain like image 2 as it has for years

This is from this change https://github.com/runelite/runelite/commit/7c9b8925c3164c1e5e26cd06a604eb00c510aa14 which is intended - you should open your login screen in an image editor and resize it there down to 765x503

carmine crescent
#

If anyone has peeked at Tasks Tracker update .. is there anything we (the plugin devs) can do to assist reviewers? We're willing to put in time to make it easier on you to ensure we ship by leagues launch.

(This is not a "go faster pls", it's genuinely "can we make things easier for you")

worthy sparrow
#

Haven't looked, but generally doing a large refactor/reformat makes it harder to review. Less code changes you can do, the easier it is

dusky crane
#

Does every single cluescroll step have it's own item with unique ID!?

stuck shale
#

not beginner or master if I recall

dusky crane
#

that's even more confusing LOL

#

🍝

fervent glen
#

Hello (and happy Easter!), I have a few dev questions if anyones got time.

I made a Leagues task tracker site that’s similar to the wiki task list, but with some extra sorting/filtering features, and I’ve been looking into how feasible it would be to build something like WikiSync for it.

I do not have any RuneLite plugin development experience, but from what I can tell, I’d need to:

  • make my own plugin to collect/send the relevant player data, since WikiSync itself is obviously not available for third-party use
  • figure out which varbits/varps correspond to each League task completion

So I had a couple of questions:

  • Are League task varbits/varps generally consistent between Leagues? For example, if a task like “Defeat a fire giant in Kandarin” used a certain varbit in one League, would that typically be the same in a future League if the task returned?
  • Does the wiki team get this varbit/varp data from Jagex ahead of a League release, allowing WikiSync to work right away on release? If so, is that something other developers can access as well?
  • If not, and the vars have to be discovered after release, does the Chisel/varbs index usually get updated fairly quickly once a new League goes live?

Apologies for my lack of knowledge here, and I’d really appreciate any guidance. Thanks!

glass sandal
#
  • No they wont be the same as the there's different tasks and varbits from old leagues get reused
  • Yes, probably not.
  • The gamevals will have it making it pretty easy to figure out ~30 minutes before launch
carmine crescent
sharp knot
#

Chisel varbs are years out of date lol

fervent glen
fervent glen
ember flareBOT
#
[runelite/plugin-hub] New branch created: chore/transfer-npc-accessibility-tagger
upper valve
carmine crescent
#

Ye

rugged pivot
# ember flare

I did wonder if custom login screens should be somehow excluded from Stretched Mode resizing so someone's 1080p image is fully displayed regardless of UI scale but I have no idea the work involved there

amber rampart
#

very hard

ember flareBOT
ember flareBOT
upper valve
low hatch
ember flareBOT
carmine crescent
ember flareBOT
carmine crescent
#

🐐

dusky crane
#

silly question, but how do I set log level to debug?

stuck shale
#

debug checkbox does it in the runelite (configure) and if you want that ran from intellij i think you add --debug to it

dusky crane
#

--debug in the program agurments in IntelliJ was the trick. Thanks Z

stuck shale
#

np

#

if you ever wanna know the other ones you can refer to core code and see what the valid args are there

dusky crane
#
    /**
     * Kandarin headgear
     */
    public static final int CERT_BLAST_FURNACE_PUMP_HELD = 6450;

This is really some of the weirdest stuff lol.

upper valve
#

:ducksmokingindeterminatesubstance:

pseudo rapids
dusky crane
#

bruhhhh

#

that's terrible..

ember flareBOT
ember flareBOT
twin rover
#

anyone happen to know the object id for the fairy ring/spirit tree combo's winter varient? i managed to find the regular (29229) and the echo (27097) variant, but cant find the winter one 🙁

grizzled aspen
twin rover
#

oh nice didnt know about that site, tyvm ❤️

ember flareBOT
ember flareBOT
tight quarry
#

Hi! I'm looking for a way to override a Widget's onClick so that I can change its behavior to be a toggle button instead.
In this case it's about the setup button for the chatChannel. I noticed there's a setOnClickListener, which allows passing a script id and args, however ofc it's custom logic so I wouldn't know what script id to use, or how to generate an unique script id which wouldn't collide with any other (future) plugins. I also noticed a getOnOpListener which apparently has the original call in it, so I think I can use that if I want to execute the default behavior after all.
But yeh. I basically want it to not open the setup panel but rather execute a piece of my own code on click.

Anyone knows how to achieve this behavior?

tight quarry
late hare
#

you probably want to intercept it using MenuOptionClicked event and calling consume()

tight quarry
tight quarry
shy pine
#

Any chance of seeing a fix for animating rescaled RLObjects? When newer models are scaled up and animated, animations tend to break. Been this way sorta forever and it keeps confusing my loyal subjects

ember flareBOT
ember flareBOT
ember flareBOT
tulip wagon
# shy pine Any chance of seeing a fix for animating rescaled RLObjects? When newer models a...

this is possible using RuneLiteObjectController instead of the default RuneLiteObject implementation. Extend that class and implement as roughly the following: ```java
class ScalingAnimatingRloc extends RuneLiteObjectController
{
private final Model baseModel;
private final AnimationController ac;

public ScalingAnimatingRloc(
    Client client,
    int modelId,
    int animationId
)
{
    this.baseModel = client.loadModel(modelId);
    this.ac = new AnimationController(client, animationId);
}

@Override
public Model getModel()
{
    return ac.animate(baseModel)
        .scale(5, 5, 5);
}

@Override
public void tick(int ticksSinceLastFrame)
{
    ac.tick(ticksSinceLastFrame);
}

}

#

(I didn't actually test this code specifically)

#

and Client#registerRuneLiteObject instead of Client#createRuneLiteObject

shy pine
# tulip wagon this is possible using RuneLiteObjectController instead of the default RuneLiteO...

I figured this was possible, it'd just require some kinda unnecessary changes to my current pipeline. RN I don't store scale/translate/rotate x/y/z for models - rather, I'll use ModelData#scale (or rotate, or translate, etc) and only keep the resulting Model. Scaling as-is works for animating the majority of models, so having it require tampering with RLOC's doesn't make too much sense especially for any other developers who doesn't have as much experience with RLOCs as myself

I'd also assume that having the anim id set to -1 would also descale the object again (haven't tested myself)? Which would be strange

tulip wagon
#

I'll use ModelData#scale (or rotate, or translate, etc) and only keep the resulting Model
this is exactly the issue though. the animation takes an input model and changes it, but you're feeding it a different model than it was designed for, so it wonks out.

#

RLOC is the better, more-capable system, but the default RLO implementation is both a compatibility layer and a simple use case implementation. It was rewritten during the RLOC design to be as API compatible with the old implementation as possible

shy pine
#

Hmm I see. So the regular in-game Sol Heredit, whose default scale is roughly 3x the size of the default model, is only scaled up at time of animation as well?

amber rampart
#

yes

tulip wagon
#

base model -> animate -> scale, yep

shy pine
#

Damn, that may be very tricky for working around cases where I handle multiple models merged together with different scales...

amber rampart
#

RLOC exists because the old api couldn't handle cases like that at all

shy pine
#

Now that I'm second guessing things I previously knew, models (say, player model components) aren't also being merged every animation frame, correct?

tulip wagon
#

i'm not familiar enough with player models to say, but maybe abex or adam can

amber rampart
#

it will load the ModelData for each equipped item / kit, apply color/texture overrides, merge them, apply recol/retex, light, animate, (load, animate, merge spotanims), anim translate, tint

#

npcs are largely similar except they get a scale step right after animating

shy pine
#

Hmm, that's very good to know, thanks. So, what is it about older animations/what jank held them up such that they could be scaled prior to animating and look appropriate? (Maybe another way of phrasing: how might I identify which animations may need to be treated differently, if it comes to implementing two different methods of scaling?)

amber rampart
#

they should always be scaled after animating

shy pine
#

I get that that's ideal, but I'd like to keep some of my current framework of allowing the user to give individual models different scales prior to merging, and I don't think scaling after animating would allow that

amber rampart
#

you can always merge them later

fierce chasm
#

Anyone have issues with runelite closing cleanly when running from intellij? After attempting to close the client, the run command is still spinning

shy pine
shy pine
#

Oh

#

Thank you

#

I feel like that didn't used to be there, but I also suffer from situational blindness

fierce chasm
#

Is there a way to hot reload a plugin you're working on?

fierce chasm
#

Thanks

karmic linden
#

Is there any development environment that supports this other than idea?

glass sandal
#

Some people use VSCode but there’s no setup guide

sharp knot
#

(and you're a lot less likely to get any sort of help with issues)

ember flareBOT
restive garnet
#

👀

ember flareBOT
#

Type

Crash or hang

Operating System

None

OS Version

No response

Bug description

In November of 2025 i bought a new laptop - MSI Katana I7 HX B14W featuring
GPUs: Intel UHD Graphics - currently on graphics driver 32.0.101.6078 | NVIDIA GeForce RTX 5070 Laptop GPU
Processor:: Intel(R) Core(TM) i9-14900HX
As of 13/02/2026 I've been experiencing random JVM crashes, meaning my RuneLite randomly closes on it's own, sometimes with my mouse briefly experiencing lag for 2-3 se...

sharp knot
#

0x11f 😭

ember flareBOT
rancid marten
#

"your hardware is broken and we cant do anything about it" is such an underwhelming response

fierce chasm
#

Anyone know of a plugin that prevents forced camera rotations when you enter a room? E.g. at moons of peril, verzik, etc.

rancid marten
#

no

fierce chasm
#

I could make a plugin to rotate your camera back to the starting position but think there may be a jarring double camera move if you can't prevent it in the first place

pseudo rapids
#

can probably log for scripts running when you enter, and see if it's something custom.. if it is you can probs just change the script args?

fierce chasm
#

Thanks for the idea

sharp knot
hollow stratus
rancid marten
#

this is their 2nd time doing that lol

neon haven
#

Maybe I should start PRing random personal projects to the runelite repo to keep them safe too

rancid marten
#

im sure thats the plan

#

idk i banned them now

ember flareBOT
#

I threw your info into google to see what it said. Seems like it's primarily because your CPU has a firmware issue and you'll need to update your bios. Apologies in advance for the AI slop answer, but it summarizes things well. Here's google's answer:

In the context of your MSI Katana i9-14900HX, microcode 0x11f (editor's note: your logs show you have this microcode) refers to an older, potentially risky version of the CPU's internal firmware code.

Given the 14th Gen HX instability issues,...

sharp knot
#

@hollow stratus this is really not super helpful

#

Especially since the microcode versions listed are also problematic

#

Anything other than 0x12f is an issue

low hatch
# ember flare

That bozo even removed the credits/copyright header 😠

worthy sparrow
#

well yeah, that makes it not legally binding now

ember flareBOT
hollow stratus
# sharp knot <@195672782053310466> this is really not super helpful

I can chop it down and just leave the links to others having the same issue with his same laptop/processor and let him find the cause/solution himself? Apologies, I had some time between tasks and was curious myself on the issue. I could leave your bit of info in my comment too, "anything other than 0x12f is an issue"

upper valve
#

what is with all these people commenting on hub prs for plugin support

ember flareBOT
sonic quest
#

Hey; quick question. Is there a way to disable a certain piece of code in the actual plugin that would be usefull for local development/debugging?

Like an if (env = development) then { do stuff }

late hare
#

you can inject @Named("developerMode") final boolean developerMode

sonic quest
#

And this enables with the --develop-mode flag I guess

late hare
#

yup

ember flareBOT
sharp knot
tight quarry
#

Anyone knows how I can prevent the right click menu opening when left clicking an entry in my friends-chat list? I want the left click to be kick when I have my list filtered to only display blacklisted users.
I can add a click option which will kick the player when left clicking, but I don't know how to prevent the right click menu from opening when doing so.

trail marten
tight quarry
#

I tried this, just as a test, but when left clicking the user it doesn't trigger this function. So also can't do the forceRightClick(false) :/

pseudo rapids
tight quarry
ember flareBOT
#

Thanks for all the info! Didn't get this above information from the AI I used, so hopefully this fixes something..
Dug into some stuff during lunch break and also found this reddit post: https://www.reddit.com/r/GamingLaptops/comments/1engies/intelhow_to_update_your_microcode_for_intel_hx/

Shows the known issue of 13&14 gen Intel CPUs having stability issues and using previous patches (in my case it was 11F) instead of newer ones - ive now updated to 139 CPU code instead, so hopefully this ...

umbral yew
#

Hey Devs, how do I get my plugin reviewed or is it just a waiting game, no worries if so.

oak rock
#

wait in line behind all the ai slop

#

make sure it builds and there are no bot messages saying something should change

#

the maintainer action is correct to fail based on what api usage you have

umbral yew
#

Sounds about right, I got the build running etc after many fixed/commits 🤣

stuck shale
umbral yew
#

Theres a huge difference between using AI as a tool and vibe coding.

#

Took my company years to even discuss the idea of letting devs use AI 🤌

stuck shale
#

They can be but around here they’re one and the same. The venn diagram is a circle.

ember flareBOT
#

@anxirui Hi, this is a known issue with these CPUs, and unfortunately once RuneLite is crashing it's a weird but consistent indication that the CPU is screwed. The relevant information you've gotten updating to F bios versions is NOT for fixing the problem, it's for preventing it before it gets to this point.

You should look up a human youtube guide on process affinity to figure out which cores are the problematic ones, and note that information when you RMA your CPU.

<https://en.wikiped...

ember flareBOT
tight quarry
#

Back with more questions..!

I'm trying to implement an overlay which displays when blacklisted people are in the friends-chat. When clicking the overlay, I want it to open the friends-chat.
Currently I'm trying to do the following. For context, I got the runScript arguments from trying to click the friends-chat tab and stuff and checking onScriptPreFired, also tried checking the script inspector.

    @Override
    public MouseEvent mouseClicked(MouseEvent e)
    {
        if (e.getButton() != MouseEvent.BUTTON1 || client.isMenuOpen())
        {
            return e;
        }
        if (isMouseOverPanel())
        {
            log.info("Opening friends-chat");
            clientThread.invokeLater(() -> {
                client.runScript(915, 7);
            });
            e.consume();
        }
        return e;
    }

It does select the tab, however not specifically the friends-chat. So if the clan chat is selected by the user, then the user selects their inventory, then clicks the ui button, it'll open the clan-chat.

How do I get it to open the friends-chat specifically? Or how can I figure out exactly what scripts are called when clicking the "Chat-channel" button?

And another question. Just to double check. Is this allowed? I assume it is, because it doesn't reduce any number of clicks. (You can right click the icon to directly open a specific tab (e.g. "Your clan" or "Chat-channel"), which is also supported by the menu entry swapper to make it a left-click action. But just making sure I don't break any rules.

ember flareBOT
ember flareBOT
#

Hi @Felanbird, thanks for the comment and T1 Faker fightinggg. It's clear then that the CPU is fried since the crashes have been going on for two months (feb-mar), after not happening for the first two months (dec-jan)
I've ordered the laptop from Bol.com (which is like the belgian/dutch amazon) and just got of customer support, seems like I'll be returning the laptop and they're gonna repair it and send back to me. Thanks for all the help

ember flareBOT
#
[runelite/plugin-hub] branch deleted: chore/transfer-npc-accessibility-tagger
tight quarry
stuck shale
#

there is follow up scripts that build it after it's seelcted

ember flareBOT
tight quarry
stuck shale
#

click the tabs yourself and look at the scripts that fire

tight quarry
stuck shale
#

that doesn't look like the script event viewer to me

tight quarry
#

It's basically my attempt to run all the scripts that run when clicking the chat-channel

#

Got them from logging in a different place though, so I guess I'll try and copy over all those events 1 by 1.

tight quarry
stuck shale
#

i dont know if order matters but you're executign scripts that do not matter at all

wheat spoke
#

Doing some searching myself, but does anyone know offhand of a plugin that would be suitable to add a swap of

You have a sneaking suspicion that you would have received a/an [difficulty] clue scroll.
to
You have a familiar feeling that you would have received a/an [difficulty] clue scroll.

to? Can make my own plugin, but feels like overkill for 1-6 text line change

stuck shale
#

like you'e exeucting 446 and 447

#

if you look at the decompiled scripts you can see which ids actually matter and then focus on them

tight quarry
#

By now I'm literally executing every single script I see, but still it doesn't seem to be enough.

How can I look at these decompiled scripts..?

stuck shale
fierce chasm
#

Is there a way to run multiple plugins that I'm working on at once?

twin rover
#

In the test plugin, just add the extra package, com.test1plugin, com.test2plugin

fierce chasm
#

They're in different projects, so I assume I can import them anyway?

twin rover
#

I have my test projects in same file, but you should be able to just drag and drop to yours into the com.name.xx file

tight quarry
stuck shale
#

the old repo used to have a readme that linked to scripts, sorta miss it

fierce chasm
granite quest
rancid marten
#

yeah it really should be named .cs2asm

#

oh well

granite quest
#

Anyone know if runestar is abandoned?

solid shadow
#

if you mean for the scripts, use that

granite quest
#

Yea i swear those were the same

#

just one is 6 years outdated

rancid marten
#

we made ours because runestar stopped updating theirs

fierce chasm
#

Would creating shadow jars of my scripts and putting them in ~/.runelite/plugins allow me to run them at the same time? Tried this and it didn't work, still trying to figure out how to run multiple scripts at once

rancid marten
#

no

fierce chasm
#

Any advice?

rancid marten
#

you could use sideloaded-plugins maybe

tight quarry
granite quest
#

It looks like the use case for modifying client scripts would be if I wanted to change the behavior of some ingame interface. Is that correct?

stuck shale
#

the runestar repo used to have a readme to go from id[name] hyperlink to the script in the repo and the contents

#

this one is just the dump of the scripts with the id in them

#

you will have to find which file belongs to id #### then see if it does what you want it to

#

there might be a better way to do that but i dont know of it

granite quest
stuck shale
#

yeah that one, didnt know its been 5 years out of date

tight quarry
#

I went for calling all the scripts in the exact same order without any luck. Which I would assume would at least work if that's all I had to do...

stuck shale
#

not sure, you are updating the varbit then calling a scripts, idk what details are being skipped or if that's even right

#

scripts are just hard to work with

tight quarry
granite quest
#

did you change a varp or a varbit?

tight quarry
tight quarry
#

I assume the varbit is the wrong approach but idk how else to figure out what to call 🙃 Been looking at the widget inspector and trying to call the scripts the widgets call and stuff but nothing seems to work so far.

sharp knot
#

What scripts run when you click to change the tab

tight quarry
#

I will verify it once more just in case, as i did blacklist a bunch of ids which spammed the inspector like crazy

sharp knot
#

You probably want 1657 I would guess looking quickly

tight quarry
#

Running just that doesn't do anything. Running 915 before just has the same behavior as not running 1657...

#

These seem all of the scripts that " might be relevant" (not xpdrops, orbs, wiki, clock)

rancid marten
#

you might have to do a little bit of thinking and actually look at the scripts and read them

muted quartz
#

Please tell me if this isn't the right place. I have just been looking the Var Inspector and it seems there's no variables set which allow you to query which dock your boats are currently docked at. Just wanted to check here if anyone had thought of a workaround or if I had missed something.

sinful lava
muted quartz
#

Ah excellent.. let me look.

#

and even better, there is SAILING_BOAT_1_HULL as well, thanks for pointing that out.. I can see it changed now I changed port I was docked at

#

Is there an existing list of which ids correspond to which ports yet?

sinful lava
#

check out Port.java in the quest helper repo

#

o nvm that's not a complete list, just the ones used in quests

muted quartz
#

👍 thanks a lot

autumn star
quick path
#

hm, we should probably fix that

#

but no, it is not cosmetic

#

we use the authors field to allow multiple people (or individuals belonging to a gh org) to submit plugin updates

autumn star
#

true for that purpose, just noticed how it behaves on the web

fierce chasm
quick path
#

hm, this one actually might be using the plugin hub properties rather than the manifest

restive garnet
#

The web version is fed from runelite-plugin.properties by the look of it

quick path
#

in which case it is purly decorative

restive garnet
#

yea it's the authors entry in the plugin-hub repo that actually matters 🙂

dense owl
fierce chasm
#

Hell that's a lot easier

#

thanks

dense owl
# fierce chasm Hell that's a lot easier

You might see Unable to create lambda for method log spam from event bus. At least I do. From what I can tell there is a fallback method used and plugins still work fine. I assume it's some java thing where class isn't loaded same way as normal plugins.

mint fable
#

i tried loading dev mode by adding the command line to the EXE launch but never worked

stuck shale
#

you can run dev mode from the jar if you build the shadwo jar

#

it is disabled for exe to run dev mode

mint fable
#

yeah i thought so, ah ok fair play

#

I know i've asked before and i'm dont intend on annoying anyone but are submissions checked in order? mines still waiting to be looked over, commited 3 weeks_ ago

quick path
#

generally yes

dense owl
#

Most review in order of last updated. If you push any commits will be at end of line again. Plugin updates also can get reviewed ahead of new plugins. Especially for bug fixes/small updates.

grizzled aspen
#

Is it a new plugin or an update

mint fable
#

new plugin

#

but admitted i made like 12 commits, i didnt realise how that would work, i just assumed i was updating the commit every time i made a new one

grizzled aspen
#

There are still a lot of submissions older than 3 weeks for new plugins anyways

mint fable
#

im waiting for the commit to be reviewed before i make an update as there is one thing i need to tweak

fierce chasm
mint fable
dense owl
grizzled aspen
#

Generally recommended to not discuss plugins to the wider public until they are approved because there’s no guarantee if/when that happens and has caused harassment towards reviewers in the past

fierce chasm
#

Is runelite.bin on your system just a file that's running java -jar runelite.jar with flags?

mint fable
dense owl
#

I renamed the RuneLite binary on macOS to RuneLite.bin. Jagex Launcher just runs whatever is in correct path.

fierce chasm
#

I see it's just running the shadow jar

dense owl
#

I add --insecure-write-credentials just because I do run RuneLite from IntelliJ at times also. Just like being able to play with IntellJ closed as well.

dense owl
# fierce chasm I see it's just running the shadow jar

Yes it's a little more work. Have to manually update config like once a week but like being able to test updates and build client with java 21. Not sure if just placebo performance boost though. options.release = 21 in common.settings.gradle.kts for that. I started doing this though cause there is PR I wanted to use that hasn't been merged yet.

fierce chasm
#

It likely is a real perf boost honestly

rancid marten
#

I would love to see any evidence of that tbh

fierce chasm
#

hm it still isn't loading my shadow jar in sideloaded-plugins, interesting

rugged pivot
#

shadow jar is designed to run by itself, I'd assume it wouldn't work as a sideloaded plugin. You'd want a regular build jar of the plugin

#

but I've never used sideloading

fierce chasm
#

That's what I thought as well, I'll try it again

#

yep that worked, thanks

grizzled aspen
quick path
#

hmm

fierce chasm
#

I'm having one other issue - when I run runelite with assertions (-ea), the process won't close when I try closing runelite. I end up having to kill -9 the process. Anyone else having that problem?

#

It's behaving in a way that seems like the client thread is still running, as the window doesn't actually close

#

The last line of the log when I try closing the window is 2026-04-08 16:15:47 EDT [AWT-EventQueue-0] DEBUG n.r.client.config.ConfigManager - Saving profile default (patch size: 1) so maybe this is hanging?

quick path
#

I don't think that should be an issue related to -ea. I have a similar issue, but it's related to GPU

#

and seems to be a driver issue, nothing the client can fix

dense owl
#

I run with -ea and never had that issue on macOS. Also I added test to that emoji fix PR.

fierce chasm
#

I suppose it's only when developer mode is running

#

Might debug it later it's not annoying enough yet

fierce chasm
#

Can script IDs change, or should they always stay the same? E.g. a camera script I'm trying to prevent from executing

quick path
#

They usually don't change usage of existing scripts, so the ID will not change frequently

fierce chasm
#

hm maybe there's something unique about it and that's why the execution didn't stop

#

Trying to stop the forced camera turn at verzik, the script id was a suspiciously low number. Takes a while to get back there, just soloing entry mode
I did collect it shortly before the update last night but if the Id didn't change, it must be some other issue

#

Is there a way to filter out scripts in the script inspector? It's just getting flooded like mad

glass sandal
#

Yes

fierce chasm
#

How?

glass sandal
#

In the script inspector theres a text input and a button that says block

fierce chasm
#

the blacklist button? So just blacklist everything spamming the list? okay

glass sandal
#

Yep

warm crescent
#

Would a plugin similar to Here's Trouble but play specific sounds for specific usernames be accepted? Give a list of usernames and config a sound per username

restive garnet
#

Gonna go with no

warm crescent
#

It would basically be an in-game version of discord joining sounds so friends have their personalized entry if that makes sense; does that break a rule for approval?

tulip wagon
#

that's fine

warm crescent
tulip wagon
#

disable it in pvp areas / require them to be on your friend list + online if you want to steer uber-clear of the rules, but I don't think you need either of these things

warm crescent
#

Happy Jewelry walked so Personalized Friend Sounds could run

tiny cloak
#

Did not see this on time; just checked, plugin seems to work fine still. Is this still a thing?

ember flareBOT
dusky crane
#

@upper valve thank you for the review.

ember flareBOT
fierce chasm
#

Is there a reliable way to prevent a script from running?

rancid marten
#

it depends, mostly no

fierce chasm
#

It's a script that changes the camera orientation, Script 143 args: [143, 280, 1024]
Been trying to prevent it from running but maybe I need to take another approach if that's not possible

rancid marten
#

record the camera orientation before the script runs and reapply it after?

fierce chasm
#

Yeah was doing that before but felt hacky. Might just be the only real solution atm

rancid marten
#

its a pretty standard way to solve these problems when you dont control all of the code

eager elk
#

Would IntelliJ IDEA be the only viable IDE for developping without complications

late hare
#

it's the recommended one for sure

glass sandal
#

Pretty much. You can use VSCode but there's no guide for it

late hare
#

technically you could just use notepad and build with gradlew I suppose though

eager elk
#

And do you need the intellij Ultimate or is it overkill

late hare
#

the free version (whatever it's called now) works just fine for RL needs

fierce chasm
#

client is crashing in debug mode, even with my plugin disabled

#

is there a potential memory leak or is this common thing we need to do when running in debug mode?

late hare
#

how much ram does your pc have?

#

intellij alone you probably need at least 4gb dedicated to it (honestly, probably more)

ember flareBOT
fierce chasm
#

the heap is a restricted amount of memory for the jvm anyway

#

unless I increase it

#

But idk if people typically have to do that when developing runelite

reef badger
#

there's no known common memory leak with the core client and such the development

amber rampart
#

that message is just from intellij and has nothing to do with runelite

#

it likes to have about 4-6G in my experience

reef badger
#

i smell a intellij memory leak distro name google search in your future (well unless it's just being limited by something else)

fierce chasm
#

It could have been either runelite requiring more memory, or a memory leak in either program

#

but I'll poke around about intellij

amber rampart
#

that message is only about ij's heap, runelite has nothing to do with it

#

nor any other program on your computer

fierce chasm
#

and it's not a common thing to happen for runelite development, like it's not recommended by default to increase the heap size for this project?

reef badger
#

it is not a common thing no

#

the default client is only 768mb which is afaik much lower than the intellij default

amber rampart
fierce chasm
#

Hmmm yeah I can't imagine that being a problem

#

No I'm not

reef badger
#

no i'm intentionally criss-crossing them

#

the default heap for ij is much higher than what the exe uses which tends to make people think they get better pref building the client

amber rampart
#

again, runelite and it's heap size has nothing to do with this

reef badger
#

yes but that was the question

amber rampart
#

"do you have to increase intellij's heap size" and the answer for me is always "yes"

reef badger
#

oh well for me it's no

#

i've never needed to touch that

#

so i guess the actual answer was "maybe you might need to"

rugged pivot
#

yeah mine has never complained with 2 gigs really

late hare
#

open ItemID and you'll probably get that notice 😉

reef badger
#

no 🙂

#

i wont be doing that 🙂

amber rampart
#

I even have it increased on my mac and I almost never use that for dev

late hare
#

yeah i have intellij at 8gb on all my devices, but that's far from just RL purposes

rugged pivot
amber rampart
#

that is a different heap just for the compiler

rugged pivot
#

o

amber rampart
#

Help -> change memory settings

reef badger
#

ye i saw that 700mb my default seems to be 2048mb

#

cuz i know i never touched this]

late hare
#

there's like 3 different things if you're running from intellij lol. you have intellij itself, the compiler/gradle, then running RL itself

#

all have their own heap size

rugged pivot
#

what is the third one defaulting to lol

late hare
#

it's like 10% of your memory or something

amber rampart
#

on release rl uses 768m, if you don't set it the jvm chooses from your max memory

rugged pivot
#

gotcha

#

also unrelated but I recently found the right build.gradle setting to run the hub plugin run command with the installed runelite jre so Razer keybinds also recognise it as OSRS 😂

late hare
#

looks like it's ~25% of your total memory

#

at 64gb total im seeing the xmx is like 17gb lol

rugged pivot
#

I bet you'd never crash in the mm2 caves

rugged pivot
#

I had it working with shadowjars before

#

now I have limitless run options

rugged pivot
ember flareBOT
ember flareBOT
ember flareBOT
uncut epoch
#

hey ive been taking a few different stabs at addressing yellow x on touchscreen. Do we have clarity on the TOS there? Namely is it concern over any input translation with mouse, or is it simply that noones submitted a plugin that solves it while still adhering to 1 input : 1 action?

eg: one approach consumes the mouse down in runelite to then synthesize it 30ms later. OS moves the cursor like normal, and then runelite is happy once the click comes in later having the cursor in the intended place the user clicked.

topaz pierBOT
upper valve
#

touchscreen plugins is in this list

#

FYI 1:1 input:action is not an official jagex rule, the playerbase made that up

reef badger
#

it's generally accepted that any approach a hub plugin could do would flag anticheat

#

oh ya i forgot it says that on the page

#

very good

twin rover
#

felanbird, my brain was fried from learning these maya animations, but made lots of progress today

reef badger
#

zoo

uncut epoch
#

good to know on the 1:1 aspect! got it was hoping there might be more nuance there. appreciate it

twin rover
#

can clone up to 10 times 🥲 capped at 350~ seems to be good to not crash low ends

fierce chasm
#

I just submitted a PR for a plugin, but CI is failing saying my gradle config is using something deprecated. I believe I simply just copied the gradle build from the example plugin repo. Could someone help me out? https://github.com/runelite/plugin-hub/pull/11434

amber rampart
#

no, ci is failing because yoru repo doesn't exist

fierce chasm
#

Well that's interesting

#

I forgot it was private, lol

#

I made it public, can I rerun CI somehow without adding random commits?

#

Thanks

ember flareBOT
ember flareBOT
reef badger
#

mmmmm +3/-63

#

yummy

upper valve
#

best prs are the ones that delete code

glad onyx
reef badger
#

someone to review it probably

pseudo rapids
#

Do enums tend to change on rev updates?
clientThread.invokeLater(() -> client.runScript(914, 1, 1131, savedTab));
I've done this for a plugin currently PRed to the hub, where 914 is the script for changing tabs in game, and 1131 is, as far as I can tell, the current enum value of the resizable modern client layout

#

actually checking runelite.api.EnumID it doesn't seem like those have changed for at least 8 months, so should be safe?

ember flareBOT
ebon frigate
upper valve
#

it can help if you gzip the gson or put it onto one line

ebon frigate
#

I can just straight up remove it (data is coming from external source now) but I like having the reference file in the repo. Sorry, my friend likes having the file in the repo

restive garnet
#

ah, the beauty of JSON - whitespace and line breaks not required 😄

upper valve
#

if you want it in the repo but its not used in the plugin you could do a separate branch

#

or, a separate repo

ebon frigate
#

Was just thinking that too lol, great idea

ebon frigate
#

Not too bad now. Does the "size-[X]" label automatically update on github if the PR size changes thresholds?

oak rock
#

i believe it should

#

i will say though that 800 + 3400 is still > 4000

upper valve
#

yeah but its 3500 lines deleted its fine. i can look later

chrome crest
#

Would you have time to look at a size-m I have within the next few days?

worthy sparrow
#

have you seen the queue

upper valve
#

maybe, maybe not

#

i'm only really prioing her thing because she was concerned about the size of her patch and did some work to make it easier for us

eager elk
#

if I put --insecure-write-credentials then login to a test account , if I leave it there and login to my real account does it overwrite the file or keeps the original

glass sandal
#

Overwrite

eager elk
#

so I should remove the --insecure-write-credentials everytime I switch accounts

stuck shale
#

delete the file too

chrome crest
#

Queue is biggg, that’s fair I can wait

upper valve
#

i think he wants to basically only do plugin dev on a test account

#

in which case yes you would jagex launch with the account you want, then remove the flag, then i THINK that would work?

upper valve
eager elk
upper valve
#

we all develop on our mains

eager elk
#

oh

upper valve
#

that's not an issue

eager elk
#

aslong as the file isnt leaked anywhere its fine?

upper valve
#

yeah don't tweet it

ember flareBOT
desert fulcrum
snow needle
#

Does anyone have a GitHub action that automatically runs on cache updates? I want to automate my updates to my supplemental item metadata sheet and I'd love to copy someone else's work.

glass sandal
worthy sparrow
#

I believe resource packs polls that

ember flareBOT
amber rampart
#

resource packs has a workflow_dispatch that I call along with the release job for osrs-cache and the rlccau

fierce chasm
#

Wow there are a ton of PRs for plugins

#

Way more than I was expecting

grizzled aspen
#

with the power of claude anything is possible

fierce chasm
#

oh no don't tell me most of them were made with AI

#

I was trying to approximate how long it'd take for my PR to get merged lol

worthy sparrow
#

people are prmaxxing

granite quest
#

General question. We cannot modify loot that has already been published to the lootTracker?

worthy sparrow
#

no

upper valve
#

i don't know the last time i saw a new plugin pr that looked handwritten tbh

#

i think it's genuinely near 100% ai generated

fierce chasm
#

Just look at mine 🥲

shy pine
#

You're in for a surprise

upper valve
#

what is yourpr

fierce chasm
sharp knot
dim wraith
ember flareBOT
fierce chasm
lavish ice
#

Oh man, not another wall hider plugin

fierce chasm
#

It's not just a wall hider

desert fulcrum
hollow stratus
#

Wasn't someone else just asking about a plugin the other day that prevents automatic camera movements?

#

Ah, it was Avahe themself lol. Maybe your plugin could be a "camera fixer" plugin for known locations, like verzik, zulrah, etc

fierce chasm
#

Was planning to do that originally but realized they fixed several places

fierce chasm
reef badger
#

omg omg omg an actually kind of useful feature

#

we're so back

upper valve
#

?

heavy bobcat
#

don't jinx it, now github is gonna be down tomorrow

upper valve
#

i see 4 things in this image although i know surely 2 of them are not in consideration

reef badger
#

the contrib/first-time label escaping the PR and being in the search

upper valve
#

OH yes. i noticed that at work today. that is actually very good

#

did they add a filter for it

reef badger
#

no docs update and i can't think of what it would be, but ™

ember flareBOT
#
[runelite/static.runelite.net] New branch created: wiki-data-2026-04-10
covert marlin
#

Are we allowed to add a toggle that allows a plugin to not be viewable by OBS? It only works on windows, but I had a request from a streamer. SInce we cannot use third party emote integration, he wants to keep the combined chat on obs and just have another chat in game so he can read chat while pvming. No custom dlls, just JNA calling into user32. Thanks.

worthy sparrow
#

no that wouldn't be allowed

ember flareBOT
#

Hello,

Unfortunately these fixes/changes don't seem to work with NordVPN (At least for me). I have tried adding "-Djava.net.preferIPv4Stack=true" to both the config file and the JVM Arguments section of Runelite (Configure), I have tried erasing those (including the newly created settings file) and just ticking the "IPv4" checkbox in (Configure), and I've tried every combination of those in every way I could think of.

Every attempt leads to the same result: Sitting at "Connecting to server...

ember flareBOT
karmic linden
ember flareBOT
ember flareBOT
tight quarry
#

Still haven't been able to get the automatic switching to the friends-chat tab working, but when it's on the friends-chat tab it works!

I just wanted to verify that this is allowed. 1 click on the popup opens the correct tab. Then to kick I still need to click twice to kick both players, however I don't have to move my mouse. Normally it would take a server tick for the list to update and so move the second player 1 spot up, but I keep track of kick attempts and so immediately update the list. Allowing me to more easily kick multiple players quicker by spam clicking the spot.

I did also prevent kick requests for the same user when spam clicking, to ensure it'll only send 1 kick per user.
The default behavior is that if you spam click kick a user, it might send multiple kick requests to the server.
So if I were to wait for the list to update after the kick got confirmed, spam clicking the same spot would result in more requests to the server. So... I assume this is okay. Just want to make sure I'm not breaking any rules!

stuck shale
#

If a trap has the same id if it's empty/full but has a different animation is there a preference in how to add the item for hunter? The 5 hunter traps on crown jewel for rainbow crabs have their own ids for when they're build but the id stays the same if they're baited or not and only get an animation when they've got a captured crab

#

i have to catch 7k more of these buggers figure i could try to add them to the core hunter plugin

quick path
#

You'll need to add something new for that since none of the other traps work that way

stuck shale
#

got it, the resetTime() is a bit wonky as these traps never expire, just want a recolor on empty/baited/full

#

the pie resets every game tick currently, not sure if there is ever a time where we put a pie timer on something without a timer that counts down

#

maybe its ok, its sorta hard to notice

quick path
#

if it's not too much trouble I'm sure we could add a method to render those as a pie which doesn't count down

stuck shale
#

added an ignoreTimer field to HunterTrap, good idea

ember flareBOT
ember flareBOT
ember flareBOT
#

Tracks the state of a trap per game tick using varbit values associated with the game objects.
0 == not built
1 == empty
2 == baited
else full (rainbow crabs have 3,4,5 for the 3 different variant of the color crab inside the trap)

I am using a map to go from object to varbit to not have tons of duplicate code.
I added an ignore timer field to the trap, defaults false but crabs set it to true because their traps never expire, they do have a fixed catch time though.

https://www.y...

ember flareBOT
topaz pierBOT
trail veldt
#

You still around at all? Am looking to make some fixes to the Zalcano utility plugin and I noticed it's been a while since it's updated

sinful lava
#

the whois command does not ping them

trail veldt
#

oops. I'll probably just PM them then

quick path
# ember flare

I'd forgotten the hunter plugin works by scanning objects every game tick, that's kind of awful

#

I'm guessing it was written before we had object spawn/despawn events

stuck shale
#

The status could be tracked via varbit changes but I put it with game tick because that’s the method that already existed and seemed to make as much sense

#

Going from varbitid change to object id would work instead of object id to varbit in a map just the same tho

quick path
#

yeah I was thinking var change events would make more sense for these ones

trail veldt
quick path
#

Yes, a PR is a fine replacement given the circumstances

stuck shale
#

A later rework of write of the others?

quick path
#

maybe, I'm just inclined to try to make additions use modern conventions is all

stuck shale
#

That’s a good approach.

#

I’m usually a follow a pattern of previously set type of guy rather than skinning the cat in the “new” way

#

I’ll change it np ty for initial look

upper valve
#

imo if they have issues off ppl should just be able to submit a takeover and we'll ping the author

#

and also yell at them for having issues off

valid wave
stuck shale
#

They seem to only reset when you logout

#

I’ll check again

#

idk how long to wait but its been at least 6 minutes for the caught trap to expire

#

Yeah it’s probably forever, I don’t think jagex would make the timer be >5 minutes if the default logout time on afk is 5 minutes, it’s been 10
Minutes and it’s still here

valid wave
#

Huh, it's probably something when reloading, I left the island for more bait, came back and they were empty

quick path
#

maybe they go away if you board your boat?

ember flareBOT
stuck shale
#

I’ll check if they empty on object despawn

trail marten
#

@rancid marten someone alterted me that you cannot use core auto-layout when you haven't scrolled to the tag tab on the sidebar.
They proposed I add the auto-layout button from my plugin to core tag tabs to alleviate this and then autoconvert it to core layouts.
This is kind of weird, so I was wondering if you want to add a fix for this yourself.

n.b. - before I "fixed" the auto layout showing up on tag tabs other than the one you're on, this may not have been a problem 😂

#

so reverting that could be an alternate solution.

stuck shale
#

and it goes go from green -> red from a full to a empty just fine

quick path
stuck shale
#

(even without a despawn event) because the on object spawn event sets the spot

dense owl
amber rampart
solid shadow
#

thats sick

stuck shale
#

windows xp is so back

amber rampart
#

I'm going to have to change this so it isn't a real popup since its super janky for like 5 reasons, but it does work and you can dnd stuff into it at least

stuck shale
#

is this in addition to moving them then?

amber rampart
#

yes

stuck shale
#

cool

amber rampart
#

I definitly did not rewrite the whole sidebar into a custom component

solid shadow
#

"dnd" would be so nice

ember flareBOT
#

I know this isn't something most people want to hear but HDOS actually has a built in UI scaling option. If you can get over the fact some icons are different and the graphics are like 117HD on steroids, the performance is twice as good when comparing to runelite and these ancient java bugs are non existent. This issue is at least a year old, I had hoped it was fixed by now when returning to tiling wayland but sadly we'll probably have to wait for runelite to get rewritten or jagex to release...

trail marten
#

because it's not visible on the sidebar

#

so you can't right-click it

#

if you have a very long list it can be a problem

rancid marten
#

im confused, how would you normally use auto layout without scrolling to it?

trail marten
#

you can't

#

which is annoying because scrolling can take a long time if you have a lot of sidebar tabs

#

(although previously you could have right-clicked another tab I think? idrc how it worked)

rancid marten
#

oh the problem is they cant use your auto layout button now without it being visible in the sidebar?

trail marten
#

they can't use core layouts auto layout

#

using mine was something they proposed as a solution

#

anyways it's hard to use auto layout currently if you have a lot of tabs