This module allows you to create scripts in LUA with which you can change the executable, memory and even call in game functions. This means that you do not have to patch your executable to enable hacks such as an FOV changer. It also has build in support for asmJit with which you can generate machine code yourself and numerous other capabilities.
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou can upload this file to other sites but you must credit me as the creator of the file
Modification permissionYou are allowed to modify my files and release bug fixes or improve on the features so long as you credit me as the original creator
Conversion permissionYou can convert this file to work with other games as long as you credit me as the creator of the file
Asset use permissionYou are allowed to use the assets in this file without permission as long as you credit me
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou must get permission to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
Xeavin for writing article stub. Everyone who helped with testing. Drahsid and Xeaving for a lot of great ideas and feature requests ;)
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
Changelogs
Version 1.4.3
Requires FF12 External File Loader v1.3.11 or later
Fixed rounding of integers by sol::as
Added async execution
Made reads/writes to known memory areas much faster
Added parse function (without assembling code)
Xeavin updated battlback bindings
Fixed asmjit not allowing more than 32 labels in some scenarios
Version 1.3.0
Increases responsiveness of events in cases where a lot of events are being fired (may cause more cpu load)
Memory.readArray will now return a lua table instead of std::vector wrapper.
Changes to battle pack binding (thanks to Xeavin).
Added LFS support.
Make synchronous event and queue locks separate to solve issues with thread synchronization.
UnregisterEventSync now taking the right number of parameters.
Porting of text changes from new version of ff12-text.
Added the possibility to force close message window at any time.
Version 1.2.3
Updated lua sol2.
Finished the code that allows synchronous events to change argument values before passing them to the original function/next hook.
Added a few functions to call table (getCurrentMap, getPreviousMap, getCurrentMapIndex, getPreviousMapIndex).
Uncommented call.mapJump and onMapJump event.
Changed message.print and message.printw to be aware of both width and height instead of only text length (should fix some weirdness with not reopening a window when a number of lines changes).
Version 1.2.1
Fixed various issues and crashes manifesting on Windows 7.
Added most battle pack sections for easier live editing. (based on xeavin's CE script)
Version 1.1.13
Added a possibility to execute a code at a given address by memory.execute.
Added possibility for lua scripts to display messages using in game engine with message.print (non blocking) and message.printw (blocking) functions.
Added possibility to convert a given text to in game format using message.convert.
Minor fixes.
Version 1.1.4
Added time and frame time functions.
Added support for labels in memory address operands.
Version 1.1.2
memory.assemble functions now also return size
all memory.assemble functions can now register and use global symbols
added set of functions to register, unregister and get values of global symbols
added functions that allow to get module version from within a script and check whether minimum version requirements are met
Version 1.0.6
Changed the way auto assembler behaves when optimizing lea instructions.
Version 1.0.5
First public release.
Final Fantasy XII Lua Loader
This module allows you to create scripts in LUA with which you can change the game's executable, memory and even call in game functions. This means that you do not have to patch your executable to enable hacks such as an FOV changer. It also has build in support for asmJit with which you can generate machine code yourself and numerous other capabilities that allows you to modify game files in real-time like the battlepack.bin.
Since version 1.4.3, FF12 External File Loader v1.3.11 or above is required!
This module requires FF12 Vortex Game Support Extension version 0.8.0 or above (it should auto update in vortex). It also requires FF12 External File Loader (or rather, module loader part of it - available here).
The extension is still in early stages, but it already can do a lot of things. There is a lot of new features planned.