Help With a Plugin

Hi I am using a plugin called Cutscenify

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,

i tried with getplayers () but it doesn’t work …

thanks for your help!

try with a remote event and FireAllClients()

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

Doesn’t Work, This is The Module

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

sorry but, how do i need to do it?

for _, p in pairs(game.Players:GetPlayers()) do spawn(function()) module:PlayFullCutscene(p)) --make some adjustments to the module end) end

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)

you’re supposed to edit some changes in the module for it to worked, i dont think the cutscene plugin was intended for server cutscenes

You cant use local scripts in plugins, only server