Level Complete Message

Script for Part

local levelPart = script.Parent

local ReplicatedStorage = game:GetService('ReplicatedStorage')
local remoteEvent = ReplicatedStorage:WaitForChild('RemoteEvent')

local function complete(otherPart)
    local humanoid = otherPart.Parent:FindFirstChild('Humanoid')
    if humanoid then
        local player = game.Players:FindFirstChild(otherPart.Parent.Name)
        local completeTag = player:FindFirstChild('Level_1')
        if player and not completeTag then
            local completeTag = Instance.new('BoolValue')
            completeTag.Name = 'Level_1'
            completeTag.Value = true
            completeTag.Parent = player
            remoteEvent:FireAllClients(player.Name, levelPart.Name)
        end
    end
end

levelPart.Touched:Connect(complete)

LocalScript (StarterPlayerScripts)

local ReplicatedStorage = game:GetService('ReplicatedStorage')
local remoteEvent = ReplicatedStorage:WaitForChild('RemoteEvent')

textColor = BrickColor.new('Lime green')

local function welcome(playerName, partName)
    game.StarterGui:SetCore('ChatMakeSystemMessage', {
        Text = playerName..' completed '..partName;
        Font = Enum.Font.SourceSansBold;
        Color = textColor.Color;
        FontSize = Enum.FontSize.Size24;
    })
end

remoteEvent.OnClientEvent:Connect(welcome)