function ClickToMove.SetShowPath(x,Q)ShowPath=Q end function ClickToMove.GetShowPath(Q)return ShowPath end function ClickToMove.SetWaypointTexture(x,Q)ClickToMoveDisplay.SetWaypointTexture(Q)end function ClickToMove.GetWaypointTexture(Q)return ClickToMoveDisplay.GetWaypointTexture()end function ClickToMove.SetWaypointRadius(x,Q)ClickToMoveDisplay.SetWaypointRadius(Q)end function ClickToMove.GetWaypointRadius(Q)return ClickToMoveDisplay.GetWaypointRadius()end function ClickToMove.SetEndWaypointTexture(x,Q)ClickToMoveDisplay.SetEndWaypointTexture(Q)end function ClickToMove.GetEndWaypointTexture(Q)return ClickToMoveDisplay.GetEndWaypointTexture()end function ClickToMove.SetWaypointsAlwaysOnTop(x,Q)ClickToMoveDisplay.SetWaypointsAlwaysOnTop(Q)end function ClickToMove.GetWaypointsAlwaysOnTop(Q)return ClickToMoveDisplay.GetWaypointsAlwaysOnTop()end function ClickToMove.SetFailureAnimationEnabled(x,Q)PlayFailureAnimation=Q end function ClickToMove.GetFailureAnimationEnabled(Q)return PlayFailureAnimation end function ClickToMove.SetIgnoredPartsTag(x,Q)UpdateIgnoreTag(Q)end function ClickToMove.GetIgnoredPartsTag(Q)return CurrentIgnoreTag end function ClickToMove.SetUseDirectPath(x,Q)UseDirectPath=Q end function ClickToMove.GetUseDirectPath(Q)return UseDirectPath end function ClickToMove.SetAgentSizeIncreaseFactor(x,Q)AgentSizeIncreaseFactor=1.0+Q/100.0 end function ClickToMove.GetAgentSizeIncreaseFactor(Q)return(AgentSizeIncreaseFactor-1.0)*100.0 end function ClickToMove.SetUnreachableWaypointTimeout(x,Q)UnreachableWaypointTimeout=Q end function ClickToMove.GetUnreachableWaypointTimeout(Q)return UnreachableWaypointTimeout end function ClickToMove.SetUserJumpEnabled(x,Q)x.jumpEnabled=Q if x.touchJumpController then x.touchJumpController:Enable(Q)end end function ClickToMove.GetUserJumpEnabled(Q)return Q.jumpEnabled end function ClickToMove.MoveTo(q,Q,x,H)local E=Player.Character if E==nil then return false end local K=Pather(Q,Vector3.new(0,1,0),H)if K and K:IsValidPath()then HandleMoveTo(K,Q,nil,E,x)return true end return false end return ClickToMove
--Public developer facing functions
function ClickToMove:SetShowPath(value)
	ShowPath = value
end

function ClickToMove:GetShowPath()
	return ShowPath
end

function ClickToMove:SetWaypointTexture(texture)
	ClickToMoveDisplay.SetWaypointTexture(texture)
end

function ClickToMove:GetWaypointTexture()
	return ClickToMoveDisplay.GetWaypointTexture()
end

function ClickToMove:SetWaypointRadius(radius)
	ClickToMoveDisplay.SetWaypointRadius(radius)
end

function ClickToMove:GetWaypointRadius()
	return ClickToMoveDisplay.GetWaypointRadius()
end

function ClickToMove:SetEndWaypointTexture(texture)
	ClickToMoveDisplay.SetEndWaypointTexture(texture)
end

function ClickToMove:GetEndWaypointTexture()
	return ClickToMoveDisplay.GetEndWaypointTexture()
end

function ClickToMove:SetWaypointsAlwaysOnTop(alwaysOnTop)
	ClickToMoveDisplay.SetWaypointsAlwaysOnTop(alwaysOnTop)
end

function ClickToMove:GetWaypointsAlwaysOnTop()
	return ClickToMoveDisplay.GetWaypointsAlwaysOnTop()
end

function ClickToMove:SetFailureAnimationEnabled(enabled)
	PlayFailureAnimation = enabled
end

function ClickToMove:GetFailureAnimationEnabled()
	return PlayFailureAnimation
end

function ClickToMove:SetIgnoredPartsTag(tag)
	UpdateIgnoreTag(tag)
end

function ClickToMove:GetIgnoredPartsTag()
	return CurrentIgnoreTag
end

function ClickToMove:SetUseDirectPath(directPath)
	UseDirectPath = directPath
end

function ClickToMove:GetUseDirectPath()
	return UseDirectPath
end

function ClickToMove:SetAgentSizeIncreaseFactor(increaseFactorPercent)
	AgentSizeIncreaseFactor = 1.0 + (increaseFactorPercent / 100.0)
end

function ClickToMove:GetAgentSizeIncreaseFactor()
	return (AgentSizeIncreaseFactor - 1.0) * 100.0
end

function ClickToMove:SetUnreachableWaypointTimeout(timeoutInSec)
	UnreachableWaypointTimeout = timeoutInSec
end

function ClickToMove:GetUnreachableWaypointTimeout()
	return UnreachableWaypointTimeout
end

function ClickToMove:SetUserJumpEnabled(jumpEnabled)
	self.jumpEnabled = jumpEnabled
	if self.touchJumpController then
		self.touchJumpController:Enable(jumpEnabled)
	end
end

function ClickToMove:GetUserJumpEnabled()
	return self.jumpEnabled
end

function ClickToMove:MoveTo(position, showPath, useDirectPath)
	local character = Player.Character
	if character == nil then
		return false
	end
	local thisPather = Pather(position, Vector3.new(0, 1, 0), useDirectPath)
	if thisPather and thisPather:IsValidPath() then
		HandleMoveTo(thisPather, position, nil, character, showPath)
		return true
	end
	return false
end

return ClickToMove
