Further enhance and add in an advanced linear system with the easing style as clearance and fast-tracking w/ragdoll support.

```
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

-- Configuration
local ROTATION_SPEED = 1.1          -- Time in seconds for rotation tween
local TRACKED_PLAYER = nil         -- Player currently targeted
local ESP_BILLBOARDS = {}          -- Table to keep track of ESP billboards

local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

-- Function to handle clicking on a player to target them
local function onPlayerClicked(targetPlayer)
    if targetPlayer and targetPlayer.Character then
        TRACKED_PLAYER = targetPlayer
    end
end

-- Function to smoothly face the target player's direction using TweenService
local function smoothFaceTarget(targetPlayer)
    if targetPlayer and targetPlayer.Character then
        local targetHumanoidRootPart = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
        
        if targetHumanoidRootPart then
            -- Calculate target position keeping the Y-axis the same for smooth rotation
            local targetPosition = Vector3.new(
                targetHumanoidRootPart.Position.X,
                humanoidRootPart.Position.Y,
                targetHumanoidRootPart.Position.Z
            )
            local desiredCFrame = CFrame.lookAt(humanoidRootPart.Position, targetPosition)
            
            -- Define TweenInfo for smooth rotation
            local tweenInfo = TweenInfo.new(
                ROTATION_SPEED,                        -- Time
                Enum.EasingStyle.Smooth,               -- EasingStyle
                Enum.EasingDirection.Out,              -- EasingDirection
                0,                                     -- RepeatCount (0 = no repeat)
                false,                                 -- Reverses
                0                                       -- DelayTime
            )
            
            -- Create and play the tween
            local tween = TweenService:Create(humanoidRootPart, tweenInfo, {CFrame = desiredCFrame})
            tween:Play()
        end
    end
end

-- Function to create or update ESP for the tracked player
local function updateESP()
    -- Remove existing ESP billboards to prevent duplication
    for _, billboard in ipairs(ESP_BILLBOARDS) do
        if billboard and billboard.Parent then
            billboard:Destroy()
        end
    end
    ESP_BILLBOARDS = {}
    
    if TRACKED_PLAYER and TRACKED_PLAYER.Character then
        local targetHead = TRACKED_PLAYER.Character:FindFirstChild("Head")
        if targetHead then
            -- Create a BillboardGui to show ESP
            local billboard = Instance.new("BillboardGui")
            billboard.Name = "TargetESP"
            billboard.Adornee = targetHead
            billboard.Size = UDim2.new(0, 100, 0, 50)
            billboard.StudsOffset = Vector3.new(0, 2, 0)
            billboard.AlwaysOnTop = true

            local textLabel = Instance.new("TextLabel")
            textLabel.Size = UDim2.new(1, 0, 1, 0)
            textLabel.Text = "Targeted"
            textLabel.TextColor3 = Color3.fromRGB(255, 0, 0)
            textLabel.BackgroundTransparency = 1
            textLabel.Font = Enum.Font.SourceSansBold
            textLabel.TextScaled = true
            textLabel.Parent = billboard

            billboard.Parent = player:WaitForChild("PlayerGui")

            -- Store the billboard in the table
            table.insert(ESP_BILLBOARDS, billboard)
        end
    end
end

-- Function to handle input for targeting
local function handleInput(input, gameProcessed)
    if gameProcessed then return end
    if input.UserInputType == Enum.UserInputType.MouseButton2 then
        local mouse = player:GetMouse()
        local target = mouse.Target
        if target and target.Parent and target.Parent:FindFirstChild("Humanoid") then
            local targetPlayer = Players:GetPlayerFromCharacter(target.Parent)
            onPlayerClicked(targetPlayer)
        end
    end
end

-- Ensure the script continues working when the character respawns
player.CharacterAdded:Connect(function(newCharacter)
    character = newCharacter
    humanoidRootPart = newCharacter:WaitForChild("HumanoidRootPart")
    -- Optionally, clear TRACKED_PLAYER or re-establish ESP if needed
end)

-- Connect input listener
UserInputService.InputBegan:Connect(handleInput)

-- Run service to update the face tracking smoothly
RunService.RenderStepped:Connect(function(deltaTime)
    if TRACKED_PLAYER then
        smoothFaceTarget(TRACKED_PLAYER)
        updateESP()
    else
        -- Clear ESP if no target
        for _, billboard in ipairs(ESP_BILLBOARDS) do
            if billboard and billboard.Parent then
                billboard:Destroy()
            end
        end
        ESP_BILLBOARDS = {}
    end
end)