Welcome to official ev0lve.xyz API documentation.
Automatic script sync
BEFORE UPLOAD: please read rules about uploading here
You can use forum's Scripts section to sync scripts you like. Simply subscribe to script you like and it will be downloaded automatically when you load cheat or refresh the list. When you unsubscribe the script, it will be deleted from the disk.
Creating basic script
To begin with extending ev0lve, you have to create a script file first. Go to
*game_path*\ev0lve\scripts and create a file with
.lua extension. After that you can enable your imagination and create amazing scripts!
Loading and unloading
To load/unload scripts, go to Scripts tab and select a script you want to interact with. Then click load or unload button to run/stop the script. Note, if you have syntax errors/runtime errors/etc script will be unloaded automatically and error will be printed to the game console.
You can create menu elements using gui namespace. Keep in mind, all elements you create are available only in Scripts tab. All custom control values are automatically saved into cheat config (obviously loaded too).
ev0lve API supports
ffi library that is used in LuaJIT. Usage: here
Tips & tricks
- Keep your code clean and readable. It will be easier for community to help you if you get any issues or understand how your script works.
- Never execute long-running stuff in
on_paintor other constantly called callbacks - it will significantly slow down your game.
- Comment your code but don't overdo it. The reason is similar to 1st tip.
- Instead of checks for executing something only once after menu control's value was changed in a constantly called callback, you can add callbacks to menu elements themselves and achieve the very same result. Along that it will speed up code execution and will be easier to read.
- It is better to cache functions that are being called really often - it will speed up script execution.
- Follow Lua's code style (2-4 spaces identation,
is_before boolean variable, lowercase namings,
snake_casefor function naming,
PascalCaseclass names. Read more: here)