That's the whole script
-- Variables
DefaultMessageDelayTime = 4
LetterInterval = 0.05
MessageWaitSigns = {',', '?', '.'}
MessageWaitSignDelay = 1
MessageValue = game.ReplicatedStorage.Message
ImageValue = game.ReplicatedStorage.Message.SpeakerImage
SpeakerNameValue = game.ReplicatedStorage.Message.SpeakerName
-- Setup Player Images
PlayerImages = {}
PlayerService = game:GetService('Players')
function MakePlayerImage(Player)
local Image = ''
local Success,Error = pcall(function()
local ID = PlayerService:GetUserIdFromNameAsync(Player.Name) or ''
local PlayerImage, IsReady = PlayerService:GetUserThumbnailAsync(ID, Enum.ThumbnailType.AvatarBust, Enum.ThumbnailSize.Size420x420)
if IsReady == true then
-- Ready to use image
Image = tostring(PlayerImage)
else
-- Use alternative picture
Image = ("http://www.roblox.com/Thumbs/Avatar.ashx?x=100&y=100&Format=Png&username=%s"):format(Player.Name)
end
end)
if Success == true then
-- Successful
else
Image = ("http://www.roblox.com/Thumbs/Avatar.ashx?x=100&y=100&Format=Png&username=%s"):format(Player.Name)
end
PlayerImages[Player.Name] = Image
end
game.Players.PlayerAdded:Connect(function(Player)
MakePlayerImage(Player)
end)
for _, Player in pairs(game.Players:GetChildren()) do
MakePlayerImage(Player)
end
-- Functions
function BroadcastMessage(Text, MessageDelayTime)
for i = 1,#Text,1 do
MessageValue.Value = string.sub(Text,1,i)
for _, L in pairs(MessageWaitSigns) do
if string.sub(Text,i,i) == L then
wait(MessageWaitSignDelay)
end
end
wait(LetterInterval)
end
if tonumber(MessageDelayTime) ~= nil then
wait(MessageDelayTime)
else
wait(DefaultMessageDelayTime)
end
MessageValue.Value = 'None'
return true
end
function SetMessageSpeaker(Name)
if Name == 'Random' then
local RandomPlayer = game.Players:GetChildren()[math.random(1,#game.Players:GetChildren())]
Name = RandomPlayer.Name
end
ImageValue.Value = PlayerImages[Name] or ''
SpeakerNameValue = Name
end
------------------------------ MAIN SCRIPT OF STORY ------------------------------------------------
SetMessageSpeaker('Random')
BroadcastMessage('Hello .... My name is Shebel .... I will be your guide!')

2 comments
math.random returns a number, not a reference to the player.
Thank you so much for helping me :)