#development
1 messages · Page 12 of 1
perfect
remarkably after setting up that alignment with the old jar and restarting both clients they launched still perfectly aligned
an april fools miracle
now ill have to remember to update the wiki pic when this change goes through
you should document the 1 week we have it off by 1px
if you insist
btw i asked people what happened with that akd login screen thing going back to the old version
i document the welcome screen to levels of "they moved the message of the week up 2 pixels at the start of 2026"
noone has any idea
which is why all the ones ive taken are on official, java would cut off the bottom 2 pixels
lol
i informed them about the transparent border thing, which was fixed for yama, unfixed for varlamore 3 and fixed for sailing
653aec8 update mokha-tracker to v6.0 (#11161) - camjewell11
ef6c5ee Update demonic-larva-tracker to v1.9 (#11271) - marknewan
c56af63 Update emblem-trader-skull-timer to v2.1 (#11273) - Teekiz
07aa7ae update rebind-camera-rotation (#11287) - Yookiop
283d423 Update not-enough-runes to v1.8 (#11288) - Hannah-GBS
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
Didn't someone make this recently? I thought I saw a plug-in get submitted that did something like this.
Nvm then. Nice plug-in
ty
How are you handling the hunter meats that have a delayed secondary heal?
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
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
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?
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?
i think most people dont read configs so default the most amount of useful info on
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"
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.
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
yeah I was planning to do that actually, should be pretty straightforward to implement thanks again
Damn, it just might've, I've been in 2 sessions simultaneously for over 4hrs without even a stutter
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.
I'm sure some calls may still be fine, so the ones which are causing NPEs should be prioritized first
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...
What is the purpose of this added parameter? Avoiding a "method value could be null" warning or something of the sort? I'd rather we leave this method alone after the changes preceding the callsite for it.
What situation is this trying to avoid? This check should have a comment explaining the need for it.
scanNpcs() wasn't being called before, why is it necessary now?
This was added as a precaution to avoid an infinite loop in invokeLater should the gamestate change from LOGGED_IN to another gamestate where localPlayer == null. Possibly a gamestate of CONNECTION_LOST occurring right after login could cause this. If this is not a concern I can remove this check.
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.
onLogin()'s only callsite is within the onGameStateChanged function which I changed to include a client.getLocalPlayer() != null check. I am reusing that variable instead of calling it again.
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...
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.
confirming your own wording reads weird
There isn't a need to pass around a local player variable.
so many issues with NPE because of localplayer
why would you receive a logged in event, if you don't even exist yet
because you have to login before players can be sent to you
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
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
if you are not on a boat it looks you up in the normal players() container
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?
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 10
Bug description
- Area lines are not visible while on a player boat
- 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
- I believe
Screenshots or videos
Area lines off boat:
Area lines missing while boarded:
Tim...
Hi has anyone else reported issues with client.addChatMessage?
For reference:
https://github.com/dey0/pluginhub-plugins/issues/32#issuecomment-4173515208
Example reproducing the issue with no additional plugins: https://youtu.be/J--EUYZD4l4 It seems that times do not show instantly, although they're still recording the correct time. I'm able...
not that I remember
c59db0a Update visibilityenhancer (#11196) - Endrit-alt
3b635a5 Update herblorerecipes (#11264) - climbridecode
7762cd3 Update boomerangbandits v1.3 (#11309) - ostechgit
cdacf4e Update compact-orbs to v1.7.4 (#11314) - its-cue
bf96210 Update barbarian-assault-pbs (#11329) - CCatRS
ebd3bfd Update clue-details to v2.8.1.3 (#11335) - Zoinkwiz
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
hmmm you are seeing chat messages not being rendered immediately?
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
if I do client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", "test", ""); in jshell it works ok
do you have an example of something which doesnt work?
It does seem to be intermittent, testing with myself and a couple others we reproduced it consistently a few times in a row at Tekton and Crabs in challenge mode raids. The message from Cox Timers plugin here: https://github.com/dey0/pluginhub-plugins/blob/cox-additions/src/main/java/de0/coxtimers/CoxTimersPlugin.java#L246
i dont see anything obviously wrong with the code mm
I included a video reproducing the issue without additional plugins on here: https://github.com/dey0/pluginhub-plugins/issues/32#issuecomment-4173515208
https://youtu.be/J--EUYZD4l4?t=68
The room should complete when the crystal disappears (timestamped the video just before that), and the eventual chat message reflects the correct time, but it doesn't render until I toggle chat tabs
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
Not that I know of, I did try turning all plugins off on a fresh profile and still reproduced the issue
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
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
yeah
ive seen the same happen with Scroll Box Info
whats the deal with dey0 btw? is he gone gone?
21e924a update creators-kit to v2.1.16 (#11341) - ScreteMonge
09fa05f update boomerangbandits to v1.3.1 (#11338) - ostechgit
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?
You could PR the updated coords
so just fork a copy and pr it?
Yes
sounds good will do, thanks 🙂
moved greater demon tile 1 s/e
wdym "off marked"?
see above PR
was just 1 tile off, couldnt place cannon down on that tile
Ah ok
didnt know i could push to the runelite itself, so thats pretty neat for the future 🙂
3ca3708 update chanceman-tracker-runelite-sync (#11267) - chanceman-tracker
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...
7fb6973 cannon: fix Chasm of Fire spot (#20042) - DamnLol-GIT
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
Jagex's third party client guidelines: https://secure.runescape.com/m=news/third-party-client-guidelines?oldschool=1
Additionally, these features have been rejected or removed from RuneLite: https://github.com/runelite/runelite/wiki/Rejected-or-Rolled-Back-Features
yes thats forbidden
Adds additional visual or audio indicators of a boss mechanic except in cases where this is a manually triggered external helper.
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 🙁
No
yeah didnt think so, thought it might be ok since its not nefarious 😂 worth a shot though
is there any way to find out what effects overhead text has applied to it? actor.getOverheadText() doesn't include red: etc
no, the server parses it out and sends it in a different format that we don't expose and iirc sucks
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
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
youre right its not the same. its RuneScape bold 12 https://github.com/RuneStar/fonts
what's the client text drawing stuff?
FontTypeFace::drawWidgetText
you have to steal the font from a widget that has it loaded because reasons
I see, sounds like it'd be better to include the ttf from RuneStar repo
I think that is what we use
Is it the W problem? #development message
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
my text looks really thin compared to the real chat text
it might be an interface scaling problem
Share an image?
(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
I'm using graphics.setFont(FontManager.getRunescapeBoldFont())
🤨 lemee see your plugin, something doesn't sound right
Here's the text drawing part https://github.com/Thource/rl-nameplates-and-hitsplats/blob/d9eedc8aba61d0c1051e3443eb5311b93b59e4cb/src/main/java/dev/thource/runelite/nameplates/NameplatesOverlay.java#L98
but I'm going to bed now, will try again tomorrow 😛 (added text shadow after the screenshot above)
Seems to be running as intended from what I can tell
Text is all correct and everything
its close but the overhead text is not the same font
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
oh i meant the overhead font in your picture compared to what the client uses
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
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?
Branches
ahh thats right, havnt used a branch in a while ty
i personally find multiple plugins in 1 repo w/ branches annoying because github ui code search doesn't work
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)
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
just use the mega checkout script
@amber rampart I opened a pr against kpxc plugin https://github.com/abextm/keepassxc-runelite/pull/22
config would be good, default on seems ok tho
done, was a bit awkward tho since no config object in KPXCSocket
ff7a7f1 Update wiki data - RuneLite Wiki Scraper
That’s very weird, I’ve just had an idea though, I installed the RS fonts onto my Mac and it changed the way the side panel fonts look, I wonder if this is the same issue, because my “W”s are rending correctly
yes, it was the issue, my self rendered chat now looks better and my Ws are pointy instead of round
https://github.com/runelite/runelite/issues/18830
and there's an issue open for it already
it was very amusing that 3 people all had that issue in the same time frame
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 🔥
hes still around but i dont think he cares about runey anymore
Oh wow that's fascinating, glad you figured that out! I still believe that RL is using a slightly different font to normal overhead chat font (you'd see it in the capital W, not the undercase w), but nonetheless, it's very close and most won't notice
so uhh, just realized when i PR for a new plugin yesterday it tried to merge it into my first PR for my other plugin before i made a fork 😂 just wonder if that screwed up the last commit on my original plugin by doing that
https://github.com/runelite/plugin-hub/pull/11316
looks fine
good good, thats a relief, ty ty
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)
no
🙁 ty
[ https://github.com/poi56iop ] [ @still slate 185224084353712128 ] soixe#0
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?
Thanks Adam!
I get a lot of use out of this plugin but the one thing I have been missing is a quick way to return to my preferred world. To make this easier I have added an option to set a home world in the world hopper plugin and a keybind to be able to return quickly.
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
have you read this?
I have not, thank you.
That clears things up, thank you Adam.
Hello people 👋, is Java 11 the recommended version to use?
yes
wish yvesw was here to update default minimap zoom 🙁
I think I made the default minimap plugin do that?
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
oh thats nice. now i need to stop rightclicking the minimap all the time 😂
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?
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?
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
@late hare I guess it's InterfaceID.Chatbox.MES_LAYER_SCROLLCONTENTS you think?
looks like it, ye
what causes the right click to reset the zoom-level? Is that a plugin or Runelite default? Happens to me quite often on accident and I would love a feature to either unbind that or rebind it to something else
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
Runelite added minimap zoom to Java client to match official/mobile and right click is how they reset on their client too.
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
A hub plugin could be made to consume the right click event? “Prevent minimap reset”
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?
Hub maybe, if Adam wanted it core he can make it core lol
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?
push the projects to github and pull them onto the other pc
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.
Have you installed GIT on the new pc already?
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
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.
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)
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
not sure if relevant but i noticed for the issue with the cox timers plugin that the message tends to pop up when another chat message is queued
is that new with 237?
march 24
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
is it new with 237?
not sure how i can find out. i cant go back to the prev rev right
does the queued chat message way of adding a message do anything to update the chatbox that client.addchatmessage doesnt do?
what does client.refreshChat do? (doesnt seem to fix the issue)
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));
}```
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
i see
so more stuff that was using clienttick couldve had subtle bugs due to this
nice find
i liked it more when jagex didnt have the people to make engine changes and so nothing ever changed
f41969c update poh-portal-labels to v1.2.0 (#11360) - jcbmcn
ecca7a5 update creators-kit to v2.1.17 (#11365) - ScreteMonge
6168bad update random-event-helper to v3.4.1 (#11353) - Infinitay
e5f1adf update mazchnaskipping to v1.4.0 (#11316) - DamnLol-GIT
6d8d401 update bank-tag-layouts to v1.5.0 (#11295) - geheur
Thanks
Has something changed recently for MenuAction? E.g. MenuAction.GAME_OBJECT_FIFTH_OPTION?
the identifier has stuff bitpacked into it now
Is there something in core to strip those?
or how should comparisons be done?
you can compare MenuActions themselves with ==
like, I am doing this:
MenuAction.GAME_OBJECT_FIFTH_OPTION.equals(menuAction)
that is fine, == also works since they are enums
hmm, but I don't know what stopped working here recently:
https://github.com/Skretzo/runelite-plugins/blob/6ce5340cf6407a1c65300bd458d5293b385de4b2/src/main/java/com/noexamine/NoExaminePlugin.java#L130-L133
poh got moved?
did it?
yes
you should learn how to work a debugger btw
hard to use a debugger when you don't log in anymore 😄
i guess
7257, 7534, 7535, 7790, 7791, 8046, 8047, 8302, 8303
thank you
is 7257 still daddys home?
Just following up, @cwjoshuak I use your plugin and it's great. Thanks for building it. Here it is for anyone interested: link.
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?
Separate
okay thanks!
if i just put ina pull request but realized i fucked something up do i just close the pull request? smh 🙁 lol
Edit the pull request with the updated commit
ok i missed 6 items from delayed heals no idea how zzz
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?
The toa plugin only shows the answer after you've flipped the tiles over manually.
Or tells you the number to get after you check the sum to get.
The lights out one just tells you.
I don't think we're taking about the right puzzle Cooper
The difference is
Back when Llemon made it, it was checked by jagex often if I recall so nothing was against the rules
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
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?
Hunllef Helper is manually triggered which is fine. It isn't synced to any game events
Yes, that's what I said
i didn't read it that way
Thats what makes it fine. It uses no game events. It could be an external website (and previously was) and function the exact same
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)
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
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
Ok, so the information that the plugin solver is using, is purely chat based
That's all I was wanting to know
idt thats the answer but ok
Well on this specific answer, that's all I can seem to get
You can just look at the source of the plugin to see what it does
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
Combat, for one
I don't think this is good justification, because Zulrah :^)
And really NFC's point about "Jagex hasn't asked us to remove that" is the other big one
Also as someone who enjoys ToA but hates that puzzle room, can we change the subject and not give it any attention? Thanks 😂
the deep sea trawler plugin could literally do it for you like a bot and the content is still cheeks, it’s so bad.
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?
iirc there's a discussion somewhere where someone is claiming that radius markers on akkha is cheating and they demanded jagex look at it
Hope not, I can barely see the ghosts
Really? Even after akkha became free? They really gutted my boy, now the only thing that can kill you is your teammates
😒 Snitches
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. 🤦♂️
didn't that start the original sepulchre getting removed
bunch of freaks with 200m on like 10 accounts tweeted jagex
Ye
😔 Elitists
I feel like OSRS is the only community that wants people to suffer just because they did 🙃
That's probably just the MMO grindset
Yea, fair enough
i was impressed that you were able to do that in 4000 lines of code less than the other one
ah
Come on Paj, pick up the slack 😏 The AI caught you slacking
oh yeah the AI analysis of review queue timings in the original was amusing
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...
This isn't a RuneLite issue, it's just a Jagex easter egg. https://oldschool.runescape.wiki/w/Chat_Interface#Commands
Hi @raiyni thanks for working on Runelite <3 Would you be willing to share a bit of the background on this merge request with the community and what the current issues with repo are?
Considering the feature request for customizable anchors was originally posted back in 2019 its amazing to see it still has community interest 7 years later.
this whole situation is a bit confusing looking at it from an outsider perspective
To elaborate, if paid plugins are going to be allowed, why are plugins that copy and remove the pay walled feature also approved?
Maybe it'd feel less weird if it were developed as an independent plugin, but literally cloning, removing the paywall, and going on the hub is strange
the license allows you to do that
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?
Yes legally it's fine, but from a software platform standpoint it doesn't make much sense
Plugins that practically do the same thing as each other are already prevalent on the plugin hub. It’s not really any different
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
you can still use the plugins
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
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
I was just joking about how the AI had you down as 4th for merging Plugin Hub PRs
Lawfully evil or Chaotically good depending on which side you're on 😂
Oh
I hadn't checked the file
Can you elaborate on it not resulting in a working solution? Didn't personally download it so I and possibly others don't follow on that point
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?
Nope, don't think so
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
Is the config name available through itemcomp or manager or do I need to do some sort of reflection to get that programmatically?
Itemdefinition is a thing I think?
basically nothing on the hub makes sense lmfao
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
The new wave is character trackers
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
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
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
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
Thanks for the discussion about it
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.
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?
This is what i mean
there’s already hop hotkey in world hopper
Oh good, it just feels very illegal
i’m not sure if you can put one in your plugin, but your users can just use world hopper hotkey
Good to know, thanks for the tip
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
reflection is not allowed in runelite plugins, so you will go to rejection jail
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
azerty keyboard spotted
Aww really? Not sure how else to get the config name.
or looking at the variable names in gameval/ItemID, or using reflection to collect a list to use at runtime
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.
Some specific features that RuneLite can't currently accept: https://github.com/runelite/runelite/wiki/Rejected-or-Rolled-Back-Features
Ah thanks!
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
Is MenuShouldLeftClick not supposed to work with placeholder bank items?
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;
}
}
}```
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.
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
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")
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
Does every single cluescroll step have it's own item with unique ID!?
not beginner or master if I recall
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!
- 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
There's already a solution for this coming btw. One of the tasks tracker guys is making a data bridge plugin that will allow you to send the data to sites if they conform to the json data standard we've set up. Gecko and Groot have both migrated their tools to it.
We also have scrapers that grab from the game cache in full.
Chisel varbs are years out of date lol
I see, that's very interesting. Thank you both for the information!
I was worried that'd be the case when I saw some Trailblazer stuff! 😂
6e44356 Transfer npc-accessibility-tagger - iProdigy
Ye
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
very hard
ping me again in like 6 hours if i havent reviewed it
Thanks
Thanks. We'll try and reduce the size of the follow up in the meantime.
🐐
silly question, but how do I set log level to debug?
debug checkbox does it in the runelite (configure) and if you want that ran from intellij i think you add --debug to it
--debug in the program agurments in IntelliJ was the trick. Thanks Z
np
if you ever wanna know the other ones you can refer to core code and see what the valid args are there
/**
* Kandarin headgear
*/
public static final int CERT_BLAST_FURNACE_PUMP_HELD = 6450;
This is really some of the weirdest stuff lol.
:ducksmokingindeterminatesubstance:
i like TELETAB_LUMBRIDGE too
This isn't a RuneLite issue, it's just a Jagex easter egg. https://oldschool.runescape.wiki/w/Chat_Interface#Commands
Thank you very much Cooper, i appreciate the info :) I tried looking it up online but wasn't able to find anything originally. Very helpful ! Cheers
fbfb49d update wow-style-nametags to v1.2.1 (#11385) - bonehurt
ed6fc7f update boomerangbandits to v1.3.2 (#11395) - ostechgit
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 🙁
oh nice didnt know about that site, tyvm ❤️
I'm on Linux CachyOS with Wayland and I'm also experiencing this issue.
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?
I just found this. Which works, however it doesn't stop the script from running that opens the interface
setupButton.setOnOpListener((JavaScriptCallback) ev -> {
log.debug("Onclick override");
});
you probably want to intercept it using MenuOptionClicked event and calling consume()
Looks like I can do something with that! Thank you! It would be great though if I could keep the right click option behavior the same, however it seems that in that MenuOptionClicked event, all the data is the same so I can't really differentiate between a right click option of the button (where the menu item still shows "Setup") and a left click action on the button.
Or would I then also need to go override the right click options and create custom runelite options for the right click and do stuff based on that..?
Was hoping for a simpler / cleaner solution, but I think that could work if there's nothing better
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
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
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
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
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?
yes
base model -> animate -> scale, yep
Damn, that may be very tricky for working around cases where I handle multiple models merged together with different scales...
RLOC exists because the old api couldn't handle cases like that at all
Now that I'm second guessing things I previously knew, models (say, player model components) aren't also being merged every animation frame, correct?
i'm not familiar enough with player models to say, but maybe abex or adam can
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
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?)
they should always be scaled after animating
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
you can always merge them later
Anyone have issues with runelite closing cleanly when running from intellij? After attempting to close the client, the run command is still spinning
I don't think I can? Atm the API doesn't allow merging of Models after merging, only ModelData. And ModelData cannot be animated
Oh
Thank you
I feel like that didn't used to be there, but I also suffer from situational blindness
Is there a way to hot reload a plugin you're working on?
Thanks
Is there any development environment that supports this other than idea?
Some people use VSCode but there’s no setup guide
(and you're a lot less likely to get any sort of help with issues)
👀
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...
0x11f 😭
FYI not running runelite in safe mode, but this might be a GPU / 117HD plugin issue seeing as AI keeps telling me it's GPU / driver related
"your hardware is broken and we cant do anything about it" is such an underwhelming response
Anyone know of a plugin that prevents forced camera rotations when you enter a room? E.g. at moons of peril, verzik, etc.
no
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
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?
Thanks for the idea
Yeah I keep meaning to write up something for the FAQ with info on doing a BIOS update and the core affinity stuff that's seemed to help some people as a workaround but I haven't had the chance
I've been thinking about a camera presets plugin where you can save the location, angle, and zoom of a camera position that you can then select and go back to as desired. Examples: different agility courses, different skilling types, like Tithe Farm, MLM to get the sack and deposit box just in view, etc. that way muscle memory or screen markers can be helped by that
this is their 2nd time doing that lol
Maybe I should start PRing random personal projects to the runelite repo to keep them safe too
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,...
@hollow stratus this is really not super helpful
Especially since the microcode versions listed are also problematic
Anything other than 0x12f is an issue
That bozo even removed the credits/copyright header 😠
well yeah, that makes it not legally binding now
very, very safe.
Reset idxStart on whitespace to prevent triggers with ':' from breaking subsequent :shortcode: emojis. Reordered blocks so if a line ends with a :shortcode:, it is processed before the end-of-line check resets idxStart.
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"
what is with all these people commenting on hub prs for plugin support
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 }
you can inject @Named("developerMode") final boolean developerMode
And this enables with the --develop-mode flag I guess
yup
Honestly if you could just not leave a response which is giving bad info in general that would be better because it's just going to confuse/mislead people who are looking for info on what is a semi common problem
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.
onmenushouldleftclick?
You may also be able to change the menu entry type to be one with a low id (<1000, such as CC_OP iirc)
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) :/
entry.setType(MenuAction.CC_OP) iirc
Idk if you can do that from within the onMenuShouldLeftClick though, never used that before
@Subscribe
public void onMenuEntryAdded(MenuEntryAdded event)
{
if (event.getOption().equals("Kick user")) {
event.getMenuEntry().setType(MenuAction.CC_OP);
return;
}
}
This seems to work! Thank you and thank you as well @pseudo rapids !
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 ...
Hey Devs, how do I get my plugin reviewed or is it just a waiting game, no worries if so.
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
Sounds about right, I got the build running etc after many fixed/commits 🤣
Claude discord clan tag 🙂
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 🤌
They can be but around here they’re one and the same. The venn diagram is a circle.
@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.
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.
0542f39 update loot-console-logger to v1.2 (#11136) - emerycp
cd63f43 Update tzhaar-hp-tracker to v1.1.0 (#11348) - bopsec
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
5c343a8 Transfer npc-accessibility-tagger (#11387) - iProdigy
Can you add a test for this case?
client.setVarbit(VarbitID.SIDE_CHANNELS_TAB_SELECTED, 0); does seem to select the tab, however it doesn't redraw the panel and so only the tabs visually update...
there is follow up scripts that build it after it's seelcted
That's what I thought, I'm just struggling to find which ones and with which arguments to call them..
click the tabs yourself and look at the scripts that fire
That's what I'm trying but can't figure it out... :/
that doesn't look like the script event viewer to me
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.
Order might matter as well, so lemme try that
i dont know if order matters but you're executign scripts that do not matter at all
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
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
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..?
Is there a way to run multiple plugins that I'm working on at once?
In the test plugin, just add the extra package, com.test1plugin, com.test2plugin
They're in different projects, so I assume I can import them anyway?
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
Amazing 😄 Now it feels like I have even less of a clue what's happening hahah 😄 Thnx for trying to help though man. I appreciate it.
the old repo used to have a readme that linked to scripts, sorta miss it
I don't think this will work for my case (multiple projects)
is rs2asm is a custom assembly language?
Anyone know if runestar is abandoned?
we made ours because runestar stopped updating theirs
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
no
Any advice?
you could use sideloaded-plugins maybe
I see how using the script ids helps me figure out which are relevant and which are not, and so i can simply not call some of them, but it doesn't help me figure out which script(s) I -should- be calling to get it to work..
Or were you saying that I can somehow easily search all those scripts to know which ones to call..?
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?
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
https://github.com/RuneStar/cs2-scripts/tree/master do you mean this one?
Old School RuneScape cs2 scripts. Contribute to RuneStar/cs2-scripts development by creating an account on GitHub.
they want to navigate a tab and refresh the contents via a script execute or something
yeah that one, didnt know its been 5 years out of date
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...
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
I wouldn't want to modify client scripts. I'm just trying to call the correct functions to select the chat-channel/friends-chat when clicking a button.
The only reason I tried the varbit stuff was cause nothing else worked and at least that did "something" haha
did you change a varp or a varbit?
Running this script selects the general tab, but not the sub-tab.
A varbit. And the varbit made the sub tab select correctly, visually as well, but not the contents below
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.
What scripts run when you click to change the tab
These seem to be the ones running
I will verify it once more just in case, as i did blacklist a bunch of ids which spammed the inspector like crazy
You probably want 1657 I would guess looking quickly
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)
you might have to do a little bit of thinking and actually look at the scripts and read them
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.
Take a look at the VarbitID.SAILING_BOAT_{1,2,3,4,5}_PORT varbits, it's what quest helper uses to track what port each of your boat is docked at
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?
check out Port.java in the quest helper repo
o nvm that's not a complete list, just the ones used in quests
👍 thanks a lot
is using multiple authors for plugin hub purely cosmetic? for example, this one has a silly link instead of one for each author to see their individual plugins https://runelite.net/plugin-hub/show/equipment-inspector
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
true for that purpose, just noticed how it behaves on the web
Not sure what that is but I ended up just modifying the source to load all plugins in the plugin directory
hm, this one actually might be using the plugin hub properties rather than the manifest
The web version is fed from runelite-plugin.properties by the look of it
in which case it is purly decorative
yea it's the authors entry in the plugin-hub repo that actually matters 🙂
If you use the gradle jar task and copy the jar from build/libs to ~/.runelite/sideloaded-plugins and run client in --developer-mode it will load the plugin.
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.
cant you only run the dev mode from IDE though? wouldnt make much difference surely?
i tried loading dev mode by adding the command line to the EXE launch but never worked
you can run dev mode from the jar if you build the shadwo jar
it is disabled for exe to run dev mode
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
generally yes
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.
Is it a new plugin or an update
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
There are still a lot of submissions older than 3 weeks for new plugins anyways
im waiting for the commit to be reviewed before i make an update as there is one thing i need to tweak
I built the shadow jar and symlinked it in ~/.runelite/sideloaded-plugins/, and ran runelite --developer-mode and my plugin isn't in the list. Maybe I misunderstood something?
I was attempting to do this without running runelite from intellij, if it's a requirement I can but was trying to avoid it
yeah thats cool, i had the intention of discussing the plugin during my next yt video release but i can hold onto it for a later release 🙂
--developer-mode doesn't work from live client. You can see how I use it from Jagex launcher on macOS here. #support message
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
Is runelite.bin on your system just a file that's running java -jar runelite.jar with flags?
yeah, i thought as much, reason why i said i'd wait for a later release
I renamed the RuneLite binary on macOS to RuneLite.bin. Jagex Launcher just runs whatever is in correct path.
I see it's just running the shadow jar
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.
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.
It likely is a real perf boost honestly
I would love to see any evidence of that tbh
hm it still isn't loading my shadow jar in sideloaded-plugins, interesting
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
FYI spamming the hub search box can apparently crash the client
hmm
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?
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
I run with -ea and never had that issue on macOS. Also I added test to that emoji fix PR.
I suppose it's only when developer mode is running
Might debug it later it's not annoying enough yet
Can script IDs change, or should they always stay the same? E.g. a camera script I'm trying to prevent from executing
They usually don't change usage of existing scripts, so the ID will not change frequently
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
Yes
How?
In the script inspector theres a text input and a button that says block
the blacklist button? So just blacklist everything spamming the list? okay
Yep
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
Gonna go with no
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?
that's fine
ty it will be better than my other plugin i promise
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
Happy Jewelry walked so Personalized Friend Sounds could run
Did not see this on time; just checked, plugin seems to work fine still. Is this still a thing?
@upper valve thank you for the review.
Is there a reliable way to prevent a script from running?
it depends, mostly no
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
record the camera orientation before the script runs and reapply it after?
Yeah was doing that before but felt hacky. Might just be the only real solution atm
its a pretty standard way to solve these problems when you dont control all of the code
Would IntelliJ IDEA be the only viable IDE for developping without complications
it's the recommended one for sure
Pretty much. You can use VSCode but there's no guide for it
technically you could just use notepad and build with gradlew I suppose though
Interested about this solution 
And do you need the intellij Ultimate or is it overkill
the free version (whatever it's called now) works just fine for RL needs
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?
how much ram does your pc have?
intellij alone you probably need at least 4gb dedicated to it (honestly, probably more)
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 10
Bug description
For some reason they display as echo bosses. Based on the discord, its suggested that this is due to them sharing the same ID. This behavoir dates back to atleast 2024 based on [discord](#runelite message)
Screenshots or videos
RuneLite version
RuneLite version: 1.12.23
Oldschool revision: Rev 237
Launch...
64gb and I'm on linux
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
there's no known common memory leak with the core client and such the development
that message is just from intellij and has nothing to do with runelite
it likes to have about 4-6G in my experience
i smell a intellij memory leak distro name google search in your future (well unless it's just being limited by something else)
It could have been either runelite requiring more memory, or a memory leak in either program
but I'll poke around about intellij
that message is only about ij's heap, runelite has nothing to do with it
nor any other program on your computer
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?
it is not a common thing no
the default client is only 768mb which is afaik much lower than the intellij default
you are confusing intellij with runelite somehow
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
again, runelite and it's heap size has nothing to do with this
yes but that was the question
"do you have to increase intellij's heap size" and the answer for me is always "yes"
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"
yeah mine has never complained with 2 gigs really
open ItemID and you'll probably get that notice 😉
I even have it increased on my mac and I almost never use that for dev
yeah i have intellij at 8gb on all my devices, but that's far from just RL purposes
from what I can see the intellij default is 700mb in the compiler settings
that is a different heap just for the compiler
o
Help -> change memory settings
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
what is the third one defaulting to lol
it's like 10% of your memory or something
on release rl uses 768m, if you don't set it the jvm chooses from your max memory
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 😂
looks like it's ~25% of your total memory
at 64gb total im seeing the xmx is like 17gb lol
I bet you'd never crash in the mm2 caves
at long last
in case anyone else is dumb enough to need this
dupe #18872
Tried to search for Dagannoth to see if it was a dupe just didnt see it cause it was "DK" instead!
dont mind my amazing paint skills
dupe #18872
Tried to search for Dagannoth to see if it was a dupe just didnt see it cause it was "DK" instead!
strategic mistake actually spelling Dagannoth correctly
I don't really think we would want this? If an NPC has a color tag in their name I feel like that information should be known
facepalm makes sense, just stuck out while i was testing something else out and quickly fixed it for myself lol
ill close
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.
Some specific features that RuneLite can't currently accept: https://github.com/runelite/runelite/wiki/Rejected-or-Rolled-Back-Features
touchscreen plugins is in this list
FYI 1:1 input:action is not an official jagex rule, the playerbase made that up
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
felanbird, my brain was fried from learning these maya animations, but made lots of progress today
zoo
good to know on the 1:1 aspect! got it was hoping there might be more nuance there. appreciate it
can clone up to 10 times 🥲 capped at 350~ seems to be good to not crash low ends
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
no, ci is failing because yoru repo doesn't exist
Well that's interesting
I forgot it was private, lol
I made it public, can I rerun CI somehow without adding random commits?
Thanks
this just started happening to me on nixos, weird. the workaround fixed it
best prs are the ones that delete code
Anything in particular holding this one up from merging?
https://github.com/runelite/runelite/pull/18410
someone to review it probably
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?
What about PRs that modify JSON data files that inflates the +/- diff by 4k+ lines, asking for a friend 👉 👈
it can help if you gzip the gson or put it onto one line
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
ah, the beauty of JSON - whitespace and line breaks not required 😄
if you want it in the repo but its not used in the plugin you could do a separate branch
or, a separate repo
Was just thinking that too lol, great idea
Not too bad now. Does the "size-[X]" label automatically update on github if the PR size changes thresholds?
yeah but its 3500 lines deleted its fine. i can look later
Would you have time to look at a size-m I have within the next few days?
have you seen the queue
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
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
Overwrite
so I should remove the --insecure-write-credentials everytime I switch accounts
delete the file too
Queue is biggg, that’s fair I can wait
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?
new and diffs are generally separate queues so you're not behind ALL the slop
Yeah because im lowkey scared of doing it on main idk maybe its dumb
we all develop on our mains
oh
that's not an issue
aslong as the file isnt leaked anywhere its fine?
yeah don't tweet it
u can reset it anyways nowadays on website
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.
I know http://github.com/abextm/osrs-cache/releases run automatically on cache updates. But I'm not sure if there's a way to use that as a trigger for your action
I believe resource packs polls that
resource packs has a workflow_dispatch that I call along with the release job for osrs-cache and the rlccau
with the power of claude anything is possible
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
people are prmaxxing
General question. We cannot modify loot that has already been published to the lootTracker?
no
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
Just look at mine 🥲
You're in for a surprise
what is yourpr
Feedback:
- Use of
java.lang.System.outis not allowed: system i/o, use a logger instead.
I "vibe" with this
will bribe for an expedited review 😂
Oh man, not another wall hider plugin
It's not just a wall hider
surely this should just go into tob qol
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
Was planning to do that originally but realized they fixed several places
I don't really want to be beholden to another plugin developer
?
don't jinx it, now github is gonna be down tomorrow
i see 4 things in this image although i know surely 2 of them are not in consideration
the contrib/first-time label escaping the PR and being in the search
OH yes. i noticed that at work today. that is actually very good
did they add a filter for it
no docs update and i can't think of what it would be, but ™
bcf41e6 Update wiki data - RuneLite Wiki Scraper
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.
no that wouldn't be allowed
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...
Can also confirm the same thing happens for me when using split-tunneling on NordVpn.
I have heard their split-tunneling was pretty bad
<img width="1851" height="622" alt="Image" src="https://github.com/user-attachments/assets/4c84bf36-c935-44cd-91d3-5d145980393a" />
At last, a way to tell humans (somewhat) from Claude and Co.
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!
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
You'll need to add something new for that since none of the other traps work that way
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
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
added an ignoreTimer field to HunterTrap, good idea
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.
I'm not sure what the Runelite folks can do without a proper engagement from the NordVPN folks.
With the Mullvad issue, an issue was filed over on their repo, and it was tracked by them to the "IPv4 encoded as IPv6" that the prefer IPv4 solves.
Have you reported this to Nord? What do they say?
[ https://github.com/oceijt ] [ @vestal karma 966306956400795688 ] tjieco#0
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
the whois command does not ping them
oops. I'll probably just PM them then
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
The hunter plugin has both, but crabs don’t despawn when they’re used up
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
yeah I was thinking var change events would make more sense for these ones
also just to verify, this repo (Zalcano Utility plugin) doesn't have issues enabled. I've made a PR on it bumping the gradle version along with asking about their availability/whether I can get collaborator on the repo.
Will that be fine in the event that the author is non-responsive and I need to submit a takeover request?
Yes, a PR is a fine replacement given the circumstances
I’ll do the inverse of what I’m doing then and keep the rest the same
A later rework of write of the others?
maybe, I'm just inclined to try to make additions use modern conventions is all
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
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
+1 for support for this addition, would be very helpful
If I recall, the traps do actually time out, it just takes a while but the catch disappears. I think it's the same time as a box trap
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
Huh, it's probably something when reloading, I left the island for more bait, came back and they were empty
maybe they go away if you board your boat?
I'll try reporting this to Nord, but I'm not gonna hold my breath lol.
I’ll check if they empty on object despawn
@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.
it does despawn on boarding the boat, i imagine if you leave the island and come back it'd be the same scenario as if you just got off the boat
and it goes go from green -> red from a full to a empty just fine
you'd necessarily have to get back on a boat to go back to the island so I'd imagine so
(even without a despawn event) because the on object spawn event sets the spot
Something I miss about bank tag layouts compared to core is how scroll bar worked. If you are scrolled in bank and open a core layout it will still be scrolled and you have to scroll back up. Your plugin seems to disable scrolling unless a layout is too tall to fit.
👀
thats sick
windows xp is so back
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
is this in addition to moving them then?
yes
cool
I definitly did not rewrite the whole sidebar into a custom component
"dnd" would be so nice
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...
do you know why?
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
im confused, how would you normally use auto layout without scrolling to it?
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)
oh the problem is they cant use your auto layout button now without it being visible in the sidebar?