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?
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.
Of course, you can ignore OOP best practices and just use the code examples here: https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html For small projects, ignoring the rules is okay.
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
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
Edit: and to make it easier to manage all my base resources I used a handy plugin https://godotengine.org/asset-library/asset/1479 (this was 3.X, I haven’t used the 4.X version)