A RS3 RSPS framework targeted at NXT, the goal is to stay up-to-date with RS3

Overview

OpenNXT - RS3 919

A RS3 RSPS framework targeted at NXT, the goal is to stay up-to-date with RS3

Discord

We have a Discord server you can join! https://discord.gg/u5p4w3zjjx

Tooling

One of the goals of this project is to have all necessary tools built-in. This includes the client downloader, client and launcher patcher, cache downloaders et cetera.

Tools can be executed through the command line with the following parameters: run-tool [--help]

You can create your tools easily by creating a new class in com.opennxt.tools.impl. Your class must extend from base class com.opennxt.tools.Tool. Tools are registered automatically using classpath scanning.

Updating

To update OpenNXT to a new version:

  1. Download the latest clients using run-tool client-downloader
  2. Download the latest cache using run-tool cache-downloader
  3. Patch the latest clients using run-tool client-patcher
  4. Update the build field in ./data/config/server.toml

If the version you are updating to is not yet supported by OpenNXT OR you want to contribute to the project's networking-related code and implementations, it is highly recommended you also fulfil these steps:

  1. In com.opennxt.net.login.LoginEncoder, replace RS3_MODULUS with the old login key printed by the patcher.
  2. Create a new directory: ./data/prot/[new version]/, replacing [new version] with the server version.
  3. Open the win64.exe client in Ghidra, and run the Ghidra NXT Auto Refactoring Script. For more information on how to install and use this tool you can visit my Rune-Server thread.
  4. Run the script and use the data it prints to the console to populate the files in ./data/prot/[version]/*.toml. The tool does not print clientProtNames. Those, you will have to do manually.
  5. Populate the packet fields using files in the ./data/prot/[version]/[(client/server)prot] directories

Setup

To set the project up:

  1. Generate your server's RSA keys: run-tool rsa-key-generator

  2. Download the latest RS clients: run-tool client-downloader

    ⚠️ Latest clients might not be compatible with this repository. Please ensure this repository version matches the version of your clients.

  3. Put the original launcher in: ./data/launcers/win/origina.exe (can be found at C:\Program Files\Jagex\RuneScape Launcher\RuneScape.exe)

  4. Create a configuration file ./data/config/server.toml. Configure the following fields:

    hostname = "127.0.0.1"
    configUrl = "http://127.0.0.1/jav_config.ws?binaryType=2"

    configUrl is the URL the launcher will get the jav_config.ws from. hostname is the IP your server runs on

  5. Patch the client and launchers using run-tool client-patcher

  6. Download the latest cache using run-tool cache-downloader

  7. Wait until this framework progresses further

You might also like...
FilePicker is a small and fast file selector library that is constantly evolving with the goal of rapid integration, high customization, and configurability~
FilePicker is a small and fast file selector library that is constantly evolving with the goal of rapid integration, high customization, and configurability~

Android File Picker 🛩️ 中文简体 Well, it doesn't have a name like Rocky, Cosmos or Fish. Android File Picker, like its name, is a local file selector fra

Maxibon kata for Kotlin Developers. The main goal is to practice property based testing.
Maxibon kata for Kotlin Developers. The main goal is to practice property based testing.

Kata Maxibon for Kotlin. We are here to practice property based testing. We are going to use KotlinTest to write our tests. We are going to practice p

KataContacts written in Kotlin. The main goal is to practice Clean Architecture Development

KataContacts written in Kotlin We are here to practice Clean Architecture Development. Clean Architecture is a way of structuring code. We are going t

TODO API Client Kata for Kotlin Developers. The main goal is to practice integration testing using MockWebServer
TODO API Client Kata for Kotlin Developers. The main goal is to practice integration testing using MockWebServer

KataTODOApiClient for Kotlin We are here to practice integration testsing using HTTP stubbing. We are going to use MockWebServer to simulate a HTTP se

Screenshot Kata for Android Developers with Kotlin. The main goal is to practice UI Screenshot Testing.
Screenshot Kata for Android Developers with Kotlin. The main goal is to practice UI Screenshot Testing.

KataScreenshot in Kotlin We are here to practice UI testing using screenshot tests for Android. We are going to use Espresso to interact with the Appl

Super Heroes Kata for Android Developers in Kotlin. The main goal is to practice UI Testing.
Super Heroes Kata for Android Developers in Kotlin. The main goal is to practice UI Testing.

KataSuperHeroes in Kotlin We are here to practice UI Testing. We are going to use Espresso to interact with the Application UI. We are going to use Ko

Maxibon kata for Kotlin Developers. The main goal is to practice property based testing.
Maxibon kata for Kotlin Developers. The main goal is to practice property based testing.

Kata Maxibon for Kotlin. We are here to practice property based testing. We are going to use KotlinTest to write our tests. We are going to practice p

KataContacts written in Kotlin. The main goal is to practice Clean Architecture Development

KataContacts written in Kotlin We are here to practice Clean Architecture Development. Clean Architecture is a way of structuring code. We are going t

TODO API Client Kata for Kotlin Developers. The main goal is to practice integration testing using MockWebServer
TODO API Client Kata for Kotlin Developers. The main goal is to practice integration testing using MockWebServer

KataTODOApiClient for Kotlin We are here to practice integration testsing using HTTP stubbing. We are going to use MockWebServer to simulate a HTTP se

Screenshot Kata for Android Developers with Kotlin. The main goal is to practice UI Screenshot Testing.
Screenshot Kata for Android Developers with Kotlin. The main goal is to practice UI Screenshot Testing.

KataScreenshot in Kotlin We are here to practice UI testing using screenshot tests for Android. We are going to use Espresso to interact with the Appl

Super Heroes Kata for Android Developers in Kotlin. The main goal is to practice UI Testing.
Super Heroes Kata for Android Developers in Kotlin. The main goal is to practice UI Testing.

KataSuperHeroes in Kotlin We are here to practice UI Testing. We are going to use Espresso to interact with the Application UI. We are going to use Ko

Integration Testing Kotlin Multiplatform Kata for Kotlin Developers. The main goal is to practice integration testing using Ktor and Ktor Client Mock
Integration Testing Kotlin Multiplatform Kata for Kotlin Developers. The main goal is to practice integration testing using Ktor and Ktor Client Mock

This kata is a Kotlin multiplatform version of the kata KataTODOApiClientKotlin of Karumi. We are here to practice integration testing using HTTP stub

A reliable android app that shows upcoming fixtures, updated league tables, and top goal scorers in a league
A reliable android app that shows upcoming fixtures, updated league tables, and top goal scorers in a league

SwiftScore A football stats and livescore app built with Kotlin,MVVM architecture,Retrofit, Coroutines and Navigation Components Demo Screenshots API

A reliable android app that shows upcoming fixtures, updated league tables, and top goal scorers in a Premier League and French Ligue 1
A reliable android app that shows upcoming fixtures, updated league tables, and top goal scorers in a Premier League and French Ligue 1

RapidScore Screenshots Table of Contents Description Dependencies API Reference Lessons Learnt Contributing Roadmap Google Playstore License Author In

Proyect with the goal to show my skills in android
Proyect with the goal to show my skills in android

ChipperMovie Es una aplicación de peliculas y sus detalles filtrados por categorias para demostrar el uso de mis habilidaedes en desarrollo movil. Ace

The goal of the KaMP Kit is to facilitate your evaluation of Kotlin Multiplatform
The goal of the KaMP Kit is to facilitate your evaluation of Kotlin Multiplatform

KaMP Kit Welcome to the KaMP Kit! About Goal The goal of the KaMP Kit is to facilitate your evaluation of Kotlin Multiplatform (aka KMP). It is a coll

The goal of this assignment is to implement GameOfFifteen
The goal of this assignment is to implement GameOfFifteen

Game of Fifteen Demo The board for the game of Fifteen is filled randomly with numbers from 1 to 15 and one empty space. You can move the neighboring

Main goal of this project is to find the best route from one country to another

Route-service Main goal of this project is to find the best route from one country to another. Data is presented as json format. I've implemented A* p

GOD - Goal of the day is the notes app which tracks your daily tasks, most important tasks & monthly goals
GOD - Goal of the day is the notes app which tracks your daily tasks, most important tasks & monthly goals

GOD - Goal of the day GOD - Goals of the day Problem Statement: People always face problems in finding their goals and keeping track over a period. Th

Comments
  • fixed login on member worlds

    fixed login on member worlds

    still can't use all interfaces i'm not sure about the GameLoginResponse packet order is right, on isMember parameters shouldn't it be just 0x01? the client is receiving ex. 0x14 0x16

    opened by pedrotk 4
  • Added ability to dump textures from cache

    Added ability to dump textures from cache

    TextureDumper allows you to:

    • Dump all textures from all 4 indices
    • Dump all textures from a specified index
    • Dump a specified texture from all 4 indices
    • Dump a specified texture from a specific index

    Technical information: | Index | Name | Format | Texture Min | Texture Max | |--------|--------|--------|-------------|-------------| | js5-52 | dxt | dds | 5442 | 23798 | | js5-53 | png | png | 5442 | 23798 | | js5-54 | mipmap | png | 5442 | 23798 | | js5-55 | etc | ktx | 5442 | 23798 |

    opened by woahscam 3
  • Cache downloading seems to skip/not download some files in Index 40

    Cache downloading seems to skip/not download some files in Index 40

    Running the cache downloader from scratch seems to download all indices except for some files inside of index 40/js5-40. You can catch this by comparing a full 918 cache downloaded from RSCD to one that was downloaded using this tool. There appears to be (at the time of writing this issue 5/3/2021 : 1:06 A.M. est) 4,961 files not downloaded (about 500/700mb worth of data).

    bug 
    opened by woahscam 0
Owner
Daniël Voort
Just a Dutch student working on completing the Codam curriculum
Daniël Voort
📄The reliable, generic, fast and flexible logging framework for Android

logback-android v2.0.0 Overview logback-android brings the power of logback to Android. This library provides a highly configurable logging framework

Tony Trinh 1.1k Jan 8, 2023
Android framework for node.js applications

Introduction Anode is an embryonic framework for running node.js applications on Android. There are two main parts to this: a port of node.js to the A

Paddy Byers 586 Dec 9, 2022
A Java client for the Sixpack A/B testing framework https://github.com/seatgeek/sixpack

sixpack-java A Java client for SeatGeek's Sixpack a/b testing framework: https://github.com/seatgeek/sixpack Installing Sixpack-java is currently only

null 135 Oct 7, 2022
JVM Bytecode Transformation Framework

unboks - JVM Bytecode Transformation Framework ⚠️ Read the State of the Project section before considering use! ⚠️ This framework exposes a graph-base

Anders Høst 1 May 25, 2022
A simple and scalable Android bot emulation framework, as presented at Black Hat Europe's Arsenal

m3 A simple and scalable Android bot emulation framework. A detailed explanation can be found here. This project was first published at Black Hat Euro

null 22 Aug 20, 2022
♣️ A flexible and powerful command framework with default Guilded API implementations using deck

A simple and versatile command framework made with the primary objective of making Guilded command experience a little more elegant.

Gabriel 2 Dec 15, 2022
Nepali Date Picker library in Jetpack compose for android with Date conversion from BS to AD and vice-versa

Nepali Date picker Converter - Re in Compose This is a re-work of Nepali Date Picker Converter in jetpack compose and kotlin. English Locale Nepali Lo

Kiran Gyawali 4 Dec 23, 2022
Take beautiful markdown notes and stay organized with task lists.

Take beautiful markdown notes whenever you feel inspired. Place them in notebooks and tag them accordingly. Stay organized by making task lists, set reminders and keep everything in one place by attaching related files.

null 412 Dec 27, 2022
A tool for making your stay through "IC" a little better.

mr.r0bot-kt.v Mr.r0bot-kt.v is tool that handles computer logic calculations and provides a better experience through your stay at "IC". Warning Use m

null 5 Dec 7, 2021
Attendance-Manager - Attendance Manager, a attendance recording app that helps stay at your 75% attendance

Android-Study-Jams Attendance tracker app Problem Statement: There has been a ne

Gdsc_JMI 1 Jan 9, 2022