
KeylessUniversal

local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera
local function areSameTeam(player1, player2)
local success, areSameTeamFunc = pcall(function()
return shared("AreSameTeam")
end)
if success and areSameTeamFunc then
return areSameTeamFunc(player1, player2)
end
return player1.Team == player2.Team
end
local function getClosestHeadToCursor()
local cameraCFrame = Camera.CFrame
local cameraPos = cameraCFrame.Position
local lookVector = cameraCFrame.LookVector
local bestHead = nil
local bestScreenDistance = math.huge
local maxScreenDistance = 1000
for _, model in ipairs(Workspace:GetChildren()) do
if not model:IsA("Model") then continue end
local head = model:FindFirstChild("Head")
if not (head and head:IsA("BasePart")) then continue end
local character = model
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not (humanoid and humanoid.Health > 0) then continue end
local player = Players:GetPlayerFromCharacter(character)
if not player then
elseif player == LocalPlayer or areSameTeam(player, LocalPlayer) then
continue
end
local headPos = head.Position
local screenPos, onScreen = Camera:WorldToScreenPoint(headPos)
if not onScreen then continue end
local screenCenter = Camera.ViewportSize / 2
local screenDistance = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude
if screenDistance > maxScreenDistance then continue end
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.FilterDescendantsInstances = { LocalPlayer.Character, Camera }
local ray = Workspace:Raycast(cameraPos, headPos - cameraPos, raycastParams)
if ray and ray.Instance:IsDescendantOf(character) then
if screenDistance < bestScreenDistance then
bestScreenDistance = screenDistance
bestHead = head
end
end
end
return bestHead
end
local hitscanModule
local success, err = pcall(function()
hitscanModule = require(LocalPlayer.PlayerScripts.Client.game.classes.Projectiles.HitscanProjectile)
end)
if not success then
warn("HitscanProjectile module doesnt exist anymore:", err)
return
end
local originalNew = hitscanModule.new
hitscanModule.new = function(origin, velocity, magnetStrength, owner, uniqueId, weaponConfig, tracerConfig, tracerOffset)
if owner == LocalPlayer then
local targetHead = getClosestHeadToCursor()
if targetHead then
local cameraPos = Camera.CFrame.Position
local newDirection = (targetHead.Position - cameraPos).Unit
local speed = velocity.Magnitude
velocity = newDirection * speed
end
end
return originalNew(origin, velocity, magnetStrength, owner, uniqueId, weaponConfig, tracerConfig, tracerOffset)
endNo comments yet for this script.



