Repository navigation
The cspector Format
A .cspector file holds your cheats for one version of one game. It is JSON, saved minified to keep it small; a formatted copy loads just the same.
{
"format": "cheatspecter",
"formatVersion": 1,
"game": { "name": "Example Game", "titleId": "PPSA01234", "version": "01.002.000" },
"cheats": [
{
"name": "Infinite ammo",
"type": "patch",
"at": { "kind": "module", "offset": "0x2040" },
"on": "909090",
"off": "FF4B28"
}
]
}On the PS5 the file is /data/cheatspecter/cheats/<title id>-<version>.cspector, for example PPSA01234-01.002.000.cspector.
| Kind | Example | Notes |
|---|---|---|
signature |
{"kind":"signature","pattern":"45 8B 65 48 ?? 8D","offset":8} |
A byte pattern in the game's code plus a distance past it. ?? matches anything. Survives restarts and most updates. |
module |
{"kind":"module","offset":"0x3E5AB37"} |
An offset into the game's executable. Add "module":"libSomething.prx" for an offset into that module. |
pointer |
{"kind":"pointer","base":"0x2F4A10","offsets":["0x8","0x340"]} |
A pointer path starting in the executable (or, with module, in that module). |
address |
{"kind":"address","address":"0x880012340"} |
A raw address, valid only until the game restarts. |
type |
Fields | What it is |
|---|---|---|
patch |
at, on, off, optional more
|
Bytes to write, and the originals. more is a list of further {at, on, off} places under the same switch. |
value |
at, valueType, value, optional freeze, choices
|
Sets a value, or holds it there. |
inject |
at, code, placement, and the code-cheat fields below |
A code cheat. |
shared |
symbol, code, optional variables
|
Code that hooks nothing: functions and variables for code cheats to use. |
call |
fn, args
|
Calls a function in the game. |
script |
code |
A JavaScript program. |
Value types are u8, u16, u32, u64, i8, i16, i32, i64, float and double.
| Field | Meaning |
|---|---|
note |
A line of description shown under the name. |
group |
Lists the cheat under a collapsible heading. |
hotkey |
For example "Ctrl+Shift+1". Works while the page is open and in front. |
keep |
true asks the PS5 to apply the cheat whenever the game runs, with no page open. Only patches and held values that are not at a raw address, and only in a file saved to the PS5. |
symbol |
The cheat's name in code. A patch, value or call with a symbol can be used in code as an address. |
reviewed |
Set by the app on code-running cheats you made or approved. Imported ones without it are held for review. |
On a value: "choices": [{"label": "Easy", "value": "0"}] shows a list to pick from.
On a patch (and each entry of more):
-
"fallback": {"kind": "module", ...}is the fixed position used when the pattern inatno longer matches. -
"around": {"bytes": "...", "mask": "...", "at": 24}is the original code around the patch, used to find the place again after a game update.atis where the patched bytes start. Inmask,xmarks the start of an instruction,?a byte that depends on where the game was loaded, and.the rest.
Besides at and code:
| Field | Meaning |
|---|---|
placement |
"code" for new cheats. The older "before", "after" and "replace" still load and behave as they did. |
variables |
[{"name":"speed","type":"float","value":"2.5"}]. Read in code as dword ptr [speed]. Types are the value types above plus bytes (hex). A variable may have choices. |
more |
[{"at":…,"code":"…","placement":"code"}]: further lines hooked by the same switch. They share the variables and labels. |
off, fallback
|
The game's bytes the jump replaces and the fixed position, to notice a game update. |
rule |
What the rule builder was told, so the editor reopens there. |
The code syntax is described in Code Cheats and Scripts.
formatVersion is 1. Fields added since are all optional: older files simply lack them, and a version of CheatSpecter that does not know a field keeps it as it is.
CheatSpecter is free software under the GPL-3.0 license and comes with no warranty. Use it at your own risk. Releases · Changelog · Report a problem
Getting started
Guides
- Finding Values
- Making and Managing Cheats
- Code Cheats and Scripts
- Debugging
- Engine Helpers
- Community Cheat Tables
Claude (MCP)
Reference