So scripts modify nodes. You can create a Sprite by clicking add new node, give the Sprite a texture, whatever, and it's a normal Sprite. Once you attach a script to it, it because a customized object, which inherits from Sprite. So it is a Sprite, but you have the option of adding new functionality on top to extend it. You can still access all the properties a Sprite has (in addition to the grandparent classes, like Node2D), plus whatever you add. If you instance an object, it is of the class of the script you added. Your class doesn't need a name, but you can add a name if you want. In either case, you have access to everything from the script (for example, functions you added), as well as all the functions and members of the base classes.