Difference between revisions of "WDL ScriptHook: Script Table"
From Nomad DB
(Created page with "{{Page_WDL}} Every Script has its own ''Script Table''. It returns a '''Lua table''' that can be used for two things: # Storing variables for the Sc...") |
|||
Line 1: | Line 1: | ||
{{Page_WDL}} | {{Page_WDL}} | ||
− | Every [[WDL ScriptHook: Script|Script]] has its own ''Script Table''. It returns a '''Lua table''' that can be used for | + | Every [[WDL ScriptHook: Script|Script]] has its own ''Script Table''. It returns a '''Lua table''' that can be used for the following things: |
# Storing variables for the Script | # Storing variables for the Script | ||
# Callback / Event Handlers | # Callback / Event Handlers | ||
+ | # Access script-specific functions | ||
Using the Event Handlers is also the only way to properly unregister event listeners from the Game's event system.<noinclude> 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. | Using the Event Handlers is also the only way to properly unregister event listeners from the Game's event system.<noinclude> 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. | ||
{{Warning|For Mafia Definitive Edition, use [[MDE ScriptHook: Script Table|ScriptHook.CurrentScript()]] instead.}} | {{Warning|For Mafia Definitive Edition, use [[MDE ScriptHook: Script Table|ScriptHook.CurrentScript()]] instead.}} | ||
+ | |||
+ | == Config Values == | ||
+ | You can store persistent config values using the Script Table. [[ScriptHook: Script Config|Explained Here.]] | ||
+ | |||
== Script() in Action == | == Script() in Action == | ||
This example illustrates how you can avoid using global variables & functions and how the Script() function can be used instead. '''Syntax:''' | This example illustrates how you can avoid using global variables & functions and how the Script() function can be used instead. '''Syntax:''' |
Latest revision as of 11:33, 15 April 2021
Every Script has its own Script Table. It returns a Lua table that can be used for the following things:
- Storing variables for the Script
- Callback / Event Handlers
- Access script-specific functions
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.
For Mafia Definitive Edition, use ScriptHook.CurrentScript() instead.
Contents
Config Values
You can store persistent config values using the Script Table. Explained Here.
Script() in Action
This example illustrates how you can avoid using global variables & functions and how the Script() function can be used instead. Syntax:
Script()
main.lua
local script = Script()
script.my_variable = 1234
function script:PrintMyVariable()
print(self.my_variable)
end
include("test.lua")
test.lua
-- Prints 1234 twice
print(Script().my_variable)
print(Script():PrintMyVariable())
Event Handlers
Check out this guide about Event Handling.