CLEO Redux is an experimental JavaScript runtime for all 3D GTA games. This page presents the latest version of CLEO Redux v0.9.4 for GTA San Andreas The Definitive Edition. CLEO Redux is a continuation of the development of the well-known CLEO library, which allows you to improve the gameplay with the help of countless custom mini-scripts (*.cs).
It's worth noting that this version works in all three GTA The Trilogy games, but not the Classic ones. The difference is that here is a 64-bit version of CLEO Redux specifically for the Trilogy, while the Classic games are built on a 32-bit platform.
CLEO Redux for GTA SA Definitive Edition is presented in the form of an ASI plugin cleo_redux64.asi, which requires an ASI Loader. For your convenience, we have already added it to the archive with the mod and you do not need to download and install it separately. Additionally, we have included the following CLEO plugins in the archive: Dylib, IniFiles, TextLoader, ImGuiRedux. We also monitor the current version of CLEO Redux and update the files on this page as new versions are released.
CLEO Redux 0.9.4 from May 12, 2022:
- add support for custom file loaders allowing import of various file formats
- add new bindings available in JS code: a static object CLEO and a constant __filename
- add new config option DisplayMenuInfo to control whether CLEO Redux should display the version information in the main menu (supported in GTA III/VC/SA)
- fix a conversion error in some commands when an integer number is given instead of a boolean
SDK AND PLUGINS
- when RuntimeNextTick is called with both arguments set to zero (RuntimeNextTick(0, 0)) CLEO calculates correct values for current_time and time_step as the time elapsed from the last call of RuntimeInit and the delta time between two ticks respectively
- add an option in the installer to download SilentPatch as a dependency of the ImGuiRedux plugin
- new methods RegisterLoader, AllocMem, FreeMem (see the guide)
- new file loaders for Text files (any host) and IDE files (GTA3, VC, SA)
BREAKING CHANGES
- configuration option LogOpcodes is no longer applied to JS scripts. To start tracing executed commands in a JS script use CLEO.debug.trace(true). To disable tracing use CLEO.debug.trace(false).
- __dirname is now const and can not be changed
- static methods have been excluded from fluent interface (can't be chained with other methods)
CLEO can be embedded and run on unknown hosts via the self-hosted mode See demo
new installer that automatically downloads extra dependencies such as Ultimate ASI Loader and plugins (dylib, IniFiles, or ImGuiRedux)
support for organizing scripts and its dependencies in sub-directories inside the CLEO folder
automatically download the latest enums.js file from Sanny Builder Library along with the command definitions. You can import enums in JS with import * as enums from './.config/enums';
memory access operations can run on an unknown host (previously they had a dependency on the op command which itself can only run in GTA games)
Memory.CallFunctionReturnFloat and Memory.CallMethodReturnFloat are now available for 32-bit hosts. CallFunctionReturnFloat has been previously added for 64-bit hosts.
SDK AND PLUGINS
SDK's method ResolvePath now resolves paths starting with ./ or .\ relative to the script directory. You can use them in commands like READ_INT_FROM_INI_FILE or LOAD_DYNAMIC_LIBRARY
new SDK methods GetHostName, SetHostName, RuntimeInit, RuntimeNextTick. SDK version is now 2.
IniFiles plugin updated to 1.2: increased max length of the INI file path
Dylib plugin updated to 1.1: increased max length of the DLL file path
BREAKING CHANGES
delete previously deprecated command op. Use native instead.
rename GAME variable to HOST (GAME is still available for use but it's recommended to update older scripts).
CLEO Redux 0.9.2 from Mar 04, 2022:
add support for The Definitive Edition Title Update 1.04 (GTA III DE 1.0.0.15284, VC DE 1.0.0.15399, SA DE 1.0.0.15483);
fix an issue with string arguments in Memory call commands in GTA San Andreas (#36);
fix an issue with scripts not working if the path to the game directory has square brackets [, ].
CLEO Redux 0.9.1 from Feb 22, 2022:
add SDK for developing custom commands in C++ and Rust;
add support for fallible commands in JS (also known as IF and SET commands in SCM scripts), they return undefined when failing, e.g. DynamicLibrary.Load or Char.IsInAnySearchlight);
two new plugins adding commands to work with DLL (dylib.cleo) and INI files (IniFiles.cleo) in all supported games;
add __dirname variable in JS scripts that resolves to the current file's directory;
add a new function native that calls a scripting command by name (similar to op);
fix a rounding issue with floating-point numbers in GTA 3;
fix an issue with imports not working in JS when the CLEO folder is located in the AppData directory;
fix an issue with the showTextBox command in San Andreas displaying some garbage text;
fix a conversion error when the showTextBox command is given an integer argument;
fix an issue with scripts permissions not being validated for JS scripts;
fix an issue when the object returned as a result of some commands (Object.GrabEntityOnRope(), Heli.GrabEntityOnWinch() and like) did not have relevant fields wrapped in a class instance.
CLEO Redux 0.9.0 from Jan 23, 2022:
add support for JS scripts in GTA III: The Definitive Edition (v1.0.0.14718) and Vice City: The Definitive Edition (v1.0.0.14718) (some limitations apply, see Feature support for the details);
add support for modern ES6+ syntax (arrow functions, const/let, classes, more methods in the standard library, etc), see Mines Drop script as an example;
add support for importing other scripts and JSON files.
For 64-bit games (The Trilogy):
you can now call game functions with floating-point arguments - thanks to @ThirteenAG;
new command Memory.CallFunctionReturnFloat that is similar to Memory.CallFunctionReturn but is used for functions that return a floating-point number;
new convenience method Memory.Fn.X64Float that can be used for functions that return a floating-point number.
CLEO Redux 0.8.6 from Jan 12, 2022:
add CALL_FUNCTION and CALL_FUNCTION_RETURN commands in San Andreas: The Definitive Edition;
add Memory.Fn.X64 convenience methods for calling functions from JavaScript on the x64 platform;
showTextBox now works in San Andreas: The Definitive Edition;
fixed an issue with FxtStore object not showing in VS Code autocomplete;
fixed an issue with text draw not working in GTA San Andreas;
fixed an issue in CLEO dev builds causing the game crash on startup while checking for an update;
minimum required version of sa_unreal.json is 0.209.
CLEO Redux 0.8.5 from Jan 2, 2022:
add support for static FXT files in CLEO_TEXT folder (demo: https://youtu.be/ctsKy7WnY9o );
add support for private FXT storage in each JS script (demo: https://youtu.be/FLyYyrGz1Xg );
fixed an issue when scripts permissions were not validated for CLEO scripts;
fixed an issue when the game may crash on the script reload;
custom CLEO opcodes (0C00-0C07) can now be used in the main.scm in San Andreas: DE.
CLEO Redux 0.8.4 from Dec 17, 2021:
new opcodes 0C06 WRITE_MEMORY and 0C07 READ_MEMORY, as well as corresponding JavaScript commands: Memory.Write and Memory.Read;
fixed an issue with opcodes 0C01, 0C02, 0C03, 0C04 crashing the game;
CLEO Redux for San Andreas: The Definitive Edition now uses sa_unreal.json from https://github.com/sannybuilder/library. You can manually delete CLEO\.config\sa.json that is not used anymore.
CLEO Redux 0.8.3 from Dec 9, 2021:
Fixed a critical bug in the CS Script Planner causing abnormal behavior (mostly resulting in slow execution);
fixed an issue due to which crowns created in CLEO scripts were not displayed.
CLEO Redux 0.8.2 from Dec 5, 2021:
CLEO now uses AppData directory if there is no write permissions in the current game directory (see First Time Setup note);
add support for method chaining on constructible entities;
fixed an issue when a script could run during game pause (when the game menu is active).
CLEO Redux 0.8.1 from Dec 1, 2021:
add support for San Andreas: The Definitive Edition v1.0.0.14718 (Title Update 1.03).
CLEO Redux 0.8.0 from November 26, 2021:
new 64-bit version of CLEO Redux (cleo_redux64.asi). It's intended to work only with remastered games;
initial support for San Andreas: The Definitive Edition v1.0.0.14296 and v1.0.0.14388;
fixed an issue when scripts might not reload after loading a save file.
There may be a noticeable delay during the first launch of the game as CLEO Redux loads the files it needs to support Javascript. This will not happen on subsequent launches. When you first start the game, the CLEO folder will appear in the directory with the GTA San Andreas - Definitive Edition game along the path: \Gameface\Binaries\Win64\.
After installing CLEO Redux, all script modifications (scripts) should be installed in the following path: [game folder]\Gameface\Binaries\Win64\CLEO\
You can download CLEO Redux v0.9.4 for GTA San Andreas Definitive Edition from the links below on this page. Installation is automatic or manual.
Installation notes.
If you downloaded CLEO Redux not from this page, you see two files cleo_redux.asi and cleo_redux64.asi in the archive, then do not copy both files to the folder with your game - it will not work!
For Classic versions of GTA, select the cleo_redux.asi file (32-bit platform).
For GTA The Trilogy Definitive Edition, the cleo_redux64.asi file (64-bit platform) is suitable for you.