There are 3 problems:
I want to manually set the texture position to a specific value so that I can accomplish a specific visual effect. This isn’t possible.
I used to have TextureSpeed ~= 0, and now I want to reset the position. This isn’t possible.
I want to write my own texture movement code. This isn’t possible.
All problems are solved with a texture position property
Setting TexturePosition every frame will have performance issue. That’s why we didn’t add it. It’s ok to add a function that clears the texture offset though.
How about two functions to get and set the texture position?
It’s the same with a new property.
Two functions is a performance issue? But they only do anything when the developer calls them, otherwise it’s the same behavior as now
Not all developers will be aware of possible performance cost. Anyway, we will consider adding that.
My 2c: Inexperienced developers will use features wrong no matter what safegaurds are put in place. Holding back experienced developers from making high quality games for the purpose of not confusing these people is counter productive.
Another option is to do something like BasePart.Position where the property change doesn’t fire the generic Changed signal, but you can still connect to it directly with GetPropertyChangedSignal.