Tag Editor Plugin

This is a plugin for editing CollectionService tags.

This plugin allows you to create tags, and then assign them to objects in your game. You can also visualize and view a list of what objects have a given tag, and so on. It’s become an essential tool in many game developers’ toolboxes.

What is CollectionService, and why use it?

CollectionService is an API that allows objects to have tags put on them. Scripts can then get a list of all objects with that tag quickly and easily.

CollectionService | Roblox Creator Documentation

One of the major usecases is to avoid copying and pasting scripts throughout your game, making them easier to update and easier for level designers to work on a team.

Features

Keep track of your tags

Having an explicit tag list helps avoid typos, since you can just click on the checkbox to add a tag to an instance. The checkboxes sync with your currently selected instances.

Custom icons

Includes a set of over 700 icons from the FamFamFam set, an Emoji picker, and a way to use your own images as icons.

World View

The plugin offers built in visualization by selecting the “World View” button.

image

When you toggle this, it will show objects with tags depending on how you have them configured.

You can configure how each tag renders, with the following options:

  • Selection box (filled or outline)

  • Floating icon

  • Floating text label

  • Sphere

  • None

You can also quickly toggle a tag on and off by clicking the lightbulb button on the main tag list.

Enabling the world view also makes it so hovering a tagged object with your mouse will create a tooltip showing what tags it has. It also shows the name and class.

image

Color picker

The color in the world view mode can be configured with a built in color picker. If you have the ColorPane extension with the API enabled, then it will use that instead.

image

Instance view

The instance view shows a list of all of the instances with a given tag, which allows you to quickly select one or more of them. The selection syncs with Studio’s built in object selection.

image

Right Click Menu

Allows you to quickly configure tags.

image

154 Likes

My team’s been using during the development of our current project. It’s certainly made things much easier for us. I’m glad v2 is out!

12 Likes

My current projects use a lot of interactive objects and this plugin’s always made it a lot easier (fun, even) to create new things. Looking forward to using this even more with the improvements you’ve made- it’s THE plugin to use for CollectionService.

9 Likes

This really makes developing with CollectionService so much easier, a truly great plugin.

I can’t wait to see what you do when PluginGuiService is officially released.

3 Likes

The CollectionService is probably the greatest thing to ever grace my workflow. It’s made handling a lot of objects at the same time a breeze. I’ve found myself using the Tag Editor in my UI a lot, surprisingly enough. Thank you Tiff!

2 Likes

Minor suggestion: For World View, could you hide parts that aren’t parented under workspace? I tag my maps and it’s not helpful seeing their boxes once I parent them to ServerStorage.

5 Likes

This looks cool. Is there functionality to pick up existing tags not created using the tag editor? Right now I can see them when I hover over using world view but they aren’t appearing in the tag editor list.

1 Like

I’ll add this next.

1 Like

Why do you have tags that weren’t created using the tag editor, and why do you have so many of them that it’s not worth manually importing them?

I also want to note that to discover unknown tags like this requires scanning the entire datamodel for tagged objects, which I would have to do on place load, and also watching DescendantAdded on game, which will slow everything down a little.

I’ve made a beta version of the plugin which has:

  • Support for visualizing tagged attachments
  • Does not visualize objects outside the workspace
  • Performance improvements

In order to make sure I can release it without breaking everything, I’ve made a separate beta channel plugin so that you can try it out, and if there’s bugs, you can report them to me and then go back to the stable version. It’s possible to have both versions installed side by side, they’re differentiated by having the beta version label its toolbar with “[beta]”.

3 Likes

I see your point, but I think it’s reasonable to assume developers may wish to transition from different plugins to this plugin or wish to run this in parallel with other setups.

For example, we’ve used a different plugin before to brush large areas of parts with material tags.

I see the goal is to provide a single platform for tagging but it’d be nice to cater to people who have more niche uses that require other plugins. Cross compatibility is nice.

Maybe a refresh button (rather than real-time or on-load) that’d scan the DataModel and add in tags. Then it’s there for people who need it and doesn’t impact anyone who doesn’t.

Plugin’s great either way, just saying it’d make it a little more useful for me?

3 Likes

I’ll add this to my todo list. I think there’s two parts I need:

  • Restore the v1 functionality where unknown tags are displayed in the tag list, allowing you to easily import them by clicking on them.
  • Add an “import all unknown tags” button that’d work like a refresh button as you said.

If you’re writing your own custom tooling which is creating tags, one thing you can do is to edit the tag list. The tag list format isn’t internal to the plugin or very complex, and the plugin automatically detects changes there. Just create a folder named after the tag name, and parent to ServerStorage.TagList.

1 Like

Right now the tag editor assumes that every tag I apply to an object is useful enough to apply to everything else to the game, whereas sometimes I just want something more local. For instance, I may add the tags “Large”, “Medium”, or “Small” to spider eggs to determine what kind of spider spawns from them. Those tags don’t apply to many other things in my game, so I don’t want them in the global list.

Right now I just let them populate the global list, but it would be nicer if the tag editor also worked as an individual property editor for objects. I don’t need the tag editor to know that there’s a “Medium” tag when it starts up – I just need to be able to manually add/remove that tag from individual objects.

3 Likes

This is awesome!

Little bug: Clicking the ‘X’ on the UI to close the Tag Editor doesn’t deselect the plugin button

1 Like

I would probably use something other than tags for that, since those are really more like properties. Value objects are pretty ugly though…

1 Like

Not sure if this is intentional, but after pressing delete once, the delete button stays at the “Are you sure?” state.

2018-09-04_06-06-27

(this is the beta channel)

2 Likes

Can you please add a way to set an icon for multiple tags at once? Or a way to set the Icon of a group, which effectively sets the icon for every tag object in that group?

Released v2.1.0 - Adding dark theme support and a redesigned UI!

Full changelog: Release UI redesign & Dark Theme update · tiffany352/Roblox-Tag-Editor · GitHub

7 Likes

Yes! Dark theme! :smiley: Everyone that made this happen is awesome

2 Likes

Hey, how can I integrate this while developing on Rojo, objects loose their tags everytime I disconnect or connect. I really dont know how to approach this problem, so if anybody knows, please let me know.