[SR2] LuaExtended

LuaExtended
version 0.0.1

LuaExtended: Extending functionality for LUA

SR2_pc_TCkOARDSsm.jpg

Semi-experimental plugin that expands LUA functionality that I've wanted to add in Juiced but felt it went above it's scope
Currently allows for
• Compiling assembly hooks and standalone assembly from Lua with `CompileAssembly`, not as convenient as safetyhook but it works
• Reading and patching memory from Lua with typed helpers like `ReadI32`, `PatchFloat`, `ReadPtr`, etc.
• Optional `vp` / `dyn` read and patch routing
• Shared memory blocks with helpers like `MemoryCreate`, `MemoryFind`, `MemoryAllocate`, `MemorySetInt`, and more (these can even be used in the assembly hooking)
• INI file access from Lua with `IniOpen`, `IniGet*`, `IniSet*`, and memory binding support, ini is saved in gamedirectory/lext
• Input helpers like `IsMousePressed`, `IsMouseDown`, `IsKeyDown`, and `IsKeyJustDown`
• Loads loose _gs/_ui.lua files, and loose _gs.cts files (cts requires a loose file loader i.e Juiced atm defining (// city_name) in first line makes it only load for city_name and not other maps like multiplayer, like // sr2_city)

For actual function list, all of these are registered in both vint/game lua state
https://github.com/Clippy95/sr2-scripts/blob/main/lua_defs/luaextended.d.lua

Early release, Extended API may change and is not finalized until 1.0


Download and install Ultimate ASI Loader, dinput8.dll x32 suffices for SR2.
Drag and drop the mod's ASI into the game's directory or into a scripts folder in the same directory as the game.
ini is generated on game boot
 

Attachments

Last edited:
Back
Top