self refers to the same table when it is called the way you did, if it is with dot it does not work Will give nil. That’s all, more information: Functions | Roblox Creator Documentation
self is a way to refer to the table you’re performing a method on. Doing something like “Instance.Clone(Instance)” is the same as “Instance:Clone()”. The only difference is that methods that use the colon like :Clone() pass self automatically, while using Instance.Clone(Instance) means you need to pass the Instance itself manually