I am currently trying to implement a magic system, where a user can construct their own spells using spell components. What are recommended methods / structures to accomplish this?
I’ve done something similar in the past using custom resources, they’re easier to work with than a bunch of custom nodes/inherited scenes imo
https://gdscript.com/tutorials/classes/
Are you familiar with object orientated programming?
Basically you could create a class called Spell that acts as a blueprint. Add a variable for each property the blank spell needs to hold.
Then, in other classes, you create an “instance” of the Spell class, maybe called MyUniqueSpell and set its properties based on user input. You can have many different instances of the Spell blueprint; each with their own unique attributes.
In Godot, they say that Scenes can kinda behave as classes/blueprints too.
will this allow me to create an execution stack?
You mean a stack of Spells to use? Yes. You can create an Array or List of Spell Objects and easily go through them. https://docs.godotengine.org/en/stable/classes/class_array.html