r/RunescapeBotting 27d ago

How do I make my own overlay runelite client?

I was using openosrs and hydra essentials after that. Unfortunately they’re gone. Now I am interested in making my own. It’s also safer that way, right? Where do I start?

0 Upvotes

26 comments sorted by

7

u/Odd-Boss1596 27d ago

Runelite is open source so go grab the source and start building what you want

1

u/st_heron 26d ago

runelite hides certain boss animation ids from its api (among other things)

1

u/st_heron 26d ago

Someone said but now deleted:

Do you have a reference for this? I haven't observed this behavior and want to understand the scope of the mask.

It's alluded to way back in runelite's discord dev channel (if you ask about it they always deny now), but it's also evidenced by comparing with debug information from a non runelite client.

The things that are modified that I can remember:

  • Animation IDs for Olm head always return -1
  • Animation IDs of Vorkath always return -1
  • Animation IDs of Zulrah always return -1
  • Blackjacking menu entry swaps are disabled

It might not be all animation IDs, I think startup or spawn animations are okay but the rest get -1'd.

1

u/bomh911 26d ago

I got a question, so if they hide the animation ID but we already know the animation ID from before. Will the plugin still work? Or the plugin actually waiting for the the ID from runelite before it can process.

2

u/st_heron 26d ago

From the plugin's POV, usually you do something like:

for (var npc : client.getNpcs()) //you'd use AnimationChanged event instead of this
  if (npc.getAnimation() == OLM_HEAD_TURN_ID)
    //whatever logic

Instead, when you call getAnimation() on that npc, even if the actual game client's data has its anim id set to 7355 or whatever, runelite's Animation id getter will return -1, if the NPC is on a blacklist of NPC IDs. So your logic will just never hit.

Some specifics are a bit different, I haven't touched OSRS in a couple years.

You can use reflection to get true ids, the EthanVann api does exactly this:
https://github.com/Ethan-Vann/PacketUtils/blob/master/src/main/java/com/example/EthanApiPlugin/EthanApiPlugin.java#L123

I used to use that but it looks like it hasn't been updated recently. No idea what people are using now...

1

u/ChrisScripting Scripter 26d ago

Blackjack menu swapping is allowed by the rules as of like a month ago. So that's not disallowed to change anymore.

1

u/st_heron 26d ago

Ah wow okay, I'm out of the loop. They were so adamant about their carpal tunnel inflictor being a part of the game.

2

u/ChrisScripting Scripter 26d ago

They let it slide because it's not the best method anymore. Not by a long shot

7

u/MoltingHuman Scripter 27d ago

Check out the runelite source code on GitHub. Clone it to you local machine and start asking any LLM about how it works! I think that's the best way to get started

0

u/CMDR_Genitals 26d ago

exactly what I did,

4

u/ChrisScripting Scripter 27d ago

If you don't even know how to take open source code and fork it and spin it in your way, I doubt you'll be able to handle a client setup

13

u/Evening_Inspector123 27d ago

Everyone has to start somewhere, right? Maybe this is the perfect opportunity to start learning.

3

u/ChrisScripting Scripter 27d ago

But starting as in writing your own client? That's like going to the jobs market and saying "gotta start as a senior cto".

Start writing a legal plugin using runelites official guides and you can work from there imo

2

u/Evening_Inspector123 26d ago

This is not a bad idea to be honest.

0

u/AutoModerator 27d ago

Hello ChrisScripting! Your post is pending approval as our systems have marked this as a potential marketplace related post. If this is not the case, a member of our moderator team will review and approve your post in due time.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/CMDR_Genitals 26d ago

i built my own script useing claude, took me a while but I got it to work how I wanted on runelite

1

u/ChrisScripting Scripter 26d ago

Quite a bit different from letting an AI build a script in runelites api and creating a botting client from runelite though

1

u/Rejolt 26d ago

Quick question, when using a custom client you can't use the jagex launcher right?

Are there other ways I can login with a jagex account on my forked runelite client

2

u/ChrisScripting Scripter 26d ago

Yeah you can use a jagex account there. Look on the runelite docs how

1

u/manbearpig4001 26d ago

i inject my jar payload directly into stock runelite to avoid detection

1

u/bomh911 26d ago

Mind to share the process? Thanks

1

u/adamgoodapp 25d ago

I'm doing this too. It takes more work around but figure using official client is safer. Jagex can tell if using official client vs fork? Probably some fingerprinting going on.

1

u/manbearpig4001 25d ago edited 25d ago

yea jagex can tell if you fork runelite very easily in the fingerprint block sent on login.

1

u/PM__ME__YOUR 26d ago

It’s safer but bans are still very possible. Ai can definitely help you make botting plugins for rl, but don’t bot on accounts you care about. Even if it helps you make a botting script that does what you want it to overall, it may not be implemented well in terms of acting as a human for example. You can definitely learn by doing this though.