Lua is implemented in MediaWiki wikis using the Scribunto/Lua extension and stored in resource pages using the Module: namespace.[1]
Create your first Lua script
To create your first Lua script:
- Navigate to Module:Sandbox/Username, where Username is your Fandom username.
- Clear all existing code.
- It's a sandbox. Everyone is free to play in their sandbox.
- Add the following code and save the page:
local p = {} function p.hello() return 'Hello!' end return p
Test your first Lua script
To test your first Lua script:
- Navigate to either the Dev Wiki:Sandbox page, or your own user or sandbox page.
- Add the following code and save the page:
{{#invoke:Sandbox/<Username>|hello}}
The result should be:
Hello!
Edit your first Lua script
To edit your first Lua script:
- Return to the Module:Sandbox/Username.
- Edit the line with
return 'Hello!'
and add your name inside the single quotes. You should end up with something likereturn 'Hello Lua!'
. - Save the page.
- Return to the sandbox test page you used above to test your changes. Using the module's talk page is very convenient for quick testing.
- Refresh the page to see your name returned from the script.
The result should be similar to:
Hello Lua!
Understand your first Lua script
Now that you see what the script does, it's time to understand how it works.
local p = {}
creates a local table or array for your code and names itp
.function p.hello()
adds a function namedhello
to the table. Functions can be invoked (called) by name from outside the module.return 'Hello!'
returns the stringHello!
when the function is invoked (called).end
ends the function.return p
returns the code table to whatever process loads this Lua module.
The code that runs the script includes:
invoke:
invokes (calls) a Lua module, and loads somethingSandbox
specifies the name of the module to be loaded.hello
specifies the name of the function inside the module that is to be invoked (called).
{{#invoke:Sandbox|hello}} | Keyword | 1st Parameter | 2nd Parameter |
Code | #invoke: | Sandbox | hello |
What it does | specifies action - here load module and implement function. | specifies the name of the module to be loaded. | specifies the name of the function inside the module that is to be invoked (called). |
Conclusion
Congratulations! You've now created, tested, edited, and understood your first Lua script.
Learn more
- See Wikiversity:Lua for more lessons
- See Wikibooks:Lua for lua basics
References
Text above can be found here (edit)