0% found this document useful (0 votes)
97 views11 pages

7 LF AOrg

Uploaded by

enissulejmani.12
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
97 views11 pages

7 LF AOrg

Uploaded by

enissulejmani.12
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 11

-- init

for i,v in next, getconnections(game:GetService("ScriptContext").Error) do


v:Disable()
end

if not game:IsLoaded() then


game.Loaded:Wait()
end

local SilentAimSettings = {
Enabled = false,

ClassName = "Futuretops Silent",


ToggleKey = "RightAlt",

TeamCheck = false,
VisibleCheck = false,
TargetPart = "HumanoidRootPart",
SilentAimMethod = "FindPartOnRayWithIgnoreList",

FOVRadius = 130,
FOVVisible = false,
ShowSilentAimTarget = false,

MouseHitPrediction = false,
MouseHitPredictionAmount = 0.165,
HitChance = 100
}

-- variables
getgenv().SilentAimSettings = SilentAimSettings
local MainFileName = "UniversalSilentAim"
local SelectedFile, FileToSave = "", ""

local Map = nil

local Camera = workspace.CurrentCamera


local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
local HttpService = game:GetService("HttpService")

local LocalPlayer = Players.LocalPlayer


local Mouse = LocalPlayer:GetMouse()

local GetChildren = game.GetChildren


local GetPlayers = Players.GetPlayers
local WorldToScreen = Camera.WorldToScreenPoint
local WorldToViewportPoint = Camera.WorldToViewportPoint
local GetPartsObscuringTarget = Camera.GetPartsObscuringTarget
local FindFirstChild = game.FindFirstChild
local RenderStepped = RunService.RenderStepped
local GuiInset = GuiService.GetGuiInset
local GetMouseLocation = UserInputService.GetMouseLocation

local resume = coroutine.resume


local create = coroutine.create
local ValidTargetParts = {"Head", "HumanoidRootPart"}
local PredictionAmount = 0.165

local mouse_box = Drawing.new("Square")


mouse_box.Visible = true
mouse_box.ZIndex = 999
mouse_box.Color = Color3.fromRGB(54, 57, 241)
mouse_box.Thickness = 20
mouse_box.Size = Vector2.new(20, 20)
mouse_box.Filled = true

local fov_circle = Drawing.new("Circle")


fov_circle.Thickness = 1
fov_circle.NumSides = 100
fov_circle.Radius = 180
fov_circle.Filled = false
fov_circle.Visible = false
fov_circle.ZIndex = 999
fov_circle.Transparency = 1
fov_circle.Color = Color3.fromRGB(54, 57, 241)

local ExpectedArguments = {
FindPartOnRayWithIgnoreList = {
ArgCountRequired = 3,
Args = {
"Instance", "Ray", "table", "boolean", "boolean"
}
},
FindPartOnRayWithWhitelist = {
ArgCountRequired = 3,
Args = {
"Instance", "Ray", "table", "boolean"
}
},
FindPartOnRay = {
ArgCountRequired = 2,
Args = {
"Instance", "Ray", "Instance", "boolean", "boolean"
}
},
Raycast = {
ArgCountRequired = 3,
Args = {
"Instance", "Vector3", "Vector3", "RaycastParams"
}
}
}

function GetMap()
for i,v in next, workspace:GetChildren() do
if v:FindFirstChild("Spawns") then
return v
end
end
return nil
end

function CalculateChance(Percentage)
-- // Floor the percentage
Percentage = math.floor(Percentage)

-- // Get the chance


local chance = math.floor(Random.new().NextNumber(Random.new(), 0, 1) * 100) /
100

-- // Return
return chance <= Percentage / 100
end

--[[file handling]] do
if not isfolder(MainFileName) then
makefolder(MainFileName);
end

if not isfolder(string.format("%s/%s", MainFileName, tostring(game.PlaceId)))


then
makefolder(string.format("%s/%s", MainFileName, tostring(game.PlaceId)))
end
end

local Files = listfiles(string.format("%s/%s", "UniversalSilentAim",


tostring(game.PlaceId)))

-- functions
local function GetFiles() -- credits to the linoria lib for this function,
listfiles returns the files full path and its annoying
local out = {}
for i = 1, #Files do
local file = Files[i]
if file:sub(-4) == '.lua' then
-- i hate this but it has to be done ...

local pos = file:find('.lua', 1, true)


local start = pos

local char = file:sub(pos, pos)


while char ~= '/' and char ~= '\\' and char ~= '' do
pos = pos - 1
char = file:sub(pos, pos)
end

if char == '/' or char == '\\' then


table.insert(out, file:sub(pos + 1, start - 1))
end
end
end

return out
end

local function UpdateFile(FileName)


assert(FileName or FileName == "string", "oopsies");
writefile(string.format("%s/%s/%s.lua", MainFileName, tostring(game.PlaceId),
FileName), HttpService:JSONEncode(SilentAimSettings))
end

local function LoadFile(FileName)


assert(FileName or FileName == "string", "oopsies");

local File = string.format("%s/%s/%s.lua", MainFileName,


tostring(game.PlaceId), FileName)
local ConfigData = HttpService:JSONDecode(readfile(File))
for Index, Value in next, ConfigData do
SilentAimSettings[Index] = Value
end
end

local function getPositionOnScreen(Vector)


local Vec3, OnScreen = WorldToScreen(Camera, Vector)
return Vector2.new(Vec3.X, Vec3.Y), OnScreen
end

local function ValidateArguments(Args, RayMethod)


local Matches = 0
if #Args < RayMethod.ArgCountRequired then
return false
end
for Pos, Argument in next, Args do
if typeof(Argument) == RayMethod.Args[Pos] then
Matches = Matches + 1
end
end
return Matches >= RayMethod.ArgCountRequired
end

local function getDirection(Origin, Position)


return (Position - Origin).Unit * 1000
end

local function getMousePosition()


return GetMouseLocation(UserInputService)
end

local function IsPlayerVisible(Player)


local PlayerCharacter = Player.Character
local LocalPlayerCharacter = LocalPlayer.Character

if not (PlayerCharacter or LocalPlayerCharacter) then return end

local PlayerRoot = FindFirstChild(PlayerCharacter, Options.TargetPart.Value) or


FindFirstChild(PlayerCharacter, "HumanoidRootPart")

if not PlayerRoot then return end

local CastPoints, IgnoreList = {PlayerRoot.Position, LocalPlayerCharacter,


PlayerCharacter}, {LocalPlayerCharacter, PlayerCharacter}
local ObscuringObjects = #GetPartsObscuringTarget(Camera, CastPoints,
IgnoreList)

return ((ObscuringObjects == 0 and true) or (ObscuringObjects > 0 and false))


end

local function getClosestPlayer()


if not Options.TargetPart.Value then return end
local Closest
local DistanceToMouse
for _, Player in next, GetPlayers(Players) do
if Player == LocalPlayer then continue end
if Toggles.TeamCheck.Value and Player.Team == LocalPlayer.Team then
continue end

local Character = Player.Character


if not Character then continue end

if Toggles.VisibleCheck.Value and not IsPlayerVisible(Player) then continue


end

local HumanoidRootPart = FindFirstChild(Character, "HumanoidRootPart")


local Humanoid = FindFirstChild(Character, "Humanoid")
if not HumanoidRootPart or not Humanoid or Humanoid and Humanoid.Health <=
0 then continue end

local ScreenPosition, OnScreen =


getPositionOnScreen(HumanoidRootPart.Position)
if not OnScreen then continue end

local Distance = (getMousePosition() - ScreenPosition).Magnitude


if Distance <= (DistanceToMouse or Options.Radius.Value or 2000) then
Closest = ((Options.TargetPart.Value == "Random" and
Character[ValidTargetParts[math.random(1, #ValidTargetParts)]]) or
Character[Options.TargetPart.Value])
DistanceToMouse = Distance
end
end
return Closest
end

-- ui creating & handling


local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/violin-
suzutsuki/LinoriaLib/main/Library.lua"))()

local Window = Library:CreateWindow({Title = 'FutureTops:Rework Script', Center =


true, AutoShow = true, TabPadding = 8, MenuFadeTime = 0.2})
local GeneralTab = Window:AddTab("Aim")
local VisualsTab = Window:AddTab("ESP")
local ConfigTab = Window:AddTab("Configs")
local MainBOX = GeneralTab:AddLeftTabbox("Main") do
local Main = MainBOX:AddTab("Main")

Main:AddToggle("aim_Enabled", {Text = "Enabled"})


Main:AddToggle("wallbang_Enabled", {Text = "Wallbang"})

Main:AddToggle("TeamCheck", {Text = "Team Check", Default =


SilentAimSettings.TeamCheck}):OnChanged(function()
SilentAimSettings.TeamCheck = Toggles.TeamCheck.Value
end)
Main:AddToggle("VisibleCheck", {Text = "Visible Check", Default =
SilentAimSettings.VisibleCheck}):OnChanged(function()
SilentAimSettings.VisibleCheck = Toggles.VisibleCheck.Value
end)
Main:AddDropdown("TargetPart", {Text = "Target Part", Default =
SilentAimSettings.TargetPart, Values = {"Head", "HumanoidRootPart",
"Random"}}):OnChanged(function()
SilentAimSettings.TargetPart = Options.TargetPart.Value
end)
Main:AddSlider('HitChance', {
Text = 'Hit chance',
Default = 100,
Min = 0,
Max = 100,
Rounding = 1,

Compact = false,
})
Options.HitChance:OnChanged(function()
SilentAimSettings.HitChance = Options.HitChance.Value
end)
end

local MiscellaneousBOX = GeneralTab:AddLeftTabbox("Miscellaneous")


local FieldOfViewBOX = GeneralTab:AddLeftTabbox("Field Of View") do
local Main = FieldOfViewBOX:AddTab("Visuals")

Main:AddToggle("Visible", {Text = "Show FOV Circle"}):AddColorPicker("Color",


{Default = Color3.fromRGB(54, 57, 241)}):OnChanged(function()
fov_circle.Visible = Toggles.Visible.Value
SilentAimSettings.FOVVisible = Toggles.Visible.Value
end)
Main:AddSlider("Radius", {Text = "FOV Circle Radius", Min = 0, Max = 360,
Default = 130, Rounding = 0}):OnChanged(function()
fov_circle.Radius = Options.Radius.Value
SilentAimSettings.FOVRadius = Options.Radius.Value
end)
Main:AddToggle("MousePosition", {Text = "Show Silent Aim
Target"}):AddColorPicker("MouseVisualizeColor", {Default = Color3.fromRGB(54, 57,
241)}):OnChanged(function()
mouse_box.Visible = Toggles.MousePosition.Value
SilentAimSettings.ShowSilentAimTarget = Toggles.MousePosition.Value
end)
local PredictionTab = MiscellaneousBOX:AddTab("Prediction")
PredictionTab:AddToggle("Prediction", {Text = "Mouse.Hit/Target
Prediction"}):OnChanged(function()
SilentAimSettings.MouseHitPrediction = Toggles.Prediction.Value
end)
PredictionTab:AddSlider("Amount", {Text = "Prediction Amount", Min = 0.165, Max
= 1, Default = 0.165, Rounding = 3}):OnChanged(function()
PredictionAmount = Options.Amount.Value
SilentAimSettings.MouseHitPredictionAmount = Options.Amount.Value
end)
end

local CreateConfigurationBOX = ConfigTab:AddRightTabbox("Create Configuration") do


local Main = CreateConfigurationBOX:AddTab("Create Configuration")

Main:AddInput("CreateConfigTextBox", {Default = "", Numeric = false, Finished =


false, Text = "Create Configuration to Create", Tooltip = "Creates a configuration
file containing settings you can save and load", Placeholder = "File Name
here"}):OnChanged(function()
if Options.CreateConfigTextBox.Value and
string.len(Options.CreateConfigTextBox.Value) ~= "" then
FileToSave = Options.CreateConfigTextBox.Value
end
end)

Main:AddButton("Create Configuration File", function()


if FileToSave ~= "" or FileToSave ~= nil then
UpdateFile(FileToSave)
end
end)
end

local SaveConfigurationBOX = ConfigTab:AddRightTabbox("Save Configuration") do


local Main = SaveConfigurationBOX:AddTab("Save Configuration")
Main:AddDropdown("SaveConfigurationDropdown", {Values = GetFiles(), Text =
"Choose Configuration to Save", Default = "--"})
Main:AddButton("Save Configuration", function()
if Options.SaveConfigurationDropdown.Value then
UpdateFile(Options.SaveConfigurationDropdown.Value)
end
end)
end

local LoadConfigurationBOX = ConfigTab:AddRightTabbox("Load Configuration") do


local Main = LoadConfigurationBOX:AddTab("Load Configuration")

Main:AddDropdown("LoadConfigurationDropdown", {Values = GetFiles(), Text =


"Choose Configuration to Load", Default = "---"})
Main:AddButton("Load Configuration", function()
if table.find(GetFiles(), Options.LoadConfigurationDropdown.Value) then
LoadFile(Options.LoadConfigurationDropdown.Value)

Toggles.TeamCheck:SetValue(SilentAimSettings.TeamCheck)
Toggles.VisibleCheck:SetValue(SilentAimSettings.VisibleCheck)
Options.TargetPart:SetValue(SilentAimSettings.TargetPart)
Toggles.Visible:SetValue(SilentAimSettings.FOVVisible)
Options.Radius:SetValue(SilentAimSettings.FOVRadius)
Toggles.MousePosition:SetValue(SilentAimSettings.ShowSilentAimTarget)
Toggles.Prediction:SetValue(SilentAimSettings.MouseHitPrediction)
Options.Amount:SetValue(SilentAimSettings.MouseHitPredictionAmount)
Options.HitChance:SetValue(SilentAimSettings.HitChance)
end
end)
end

resume(create(function()
RenderStepped:Connect(function()
if Toggles.MousePosition.Value and Toggles.aim_Enabled.Value then
if getClosestPlayer() then
local Root = getClosestPlayer().Parent.PrimaryPart or
getClosestPlayer()
local RootToViewportPoint, IsOnScreen =
WorldToViewportPoint(Camera, Root.Position);
-- using PrimaryPart instead because if your Target Part is
"Random" it will flicker the square between the Target's Head and HumanoidRootPart
(its annoying)

mouse_box.Visible = IsOnScreen
mouse_box.Position = Vector2.new(RootToViewportPoint.X,
RootToViewportPoint.Y)
else
mouse_box.Visible = false
mouse_box.Position = Vector2.new()
end
end

if Toggles.Visible.Value then
fov_circle.Visible = Toggles.Visible.Value
fov_circle.Color = Options.Color.Value
fov_circle.Position = getMousePosition()
end
end)
end))

RenderStepped:Connect(function(deltaTime)
Map = GetMap()
end)

local ESPContainer = VisualsTab:AddLeftGroupbox('Enemy ESP')


local ESPConfiguration = VisualsTab:AddRightGroupbox('ESP Config')

local ESP = loadstring(game:HttpGet("https://kiriot22.com/releases/ESP.lua"))()


ESP:Toggle(true)
ESP.Color = Color3.new(1,1,1)

ESPContainer:AddToggle('boxesTGL', {Text = 'Boxes', Default = false, Tooltip =


'Toggle the Boxes ESP'})
ESPContainer:AddToggle('tracersTGL', {Text = 'Tracers', Default = false, Tooltip =
'Toggle the Tracers ESP'})
ESPContainer:AddToggle('namesTGL', {Text = 'Names', Default = false, Tooltip =
'Toggle the Names ESP'})

ESPConfiguration:AddToggle('teamESPTgl', {Text = 'Team ESP', Default = false,


Tooltip = 'Choose if you want ESP on your teammates aswell!'})
ESPConfiguration:AddToggle('teamcolorTgl', {Text = 'Use team color', Default =
true, Tooltip = 'Choose if you want to use the team color or not.'})
ESPConfiguration:AddToggle('boxesCameraTgl', {Text = 'Boxes Face Camera', Default =
true, Tooltip = 'Choose if you want the boxes to face the camera or not.'})
ESPConfiguration:AddLabel('ESP Color'):AddColorPicker('ESP_Color', {Default =
Color3.new(1, 1, 0)})

Toggles.boxesTGL:OnChanged(function()
ESP.Boxes = Toggles.boxesTGL.Value
end)

Toggles.tracersTGL:OnChanged(function()
ESP.Tracers = Toggles.tracersTGL.Value
end)

Toggles.namesTGL:OnChanged(function()
ESP.Names = Toggles.namesTGL.Value
end)

Toggles.teamcolorTgl:OnChanged(function()
ESP.TeamColor = Toggles.teamcolorTgl.Value
end)
Toggles.boxesCameraTgl:OnChanged(function()
ESP.FaceCamera = Toggles.boxesCameraTgl.Value
end)

Options.ESP_Color:OnChanged(function()
ESP.Color = Options.ESP_Color.Value
end)

Toggles.teamESPTgl:OnChanged(function()
ESP.TeamMates = Toggles.teamESPTgl.Value
end)

local MenuGroup = Window:AddTab("UI Settings"):AddLeftGroupbox('Menu')

MenuGroup:AddButton('Unload', function() Library:Unload() end)


MenuGroup:AddLabel('Menu bind'):AddKeyPicker('MenuKeybind', { Default = 'End', NoUI
= true, Text = 'Menu keybind' })

Library.ToggleKeybind = Options.MenuKeybind

-- hooks
local oldNamecall
oldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(...)
local Method = getnamecallmethod()
local Arguments = {...}
local self = Arguments[1]
local chance = CalculateChance(SilentAimSettings.HitChance)
if Toggles.aim_Enabled.Value and self == workspace and not checkcaller() and
chance == true then
if Method == "FindPartOnRayWithIgnoreList" then
if ValidateArguments(Arguments,
ExpectedArguments.FindPartOnRayWithIgnoreList) then
local A_Ray = Arguments[2]

local HitPart = getClosestPlayer()


if HitPart then
local Origin = A_Ray.Origin
local Direction = getDirection(Origin, HitPart.Position)
Arguments[2] = Ray.new(Origin, Direction)
if Toggles.wallbang_Enabled.Value then
if Map then
table.insert(Arguments[3], Map)
end
end

return oldNamecall(unpack(Arguments))
end
end
end
end
return oldNamecall(...)
end))

-- Library functions
-- Sets the watermark visibility
Library:SetWatermarkVisibility(true)

-- Example of dynamically-updating watermark with common traits (fps and ping)


local FrameTimer = tick()
local FrameCounter = 0;
local FPS = 60;

local WatermarkConnection =
game:GetService('RunService').RenderStepped:Connect(function()
FrameCounter += 1;

if (tick() - FrameTimer) >= 1 then


FPS = FrameCounter;
FrameTimer = tick();
FrameCounter = 0;
end;

Library:SetWatermark(('Future | %s fps | %s ms'):format(


math.floor(FPS),
math.floor(game:GetService('Stats').Network.ServerStatsItem['Data
Ping']:GetValue())
));
end);

Library.KeybindFrame.Visible = false; -- todo: add a function for this

Library:OnUnload(function()
WatermarkConnection:Disconnect()

print('Unloaded!')
Library.Unloaded = true
end)

local MenuGroup = Tabs['UI Settings']:AddLeftGroupbox('Menu')

MenuGroup:AddButton('Unload', function() Library:Unload() end)


MenuGroup:AddLabel('Menu bind'):AddKeyPicker('MenuKeybind', { Default = 'End', NoUI
= true, Text = 'Ui Keybind' })

Library.ToggleKeybind = Options.MenuKeybind -- Allows you to have a custom keybind


for the menu

-- Addons:
-- SaveManager (Allows you to have a configuration system)
-- ThemeManager (Allows you to have a menu theme system)

-- Hand the library over to our managers


ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)

-- Ignore keys that are used by ThemeManager.


-- (we dont want configs to save themes, do we?)
SaveManager:IgnoreThemeSettings()

-- Adds our MenuKeybind to the ignore list


-- (do you want each config to have a different menu key? probably not.)
SaveManager:SetIgnoreIndexes({ 'MenuKeybind' })

-- use case for doing it this way:


-- a script hub could have themes in a global folder
-- and game configs in a separate folder per game
ThemeManager:SetFolder('MyScriptHub')
SaveManager:SetFolder('MyScriptHub/specific-game')

-- Builds our config menu on the right side of our tab


SaveManager:BuildConfigSection(Tabs['UI Settings'])

-- Builds our theme menu (with plenty of built in themes) on the left side
-- NOTE: you can also call ThemeManager:ApplyToGroupbox to add it to a specific
groupbox
ThemeManager:ApplyToTab(Tabs['UI Settings'])

-- You can use the SaveManager:LoadAutoloadConfig() to load a config


-- which has been marked to be one that auto loads!
SaveManager:LoadAutoloadConfig()

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy