Hello, I've ran into a problem when using a tool called 'LabelTool'.
The Label Tool is a flying text tool generator, which places BillboardGui Text Labels on parts, which can appear colourful, the tool is usually used in role playing games, like colony building games. The options of the colors, (textColor and outlineColor) can be changed by navigating to the left side and clicking a blank button, and clicking on a color, it will also preview how it will look if you change the colors, you may also change the text aswell. When done with all those, you can click on a part to snap the text ontop of it.
The tool itself is a HopperBin Class tool, before the 'FilteringUpdate' the tool worked properly, I've seen something on other questions about HopperBin is deprecated.
Look at the tool's instances here. Look at the tool's properties here.
OutlineColorPicker and TextColorPicker contains a bunch of colors, a button decal and a script. The scripts are all down below if you want to read them. I don't mind copying this as it's free-to-use.
Local Script contains:
wait() active = false local m1 local m2 local label = script.Parent.TextGUI local toolGui = script.Parent.LabelTool local play = script.Parent.Parent.Parent local box function click(targ) if targ ~= nil then if targ.Locked == false then if not targ:FindFirstChild("TextGUI") then local gui = label:Clone() gui.label.Text = script.Parent.title.Value gui.label.TextColor3 = script.Parent.tc.Value gui.label.TextStrokeColor3 = script.Parent.oc.Value gui.Parent = targ else local gui = targ:FindFirstChild("TextGUI") gui.label.Text = script.Parent.title.Value gui.label.TextColor3 = script.Parent.tc.Value gui.label.TextStrokeColor3 = script.Parent.oc.Value end end end end function hover(targ) if not box then box = Instance.new("SelectionBox") box.Color = BrickColor.new("Deep blue") box.Transparency = 0.5 box.Parent = script.Parent end if targ ~= nil then if targ.Locked == false then box.Adornee = targ box.Parent = game.Workspace else box.Adornee = nil box.Parent = script.Parent end end end script.Parent.Selected:connect(function(m) active = true toolGui.Parent = play.PlayerGui m1 = play:GetMouse().Button1Down:connect(function() click(play:GetMouse().Target) end) m2 = play:GetMouse().Move:connect(function() hover(play:GetMouse().Target) end) end) script.Parent.Deselected:connect(function() active = true toolGui.Parent = script.Parent m1:disconnect() m2:disconnect() end)
OutlineLabel textLabel contains this script:
local r = script.Parent.Parent.tc local g = script.Parent.Parent.oc local bin = script.Parent.Parent.bin.Value function change() script.Parent.TextStrokeColor3 = g.Value bin.oc.Value = g.Value end g.Changed:connect(change) function change2() script.Parent.TextColor3 = r.Value script.Parent.Parent.colorLabel.TextColor3 = r.Value bin.tc.Value = r.Value end r.Changed:connect(change2) script.Parent.Parent.textBox.Changed:connect(function() bin.txt.Value = script.Parent.Parent.textBox.Text end)
TextColorPicker has a script containing:
local m1 local m2 function AddButton(button) button.MouseButton1Down:connect(function() script.Parent.Parent.tc.Value = button.BackgroundColor3 end) end open = false active = false b = 10 --Speed the window opens/closes (Must be a positive number) script.Parent.Button.MouseButton1Down:connect(function() if not active then active = true if open then open = false for i = 176,16,-b do script.Parent.Size = UDim2.new(0,96,0,i) wait() end else open = true for i = 20,180,b do script.Parent.Size = UDim2.new(0,160,0,i) wait() end end active = false end end) local buttons = script.Parent:GetChildren() for i = 1,#buttons do if buttons[i].ClassName == "TextButton" then AddButton(buttons[i]) end end
OutlineColorPicker has a script, of almost the exact same above.
function AddButton(button) button.MouseButton1Down:connect(function() script.Parent.Parent.oc.Value = button.BackgroundColor3 end) end open = false active = false b = 10 --Speed the window opens/closes (Must be a positive number) script.Parent.Button.MouseButton1Down:connect(function() if not active then active = true if open then open = false for i = 176,16,-b do script.Parent.Size = UDim2.new(0,96,0,i) wait() end else open = true for i = 20,180,b do script.Parent.Size = UDim2.new(0,160,0,i) wait() end end active = false end end) local buttons = script.Parent:GetChildren() for i = 1,#buttons do if buttons[i].ClassName == "TextButton" then AddButton(buttons[i]) end end