This thread serves as an index for my lunalua tutorial series. The series is designed for SMBX2 builds starting with the MAGLX3 build.
If you have suggestions for future episodes, please post them below. I'll try to answer questions on each episode to the best of my ability in the respective comments section.
If you'd like to just have a list of the individual episodes, you can take a look at the playlist:
https://www.youtube.com/playlist?list=P ... eONYCNMzI_
: Finding your way around the editor
No lua in this episode, hence Episode 0. The main focus point is addressing the most important elements of the PGE editor, to give newcomers an easier time finding their way around it.
We discuss the basic setup of the standard luna.lua file and delve into a few snippits of code that can be used in order to create effects within the SMBX game.
This episode introduces the basic concept of variables and variable manipulation. Numbers are used in order to make a timer count down, and the concept of a table is briefly touched upon. Tables are more elaborately used in future episodes, whenever a  or . is used in our code.
: Practical use of variables
Knowing what a variable is is fine and all, but what are the extents we can use them for? In this episode, I dive into some easy manipulation of Boom Boom in order to show how through the use of variables and lua code, a boss fight can be quickly and easily enhanced.
: Augmenting an NPC
Now that we know that NPCs can be manipulated, let's work on a piece of code where NPCs run additional behaviour for each instance. In this episode, a Galoomba is made more to act like its winged companion using pnpc. We even take a look at edge cases such as projectile generators, which form an important basis for creating your own custom NPCs in the future.
: Saving data
Elaborating on the concept of tables as containers for storing variables, I introduce the new saving mechanisms we introduced in the MAGLX3 build. In this episode, these saving mechanisms are used in order to make Dragon Coins save permanently if all have been collected in a level in a single playthrough. The resulting code is structured in a way in which it's applicable to all levels in an episode.
Ever wanted multi-section or multi-direction autoscroll? This episode covers various things you can do using autoscroll.lua, including that!
Continuing the detour across various included libraries, this episode explains how to use the new darkness feature that can be used for dark caves and dark grasslands alike.
: Parallaxing backgrounds
The parallaxing system has been reworked for the MAGLX3 build. This episode goes through an example setup in order to convey the idea of how to use this system. A few additions to the parallaxing background are made through code, in order to showcase runtime changes to the parallaxing background's properties.
: Writing a library
Now that we have taken a closer look at several libraries, let's take a look at how one of these works in detail. Finally, a library simulating Go Go Goomba!
: Sound and music [TEMPORARILY UNAVAILABLE]
Whether your goal is multiple custom tracks in a section or replaced sound effects throughout an episode, this episode of lunalua tutorials covers all of that and more. Some of these features were present in Beta 3, others were not.
: Monitoring the player
We've taken extensive looks at how to augment NPC behaviour, but how would we go about augmenting player behaviour? This episode answers just that, by creating a double jump system from scratch. It serves as a fundamental building block for creating your own characters.
: Particle effects
Returning to the visual effects side of libraries, this episode goes through the process of creating a particle system and manipulating it through code.
: Drawing images
We've drawn a lot of images through helpful libraries like particles and paralx2, but those cases were very function-specific, so let's take a shot at getting our own spritesheet into the scene! This tutorial covers basic image drawing and the basics of sprite objects using the Sprite class, including rotation functionality.
: Optimizing code
Kind of an "End of Chapter 1" to the tutorial series, as I round out this week of recording with what I consider the last major topic to discuss at this stage. Presented are 8 code examples that focus on code organisation, object creation, and optimizing for performance. This episode also introduces unctions as the last variable type I had previously omitted by name, and we create our own ones in order to make our life easier.
This is an "End of Chapter 1" video in the sense that a lot of what these cases stand for will flow into the general workflow as we tackle more advanced topics in this series.
ADVANCED SERIES - NPC PACKS
The videos in this series go through the process of creating an NPC pack. It's very helpful to have a fundamental understanding of various parts of lua and lunalua before attempting this. Episodes 1, 2, 3, 4 and 9 are key.
: Parachuting Galoomba
: Parachuting Bob-Omb and creating an AI file