I checked back on a game that I haven't been working on in a while and I noticed my chat script for a certain NPC stopped working, I reverted back to older versions but nothing changed it was still broken. I'm 99% sure it worked last time I checked on the game and I haven't updated the game since.
local script in startergui
local Player = game.Players.LocalPlayer
local Character = Player.Character
local mouse = game.Players.LocalPlayer:GetMouse()
local option1 = script.Parent.textoption1:WaitForChild("TextButton")
local MasterControl = require(game.Players.LocalPlayer:WaitForChild("PlayerScripts"):WaitForChild("ControlScript"):WaitForChild("MasterControl"))
local Camera = workspace.CurrentCamera
local UserInputService = game:GetService("UserInputService")
workspace.speechclick.ClickDetector.MouseClick:Connect(function()
MasterControl:Disable()
repeat wait()
-------------------------the part that actually matters i think-------------------------------------------------
Camera.CameraType = Enum.CameraType.Scriptable
Camera.CFrame = workspace.camerapart.CFrame --its still a
until Camera.CameraType == Enum.CameraType.Scriptable
local option2 = script.Parent.textoption2:WaitForChild("TextButton")
local option3 = script.Parent.textoption3:WaitForChild("TextButton")
local textbox = script.Parent.textbox:WaitForChild("TextButton")
workspace.speechclick.ClickDetector.MaxActivationDistance = 0
option1.Parent.Enabled = true
option2.Parent.Enabled = true
option3.Parent.Enabled = true
textbox.Parent.Enabled = true
-----------------------------------------------------------------------------------------------------------------
option1:TweenPosition(UDim2.new(0.160, -217, 0.853, -42),'Out','Quart',1.5)
option3:TweenPosition(UDim2.new(0.160, -217, 0.623, -42),'Out','Quart',1.7)
option2:TweenPosition(UDim2.new(0.160,-217, 0.739, -42),'Out','Quart',1.6)
textbox:TweenPosition(UDim2.new(0.378, -155, 0.624, -42),'Out','Quart',1.7)
textbox.Text = "."
wait(1)
textbox.Text = ".."
wait(1)
textbox.Text = "..."
option2.MouseButton1Click:Connect(function()
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
option2.Selected = false
UserInputService.MouseIconEnabled = false
option1.Parent.Enabled = false
option3.Parent.Enabled = false
wait(1)
textbox.Text = "."
wait(1)
textbox.Text = ".."
wait(1)
textbox.Text = "..."
wait(3)
option1.Parent.Enabled = true
option3.Parent.Enabled = true
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
UserInputService.MouseIconEnabled = true
option2.Selected = true
end)
option3.MouseButton1Click:Connect(function()
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
option3.Selected = false
UserInputService.MouseIconEnabled = false
option1.Parent.Enabled = false
option3.Selected = false
option2.Parent.Enabled = false
option3.Active=false
wait(1)
textbox.Text = "P" --very slow and lazy text scripting because i dont know a better way
wait(.1)
textbox.Text = "Pl"
wait(.1)
textbox.Text = "Ple"
wait(.1)
textbox.Text = "Plea"
wait(.1)
textbox.Text = "Pleas"
wait(.1)
textbox.Text = "Please"
wait(.1)
textbox.Text = "Please "
wait(.1)
textbox.Text = "Please b"
wait(.1)
textbox.Text = "Please bu"
wait(.1)
textbox.Text = "Please buy"
wait(.1)
textbox.Text = "Please buy "
wait(.1)
textbox.Text = "Please buy D"
wait(.1)
textbox.Text = "Please buy DL"
wait(.1)
textbox.Text = "Please buy DLC"
wait(3)
option3.Active=true
option1.Parent.Enabled = true
option2.Parent.Enabled = true
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
UserInputService.MouseIconEnabled = true
option3.Selected = true
end)
option1.MouseButton1Click:Connect(function()
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
UserInputService.MouseIconEnabled = false
option2.Parent.Enabled = false
option3.Parent.Enabled = false
option1.Selected = false
wait(.1)
textbox.Text = "B"
wait(.1)
textbox.Text = "By"
wait(.1)
textbox.Text = "Bye"
wait(.1)
textbox.Text = "Bye "
wait(.1)
textbox.Text = "Bye L"
wait(.1)
textbox.Text = "Bye Lo"
wait(.1)
textbox.Text = "Bye Los"
wait(.1)
textbox.Text = "Bye Lose"
wait(.1)
textbox.Text = "Bye Loser"
wait(1)
option1.Selected = true
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
UserInputService.MouseIconEnabled = true
Camera.CameraType = Enum.CameraType.Custom
MasterControl:Enable()
option1:TweenPosition(UDim2.new(0.048, 0,1.903, 0),'Out','Quart',.3)
option2:TweenPosition(UDim2.new(0.048, 0,1.903, 0),'Out','Quart',.3)
option3:TweenPosition(UDim2.new(0.048, 0,1.903, 0),'Out','Quart',.3)
textbox:TweenPosition(UDim2.new(0.048, 0,1.903, 0),'Out','Quart',.3)
option1.Parent.Enabled = false
option2.Parent.Enabled = false
option3.Parent.Enabled = false
textbox.Parent.Enabled = false
wait(5)
workspace.speechclick.ClickDetector.MaxActivationDistance = 30
end)
end)

2 comments
If you look in a TestServer "MasterControl" is no longer a valid member of "PlayerScripts" UNLESS you added it in manually...?
You could use :interpolate, its faster and better...