i am using the executable script option, i used it for a button, but how do i make sure that if a player clicks it all the players on the server see the cutscene, i would like to make everyone see it, not just who click it,
since you’re making it fire using a button (local for UI, vice versa for part) you’ll need a remote event and fire all clients with that, you have to get all the players using
for _, p in pairs(game.Players:GetChildren())
after that you can pretty much mess with the module script and try to edit some changes for it to be able to fire for everyone
local module = {}
local TweenService = game:GetService("TweenService")
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local camera = workspace.CurrentCamera
local cutsceneName = script.CutsceneName
if not cutsceneName then
warn("Non Esiste Una Cutscene Con Questo Nome, Controlla Lo Script")
end
local easingStyle
local easingDirection
local didLastPointDoImmediateSwitch = false
local cutsceneParts = workspace:WaitForChild(cutsceneName.Value)
local doesStartAtPlayer = script.DoesStartAndEndAtPlayer.Value
local repeatValue
local tweeningCompleted = false
local endTweenComplete = false
local lastCutscenePart
local cutscenePart
local Character
local count = 0
local timetaken = 0
local childcount = 0
local fieldOfView = 70
local originalCFrame
function module:IsModuleLoaded()
if #cutsceneParts:GetChildren() == script.CutscenePartCount.Value then
return true
else
return false
end
end
repeat
timetaken = timetaken + 0.01
wait()
until game:IsLoaded() == true
repeat
wait(0.1)
until #cutsceneParts:GetChildren() == script.CutscenePartCount.Value
Character = Players.LocalPlayer.Character
function module:PlayPartOfCutscene(cameraInstance, pointInstance, fieldOfView, isFirst)
camera.CameraType = Enum.CameraType.Scriptable
lastCutscenePart = #pointInstance.Parent:GetChildren()
local tweeningTable = {
CFrame = pointInstance.CFrame
}
if pointInstance.EasingDirection.Value == 1 then
easingDirection = Enum.EasingDirection.In
elseif pointInstance.EasingDirection.Value == 2 then
easingDirection = Enum.EasingDirection.Out
elseif pointInstance.EasingDirection.Value == 3 then
easingDirection = Enum.EasingDirection.InOut
end
if pointInstance.EasingStyle.Value == 1 then
easingStyle = Enum.EasingStyle.Linear
elseif pointInstance.EasingStyle.Value == 2 then
easingStyle = Enum.EasingStyle.Quad
elseif pointInstance.EasingStyle.Value == 3 then
easingStyle = Enum.EasingStyle.Quart
elseif pointInstance.EasingStyle.Value == 4 then
easingStyle = Enum.EasingStyle.Quint
elseif pointInstance.EasingStyle.Value == 5 then
easingStyle = Enum.EasingStyle.Sine
elseif pointInstance.EasingStyle.Value == 6 then
easingStyle = Enum.EasingStyle.Back
elseif pointInstance.EasingStyle.Value == 7 then
easingStyle = Enum.EasingStyle.Bounce
elseif pointInstance.EasingStyle.Value == 8 then
easingStyle = Enum.EasingStyle.Circular
elseif pointInstance.EasingStyle.Value == 9 then
easingStyle = Enum.EasingStyle.Cubic
elseif pointInstance.EasingStyle.Value == 10 then
easingStyle = Enum.EasingStyle.Elastic
elseif pointInstance.EasingStyle.Value == 11 then
easingStyle = Enum.EasingStyle.Exponential
end
local tweenInfoCamMovement = TweenInfo.new(tonumber(pointInstance:WaitForChild("TransitionTime").Value), easingStyle, easingDirection, 0, false, 0)
if isFirst then
local tweenInfoCamMovement = TweenInfo.new(5, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut, 0, false, 0)
end
local tween = TweenService:Create(cameraInstance, tweenInfoCamMovement, tweeningTable)
if not didLastPointDoImmediateSwitch then
tween:Play()
end
local FOVTweeningTable = {
FieldOfView = fieldOfView
}
local FormattedTweenInfo = TweenInfo.new(tonumber(pointInstance:WaitForChild("TransitionTime").Value), easingStyle, easingDirection, 0, false, 0)
local FOVTween = TweenService:Create(camera, FormattedTweenInfo, FOVTweeningTable)
if not didLastPointDoImmediateSwitch then
FOVTween:Play()
end
tweeningCompleted = false
if didLastPointDoImmediateSwitch then
tweeningCompleted = true
end
didLastPointDoImmediateSwitch = false
tween.Completed:Connect(function()
tweeningCompleted = true
if pointInstance.Name == tostring(lastCutscenePart) or pointInstance.ImmediateSwitch.Value == false then
print("")
else
local currentPointPart = tonumber(pointInstance.Name)
local nextPointPart = currentPointPart + 1
local nextPointPartInstance = pointInstance.Parent:FindFirstChild(tostring(nextPointPart))
camera.CFrame = nextPointPartInstance.CFrame
didLastPointDoImmediateSwitch = true
end
return
end)
repeat
camera.CFrame = camera.CFrame
wait(0.001)
until tweeningCompleted
end
-- Cutscene Completa
function module:PlayFullCutscene()
originalCFrame = camera.CFrame
StarterGui:SetCore("ResetButtonCallback", false)
local children = cutsceneParts:GetChildren()
for i, pointPartInstance in ipairs(children) do
cutscenePart = pointPartInstance
count = count + 1
if count == 1 and not doesStartAtPlayer then
camera.CameraType = Enum.CameraType.Scriptable
camera.CFrame = cutsceneParts:WaitForChild("1").CFrame
else
fieldOfView = cutsceneParts:WaitForChild(count):WaitForChild("CameraFOV").Value
module:PlayPartOfCutscene(camera, cutsceneParts:WaitForChild(count), fieldOfView, true)
Character.Humanoid.WalkSpeed = 0
Character.Humanoid.JumpPower = 0
end
end
if doesStartAtPlayer then
local tweeningTable = {
CFrame = originalCFrame
}
local tweenInfoCamMovement = TweenInfo.new(5, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut, 0, false, 0)
local tween = TweenService:Create(camera, tweenInfoCamMovement, tweeningTable)
tween:Play()
local FOVTweeningTable = {
FieldOfView = 70
}
local tweenInfoFov = TweenInfo.new(5, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut, 0, false, 0)
local tweenFov = TweenService:Create(camera, tweenInfoFov, FOVTweeningTable)
tweenFov:Play()
tween.Completed:Connect(function()
endTweenComplete = true
end)
repeat
camera.CFrame = camera.CFrame
wait(0.001)
until endTweenComplete
end
camera.FieldOfView = 70
camera.CameraType = Enum.CameraType.Custom
Character.Humanoid.WalkSpeed = 16
Character.Humanoid.JumpPower = 50
count = 0
StarterGui:SetCore("ResetButtonCallback", true)
end
return module
doesn’t work, this is the original button localscript i use
local Cutscene = require(game.Workspace.EICutscenesAPI)
function leftClick()
Cutscene:PlayFullCutscene()
end
function rightClick()
print("Wrong click")
end
script.Parent.MouseButton1Click:Connect(leftClick)
script.Parent.MouseButton2Click:Connect(rightClick)