Universally disable player movement inputs

Is there a way to disable player jump and directional movement across all devices? I can’t freeze the player because that would allow for midair freezes, and I can’t affect walkspeed or jumppower because that would interfere with temporary movement boosts. I’ve tried using ContextActionService:UnBindAction but that doesn’t work, and apparantely only works on PC anyway

you can go to players then go to players script then find “PlayersModule” then find “controlModule” then copy it, paste it in StarterPlayerScripts, go to script and leave script blank, that’s how you remove players control, and also delete all children of “ControlModule”

If you need to disable mobile movement try this

game.Players.PlayerAdded:Connect(function(player: Player)
	--// disable mobile movement
	player.DevTouchMovementMode = Enum.DevTouchMovementMode.Scriptable
	
	--// enable mobile movment
	player.DevTouchMovementMode = Enum.DevTouchMovementMode.UserChoice
end)

I want the movement settings to be toggleable

This has been answered in the past, but this script will accomplish what you’re looking for.

local UIS = game:GetService("UserInputService")
local MoveModule = require(game.Players.LocalPlayer.PlayerScripts:WaitForChild("PlayerModule"))
local MoveControls = MoveModule:GetControls()

function Disable()
MoveControls:Disable()
UIS.ModalEnabled = true --Makes move controls not appear on mobile devices
end

function Enable()
MoveControls:Enable()
UIS.ModalEnabled = false
end