Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- getgenv().NemesisPreBeta = {
- ["Settings"] = {
- Disabling = {Toggle = false, Keybind = "H"},
- UpdateTickDelay = 0.05
- },
- ["Camlock"] = {
- Toggling = {
- Enable = true,
- Keybind = "q"
- },
- Settings = {
- Prediction = {
- true,
- 0.125544,
- false,
- .003
- },
- Smoothing = {
- smoothness = true,
- x = 1,
- y = 1
- },
- OffSets = {
- Jump = {
- Enable = false,
- [1] = Vector3.new(0, 3, 0)
- }
- }
- },
- Conditions = {
- Player = {
- WallCheck = false,
- Grabbed = false,
- Knocked = true,
- CrewID = false
- },
- BodyParts = {"HumanoidRootPart", "Head"}
- }
- },
- ["Silent"] = {
- Toggling = { Enable = false },
- Settings = {
- Prediction = { true , 0.11934 , false, 0.003 },
- HitChance = 100,
- Resolver = true,
- OffSets = {
- Jump = {
- Enable = false,
- [1] = Vector3.new(0, 0, 0)
- }
- }
- },
- Conditions = {
- Player = { WallCheck = false, Grabbed = false, Knocked = false, CrewID = false },
- BodyParts = {"HumanoidRootPart", "UpperTorso", "Head"}
- }
- },
- ["Field Of View"] = {
- Enable = true,
- Size = 1000,
- Color = Color3.fromRGB(255, 255, 255),
- },
- ["Miscs"] = {
- ["Sorting"] = {
- Toggled = false,
- Key = "F",
- alphabetically = true,
- Ammo = false,
- Custom = {
- Enable = false,
- List = {[1] = "[Revolver]", [2] = "[Chicken]"} -- // etc
- }
- },
- ["Animation"] = {
- Enable = true,
- Animations = {["Greet"] = {[1] = false, [2] = "V"}}
- }
- }
- }
- local DUpvalue, Round, V3, V2, CF, Rservice, UserInput, Ping, Mouse, backpack = debug.getupvalue, math.round, Vector3.new, Vector2.new, CFrame.new, game:GetService("RunService"), game:GetService("UserInputService"), game:GetService("Stats").PerformanceStats.Ping, game:GetService("Players").LocalPlayer:GetMouse(), game:GetService("Players").LocalPlayer.Backpack
- local Players, Self, Character, Camera = game:GetService("Players"), game:GetService("Players").LocalPlayer, game:GetService("Players").LocalPlayer.Character or game:GetService("Players").LocalPlayer.CharacterAdded:Wait(), game:GetService("Workspace").CurrentCamera
- local idx, endp
- local Storage = {
- Drawings = {},
- Connections = {},
- targets = {
- [1] = nil,
- [2] = nil
- },
- ValuePosition = nil,
- bodyparts = {
- [1] = "",
- [2] = ""
- },
- update_tick = tick(),
- etc = {
- Ctoggled = false,
- Mtoggled = false
- },
- items = {}
- }
- function NewConnection(type, callback)
- local connection = type:Connect(callback)
- Storage.Connections[#Storage.Connections+1] = connection
- return connection
- end
- function Chance(chance, maxchance)
- return math.random(maxchance) <= chance
- end
- function Thread(Function, ...)
- local co
- local success, result
- if Function ~= nil then
- co = coroutine.create(Function)
- success, result = coroutine.resume(co, ...)
- end
- if success ~= nil and co ~= nil and Function ~= nil then
- return result
- end
- end
- function wallcheck(origin)
- local parts = Camera:GetPartsObscuringTarget({origin.Position, Character.HumanoidRootPart.Position}, {Camera, Character, origin.Parent})
- if #parts == 0 then
- return true
- end
- return false
- end
- function Grabbed(player)
- if player.Character ~= nil then
- return not player.Character:FindFirstChild("GRABBING_CONSTRAINT")
- end
- end
- function Knocked(player)
- if player.Character ~= nil then
- return player.Character.BodyEffects["K.O"].Value ~= true
- end
- end
- local pingHistory = {}
- local lastPingUpdateTime = tick()
- function GetPrediction()
- local currentPing = Ping:GetValue() * 0.003
- if getgenv().NemesisPreBeta.Camlock.Settings.Prediction[3] or getgenv().NemesisPreBeta.Silent.Settings.Prediction[3] then
- return currentPing
- else
- return getgenv().NemesisPreBeta.Camlock.Settings.Prediction[2] and getgenv().NemesisPreBeta.Silent.Settings.Prediction[2]
- end
- end
- function Crew(player)
- if game.Players.LocalPlayer:FindFirstChild("DataFolder"):FindFirstChild("Information"):FindFirstChild("Crew") then
- local SelfCrewValue = game.Players.LocalPlayer:FindFirstChild("DataFolder"):FindFirstChild("Information"):FindFirstChild("Crew")
- if SelfCrewValue.Value ~= 0 then
- if player:FindFirstChild("DataFolder"):FindFirstChild("Information"):FindFirstChild("Crew") then
- local Enimy = player:FindFirstChild("DataFolder"):FindFirstChild("Information"):FindFirstChild("Crew")
- if Enimy.Value == SelfCrewValue.Value then
- return false
- end
- end
- end
- end
- return true
- end
- function Closespart(player, hitboxes)
- local closestPart
- local closestDistanc = math.huge
- for _, hitbox in pairs(hitboxes) do
- local part = player.Character:FindFirstChild(hitbox)
- if part then
- local pos = Camera:WorldToViewportPoint(part.Position)
- local distance = (UserInput:GetMouseLocation() - V2(pos.X, pos.Y)).Magnitude
- if distance < closestDistanc then
- closestPart = part
- closestDistanc = distance
- end
- end
- end
- return closestPart
- end
- function isInCustomList(toolName)
- for _, customName in ipairs(getgenv().NemesisPreBeta.Miscs.Sorting.Custom.List) do
- if toolName == customName then
- return true
- end
- end
- return false
- end
- function GetClosest(table)
- local MaxDistance = getgenv().NemesisPreBeta["Field Of View"].Enable and getgenv().NemesisPreBeta["Field Of View"].Size or math.huge
- local Target
- for i,v in pairs(Players:GetPlayers()) do
- if v ~= Self and v.Character ~= nil and v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Head") then
- local ViewPort, Visible = Camera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
- local Mag = (UserInput:GetMouseLocation() - Vector2.new(ViewPort.X, ViewPort.Y)).Magnitude
- if MaxDistance > Mag and Visible and (
- (table.WallCheck and wallcheck(v.Character.HumanoidRootPart)) or true and
- (table.Grabbed and Grabbed(v)) or true and
- (table.Knocked and Knocked(v)) or true and
- (table.CrewID and Crew(v)) or true
- ) then
- MaxDistance = Mag
- Target = v
- end
- end
- end
- return Target
- end
- function Velocity(Target, method)
- if method == true then
- local pos = Target.Character.HumanoidRootPart.Position
- local lastTime = tick()
- local currentPos, currentTime
- local connection
- connection =
- game:GetService("RunService").Heartbeat:Connect(
- function()
- currentPos = Target.Character.HumanoidRootPart.Position
- currentTime = tick()
- connection:Disconnect()
- end
- )
- wait(0.01)
- local velocity = (currentPos - pos) / (currentTime - lastTime)
- return Vector3.new(math.floor(velocity.X), math.floor(velocity.Y), math.floor(velocity.Z))
- else
- return Target.character:FindFirstChild("HumanoidRootPart").AssemblyLinearVelocity
- end
- end
- function playAnimation(animationName)
- local args = {
- [1] = "AnimationPack",
- [2] = animationName,
- }
- game:GetService("ReplicatedStorage").MainEvent:FireServer(unpack(args))
- end
- -- // updates
- function UpdateSilent()
- local SilentTable = getgenv().NemesisPreBeta.Silent
- if SilentTable.Toggling.Enable then
- Storage.targets[2] = GetClosest(SilentTable.Conditions.Player)
- if Storage.targets[2] ~= nil and Storage.targets[2].Character ~= nil and Storage.targets[2].Character:FindFirstChild("HumanoidRootPart") then
- Storage.bodyparts[2] = tostring(Closespart(Storage.targets[2], SilentTable.Conditions.BodyParts))
- local position = Storage.targets[2].Character[Storage.bodyparts[2]].Position
- if SilentTable.Settings.OffSets.Jump.Enable and Storage.targets[2].Character:FindFirstChildOfClass("Humanoid"):GetState() == Enum.HumanoidStateType.Freefall then
- position = position + SilentTable.Settings.OffSets.Jump[1]
- end
- Storage.CFposition = position + (SilentTable.Settings.Prediction and Velocity(Storage.targets[2], SilentTable.Settings.Resolver) * GetPrediction() or 0)
- end
- end
- end
- function UpdateCamlock()
- local CamLockTable = getgenv().NemesisPreBeta.Camlock
- if Storage.etc.Ctoggled and CamLockTable.Toggling.Enable and Storage.targets[1] ~= nil and Storage.targets[1].Character ~= nil then
- local position = Storage.targets[1].Character[Storage.bodyparts[1]].Position
- if CamLockTable.Settings.OffSets.Jump.Enable and Storage.targets[1].Character:FindFirstChildOfClass("Humanoid"):GetState() == Enum.HumanoidStateType.Freefall then
- position = position + CamLockTable.Settings.OffSets.Jump[1]
- end
- if CamLockTable.Settings.Smoothing.enable then
- local goal = CFrame.new(Camera.CFrame.Position, position + (CamLockTable.Settings.Prediction[1] * GetPrediction() or Vector3.new()))
- Camera.CFrame = Camera.CFrame:Lerp(goal, CamLockTable.Settings.Smoothing.x, CamLockTable.Settings.Smoothing.y)
- else
- local prediction = CamLockTable.Settings.Prediction[1] and Storage.targets[1].Character.HumanoidRootPart.AssemblyLinearVelocity * GetPrediction() or Vector3.new()
- Camera.CFrame = CFrame.new(Camera.CFrame.Position, position + prediction)
- end
- end
- end
- do -- main connection
- NewConnection(UserInput.InputBegan, function(key, wtv)
- if key.KeyCode == Enum.KeyCode[getgenv().NemesisPreBeta.Camlock.Toggling.Keybind:upper()] and not wtv then
- if getgenv().NemesisPreBeta.Camlock.Toggling.Enable then
- Storage.etc.Ctoggled = not Storage.etc.Ctoggled
- Storage.targets[1] = GetClosest(getgenv().NemesisPreBeta.Camlock.Conditions.Player)
- if Storage.targets[1] and Storage.targets[1].Character then
- Storage.bodyparts[1] = tostring(Closespart(Storage.targets[1], getgenv().NemesisPreBeta.Camlock.Conditions.BodyParts))
- end
- else
- if Storage.targets[1] ~= nil then
- Storage.targets[1] = nil
- end
- end
- end
- end)
- NewConnection(UserInput.InputBegan, function(key, wtv)
- if getgenv().NemesisPreBeta.Settings.Disabling.Toggle and key.KeyCode == Enum.KeyCode[getgenv().NemesisPreBeta.Settings.Disabling.Keybind:upper()] and not wtv then
- for i,v in pairs(Storage.Connections) do
- if v then
- v:Disconnect()
- end
- end
- for i,v in pairs(Storage.Drawings) do
- if v and v.__OBJECT_EXISTS then
- print("f")
- end
- end
- end
- end)
- NewConnection(UserInput.InputBegan, function(key, wtv)
- if getgenv().NemesisPreBeta.Miscs.Sorting.Toggled and key.KeyCode == Enum.KeyCode[getgenv().NemesisPreBeta.Miscs.Sorting.Key:upper()] and not wtv then
- local items = {}
- if getgenv().NemesisPreBeta.Miscs.Sorting.Custom.Enable then
- for _, customName in ipairs(getgenv().NemesisPreBeta.Miscs.Sorting.Custom.List) do
- for _, item in pairs(backpack:GetChildren()) do
- if item:IsA("Tool") and item.Name == customName then
- table.insert(items, 1, item)
- break
- end
- end
- end
- end
- for _, item in pairs(backpack:GetChildren()) do
- if item:IsA("Tool") and (not getgenv().NemesisPreBeta.Miscs.Sorting.Custom.Enable or not isInCustomList(item.Name)) then
- table.insert(items, item)
- end
- end
- if getgenv().NemesisPreBeta.Miscs.Sorting.alphabetically and not getgenv().NemesisPreBeta.Miscs.Sorting.Custom.Enable then
- table.sort(items, function(a, b)
- return a.Name < b.Name
- end)
- end
- if getgenv().NemesisPreBeta.Miscs.Sorting.Ammo and not getgenv().NemesisPreBeta.Miscs.Sorting.Custom.Enable then
- table.sort(items, function(a, b)
- return a.Value > b.Value
- end)
- end
- for _, item in ipairs(items) do
- item.Parent = nil
- wait(0.01)
- item.Parent = backpack
- end
- end
- end)
- NewConnection(UserInput.InputBegan, function(key, wtv)
- if getgenv().NemesisPreBeta.Miscs.Animation.Enable and not wtv then
- for animationName, animationData in pairs(getgenv().NemesisPreBeta.Miscs.Animation.Animations) do
- if animationData[1] and key.KeyCode == Enum.KeyCode[animationData[2]] then
- playAnimation(animationName)
- break
- end
- end
- end
- end)
- NewConnection(Rservice.Heartbeat, function()
- --// camlock
- Thread(UpdateCamlock())
- --// Silent UPDATE
- Thread(UpdateSilent())
- end)
- end
- for connection, index in next, getconnections(workspace.CurrentCamera.Changed) do
- index:Disable()
- end
- for connection, index in next, getconnections(workspace.CurrentCamera:GetPropertyChangedSignal("CFrame")) do
- index:Disable()
- end
- local oldIndex
- oldIndex = hookmetamethod(game, "__index", function(t, k)
- if t:IsA("Mouse") and k == "Hit" or k == "Target" then
- if getgenv().NemesisPreBeta.Silent.Toggling.Enable and Chance(getgenv().NemesisPreBeta.Silent.Settings.HitChance, 100) and Storage.targets[2] ~= nil then
- local Hit = CFrame.new(Storage.CFposition)
- return (k == "Hit" and Hit)
- end
- end
- return oldIndex(t, k)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement