Educational attempt to create a Oldschool Runescape client
This project is to learn:
- More about how the Oldschool runescape client operates
- Learning about reflection
- Learn more about injection
- Runtime analysis of values to identify fields/classes
- Learn control flow analysis to trim unused fields and classes when deobfuscating the code
If you would like to join the community or have questions feel free to join this discord
Make sure you have Java 11
Its recommended that you use InteliJ IDEA for the development environment. Currently we are using Java 11
- Clone the repo from the commandline, GitHub desktop GUI or even within InteliJ
- Open up the newly cloned repo in InteliJ
- Reimport the maven project by pressing this button in the Maven panel on the right hand side
At this point you should have all the external Libraries loaded in the project panel
- Back over to the Maven panel you need to run the compile Lifecycle. You should get [INFO] BUILD SUCCESS
- Then run the exec:exec plugin to launch the application
- Go to com.p3achb0t.Main or src/com/p3achb0t/main.kt
- Click on the green play button. This should compile and launch the app as well.
Currently the scripts live in the follow location: src/com/p3achb0t/scripts The TutorialIsland.kt script should have an extensive working version on a script.
- Create main file - To create your own clone an existing script in this directory or create a new file. Just make sure you extend your class from an AbstractScript.
- Add it to the menu - In the following file you can add a new menuItem for your script: src/com/p3achb0t/client/ui/components/GameMenu.kt
- Starting - Rebuild and run the application. After these steps you should see your script in the Debug menu. Select it and then in the Client dropdown press Start
If you use the Kotlin template building method you can recompile files and "Hot swap" the class files while the client is working. All you need to do is be sure you are in debug mode and you can do that by pressing the Bug button as long as you have the correct build configurations selected
Within the file if you are editing it you can right click and select "Compile and reload file"
OR
On the Project View on the left hand side you can right click a file and select "Compile
Caveat - Depending on what you change within the file or files its possible you cant just recompile. For example, if you change a class signature or add a new class then you need to do a recompile and relaunch.