CCCPaste

LocalScript of Dialogue (STORY GAME)

local player = game.Players.LocalPlayer
local CreateDialogueEvent = game.ReplicatedStorage.CreateDialogueEvent
local DialogueFrame = player.PlayerGui.ScreenGui.Frame

local function playSound(sound_id) -- Plays typing sound
	local sound = Instance.new("Sound",game.ReplicatedStorage)
	sound.SoundId = sound_id
	sound.Volume = .1
	sound.PlayOnRemove = true
	sound:Destroy()
end

local function textAnimate(content) -- Animates each letter
	for i=1,string.len(content) do
		DialogueFrame.TextLabel.Text = string.sub(content,1,i)
		playSound("rbxassetid://915576050")
		if string.sub(content,i,i) == "!" or string.sub(content,i,i) == "." or string.sub(content,i,i) == "?" then
			wait(1)
		elseif 	string.sub(content,i,i) == "," then
			wait(.5)
		else
			wait(.05)
		end
	end
end

CreateDialogueEvent.OnClientEvent:Connect(function(image_id, content) -- activates when called from the Server
	if not player:findFirstChild("secretEnding") then
		DialogueFrame.ImageLabel.Image = image_id
		DialogueFrame.TextLabel.Text = ""
		DialogueFrame.Visible = true
		textAnimate(content)
	end
end)