Releases: cleolibrary/CLEO-Redux
Releases · cleolibrary/CLEO-Redux
1.0.5
- add TypeScript support
- add support for commands using global SCM variables (e.g. counters or timers). See scm.ts
- delete previously deprecated variable
GAME
. UseHOST
instead - update script watcher: changing
.mjs
files in a script directory or any nested directories triggers script reload FxtStore
can be forced to mutate global FXT keys by setting the last argument inFxtStore.insert
andFxtStore.delete
to true
SDK AND PLUGINS
- IdeLoader 1.2: fixed a parser bug that prevented
.ide
files with a2dfx
section to be loaded - Frontend 1.1: reduced a timeout during a check for updates to 10 seconds
- ImGuiRedux (by Grinch_): more commands
BREAKING CHANGES
- bumped minimum required versions of command definitions
Thanks to DadlyPrey, BroXe, and Junior_Djjr for supporting my work on Patreon!
1.0.4
- experimental support for async functions
- add new method
CLEO.runScript
to spawn new scripts - add FXT support in GTA IV
- changing JS files in a script directory makes this script to reload
i.e. if you haveCLEO\myscript\index.js
andCLEO\myscript\dep.js
, changing either file reloadsindex.js
- fix a crash on GTA III and GTA VC when a script continuously creates and destroys blips #75
BREAKING CHANGES
- bumped minimum required versions of command definitions for GTA IV
1.0.3
- add support for the latest Trilogy patch 1.04.5
- add methods
Memory.ReadUtf8
,Memory.WriteUtf8
,Memory.ReadUtf16
,Memory.WriteUtf16
for reading and writing strings from memory - setting
ONMISSION
variables totrue
allows usage of mission-only commands like00D9 STORE_CAR_CHAR_IS_IN
or00D8 MISSION_HAS_FINISHED
SDK AND PLUGINS
- new SDK methods
GetDirectoryPath
,GetCLEOVersion
,GetSymbolAddress
,GetNumberOfActiveCSScripts
,GetNumberOfActiveJSScripts
,IsEndOfArguments
. SDK version is now 6. - code that displays a CLEO version in the main menu was extracted into a separate plugin -
frontend.cleo
. Works with GTA III, VC, re3, reVC, and SA.
BREAKING CHANGES
- bumped minimum required versions of command definitions
1.0.2
- add JavaScript support in 64-bit versions of re3 and reVC (see Feature Matrix for details)
- make
CheckUpdates
option disabled by default
SDK AND PLUGINS
- make 64-bit version of IdeLoader
INSTALLER
- fix an error during the installation of ASI Loader in GTA IV
- add an extra step during the installation for re3 and reVC to select the correct version of the game (32-bit or 64-bit)
BREAKING CHANGES
- bumped minimum required versions of command definitions
1.0.1
- initial support for Bully: Scholarship Edition (v1.2 PC) https://www.youtube.com/watch?v=Jz3XB3rDiRI
- fix a potential crash in gxt hook
- fix a potential issue with scripts not working after reload under some circumstances
SDK AND PLUGINS
- add
GTA IV
,Bully
, andManifest
toHostId
enum - update Input plugin to v1.3:
- use
GetAsyncKeyState
instead ofGetKeyState
- new commands GET_CURSOR_POS and SET_CURSOR_POS
- use
- new SDK method
OnShowTextBox
to register and run callbacks on aShowTextBox
function call. Implementing a custom callback shadows the default implementation for the given host (e.g. a message in the black rectangular text box). - unknown hosts can now have a manifest file to define a custom name and API files for the host
- SDK version is now 5
INSTALLER
- you can opt out of installing provided API files and download latest versions from Sanny Builder Library during the first game run
BREAKING CHANGES
-
bumped minimum required versions of command definitions
Pad
enum was renamed toPadId
to avoid conflicts with a staticPad
class.
1.0.0
- add initial support for GTA IV (The Complete Edition) (video)
- all GTA games now use compound definitions (a combination of the primary JSON file and a JSON file for the Unknown host from Sanny Builder library)
- fix an issue when CLEO stopped loading FXT files after encountering non-UTF8 characters
- add CLEO.apiVersion property
SDK AND PLUGINS
- two new plugins: MemoryOperations and Input
- new SDK methods
OnBeforeScripts
,OnAfterScripts
,OnRuntimeInit
to register and run callbacks on each game tick or after game reload. See example of usage in the Input plugin.
INSTALLER
- installer now includes all files needed to setup and run CLEO Redux in offline mode
BREAKING CHANGES
- bumped minimum required versions of command definitions
Thanks to DadlyPrey, BroXe and Junior_Djjr for supporting my work on Patreon!
And thanks to everyone who contributed to CLEO Redux, directly or indirectly.
0.9.4
- 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 ofRuntimeInit
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 useCLEO.debug.trace(true)
. To disable tracing useCLEO.debug.trace(false)
. __dirname
is nowconst
and can not be changed- static methods have been excluded from fluent interface (can't be chained with other methods)
0.9.3
- 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 withimport * 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
andMemory.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 likeREAD_INT_FROM_INI_FILE
orLOAD_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
. Usenative
instead. - rename
GAME
variable toHOST
(GAME
is still available for use but it's recommended to update older scripts)
Game | File | Minimum Required Version |
---|---|---|
GTA III, re3 | gta3.json | 0.218 |
GTA VC, reVC | vc.json | 0.220 |
GTA San Andreas (Classic) 1.0 | sa.json | 0.236 |
GTA III: The Definitive Edition | gta3_unreal.json | 0.213 |
Vice City: The Definitive Edition | vc_unreal.json | 0.215 |
San Andreas: The Definitive Edition | sa_unreal.json | 0.220 |
0.9.2
- 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
[
,]
0.9.1
- 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 returnundefined
when failing, e.g.DynamicLibrary.Load
orChar.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
):
/** Executes a named command with the given arguments */
declare function native<T>(name: string, ...args: any[]): T;
const lib = native("LOAD_DYNAMIC_LIBRARY", "test.dll");
- 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
INSTALLATION STEPS
https://github.com/cleolibrary/CLEO-Redux/#installation
BREAKING CHANGES
Game | File | Minimum Required Version |
---|---|---|
GTA III, re3 | gta3.json | 0.208 |
GTA VC, reVC | vc.json | 0.210 |
GTA San Andreas (Classic) 1.0 | sa.json | 0.210 |
GTA III: The Definitive Edition | gta3_unreal.json | 0.210 |
Vice City: The Definitive Edition | vc_unreal.json | 0.212 |
San Andreas: The Definitive Edition | sa_unreal.json | 0.216 |