#development
1 messages ยท Page 4 of 1
gah
awhile ago i wrote a canned ai respoonse, do you know where that went
i lost it
#development message found it
yes
i mean yeah just send your response
Our project does not accept AI-written pull requestsโnot because we object to AI use in general, but because it adds friction without adding value. If we wanted AI-generated code, we could generate it ourselves in a form that matches our expectations and constraints. When a contributor submits AI-written code, the maintainer still has to do the same work: understand the intent, verify correctness, and ensure it fits the project. In practice, this often takes more time than simply writing the ...
they're really not adding any value if they're just AIing fixes to shit. that just creates more work for you
I tried to get AI to do plugin work for me and it just sucks
granted im using free tier so that could be it. works fine on a paid plan at work but dont know if that would make a ton of difference applying it back to plugins
its the way the comments are written that gives it away
yeah the desc was 100% ai, wasn't sure abt the code
hey guys!
i am pretty new to plugin making and have been looking at entity hider and what not trying to hide the model of the doom hole, i'm aware that RenderableDrawListener is deprcated but either way, this boolean "doomHoleSpawned" seems to never change despite me def getin the hole to appear. was doing this just to test if its even able to see the doom burrow. if anyone has any help id be more than appretiated because ive been asking around and trying to figure it out!
{
if (renderable instanceof Model)
{
Model model = (Model) renderable;
if (model.getSceneId() == DOOM_HOLE_NORMAL_MODEL)
{
doomHoleSpawned = true;
return false;
}
}
return true;
};
@Subscribe
public void onGameTick(GameTick tick)
{
if (doomHoleSpawned)
{
client.addChatMessage(
ChatMessageType.GAMEMESSAGE,
"",
"Doom hole was spawned brotaha",
null
);
doomHoleSpawned = false;
}
}```
oops
getSceneId() is always 0 i think
huh
this code is just nonsensical and so it doesnt do anything
LOOOOL
literally the first thing ive made and i just looked at entity hider and was like sure this looks like it might work or something
all im trying to do is hide the burrow model while retaining its menu options.
can you do that? entity hider removes the model and therefore you cant click it anymore
i was worried about that too lol
i know i can delete the model but that don't do what i want either
model.getSceneId() == DOOM_HOLE_NORMAL_MODEL is just wrong
You probably want to just check onGameObjectSpawned for DOM_DESCEND_HOLE but I don't think what you want to do is even possible
ive tried a whole shit ton of variants with some different degrees of success
but i do have one idea that might work, if i can at least hide the model but leave the OBJECT (even if it gets rid of the menu options) i should still be able to send the packet using a runelite menu entry option. Unless you can't add runelite menu options to runelite objects.
i am sorry if i make literally zero sense, there is a reason i am here lol
This should hopefully fix #19722
You can't add menu options that send server messages
thats not quite what i mean, like i have made my own menu options that still make the "decend" or "investigate" options on the burrow work
you have nothing to click on
alright, good to know
isn't that exactly what hiding with RenderCallback does
remove both or remove just the model?
Just the model.
well if i could get it to work i would find out real quick
clicktesting happens as part of rendering, so you can't hide something and still have the client click test for it
are you trying to remove it because you dont want to see it glowing before you open the interface? if yes theres probably other ways you can achieve that
and RuneLiteObjects don't support click testing either
im attempting to make a doom glowhole recolor
my code right now spawns a runelite object that strips down the glowing model to just spawn the glowing animation, but im trying to remove the REAL glowing animation so mine isn't shitty
You probably want to look at CG Recolor, World Recolor, or VM Recolor and not entity hider
ive already done that part though
i've looked at cox one and it is different
cox beam is its own model so recoloring it is easy, since it is seperate from the chest
i believe toa chest purple thingy is the same way
i might be wrong i am not, they are also seperate
doom hole sucks because its all one thingy
https://github.com/Maurits825/tob-light-colors/blob/master/src/main/java/com/toblightcolors/TobLightColorsPlugin.java#L154-L164 this plugin looks like it does a similar thing for tob chests
i was looking at it and unfortunately it also doesn't do the same thing
it spawns a cox runelite object beam above
yes but it also has chest recoloring
you can get the colors to change using creators kit.
wtf is this???!?!?!
creators kit plugin on the hub
i missed this, ty.
#development message in the commit history lol
This code doesn't work. If you want to resubmit code you've tested I will look at that.
:ducksmokingweed:
is that what he's smoking

so would this not be an issue because the glowing burrow hole has an animation?
:ducksmokingfent?:
i thought it was just a regular cigarette
no idea, i dont know how osrs renders the hole glow. you just said other recolors didnt work because the model was different, but i gave you an example where the model is the same
oh lmfao
๐ฌ๐ฆ typical
think you're right
Reference to one of my favourite discord messages
35a59e3 Update wiki data - RuneLite Wiki Scraper
okay does anyone else know if doing something like what this does here works on an animated object, cuz im sure trying to test it on a portal nexus and it sure ain't workin
getPlaceHolderTemplateId() returns 14401 if the itemid tried is a placeholder, -1 otherwise
Previously the following banktag tab:
banktags,1,prayerpotions,952,layout,1,2434,2,15259
Would get this:
With the fix, it will convert 15259 to 2434 so that it will look like this:
I am sorta sure that this issue only exists for folks with potion storage
oh i should use canonicalize(itemid) instead, that is why duplicate-item works, it dupes the item but it canonicalize the itemid -- done ๐
Big if true
ty for showing me this, i have confirmed it is possible and i can get it to workie now
This seems to still be occurring in different places. in 1.12.13 I didn't encounter issues in the mount karuulm dungeon, but in 1.12.14 I have encountered issues in the drakes area.
The roof removal seems to think this gigantic black roof is on the right side of the screen. When I hover my mouse to the right, it disappears. As before, toggling the plugin resolves it. This black roof can fully obscure my character.
<img width="1973" height="1200" alt="Image" src="https://github.com/user-atta...
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 10
Bug description
With Roof Removal plugin enabled, different floors are rendered over the placespace in COX, obscuring view.
Disabling the plugin fixes the issue
Screenshots or videos
https://github.com/user-attachments/assets/de13d024-01c1-402a-8d9c-bf07caf26256
RuneLite version
Runelite 1.12.14.1
Launcher 2.6.10
Logs
No response
The plugin seems to work, but it did require me to go into the notification setting manually to enable/allow RL to send notifications.
@Adam- is this something you'd rather work into the base client? I'd be interested in contributing in that case.
So I can start the discussion here ๐
If it was put into the base client, in what way would it be different from the plugin?
My guess: option to ask for permission on install, together with havign it work out of the box.
I don't remeber runelite asking for notification permissions on install but it's been a while ๐
ive no idea how permissions work on macos, I dont think we do anything with them atm
7c52372 item stats: decrease blighted overload hp drain - Macweese
Same happened in the Karuulm Slayer Dungeon (1st floor). Tried testing it on the official client and did not get this bug. But even weirder, when I went back to Runelite the issue was also resolved (lol).
Windows 11 here.
I could first check out if can hook into getting permissions requested when activating the plugin?
@hollow parrot whats going on with this party hitsplat thing?
new feature
did you just add it and auto enable it for everyone?
yes
that is sort of annoying
it is coming up fairly frequently in #support since noone knows what it is
i saw 2 people so far mention it
ok ive seen probably 6+
is there something you can do about the ux to make it less confusing?
maybe default it to off? why is it defaulted to on?
i was conflicted about turning it on by default too but i ended up doing that because i think most people would miss it is a thing. i also thought since it only shows when you're in a party and it only shows on top of the player that is doing it hit it wouldn't be in the way too much. im looking for ways to improve it. if it's too annoying then it can be turned off by default
i typically try to avoid just sudden unexplained ux changes like that since most people don't understand that plugins can update
also I guess its extra confusing that an xpdrop plugin would provide hitsplats since it seems out of scope
did this added after the update wed?
the last update of the plugin. i believe wednesday night eu time
ok a lot of people wouldnt even have it then
i assumed the config didnt write default values but i see what you mean now
maybe it is worth changing the default
and i can do this as well
most of the clients we have havent been restarted since the update
if you can just do this that would be good
wouldnt they also want to change the config key
I was saying above I think that could not even be necessary since I dont think most users have the new plugin version yet but idm either way
ok
also i wouldnt mind getting tagged in #support if its about xp drops or predicted hits
The problem is there's like a dozen people that help in support, about 1400 plugins, and most people don't know the author of all the plugins
yea i meant @ the people who commonly help people out in there
That doesn't really help a ton tbh since we know the answer, it's just that we have to tell people over and over
we could train a llm to be #support
CookGPT when?
are widgets updated after VarClientIntChanged events?
I tried using clientThread.invokeLater() but my override still gets undone by the game
we don't know what you are looking at but it depends
public void onVarClientIntChanged(VarClientIntChanged event) {
if(event.getIndex() == VarClientID.BANK_WORNMODE) {
clientThread.invokeLater(() -> {
var wornItemsButton = client.getWidget(InterfaceID.Bankmain.WORNITEMS_BUTTON);
wornItemsButton.setSize(25, 25);
wornItemsButton.setPos(6,4 ,0,0);
var wornItemsButtonBackground = wornItemsButton.getChild(0);
var wornItemsButtonIcon = wornItemsButton.getChild(1);
wornItemsButtonBackground.setSize(25,25);
wornItemsButtonIcon.setSize(25,25);
wornItemsButtonIcon.setPos(0,0 );
wornItemsButtonIcon.setSpriteId(2417);
if(client.getVarcIntValue(VarClientID.BANK_WORNMODE) == 1) {
wornItemsButtonBackground.setSpriteId(196);
} else {
wornItemsButtonBackground.setSpriteId(195);
}
});
}
}```
trying to override the worn items button in the bank
Don't you have to refresh the widget after modifying it to make the changes take place?
I haven't had to so far but I've done everything else on WidgetLoaded events
you should be using post script fired
(I'm assuming you are swapping deposit inventory buttons)
Ahh, yeah that sounds right, since the buttons have scripts associated with them
no it's because the windows are built with different scripts
unfortunately, doing onScriptPostFired doesn't work either
I can confirm that it is being run (I put an if statement that checks for the script)
As per my comment here. The actual size of the minimap/compass widget is 182x166, so giving it a 181x165 image causes duplicated pixels on the top left corner.
The 2010 interface style graphic avoided the issue by deleting the top left edge pixels. but we can simply extend the image instead. I touched up the graphic to add the missing edges and increase the image's resolution to 182x166.
Before:
After:
Hello! I'm trying to develop a new plugin, I've been following the plugin-hub example guide and I'm a bit stumped on getting my plugin to load in for testing. I think I have everything renamed and set up correctly through step 10 (icon), but when I load up RL I'm not seeing my plugin. I'm not really sure what's up/where to start looking. Thanks!
are you running the gradle task?
So that says it builds successfully but doesn't open runelite?
youre probably running the build task instead of the run task
I belive you but don't really know what you mean. I'm alright with Java, but the gradle stuff is a bit of a mystery yet.
weird theres no arrow
do you have a button like this in the top left?
you can manually add a run configuration with :run and it should work
In the tasks space?
I think that's working?
RuneLite has launched and I see my plugin, thank you!
thinking of making a plugin, fairly good with java/intellij/gradle & I want to learn more about this client, so I'm wondering if anyone has any ideas to toss at me? there's a LOT of existing plugins and I don't want to make something that already exists by accident, and every idea I have had has ended up being there already ๐ if not, i'm probably going to make something that draws lines on the world map/game map or something just to get an idea of it
IMO it's a lot better to improve an existing plugin than to make a plugin just for the sake of making a plugin
i'm probably going to make something that draws lines on the world map/game map or something just to get an idea of it
both of these things are done in multiple plugins too lol
yeah I know they are, that's just sorta my fallback haha
fair, ive got a couple ideas for that tbh. I'll start there
contribute to resource packs please
754ce73 update presence-checker to v1.5 (#10381) - itsdukey
b1e9ff8 update random-event-helper to v3.1.1 (#10387) - Infinitay
If i want to add to the plugin description that the wizards on floor 5 might not work (im unsure if their cycle is different (im 91 agi)), is that just pushing a new readme?
New readme to your repo, new PR to plugin hub
Alright ty
If you note that its just a readme update and not code it'll probably get merged pretty quickly
Good comms, ty
their cycle is different fyi
Yeah that was my understanding, but i couldnt figure out how and didnt even realize at the time of the PR
that's usually why we don't develop for content we can't do
though several of us who've worked on the client over the years have max accounts so it's not often an issue necessarily
Makes good sense, will keep it in mind for the future
Although im getting really close to max, so it probably wont be the case again ๐
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 11
Bug description
The XP Globes normally stack horizontally, but in this case, they stack vertically. After selecting the Reset option within the plugin's settings, they went back to expected behavior.
Screenshots or videos
RuneLite version
RuneLite Version: 1.12.14.1
Launcher Version: 2.6.9
Logs
[launcher...
yall are so quick with reviewing plugins & updates. thank ya to all the volunteers
anyone know why this might be the case?
since it's post script fired, and the button fires that script, is there anything else that could be changing the size of the widget?
For some reason the sprite for the button remains changed, but the size doesn't
Noticed my root was missing an icon so wasnt showing in the plugin hub correctly.
However putting it in when testing locally still doesnt show (for when searching a new plugin that is), is this because it needs to be merged into the plugin-hub repo to take effect?
yes
thanks, thought as much
Does ScriptPostFired happen after a script is finished running or after it has been started
it is attached to the return opcode
I am very confused then, since I am checking for 3275 to be finished, which fires 3276, which does all of the changes to the Bankman.WORNITEMS_BUTTON
Script inspector doesn't show anything else being fired that isn't fired from 3276
3276 is called from more than just 3275
is it possible to trace which script is updating a certain widget?
would "downgrading" a red click to a yellow click be allowed? Idk if it is possible at all
You can swap walk here, that's it
on the menu entries you mean?
you can stop a "take item" action from happening
but swapping it for another is probably tos or at least very shady
wym, menu entry swapping is allowed
872c739 update emote-clue-items to v4.3.6. (#10398) - larsvansoest
198eba1 update shop-prices to v1.2.4 (#10402) - Kasparas-G55
bcb1794 minimap: save and restore zoom level on restart - Adam-
I've made the plugin able to save/restore the zoom level https://github.com/runelite/runelite/commit/bcb17946aec7a0b8dad832e8e410570bebc02fae - which I think covers this
been working on this since last night and all of morning, sorta went all out for a first plugin ๐ interactive atlas map thing, it's rather complex. tracks player position, shows basic info (region ID/regional coordinates), map's drawn from an โจ.atlasโฉ file that I made which contains all 4 planes/3 LOD scales for each. It renders the map squares as needed as to not run too heavy in memory ๐ gonna try to make it work with the shortest path plugin next, that's sorta why I made this, that plugin often draws lines that extend off the world map. One thing this does not do is show tooltips for map functions, cause they're printed into the image. Still much to do before I would be ready to submit it, but this proof of concept works
how are you drawing the map, just graphics2d?
and i assume this map you're drawing constitutes the actual logical map rather than the views jagex does in theirs
yeah graphics2d, it does some decoding to get the actual data out of the atlas file, reads each key (x/y/z/LOD/etc) via byte readers. I pack the atlas file with a separate python script that just stitches about 72 png slices into one file.
and yeah, this map is 1:1 with the tile grid. shows real position. It is not live, it won't draw instances or anything dynamic, but it shows the constant map regions in their real locations. local player position is live
looks neat ๐
there's a map viewer out there that's open source, lets ya take a camera around the map, I extended its world map to print images
which is how it's so HD looking, their work not mine
it's pretty neat, the downside is the atlas file is like 110mb ๐ need to make it trim empty regions to reduce the file size, that's part of my long todo list for it
i'm into the idea of some sort of enhanced map plugin just because the vanilla client one is so dogshit, don't have time to do it myself though
yeah the regular world map is very..original, my plans for this are to hopefully bring the map function tooltips and such in, and support existing plugins that draw on the world map/minimap, to just mirror it on this. It already loads and pans around a lot faster than the vanilla one
also has a windowed mode that can stay open on another monitor
might try to add npc dots to it as well, the same map viewer I got the images from has a file with all of them @ static coordinates, they wouldn't wander like they do in-game but I could place the dots at their origin
that's doin a lot though, they add new npcs all the time
there is a lot you can do with this yeah, but even just the logical map viewer is good
probably worth submitting that now if it works before your plugin gets too big, if you do that i can review it later today
I'm going to clean it up a bit and fix some bugs, it's not 100% ready for that but yeah, good idea. I'll make my tweaks and submit it soon
really need to get the atlas file size down, it's bigger than the dang client is ๐ should be doable by just making empty regions transparent
oof, yeah, I forked the client and just built it within the whole program, was going to tackle the jar thing after it worked but haven't gotten there yet
How to develop plugin-hub plugins: https://github.com/runelite/plugin-hub/blob/master/README.md
I read last night that it's not permitted to download things, correct? so if I can't get it under 10mb, i'd have to redo this, huh? oh boy ๐
you can download things but a 100mb might be a limitting factor for people
yeah, I figured as much, that's why I plan to reduce that size, like I said, rendering empty regions as transparent should clear that up by more than half
good to know for the downloads though
I was thinking originally that even 100+ mb in the initial install would be a bit much, but it's good to know I can have it download the atlas file after
ill work on reducing that, thanks guys ๐
i would be curious to see if on the fly rendering performed well, then you wouldn't have to store anything
the problem is the xteas
yeah, I messed with the map image tool in the client itself (which is why I forked it) and it didn't like the xteas, I assume the xtea.json file in the userhome dir is just for regions i've actually been to? I didn't look too deep, just switched to the other image printer
the map encryption stuff seems painful
yeah you have to get the xteas from the server by actually going somewhere in-game i think
iirc runelite publishes the xteas somewhere for every update?
but also, osrs.world's pre-varlamore maps have renders for chunks that were black squared at the time that were physically impossible to get to in-game iirc
yeah in the area that's now "tlati rainforest"
iirc this was a black square in the map back then, but osrs.world has this render for it, you could not get to that area in game so i assume there's either a way to brute force getting xteas or someone did some sort of bug abuse to get there
Hi ๐
My plugin collapse-chat does some manipulation of the chat tab buttons. As part of it I've registered mouse listeners on the buttons to change the sprite and text contents of the buttons when e.g. the mouse is hovering the buttons using Widget.setOnMouseOverListener and Widget.setOnMouseLeaveListener. This works fine but I realized once the plugin shuts down I'm not doing proper clean-up for these and I'm actually not sure what the right to do the clean up is. I tried cleaning up the mouse listeners by setting the listeners to null but this breaks the the built-in sprite updates on hover (I assume because there's some other listeners that I'm overriding?). Any ideas on how to better handle this ๐โโ๏ธ?
store the original
How? I donโt think thereโs getters for the listeners ๐ค
osrs.world is actually the same map viewer I forked & my images are made of those HD maps ๐ I'm not too versed in typescript to really gather what it's doing, but I'll explore the idea
oic probably wasn't meant to be used to override widgets
for all I know, it has the xteas in its repo somewhere
Hmm yeah, any idea of I can somehow rebuild the original widgets on shutdown?
maybe there is a script to rebuild them
Sorry still quite new to this, I know of ScriptID but can I see what the different scripts actually do somewhere?
Awesome, Iโll look into it ๐ซก
Is there a way I can view only the log info coming from my plugin? Or a good resource to help figure out a workflow or anything, this is my first time using dev mode and I'm overwhelmed. Looking to work on the mini/worldmaps.
you could probably edit the logback config to get that https://github.com/runelite/example-plugin/blob/master/src/test/resources/logback-test.xml
by default it runs the client at info and your plugin at debug, which should really be ok I think
although I think the run config passes --debug so im not sure
well, for now i've decided just to go with what I have, i'm in the process of making some final edits, I also tossed in the npc idea. thing's pretty nifty if I say so myself. still gotta try to get the file size of the atlas image down but we're getting thereโข https://hellstxr.b-cdn.net/eYG69LHhqj.mp4
do you have a link to your repo
not yet, this only exists on my pc at the moment. ill upload it there in a bit
Doesn't RL decrypt them in the cache or some shit? I remember seeing it in logs or maybe a method? Can we not do it all in client?
RL crowdsources them but they're not actually exposed publicly in the api. The client stores a cache of xteas locally for the extended map loading but that requires you to load the map at least once, and is invalidated when jagex modifies the map
that must be the xtea file I found, then, and explains why it ended up producing an incomplete map
did you see my thing above about osrs.world having map data for a seemingly inaccessible area
do you have an idea of how that might have been obtained
osrs.world sources from openrs2, which gets from hdos and rl
the openrs2 xteas also led to an incomplete map but maybe I mismatched a sub revision or something. only lumbridge was blank, regardless, I don't really need it unless I go the load-on-demand route which it currently is not
right now i'm just packaging it into a plugin the right way instead of just dropping it in the client's plugin folder, still need to get the file size down before I submit but I can at least put the code in the repo
Nonetheless seems like it would be helpful if it could be exposed, and that way plugins like Shortest Path would better be up-to-date and not require manually updating if I'm understanding correctly
aight, tested it the plugin hub way & it runs, so, https://github.com/Avexiis/RL-AtlasViewer/tree/master
posting it cause it was requested, ik it can't be added yet due to file size
yeah, I wanted it to have an external window mode and I didn't see a reason to code two separate windows, so the dock/window load the same swing panel just over top of the game as a dock, or separately windowed, it's resizable and won't get jammed in with interfaces or conflict with actual overlays (if studied this right).
works quite well for me, i'm struggling to get the atlas file in the repo on github, it also doesn't like the size ๐
is it downloading the atlas from somewhere?
not yet, that was a next step if I can't force the file to be under the 10mb limit. was going to host it in whatever way you all accept
how big is it?
the atlas file alone is about 110mb but I believe I can reduce it heavily by printing empty regions as transparent instead of black. I posted it because rikten asked if I had a repo yet
honestly I am going to take a break for the night though, ive been at this all day and part of yesterday, gonna go do some mindless slayer & keep going tomorrow
Noob q: I'm trying to figure out the best way to test a feature I want to add for this plugin: https://github.com/CodePanter/another-bronzeman-mode/tree/master
I can build and run Runelite locally (off of master), so my plan was to install the plugin via PluginHub, then edit the installed files to test. But I'm running into an issue "Downloading the plugin manifest failed" in the PluginHub.
Any recommendations/pointers?
Clone the plugin repo and run the plugin test
How to develop plugin-hub plugins: https://github.com/runelite/plugin-hub/blob/master/README.md
I tried that, but it gives me
โจ```
Unable to load class 'org.gradle.jvm.toolchain.JavaToolchainSpec'.
This is an unexpected error. Please file a bug containing the idea.log file.
What IntelliJ version are you on?
โจ```
IntelliJ IDEA 2025.3.2
Build #IU-253.30387.90, built on January 21, 2026
Source revision: 61f1e2a0a8f30
Licensed to Trial User
Subscription is active until March 2, 2026.
Runtime version: 21.0.9+1-b1163.94 amd64 (JCEF 137.0.17)
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Toolkit: sun.awt.windows.WToolkit
Windows 11.0
GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation
Memory: 2048M
Cores: 20
Registry:
ide.experimental.ui=true
maven.packagesearch.enabled=false
Kotlin: 253.30387.90-IJ
Install 2025.2.6
I have an install of 2023 that refuses to recognize โจjava.util.listโฉ โ ๏ธ
can you not just gzip it idk
or break it up
yeah, could probably break it up. good idea. it is already compressed
elite ball strat would be leveraging the crowdsourced xteas and just doing this on the fly in the client but idk how viable that is
i assume there's lead time between a map update and new xteas being available
yeah I don't really want to rely on that, plus I do not know how reasonable it would be to make the map render straight from the cache, I tried making my own printer once and it was incredibly slow, so printing them on-demand is probably out of my skillset anyway
there's a map image dump test somewhere in core
I whipped up a class to execute the map image dumper and ran it against the xtea.json in my user.home as well as the xteas polar mentioned on openrs2, same issue, missing regions. That's why I ended up going with osrs.world for the image data
didn't know of the test thing, I should read more
does anyone know how the vanilla map does it?
it has its own separate, incomplete copy of the map data in a different format
It would be very nice to do it on the fly to not be limited to waiting for everything else to be updated (dumps and updating the plugin)
@granite questhttps://github.com/Adam-/runelite/tree/tcp-rtt2
I wonder if that will break the existing bank tab name plugin if I want this one just for the worn items button. Hopefully not with the tab name setting disabled
yeah the existing plugin overrides it even if it is enabled
though I may need to open an issue with them anyway :L
weirdly that issue is caused by Bank Tab Names
me either, might dig into that tomorrow
the worn items button is in the same group as the tabs I think, so tab names may be too aggressive with what its doing to all the widgets in that group
Search for https://github.com/Lazyfaith returned no results.
@ebon wraith hey, would you be open to adding me as a maintainer to your bank memory plugin?
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 11
Bug description
I turned key mapping off a while ago because i did not use it. After logging into DMM it has forced itself on even though its turned off and not working properly. The camera remaps work sometimes and I am unable to turn off the press to enter chat.
Screenshots or videos
No response
RuneLite version
Whatever is most current
Logs
No response
Key remapper plus victim maybe, no logs to confirm against
https://jzomdev.github.io/pluginhub-searcher/#WyJQcmVzcyBFbnRlciB0byBDaGF0IiwiIl0= I see 3 but one is an obvious candidate
lol
crazy
why doesnt that one show up in the lines of text zom!
I donโt know tbh
does fo rme
nono the section below that
Look at the lines of text section below
man I love the links you added
It gives hyperlinks to the repo
But doesnโt find that one, it has issues in other text too
heh
Hey, I have a update PR coming with a larger diff (~3.5k lines), and I know that doesn't excite anyone so just to "lessen the blow" or add some context: A large chunk of that are config options (I focus heavy on customization), UI, constants and item ID lookups. The actual logic changes are smaller than the number suggests. Is that okay? If its too unreasonable, I'll try to break it up into smaller PR's
It has all the planned features, so there wont be anything other than potential bug fixes/xs changes afterwards (at least in the foreseeable future)
if its under 5k rikten will probably review it
Alright nice, otherwise feel free to tell me in the PR or here (to rikten if he sees this)
both lists are unique texts and they happen to have indentical lines for where they use the variable that used the text
oh I see
Type
Incorrect behavior
Operating System
None
OS Version
No response
Bug description
Upon logging in or hopping worlds with the World Hopper plugin's 'Display current ping' option enabled, the ping overlay doesn't show up for several minutes - the longest I've seen so far is 5:30 before it appeared. Toggling the option or plugin does nothing. I can reproduce this on a completely fresh RuneLite profile.
Screenshots or videos
RuneLite version
RuneLite versi...
It should show up within a second or so on world hop - it looks okay to me. Are you using a salvaging world? It won't work on those since they block pings
Nope. The above screenshot is from world 613, which is an unthemed world (note the login timer of 4:54). I've also noticed this on 608, which is a 2350 total world.
613 looks okay to me, probably your pings are just timing out. There was a recent change to reset the current ping on world hop https://github.com/runelite/runelite/commit/2591ac6b922f4cefcfef76f95510bf8986a328cb so you may be used to seeing stale ping.
Could someone take a look at this core PR, please?
https://github.com/runelite/runelite/pull/19363
that's for new plugins, diffs are weighted a little heavier in my experience, roughly 2x. 3k is more my limit for diffs
don't set public limits
oh my god
now it's legally binding
just say this in the pr description if you have a change like this so the reviewers have that context, it helps ensure your diff gets looked at
lol
none if this is an exact science but it's always better to submit more+smaller. i don't mind if you're spamming the queue if the patches are reasonable. the bigger something is the higher the chance i have to start jumping back and forth = higher chance i get annoyed and close the browser and walk away
(also i'm not the only reviewer, though i think most of the active ones share that opinion)
Oh, I wish I read that earlier before submitting the bingo stuff for embargo ๐
Iโll make sure the team knows to keep it smaller for you guys moving forward
613 looks okay to me, probably your pings are just timing out. There was a recent change to reset the current ping on world hop 2591ac6 so you may be used to seeing stale ping.
Previously I would see stale ping, yes, but it would update within a few seconds.
yeah this is too big
if you can break it up
Even with half of it being config/class definitions?
yes?
kk, just wanted to make sure! let me try to get it split up for ya
you dont have to do anything you dont want to but if your pr is smaller it's obviously getting reviewed faster
i would hope that goes without saying
Yeah of course, I just thought it would be better to have the entirety of the feature in a single PR but I guess that doesn't make too much sense
completeness of a feature doesnt really matter since we dont play attention to "features" yeah
@upper valve - If I break this into 3 PRs
- core bingo functionality (2k lines changed, but 600-700 lines of actual logic changes),
- for UI + sidepanel (500)
- then 1 for config and optimizations (400)
is that more feasible?
that would be fine
ty
i don't really start raising an eyebrow until you go significantly past 2k
no problem, will be sending #1 shortly. just to be sure, I can change the existing hash after rebasing and that'll be okay right?
yeah
for UI + sidepanel (500)
then 1 for config and optimizations (400)
like that could be one
literally just chopping it in half is enough
Oh okay, thanks we'll combine them
k i have to leave my machine but i'll try to do another pass before bed
Oh appreciate that a lot, but no pressure to get to it tonight
nice
@upper valve can we talk about https://github.com/runelite/plugin-hub/pull/10359 here?
I get the concerns about a blocklist not being manageable, but the plugin is not really even counting anything, youโd still need to count manually, and I even added the only problematic boss we identified as extra defensiveness just in case.
Iโd prefer not adding an allowlist because ideally this works for everywhere you do damage in the game so you can see your history, not just for raids. Thoughts?
idk
Fine with getting othersโ opinions if you prefer. Was talking very briefly with @trail marten about it earlier and they thought it seemed fine with the hunnlef block (though admittedly they didnโt review the whole plugin, so I donโt wanna put words in their mouth) but curious what others think
I think the hunllef mechanic is very unique. Watchdog is so absurdly broad from what I understand.
So it has so much abuse potential in many places.
This plugin seems much harder to abuse.
Fine with me, thank you both!
Hi!
Ive been trying to play around with a plugin. Unfortunately I dont knwo much. Sooo I do have a few questions.
- If the PR says some picture is too big, do I need to do something with that warning ? or is that jsut a warning
- I did get the feedback from someone I should break my PR into more pieces, otherwise it wont be approved soon.
Im not exactly sure how to do that, could use a little help with that
Thank you all in advance!
this is the pr for context https://github.com/runelite/plugin-hub/pull/10329
- yes, you need to make the image smaller
- from what I can tell, you've done a major refactor/rename alongside new features. one way to break your PR into multiple pieces is to first do the refactor/rename pass, and then implement your new features
Thank you!
I managed to split it up into 2 (~2k and ~1.5k), in a way that also made more sense than 1 PR really. Hopefully this will make it a little bit more manageable
Upon being frozen by any of those 3, there is the same message sent in game chat.
Freeze from Glacies and Spiritual Mage always lasts 6 ticks.
However Nex's freeze lasts 15 ticks AND can only occur if player isn't praying Protect from Magic upon Nex's casting ice spell.
Because of the above, I figured that tracking if player didn't have Protect from Magic active upon Nex's attack animation would mean that the freeze originates from Nex.
This should work if player is frozen before Nex's next ...
5a61fb3 API docs for 1.12.15 - RuneLite updater
107cb9b Release 1.12.15 - RuneLite updater
sooo then i basically just make a new branch, put an earliear commit into it e.g the class refactor >open PR
then I make a new branch, put the next commit into it e.g. the merge > open PR ?
You can just update your current pr to an older commit
and then create new branches/PRs for the others ?
as long as the phub branch you open your pr from is up to date it doesn't matter how you want to do it
yo got a little question, ive been making an overplay plugin, got one slight issue.
When the overlay is on an item in the bank and i start dragging/clicking the item the overlay also goes transparent. It doesnt happen for items in the inventory but in the bank it does, a lil annoying as its meant to be an overlay that censors the item ;-;
anyone know how to keep it opaque
tried using a WidgetItemOverlay and also tried subclassing Overlay and setting layer to always on top and priority to high but neither do what i hoped it would
you could hide the item entirely like the bank filler reskin plugin
It might be drawing the item on top of your overlay, i doubt its changing your overlay to be transparent
yeah thats what i was thinking it might be, dont really know how to overlay the dragging ghostsprite tho if thats the case ;-;
gonna check that out โค๏ธ
i think it might be possible with WidgetItemOverlay since the runepouch plugin does that doesnt it?
at least at one point it did
essentially this is the kerfuffle im in
but yeah definitely looks like its being overdrawn by a ghost sprite
does the runepouch overlay work?
seems like that has the same issue
oh. then i guess it doesnt work
any idea on how i could go about drawing over the ghost?<-< if not im just gonna go in the dark and try my way around
overlay layer ALWAYS_ON_TOP would definiely work i think?
i did that on my own subclass of overlay but didnt, might be because im using overlaymanager and that overwrites its layer?
i dont think overlay manager overwrites the layer like that
Summary
Adds a sidebar panel to Entity Hider that displays nearby NPCs, allowing users to click individual NPCs to toggle their visibility. This provides granular control over which NPCs are hidden without needing to configure text-based ID lists.
Features
- Sidebar panel showing nearby NPCs with name and ID
- Click to toggle NPC visibility (hidden NPCs shown in red)
- Reset Current button to unhide all NPCs currently nearby
- Reset All button to clear entire hidden l...
hit em with that "no-ai"
Hi there! I'm new here, but I'd love to take a crack at this feature request, assuming that's allowed: https://github.com/LlemonDuck/tombs-of-amascut/issues/126.
Only problem is that I think I need permission to create a branch/PR on the existing tombs-of-amascut plugin; is that something I can request from you @tulip wagon, or is there a different vetting process I should go through first?
you fork the repository instead, and create a pull request originating from your fork
this turned out to work eventually
but lord is it ugly
quick question, since createMenuEntry is marked as deprecated what would i use instead? got this but cant figure out what the replacement for that would be
client.getmenu.createmenuentry
Add per-NPC hiding to Entity Hider
Summary
Adds a sidebar panel to Entity Hider that allows hiding specific NPCs by clicking on them, rather than hiding all NPCs globally.
Features
- Sidebar panel showing all nearby NPCs with their IDs
- Click to toggle - click any NPC row to hide/unhide it
- Visual feedback - hidden NPCs shown in red text
- Persistent - hidden NPCs stay hidden across sessions
- Reset buttons - "Reset Current" (unhide nearby) and "Reset...
there we go, no more deprecated function usage
and plugin workin as i want it โค๏ธ
is there a way when running my plugin from compiling to force runelite to use a certain profile? tired of losing all my configs for the plugin on my base profile from debugging things
โจ--profile=โฉ
thanks, now i wont have to retag all my npcs for the 4th time, only the 3rd time
Any update on this?
I'd argue no and you would need to disable it for all bosses
noob question regarding running code in IDE
in Intellij Idea on linux, whenever I run my code which launches runelite, stopping the run or just alt+f4'ing the runelite window will make window remain in a frozen state and never close; pgrep shows 2 java processes hanging forever per each code run
anyone experienced this or something similar? I am on i3wm / xorg / arch linux if that's relevant
We have also disallowed this plugin once already for that rule
FYI to anyone waiting on reviews, github CI is currently red so I imagine we're holding off until that's resolved

i had a few pr's open waiting to close/reopen after githubstatus said things were ok
but pine snuck in and reran a few of them and they completed
so shrug
nvm it fails on loading gradle hehe
Can I ask why? I'm not really getting what's the problem with this one
The whole point is to see your previous damage hits, including specs and things like that. I'm struggling to see any kind of advantage this really gives you in practice, anywhere. For specifically Hunllef maybe, but you'd need to look back and forth between your game and the side panel and manually count rows instead of your attacks, all to save 4 ticks and hopefully not die in the process. You're still manually counting. I blocked Hunllef anyway so that no longer matters
As pointed out by pajlada it would probably be ok if you delay the info with 10 seconds or so
But delaying the info is a really bad user experience
why do you need instant info?
sounds like you need it for the boss
which is explicitly not allowed
I'm not trying to argue here, but I feel like my question is being dodged. What part is explicitly not allowed? We have plugins that do full defence lowering calculations, and plugins that show tick timers above your head. Plugins that show you your full path you will walk over, etc. Nobody is really answering what is not allowed here
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
...like i quoted in my original comment...
But it's not counting anything, it's displaying info. You could argue showing you your supplies used is attack counters if you click it when you attack
Or tick overhead is attack counting if you set it to a high number
Personally I don't like being a rules arbitrator, ala watchdog
Supplies tracker shows you your charges consumed, which is actually a count. This plugin doesn't even show you a sum of anything
that's not really counting attacks is it
How is it not?
aside from 'bad user experience' i'm not sure why it can't just be delayed a bit?
you didn't really answer why you would need the info immediately
This is objectively more of "counting" my attacks (look at side panel) than anything the proposed plugin does.
Because it doesn't seem reasonable to add a delay. None of the other plugins like this (supplies tracker included) delay their info for after combat
yours includes damage numbers and tick information which is clearly more info than what is there
Respectfully, now we're moving the goal post :/
not really
your tick delay from your last hit
this could tell you that you are off cycle and need to sync, e.g. pog tank
Tbh you already said yourself that you arnt going to look at the sidepanel all the time so you won't even notice a delay
don't get me wrong, I think this info is really nice, but should be for analysis after the boss
could even have a graph to see when you messed up
Assuming you're referencing
Oftentimes I claw or so and I miss the hit so itโs nice to see what it was after the fact.
This was meant as an attack or two later, not after the whole encounter is complete. That's not really the point of the plugin as the data is ephemeral and for viewspace reasons by default only shows the past ~5 hits
don't get me wrong, I think this info is really nice, but should be for analysis after the boss
There are other plugins that provide analysis, this was moreso just a for fun way to 1. see your recent hits if you missed the hitsplat cuz you're 4-ticking/5-ticking at a boss, until you get a sec (like your claw spec, in my example), and 2. a fun way to flame your teammates in your party a la my mistake tracker plugins, seeing how many ticks they are missing on their attacks.
If we really think this provides too much of an "advantage" and is against the spirit of the guidelines, I disagree especially with all of the other plugins that already show everything I show in realtime anyway, just in a different view, but I can shelve it.
I struggle to see how someone could use this information to do anything they werent already able to do, skill-wise or info-wise
there are maaaany plugins that shouldn't be on the hub
hey is there a way to schedule an action to run later, for example in X amount of ticks?
current approach has me use a helper int variable and onGameTick listener where I decrease said variable by 1 every time, surely there's a better solution
there's no explicit mechanism to delay n ticks, your solution is pretty much what you'd need here
Did this feature get added for herb runs? I don't see any herb patches on my loot tracker
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 11
Bug description
I noticed I wasn't seeing ground items (even when holding Alt and double clicking it). Tried a few things like running RuneLite as admin and safe mode, still having issues. Checking the logs I see the following stacktrace that just showed up starting today (not in logs from previous days):
2026-02-02 21:16:26 EST [Client] WARN n.r.c.ui.overlay.OverlayRenderer - Error during overl...
Already fixed in ea4f6d5176d409f211cf35ffa15fa34a0d3dc0c3
chat, what do we think? I shelved my map plugin for now. Decided to make a modified version of the status bars plugin (external though) which can show all 4 bars (yes I know the modern layout's spacing is off, WIP)
I was surprised to not find a plugin that does this already, unless I overlooked it. The only thing similar I found is RHUD, which is cool but not really what I was wanting
vital bars extended maybe
oh, yeah that sorta does it, it's also drawing separate bars & has to be placed/shaped. I suppose that's good for full customization but at least imo, it has a confusing amount of options. I aimed for simplicity here, it's basically the core status bars plugin but it optionally shows 4 instead of just 2.
did not find that one, though, until you mentioned it
well, I fixed the spacing and submitted it ๐ checks passed after one fail
I might use it with an option for the modern layout to have it as 2 50:50 bars next to the inventory, instead of 4 bars ๐
Having this issue with Wayland as well
a1b6938 update cox-light-colors to v1.3.5 (#10435) - AnkouOSRS
Im curious if I need to something now, not exactly sure, i see the last build failed, but due to missing workers , is that ok?
your build failed because your code does not compile
Type
Incorrect behavior
Operating System
None
OS Version
No response
Bug description
The helper is pointing to coordinate 3120, 2424, 0, but there's nothing there. The gryphon is in a cave to the northeast.
Screenshots or videos
RuneLite version
RuneLite version: 1.12.15
Launcher version: 2.7.5
Logs
[launcher.log](https://github.com/user-attachments/files/25039673/launch...
not a bad idea, if it gets accepted, I'll consider that for a future update ๐
Not running your code before pr'ing it ๐
@upper valve sry for @, I experienced a bug in cox censor where it duplicated a purple for another player in the team. You own this repo but is in maintenance mode, are you interested in bug reports or strictly only compatibility updates? figured i'd ask before submitting. No clue on cause or reproducibility tho
fix for #19851
changed shellbane gryphon location as per world co-ordinates in issue
i'm not personally going to touch it at all other than to fix it not compiling (and maybe to fix it if it compiles but completely breaks) but i'll freely grant collab access to anyone willing to work on it
you can file the issue for posterity though
Will do, thanks ๐ซก
@upper valve - sorry just following up on that open PR we split up, is there anything else that is blocking that PR? Not trying to rush you guys as you're volunteers, just trying to make sure there is nothing that is blocking from my end :)
17c131e update mastering-mixology to v1.9.1 (#10445) - hex-agon
Type
Incorrect behavior
Operating System
None
OS Version
No response
Bug description
Playing DMM with hide others enabled hides players attacking you, even with hide attackers disabled
Screenshots or videos
No response
RuneLite version
yes
Logs
No response
shouldn't be but haven't had a chance to look at it again
just out of curiosity, how long does it usually take for a plugin to be reviewed? I'm in no way rushing anyone, it's just my first time doing this & I want to make sure I don't have to do anything else rn but wait, I already fixed the handful issues that were mentioned in the PR but it's been since last night that it had any activity
thanks ahead of time ๐
it depends on how much code youve submitted and what its doing
understandable, it's this https://github.com/runelite/plugin-hub/pull/10436
I'll just check back periodically to see if it's been looked at
thank you, and again no rush to anyone, was just wondering how it works
Apart from what Adam said, I think generally it's fair to assume:
- Date the PR was made. If you keep pushing commits it'll fall more behind in the queue then compared to something older.
- Plugin updates are looked at more frequent than new plugins
- The answer to the longstanding question, size does in fact matter ๐ค
Review speed heavily depends on ||how much you pay Rikten, personally I've found that offers in the range of (PluginInstalls*3) to the power of|| how many LOC you have
A couple weeks ago I asked how to reset the player's cached equipment models to update them after modifying their ItemComposition. I started using client.getLocalPlayer().getPlayerComposition().setHash() which I thought was working perfectly, but today I realized that the glass blowing animation (and presumably others) is using the old model colors. I included a video of the glass blowing animation flashing the old colors for clarity. Any suggestions how I might be able to fix this?
maybe do it again? perhaps the equipping of the glassblowing pipe resets it
playerchanged event, does it fire?
I just tried calling setHash() on the current player composition every tick and that doesn't fix it. No PlayerChanged event fires when I start blowing glass if that's what you mean.
I didn't try changing the colors every tick, just setHash every tick and changing the colors with UI
How are you currently managing regular equipment changes (equipping/unequipping a staff, for example)?
I don't need to handle that specifically AFAIK. I modify the ItemComposition with the UI and in onPostItemComposition I reapply any changes if the item is reloaded.
Because some of these sequences/animations will remove or add items to your character, I wonder if ItemComposition isn't actually being modified. If you reapply the changes on AnimationChanged events, does that work?
Like somehow reapply all ItemComposition changes when the animation changes?
I can try it, but it's hard to imagine that would help unless the animation is somehow using different ItemCompositions that ItemManager doesn't return, but in that case I don't know how I'd access them without ItemManager.
It doesn't do anything AFAICT. I wish I understood what is actually happening to cause the revert during the animation.
Is the client caching the models in the animation? That's what it looks like to me because when I unequip an item it fixes the colors and then I re-equip it and it breaks it again mid animation.
Here when I equip the imcando hammer it reverts back to the old colors (which I assume are cached with a specific equipment set), and when I unequip the hammer it goes back to what I expect. That looks like there's a separate cache for animations to me.
FWIW resetting the client's animation cache does not fix it. If my hypothesis is correct then there's no way to reset the cache through the client API.
Can you send a sample code snippet for what you're trying to do
For resetting the cache you mean?
I'm not doing any animation anything. I just noticed that animations don't work with the recolouring I'm performing
Here's the parts where I apply the colors and refresh the cache,
void apply(final ItemComposition comp) {
comp.setInventoryModel(model);
comp.setXan2d(xAng);
comp.setYan2d(yAng);
comp.setZan2d(zAng);
comp.setColorToReplace(colorToReplace);
comp.setColorToReplaceWith(colorToReplaceWith);
comp.setTextureToReplace(textureToReplace);
comp.setTextureToReplaceWith(textureToReplaceWith);
scheduleCacheReset();
}
private Future<?> cacheResetFuture;
public void scheduleCacheReset() {
if (cacheResetFuture == null) {
cacheResetFuture = executor.schedule(() -> clientThread.invokeLater(this::immediateCacheReset), CACHE_REFRESH_DELAY_MS, TimeUnit.MILLISECONDS);
}
}
private void immediateCacheReset() {
client.getItemModelCache().reset();
client.getItemSpriteCache().reset();
Player player = client.getLocalPlayer();
if (player != null) {
player.getPlayerComposition().setHash();
}
cacheResetFuture = null;
}
where map plugin
๐ thanks for approving the status bars one. As far as the map plugin, I still haven't worked on that one again yet, been a little bit busy & I still need to get the file size down and/or have it download remotely. I also am hesitant to even want to release it rn pending the player made island, i'll have to wait until osrs.world updates to include it, maybe after that I will revisit. I also want to explore doing it on the fly so this isn't a constant issue as they update, but that will require quite a bit of research on my end
@rancid marten if you have a minute, thoughts on this to try to close this out? I feel like it's very tame, but seems like a lot of "idk maybe could be bad" for others, with some suggestions that I think that would kinda ruin the experience of the plugin. I added the blocklist of Hunllef to circumvent the main concern brought up.
I will say that a similar plugin was outright denied a while back rather than being okayed with a blocklist
Do you have a link? Not sure how similar, but doesn't neccessarily preclude this one from going out
It basically tracked the last few attacks the player did and displayed them
I don't see any debate on this one though.
other than the guy seeming to also have a cg cheat plugin
I think there was another one maybe, too
Hmm it seems like the same "reason" (attack counter), which I still think is a stretch, and I disabled the boss that was said to be problematic
Still would like to see if mine can be discussed separately
And also the one I'm thinking of was talked about in discord
DId this get added?
It did not.
was there a reason? i've been hoping this feature would be added for a long time
Would something like this violate third party guidelines? I'm guessing the Game tab highlight absolutely does (similar in concept to /issues/1688), so I thought maybe "moving" the text as an alternative option wouldn't, because that message appears in the chatbox anyway. It would only do this if the chatbox was collapsed.
Solution #3 is to tell my friend to just open the damn chatbox when he enters Olm or use his eyes to see the orbs. :/
pretty much anything you do here would constitute an illegal "additional indicator" so it's basically gonna have to be solution 3
osrs players using their eyes: challenge level IMPOSSIBLE
wheres the sight plugin
if this was advertised as "whitelist chat filter" I think it would pass with zero scrutiny.
but with solution 3 you can point and laugh when he gets hit
Sounds good. Felt that it didn't hurt to ask. Thanks!
which is really the best benefit.
or "open chatbox on chat notification"
Ha, I've only felt this way with Sol's equipment grab text because I'm a Nintendo DS fixed player and I can barely make out the message. I turn off the XP tracker so I can see his overhead text easier... ๐ค
Yeah but the white contrast is terrible
(I also play min size fixed so I can relate)
plz make plugin to make sol less tall
Because the warning text is red but the equipment slot is white for some reason
make-him-smol heredit pluginโข
Theoretically couldn't this be worked around with Watchdog anyway? Can't you set up the player to say something with overhead text based on an incoming chat message
it has a region blacklist, maybe colosseum is on it.
Oh I would guess CoX definitely is if that's the case. Makes sense
Questions answered though, Thanks all. Telling friend to git gud
Nintendo DS! You can run RuneLite on that??
Started development on a plugin today, and I'm curious to know exactly what the limitations are of Overlays. Are overlays limited to things like hitboxes or simple text/image boxes, or can they have more complicated things like buttons/tabs/etc?
Or to ask in another way - for anything interactable, am I limited to the plugin panel on the side?
you can create interactible things in the game world, however there is no API to do that conveneicntly
you would probably have to use a mouselistener that blocks input into areas of the screen where your button is, for examplel.
you can look at the ground items plugin for an example of this as it intercepts clicks
you can also create extra windows separate from the runelite client if you want.
other than that you'll have to use the side panel
Got it, thank you! I'll mess around with things and see where I land.
create extra windows
Surprised that's doable/allowed, but that would also fit with what I've imagined. Off the top of your head, do you know a good example plugin I could look at for that? If not, I'll get searching
https://runelite.net/plugin-hub/show/clue-saver has an overlay ui
creator kit has one
I would look at the color picker though
that seems simpler
Awesome, thank you both for the references
or any number of the dev tools that open a window.
c310a65 API docs for 1.12.16 - RuneLite updater
a2fa100 Release 1.12.16 - RuneLite updater
77a107b Update jav_config.ws - RuneLite updater
fixes
- Aquanite task name was wrong and still showed enchanted gem icon
checked the other tasks added with sailing and they should be ok, not 100% on the Shellbane Gryphon one since I can't find a source on the slayer task names like "the cave kraken boss" so I assume it's ok unless it's reported otherwise
Can I specify which credentials.properties I want to load?
no
You can specify a different home directory which can include different credentials
Someone was discussing that in this channel not too long ago
@heady cliff if you want to add your own custom handling for those keys go for it but we've discussed previously that we don't want to support them natively
@heady cliff check the channel description
anyone know what causes this hairstyle change?
and can it be modified from plugins
the hat moves the ponytail
its probably done to fix clipping
that sounds reasonable but apparently if you transmog bunny ears via runelite it does not fix the hair
yeah, the server is responsible for your player kit
oh so the hair might be a different kit id?
yeah
alright thanks!
Any update on this issue getting fixed? The plugin still has the same issues as it did when I created the initial report.
Mute other Player's area sounds does not do what it says, other players area sounds still play.
Got a pretty new question here regarding setting of IntelliJ + Runelite source properly in order to begin the process of plugin development. I tried followed a few videos + reading and I ended up in very much broken and error filled state.
Is there a trusted source to set things up initially?
the pluginhub readme
no thatโs โrunelite core developmentโ
How to develop plugin-hub plugins: https://github.com/runelite/plugin-hub/blob/master/README.md
awesome, now another question. Currently I am interested in trying to fix the base plugin "Music". Currently Mute other players' area sounds is bugged and has been for a while, happened after jagex messed with internal audio ids.
I would follow Building with IntelliJ IDEA correct?
yes
thank you
Question regarding account auth.
Is there a method to run the dev build of RL using Jagex Account without exporting that token?
Open Runelite (Configure) and type this into client args
Yes I am aware of this. I was wondering if there was a way to do it long term without the token being on my system. I take that as a no.
Oh, sorry I misread. No I don't think there's another way
All good haha ๐
One of the runelite devs would know better than myself though
i appreciate the response fully
while I have you here I did have another question
ANTLR Tool version 4.11.1 used for code generation does not match the current runtime version 4.13.1
ANTLR Runtime version 4.11.1 used for parser compilation does not match the current runtime version 4.13.1
i was getting this along with some dependency related errors on previous build, ill post the dependency ones on next build
I don't use Idea or ANTLR, so I have no idea. Sorry
that is normal
how about these?
E:\Documents\GitHub\runelite\runelite-api\src\main\java\net\runelite\api\RuneLiteObject.java:218: warning: [dep-ann] deprecated item is not annotated with @Deprecated
public Animation getAnimation()
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: E:\Documents\GitHub\runelite\runelite-api\src\main\java\net\runelite\api\geometry\Shapes.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 warning
those are also normal
ok first time running this so I want to ensure I didnt mess it up before I start making changes ๐
If it builds/runs I wouldn't worry too much about anything else
Tbh I think the thing you want to fix isn't necessary actually very fixable
There was some weirdness with sources for area sounds last time I looked
Yeah I already took a peek at it and noticed how the plugin ran, doesn't look simple.
Right now I'm considering how difficult it would be to make a standalone hub plugin to replace the broken feature in the plugin.
I don't think a hub plugin would cleanly fix it either since iirc a lot of the sounds just had null sources
Getting the sources is the main issue. I'm still going to give it a shot as a side thing. Recently finished exams and I'm looking for a project to sink my head into.
A good place to start would be a id based sound muter (like Annoyance Mute) that would mute those ids coming from sources other than the player.
not all area sounds have a source
Looking at the music plugin I did notice a "Sourceless" reference
worse thing that happens is I cant do it, the attemp is what I am looking for
Only way for me to improve is to do and make mistakes, furthering my knowledge ๐
i am currently the maintainer of annoyance mute
sounds are sort annoying with how they behave
Would you reccommend me to try something less annoying instead?
I didn't read what you were trying to fix, so no feedback
are you want to contribute to the client or just anything?
Mute other player' area sounds
can be anything RL related
idk how core would be broken
if sound is a player but not local player OR it's the teleleport vroomp, mute it
jagex might've made other sounds also SOURCELESS i suppose?
resource packs basically is out of date every time new content is added
Alright sounds like a good place to start
ron trying to farm labor
Question incase there is a better way to do this, aside from grabbing textures from game cache, is there another method?
Some plugins like Flipping Copilot use setVarcStrValue to input price/quantity values when the user clicks a plugin-added widget or presses a keybind. Is it permissible for these plugins to have an option to always automatically fill the text input for the user, or is it required that calls to setVarcStrValue and similar for this purpose be sourced from another user input always?
i believe the keybind/plugin widget is the compromise
Cheers. I saw the response from Adam before (#development message) that made it sound OK but wanted to seek more clarification on the exact use case
TWENTY TWENTY ONE
[ https://github.com/yuh25 ] [ @haughty shoal 127724509791780864 ] yuh25#0
@haughty shoal can you elaborate on what this means?
This issue seems to have the exception they were encountering https://github.com/yuh25/Ping-Grapher/issues/25#issuecomment-3850144267
oh this is the same person as this person #runelite message
they are probably using linux is why I think
Sorry I'm overseas and doing all this on my phone, I'm assuming it's a fix for linux.
I think this person is sort of misinformed, but, this patch has a sort of side effect where it will make windows fallback to tcp ping if icmp is blocked, which is new
which is maybe fine? but I try to avoid tcp flooding the jagex servers if i can
can some linux people run cat /proc/sys/net/ipv4/ping_group_range on a few distros and report what it says?
1 0 ubuntu 24
@upper valve thanks for the pr approval, appreciate you
were going to want macos/linux rtt support at some point probably
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 10 & 11
Bug description
Using the runious powers prayer Rejuvenation makes the regeneration meter plugin does not update like rapid heal does on the normal prayer book
Screenshots or videos
https://i.imgur.com/j1afOTi.gif
RuneLite version
RuneLite version: 1.12.16
Launcher version: 2.6.3
Logs
No response
erm isn't that a leagues only thing
Its in DMM right now
oh ok
Type
Incorrect behavior
Operating System
Windows
OS Version
Windows 10/11
Bug description
Camera Smoothing plugin began setting to max zoom on login/world hop
Screenshots or videos
No response
RuneLite version
1.12.16
Logs
No response
Support for hub plugins should be directed to the author of the plugin.
You can find the support link by searching for the plugin in the Plugin Hub panel and clicking the ? button on the plugin, or by right-clicking the plugin in the plugin panel and clicking the Support menu option.
Somehow my --insecure-write-credentials arg is not working properly.
Normally when reading those credentials the client logs "injected-client - read 5 credentials from disk"
However in this case is it reading: "injected-client - read 2 credentials from disk"
Does anyone know what could be wrong?
Did you try deleting the file and going through the process again?
Irrelevant to your problem but why does it read 5 credentials anyway?
There are 5 lines in the file
I have tried this but still no luck. JX_CHARACTER_ID, JX_SESSION_ID and JX_DISPLAY_NAME lines are completely missing from the file.
After a runelite re-install and another credentials deletion, it works now. however I have no idea why.
thanks I missed that ๐
I split out the critical bug fixes (some plugin breaking) from new features whenever someone has time to review https://github.com/runelite/plugin-hub/pull/10455
I think we should not accept this ping-grapher update
do you want me to revert
@haughty shoal if you can revert https://github.com/yuh25/Ping-Grapher/pull/26 i'll fix the linux fallback issue myself, I don't want your plugin to do tcp fallback on windows like this
How does runelite normally get the credentials from the Jagex launcher?
Environmental variables
Thanks
can I know the number of columns in a dbrow?
or do I have to test each column
I'm interested in table 37 (hairstyles)
it has columns 4 and 5 but only for some rows it seems
all rows will have the columns logically, they are just empty
got it, thanks ๐
so I have to check the array that is returned for empty
btw can that array have more than 1 entry?
can have more than 1 entry for 2 diff reasons.
- it's a tuple column
- it's a "list"
then ofc can have a combo of those two also
the api should make it only happen if its a list
looks like the api takes the list index, but doesn't seem to expose how many there would be
it should take the tuple index
like db_getfieldcount would do in cs2
yeah it does, but you don't know the max tuple index
its static, so you can just hardcode it
its encoded in the types array for the column in the dbtable
yes, its int types[column][tuple]
oh the naming is just a bit confusing in the api
Object[] getDBTableField(int rowID, int column, int tupleIndex)
tupleIndex is really the list index
its the index into the tuple
no
not the index into the list
the tuple is like stat,int
that's a tuple
then they can repeat that column, which becomes a list of tuples
yes, so if you want the int, the tupleIndex is 1
ok so is there no way to access a second requirement_stats value in a quest dbrow?
e.g. ```
data=requirement_stats,smithing,30
data=requirement_stats,sailing,12
that is a flattened array in memory with 4 values
[smithing, 30, sailing, 12] (skills are actually ints but too lazy to lookup their values)
if you want the stats you call it with tupleIndex=0
if you want the levels you call it with tupleIndex=1
ah, i see
and both will return an Integer[4]
its not like the cs2 api since we don't have a good way to do tuples
would be the same thing Object[] I guess, but types wont always be the same as compared to with this api I guess
so yeah fair enough
yeah, indexing is a bit of a pain since you have to know the tuple size
yeah the structure is very much not friendly to accessing directly lol
yeah
thats why the api tries to eat all of that complexity and just give you a homogeneous array of a single tuple index
ye makes sense, i was looking at it the same as cs2 was but i see why you went with this api instead
Type
Crash or hang
Operating System
Windows
OS Version
Windows 11
Bug description
Loot Lookup plugin not working for me and others.
Screenshots or videos
RuneLite version
1.12.16
Rev 236
2.6.10
Logs
No response
Hi, you should report this on the loot lookup plugin https://github.com/donth77/loot-lookup-plugin/issues
yeah that one's broken
i have collab on it and i get pings
idk what's wrong with it
well they skipped the logs section so nobody will ever know
:waugh:
The wiki updated from MediaWiki 1.43 to 1.45 yesterday which I would assume is related. But not sure what the plugin is doing or how things would've changed
It was scraping the page for the loot tables
cook why
common html parsing L
oh is it actually parsing html
blarg yeah it depends on jsoup
fucking amateur hour
i am sort of motivated to fix that
just steal my item drop data but display it in reverse (bad idea)
Become the hero of the hour you were always meant to be
Checking in on this again, sending positive vibes to the overlords to satisfy my yearning of kills to level
- Uses a binary index search.
- Included KeyManager and MouseManager tests.
- Retains backwards compatibility, no breaking changes.
Problem this solves
ModernChatPlugin has KeyListeners for the chat control, if the KeyRemappingPlugin loads BEFORE my plugin the key remapping KeyListeners wou...
their hack solution explains all the weirdness I had when testing modern chat
That's cringe amount of changed
Esc is one of their default hotkeys they eat too, which is fun
even better, its not rebindable actually. So even if the "Hide with escape" config is unchecked its still bound
(on release, no idea the state of what they have in dev, lots of differences there)
The current version doesn't handle any hack fixes for the remapping, the latest PR for bug fixes has a hack solution
I see, all I know is if I have Chat Toggle disabled I can't hotkey open my inventory ever ๐
if you reload Key Remapping plugin it would "resolve" for that session lol
so, ive been thinking about this, and I think I have found a reliable way to print map images just using runelite's image dumper itself & xteas from openrs2, but I am going to rewrite what I have to download the atlas in one-file-per-region pieces that contain all 4 planes and 3 LODs in each file, that way it downloads and accesses it over time instead of downloading all at once. Am I allowed to have it place the downloaded atlas files in like user.home/.runelite/atlasviewer?
yeah
alright, i'll see what I can do here
9078 separate files ๐ญ jeeeeeez, maybe I can modify this image dumper to print empty regions as transparent & then just only make atlas files for real map areas and place them on the grid via code instead of relying on the image to have the logical locations
how many regions with actual data are there
also iirc a region's id is some derivation from its base x and y
256*x + y
yeah 9078 is the total between rX/rY 15/19 -> 65/196 (which are the map bounds) including the ones with no map/loc data, i'm workin on editing the image dumper to print transparent instead of black for empty tiles
after that I am just going to omit the map squares with no pixel data from being turned into atlas files and I will just place them based on file name which is already the rx/ry
are you synthing these images in the plugin in real time or downloading them
it'll download them as .atlas files which are compressed files w/all 4 planes & 3 LOD scales. I can't really synth the images in real time, I wanted to but I don't think I could get away with it without modifying the actual client
also like I said the other day, that is a bit out of my skill set, I attempted to make a map printer once and it "worked" but it was extremely slow, like, 30 minutes per plane slow โ ๏ธ
speaking of downloading though, is there an allowed/recommended file host? I was thinking of using a github page or something
if its a github domain we don't require a warning, so prefer that
sounds good
I love new log.info's
idrc unless it's at per-gametick frequency or more
and even then i won't block a review unless it's per frame probably
thats fair, its not egregious for sure
i might say something if they're like doing it everywhere and don't seem to know that log.debug exists
some new plugins do that lol
Just checking, is there a standard for where cross-session storage in a file should occur? i.e. a file in the resources directory vs user configurable vs ???
what are you trying to do
Have data kept between sessions. So for example, I havent looked but I imagine the TileMan plugin stores unlocked tile coords somewhere locally. Just wondering if there is a standard for where that storage should occur
if it's not a lot of data use ConfigManager::(get/set)RSProfileConfiguration
otherwise, store it in some file in the .runelite directory. people typically just make a folder for their plugin
Got it. Thanks!
man even with empty map regions omitted, it is still nearly 3000 files โ ๏ธ
however with the empty regions omitted, the total file size of the packed/single atlas is only 52mb down from 110, that's a lot more reasonable. I think i'm just gonna have it download that and not overcomplicate this ๐
that seems fine
yeah over 100 is crazy but 50 something is better, zipped it's 42mb so i'll just have it download a zip and unpack to a folder
or just download it directly if I have to, not like it's much different
I'm trying to block the minimap, this is the best I have so far(that's just a black circle over all of the widgets). Is there a way to control the layering more? I don't want to cover the orbs/frame, it would be nice to have the option for npc/player/item dots and minimap icons, idk if that much is possible. I've looked at the layers in dev mode, but I don't really know how to use any of that info.
have you tried drawafterinterface?
the buttons might be part of the same thing so idk if that would work
the minimap plugin can replace the player/npc/item dots, look at how it works
ab91220 Update wiki data - RuneLite Wiki Scraper
@rancid marten what are your thoughts on https://github.com/runelite/plugin-hub/pull/10359 if you have a minute? I had a convo earlier this week about it with some folks but I think itโs pretty tame and donโt think itโs against any guidelines.
@upper valve I see you closed the PR but I implemented your ask and I still donโt agree that the plugin counts anything, because it doesnโtโฆ Iโm not trying to be annoying but I mean it literally doesnโt count anything for you. Can we reopen it please?
The reviewer said no, why are you pinging Adam?

Oh sorry didnโt see you were typing
The reviewer said they werenโt sure, and we needed others to settle, but nobody had any strong opinion. And then they just closed it
i looked in discord and there were like 5 people arguing against it so i closed
There was no consensus though, people were just giving thoughts on what they think, and Iโve had others say they think itโs fine but people even said they donโt like rule deciding.
The main thing was the attack counting, which the plugin doesnโt do. Item charges and other plugins literally count attacks, this doesnโt, but i still banned hunnlef like was suggested so Iโm not really seeing what else is blocking this
i do not see the logic in reopening it when at least 6 people (by my count) with merge rights on the hub have objected, pushed back, or otherwise argued for you further changing it to prevent abuse in some way and you refused to. i can't stop you from continuing to chase people about it, that's your funeral, but from my perspective the matter is concluded and i'm not interested in discussing it any more
Its abusability is just very limited (outside the hunllef which has already been blocked in the plugin).
Blocking this also doesn't agree with precedent. Spec counters already exist and are massively more useful than this could ever be.
Even the jagex rules don't really specify whether this is allowed or not.
And on the other end, data like this is just fun to have.
low risk, high value - I would accept this one if it were me
at this point with all the people that have chimed in it might be awkward for me to do so though
So, the RuneLite page on getting the Jagex Launcher to work with plugin test/debug mode is just for Windows and Mac. Anyone have a working method for Linux? I use the Bolt Launcher to play currently, but I believe Bolt doesn't work
Thought I'd ask here just in case there is a more modern approach before I search the web should it have older approaches
It works, just pass the arg to bolt and copy the file to the correct location
Pass the arg into here in the Runelite field?
Click configure runelite
Son of a.... there is that option lol
I got it from here - thank you lol
I looked RIGHT past that button
It can be one if it uses its....
Oh darn, tried to use the Imagination GIF from Spongebob
Lol
Anyways, back to showing my friend a movie - thank you for the help, all.
hey, for building the client with -Drunelite.pluginhub.version VM flag, what should be usually set as the version. just latest git tag on runelite/runelite? Just wanna make sure I put correct values there
I think the runelite.version file in the runelite/plugin-hub repo is a good and easy-to-find version to use https://github.com/runelite/plugin-hub/blob/master/runelite.version
oh I've completely missed this file being in there oops. thank you, that's very simple.
Is someone able to help get this emergency update reviewed? It is greatly appreciated! People are reporting a lot of issues with the dialog boxes that I've resolved in this patch https://github.com/runelite/plugin-hub/pull/10455
this is 1600 lines, wait for review like normal
Would breaking out some of the fixes further into smaller PR's help?
i think rikten looks at anything sub 2k or 3k lines as the same