Asobo Toolkit
This repository is a relative of the main FMTK repository.
Asobo Studio Games
- Sitting Ducks (EU,PL,RU)
- The Mummy: The Animated Series (PL,RU)
- CT Special Forces: Fire for Effect/Special Forces: Nemesis Strike (Steam)
- Garfield: A Tail of Two Kitties/Garfield 2 (US,EU,RU)
- Ratatouille (US,RU,DE,ES,PT,FR,NL,Scandinavia,PL,BR,Action Pack)
- WALL-E (US,Steam US,RU,DE,UK)
- FUEL (US,RU,Steam,Steam Demo)
- Up (US,RU)
- A Plague Tale: Innocence (EGS,Steam)
Black Sheep Studio Games
- Championsheep Rally
- The Ugly Duckling and Me
- The Magic Roundabout
The documentation for commands is located on the atk wiki.
Run the commands below the list to install everything.
Using winget or manual installation
winget install python3
pip3 install frida-tools
You may need to add a directory to your Path environment variable to run Frida, pip should warn you if this is the case, from the command line. Check out this StackOverflow answer if you are getting the 'frida' is not recognized as an internal or external command, operable program or batch file.
error and need help.
now download atk.js from this repo
Replace the FUEL example data with whatever is appropriate for the game you are running.
Choose one of the 2 options.
Double check that you are running Frida from the correct directory. Ideally you will run Frida from the directory containing the executable and atk.js
.
frida -n FUEL.exe -l atk.js
This option will not work on all games. You may have to circumvent DRM/Anti-debug to launch the game directly.
If this option doesn't work, try again but use the full path to the executable. Ex: -f "D:\SteamLibrary\steamapps\common\FUEL\FUEL.exe"
.
frida -f FUEL.exe -l atk.js -o atk.log
To pass arguments to the game EXE on launch. Ex: -W
frida -f FUEL.exe -l atk.js -o atk.log -- -W
Once Frida has instrumented the game you should be greeted with a repl:
[Local::FUEL.exe]->
You can call any atk function here:
Run the command string.
[Local::FUEL.exe]-> runCommand("SetTimeFactor 0.5")
Print the array of command names that have been registered while the game was instrumented. If the game was instrumented after launch then this will probably be empty because one of the first things to happen is command registration.
[Local::FUEL.exe]-> dumpCommandNames()
Print the array of command names that have been registered while the game was instrumented with newlines. If the game was instrumented after launch then this will probably be empty because one of the first things to happen is command registration.
[Local::FUEL.exe]-> dumpCommandNamesPretty()
Log commands to the console as they run.
[Local::FUEL.exe]-> enableLogCommands()
Stop logging commands to the console as they run.
[Local::FUEL.exe]-> disableLogCommands()
Add the command prefix string to the list of commands excluded from logging (case insensitive).
[Local::FUEL.exe]-> addExcludedCommand("menu")
Remove the command prefix string from the list of commands excluded from logging (case insensitive).
[Local::FUEL.exe]-> removeExcludedCommand("menu")
Clear the list of commands excluded from logging.
[Local::FUEL.exe]-> clearExcludedCommands()
Sitting Ducks, The Mummy: The Animated Series, CT Special Forces: Fire for Effect/Special Forces: Nemesis Strik, Garfield: A Tail of Two Kitties/Garfield 2, and Ratatouille only! Enable the right-click menu present in later games.
[Local::overlay.exe]-> enableContextMenu()
Sitting Ducks, The Mummy: The Animated Series, CT Special Forces: Fire for Effect/Special Forces: Nemesis Strik, Garfield: A Tail of Two Kitties/Garfield 2, and Ratatouille only! Disable the right-click menu present in later games.
[Local::overlay.exe]-> disableContextMenu()
WALL-E only! Enable the DPad cheats.
[Local::WALL-E.exe]-> enableDPadCheats()
WALL-E only! Disable the DPad cheats.
[Local::WALL-E.exe]-> disableDPadCheats()
Edit the index.js
file then run npm run-script build
to generate a new minified atk.js
script.
Pull requests are welcome.