Currently I am making a Piggy-based game with some twists with another user. Recently, we are done with the main basics (keys, doors, menu, etc.) and I have decided to start on the cutscene. However, I don't want player movement, but I can't set their walk speed to 0 because they will be moving. I have heard that ContextActionService is a good way to begin, but I can't find anything that currently works. Here is the module I am using so far:
local module = {}
local replicatedStorage = game:GetService("ReplicatedStorage")
local restrictMovement = replicatedStorage:WaitForChild("RestrictMovement")
local allowMovement = replicatedStorage:WaitForChild("AllowMovement")
--ContextActionService can only be used on the client from what I've heard.
function module:RestrictPlayerMovement()
restrictMovement:FireAllClients()
end
function module:AllowPlayerMovement()
allowMovement:FireAllClients()
end
The local script looks like this:
local replicatedStorage = game:GetService("ReplicatedStorage")
local restrictMovement = replicatedStorage:WaitForChild("RestrictMovement")
local allowMovement = replicatedStorage:WaitForChild("AllowMovement")
restrictMovement.OnClientEvent:Connect(function()
--Don't know what to put here
end)
allowMovement.OnClientEvent:Connect(function()
--Don't know what to put here
end)
The functions are empty because I have no clue on what to do here. If anyone can help me or has a different way of doing this, help will be greatly appreciated.
Thanks!

6 comments
I can't, because the player must move during the cutscene.
However, thank you for taking the time to answer.
I updated my answer, see if that works.
You would just have to change to LocalPlayer to whichever player you want.
This doesn't work, but I will look more into your method. If this method ends up working out, I will mark this as correct.
YES! I LOOKED IT UP AND FOUND MORE CODE TO ACCUSTOM YOUR SOLUTION! THANK YOU!