This is because type checker gets angry because :Clone() returns an Instance and since the .Disabled property isn’t present in the Instance superclass, you have to use the : any type to silence it.
Yep, it’s type checking. It’s just a neat tool to help people if they don’t see anything wrong with their code and saves time if Luau thinks it’s likely to error.
I think it’s because :Clone is a function of Instance which means it would return type Instance whereas the .Disabled property is from BaseScript and since :Clone returns an Instance which isn’t always a base script, that’s why it happens. I could be wrong but that’s my guess.
That seems like a good explanation. I did a little digging earlier while trying to solve this and tried typing it as everything that Script inherits from. None worked.