#Client Sided Announcement

1 messages · Page 1 of 1 (latest)

autumn sage
#

I want an announcement to appear for everybody's GUI and the sound to play for everyone but it only appears for the announcer despite the main script being server side.

Local script:

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

if player.Name == "Giant_breakerGuy2000" then
script.Parent.MouseButton1Click:Connect(function()
local textbox = script.Parent.Parent.Text

    game.ReplicatedStorage.RemoteEvent:FireServer(textbox)
    
end)

else
script.Parent.Parent.Parent:Destroy()
end

Script:

Image attatched, too long

I'm a beginner scripter, so please try to keep it as simple as possible

fleet osprey
#

it doesnt work because youre only sending textbox to it, not the player

autumn sage
#

so do i do (textbox, player) @fleet osprey

fleet osprey
#

just in case

autumn sage
#

that breaks it

#

im gonna test textbox player now

autumn sage
#

cant find anybody

fleet osprey
#

i hope u arent trying to get forced visits

autumn sage
#

try again

fleet osprey
#

did u publish yet

autumn sage
#

local Players = game:GetService("Players")
local sound = game.SoundService.AnnouncementSound

local function getUserIdFromUsername(username)
local success, result = pcall(function()
return Players:GetUserIdFromNameAsync(username)
end)
if success then
return result
else
warn("Could not find user: " .. username)
return nil
end
end

local ThumbnailUrl = "https://www.roblox.com/headshot-thumbnail/image?userId=%d&width=420&height=420&format=png"

local function getAvatarImage(userId)
return string.format(ThumbnailUrl, userId)
end

-- Keep track of latest announcement per player
local latestAnnouncementTime = {}

game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(player, text)
sound:Play()
local players = game:GetPlayers()
for i,v in players do
local screengui = player.PlayerGui:WaitForChild("AnnouncementGui")
local imagelabel = screengui:WaitForChild("ImageLabel")
local imagelabel2 = screengui:WaitForChild("ImageLabel2")
local textlabel = screengui:WaitForChild("TextLabel")

    local thisAnnouncementTime = tick()
    latestAnnouncementTime[player.UserId] = thisAnnouncementTime

    imagelabel.ImageTransparency = 0
    imagelabel2.ImageTransparency = 0
    textlabel.TextTransparency = 0
    textlabel.Text = text
    
    local userId = getUserIdFromUsername(player.Name)
    if userId then
        local avatarImageUrl = getAvatarImage(userId)
        imagelabel2.Image = avatarImageUrl
    end
    
    task.delay(5, function()
        if latestAnnouncementTime[player.UserId] == thisAnnouncementTime then
            imagelabel.ImageTransparency = 1
            imagelabel2.ImageTransparency = 1
            textlabel.TextTransparency = 1
        end
    end)
end

end)

wheat coyote
fleet osprey
#

im so dumb

#

as per usual

wheat coyote