Hey there! I’m trying to make a cutscene skipper when everyone clicks on the “Skip” gui, but I’m not sure where to start. If y’all could help, that would be great!
1 Like
You could do something like that
local script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SkipEvent = ReplicatedStorage:WaitForChild("SkipEvent") --Remote Event
GuiButton.MouseButton1Click:Connect(function()
SkipEvent:FireServer()
end
Server script
local PlayerService = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SkipEvent = ReplicatedStorage:WaitForChild("SkipEvent") --Remote Event
local PlayersReadyToSkip = {}
SkipEvent.OnServerEvent:Connect(function(Player)
if table.find(PlayersReadyToSkip, Player) then
table.remove(PlayersReadyToSkip, Player) --Unready to skip
else --Ready > Unready // Unready > ready // switch depending on if you click the button multiple times
table.insert(PlayersReadyToSkip, Player) --Ready to skip
end
if #PlayersReadyToSkip == #PlayerService:GetPlayers() then
--Skip Cutscene
end
end
PlayerService.PlayerRemoving:Connect(function(Player)
if table.find(PlayersReadyToSkip, Player) then
table.remove(PlayersReadyToSkip, Player)
end
end
1 Like
unnecessary resources
for _, CurrentPlayer in pairs(PlayerService:GetChildren()) do
if not (table.find(PlayersReadyToSkip, Player)) then
AllPlayersReady = false
end
end
→
if #PlayersReadyToSkip ~= #PlayerService:GetPlayers() then return end
-- skip cutscene
3 Likes
Yep, thanks for the shortcut! ^^
2 Likes
Does this all go in the Sever script?
Just copy & paste what @Crygen54 wrote, the top one in a localscript and the bottom one in a serverscript
Didn’t work for me, I had to add a couple parethesis at some of the ends so I wouldn’t get any errors, but whenever I click nothing happens in the output
local PlayerService = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SkipEvent = ReplicatedStorage:WaitForChild("SkipEvent") --Remote Event
local PlayersReadyToSkip = {}
SkipEvent.OnServerEvent:Connect(function(Player)
if table.find(PlayersReadyToSkip, Player) then
table.remove(PlayersReadyToSkip, Player) --Unready to skip
else --Ready > Unready // Unready > ready // switch depending on if you click the button multiple times
table.insert(PlayersReadyToSkip, Player) --Ready to skip
end
if #PlayersReadyToSkip == #PlayerService:GetPlayers() then
print("Skipped")
end
end)
PlayerService.PlayerRemoving:Connect(function(Player)
if table.find(PlayersReadyToSkip, Player) then
table.remove(PlayersReadyToSkip, Player)
end
end)
Also here’s the button script (I added a keyboard function):
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SkipEvent = ReplicatedStorage:WaitForChild("SkipEvent") --Remote Event
local Plr = game.Players.LocalPlayer
script.Parent.MouseButton1Click:Connect(function()
SkipEvent:FireServer()
end)
Plr:GetMouse().KeyDown:Connect(function(F)
if F == "f" then
SkipEvent:FireServer()
end
end)