Alright @Downrest, calm it down a notch we can emphasize without sounding angy.
Well, yes. You did… The difference between what you want to happen and what happened is that:
Instance.new() is a function itself, which returns a <Variable>Instance (Variable in the sense of many Instances)
When you required CodeModule, you’re evaluating the CodeModule table and all of its members.
Due to the fact it’s evaluated and it’s not a callable member (function/closure), it is taken for its face value, which in this case, is the return of the method .new() from Instance.
Now in the case of the code I provided you, there’s a closure wrapping around Instance.new() that requires it to be called by external means, and it isn’t evaluated to execution immediately.
Anyways, hope the lesson helped to wrap your head around it.