As a Roblox developer it is currently impossible to copy and paste properties and values from multiple game objects to another without inputting them manually. An example of this is copying the lighting (Appearance, Data and fog) values all at once into another game with both tabs open.
Adding this feature would speed up time for developers and reduce many steps to duplicating these properties and values in other games and objects.
Here is an example of the potential look of this feature.
Please include use cases. You have described what you want to do, but not why. Why are you copying lighting settings between places so often? Why do you want to copy properties instead of duplicating the object when possible?
Making UI. To make everything look and feel right, I constantly have to adjust any items to look like the others. This gets old really fast, especially when I have to insert a new element and tediously change each property of it to match the others.
Copying lighting. I like to take screenshots for my games in separate places and need the lighting to match up. Especially with FIB, itās very annoying having to copy each lighting setting manually back and forth.
Building. I was making a map the other day with tons of windows that were all specific colors, materials, and transparencies. Whenever I could not just copy/paste and needed to make a new part, I had to manually set all of its properties. Gets old very fast.
Is there any reason you cannot use the tags feature and a specialized plugin or the command bar for the first and second? I know thatās slightly more work but it seems easy enough to me. Easier than Roblox adding this anyways.
The tags feature is really useful because you can just tag an Instance and then grab all of them at a later date using the CollectionService. You could have it copy the properties of a selected object to all of the other objects that shared the same tag.
Or you could even just use currently selected instances and copy to them. Would be up to you.
And as for manually updating the propertiesā¦ You could use an API dump json from online (I recommend this one that Clonetrooper maintains on github) to manually generate a list of properties for every class. It would be relatively quick and painless.
For the sake of answering your question though @Intended_Pun, you can index Instances like any other Lua data type. So game[āNameā] is the same as game.Name.
You could probably still use Selection for this what with PluginActions being a thing but Tags not behaving like that puts a damper on my idea. That sucks.
@Intended_Pun@Dekkonot Tags work in edit mode but they wonāt automatically update the appearance of the object. You have to run a script to iterate through all of the tagged objects and update their appearance manually. Unless youāre running a plugin that looks for that tag and modifies the part (not scalable to generic use), thereās no way to run a script to do this in Edit mode.
Ah. Yes thatās the assumption I was operating under. My thought wasnāt that they would do it automatically, just that it would be an easy way to ātagā everything that needed to have the same set of properties. Upon further reflection this is a bad idea, or course, but such is the way of it.
Regardless I can see a use for this feature because even though itās doable using Selection and/or tags, itās not going to be efficient and it would be easier to have it built-in. All three of Intended_Punās use cases are valid to me and I would probably use this for basically that were it added.
The proposed feature is self explanatory and there are endless uses. To answer your question though, if I want to apply a material, color or any appearance change to other items in the game Iād rather copy it once instead of changing those attributes several times separately. I already duplicate items in foresight but when they need to be changed, this feature will help with that. The lighting example was just what sparked this idea.
Yes, I could make 99 baseplates and manually copy over the configurations of another game onto these 99 baseplates, so that I have 100 files with the exact same content. Endless uses for the feature perhaps, but most are not particularly worth implementing the feature for. This is why you write down the significant ones that you actually need solved.
Always be specific, no exceptions. Donāt assume something is self-explanatory: more often than not it isnāt, or there may be a better feature they could implement to solve your use cases, but they donāt know unless you write about them (rather than the specific solution that may be a worse way to solve your use cases).
When working with UI, there are a lot of UI instances that share common properties such as background / border color and transparency. I often want to carry these common properties between different instance types so my UI is visually consistent.
In some cases, copy and pasting instances with the properties I want either isnāt easy, or just doesnāt work:
The type of instance I need might not have been made yet, so I need to manually input all properties by hand
An instance styled the way I want exists but has children and I need to specifically remove all of its children
An instance I want to restyle has children and to restyle it I need to copy the instance with the properties I want, clear its children, and move the children from the old instance to the new properly styled instance
Being able to copy and paste properties between instances would significantly improve my workflow in these situations.
When starting up a new place, I sometimes want to carry Lighting settings over from another place. In fact, I have a small library of rbxl files with nothing but Lighting settings on an empty baseplate simply so I can quickly add attractive lighting settings Iāve already designed to a new project.
To do this, since I cannot copy the Lighting service between places, I need to manually fill in each property of Lighting by hand while looking between two different Studio windows, which is very tedious.
In some rare occasions while debugging my games I need to move subsystems out into isolated baseplates. My code often depends on specific service settings, and since I cannot copy and paste most services, I need to carefully set properties on Workspace, Chat, SoundService, ServerScriptService, Players, etc, so my code runs the same way it does in the actual place. It would be much faster if I could copy the properties of key services instead of carefully inspecting each service and mirroring properties.
Alright well the only uses I could think of are for building because thatās all I do in Studio. However, Iām sure there are more seeing that this post is getting some attention. The primary use of this feature is to save on building time. No need to get upset, Thomas.
I myself would still find this feature useful in studio for every aspect listed in replies. Weāve gotten a lot of great updates but things such as this should be looked at as a possibility.