Copy Properties From Object

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.

image

42 Likes

I think this would be better to be called ā€œCopy Properties.ā€

I support either way.

4 Likes

Iā€™ll adjust that in the post! Thank you.

2 Likes

This would be extremely useful. I would even say the ability to copy similar properties from different types of objects would be neat as well.

7 Likes

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?

2 Likes

Hereā€™s my use cases:

  1. 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.

  2. 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.

  3. 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.

17 Likes

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.

  1. Never touched the tags feature. I donā€™t see how it would help me.

  2. Using the command bar is wayyyy more painful than manually copying/pasting in this case. So much typing and no formattingā€¦shutters.

  3. Even if I use a plugin, Iā€™d still have to manually set each property and every time Roblox adds one Iā€™d have to update the plugin

1 Like

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.

2 Likes

Tags are non-optimal for copying appearance because it canā€™t be previewed in Edit mode (it is only set in-game at runtime).

2 Likes

Tags can do that? If so then this feature request would be almost redundant.

That being said, you can grab those properties, but I donā€™t know how youā€™d be able to index them.

EDIT: Nvm tags are dead to me if they only work while the game is running

2 Likes

I did not know that! Darn!

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.

1 Like

@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.

3 Likes

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.

2 Likes

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).

1 Like

I would personally have many uses for this.


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.

3 Likes

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 often find myself manually typing over settings when making UI, support.

2 Likes

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.