WD2 ScriptHook: Script Table
Every Script has its own Script Table. It returns a Lua table that can be used for two things:
- Storing variables for the Script
- Callback / Event Handlers
Using the Event Handlers is also the only way to properly unregister event listeners from the Game's event system. We strongly recommend not using global variables or functions in Scripts, since these won't be properly garbage collected and could cause conflicts with other Scripts.
Script() in Action
This example illustrates how you can avoid using global variables & functions and how the Script() function can be used instead. Syntax:
local script = Script() script.my_variable = 1234 function script:PrintMyVariable() print(self.my_variable) end include("test.lua")
-- Prints 1234 twice print(Script().my_variable) print(Script():PrintMyVariable())
Check out this guide about Event Handling.