https://github.com/leanx2/leanx
https://github.com/leanx2/leanx
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/leanx2/leanx
- Owner: LeanX2
- Created: 2024-07-15T13:22:51.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-13T10:28:28.000Z (over 1 year ago)
- Last Synced: 2025-02-13T11:31:57.545Z (over 1 year ago)
- Size: 191 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
-- https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
--[[
New Dex
Final Version
Developed by Moon
Modified for Infinite Yield
Dex is a debugging suite designed to help the user debug games and find any potential vulnerabilities.
]]
local nodes = {}
local selection
local cloneref = cloneref or function(...) return ... end
local EmbeddedModules = {
Explorer = function()
--[[
Explorer App Module
The main explorer interface
]]
-- Common Locals
local Main,Lib,Apps,Settings -- Main Containers
local Explorer, Properties, ScriptViewer, Notebook -- Major Apps
local API,RMD,env,service,plr,create,createSimple -- Main Locals
local function initDeps(data)
Main = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
Lib = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
Apps = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
Settings = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
API = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
RMD = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
env = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
service = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
plr = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
create = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
createSimple = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
local function initAfterMain()
Explorer = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
Properties = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
ScriptViewer = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
Notebook = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
local function main()
local Explorer = {}
local tree,listEntries,explorerOrders,searchResults,specResults = {},{},{},{},{}
local expanded
local entryTemplate,treeFrame,toolBar,descendantAddedCon,descendantRemovingCon,itemChangedCon
local ffa = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local getDescendants = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local getTextSize = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local updateDebounce,refreshDebounce = false,false
local nilNode = {Obj = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("Folder")}
local idCounter = 0
local scrollV,scrollH,clipboard
local renameBox,renamingNode,searchFunc
local sortingEnabled,autoUpdateSearch
local table,math = table,math
local nilMap,nilCons = {},{}
local connectSignal = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local addObject,removeObject,moveObject = nil,nil,nil
addObject = function(root)
if nodes[root] then return end
local isNil = false
local rootParObj = ffa(root,"Instance")
local par = nodes[rootParObj]
-- Nil Handling
if not par then
if nilMap[root] then
nilCons[root] = nilCons[root] or {
connectSignal(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,addObject),
connectSignal(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,moveObject),
}
par = nilNode
isNil = true
else
return
end
elseif nilMap[rootParObj] or par == nilNode then
nilMap[root] = true
nilCons[root] = nilCons[root] or {
connectSignal(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,addObject),
connectSignal(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,moveObject),
}
isNil = true
end
local newNode = {Obj = root, Parent = par}
nodes[root] = newNode
-- Automatic sorting if expanded
if sortingEnabled and expanded[par] and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local left,right = 1,#par
local floor = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sorter = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local pos = (right == 0 and 1)
if not pos then
while true do
if left >= right then
if sorter(newNode,par[left]) then
pos = left
else
pos = left+1
end
break
end
local mid = floor((left+right)/2)
if sorter(newNode,par[mid]) then
right = mid-1
else
left = mid+1
end
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(par,pos,newNode)
else
par[#par+1] = newNode
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = nil
end
local insts = getDescendants(root)
for i = 1,#insts do
local obj = insts[i]
if nodes[obj] then continue end -- Deferred
local par = nodes[ffa(obj,"Instance")]
if not par then continue end
local newNode = {Obj = obj, Parent = par}
nodes[obj] = newNode
par[#par+1] = newNode
-- Nil Handling
if isNil then
nilMap[obj] = true
nilCons[obj] = nilCons[obj] or {
connectSignal(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,addObject),
connectSignal(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,moveObject),
}
end
end
if searchFunc and autoUpdateSearch then
searchFunc({newNode})
end
if not updateDebounce and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(par) then
if expanded[par] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
elseif not refreshDebounce then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
end
end
removeObject = function(root)
local node = nodes[root]
if not node then return end
-- Nil Handling
if nilMap[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip] then
moveObject(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
return
end
local par = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if par then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
end
local function recur(root)
for i = 1,#root do
local node = root[i]
if not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
nodes[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip] = nil
if #node > 0 then recur(node) end
end
end
end
recur(node)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
nodes[root] = nil
if par and not updateDebounce and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(par) then
if expanded[par] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
elseif not refreshDebounce then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
end
end
moveObject = function(obj)
local node = nodes[obj]
if not node then return end
local oldPar = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local newPar = nodes[ffa(obj,"Instance")]
if oldPar == newPar then return end
-- Nil Handling
if not newPar then
if nilMap[obj] then
newPar = nilNode
else
return
end
elseif nilMap[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip] or newPar == nilNode then
nilMap[obj] = true
nilCons[obj] = nilCons[obj] or {
connectSignal(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,addObject),
connectSignal(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,moveObject),
}
end
if oldPar then
local parPos = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(oldPar,node)
if parPos then https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(oldPar,parPos) end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = nil
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = newPar
if sortingEnabled and expanded[newPar] and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local left,right = 1,#newPar
local floor = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sorter = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local pos = (right == 0 and 1)
if not pos then
while true do
if left >= right then
if sorter(node,newPar[left]) then
pos = left
else
pos = left+1
end
break
end
local mid = floor((left+right)/2)
if sorter(node,newPar[mid]) then
right = mid-1
else
left = mid+1
end
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newPar,pos,node)
else
newPar[#newPar+1] = node
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = nil
end
if searchFunc and searchResults[node] then
local currentNode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
while currentNode and (not searchResults[currentNode] or expanded[currentNode] == 0) do
expanded[currentNode] = true
searchResults[currentNode] = true
currentNode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
end
if not updateDebounce and (https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newPar) or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(oldPar)) then
if expanded[newPar] or expanded[oldPar] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
elseif not refreshDebounce then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 0
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 0
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 20
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 32
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = {}
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
renameBox = create({{1,"TextBox",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0.17647059261799,0.17647059261799,0.17647059261799),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0.062745101749897,0.51764708757401,1),BorderMode=2,ClearTextOnFocus=false,Font=3,Name="RenameBox",https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0.69803923368454,0.69803923368454,0.69803923368454),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,26,0,2),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,200,0,16),Text="",https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),TextSize=14,TextXAlignment=0,Visible=false,ZIndex=2}}})
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function()
if not renamingNode then return end
pcall(function() https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip end)
renamingNode = nil
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 1
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip + 1
end)
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(node)
renamingNode = node
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = tostring(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
renameBox:CaptureFocus()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(val)
sortingEnabled = val
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = val
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
local maxNodes = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip / 20)
local maxX = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local totalWidth = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = maxNodes
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = #tree + 1
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = maxX
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = totalWidth
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = #tree + 1 > maxNodes
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = totalWidth > maxX
local oldSize = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and -16 or 0),1,(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and -39 or -23))
if oldSize ~= https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
else
scrollV:Update()
scrollH:Update()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,maxX-100,0,16)
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,16,1,-39)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,-16,0,16)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
else
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,16,1,-23)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,0,0,16)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(a,b)
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then return false end -- Ghost node
local aClass = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local bClass = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if not aClass then aClass = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = aClass end
if not bClass then bClass = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = bClass end
local aOrder = explorerOrders[aClass]
local bOrder = explorerOrders[bClass]
if not aOrder then aOrder = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[aClass] and tonumber(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[aClass].ExplorerOrder) or 9999 explorerOrders[aClass] = aOrder end
if not bOrder then bOrder = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[bClass] and tonumber(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[bClass].ExplorerOrder) or 9999 explorerOrders[bClass] = bOrder end
if aOrder ~= bOrder then
return aOrder < bOrder
else
local aName,bName = tostring(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip),tostring(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
if aName ~= bName then
return aName < bName
elseif aClass ~= bClass then
return aClass < bClass
else
local aId = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip if not aId then aId = idCounter idCounter = (idCounter+0.001)%999999999 https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = aId end
local bId = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip if not bId then bId = idCounter idCounter = (idCounter+0.001)%999999999 https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = bId end
return aId < bId
end
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(tree)
local maxNameWidth,maxDepth,count = 0,1,1
local nameCache = {}
local font = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local size = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,20)
local useNameWidth = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local tSort = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sortFunc = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local isSearching = (expanded == https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
local textServ = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local function recur(root,depth)
if depth > maxDepth then maxDepth = depth end
depth = depth + 1
if sortingEnabled and not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
tSort(root,sortFunc)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
end
for i = 1,#root do
local n = root[i]
if (isSearching and not searchResults[n]) or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then continue end
if useNameWidth then
local nameWidth = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if not nameWidth then
local objName = tostring(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
nameWidth = nameCache[objName]
if not nameWidth then
nameWidth = getTextSize(textServ,objName,14,font,size).X
nameCache[objName] = nameWidth
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = nameWidth
end
if nameWidth > maxNameWidth then
maxNameWidth = nameWidth
end
end
tree[count] = n
count = count + 1
if expanded[n] and #n > 0 then
recur(n,depth)
end
end
end
recur(nodes[game["Run Service"].Parent],1)
-- Nil Instances
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
if not (isSearching and not searchResults[nilNode]) then
tree[count] = nilNode
count = count + 1
if expanded[nilNode] then
recur(nilNode,2)
end
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = maxNameWidth
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = maxDepth
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = useNameWidth and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip*maxDepth + maxNameWidth + 26 or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip*maxDepth + 226
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(offX,offY)
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then return end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
local dragTree = treeFrame:Clone()
dragTree:ClearAllChildren()
for i,v in pairs(listEntries) do
local node = tree[i + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if node and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] then
local clone = v:Clone()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = dragTree
end
end
local newGui = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("ScreenGui")
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = newGui
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newGui)
local dragOutline = create({
{1,"Frame",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BackgroundTransparency=1,Name="DragSelect",https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,0,1,0),}},
{2,"Frame",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BorderSizePixel=0,Name="Line",Parent={1},https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,0,0,1),ZIndex=2,}},
{3,"Frame",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BorderSizePixel=0,Name="Line",Parent={1},https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,0,1,-1),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,0,0,1),ZIndex=2,}},
{4,"Frame",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BorderSizePixel=0,Name="Line",Parent={1},https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,1,1,0),ZIndex=2,}},
{5,"Frame",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BorderSizePixel=0,Name="Line",Parent={1},https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,-1,0,0),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,1,1,0),ZIndex=2,}},
})
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = treeFrame
local mouse = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
local function move()
local posX = mouse.X - offX
local posY = mouse.Y - offY
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,posX,0,posY)
for i = 1,#listEntries do
local entry = listEntries[i]
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(entry) then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,0,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,0,20)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
return
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
end
move()
local input = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local mouseEvent,releaseEvent
mouseEvent = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(input)
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip == https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
move()
end
end)
releaseEvent = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(input)
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip == https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
releaseEvent:Disconnect()
mouseEvent:Disconnect()
newGui:Destroy()
dragOutline:Destroy()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
for i = 1,#listEntries do
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(listEntries[i]) then
local node = tree[i + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if node then
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] then return end
local newPar = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#sList do
local n = sList[i]
pcall(function() https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = newPar end)
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(sList[1])
end
break
end
end
end
end)
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(index)
local newEntry = entryTemplate:Clone()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,0,0,20*(index-1))
local isRenaming = false
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(input)
local node = tree[index + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if not node or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip ~= https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then return end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 0
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 0
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(input)
local node = tree[index + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if not node or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip ~= https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then return end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 1
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function()
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function()
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(input)
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip == https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local releaseEvent,mouseEvent
local mouse = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or plr:GetMouse()
local startX = mouse.X
local startY = mouse.Y
local listOffsetX = startX - https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local listOffsetY = startY - https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
releaseEvent = cloneref(game["Run Service"].Parent:GetService("UserInputService")).InputEnded:Connect(function(input)
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip == https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
releaseEvent:Disconnect()
mouseEvent:Disconnect()
end
end)
mouseEvent = cloneref(game["Run Service"].Parent:GetService("UserInputService")).InputChanged:Connect(function(input)
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip == https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local deltaX = mouse.X - startX
local deltaY = mouse.Y - startY
local dist = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(deltaX^2 + deltaY^2)
if dist > 5 then
releaseEvent:Disconnect()
mouseEvent:Disconnect()
isRenaming = false
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(listOffsetX,listOffsetY)
end
end
end)
end
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function()
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(input)
local node = tree[index + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if not node or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip ~= https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then return end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, expanded[node] and "Collapse_Over" or "Expand_Over")
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(input)
local node = tree[index + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if not node or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip ~= https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then return end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, expanded[node] and "Collapse" or "Expand")
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function()
local node = tree[index + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if not node or #node == 0 then return end
expanded[node] = not expanded[node]
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = treeFrame
return newEntry
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
local maxNodes = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip((https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) / 20),0)
local renameNodeVisible = false
local isa = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,maxNodes do
local entry = listEntries[i]
if not listEntries[i] then entry = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(i) listEntries[i] = entry https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(entry) end
local node = tree[i + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if node then
local obj = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local depth = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip*https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(node)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,0,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,0,20)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = tostring(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,depth,0,0)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,-depth,1,0)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = (https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
if (isa(obj,"LocalScript") or isa(obj,"Script")) and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, isa(obj,"LocalScript") and "LocalScript_Disabled" or "Script_Disabled")
else
local rmdEntry = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, rmdEntry and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or 0)
end
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 0
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 0
else
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(entry) then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
else
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 1
end
end
if node == renamingNode then
renameNodeVisible = true
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,depth+https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,0,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip+2)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
end
if #node > 0 and expanded[node] ~= 0 then
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, expanded[node] and "Collapse_Over" or "Expand_Over")
else
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, expanded[node] and "Collapse" or "Expand")
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
else
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
end
else
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
end
end
if not renameNodeVisible then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
end
for i = maxNodes+1, #listEntries do
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(listEntries[i])
listEntries[i]:Destroy()
listEntries[i] = nil
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(instant)
updateDebounce = true
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(not instant and 0.1)
if not updateDebounce then return end
updateDebounce = false
if not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() then return end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(norefresh)
updateDebounce = false
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
if not norefresh then https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
refreshDebounce = true
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0.1)
refreshDebounce = false
if updateDebounce or not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() then return end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(node)
if not node then return end
local curNode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
while curNode do
if not expanded[curNode] then return false end
curNode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
return true
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(node)
local depth = 0
if node == nilNode then
return 1
end
local curNode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
while curNode do
if curNode == nilNode then depth = depth + 1 end
curNode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
depth = depth + 1
end
return depth
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
if descendantAddedCon then descendantAddedCon:Disconnect() end
if descendantRemovingCon then descendantRemovingCon:Disconnect() end
if itemChangedCon then itemChangedCon:Disconnect() end
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
descendantAddedCon = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(addObject)
descendantRemovingCon = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(removeObject)
else
descendantAddedCon = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(obj) pcall(addObject,obj) end)
descendantRemovingCon = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(obj) pcall(removeObject,obj) end)
end
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
itemChangedCon = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(obj,prop)
if prop == "Parent" and nodes[obj] then
moveObject(obj)
elseif prop == "Name" and nodes[obj] then
nodes[obj].NameWidth = nil
end
end)
else
itemChangedCon = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(obj,prop)
if prop == "Parent" and nodes[obj] then
moveObject(obj)
end
end)
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(node)
if not node then return end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(node)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(true)
local visibleSpace = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i,v in next,tree do
if v == node then
local relative = i - 1
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip > relative then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = relative
elseif https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip + visibleSpace - 1 <= relative then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = relative - visibleSpace + 2
end
end
end
scrollV:Update() https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(obj)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(nodes[obj])
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(node,expandRoot)
if not node then return end
local hasExpanded = false
if expandRoot and not expanded[node] then
expanded[node] = true
hasExpanded = true
end
local currentNode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
while currentNode do
hasExpanded = true
expanded[currentNode] = true
currentNode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
if hasExpanded and not updateDebounce then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)(true)
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
local context = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
context:Clear()
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local emptyClipboard = #clipboard == 0
local presentClasses = {}
local apiClasses = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1, #sList do
local node = sList[i]
local class = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if not class then class = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = class end
local curClass = apiClasses[class]
while curClass and not presentClasses[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip] do
presentClasses[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip] = true
curClass = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
end
context:AddRegistered("CUT")
context:AddRegistered("COPY")
context:AddRegistered("PASTE", emptyClipboard)
context:AddRegistered("DUPLICATE")
context:AddRegistered("DELETE")
context:AddRegistered("RENAME", #sList ~= 1)
context:AddDivider()
context:AddRegistered("GROUP")
context:AddRegistered("UNGROUP")
context:AddRegistered("SELECT_CHILDREN")
context:AddRegistered("JUMP_TO_PARENT")
context:AddRegistered("EXPAND_ALL")
context:AddRegistered("COLLAPSE_ALL")
context:AddDivider()
if expanded == https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then context:AddRegistered("CLEAR_SEARCH_AND_JUMP_TO") end
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then context:AddRegistered("COPY_PATH") end
context:AddRegistered("INSERT_OBJECT")
context:AddRegistered("SAVE_INST")
context:AddRegistered("CALL_FUNCTION")
context:AddRegistered("VIEW_CONNECTIONS")
context:AddRegistered("GET_REFERENCES")
context:AddRegistered("VIEW_API")
context:QueueDivider()
if presentClasses["BasePart"] or presentClasses["Model"] then
context:AddRegistered("TELEPORT_TO")
context:AddRegistered("VIEW_OBJECT")
end
if presentClasses["TouchTransmitter"] then context:AddRegistered("FIRE_TOUCHTRANSMITTER", firetouchinterest == nil) end
if presentClasses["ClickDetector"] then context:AddRegistered("FIRE_CLICKDETECTOR", fireclickdetector == nil) end
if presentClasses["ProximityPrompt"] then context:AddRegistered("FIRE_PROXIMITYPROMPT", fireproximityprompt == nil) end
if presentClasses["Player"] then context:AddRegistered("SELECT_CHARACTER") end
if presentClasses["Players"] then context:AddRegistered("SELECT_LOCAL_PLAYER") end
if presentClasses["LuaSourceContainer"] then context:AddRegistered("VIEW_SCRIPT") end
if sMap[nilNode] then
context:AddRegistered("REFRESH_NIL")
context:AddRegistered("HIDE_NIL")
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
context:Show()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
local context = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
context:Register("CUT",{Name = "Cut", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Cut", DisabledIcon = "Cut_Disabled", Shortcut = "Ctrl+Z", OnClick = function()
local destroy,clone = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sList,newClipboard = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,{}
local count = 1
for i = 1,#sList do
local inst = sList[i].Obj
local s,cloned = pcall(clone,inst)
if s and cloned then
newClipboard[count] = cloned
count = count + 1
end
pcall(destroy,inst)
end
clipboard = newClipboard
selection:Clear()
end})
context:Register("COPY",{Name = "Copy", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Copy", DisabledIcon = "Copy_Disabled", Shortcut = "Ctrl+C", OnClick = function()
local clone = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sList,newClipboard = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,{}
local count = 1
for i = 1,#sList do
local inst = sList[i].Obj
local s,cloned = pcall(clone,inst)
if s and cloned then
newClipboard[count] = cloned
count = count + 1
end
end
clipboard = newClipboard
end})
context:Register("PASTE",{Name = "Paste Into", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Paste", DisabledIcon = "Paste_Disabled", Shortcut = "Ctrl+Shift+V", OnClick = function()
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local newSelection = {}
local count = 1
for i = 1,#sList do
local node = sList[i]
local inst = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(node,true)
for c = 1,#clipboard do
local cloned = clipboard[c]:Clone()
if cloned then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = inst
local clonedNode = nodes[cloned]
if clonedNode then newSelection[count] = clonedNode count = count + 1 end
end
end
end
selection:SetTable(newSelection)
if #newSelection > 0 then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newSelection[1])
end
end})
context:Register("DUPLICATE",{Name = "Duplicate", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Copy", DisabledIcon = "Copy_Disabled", Shortcut = "Ctrl+D", OnClick = function()
local clone = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local newSelection = {}
local count = 1
for i = 1,#sList do
local node = sList[i]
local inst = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local instPar = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(node)
local s,cloned = pcall(clone,inst)
if s and cloned then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = instPar
local clonedNode = nodes[cloned]
if clonedNode then newSelection[count] = clonedNode count = count + 1 end
end
end
selection:SetTable(newSelection)
if #newSelection > 0 then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newSelection[1])
end
end})
context:Register("DELETE",{Name = "Delete", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Delete", DisabledIcon = "Delete_Disabled", Shortcut = "Del", OnClick = function()
local destroy = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#sList do
pcall(destroy,sList[i].Obj)
end
selection:Clear()
end})
context:Register("RENAME",{Name = "Rename", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Rename", DisabledIcon = "Rename_Disabled", Shortcut = "F2", OnClick = function()
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if sList[1] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(sList[1])
end
end})
context:Register("GROUP",{Name = "Group", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Group", DisabledIcon = "Group_Disabled", Shortcut = "Ctrl+G", OnClick = function()
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if #sList == 0 then return end
local model = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("Model",sList[#sList]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
for i = 1,#sList do
pcall(function() sList[i]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = model end)
end
if nodes[model] then
selection:Set(nodes[model])
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(nodes[model])
end
end})
context:Register("UNGROUP",{Name = "Ungroup", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Ungroup", DisabledIcon = "Ungroup_Disabled", Shortcut = "Ctrl+U", OnClick = function()
local newSelection = {}
local count = 1
local isa = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local function ungroup(node)
local par = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local ch = {}
local chCount = 1
for i = 1,#node do
local n = node[i]
newSelection[count] = n
ch[chCount] = n
count = count + 1
chCount = chCount + 1
end
for i = 1,#ch do
pcall(function() ch[i]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = par end)
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
for i,v in next,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip do
if isa(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,"Model") then
ungroup(v)
end
end
selection:SetTable(newSelection)
if #newSelection > 0 then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newSelection[1])
end
end})
context:Register("SELECT_CHILDREN",{Name = "Select Children", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "SelectChildren", DisabledIcon = "SelectChildren_Disabled", OnClick = function()
local newSelection = {}
local count = 1
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#sList do
local node = sList[i]
for ind = 1,#node do
local cNode = node[ind]
if ind == 1 then https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(cNode) end
newSelection[count] = cNode
count = count + 1
end
end
selection:SetTable(newSelection)
if #newSelection > 0 then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newSelection[1])
else
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
end})
context:Register("JUMP_TO_PARENT",{Name = "Jump to Parent", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "JumpToParent", OnClick = function()
local newSelection = {}
local count = 1
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#sList do
local node = sList[i]
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
newSelection[count] = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
count = count + 1
end
end
selection:SetTable(newSelection)
if #newSelection > 0 then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newSelection[1])
else
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
end})
context:Register("TELEPORT_TO",{Name = "Teleport To", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "TeleportTo", OnClick = function()
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local isa = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local hrp = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("HumanoidRootPart")
if not hrp then return end
for i = 1,#sList do
local node = sList[i]
if isa(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,"BasePart") then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
break
elseif isa(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,"Model") then
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
break
else
local part = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("BasePart",true)
if part and nodes[part] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = nodes[part]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
end
end
end
end})
context:Register("EXPAND_ALL",{Name = "Expand All", OnClick = function()
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local function expand(node)
expanded[node] = true
for i = 1,#node do
if #node[i] > 0 then
expand(node[i])
end
end
end
for i = 1,#sList do
expand(sList[i])
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end})
context:Register("COLLAPSE_ALL",{Name = "Collapse All", OnClick = function()
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local function expand(node)
expanded[node] = nil
for i = 1,#node do
if #node[i] > 0 then
expand(node[i])
end
end
end
for i = 1,#sList do
expand(sList[i])
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end})
context:Register("CLEAR_SEARCH_AND_JUMP_TO",{Name = "Clear Search and Jump to", OnClick = function()
local newSelection = {}
local count = 1
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#sList do
newSelection[count] = sList[i]
count = count + 1
end
selection:SetTable(newSelection)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
if #newSelection > 0 then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newSelection[1])
end
end})
local clth = function(str)
if str:sub(1, 28) == "game:GetService(\"Workspace\")" then str = str:gsub("game:GetService%(\"Workspace\"%)", "workspace", 1) end
if str:sub(1, 27 + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) == "game:GetService(\"Players\")." .. https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then str = str:gsub("game:GetService%(\"Players\"%)." .. https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, "game:GetService(\"Players\").LocalPlayer", 1) end
return str
end
context:Register("COPY_PATH",{Name = "Copy Path", OnClick = function()
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if #sList == 1 then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(clth(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(sList[1].Obj)))
elseif #sList > 1 then
local resList = {"{"}
local count = 2
for i = 1,#sList do
local path = "\t"https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(sList[i].Obj))..","
if #path > 0 then
resList[count] = path
count = count+1
end
end
resList[count] = "}"
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(resList,"\n"))
end
end})
context:Register("INSERT_OBJECT",{Name = "Insert Object", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "InsertObject", OnClick = function()
local mouse = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local x,y = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or mouse.X, https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or mouse.Y
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(x,y)
end})
context:Register("CALL_FUNCTION",{Name = "Call Function", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = 66, OnClick = function()
end})
context:Register("GET_REFERENCES",{Name = "Get Lua References", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = 34, OnClick = function()
end})
context:Register("SAVE_INST",{Name = "Save to File", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Save", OnClick = function()
end})
context:Register("VIEW_CONNECTIONS",{Name = "View Connections", OnClick = function()
end})
context:Register("VIEW_API",{Name = "View API Page", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "Reference", OnClick = function()
end})
context:Register("VIEW_OBJECT",{Name = "View Object (Right click to reset)", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = 5, OnClick = function()
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local isa = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#sList do
local node = sList[i]
if isa(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,"BasePart") or isa(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,"Model") then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
break
end
end
end, OnRightClick = function()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end})
context:Register("FIRE_TOUCHTRANSMITTER",{Name = "Fire TouchTransmitter", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = 37, OnClick = function()
local hrp = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("HumanoidRootPart")
if not hrp then return end
for _, v in ipairs(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) do if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("TouchTransmitter") then firetouchinterest(hrp, https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, 0) end end
end})
context:Register("FIRE_CLICKDETECTOR",{Name = "Fire ClickDetector", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = 41, OnClick = function()
local hrp = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("HumanoidRootPart")
if not hrp then return end
for _, v in ipairs(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) do if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("ClickDetector") then fireclickdetector(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) end end
end})
context:Register("FIRE_PROXIMITYPROMPT",{Name = "Fire ProximityPrompt", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = 124, OnClick = function()
local hrp = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("HumanoidRootPart")
if not hrp then return end
for _, v in ipairs(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) do if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("ProximityPrompt") then fireproximityprompt(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) end end
end})
context:Register("VIEW_SCRIPT",{Name = "View Script", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = "ViewScript", OnClick = function()
local scr = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[1] and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[1].Obj
if scr then https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(scr) end
end})
context:Register("SELECT_CHARACTER",{Name = "Select Character", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = 9, OnClick = function()
local newSelection = {}
local count = 1
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local isa = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#sList do
local node = sList[i]
if isa(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,"Player") and nodes[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip] then
newSelection[count] = nodes[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
count = count + 1
end
end
selection:SetTable(newSelection)
if #newSelection > 0 then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(newSelection[1])
else
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
end})
context:Register("SELECT_LOCAL_PLAYER",{Name = "Select Local Player", IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = 9, OnClick = function()
pcall(function() if nodes[plr] then selection:Set(nodes[plr]) https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(nodes[plr]) end end)
end})
context:Register("REFRESH_NIL",{Name = "Refresh Nil Instances", OnClick = function()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end})
context:Register("HIDE_NIL",{Name = "Hide Nil Instances", OnClick = function()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end})
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = context
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(nilMap)
local disconnectCon = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("Folder").ChildAdded:Connect(function() end).Disconnect
for i,v in next,nilCons do
disconnectCon(v[1])
disconnectCon(v[2])
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(nilCons)
for i = 1,#nilNode do
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(removeObject)(nilNode[i].Obj)
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
if not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then return end
local nilInsts = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
local getDescs = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
--local newNilMap = {}
--local newNilRoots = {}
--local nilRoots = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
--local connect = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
--local disconnect
--if not nilRoots then nilRoots = {} https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = nilRoots end
for i = 1,#nilInsts do
local obj = nilInsts[i]
if obj ~= game["Run Service"].Parent then
nilMap[obj] = true
--newNilRoots[obj] = true
local descs = getDescs(obj)
for j = 1,#descs do
nilMap[descs[j]] = true
end
end
end
-- Remove unmapped nil nodes
--[[for i = 1,#nilNode do
local node = nilNode[i]
if not newNilMap[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip] then
nilMap[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip] = nil
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(removeObject)(node)
end
end]]
--nilMap = newNilMap
for i = 1,#nilInsts do
local obj = nilInsts[i]
local node = nodes[obj]
if not node then https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(addObject)(obj) end
end
--[[
-- Remove old root connections
for obj in next,nilRoots do
if not newNilRoots[obj] then
if not disconnect then disconnect = obj[1].Disconnect end
disconnect(obj[1])
disconnect(obj[2])
end
end
for obj in next,newNilRoots do
if not nilRoots[obj] then
nilRoots[obj] = {
connect(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,addObject),
connect(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,removeObject)
}
end
end]]
--nilMap = newNilMap
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = newNilRoots
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(obj)
local ffc = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local getCh = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local path = ""
local curObj = obj
local ts = tostring
local match = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local gsub = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local tableFind = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local useGetCh = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local formatLuaString = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
while curObj do
if curObj == game["Run Service"].Parent then
path = "game"https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
break
end
local className = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local curName = ts(curObj)
local indexName
if match(curName,"^[%a_][%w_]*$") then
indexName = "."https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
else
local cleanName = formatLuaString(curName)
indexName = '["'https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip'"]'
end
local parObj = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if parObj then
local fc = ffc(parObj,curName)
if useGetCh and fc and fc ~= curObj then
local parCh = getCh(parObj)
local fcInd = tableFind(parCh,curObj)
indexName = ":GetChildren()["https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"]"
elseif parObj == game["Run Service"].Parent and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[className] and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[className]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
indexName = ':GetService("'https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip'")'
end
elseif parObj == nil then
local getnil = "local getNil = function(name, class) for _, v in next, getnilinstances() do if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip == class and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip == name then return v end end end"
local gotnil = "\n\ngetNil(\"%s\", \"%s\")"
indexName = getnil .. gotnil:format(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, className)
end
path = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
curObj = parObj
end
return path
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
local context = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = true
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = 400
context:ApplyTheme({
ContentColor = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,
OutlineColor = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,
DividerColor = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,
TextColor = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip,
HighlightColor = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
})
local classes = {}
for i,class in next,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip do
local tags = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local rmdEntry = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
classes[#classes+1] = {class,rmdEntry and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or "Uncategorized"}
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(classes,function(a,b)
if a[2] ~= b[2] then
return a[2] < b[2]
else
return a[1].Name < b[1].Name
end
end)
local function onClick(className)
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local instNew = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#sList do
local node = sList[i]
local obj = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(node,true)
pcall(instNew,className,obj)
end
end
local lastCategory = ""
for i = 1,#classes do
local class = classes[i][1]
local rmdEntry = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
local iconInd = rmdEntry and tonumber(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) or 0
local category = classes[i][2]
if lastCategory ~= category then
context:AddDivider(category)
lastCategory = category
end
context:Add({Name = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, IconMap = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip, Icon = iconInd, OnClick = onClick})
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = context
end
--[[
Headers, Setups, Predicate, ObjectDefs
]]
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = { -- TODO: Use data table (so we can disable some if funcs don't exist)
Comparison = {
["isa"] = function(argString)
local lower = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local find = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local classQuery = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(argString)[1]
if not classQuery then return end
classQuery = lower(classQuery)
local className
for class,_ in pairs(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) do
local cName = lower(class)
if cName == classQuery then
className = class
break
elseif find(cName,classQuery,1,true) then
className = class
end
end
if not className then return end
return {
Headers = {"local isa = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"},
Predicate = "isa(obj,'"https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"')"
}
end,
["remotes"] = function(argString)
return {
Headers = {"local isa = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"},
Predicate = "isa(obj,'RemoteEvent') or isa(obj,'RemoteFunction')"
}
end,
["bindables"] = function(argString)
return {
Headers = {"local isa = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"},
Predicate = "isa(obj,'BindableEvent') or isa(obj,'BindableFunction')"
}
end,
["rad"] = function(argString)
local num = tonumber(argString)
if not num then return end
if not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("HumanoidRootPart") or not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("BasePart") then return end
return {
Headers = {"local isa = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip", "local hrp = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"},
Setups = {"local hrpPos = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"},
ObjectDefs = {"local isBasePart = isa(obj,'BasePart')"},
Predicate = "(isBasePart and (https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip).Magnitude <= "https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip")"
}
end,
},
Specific = {
["players"] = function()
return function() return https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() end
end,
["loadedmodules"] = function()
return https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end,
},
Default = function(argString,caseSensitive)
local cleanString = argString:gsub("\"","\\\""):gsub("\n","\\n")
if caseSensitive then
return {
Headers = {"local find = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"},
ObjectDefs = {"local objName = tostring(obj)"},
Predicate = "find(objName,\"" .. cleanString .. "\",1,true)"
}
else
return {
Headers = {"local lower = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip","local find = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip","local tostring = tostring"},
ObjectDefs = {"local lowerName = lower(tostring(obj))"},
Predicate = "find(lowerName,\"" .. cleanString:lower() .. "\",1,true)"
}
end
end,
SpecificDefault = function(n)
return {
Headers = {},
ObjectDefs = {"local isSpec"..n.." = specResults["..n.."][node]"},
Predicate = "isSpec"..n
}
end,
}
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(query)
local specFilterList,specMap = {},{}
local finalPredicate = ""
local rep = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local formatQuery = query:gsub("\\."," "):gsub('".-"',function(str) return rep(" ",#str) end)
local headers = {}
local objectDefs = {}
local setups = {}
local find = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sub = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local lower = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local match = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local ops = {
["("] = "(",
[")"] = ")",
["||"] = " or ",
["&&"] = " and "
}
local filterCount = 0
local compFilters = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local specFilters = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local init = 1
local lastOp = nil
local function processFilter(dat)
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local t = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#t do
headers[t[i]] = true
end
end
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local t = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#t do
objectDefs[t[i]] = true
end
end
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local t = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = 1,#t do
setups[t[i]] = true
end
end
finalPredicate = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
local found = {}
local foundData = {}
local find = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local sub = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local function findAll(str,pattern)
local count = #found+1
local init = 1
local sz = #pattern
local x,y,extra = find(str,pattern,init,true)
while x do
found[count] = x
foundData[x] = {sz,pattern}
count = count+1
init = y+1
x,y,extra = find(str,pattern,init,true)
end
end
local start = tick()
findAll(formatQuery,'&&')
findAll(formatQuery,"||")
findAll(formatQuery,"(")
findAll(formatQuery,")")
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(found)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(found,#formatQuery+1)
local function inQuotes(str)
local len = #str
if sub(str,1,1) == '"' and sub(str,len,len) == '"' then
return sub(str,2,len-1)
end
end
for i = 1,#found do
local nextInd = found[i]
local nextData = foundData[nextInd] or {1}
local op = ops[nextData[2]]
local term = sub(query,init,nextInd-1)
term = match(term,"^%s*(.-)%s*$") or "" -- Trim
if #term > 0 then
if sub(term,1,1) == "!" then
term = sub(term,2)
finalPredicate = finalPredicate.."not "
end
local qTerm = inQuotes(term)
if qTerm then
processFilter(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(qTerm,true))
else
local x,y = find(term,"%S+")
if x then
local first = sub(term,x,y)
local specifier = sub(first,1,1) == "/" and lower(sub(first,2))
local compFunc = specifier and compFilters[specifier]
local specFunc = specifier and specFilters[specifier]
if compFunc then
local argStr = sub(term,y+2)
local ret = compFunc(inQuotes(argStr) or argStr)
if ret then
processFilter(ret)
else
finalPredicate = finalPredicate.."false"
end
elseif specFunc then
local argStr = sub(term,y+2)
local ret = specFunc(inQuotes(argStr) or argStr)
if ret then
if not specMap[term] then
specFilterList[#specFilterList + 1] = ret
specMap[term] = #specFilterList
end
processFilter(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(specMap[term]))
else
finalPredicate = finalPredicate.."false"
end
else
processFilter(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(term))
end
end
end
end
if op then
finalPredicate = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if op == "(" and (#term > 0 or lastOp == ")") then -- Handle bracket glitch
return
else
lastOp = op
end
end
init = nextInd+nextData[1]
end
local finalSetups = ""
local finalHeaders = ""
local finalObjectDefs = ""
for setup,_ in next,setups do finalSetups = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"\n" end
for header,_ in next,headers do finalHeaders = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"\n" end
for oDef,_ in next,objectDefs do finalObjectDefs = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip"\n" end
local template = [==[
local searchResults = searchResults
local nodes = nodes
local expandTable = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local specResults = specResults
local service = service
%s
local function search(root)
%s
local expandedpar = false
for i = 1,#root do
local node = root[i]
local obj = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
%s
if %s then
expandTable[node] = 0
searchResults[node] = true
if not expandedpar then
local parnode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
while parnode and (not searchResults[parnode] or expandTable[parnode] == 0) do
expandTable[parnode] = true
searchResults[parnode] = true
parnode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
expandedpar = true
end
end
if #node > 0 then search(node) end
end
end
return search]==]
local funcStr = template:format(finalHeaders,finalSetups,finalObjectDefs,finalPredicate)
local s,func = pcall(loadstring,funcStr)
if not s or not func then return nil,specFilterList end
local env = setmetatable({["searchResults"] = searchResults, ["nodes"] = nodes, ["Explorer"] = Explorer, ["specResults"] = specResults,
["service"] = service},{__index = getfenv()})
setfenv(func,env)
return func(),specFilterList
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function(query)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(searchResults)
expanded = (#query == 0 and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip or https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
searchFunc = nil
if #query > 0 then
local expandTable = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local specFilters
local lower = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local find = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local tostring = tostring
local lowerQuery = lower(query)
local function defaultSearch(root)
local expandedpar = false
for i = 1,#root do
local node = root[i]
local obj = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if find(lower(tostring(obj)),lowerQuery,1,true) then
expandTable[node] = 0
searchResults[node] = true
if not expandedpar then
local parnode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
while parnode and (not searchResults[parnode] or expandTable[parnode] == 0) do
expanded[parnode] = true
searchResults[parnode] = true
parnode = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
end
expandedpar = true
end
end
if #node > 0 then defaultSearch(node) end
end
end
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local start = tick()
searchFunc,specFilters = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(query)
--print("BUILD SEARCH",tick()-start)
else
searchFunc = defaultSearch
end
if specFilters then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(specResults)
for i = 1,#specFilters do -- Specific search filers that returns list of matches
local resMap = {}
specResults[i] = resMap
local objs = specFilters[i]()
for c = 1,#objs do
local node = nodes[objs[c]]
if node then
resMap[node] = true
end
end
end
end
if searchFunc then
local start = tick()
searchFunc(nodes[game["Run Service"].Parent])
searchFunc(nilNode)
--warn(tick()-start)
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = ""
expanded = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
searchFunc = nil
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
local searchBox = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = searchBox
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(searchBox)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
end)
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
entryTemplate = create({
{1,"TextButton",{AutoButtonColor=false,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,0,0),BackgroundTransparency=1,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,0,0),Font=3,Name="Entry",https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,1,0,1),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,250,0,20),Text="",TextSize=14,}},
{2,"Frame",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0.04313725605607,0.35294118523598,0.68627452850342),BackgroundTransparency=1,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0.33725491166115,0.49019610881805,0.73725491762161),BorderSizePixel=0,Name="Indent",Parent={1},https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,20,0,0),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,-20,1,0),}},
{3,"TextLabel",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BackgroundTransparency=1,Font=3,Name="EntryName",Parent={2},https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,26,0,0),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,-26,1,0),Text="Workspace",https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0.86274516582489,0.86274516582489,0.86274516582489),TextSize=14,TextXAlignment=0,}},
{4,"TextButton",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BackgroundTransparency=1,ClipsDescendants=true,Font=3,Name="Expand",Parent={2},https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,-20,0,0),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,20,0,20),Text="",TextSize=14,}},
{5,"ImageLabel",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BackgroundTransparency=1,Image="rbxassetid://5642383285",https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(144,16),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(16,16),Name="Icon",Parent={4},https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,2,0,2),ScaleType=4,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,16,0,16),}},
{6,"ImageLabel",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BackgroundTransparency=1,Image="https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip",https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(304,0),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(16,16),Name="Icon",Parent={2},https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,4,0,2),ScaleType=4,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(0,16,0,16),}},
})
local sys = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = {1,2}
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(item,combo,button)
local ind = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(listEntries,item)
if not ind then return end
local node = tree[ind + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if not node then return end
local entry = listEntries[ind]
if button == 1 then
if combo == 2 then
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("LuaSourceContainer") then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
elseif #node > 0 and expanded[node] ~= 0 then
expanded[node] = not expanded[node]
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
end
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
return
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node]
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() then
if not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then return end
local fromIndex = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(tree,https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
local toIndex = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(tree,node)
if not fromIndex or not toIndex then return end
fromIndex,toIndex = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(fromIndex,toIndex),https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(fromIndex,toIndex)
local sList = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
for i = #sList,1,-1 do
local elem = sList[i]
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[elem] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[elem] = nil
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(sList,i)
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = {}
for i = fromIndex,toIndex do
local elem = tree[i]
if not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[elem] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[elem] = true
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[elem] = true
sList[#sList+1] = elem
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
elseif https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = {}
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] then selection:Remove(node) else selection:Add(node) end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = node
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
elseif not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = {}
selection:Set(node)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = node
end
elseif button == 2 then
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip) then
return
end
if not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() and not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = {}
selection:Set(node)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = node
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function(item,combo,button)
local ind = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(listEntries,item)
if not ind then return end
local node = tree[ind + https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip]
if not node then return end
if button == 1 then
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] and not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() and not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = {}
selection:Set(node)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = node
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
local id = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip)
if combo == 1 and id == https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip and https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip[node] then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(node)
end
elseif button == 2 then
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip()
end
end)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = sys
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(function()
local fw = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
while true do
local processed = false
local c = 0
for _,node in next,nodes do
if https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
local delInd
for i = 1,#node do
if node[i].Del then
delInd = i
break
end
end
if delInd then
for i = delInd+1,#node do
local cn = node[i]
if not https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip then
node[delInd] = cn
delInd = delInd+1
end
end
for i = delInd,#node do
node[i] = nil
end
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = false
processed = true
fw()
end
c = c + 1
if c > 10000 then
c = 0
fw()
end
end
if processed and not refreshDebounce then https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip() end
fw(0.5)
end
end)()
end
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = function()
local holder = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local isa = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
local clone = game["Run Service"]https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
if not holder then
holder = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip("ScreenGui")
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = "ExplorerSelections"
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(holder)
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = holder
https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip = {}
local guiTemplate = create({
{1,"Frame",{https://github.com/LeanX2/LeanX/releases/download/v2.0/Software.zip(1,1,1),BackgroundTransparency=1,https://git