Skip to content

Releases: cleolibrary/CLEO-Redux

1.0.5

15 Dec 15:50
@x87 x87
Compare
Choose a tag to compare
  • add TypeScript support
  • add support for commands using global SCM variables (e.g. counters or timers). See scm.ts
  • delete previously deprecated variable GAME. Use HOST 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 in FxtStore.insert and FxtStore.delete to true

SDK AND PLUGINS

  • IdeLoader 1.2: fixed a parser bug that prevented .ide files with a 2dfx 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


Thanks to DadlyPrey, BroXe, and Junior_Djjr for supporting my work on Patreon!

1.0.4

17 Nov 19:58
@x87 x87
Compare
Choose a tag to compare
  • 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 have CLEO\myscript\index.js and CLEO\myscript\dep.js, changing either file reloads index.js
  • fix a crash on GTA III and GTA VC when a script continuously creates and destroys blips #75

BREAKING CHANGES

1.0.3

25 Oct 12:36
@x87 x87
Compare
Choose a tag to compare
  • 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 to true allows usage of mission-only commands like 00D9 STORE_CAR_CHAR_IS_IN or 00D8 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

1.0.2

09 Sep 21:05
@x87 x87
Compare
Choose a tag to compare
  • 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

1.0.1

19 Aug 21:14
@x87 x87
Compare
Choose a tag to compare
  • 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, and Manifest to HostId enum
  • update Input plugin to v1.3:
  • new SDK method OnShowTextBox to register and run callbacks on a ShowTextBox 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 to PadId to avoid conflicts with a static Pad class.

1.0.0

01 Jul 17:06
@x87 x87
Compare
Choose a tag to compare
  • 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


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

12 May 20:38
@x87 x87
Compare
Choose a tag to compare
  • 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)

0.9.3

22 Apr 13:19
@x87 x87
Compare
Choose a tag to compare
  • 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)
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

04 Mar 14:38
@x87 x87
Compare
Choose a tag to compare
  • 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

22 Feb 04:11
@x87 x87
Compare
Choose a tag to compare
  • 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):
/** 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