Tag Editor Plugin

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.

How do I add instances? I know how to make instances, but not how to connect them to the UI…? (Not sure how to call it)

Does anyone know if this plugin is still being worked on? If not, is there a better alternative to use?

It appears this plugin has broken to some extent with recent updates (can’t change tag colors, lots of studio errors, etc)

1 Like

Are there any plans to fix this plugin? Several features within it are completely broken and have been for ~six months.

  • Instance list showing 0 instances, even if there are some (depends on the tag)
  • Instance list back button not working
  • Cannot change Tag Visualisation color by any means
  • Studio Tag Visualisations extremely buggy (some won’t turn off, icon will show the wrong state, some are randomly on when you launch studio) perhaps related to Team Create

Edit: This plugin is so valuable that I wish it were a default plugin, it’s hard to use certain workflows without it.

4 Likes

bump - the tag window doesn’t open anymore & world view is broken on my studio, making it impossible to use and I’ve tried reinstalling. A bit disappointing because developing my game heavily relies upon being able to visually see and modify tags

2 Likes

WOW! This is extremely useful, thank you very much!

I just released v2.1.1 which fixes the issue introduced this morning by the Studio update.

6 Likes

I’m super pumped to see an update for this- are there any plans to fix some of the other features that are broken?

Mostly the issue is with the tag visualizations being super buggy- currently, I can’t get all of them to disappear no matter what I do. Every time I re-enable World View a random selection of tags is visible, and upon trying to hide these often the Tag Editor window will completely break, not allowing me to select any tag properties.

Output

image

I just released a new feature update, v3. It also includes fixes for several bugs that have been around for years.

Please let me know if there’s any new issues, or any old issues that haven’t been fixed. Showing the error message or steps to reproduce the problem helps me a lot with fixing them.

4 Likes

I think all the tag visualization issues you’ve run into should be fixed now. Not sure about the instance list though, I haven’t been able to reproduce the issue.

1 Like

Seems to have an issue with World View on parts inside of a model, in a model, … , in a model not showing it’s SelectionBox, Outline, or showing that it’s a part of the Collection when hovering over it?

As a fix for this,
TagEditor > Plugin > Components > WorldView > WorldProvider

If a primarypart still wasn’t found after going through the Model’s GetChildren, go through the Model’s GetDecendants then.

for obj, _ in pairs(self.trackedParts) do
	local class = obj.ClassName
	if class == "Model" or class == "Folder" then
		local primary = obj.PrimaryPart
		if not primary then
			local children = obj:GetChildren()
			for i = 1, #children do
				if children[i]:IsA("BasePart") then
					primary = children[i]
					break
				end
			end
			if not primary then --really dig for an item to attach to...
				local children = obj:GetDescendants()
				for i = 1, #children do
					if children[i]:IsA("BasePart") then
						primary = children[i]
						break
					end
				end
				if not primary then
					warn("No primary item was found for "..obj:GetFullName())
				end
			end
		end
		if primary then
			local entry = {
				AngularSize = partAngularSize(primary.Position, obj:GetExtentsSize()),
				Instance = obj,
			}
			sortedInsert(newList, entry, sortFunc)
		end

Edit: Unless that it is exactly intended to only collect it’s own items inside the Model as the Collection, I instead rather treat everything inside a Model Collection as belonging to that collection.


To also fix the ToolTip, the info of the hovered over model’s Collection
Tag Editor > Plugin > Components > TooltipView

after “for _i = 1, 10 do”, if a Collection hadn’t yet been found, then try checking through the first RayCast .Parents

	--if a setState wasn't found, check what the mouse is hitting
	-- and scroll through the Raycasted parents until hit workspace or no parent
	if not part then
		local mouse = UserInput:GetMouseLocation()
		local ray = camera:ViewportPointToRay(mouse.X, mouse.Y)
		local params = RaycastParams.new()
		params.IgnoreWater = true
		params.FilterType = Enum.RaycastFilterType.Blacklist
		local direction = ray.Direction.Unit * 1000
		local cast = workspace:Raycast(ray.Origin, direction, params)
		local result = cast and cast.Instance
		if result then
			local parent=result;
			for _i = 1, 20 do
				if parent==game or parent==workspace then
					break
				end
				parent=parent.Parent; --loop out of the parent of the currently selected item.
				local parentTags = Collection:GetTags(parent)
				if parentTags and #parentTags > 0 then
					part = parent
					tags = parentTags
					break
					-- future suggestion is to probably check
					-- for MULTIPLE collections that the part
					-- is probably inside of.
				end 
			end 
		end
	end
end
self:setState({
	Part = part,
	Tags = tags,
})

Example of what this fixes when the Model is the only one in the ‘Collection’ with its following Children and Decendants


before


after

1 Like

This is awesome. However, the visualization for Attachments is quite large. Could you please add a setting to configure that?

Also, the Tag Window can’t be toggled from outside the world view (ClickableWhenViewportHidden is false), which is mildly annoying because I sometimes do things in the Explorer while in a script view.

EDIT: The plugin also doesn’t preload images, resulting in certain things (i.e. indeterminate checkboxes) taking a couple seconds to load when they are first encountered.

EDIT 2: While trying to fit the plugin into my layout, I’m actually becoming quite concerned about the relatively large font size. Look at it compared to the Explorer: