UNIVERSAL BULLET (SILENT AIM) Script | FUNCTION FINDER [OPEN SOURCE]

Created by DestinyTakes#7926

Features:

  • UNIVERSAL BULLET SILENT AIM FUNCTION FINDER
  •  
  • DEV NOTES:
  • if ur pc is on the lower end, remove the comments on “–Delay()” and that should give a better scan
  • (the bigger the game, the longer the scan time)
  • *yes, this works on any game*
local Camera = workspace.CurrentCamera
local LocalPlayer = game.Players.LocalPlayer
local Character = LocalPlayer.Character
local Mouse = LocalPlayer:GetMouse()

local Ancestor = game.FindFirstAncestor
local Descendant = game.IsDescendantOf
local Ray = Ray.new
local Type = typeof
local Get = rawget
local Floor = math.floor
local Find = table.find
local Insert = table.insert
local Match = string.find
local Lower = string.lower
local Split = string.split
local Format = string.format
local Delay = task.wait
local Info = debug.getinfo
local Constants = debug.getconstants
local Upvalues = debug.getupvalues
local Protos = debug.getprotos

local Library do
    Library = {
        Instance = {Camera, Mouse, Character, Ray},

        Key = {
            Function = {"shoot", "fire", "bullet", "projectile", "hit", "unit", "trajectory"},
            Instance = {"barrel", "flash", "muzzle", "sight", "aim", "shoot", "fire", "bullet", "unit", "unitray"},
            Class = {"Part", "Attachment", "MeshPart"},
            Ignore = {"CameraModule", "PlayerModule", "Chat", "ClientChatModules", "CameraScript", "ControlScript", "CorePackages", "CoreGui", "RobloxGui", "Animate", "ChatScript", "BubbleChat", "PlayerScriptsLoader"}
        },

        Function = {
            Found = {},
            Suggest = {}
        },

        Search = {
            Instance = function(self, Value)
                if Type(Value) == "Instance" then
                    local Array = Library.Instance

                    for Index = 1, #Array do
                        local Instance = Get(Array, Index)
                        
                        if (Value == Instance or select(2, pcall(function()
                            return Descendant(Value, Instance)
                        end))) then
                            return Value
                        end
                    end
                end
            end,
            Key = function(self, Value)
                if Type(Value) == "string" then
                    local Array = Library.Key.Instance

                    for Index = 1, #Array do
                        local Instance = Get(Array, Index)

                        if Match(Lower(tostring(Value)), Instance) then
                            return Value
                        end
                    end
                end
            end,
            Class = function(self, Value)
                if Type(Value) == "Instance" then
                    local Array = Library.Key.Class

                    for Index = 1, #Array do
                        local Class = Get(Array, Index)

                        if Value.ClassName == Class then
                            return self:Key(Value)
                        end
                    end
                end
            end,
        },

        Scan = function(self, Function)
            local Info = Info(Function)
            local Source = (getfenv(Function).script or nil)

            local Constant = Constants(Function)
            local Upvalue = Upvalues(Function)
            local Proto = Protos(Function)

            if Find(self.Function.Found, Info.name) then
                return
            end

            if Source then
                local Array = self.Key.Ignore

                for Index = 1, #Array do
                    local Script = Get(Array, Index)

                    if (Source.name == Script or select(2, pcall(function()
                        return Ancestor(Source, Script)
                    end))) then
                        return
                    else
                        local Ancestor = Split(Info.source, ".")

                        for Index = 1, #Ancestor do
                            if Find(Array, Get(Ancestor, Index)) then
                                return
                            end
                        end
                    end
                end
            end

            do
                local Function = Info.name

                for Index = 1, #Constant do
                    if self.Search:Key(Get(Constant, Index)) and not Find(self.Function.Found, Function) then
                        --Delay()
                        print("     ", Function)
                        Insert(self.Function.Found, Function)
                    end
                end
            end

            do
                local Function = Info.name

                for Index = 1, #Upvalue do
                    local Value = Get(Constant, Index)
                    local Search = self.Search

                    if (Search:Instance(Value) or Search:Class(Value)) and not Find(self.Function.Found, Function) then
                        --Delay()
                        print("     ", Function)
                        Insert(self.Function.Found, Function)
                    end
                end
            end

            do
                local Function = Info.name
                local Array = self.Key.Function

                for Index = 1, #Array do
                    local Name = Get(Array, Index)
                    local Format = Format((Function .. " (%i, %i)"), Info.numparams, #Proto)

                    if Match(Lower(Function), Name) and not Find(self.Function.Suggest, Format) then
                        Insert(self.Function.Suggest, Format)
                    end
                end
            end

            do
                for Index = 1, #Proto do
                    self:Scan(Get(Proto, Index))
                end
            end
        end
    }
end

local Time = tick()

local Separate = string.rep("---", 100)
print(Separate)
print("Functions Found:")

local Garbage = getgc(true) do

    for Index = 1, #Garbage do
        local Object = Get(Garbage, Index)

        if Type(Object) == "function" and islclosure(Object) and Info(Object).name ~= "" then
            --Delay()
            Library:Scan(Object)
        end
    end
end

print("Functions Suggested:")

do
    local Array = Library.Function.Suggest

    for Index = 1, #Array do
        --Delay()
        print("     ", Get(Array, Index))
    end
end

print("Took", Floor(tick() - Time), "Seconds To Complete.")
print(#Library.Function.Found, "Functions Were Scanned.")
print("Accuracy:", (Floor((#Library.Function.Suggest / #Library.Function.Found) * 100) .. "%"))

print(Separate)

ENJOY!

Warning: DO NOT DOWNLOAD anything from this page, you’re only here to copy the script!

Share This Post

Share on facebook
Share on linkedin
Share on twitter
Share on email