Ad
Log in to vote
0

How do you make a specific player's chat show up in a GUI ?

Asked by 17 days ago

So I am basically trying to make a concert game and when the player is on stage, I want that player that when he chats, his messages show up in a GUI. Here is the script for the GUI:

local Remote = game.ReplicatedStorage:WaitForChild("UIRemote") 
local player = game.Players.LocalPlayer

Remote.OnClientEvent:Connect(function(chat)
    player.PlayerGui.RappersChat.Inside.Chat.Text = chat
end)

This isn't my original script. I just want it to make it so it basically shows up a GUI of a rectangle that everyone can see and it says whatever the person says. The model I used was " Rap Battles Kit" by Mlnitoon2. Please tell me where to put the edited script and if local or not. Help would be V.E.R.Y appreciated.

1 answer

Log in to vote
1
Answered by 17 days ago
Edited 17 days ago

You can use the Player.Chatted event which fires whenever the player chats.

Chat Script:

-- Normal Script in ServerScriptService
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local Remote = RemoteEvent.UIRemote

Players.PlayerAdded:Connect(function(Player) -- when a player joins
    local OnStage = Instance.new("BoolValue", Player)
    OnStage.Name = "OnStage"
    OnStage.Value = false

    Player.Chatted:Connect(function(Message) -- when the player chats
        if OnStage.Value == true then -- if player is on stage
            Remote:FireAllClients(Message)
        end
    end)
end)

Random Player Picker Script:

-- Normal Script inside ServerScriptService or Workspace
local Players = game:GetService("Players")
local StageCFrame = CFrame.new(11.667, 23.652, 95.261)

local bindableEvent = Instance.new("BindableEvent")

function tpRandomToStage()
    task.wait(5) -- task.wait() is slightly faster than wait()

    local allPlayers = Players:GetPlayers() -- basically :GetChildren() but only choose Players
    local randomNumber = Random.new(os.time()):NextInteger(1, #allPlayers)
    local randomPlayer = allPlayers[randomNumber]
    local randomCharacter = randomPlayer.Character
    local randomHumanoid = randomCharacter:FindFirstChildWhichIsA("Humanoid")

    randomPlayer.CharacterAdded:Connect(function() -- when the player respawns
        bindableEvent:Fire()
    end)

    Players.PlayerRemoving:Connect(function(player) -- when a player leaves
        if player == randomPlayer then -- if the player leaving is the same as the player on the stage
            bindableEvent:Fire()
        end
    end)

    -- PivotTo and GetPivot are both CFrame
    randomCharacter:PivotTo(StageCFrame) -- teleports the player
    randomPlayer.OnStage.Value = true -- sets the value to true
    task.wait(45)
    randomPlayer:LoadCharacter() -- respawns the player and teleports back to spawn
    randomPlayer.OnStage.Value = false -- sets the value to false
end

while true do
    local thread = task.spawn(tpRandomToStage) -- runs the function
    bindableEvent.Event:Wait() -- waits until player is done
    coroutine.close(thread) -- stops the function
end

The script for the GUI:

-- LocalScript inside StarterGui or StarterPlayerScripts
local Remote = game.ReplicatedStorage:WaitForChild("UIRemote") 
local player = game.Players.LocalPlayer

Remote.OnClientEvent:Connect(function(chat)
    player:WaitForChild("PlayerGui"):WaitForChild("RappersChat").Inside.Chat.Text = chat
end)
0
So do you know how to make it so their chat shows up in the GUI when they are standing on a specific part btw? Becuase i want only the person on stage to have the GUI contain what they say. Cubispaghettis 1 — 16d
0
and theres an error or sumthing that says "Infinite yield possible on 'ReplicatedStorage:WaitForChild("UIRemote")" im also not using there model i only wanted the gui thingy from it nothing else. no Main Script or anything else from them Cubispaghettis 1 — 16d
0
It should work as what you said. Maybe you did it wrong. Should I create a simple model for you? T3_MasterGamer 1736 — 16d
0
If you can, but I don't want to waste your time. Cubispaghettis 1 — 8d
View all comments (5 more)
1
ok thx :thumbs_up: T3_MasterGamer 1736 — 8d
1
I finally finished the model. Here it is: https://web.roblox.com/library/12326645112 T3_MasterGamer 1736 — 7d
0
Here is also the demo game if you wanna try it out first: https://web.roblox.com/games/12326265372 T3_MasterGamer 1736 — 7d
0
no way Puppynniko 1004 — 7d
0
web.roblox Puppynniko 1004 — 7d
Ad

Answer this question