Scripts When using CLEO, new scripts written in Sanny Builder or other script editor can be added to the game without having to start a new game. All that is required to add such a script to the game is to place it in the CLEO folder. The script will start working after the start of the game. To remove the script from the game - delete the corresponding file.
All scripts are written by game fans and are not related to CLEO developers. Although the CLEO library itself should work with different versions of the game, individual scripts may have their own limitations and requirements for game files. For questions about the performance of a particular script, please contact its author.
Opcodes CLEO 4 adds 100 new script commands to the game that allow you to work with external files, change data in the game's memory, call game functions with your own parameters, and much more.
To evaluate new achievements and use them in your scripts, install the latest version of the CLEO 4 library.
Plugins CLEO plugins are regular DLL files, but with the extension .CLEO. When launched, the CLEO library looks for files with the given extension in the CLEO folder and tries to load them. In case of successful loading, the plugin starts working and performs the functions for which it was written.
CLEO 4 allows you to create new opcodes using the CLEO SDK source codes. Three examples of such plugins can be found in the library starter kit.
Plugins are installed and removed in the same way as scripts. A list of available plugins can be found at this page.
Installing CLEO 4 is distributed as an automatic installer. To install the library, run the installer and follow its instructions.
CLEO 4.3 supports three versions of GTA San Andreas: 1.0, 1.01, 3.0 (steam).
CLEO requires the installation of ASI Loader, which comes with the library. ASI Loader replaces one of the original game files 'vorbisFile.dll' with its own, so make sure you make a copy of this file.
Other game files are not replaced, but the following files and folders are added: - cleo (CLEO folder where all scripts and plugins are copied) - cleoFileSystemOperations.cleo (file plugin) - cleoIniFiles.cleo (INI plugin) - cleoIntOperations.cleo (plugin for working with integers at the bit level) - cleocleo_save (CLEO save folder) - cleo.asi (CLEO library core) - bass.dll (library for working with audio) - vorbisHooked.dll (Silent's ASI Loader) All plugins are optional, but their functionality can be used by various CLEO scripts.
Compatible with CLEO 3 CLEO is constantly improving and expanding over time. In very rare cases, some scripts written for CLEO 3 may not work with CLEO 4. To do this, change the script file extension (usually '.cs') to '.cs3'. CLEO 4.3 will work with such scripts in a special mode, which includes changing the behavior of some script commands. At the same time, in the vast majority of cases, CLEO 3 scripts work with CLEO 4 without any problems, and the use of compatibility mode is not required.
Fdnjhs The author and original developer of the CLEO library is Seemann.
The development of CLEO 4 started Alien, now Deji.
The developers are not affiliated with Take 2 Interactive or Rockstar Games and are not responsible for any negative consequences that may arise from the use of this product or any other products distributed with the library. Use it at your own risk.
Information about changes in version 4.3 and a more detailed description of CLEO features can be found in the readme files that come with the library.
Thanks Stanislav Golovin(a.k.a. listener) - for great work in researching GTA games. mfisto - for alpha testing of the CLEO 4 library, advice and support NTAuthority and LINK/2012 for help with CLEO 4.3.
Show SpoilerHide Spoiler
CLEO 4 -------------------- Change Log
-- 4.3.15 --
* Improvemed compatibility fix for opcodes 0AE1, 0AE2 and 0AE3 with incorrect find_next usage
-- 4.3.14 --
* Fixed 0AAA only returning custom scripts
* Fixed many things which use the 'SCM Block' or 'Mission Local Storage' space
* Fixed parameters being passed to script local storage instead of mission local storage through 0A94
* Fixed potential problems with iteration through the script queues (may cause rare and hard to trace bugs)
-- 4.3.13 --
* Fixed crashing when starting a new game after a game has already started with CLEO scripts installed
* Possibly fixed other issues with starting a game with CLEO scripts installed
-- 4.3.12 --
* Fixed string parameter skipping in 'SkipOpcodeParams' used by CLEO plugins
* 0AC8 now returns a NULL value to the output var if allocation failed (as it did before 4.3a)
* 0AC9 now checks the memory was allocated by 0AC8 before attempting to free it
* FXT references are now case insensitive (as they were before 4.3a)
* File operations now check the input handle isn't null (as it seems was the way before 4.3a)
* 'Loaded mission' status now reset on new/loaded game (as it was before 4.3a)
* Scripts no longer load prematurely (like before 4.3a)
* Resolved conflicts with other menu hooks such as 'HUME'
* Other minor tweaks
-- 4.3.11 --
* Fixed crash with 0ADA in scripts beginning with an opcode ending in '00'
-- 4.3.10 --
* Improvements to opcodes 0AE1, 0AE2 and 0AE3 - now loops around the pool even when the 'find_next' flag isn't used correctly
* Fixed 0AD2 not returning peds targetted with the mouse, while targetting with a pad worked
-- 4.3.9 --
* Will now be able to start a CLEO mission after recently finishing a standard mission
* Will no longer error & terminate when scripts fail to open and instead simply log the error
* Will no longer terminate on warnings
* No longer includes paths in automatically generated script names (e.g. cleodirdemo.cs is now named 'demo.cs' and not 'dirdem')
* Improved handling of script load errors
-- 4.3.8 --
* Fixed crash which would occur when missions were ended with 004E
-- 4.3.7 --
* Custom missions launched by CLEO scripts now inherit their compatibility mode - possibly fixing incompatibilities with mods using custom missions
* Text and texture/sprite draws are now script-dependant (doesn't affect main.scm scripts)
-- 4.3 --
* Replaced code which dynamically allocated and deallocated memory for script parameters every time 0AA5-0AA8 were called with static arrays
* Removed a script execution loop replacement which wasn't used for anything important and weirdly only worked with 1.0US that caused crashes with script logging plugins
* Added support for Steam (v3) versions of gta_sa.exe
* Prevented the local storage from being initialized in SCM functions when the script is in CLEO 3 compatibility mode ('.cs3' extension)
* Updates to behavior of the following opcodes:
0A99 CHANGE_DIRECTORY can now correctly change to the program directory
0A9A OPEN_FILE now uses a 'legacy' mode when passing an integer as the mode parameter for compatibility of CLEO file handles and SA file handles Note that you should really not pass CLEO file handles to game functions. However, this legacy mode now ensures that the handles are compatible. Other file functions have also been updated ensuring that game file handles are passed to relevant game functions. It is recommended to not rely on passing files to game functions and instead use CLEO 4's in-built file functions in the future.
0AD1 CALL now accepts string input, which is passed as a string pointer following string convention
0AD4 SCAN_STRING now returns a condition result
0AE6 FIND_FIRSt_FILE now accepts string array output
0AE3 FIND_ALL_RANDOM_OBJECTS_IN_SPHERE now ensures no fading objects are returned and returns -1 instead of 0 on failure
0AE2 FIND_ALL_RANDOM_CARS_IN_SPHERE now ensures no script vehicles or fading vehicle are returned and returns -1 instead of 0 on failure
0AE1 FIND_ALL_RANDOM_CHARS_IN_SPHERE now ensures no script characters or fading characters are returned and returns -1 instead of 0 on failure
0ADF ADD_TEXt_LABEL now updates existing text labels if they already exist
0AD6 IS_END_OF_FILE_REACHED now returns true if a file error occured
0AD2 GEt_CHAR_PLAYER_IS_TARGETING now returns -1 instead of 0 when no target is found
0AB5 STORE_CLOSESt_ENTITIES now ensures no script entities or fading entities are returned and ensures the player ped is not returned