I have made a custom NPC with a billboardgui chat menu for my Filtering Enabled police game due to I can't do the normal way since it is FE and it's not working as intended such as when you click the click to speak button nothing happens, below I will provide the explorer and scripts. I have not tried Adornee as I am unsure where to put the billboardgui. There is a script that clones then moves the dealer to workspace.

Explorer: https://gyazo.com/b3e7cd490ea783490cdd78a96c90dc8e

Click to Speak button

local reply = script.Parent.Parent.Speak


script.Parent.MouseButton1Down:connect(function()
	script.Parent.Visible = false
	reply.Visible = true
end)

Speak textbutton

local menu = script.Parent.Parent.Frame


script.Parent.MouseButton1Down:connect(function()
	wait(2)
	script.Parent.Visible = false
	menu.Visible = true
end)

Arrest chat button

local player = game:GetService("Players").LocalPlayer

script.Parent.MouseButton1Down:connect(function()
	game.ReplicatedStorage.RemoteEvents.AddEXP:FireServer(50, player)
	game.ReplicatedStorage.RemoteEvents.CallOutEvents.RemoveCallOuts:FireServer("DealerOne")
end)

Any and all help will teach me for the future!