#development

1 messages ยท Page 4 of 1

upper valve
#

you can't

rancid marten
#

gah

#

awhile ago i wrote a canned ai respoonse, do you know where that went

#

i lost it

upper valve
#

are you sure this is AI?

#

can't tell tbh

rancid marten
#

yes

upper valve
#

i mean yeah just send your response

ember flareBOT
#

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

upper valve
#

they're really not adding any value if they're just AIing fixes to shit. that just creates more work for you

rancid marten
#

I think the response is good

#

also its AI written which is just peak irony

upper valve
#

yeah

#

if they want to contribute through an llm they can talk to an llm

rose void
#

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

rose void
upper valve
#

yeah the desc was 100% ai, wasn't sure abt the code

lost sequoia
#

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

upper valve
#

three backticks

#

there you go

lost sequoia
#

ty

#

i also do register the hook at startup and turn off at shutdown

rancid marten
#

getSceneId() is always 0 i think

lost sequoia
#

huh

rancid marten
#

this code is just nonsensical and so it doesnt do anything

lost sequoia
#

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.

rose void
#

can you do that? entity hider removes the model and therefore you cant click it anymore

lost sequoia
#

i know i can delete the model but that don't do what i want either

upper valve
#

model.getSceneId() == DOOM_HOLE_NORMAL_MODEL is just wrong

glass sandal
#

You probably want to just check onGameObjectSpawned for DOM_DESCEND_HOLE but I don't think what you want to do is even possible

lost sequoia
#

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

ember flareBOT
glass sandal
#

You can't add menu options that send server messages

lost sequoia
rose void
#

you have nothing to click on

lost sequoia
true panther
lost sequoia
true panther
#

Just the model.

lost sequoia
#

well if i could get it to work i would find out real quick

amber rampart
#

clicktesting happens as part of rendering, so you can't hide something and still have the client click test for it

rose void
#

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

amber rampart
#

and RuneLiteObjects don't support click testing either

lost sequoia
#

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

glass sandal
#

You probably want to look at CG Recolor, World Recolor, or VM Recolor and not entity hider

lost sequoia
rose void
#

arent there plugins that recolor toa and cox beams too

#

prob similar

lost sequoia
#

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

rose void
lost sequoia
#

i was looking at it and unfortunately it also doesn't do the same thing

#

it spawns a cox runelite object beam above

rose void
#

yes but it also has chest recoloring

true panther
#

you can get the colors to change using creators kit.

lost sequoia
true panther
#

creators kit plugin on the hub

lost sequoia
#

i zee

#

hmm

lost sequoia
upper valve
ember flareBOT
upper valve
#

:ducksmokingweed:

reef badger
#

is that what he's smoking

oak rock
lost sequoia
upper valve
reef badger
#

i thought it was just a regular cigarette

rose void
upper valve
rugged pivot
upper valve
#

think you're right

rugged pivot
ember flareBOT
#
[runelite/static.runelite.net] New branch created: wiki-data-2026-01-30
lost sequoia
ember flareBOT
stuck shale
#

oh i should use canonicalize(itemid) instead, that is why duplicate-item works, it dupes the item but it canonicalize the itemid -- done ๐Ÿ™‚

quick path
#

Big if true

lost sequoia
ember flareBOT
#

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

ember flareBOT
ember flareBOT
cobalt lily
rancid marten
#

If it was put into the base client, in what way would it be different from the plugin?

cobalt lily
#

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 ๐Ÿ™‚

rancid marten
#

ive no idea how permissions work on macos, I dont think we do anything with them atm

ember flareBOT
cobalt lily
rancid marten
#

@hollow parrot whats going on with this party hitsplat thing?

rancid marten
#

did you just add it and auto enable it for everyone?

hollow parrot
#

yes

rancid marten
#

that is sort of annoying

#

it is coming up fairly frequently in #support since noone knows what it is

hollow parrot
rancid marten
#

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?

hollow parrot
#

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

rancid marten
#

i typically try to avoid just sudden unexplained ux changes like that since most people don't understand that plugins can update

#

for everyone 1 person in #support there are 99 others that dont know #support exists and have the same questions

#

also I guess its extra confusing that an xpdrop plugin would provide hitsplats since it seems out of scope

hollow parrot
#

that's true

#

so the answer is setting the default setting to off?

rancid marten
#

it is probably too late now idk

#

could try it

trail marten
#

you could force it off for everyone

#

anyone who did want it could turn it back on

rancid marten
#

did this added after the update wed?

hollow parrot
#

the last update of the plugin. i believe wednesday night eu time

rancid marten
#

ok a lot of people wouldnt even have it then

hollow parrot
rancid marten
#

maybe it is worth changing the default

hollow parrot
rancid marten
#

most of the clients we have havent been restarted since the update

rancid marten
upper valve
#

wouldnt they also want to change the config key

rancid marten
#

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

hollow parrot
#

o

#

well im fine with the key change

rancid marten
#

ok

ember flareBOT
hollow parrot
#

also i wouldnt mind getting tagged in #support if its about xp drops or predicted hits

glass sandal
#

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

hollow parrot
#

yea i meant @ the people who commonly help people out in there

sharp knot
#

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

sharp knot
karmic linden
#

are widgets updated after VarClientIntChanged events?

#

I tried using clientThread.invokeLater() but my override still gets undone by the game

worthy sparrow
#

we don't know what you are looking at but it depends

karmic linden
#
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

low hatch
#

Don't you have to refresh the widget after modifying it to make the changes take place?

karmic linden
#

I haven't had to so far but I've done everything else on WidgetLoaded events

worthy sparrow
#

you should be using post script fired

#

(I'm assuming you are swapping deposit inventory buttons)

karmic linden
#

Ahh, yeah that sounds right, since the buttons have scripts associated with them

worthy sparrow
#

no it's because the windows are built with different scripts

karmic linden
#

is it not any of these?

#

This is under Bankmain.WORNITEMS_BUTTON

karmic linden
#

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)

ember flareBOT
ember flareBOT
#

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:

desert canyon
#

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!

rancid marten
#

are you running the gradle task?

desert canyon
#

The build.gradle? Or the runelite run task?

#

I guess I've run both of those a lot.

rancid marten
#

the build.gradle one

#

that should run it

desert canyon
#

So that says it builds successfully but doesn't open runelite?

rancid marten
#

youre probably running the build task instead of the run task

desert canyon
#

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.

desert canyon
rancid marten
#

weird theres no arrow

desert canyon
#

and my words are white/grey, hmm

#

I have messed with this file a bit

amber rampart
#

do you have a button like this in the top left?

desert canyon
#

Not currently

#

I have gotten familiar with that one :)

amber rampart
#

you can manually add a run configuration with :run and it should work

desert canyon
#

In the tasks space?

#

I think that's working?

#

RuneLite has launched and I see my plugin, thank you!

ember flareBOT
ember flareBOT
split anchor
#

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

glass sandal
#

IMO it's a lot better to improve an existing plugin than to make a plugin just for the sake of making a plugin

stuck shale
#

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

split anchor
#

yeah I know they are, that's just sorta my fallback haha

split anchor
worthy sparrow
#

contribute to resource packs please

ember flareBOT
hidden echo
# ember flare

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?

glass sandal
#

New readme to your repo, new PR to plugin hub

hidden echo
#

Alright ty

glass sandal
#

If you note that its just a readme update and not code it'll probably get merged pretty quickly

hidden echo
#

Good comms, ty

hidden echo
#

Yeah that was my understanding, but i couldnt figure out how and didnt even realize at the time of the PR

ember flareBOT
quick path
#

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

hidden echo
#

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 ๐Ÿ˜„

ember flareBOT
ember flareBOT
regal sparrow
#

yall are so quick with reviewing plugins & updates. thank ya to all the volunteers

karmic linden
#

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

trim pumice
#

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?

amber rampart
#

yes

trim pumice
#

thanks, thought as much

karmic linden
#

Does ScriptPostFired happen after a script is finished running or after it has been started

amber rampart
#

it is attached to the return opcode

karmic linden
#

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

amber rampart
#

3276 is called from more than just 3275

karmic linden
glad ermine
#

would "downgrading" a red click to a yellow click be allowed? Idk if it is possible at all

trail marten
#

You can swap walk here, that's it

glad ermine
#

on the menu entries you mean?

trail marten
#

Yeah

#

There's no way red x mechanics are client controllable

glad ermine
#

you can stop a "take item" action from happening

#

but swapping it for another is probably tos or at least very shady

upper valve
#

wym, menu entry swapping is allowed

ember flareBOT
split anchor
#

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

upper valve
#

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

split anchor
#

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

solid shadow
#

looks neat ๐Ÿ‘€

split anchor
#

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

upper valve
#

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

split anchor
#

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

upper valve
#

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

split anchor
#

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

upper valve
#

if it's 100mb you can't embed it in the plugin fyi

#

there's a 10mb jar limit

split anchor
#

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

topaz pierBOT
split anchor
#

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 ๐Ÿ˜‚

worthy sparrow
#

you can download things but a 100mb might be a limitting factor for people

split anchor
#

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 ๐Ÿ˜„

upper valve
#

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

split anchor
#

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

upper valve
#

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

willow salmon
#

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 ๐Ÿ™‡โ€โ™‚๏ธ?

worthy sparrow
#

store the original

willow salmon
#

How? I donโ€™t think thereโ€™s getters for the listeners ๐Ÿค”

split anchor
worthy sparrow
#

oic probably wasn't meant to be used to override widgets

split anchor
willow salmon
worthy sparrow
#

maybe there is a script to rebuild them

willow salmon
#

Sorry still quite new to this, I know of ScriptID but can I see what the different scripts actually do somewhere?

rancid marten
willow salmon
#

Awesome, Iโ€™ll look into it ๐Ÿซก

ember flareBOT
desert canyon
#

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.

rancid marten
#

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

split anchor
upper valve
#

do you have a link to your repo

split anchor
#

not yet, this only exists on my pc at the moment. ill upload it there in a bit

low hatch
late hare
split anchor
#

that must be the xtea file I found, then, and explains why it ended up producing an incomplete map

upper valve
#

do you have an idea of how that might have been obtained

late hare
#

osrs.world sources from openrs2, which gets from hdos and rl

split anchor
#

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

low hatch
split anchor
#

posting it cause it was requested, ik it can't be added yet due to file size

upper valve
#

oh so you did this in swing within the actual client

#

instead of in an Overlay

split anchor
#

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 ๐Ÿ˜…

rancid marten
#

is it downloading the atlas from somewhere?

split anchor
#

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

rancid marten
#

how big is it?

split anchor
#

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

umbral grove
#

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?

GitHub

A runelite plugin implementation for the Bronzeman mode. - CodePanter/another-bronzeman-mode

sharp knot
#

Clone the plugin repo and run the plugin test

topaz pierBOT
umbral grove
#

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.

sharp knot
#

What IntelliJ version are you on?

umbral grove
#

โจ```
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

sharp knot
#

Install 2025.2.6

rancid marten
#

.. is there something wrong with the newer ij?

#

this is news to me

reef badger
#

is it really tho

#

it seems like a very smart assumption

split anchor
#

I have an install of 2023 that refuses to recognize โจjava.util.listโฉ โ˜ ๏ธ

rancid marten
#

It might just be because this is using gradle 6

#

i would try updating gradle first

umbral grove
#

downgrading intellij worked, ty!

#

maybe should've tried gradle 7 first but oh well

upper valve
#

or break it up

split anchor
#

yeah, could probably break it up. good idea. it is already compressed

upper valve
#

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

split anchor
#

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

upper valve
#

there's a map image dump test somewhere in core

split anchor
#

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

upper valve
#

does anyone know how the vanilla map does it?

amber rampart
#

it has its own separate, incomplete copy of the map data in a different format

low hatch
ember flareBOT
rancid marten
ember flareBOT
ember flareBOT
ember flareBOT
ember flareBOT
rugged pivot
# ember flare

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

rugged pivot
#

yeah the existing plugin overrides it even if it is enabled

upper valve
#

recycled image but yeah that tracks

rugged pivot
#

weirdly that issue is caused by Bank Tab Names

upper valve
#

oh that is odd

#

i don't know widgets that well

rugged pivot
#

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

topaz pierBOT
#

Search for https://github.com/Lazyfaith returned no results.

deep adder
#

@ebon wraith hey, would you be open to adding me as a maintainer to your bank memory plugin?

ember flareBOT
ember flareBOT
ember flareBOT
#

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

stuck shale
#

Key remapper plus victim maybe, no logs to confirm against

trail marten
#

there's a camera plugin too that does this for some reason

#

iirc

stuck shale
stuck shale
#

lol

reef badger
#

crazy

solid shadow
#

hmjj why doesnt that one show up in the lines of text zom!

stuck shale
#

I donโ€™t know tbh

trail marten
#

does fo rme

solid shadow
#

nono the section below that

stuck shale
#

Look at the lines of text section below

solid shadow
#

man I love the links you added

stuck shale
#

It gives hyperlinks to the repo

#

But doesnโ€™t find that one, it has issues in other text too

reef badger
ember flareBOT
hidden echo
#

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)

reef badger
#

if its under 5k rikten will probably review it

hidden echo
#

Alright nice, otherwise feel free to tell me in the PR or here (to rikten if he sees this)

stuck shale
solid shadow
#

oh I see

ember flareBOT
#

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

deft hatch
upper valve
worthy sparrow
#

don't set public limits

reef badger
#

oh my god

worthy sparrow
#

now it's legally binding

upper valve
#

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)

misty hornet
#

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

ember flareBOT
upper valve
#

if you can break it up

misty hornet
#

Even with half of it being config/class definitions?

upper valve
#

yes?

misty hornet
#

kk, just wanted to make sure! let me try to get it split up for ya

upper valve
#

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

misty hornet
#

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

upper valve
#

completeness of a feature doesnt really matter since we dont play attention to "features" yeah

ember flareBOT
misty hornet
#

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

upper valve
#

that would be fine

#

ty

#

i don't really start raising an eyebrow until you go significantly past 2k

misty hornet
#

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?

upper valve
#

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

misty hornet
#

Oh okay, thanks we'll combine them

upper valve
#

k i have to leave my machine but i'll try to do another pass before bed

misty hornet
#

Oh appreciate that a lot, but no pressure to get to it tonight

ember flareBOT
upper valve
#

nice

ember flareBOT
oak grotto
#

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

upper valve
#

idk

oak grotto
#

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

trail marten
#

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.

upper valve
#

probably fine idk

#

gonna need confirmation from a blue name on this one

oak grotto
#

Fine with me, thank you both!

wind fjord
#

Hi!
Ive been trying to play around with a plugin. Unfortunately I dont knwo much. Sooo I do have a few questions.

  1. If the PR says some picture is too big, do I need to do something with that warning ? or is that jsut a warning
  2. 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!

sinful lava
wind fjord
#

Thank you!

hidden echo
ember flareBOT
#

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

ember flareBOT
ember flareBOT
#
[runelite/runelite] New tag created: runelite-parent-1.12.15
#
[runelite/static.runelite.net] New branch created: 1.12.15-21596598778
wind fjord
grizzled aspen
#

You can just update your current pr to an older commit

wind fjord
#

and then create new branches/PRs for the others ?

grizzled aspen
#

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

rich bronze
#

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

trail marten
#

you could hide the item entirely like the bank filler reskin plugin

rancid marten
#

It might be drawing the item on top of your overlay, i doubt its changing your overlay to be transparent

rich bronze
rich bronze
rancid marten
#

i think it might be possible with WidgetItemOverlay since the runepouch plugin does that doesnt it?

#

at least at one point it did

rich bronze
#

essentially this is the kerfuffle im in

#

but yeah definitely looks like its being overdrawn by a ghost sprite

rancid marten
#

does the runepouch overlay work?

rich bronze
#

seems like that has the same issue

rancid marten
#

oh. then i guess it doesnt work

rich bronze
#

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

rancid marten
#

overlay layer ALWAYS_ON_TOP would definiely work i think?

rich bronze
#

i did that on my own subclass of overlay but didnt, might be because im using overlaymanager and that overwrites its layer?

rancid marten
#

i dont think overlay manager overwrites the layer like that

ember flareBOT
ember flareBOT
#

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...
upper valve
#

hit em with that "no-ai"

violet pendant
#

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?

GitHub

Contribute to LlemonDuck/tombs-of-amascut development by creating an account on GitHub.

tulip wagon
#

you fork the repository instead, and create a pull request originating from your fork

ember flareBOT
rich bronze
#

but lord is it ugly

rich bronze
#

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

trail marten
#

client.getmenu.createmenuentry

ember flareBOT
#

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...
rich bronze
#

there we go, no more deprecated function usage

#

and plugin workin as i want it โค๏ธ

rose void
#

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

reef badger
#

โจ--profile=โฉ

rose void
#

thanks, now i wont have to retag all my npcs for the 4th time, only the 3rd time

oak grotto
worthy sparrow
#

I'd argue no and you would need to disable it for all bosses

tribal root
#

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

worthy sparrow
#

We have also disallowed this plugin once already for that rule

upper valve
#

FYI to anyone waiting on reviews, github CI is currently red so I imagine we're holding off until that's resolved

rancid marten
reef badger
#

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

oak grotto
#

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

deft hatch
#

As pointed out by pajlada it would probably be ok if you delay the info with 10 seconds or so

oak grotto
#

But delaying the info is a really bad user experience

deft hatch
#

why do you need instant info?

#

sounds like you need it for the boss

#

which is explicitly not allowed

oak grotto
#

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

topaz pierBOT
solid shadow
#

I would say "attack counters"

#

probably?

upper valve
#

...like i quoted in my original comment...

oak grotto
#

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

worthy sparrow
#

Personally I don't like being a rules arbitrator, ala watchdog

oak grotto
#

Supplies tracker shows you your charges consumed, which is actually a count. This plugin doesn't even show you a sum of anything

grizzled aspen
#

that's not really counting attacks is it

oak grotto
#

How is it not?

grizzled aspen
#

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

oak grotto
#

This is objectively more of "counting" my attacks (look at side panel) than anything the proposed plugin does.

oak grotto
grizzled aspen
#

yours includes damage numbers and tick information which is clearly more info than what is there

oak grotto
#

Respectfully, now we're moving the goal post :/

grizzled aspen
#

not really

deft hatch
#

your tick delay from your last hit
this could tell you that you are off cycle and need to sync, e.g. pog tank

oak rock
#

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

deft hatch
#

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

oak grotto
#

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

deft hatch
#

there are maaaany plugins that shouldn't be on the hub

tribal root
#

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

upper valve
#

there's no explicit mechanism to delay n ticks, your solution is pretty much what you'd need here

ember flareBOT
#

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...
ember flareBOT
split anchor
#

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

worthy sparrow
#

vital bars extended maybe

split anchor
#

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

split anchor
#

well, I fixed the spacing and submitted it ๐Ÿ™ checks passed after one fail

rugged pivot
#

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 ๐Ÿ‘€

ember flareBOT
wind fjord
amber rampart
#

your build failed because your code does not compile

ember flareBOT
#

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

client.log

[launcher.log](https://github.com/user-attachments/files/25039673/launch...

ember flareBOT
split anchor
rose void
hollow lintel
#

@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

ember flareBOT
upper valve
#

you can file the issue for posterity though

hollow lintel
#

Will do, thanks ๐Ÿซก

ember flareBOT
misty hornet
#

@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 :)

ember flareBOT
upper valve
misty hornet
#

Perfect, thanks

#

I'll keep an eye out

split anchor
#

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 ๐Ÿ˜„

rancid marten
#

it depends on how much code youve submitted and what its doing

split anchor
#

thank you, and again no rush to anyone, was just wondering how it works

low hatch
#

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 ๐Ÿค
shy pine
#

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

snow needle
#

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?

trail marten
#

maybe do it again? perhaps the equipping of the glassblowing pipe resets it

#

playerchanged event, does it fire?

snow needle
#

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.

trail marten
#

ah, dunno then.

#

just sethash or also changing the colors?

snow needle
#

I didn't try changing the colors every tick, just setHash every tick and changing the colors with UI

shy pine
snow needle
#

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.

shy pine
#

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?

snow needle
#

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.

tulip wagon
snow needle
#

For resetting the cache you mean?

tulip wagon
#

the animation setting

#

however you are altering the colours

snow needle
#

I'm not doing any animation anything. I just noticed that animations don't work with the recolouring I'm performing

tulip wagon
#

ah, i see

#

still, can you send a snippet of the recolouring you're doing then

snow needle
#

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;
    }
ember flareBOT
upper valve
#

where map plugin

split anchor
#

๐Ÿ˜„ 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

oak grotto
sharp knot
#

I will say that a similar plugin was outright denied a while back rather than being okayed with a blocklist

oak grotto
#

Do you have a link? Not sure how similar, but doesn't neccessarily preclude this one from going out

sharp knot
#

It basically tracked the last few attacks the player did and displayed them

trail marten
#

I don't see any debate on this one though.

#

other than the guy seeming to also have a cg cheat plugin

sharp knot
#

I think there was another one maybe, too

oak grotto
#

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

sharp knot
#

And also the one I'm thinking of was talked about in discord

ember flareBOT
ember flareBOT
ember flareBOT
signal cave
#

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

upper valve
#

pretty much anything you do here would constitute an illegal "additional indicator" so it's basically gonna have to be solution 3

quick path
#

osrs players using their eyes: challenge level IMPOSSIBLE

upper valve
#

wheres the sight plugin

trail marten
#

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

signal cave
trail marten
#

which is really the best benefit.

trail marten
signal cave
quick path
#

that's also in the chatbox lol

#

and on fixed that'll always be visible

signal cave
#

Yeah but the white contrast is terrible

quick path
#

(I also play min size fixed so I can relate)

trail marten
signal cave
#

Because the warning text is red but the equipment slot is white for some reason

quick path
#

make-him-smol heredit pluginโ„ข

signal cave
#

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

trail marten
#

it has a region blacklist, maybe colosseum is on it.

signal cave
#

Oh I would guess CoX definitely is if that's the case. Makes sense

#

Questions answered though, Thanks all. Telling friend to git gud

tulip wagon
#

Nintendo DS! You can run RuneLite on that??

red rapids
#

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?

trail marten
#

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

red rapids
#

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

autumn star
trail marten
#

I would look at the color picker though

#

that seems simpler

red rapids
#

Awesome, thank you both for the references

trail marten
#

or any number of the dev tools that open a window.

ember flareBOT
ember flareBOT
#
[runelite/runelite] New tag created: runelite-parent-1.12.16
#
[runelite/static.runelite.net] New branch created: 1.12.16-21668977541
#
[runelite/static.runelite.net] New branch created: jav-config-21669802671
#
[runelite/static.runelite.net] New branch created: cache-code-2026-02-04-rev236
ember flareBOT
glad ermine
#

Can I specify which credentials.properties I want to load?

stuck shale
#

no

heavy bobcat
#

You can specify a different home directory which can include different credentials

#

Someone was discussing that in this channel not too long ago

tulip wagon
#

@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

tulip wagon
#

@heady cliff check the channel description

ember flareBOT
ember flareBOT
trail marten
#

anyone know what causes this hairstyle change?

#

and can it be modified from plugins

#

the hat moves the ponytail

amber rampart
#

its probably done to fix clipping

trail marten
#

that sounds reasonable but apparently if you transmog bunny ears via runelite it does not fix the hair

amber rampart
#

yeah, the server is responsible for your player kit

trail marten
#

oh so the hair might be a different kit id?

amber rampart
#

yeah

trail marten
#

alright thanks!

ember flareBOT
rustic canyon
#

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?

grizzled aspen
#

the pluginhub readme

rustic canyon
#

this correct?

#

Specifically Building with IntelliJ IDEA

thorn grotto
#

no thatโ€™s โ€œrunelite core developmentโ€

topaz pierBOT
rustic canyon
#

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?

thorn grotto
#

yes

rustic canyon
#

thank you

rustic canyon
#

Question regarding account auth.
Is there a method to run the dev build of RL using Jagex Account without exporting that token?

odd oasis
rustic canyon
#

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.

odd oasis
rustic canyon
#

All good haha ๐Ÿ˜„

odd oasis
#

One of the runelite devs would know better than myself though

rustic canyon
#

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

odd oasis
#

I don't use Idea or ANTLR, so I have no idea. Sorry

amber rampart
#

that is normal

rustic canyon
#

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
amber rampart
#

those are also normal

rustic canyon
#

ok first time running this so I want to ensure I didnt mess it up before I start making changes ๐Ÿ™‚

sharp knot
#

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

rustic canyon
#

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.

sharp knot
#

I don't think a hub plugin would cleanly fix it either since iirc a lot of the sounds just had null sources

rustic canyon
#

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.

stuck shale
#

not all area sounds have a source

rustic canyon
#

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 ๐Ÿ™‚

stuck shale
#

i am currently the maintainer of annoyance mute

#

sounds are sort annoying with how they behave

rustic canyon
#

Would you reccommend me to try something less annoying instead?

stuck shale
#

I didn't read what you were trying to fix, so no feedback

worthy sparrow
#

are you want to contribute to the client or just anything?

rustic canyon
rustic canyon
stuck shale
#

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?

rustic canyon
#

it happened during the summer sweepup

#

jagex was doing a lot of changes

worthy sparrow
#

resource packs basically is out of date every time new content is added

rustic canyon
upper valve
#

ron trying to farm labor

rustic canyon
#

Question incase there is a better way to do this, aside from grabbing textures from game cache, is there another method?

pliant zephyr
#

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?

worthy sparrow
#

i believe the keybind/plugin widget is the compromise

pliant zephyr
#

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

reef badger
#

TWENTY TWENTY ONE

ember flareBOT
ember flareBOT
topaz pierBOT
rancid marten
#

@haughty shoal can you elaborate on what this means?

glass sandal
rancid marten
#

they are probably using linux is why I think

haughty shoal
#

Sorry I'm overseas and doing all this on my phone, I'm assuming it's a fix for linux.

rancid marten
#

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?

thorn grotto
#

0 to 2,1b on cachyos (arch derivative)

#

same on debian

grizzled aspen
#

1 0 ubuntu 24

misty hornet
#

@upper valve thanks for the pr approval, appreciate you

ember flareBOT
rancid marten
#

were going to want macos/linux rtt support at some point probably

ember flareBOT
upper valve
#

erm isn't that a leagues only thing

glass sandal
#

Its in DMM right now

upper valve
#

oh ok

ember flareBOT
pastel tree
#

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?

sharp knot
#

Did you try deleting the file and going through the process again?

glad ermine
#

Irrelevant to your problem but why does it read 5 credentials anyway?

restive garnet
#

There are 5 lines in the file

pastel tree
#

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.

heady cliff
ember flareBOT
rancid marten
#

I think we should not accept this ping-grapher update

upper valve
#

do you want me to revert

ember flareBOT
rancid marten
ember flareBOT
glad ermine
#

How does runelite normally get the credentials from the Jagex launcher?

late hare
#

Environmental variables

glad ermine
#

Thanks

ember flareBOT
trail marten
#

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

amber rampart
#

all rows will have the columns logically, they are just empty

trail marten
#

got it, thanks ๐Ÿ‘

#

so I have to check the array that is returned for empty

#

btw can that array have more than 1 entry?

amber rampart
#

yeah

#

yes

#

eg if you look at table 3 it has some

late hare
#

can have more than 1 entry for 2 diff reasons.

  1. it's a tuple column
  2. it's a "list"
#

then ofc can have a combo of those two also

amber rampart
#

the api should make it only happen if its a list

late hare
#

looks like the api takes the list index, but doesn't seem to expose how many there would be

amber rampart
#

it should take the tuple index

late hare
#

like db_getfieldcount would do in cs2

late hare
amber rampart
#

its static, so you can just hardcode it

late hare
#

it's not static

#

it's per dbrow

amber rampart
#

its encoded in the types array for the column in the dbtable

late hare
#

no

#

it is not

amber rampart
#

yes, its int types[column][tuple]

late hare
#

im not talking about tuple

#

im talking about list index

amber rampart
#

yes, that is per dbrow

#

and that is just the length of the array it returns

late hare
#

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

amber rampart
#

its the index into the tuple

late hare
#

no

amber rampart
#

not the index into the list

late hare
#

the tuple is like stat,int

#

that's a tuple

#

then they can repeat that column, which becomes a list of tuples

amber rampart
#

yes, so if you want the int, the tupleIndex is 1

late hare
#

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)

amber rampart
#

if you want the stats you call it with tupleIndex=0

#

if you want the levels you call it with tupleIndex=1

late hare
#

ah, i see

amber rampart
#

and both will return an Integer[4]

#

its not like the cs2 api since we don't have a good way to do tuples

late hare
#

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

amber rampart
#

yeah, indexing is a bit of a pain since you have to know the tuple size

late hare
#

yeah the structure is very much not friendly to accessing directly lol

amber rampart
#

yeah

#

thats why the api tries to eat all of that complexity and just give you a homogeneous array of a single tuple index

late hare
#

ye makes sense, i was looking at it the same as cs2 was but i see why you went with this api instead

ember flareBOT
upper valve
#

yeah that one's broken

#

i have collab on it and i get pings

#

idk what's wrong with it

reef badger
#

well they skipped the logs section so nobody will ever know

upper valve
#

:waugh:

glass sandal
#

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

restive garnet
#

It was scraping the page for the loot tables

upper valve
#

cook why

rugged pivot
#

common html parsing L

upper valve
#

oh is it actually parsing html

#

blarg yeah it depends on jsoup

#

fucking amateur hour

#

i am sort of motivated to fix that

rugged pivot
#

just steal my item drop data but display it in reverse (bad idea)

restive garnet
ember flareBOT
ember flareBOT
rugged pivot
#

their hack solution explains all the weirdness I had when testing modern chat

worthy sparrow
#

That's cringe amount of changed

rugged pivot
#

Esc is one of their default hotkeys they eat too, which is fun

rugged pivot
#

(on release, no idea the state of what they have in dev, lots of differences there)

heady cliff
#

The current version doesn't handle any hack fixes for the remapping, the latest PR for bug fixes has a hack solution

rugged pivot
heady cliff
#

if you reload Key Remapping plugin it would "resolve" for that session lol

split anchor
# split anchor ๐Ÿ˜„ thanks for approving the status bars one. As far as the map plugin, I still h...

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?

upper valve
#

yeah

split anchor
#

alright, i'll see what I can do here

split anchor
#

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

reef badger
#

oops

#

that's not your answer dont worry

upper valve
#

how many regions with actual data are there

#

also iirc a region's id is some derivation from its base x and y

glass sandal
#

256*x + y

split anchor
#

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

upper valve
#

are you synthing these images in the plugin in real time or downloading them

split anchor
#

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

amber rampart
#

if its a github domain we don't require a warning, so prefer that

split anchor
#

sounds good

ember flareBOT
rugged pivot
upper valve
#

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

rugged pivot
#

thats fair, its not egregious for sure

upper valve
#

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

red rapids
#

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

upper valve
#

what are you trying to do

red rapids
#

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

upper valve
#

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

red rapids
#

Got it. Thanks!

split anchor
#

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 ๐Ÿ˜‚

upper valve
#

that seems fine

split anchor
#

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

ember flareBOT
desert canyon
#

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.

trail marten
#

have you tried drawafterinterface?

#

the buttons might be part of the same thing so idk if that would work

rancid marten
#

the minimap plugin can replace the player/npc/item dots, look at how it works

ember flareBOT
#
[runelite/static.runelite.net] New branch created: wiki-data-2026-02-06
ember flareBOT
oak grotto
#

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

misty hornet
#

The reviewer said no, why are you pinging Adam?

#

Oh sorry didnโ€™t see you were typing

oak grotto
#

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

upper valve
#

i looked in discord and there were like 5 people arguing against it so i closed

oak grotto
#

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

upper valve
#

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

trail marten
#

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

plucky crescent
#

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

glass sandal
#

It works, just pass the arg to bolt and copy the file to the correct location

plucky crescent
#

Pass the arg into here in the Runelite field?

glass sandal
#

Click configure runelite

plucky crescent
#

Son of a.... there is that option lol

#

I got it from here - thank you lol

#

I looked RIGHT past that button

trail marten
#

how is that a button?

#

it's an emoji + some text

#

I wouldn't have recognized it XD

plucky crescent
#

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.

ember flareBOT
tribal root
#

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

sinful lava
tribal root
#

oh I've completely missed this file being in there oops. thank you, that's very simple.

heady cliff
rancid marten
#

this is 1600 lines, wait for review like normal

heady cliff
#

Would breaking out some of the fixes further into smaller PR's help?

stuck shale
#

i think rikten looks at anything sub 2k or 3k lines as the same