function ControlModule.GetMoveVector(k)if k.activeController then return k.activeController:GetMoveVector()end return Vector3.new(0,0,0)end function ControlModule.GetActiveController(k)return k.activeController end function ControlModule.Enable(l,k)if not l.activeController then return end if k==nil then k=true end if k then if l.touchControlFrame then l.activeController:Enable(true,l.touchControlFrame)else if l.activeControlModule==ClickToMove then l.activeController:Enable(true,Players.LocalPlayer.DevComputerMovementMode==Enum.DevComputerMovementMode.UserChoice)else l.activeController:Enable(true)end end else l:Disable()end end

function ControlModule:GetMoveVector()
	if self.activeController then
		return self.activeController:GetMoveVector()
	end
	return Vector3.new(0,0,0)
end

function ControlModule:GetActiveController()
	return self.activeController
end

function ControlModule:Enable(enable)
	if not self.activeController then
		return
	end
	
	if enable == nil then
		enable = true
	end
	if enable then
		if self.touchControlFrame then
			self.activeController:Enable(true, self.touchControlFrame)
		else
			if self.activeControlModule == ClickToMove then
				-- For ClickToMove, when it is the player's choice, we also enable the full keyboard controls.
				-- When the developer is forcing click to move, the most keyboard controls (WASD) are not available, only spacebar to jump.
				self.activeController:Enable(true, Players.LocalPlayer.DevComputerMovementMode == Enum.DevComputerMovementMode.UserChoice)
			else				
				self.activeController:Enable(true)
			end
		end
	else
		self:Disable()
	end
end
