Hi, im trying to make a script that lets ppl place a model and after placing when you hover over the model a billboardgui should pop up. The model placing works but the gui doesnt show up. The script is in a local script in startergui

local ui = game:GetService("UserInputService")
local rs = game:GetService("ReplicatedStorage")

local plr = game.Players.LocalPlayer
local mouse = plr:GetMouse()
local m
local increment = 1
local d = false
local c = false
local mt

local function getCenter(model)
	local p = Vector3.new()
	local av = 0
	for i, v in pairs(model:GetChildren()) do
		if v:IsA('BasePart') then
			av = av + 1
			p = p + v.Position
		end
	end
	return p / av
end

local function ray(pos, object)
	local r = Ray.new(pos + Vector3.new(0, .1, 0), Vector3.new(0, -10, 0))
	local hit, pos = workspace:FindPartOnRay(r, object)
	return hit
end

local function checkDirections(center, size, object)
	local left, right = center - Vector3.new(size.X) / 2, center + Vector3.new(size.X) / 2
	local down = center - Vector3.new(0, size.Y) / 2
	local back, front = center - Vector3.new(0, 0, size.Z) / 2, center + Vector3.new(0, 0, size.Z) / 2
	if not ray(left, object) then return end
	if not ray(right, object) then return end
	if not ray(down, object) then return end
	if not ray(back, object) then return end
	if not ray(front, object) then return end
	return true
end

local function round(v3)
	local x = v3.X - (v3.X % increment)
	local y = v3.Y - (v3.Y % increment)
	local z = v3.Z - (v3.Z % increment)
	return Vector3.new(x, y, z)
end

local center
wait(0.2)

local bgui
mouse.Move:Connect(function()
	mt = mouse.Target
	if mt ~= nil then
		if mt.Parent.Name == "Box" then
			if mt.Parent.Active.Value == true then
				mt.Parent.BillboardGui.Enabled = true
				bgui = mt.Parent
			end
		else
			if bgui ~= nil then
				bgui.BillboardGui.Enabled = false
			end
		end
	end
end)

script.Parent.Shop.Frame.TextButton.MouseButton1Click:Connect(function()
	c = false
	m = rs.Stuff.Box:Clone()
	m.Parent = workspace
	m.Part.CanCollide = false
	mouse.TargetFilter = m
	m.Part.Anchored = true
	center = getCenter(m)
	mouse.Move:Connect(function()
		if c == false then
		if mouse.Target then
		if mouse.Target.Name == "UserBase" then
		local oldPosition = round(center)
		local newPos = round(mouse.Hit.p)
		m:MoveTo(newPos)
		if not checkDirections(getCenter(m), m:GetExtentsSize(), m) then
			--warn('Moving back')
			m:MoveTo(oldPosition)
		else
			--print('Moving forward')
			m:MoveTo(newPos)
			center = getCenter(m)
		end
		wait()
		mouse.Button1Down:Connect(function()
			if mouse.Target.Name == "UserBase" and d == false then
				d = true
				m.Active.Value = true
				m.Parent = workspace.Base
				c = true
				d = false
			end
		end)
		end
		end
		end
	end)
end)