Lua bindings for Total War: Attila
Load the DLL from the campaign script — campaigns/<campaign>/scripting.lua — exactly as the test suite does.
twdll hooks game singletons (world, campaign UI, campaign model) on first load; those are only constructed once a campaign world exists. Calling singleton-dependent functions any earlier (e.g. from the main menu or a global script) can return nil or crash.
Not every function requires this: plain utilities (twdll.core.Log, twdll.core.GameBuild) and functions that read fixed module offsets work regardless of where they are called. This is how the current hook architecture works, not a permanent contract — it may change in the future.
Modules
| twdll.core | |
| FACTION_SCRIPT_INTERFACE | |
| UNIT_SCRIPT_INTERFACE | |
| twdll.world | |
| twdll.campaign_ui | |
| MILITARY_FORCE_SCRIPT_INTERFACE | |
| twdll.model | |
| twdll.battle | |
| REGION_SCRIPT_INTERFACE |