As a Roblox developer, it is currently impossible to set the default properties of objects that are inserted into Studio. All objects currently have their own preset defaults, but these are not always ideal for every person.
It would be very helpful to the development workflow if users could set the property presets per object type.
Example:
When I insert a ScreenGui, I always have to set ResetOnSpawn to false, and change ZIndexBehavior to Sibling. It would be awesome if I could right-click on a ScreenGui and click on something like āSave properties as defaultā.
Itād be nice to apply this same concept to the default baseplate file aswell. You could have a place already setup with pre-made scripts, FilteringEnabled already turned on so you donāt forget, etc.
All default property values are hardcoded in C++. There is no easy way to change everything to read those from some ādefault storageā upon construction.
Assigning property values post-construction has the same problem as other bulk methods: the order of assignments matters, but is unspecified.
Perhaps providing a way to change properties after creation would be enough? I think that could actually be accomplished via a plugin that just listens for instances being added and then changes property values accordingly.
I would be down to write a plugin for this. Thereās a lot of weird scenarios though that would have to be thought through. e.g. what if another plugin inserts an object? So gotta find a smart way to do it without interfering with anything else.
I donāt think there is a good solution to that. However, if you wanted to take this reeeealy far, you could design a PluginGui that acts as a replacement for ribbonbar. People could collapse the stock version and sticks yours on top instead. Youāll be able to add functionality easy.
If you wanted to keep it simple though you could make toolbar buttons called save and load or something. Probably not that necessary to be automatic.
Easiest thing I can think of is having a frame or two waiting period and only change properties to the defaults if the part is not modified after being created.
Still problematic. You canāt actually detect when an instance has been created, only when it has been parented to the DataModel. If my plugin generates something in nil and parents it to workspace when done, Iād only pick it up when it gets parented.
Thatās a good point and also the preferred way to set properties on an object. Hmm, Iām not quite sure if there is a method that would work better than a combination of my approach and checking if properties of the object match the object defaults exactly.