A Node.js-based memory editor and trainer for the Ratchet & Clank series on PS2 and PS3.
RatchetHax includes a standalone trainer via trainer.js
that has various features like the ability to give yourself bolts, weapons etc, set the player's location and show the debug menu (in RC1).
It can also be used in your own project to write scripts and game mods with JavaScript by importing Game.js
into your project and using the included API.
- Node.js
- Only v19.x has been tested but most recent versions should work fine.
- A PS2 Emulator
- Memory addresses are currently tested on PCSX2 1.6.0, offsets may need to be adjusted for other emulators.
- or a PS3 Emulator
- Memory addresses are offset by 0x300000000 bytes which should be compatible with most versions of RPCS3.
- View Game Metrics
- View current bolt count, health, current planet, equipped item and all unlocks
- Set Health
- Infinite Health
- Set Bolts
- Set Raritanium
- Set Bolt Multiplier
- Freeze Bolt Multiplier
- Unlock/Lock Weapons
- Enable/Disable Gold Weapons
- Set Weapon Level
- Set Weapon Ammo
- Infinite Ammo
- Unlock/Lock Gadgets
- Unlock/Lock Items
- Teleport to Locations
- Detects the currently loaded planet and allows the player to choose from common locations on that planet to teleport to
- Manually set player coordinates
- x, y, z position and pitch, roll, yaw rotation
- Freecam
- Uses the built-in debugging freecam (Cam+Chr) in RC1
- Freeze Player
- Freeze Mobys (Movable Objects)
- Freeze Particle FX
- Freeze Camera
- Open In-Game Debug Menu
- Only available in RC1 and some RC2 & RC3 prototypes
This section is intended as a quick guide to get started with the included trainer for beginners on Windows who aren't familiar with Node.js or the command line.
- Install Node.js if it's not already installed
- NOTE: When installing Node.js, make sure to tick the checkbox to "Automatically install the necessary tools" in the "Tools for Native Modules" step. This is required to compile one of the dependencies of RatchetHax.
- Download the RatchetHax project code
- Extract the downloaded zip file to a folder on your computer
- Open Windows Terminal or Command Prompt and navigate to the folder you extracted the zip to
- This is easiest to do by right clicking an empty space in the folder and then choosing Open in Terminal
- Run
npm install
to automatically install dependencies - Finally, run
npm run trainer
to run the included sample trainer
When you launch the trainer, it'll look for any running emulators on your system. If it finds any, you'll be able to choose one of them from a list. If no emulator processes were found, you'll be prompted to specify a process name or PID to attach the trainer to.
After selecting a process to attach to, the trainer will give you a list of supported games to choose from.
After selecting a game from the list, the trainer will attach to the emulator and you'll be taken to the main menu.
The RatchetHax API allows to create your own Ratchet & Clank scripts and mods with JavaScript.
Documentation is available here.
Currently, only the original v1.00 (Black Label) NTSC version of Ratchet & Clank 1 is fully supported by RatchetHax.
Early support has now been added for several other games in the series. Not all functionality is working or fully tested yet, but progress is being made on implementing full support for these games on both PS2 and PS3.
Adding support for other Ratchet & Clank games is as simple as cloning an existing address file and making the neccessary address edits. Game.js will automatically detect and import all address files in ./games on launch.
I'm working on adding support for new builds as time permits. If you'd like to contribute your own, feel free to open an issue or submit a PR. See the Contributing section for more info.
When instantiating the Game class, you'll need to pass a game version string parameter. Below is a table of supported games and their version strings:
Game Build | Version String | Support Status |
---|---|---|
Ratchet & Clank 1 (PS2, NTSC v1.00) | rc1_ps2_scus97199 | FULL |
Ratchet & Clank 1 (PS3, NPUA80643) | rc1_ps3_npua80643 | PARTIAL |
Ratchet & Clank 2 (PS3, NPUA80644) | rc2_ps3_npua80644 | PARTIAL |
Ratchet & Clank 3 (PS3, NPUA80645) | rc3_ps3_npua80645 | PARTIAL |
Ratchet & Clank: Deadlocked (PS3, NPUA80646) | rc4_ps3_npua80646 | PARTIAL |
Ratchet & Clank: Tools of Destruction (PS3, NPUA80965) | rctod_ps3_npua80965 | PARTIAL |
Ratchet & Clank: A Crack in Time (PS3, BCES00748) | rcacit_ps3_bces00748 | PARTIAL |
Feature | RC1 | RC2 | RC3 | RC4 |
---|---|---|---|---|
Health | ✔️ | ❌ | ❌ | ❌ |
Bolts | ✔️ | ❌ | ❌ | ❌ |
Raritanium | ➖ | ❌ | ➖ | ➖ |
Bolt Multiplier | ➖ | ❌ | ❌ | ❌ |
Unlock/Lock Weapons | ✔️ | ❌ | ❌ | ❌ |
Weapon Level | ✔️ | ❌ | ❌ | ❌ |
Weapon Ammo | ✔️ | ❌ | ❌ | ❌ |
Unlock/Lock Gadgets | ✔️ | ❌ | ❌ | ❌ |
Unlock/Lock Items | ✔️ | ❌ | ❌ | ❌ |
Unlock/Lock Planets | ✔️ | ❌ | ❌ | ❌ |
Teleport to Locations | ✔️ | ❌ | ❌ | ❌ |
Set Coordinates | ✔️ | ❌ | ❌ | ❌ |
Freecam Mode | ✔️ | ➖ | ➖ | ➖ |
World State | ✔️ | ➖ | ➖ | ➖ |
Feature | RC1 | RC2 | RC3 | RC4 | ToD | ACiT |
---|---|---|---|---|---|---|
Health | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Bolts | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Raritanium | ➖ | ✔️ | ➖ | ➖ | ✔️ | ✔️ |
Bolt Multiplier | ➖ | ✔️ | ❌ | ❌ | ✔️ | ❌ |
Unlock/Lock Weapons | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ |
Weapon Level | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
Weapon Ammo | ✔️ | ✔️ | ❌ | ✔️ | ✔️ | ✔️ |
Unlock/Lock Gadgets | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ |
Unlock/Lock Items | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ |
Unlock/Lock Planets | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Teleport to Locations | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ |
Set Coordinates | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Freecam Mode | ❌ | ➖ | ➖ | ➖ | ➖ | ➖ |
World State | ❌ | ➖ | ➖ | ➖ | ➖ | ➖ |
To be documented
To be documented
If you have any improvements, fixes or suggestions feel free to submit a pull request or open a new issue.
Alternatively, if you'd like to support ongoing development of this and other open source projects a donation would be very much appreciated. I accept direct crypto donations via any of the addresses below or through Coinbase Commerce.
BTC: bc1q6kqv5u2368j4l00rls5frg78wt7m6vf7a50sa7
ETH: 0x704fb3fD106D00e6D78880C25139141C4B24DFd7
DOGE: D6MZp3HMZQA6gFBhmcmYs6AjytXwQJ4bYj
LTC: ltc1qhqgsnzwumxm7q3u3m4rj0zcvwcvcvhqqrke07p
XMR: 8429Hzck9gdX43MF9NzNGjaeGdKBwjVTjgGDQfXKV6WxfSGubxuBi6mEh2nDWwXtAZUjMejV4Pamr5SfYp96QJZNEQecMqS