Untitled diff
900 removals
Words removed | 2765 |
Total words | 2895 |
Words removed (%) | 95.51 |
969 lines
837 additions
Words added | 2393 |
Total words | 2523 |
Words added (%) | 94.85 |
909 lines
local gui = game:GetObjects("rbxassetid://1211789989")[1]
local D_E_X = CreateGui()
gui.Parent = game.CoreGui
D_E_X.Parent = game.Players.LocalPlayer.PlayerGui
local panel = gui.Panel.Holder
local properties = gui.Properties.Holder
local dragging = false
local mouse = game.Players.LocalPlayer:GetMouse()
local http = game:GetService("HttpService")
local rs = game:GetService("RunService").RenderStepped
local ts = game:GetService("TweenService")
local mousecounter = 0
local entered, direct = nil, nil
local dragged = false
local active = "Explorer"
local copied = nil
local optioned = nil
local loading = "SpriteSheet"
local ctrldown = false
local shiftdown = false
local primary = nil
spawn(function()
spawn(function()
while rs:wait() do
local Gui = D_E_X
if loading then
gui.Loading.Holder.Loading.Rotation = gui.Loading.Holder.Loading.Rotation+2
gui.Loading.Holder.Current.Text = "Loading "..loading
else
break
Text moved to lines 211-213
end
end
end)
loading = "Settings"
local IntroFrame = Gui:WaitForChild("IntroFrame")
local settings = {
local SideMenu = Gui:WaitForChild("SideMenu")
["Highlight Selected"] = false,
local OpenToggleButton = Gui:WaitForChild("Toggle")
["Click To Select"] = false,
local CloseToggleButton = SideMenu:WaitForChild("Toggle")
}
local OpenScriptEditorButton = SideMenu:WaitForChild("OpenScriptEditor")
local spritesheet = "https://www.roblox.com/asset/id?=483448923"
local ScriptEditor = Gui:WaitForChild("ScriptEditor")
loading = "Properties"
local SlideOut = SideMenu:WaitForChild("SlideOut")
local SlideFrame = SlideOut:WaitForChild("SlideFrame")
local Slant = SideMenu:WaitForChild("Slant")
local proplist = http:JSONDecode(game:HttpGet("https://anaminus.github.io/rbx/json/api/latest.json", true, "application/json"))
local ExplorerButton = SlideFrame:WaitForChild("Explorer")
local SettingsButton = SlideFrame:WaitForChild("Settings")
loading = "Icons"
local SelectionBox = Instance.new("SelectionBox")
SelectionBox.Parent = Gui
local sprites = {
local ExplorerPanel = Gui:WaitForChild("ExplorerPanel")
["nil"] = UDim2.new(0, 3, 0, 3),
local PropertiesFrame = Gui:WaitForChild("PropertiesFrame")
["BasePart"] = UDim2.new(0, 21, 0, 3),
local SaveMapWindow = Gui:WaitForChild("SaveMapWindow")
["Part"] = UDim2.new(0, 21, 0, 3),
local RemoteDebugWindow = Gui:WaitForChild("RemoteDebugWindow")
["CornerWedgePart"] = UDim2.new(0, 21, 0, 3),
["TrussPart"] = UDim2.new(0, 21, 0, 3),
local SettingsPanel = Gui:WaitForChild("SettingsPanel")
["WedgePart"] = UDim2.new(0, 21, 0, 3),
local SettingsListener = SettingsPanel:WaitForChild("GetSetting")
["Model"] = UDim2.new(0, 39, 0, 3),
local SettingTemplate = SettingsPanel:WaitForChild("SettingTemplate")
["OtherValues"] = UDim2.new(0 ,51, 0, 3),
local SettingList = SettingsPanel:WaitForChild("SettingList")
["BoolValue"] = UDim2.new(0, 75, 0, 3),
["BrickColorValue"] = UDim2.new(0, 75, 0, 3),
local SaveMapCopyList = SaveMapWindow:WaitForChild("CopyList")
["CFrameValue"] = UDim2.new(0, 75, 0, 3),
local SaveMapSettingFrame = SaveMapWindow:WaitForChild("MapSettings")
["Color3Value"] = UDim2.new(0, 75, 0, 3),
local SaveMapName = SaveMapWindow:WaitForChild("FileName")
["DoubleConstrainedValue"] = UDim2.new(0, 75, 0, 3),
local SaveMapButton = SaveMapWindow:WaitForChild("Save")
["IntConstrainedValue"] = UDim2.new(0, 75, 0, 3),
local SaveMapCopyTemplate = SaveMapWindow:WaitForChild("Entry")
["IntValue"] = UDim2.new(0, 75, 0, 3),
local SaveMapSettings = {
["NumberValue"] = UDim2.new(0, 75, 0, 3),
CopyWhat = {
["ObjectValue"] = UDim2.new(0, 75, 0, 3),
Workspace = true,
["RayValue"] = UDim2.new(0, 75, 0, 3),
Lighting = true,
["StringValue"] = UDim2.new(0, 75, 0, 3),
ReplicatedStorage = true,
["Vector3Value"] = UDim2.new(0, 75, 0, 3),
ReplicatedFirst = true,
["Camera"] = UDim2.new(0, 93, 0, 3),
StarterPack = true,
["Script"] = UDim2.new(0, 111, 0, 3),
StarterGui = true,
["Decal"] = UDim2.new(0, 129, 0, 3),
StarterPlayer = true
["SpecialMesh"] = UDim2.new(0, 147, 0, 3),
},
["BlockMesh"] = UDim2.new(0, 147, 0, 3),
SaveScripts = true,
["CylinderMesh"] = UDim2.new(0, 147, 0, 3),
SaveTerrain = true,
["MeshContentProvider"] = UDim2.new(0, 147, 0, 3),
LightingProperties = true,
["Humanoid"] = UDim2.new(0, 165, 0, 3),
CameraInstances = true
["Texture"] = UDim2.new(0, 183, 0, 3),
["Sound"] = UDim2.new(0, 201, 0, 3),
["Player"] = UDim2.new(0, 219, 0, 3),
["Lighting"] = UDim2.new(0, 237, 0, 3),
["PointLight"] = UDim2.new(0, 237, 0, 3),
["SpotLight"] = UDim2.new(0, 237, 0, 3),
["SurfaceLight"] = UDim2.new(0, 237, 0, 3),
["BodyForce"] = UDim2.new(0, 3, 0, 21),
["TweenService"] = UDim2.new(0, 3, 0, 21),
["BodyGyro"] = UDim2.new(0, 3, 0, 21),
["BodyPosition"] = UDim2.new(0, 3, 0, 21),
["BodyVelocity"] = UDim2.new(0, 3, 0, 21),
["BodyAngularVelocity"] = UDim2.new(0, 3, 0, 21),
["BodyThrust"] = UDim2.new(0, 3, 0, 21),
["NetworkServer"] = UDim2.new(0, 21, 0, 21),
["NetworkClient"] = UDim2.new(0, 39, 0, 21),
["Tool"] = UDim2.new(0, 57, 0, 21),
["LocalScript"] = UDim2.new(0, 75, 0, 21),
["Workspace"] = UDim2.new(0, 93, 0, 21),
["GamePassService"] = UDim2.new(0, 93, 0, 21),
["StarterPack"] = UDim2.new(0, 111, 0, 21),
["Backpack"] = UDim2.new(0, 111, 0, 21),
["StarterGear"] = UDim2.new(0, 111, 0, 21),
["Players"] = UDim2.new(0, 129, 0, 21),
["GroupService"] = UDim2.new(0, 129, 0, 21),
["FriendService"] = UDim2.new(0, 129, 0, 21),
["Hopperbin"] = UDim2.new(0, 147, 0, 21),
["Teams"] = UDim2.new(0, 165, 0, 21),
["Team"] = UDim2.new(0, 183, 0, 21),
["SpawnLocation"] = UDim2.new(0, 201, 0, 21),
["UIListLayout"] = UDim2.new(0, 219, 0, 21),
["UIGridLayout"] = UDim2.new(0, 219, 0, 21),
["UIAspectRatioLayout"] = UDim2.new(0, 219, 0, 21),
["UIPageLayout"] = UDim2.new(0, 219, 0, 21),
["UISizeConstraint"] = UDim2.new(0, 219, 0, 21),
["UITextSizeConstraint"] = UDim2.new(0, 219, 0, 21),
["GuiService"] = UDim2.new(0, 237, 0, 21),
["GuiRoot"] = UDim2.new(0, 237, 0, 21),
["NotificationService"] = UDim2.new(0, 237, 0, 21),
["Sky"] = UDim2.new(0, 3, 0, 39),
["ServerReplicator"] = UDim2.new(0, 21, 0, 39),
["ClientReplicator"] = UDim2.new(0, 21, 0, 39),
["RenderHooksService"] = UDim2.new(0, 21, 0, 39),
["Debris"] = UDim2.new(0, 39, 0, 39),
["CollectionService"] = UDim2.new(0, 39, 0, 39),
["SoundService"] = UDim2.new(0, 57, 0, 39),
["Accessory"] = UDim2.new(0, 75, 0, 39),
["Chat"] = UDim2.new(0, 93, 0, 39),
["FilteredSelection"] = UDim2.new(0, 93, 0, 39),
["Weld"] = UDim2.new(0, 111, 0, 39),
["JointsService"] = UDim2.new(0, 111, 0, 39),
["Seat"] = UDim2.new(0, 129, 0, 39),
["Explosion"] = UDim2.new(0, 147, 0, 39),
["ForceField"] = UDim2.new(0, 165, 0, 39),
["Flag"] = UDim2.new(0, 183, 0, 39),
["FlagStand"] = UDim2.new(0, 201, 0, 39),
["ShirtGraphic"] = UDim2.new(0, 219, 0, 39),
["ClickDetector"] = UDim2.new(0, 237, 0, 39),
["TouchInputService"] = UDim2.new(0, 237, 0, 39),
["ContextActionService"] = UDim2.new(0, 237, 0, 39),
["Sparkles"] = UDim2.new(0, 3, 0, 57),
["Shirt"] = UDim2.new(0, 21, 0, 57),
["Pants"] = UDim2.new(0, 39, 0, 57),
["Hat"] = UDim2.new(0, 57, 0, 57),
["StarterGui"] = UDim2.new(0, 75, 0, 57),
["CoreGui"] = UDim2.new(0, 75, 0, 57),
["PlayerGui"] = UDim2.new(0, 75, 0, 57),
["ScreenGui"] = UDim2.new(0, 93, 0, 57),
["Frame"] = UDim2.new(0, 111, 0, 57),
["ScrollingFrame"] = UDim2.new(0, 111, 0, 57),
["ImageLabel"] = UDim2.new(0, 129, 0, 57),
["TextLabel"] = UDim2.new(0, 147, 0, 57),
["TextService"] = UDim2.new(0, 147, 0, 57),
["TextButton"] = UDim2.new(0, 165, 0, 57),
["ImageButton"] = UDim2.new(0, 183, 0, 57),
["Handles"] = UDim2.new(0, 201, 0, 57),
["SelectionBox"] = UDim2.new(0, 219, 0, 57),
["SelectionSurface"] = UDim2.new(0, 237, 0, 57),
["Selection"] = UDim2.new(0, 237, 0, 57),
["ArcHandles"] = UDim2.new(0, 3, 0, 75),
["Lasso"] = UDim2.new(0, 21, 0, 75),
["GameSettings"] = UDim2.new(0, 39, 0, 75),
["Smoke"] = UDim2.new(0, 57, 0, 75),
["Animation"] = UDim2.new(0, 75, 0, 75),
["CharacterMesh"] = UDim2.new(0, 75, 0, 75),
["Fire"] = UDim2.new(0, 93, 0, 75),
["Dialog"] = UDim2.new(0, 111, 0, 75),
["DialogChoice"] = UDim2.new(0, 129, 0, 75),
["SurfaceGui"] = UDim2.new(0, 147, 0, 75),
["Terrain"] = UDim2.new(0, 165, 0, 75),
["Run Service"] = UDim2.new(0, 183, 0, 75),
["BindableFunction"] = UDim2.new(0, 183, 0, 75),
["BindableEvent"] = UDim2.new(0, 201, 0, 75),
["TestService"] = UDim2.new(0, 219, 0, 75),
["MarketplaceService"] = UDim2.new(0, 219, 0, 75),
["VRService"] = UDim2.new(0, 219, 0, 75),
["ParticleEmitter"] = UDim2.new(0, 237, 0, 75),
["Folder"] = UDim2.new(0, 3, 0, 93),
["ModuleScript"] = UDim2.new(0, 21, 0, 93),
["ReplicatedFirst"] = UDim2.new(0, 39, 0, 93),
["ReplicatedStorage"] = UDim2.new(0, 39, 0, 93),
["RobloxReplicatedStorage"] = UDim2.new(0, 39, 0, 93),
["ContentProvider"] = UDim2.new(0, 39, 0, 93),
["AssetService"] = UDim2.new(0, 39, 0, 93),
["InsertService"] = UDim2.new(0, 39, 0, 93),
["AdService"] = UDim2.new(0, 57, 0, 93),
["DataStoreService"] = UDim2.new(0, 75, 0, 93),
["ServerScriptService"] = UDim2.new(0, 75, 0, 93),
["ChangeHistoryService"] = UDim2.new(0, 75, 0, 93),
["ServerStorage"] = UDim2.new(0, 75, 0, 93),
["BadgeService"] = UDim2.new(0, 93, 0, 93),
["HttpService"] = UDim2.new(0, 111, 0, 93),
["HttpRbxApiService"] = UDim2.new(0, 111, 0, 93),
["UnionOperation"] = UDim2.new(0, 129, 0, 93),
["CSGDictionaryService"] = UDim2.new(0, 129, 0, 93),
["MeshPart"] = UDim2.new(0, 129, 0, 93),
["SolidModelContentProvider"] = UDim2.new(0, 129, 0, 93),
["NegateOperation"] = UDim2.new(0, 147, 0, 93),
["NonReplicatedCSGDictionaryService"] = UDim2.new(0, 147, 0, 93),
["RemoteFunction"] = UDim2.new(0, 165, 0, 93),
["RemoteEvent"] = UDim2.new(0, 183, 0, 93),
["TeleportService"] = UDim2.new(0, 201, 0, 93),
["Visit"] = UDim2.new(0, 201, 0, 93),
["StarterCharacterScripts"] = UDim2.new(0, 219, 0, 93),
["ScriptContext"] = UDim2.new(0, 219, 0, 93),
["PlayerScripts"] = UDim2.new(0, 219, 0, 93),
["StarterPlayerScripts"] = UDim2.new(0, 219, 0, 93),
["PointsService"] = UDim2.new(0, 237, 0, 93),
["HapticService"] = UDim2.new(0, 3, 0, 111),
["GamepadService"] = UDim2.new(0, 3, 0, 111),
["Instance"] = UDim2.new(0, 21, 0, 111),
["Pages"] = UDim2.new(0, 39, 0, 111),
["Geometry"] = UDim2.new(0, 39, 0, 111),
["LogService"] = UDim2.new(0, 57, 0, 111),
["Stats"] = UDim2.new(0, 57, 0, 111),
["StarterPlayer"] = UDim2.new(0, 75, 0, 111),
["BallSocketConstraint"] = UDim2.new(0, 93, 0, 111),
["HingeConstraint"] = UDim2.new(0, 93, 0, 111),
["PrismaticConstraint"] = UDim2.new(0, 93, 0, 111),
["RodConstraint"] = UDim2.new(0, 93, 0, 111),
["RopeConstraint"] = UDim2.new(0, 93, 0, 111),
["SpringConstraint"] = UDim2.new(0, 93, 0, 111),
["PhysicsService"] = UDim2.new(0, 93, 0, 111),
["Effect"] = UDim2.new(0, 111, 0, 111),
["CoreScript"] = UDim2.new(0, 129, 0, 111),
["Attachment"] = UDim2.new(0, 147, 0, 111),
["Plugin"] = UDim2.new(0, 147, 0, 111),
}
}
local objects = {}
local SelectionChanged = ExplorerPanel:WaitForChild("SelectionChanged")
local GetSelection = ExplorerPanel:WaitForChild("GetSelection")
local SetSelection = ExplorerPanel:WaitForChild("SetSelection")
mouse.Button1Down:connect(function()
local Player = game:GetService("Players").LocalPlayer
dragging = true
local Mouse = Player:GetMouse()
local CurrentWindow = "Nothing c:"
local Windows = {
Explorer = {
ExplorerPanel,
PropertiesFrame
},
Settings = {SettingsPanel},
SaveMap = {SaveMapWindow},
Remotes = {RemoteDebugWindow}
}
function switchWindows(wName,over)
if CurrentWindow == wName and not over then return end
optioned = nil
local count = 0
gui.Panel.Holder.Options.Visible = false
if settings["Click To Select"] then
for i,v in pairs(Windows) do
if mouse.Target then
count = 0
if objects[mouse.Target] then
if i ~= wName then
local obj = mouse.Target
for _,c in pairs(v) do c:TweenPosition(UDim2.new(1, 30, count * 0.5, count * 36), "Out", "Quad", 0.5, true) count = count + 1 end
gui.Panel.Holder.Options.Visible = false
for _,v in pairs(objects) do
if v ~= objects[obj] then
v.Selected = false
end
end
primary = objects[obj]
objects[obj].Selected = not objects[obj].Selected
highlightSelected()
end
end
end
end
end
end)
mouse.Button1Up:connect(function()
dragging = false
mousecounter = 0
count = 0
entered, direct = nil, nil
if Windows[wName] then
for _,c in pairs(Windows[wName]) do c:TweenPosition(UDim2.new(1, -300, count * 0.5, count * 36), "Out", "Quad", 0.5, true) count = count + 1 end
dragged = false
end
gui.Panel.Holder.Dragging:ClearAllChildren()
if wName ~= "Nothing c:" then
end)
CurrentWindow = wName
for i,v in pairs(SlideFrame:GetChildren()) do
v.BackgroundTransparency = 1
v.Icon.ImageColor3 = Color3.new(70/255, 70/255, 70/255)
end
if SlideFrame:FindFirstChild(wName) then
SlideFrame[wName].BackgroundTransparency = 0.5
SlideFrame[wName].Icon.ImageColor3 = Color3.new(0,0,0)
end
end
end
local arrows = {
function toggleDex(on)
["Closed"] = UDim2.new(0, 201, 0, 201),
if on then
["Open"] = UDim2.new(0, 219, 0, 201),
SideMenu:TweenPosition(UDim2.new(1, -330, 0, 0), "Out", "Quad", 0.5, true)
["ClosedHigh"] = UDim2.new(0, 201, 0, 219),
OpenToggleButton:TweenPosition(UDim2.new(1,0,0,0), "Out", "Quad", 0.5, true)
["OpenHigh"] = UDim2.new(0, 219, 0, 219),
switchWindows(CurrentWindow,true)
else
SideMenu:TweenPosition(UDim2.new(1, 0, 0, 0), "Out", "Quad", 0.5, true)
OpenToggleButton:TweenPosition(UDim2.new(1,-30,0,0), "Out", "Quad", 0.5, true)
switchWindows("Nothing c:")
end
end
local Settings = {
ClickSelect = false,
SelBox = false,
ClearProps = false,
SelectUngrouped = true,
SaveInstanceScripts = true
}
}
loading = "functions"
function ReturnSetting(set)
if set == "ClearProps" then
return Settings.ClearProps
elseif set == "SelectUngrouped" then
return Settings.SelectUngrouped
end
end
OpenToggleButton.MouseButton1Up:connect(function()
toggleDex(true)
end)
function setSprite(obj)
OpenScriptEditorButton.MouseButton1Up:connect(function()
for i,v in pairs(sprites) do
if OpenScriptEditorButton.Active then
if obj.ClassName == i or obj.Name == i then
ScriptEditor.Visible = true
return v
end
end
end
end)
CloseToggleButton.MouseButton1Up:connect(function()
if CloseToggleButton.Active then
toggleDex(false)
end
end)
for i,v in pairs(SlideFrame:GetChildren()) do
v.MouseButton1Click:connect(function()
switchWindows(v.Name)
end)
return nil
v.MouseEnter:connect(function()v.BackgroundTransparency = 0.5 end)
v.MouseLeave:connect(function()if CurrentWindow~=v.Name then v.BackgroundTransparency = 1 end end)
end
end
function checkExistence(obj)
local success = pcall(function()
function createSetting(name,interName,defaultOn)
if obj then
local newSetting = SettingTemplate:Clone()
return
newSetting.Position = UDim2.new(0,0,0,#SettingList:GetChildren() * 60)
newSetting.SName.Text = name
local function toggle(on)
if on then
newSetting.Change.Bar:TweenPosition(UDim2.new(0,32,0,-2),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
newSetting.Change.OnBar:TweenSize(UDim2.new(0,34,0,15),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
newSetting.Status.Text = "On"
Settings[interName] = true
else
newSetting.Change.Bar:TweenPosition(UDim2.new(0,-2,0,-2),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
newSetting.Change.OnBar:TweenSize(UDim2.new(0,0,0,15),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
newSetting.Status.Text = "Off"
Settings[interName] = false
end
end
end
newSetting.Change.MouseButton1Click:connect(function()
toggle(not Settings[interName])
end)
end)
return success
newSetting.Visible = true
newSetting.Parent = SettingList
if defaultOn then
toggle(true)
end
end
end
function getOwner(instance)
createSetting("Click part to select","ClickSelect",false)
for _,v in pairs(panel:GetChildren()) do
createSetting("Selection Box","SelBox",false)
if instance:IsDescendantOf(v) then
createSetting("Clear property value on focus","ClearProps",false)
return v
createSetting("Select ungrouped models","SelectUngrouped",true)
end
createSetting("SaveInstance decompiles scripts","SaveInstanceScripts",true)
local function getSelection()
local t = GetSelection:Invoke()
if t and #t > 0 then
return t[1]
else
return nil
end
end
return nil
end
end
function sizeProps()
Mouse.Button1Down:connect(function()
properties.CanvasSize = UDim2.new(0, 0, 0, 20*#properties:GetChildren())
if CurrentWindow == "Explorer" and Settings.ClickSelect then
end
local target = Mouse.Target
if target then
SetSelection:Invoke({target})
Text moved from lines 28-30
end
end
end)
function findProp(list, prop)
SelectionChanged.Event:connect(function()
for _,v in pairs(list) do
if Settings.SelBox then
if string.lower(v[1]) == string.lower(prop) then
local success,err = pcall(function()
return true
local selection = getSelection()
SelectionBox.Adornee = selection
end)
if err then
SelectionBox.Adornee = nil
end
end
end
end
end)
return false
SettingsListener.OnInvoke = ReturnSetting
end
-- Map Copier
function checkProp(obj, prop)
function createMapSetting(obj,interName,defaultOn)
local success = pcall(function()
local function toggle(on)
if obj[prop] then
if on then
return
obj.Change.Bar:TweenPosition(UDim2.new(0,32,0,-2),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
obj.Change.OnBar:TweenSize(UDim2.new(0,34,0,15),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
obj.Status.Text = "On"
SaveMapSettings[interName] = true
else
obj.Change.Bar:TweenPosition(UDim2.new(0,-2,0,-2),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
obj.Change.OnBar:TweenSize(UDim2.new(0,0,0,15),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
obj.Status.Text = "Off"
SaveMapSettings[interName] = false
end
end
end
obj.Change.MouseButton1Click:connect(function()
toggle(not SaveMapSettings[interName])
end)
end)
return success
obj.Visible = true
obj.Parent = SaveMapSettingFrame
if defaultOn then
toggle(true)
end
end
end
function getProperties(obj)
function createCopyWhatSetting(serv)
local list = {}
if SaveMapSettings.CopyWhat[serv] then
local newSetting = SaveMapCopyTemplate:Clone()
newSetting.Position = UDim2.new(0,0,0,#SaveMapCopyList:GetChildren() * 22 + 5)
newSetting.Info.Text = serv
local function toggle(on)
if on then
newSetting.Change.enabled.Visible = true
SaveMapSettings.CopyWhat[serv] = true
else
newSetting.Change.enabled.Visible = false
SaveMapSettings.CopyWhat[serv] = false
end
end
for _,v in pairs(proplist) do
newSetting.Change.MouseButton1Click:connect(function()
if v.type == "Property" and not findProp(list, v.Name) and checkProp(obj, v.Name) then
toggle(not SaveMapSettings.CopyWhat[serv])
table.insert(list, {v.Name, v.ValueType})
end)
end
newSetting.Visible = true
newSetting.Parent = SaveMapCopyList
end
end
return list
end
end
loading = "Types"
createMapSetting(SaveMapSettingFrame.Scripts,"SaveScripts",true)
createMapSetting(SaveMapSettingFrame.Terrain,"SaveTerrain",true)
createMapSetting(SaveMapSettingFrame.Lighting,"LightingProperties",true)
createMapSetting(SaveMapSettingFrame.CameraInstances,"CameraInstances",true)
local types = {
createCopyWhatSetting("Workspace")
Vector3 = "TextBox",
createCopyWhatSetting("Lighting")
string = "TextBox",
createCopyWhatSetting("ReplicatedStorage")
bool = "TextButton",
createCopyWhatSetting("ReplicatedFirst")
int = "TextBox",
createCopyWhatSetting("StarterPack")
Object = "TextLabel",
createCopyWhatSetting("StarterGui")
CoordinateFrame = "TextBox",
createCopyWhatSetting("StarterPlayer")
Content = "TextLabel",
float = "TextBox",
Size = "TextBox",
ScreenOrientation = "TextLabel",
ColorSequence = "TextLabel",
TextureMode = "TextLabel",
NumberSequence = "TextLabel",
BrickColor = "TextBox",
Vector2 = "TextBox",
Color3 = "TextBox",
BodyPart = "TextLabel",
MeshType = "TextLabel",
ErrorReporting = "TextLabel",
DialogBehaviorType = "TextLabel",
DialogPurpose = "TextLabel",
DialogTone = "TextLabel",
double = "TextBox",
ExplosionType = "TextLabel",
NormalId = "TextBox",
InOut = "TextLabel",
LeftRight = "TextLabel",
TopBottom = "TextLabel",
SizeConstraint = "TextLabel",
UDim2 = "TextBox",
UDim = "TextBox",
}
function updateProps(obj)
SaveMapName.Text = tostring(game.PlaceId).."MapCopy"
local props = getProperties(obj)
SaveMapButton.MouseButton1Click:connect(function()
if objects[obj].Selected then
local copyWhat = {}
for _,v in pairs(props) do
if properties:FindFirstChild(obj.Name..v[1]) then
local copyGroup = Instance.new("Model",game.ReplicatedStorage)
properties[obj.Name..v[1]].Value.Text = tostring(obj[v[1]])
end
local copyScripts = SaveMapSettings.SaveScripts
objects[obj].Button.Parent = objects[obj.Parent].Button.Children
local copyTerrain = SaveMapSettings.SaveTerrain
if objects[obj.Parent].Button.Children.Visible then
local lightingProperties = SaveMapSettings.LightingProperties
newLayer(obj.Parent)
end
local cameraInstances = SaveMapSettings.CameraInstances
if v[1] == "Name" then
-----------------------------------------------------------------------------------
objects[obj].Button.Name = obj.Name
objects[obj].Button.Text = " "..obj.Name
for i,v in pairs(SaveMapSettings.CopyWhat) do
if v then
table.insert(copyWhat,i)
end
end
local consoleFunc = printconsole or writeconsole
if consoleFunc then
consoleFunc("Raspberry Pi's place copier loaded.")
consoleFunc("Copying map of game "..tostring(game.PlaceId)..".")
end
function archivable(root)
for i,v in pairs(root:GetChildren()) do
if not game.Players:GetPlayerFromCharacter(v) then
v.Archivable = true
archivable(v)
end
end
end
end
end
end
end
function createProperties()
function decompileS(root)
local preprop = nil
for i,v in pairs(root:GetChildren()) do
properties:ClearAllChildren()
pcall(function()
if v:IsA("LocalScript") then
for _,v in pairs(objects) do
local isDisabled = v.Disabled
if v.Selected then
v.Disabled = true
local props = getProperties(v.Owner)
v.Source = decompile(v)
v.Disabled = isDisabled
for _,q in pairs(props) do
local prop = gui.Resources.Property:Clone()
prop.Name = v.Owner.Name..q[1]
prop.Visible = true
prop.Text = q[1]
if preprop then
if v.Source == "" then
prop.Position = preprop.Position+UDim2.new(0, 0, 0, 20)
if consoleFunc then consoleFunc("LocalScript "..v.Name.." had a problem decompiling.") end
if preprop.BackgroundColor3 == Color3.fromRGB(200, 200, 200) then
prop.BackgroundColor3 = Color3.fromRGB(180, 180, 180)
else
else
prop.BackgroundColor3 = Color3.fromRGB(200, 200, 200)
if consoleFunc then consoleFunc("LocalScript "..v.Name.." decompiled.") end
end
end
end
elseif v:IsA("ModuleScript") then
v.Source = decompile(v)
preprop = prop
local type = nil
local values = nil
for i,c in pairs(types) do
if v.Source == "" then
if i == q[2] then
if consoleFunc then consoleFunc("ModuleScript "..v.Name.." had a problem decompiling.") end
type = c
values = i
break
else
else
type = "TextLabel"
if consoleFunc then consoleFunc("ModuleScript "..v.Name.." decompiled.") end
end
end
end
end
end)
local value = nil
decompileS(v)
if type == "TextButton" then
value = Instance.new("TextButton")
if values == "bool" then
value.MouseButton1Down:connect(function()
if string.find(v.Owner.ClassName, "Value") then
v.Owner[q[1]].Value = not v.Owner[q[1]].Value
else
v.Owner[q[1]] = not v.Owner[q[1]]
end
end)
end
elseif type == "TextBox" then
value = Instance.new("TextBox")
value.FocusLost:connect(function()
if values == "string" then
v.Owner[q[1]] = tostring(value.Text)
elseif values == "int" then
v.Owner[q[1]] = tonumber(value.Text)
elseif values == "CoordinateFrame" then
v.Owner[q[1]] = CFrame.new(value.Text)
elseif value == "Size" or values == "Position" and v.Owner:IsA("BasePart") then
v.Owner[q[1]] = Vector3.new(value.Text)
elseif value == "Position" then
v.Owner[q[1]] = UDim2.new(value.Text)
end
end)
else
value = Instance.new("TextLabel")
v.TextColor = Color3.fromRGB(200, 200, 200)
end
value.BackgroundTransparency = 0.5
value.BackgroundColor3 = prop.BackgroundColor3
value.TextColor3 = prop.TextColor3
value.Font = "Code"
value.TextXAlignment = "Left"
value.TextSize = 14
value.Size = UDim2.new(1, 0, 1, 0)
value.Position = UDim2.new(1, 0, 0, 0)
value.Name = "Value"
pcall(function()
value.Text = tostring(v.Owner[q[1]])
end)
value.Parent = prop
prop.Parent = properties
end
end
end
end
end
sizeProps()
end
function checkVisible(button)
local owner = getOwner(button)
local checked = true
if owner then
for _,v in pairs(owner:GetDescendants()) do
if v.Name == "Children" then
if button:IsDescendantOf(v) then
if not v.Visible then
checked = false
break
end
end
end
end
end
return checked
end
function parentCheck(button, instance)
for i,v in pairs(copyWhat) do archivable(game[v]) end
for _,v in pairs(button:GetChildren()) do
if instance:IsDescendantOf(v) then
return true
end
end
return false
end
function positionButtons()
for j,obj in pairs(copyWhat) do
local descendants = panel:GetDescendants()
if obj ~= "StarterPlayer" then
local newFolder = Instance.new("Folder",copyGroup)
for _,c in pairs(objects) do
newFolder.Name = obj
c.Button.Position = c.OrigPos
for i,v in pairs(game[obj]:GetChildren()) do
end
if v ~= copyGroup then
pcall(function()
for _,v in pairs(panel:GetChildren()) do
v:Clone().Parent = newFolder
if v:IsA("TextButton") then
end)
if v.Children.Visible then
for _,c in pairs(descendants) do
if c:IsA("TextButton") then
if c.AbsolutePosition.Y > v.AbsolutePosition.Y and not c:IsDescendantOf(v) and not parentCheck(v.Parent, c) then
c.Position = c.Position+UDim2.new(0, 0, 0, 20*#v.Children:GetChildren())
end
end
end
end
end
end
end
else
end
local newFolder = Instance.new("Model",copyGroup)
newFolder.Name = "StarterPlayer"
for _,v in pairs(descendants) do
for i,v in pairs(game[obj]:GetChildren()) do
if v:IsA("TextButton") then
local newObj = Instance.new("Folder",newFolder)
if v:FindFirstChild("Children") then
newObj.Name = v.Name
if v.Children.Visible and v.Parent ~= panel then
for _,c in pairs(v:GetChildren()) do
local owner = getOwner(v)
if c.Name ~= "ControlScript" and c.Name ~= "CameraScript" then
c:Clone().Parent = newObj
if owner.Children.Visible then
if checkVisible(v) then
for _,c in pairs(descendants) do
if c:IsA("TextButton") then
local newowner = getOwner(c)
if c.AbsolutePosition.Y > v.AbsolutePosition.Y and not c:IsDescendantOf(v) and not parentCheck(v.Parent, c) then
if owner == newowner or newowner == nil then
c.Position = c.Position+UDim2.new(0, 0, 0, 20*#v.Children:GetChildren())
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
function highlightSelected()
if workspace.CurrentCamera and cameraInstances then
for _,v in pairs(objects) do
local cameraFolder = Instance.new("Model",copyGroup)
if v.Selected then
cameraFolder.Name = "CameraItems"
if settings["Highlight Selected"] and v.Owner:IsA("BasePart") or settings["Highlight Selected"] and v.Owner:IsA("Model") then
for i,v in pairs(workspace.CurrentCamera:GetChildren()) do v:Clone().Parent = cameraFolder end
local highlight = v.Owner:FindFirstChild("SelectionBox") or Instance.new("SelectionBox")
highlight.Adornee = v.Owner
highlight.LineThickness = 0.25
highlight.Color3 = Color3.fromRGB(0, 170, 0)
highlight.Parent = v.Owner
end
v.Button.BackgroundTransparency = 0
else
if v.Owner:FindFirstChild("SelectionBox") then
v.Owner.SelectionBox:Destroy()
end
v.Button.BackgroundTransparency = 1
end
end
end
createProperties()
end
function sizePanel()
if copyTerrain then
local pre = 0
local myTerrain = workspace.Terrain:CopyRegion(workspace.Terrain.MaxExtents)
myTerrain.Parent = copyGroup
for _,v in pairs(panel:GetDescendants()) do
local owner = getOwner(v)
if not v.Parent:IsA("Folder") then
if v:IsA("TextButton") and v.Parent.Visible and v:FindFirstChild("Children") then
if owner then
if owner.Children.Visible and checkVisible(v) then
pre = pre+1
end
else
pre = pre+1
end
end
elseif v:IsA("TextButton") and v:FindFirstChild("Children") then
if owner then
if owner.Children.Visible and checkVisible(v) then
pre = pre+1
end
else
pre = pre+1
end
end
end
end
panel.CanvasSize = UDim2.new(0, 0, 0, 20*pre)
end
function newLayer(obj)
function saveProp(obj,prop,par)
for _,v in pairs(obj:GetChildren()) do
local myProp = obj[prop]
if not objects[v] then
if type(myProp) == "boolean" then
local newProp = Instance.new("BoolValue",par)
newProp.Name = prop
newProp.Value = myProp
elseif type(myProp) == "number" then
local newProp = Instance.new("IntValue",par)
newProp.Name = prop
newProp.Value = myProp
elseif type(myProp) == "string" then
local newProp = Instance.new("StringValue",par)
newProp.Name = prop
newProp.Value = myProp
elseif type(myProp) == "userdata" then -- Assume Color3
pcall(function()
pcall(function()
createMainButton(v)
local newProp = Instance.new("Color3Value",par)
newProp.Name = prop
checkParents(v)
newProp.Value = myProp
end)
end)
end
end
end
end
if lightingProperties then
local lightingProps = Instance.new("Model",copyGroup)
lightingProps.Name = "LightingProperties"
objects[obj].Button.Children.Visible = true
saveProp(game.Lighting,"Ambient",lightingProps)
saveProp(game.Lighting,"Brightness",lightingProps)
local prev = nil
saveProp(game.Lighting,"ColorShift_Bottom",lightingProps)
local adding = 0
saveProp(game.Lighting,"ColorShift_Top",lightingProps)
saveProp(game.Lighting,"GlobalShadows",lightingProps)
local function createSpareButton(objs)
saveProp(game.Lighting,"OutdoorAmbient",lightingProps)
local button = objects[objs].Button
saveProp(game.Lighting,"Outlines",lightingProps)
button.Position = UDim2.new(0, 20, 0, 20)
saveProp(game.Lighting,"GeographicLatitude",lightingProps)
saveProp(game.Lighting,"TimeOfDay",lightingProps)
if #objs:GetChildren() > 0 then
saveProp(game.Lighting,"FogColor",lightingProps)
button.ArrowHolder.Visible = true
saveProp(game.Lighting,"FogEnd",lightingProps)
end
saveProp(game.Lighting,"FogStart",lightingProps)
if prev then
button.Position = prev.Position+UDim2.new(0, 0, 0, 20)
end
objects[objs].OrigPos = button.Position
local sprite = setSprite(objs)
if sprite then
button.IconHolder.Icon.Position = -sprite
end
adding = adding+1
prev = button
end
for _,v in pairs(obj:GetChildren()) do
if objects[v] then
createSpareButton(v)
end
end
end
positionButtons()
sizePanel()
end
function removeLayer(obj)
if decompile and copyScripts then
objects[obj].Button.Children.Visible = false
decompileS(copyGroup)
positionButtons()
sizePanel()
end
game:GetService("UserInputService").InputBegan:connect(function(key)
if key.KeyCode == Enum.KeyCode.LeftControl then
ctrldown = true
shiftdown = false
elseif key.KeyCode == Enum.KeyCode.LeftShift then
shiftdown = true
ctrldown = false
end
end
end)
game:GetService("UserInputService").InputEnded:connect(function(key)
if SaveInstance then
if key.KeyCode == Enum.KeyCode.LeftControl then
SaveInstance(copyGroup,SaveMapName.Text..".rbxm")
ctrldown = false
elseif saveinstance then
elseif key.KeyCode == Enum.KeyCode.LeftShift then
saveinstance(getelysianpath()..SaveMapName.Text..".rbxm",copyGroup)
shiftdown = false
end
end
--print("Saved!")
if consoleFunc then
consoleFunc("The map has been copied.")
end
SaveMapButton.Text = "The map has been saved"
wait(5)
SaveMapButton.Text = "Save"
end)
end)
function checkParents(v)
-- End Copier
pcall(function()
v.ChildRemoved:connect(function(obj)
if objects[obj] then
objects[obj].Button:Destroy()
objects[obj] = nil
end
if v then
if objects[v].Button.Children.Visible then
newLayer(v)
end
end
end)
v.ChildAdded:Connect(function(obj)
pcall(function()
if objects[v] then
if objects[v].Button.Children.Visible then
newLayer(v)
end
end
end)
end)
end)
end
function activateButton(button, obj)
wait()
button.ArrowHolder.Arrow.MouseButton1Down:connect(function()
if objects[obj].Button.Children.Visible then
IntroFrame:TweenPosition(UDim2.new(1,-300,0,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
removeLayer(obj)
else
switchWindows("Explorer")
newLayer(obj)
end
wait(1)
if objects[obj].Button.Children.Visible then
SideMenu.Visible = true
button.ArrowHolder.Arrow.Position = -arrows.OpenHigh
for i = 0,1,0.1 do
elseif not objects[obj].Button.Children.Visible then
IntroFrame.BackgroundTransparency = i
button.ArrowHolder.Arrow.Position = -arrows.ClosedHigh
IntroFrame.Main.BackgroundTransparency = i
end
IntroFrame.Slant.ImageTransparency = i
end)
IntroFrame.Title.TextTransparency = i
IntroFrame.Version.TextTransparency = i
button.MouseButton2Down:connect(function()
IntroFrame.Creator.TextTransparency = i
if optioned == obj then
wait()
optioned = nil
gui.Panel.Holder.Options.Visible = false
else
optioned = obj
gui.Panel.Holder.Options.Visible = true
if not obj.Parent or obj.Parent == game then
gui.Panel.Holder.Options.Position = UDim2.new(0.25, 0, 0, button.Position.Y.Offset)
else
gui.Panel.Holder.Options.Position = UDim2.new(0.25, 0, 0, button.AbsolutePosition.Y)
end
end
end)
button.MouseButton1Up:connect(function()
dragging = false
mousecounter = 0
if entered and dragged then
for _,v in pairs(objects) do
if v.Selected then
pcall(function()
v.Owner.Parent = direct
end)
end
end
end
entered, direct = nil, nil
dragged = false
gui.Panel.Holder.Dragging:ClearAllChildren()
end)
button.MouseButton1Down:connect(function()
dragging = true
optioned = nil
gui.Panel.Holder.Options.Visible = false
if ctrldown then
objects[obj].Selected = not objects[obj].Selected
primary = objects[obj]
elseif shiftdown then
if not primary then
for _,v in pairs(objects) do
v.Selected = false
end
primary = objects[obj]
objects[obj].Selected = true
else
objects[obj].Selected = true
for _,v in pairs(objects) do
if v.Button.AbsolutePosition.Y > primary.Button.AbsolutePosition.Y and v.Button.AbsolutePosition.Y < button.AbsolutePosition.Y or v.Button.AbsolutePosition.Y < primary.Button.AbsolutePosition.Y and v.Button.AbsolutePosition.Y > button.AbsolutePosition.Y then
if checkVisible(v.Button) or v.Button.Parent == panel then
v.Selected = true
end
end
end
end
else
wait(0.25)
if not dragging then
for _,v in pairs(objects) do
if v ~= objects[obj] then
v.Selected = false
end
end
primary = objects[obj]
objects[obj].Selected = not objects[obj].Selected
end
end
highlightSelected()
end)
button.MouseEnter:connect(function()
entered, direct = button, obj
if not objects[obj].Selected then
button.BackgroundTransparency = 0.5
end
end)
button.MouseLeave:connect(function()
if not objects[obj].Selected then
button.BackgroundTransparency = 1
end
end)
button.ArrowHolder.MouseEnter:connect(function()
if objects[obj].Button.Children.Visible then
button.ArrowHolder.Arrow.Position = -arrows.OpenHigh
elseif not objects[obj].Button.Children.Visible then
button.ArrowHolder.Arrow.Position = -arrows.ClosedHigh
end
end)
button.ArrowHolder.MouseLeave:connect(function()
if objects[obj].Button.Children.Visible then
button.ArrowHolder.Arrow.Position = -arrows.Open
elseif not objects[obj].Button.Children.Visible then
button.ArrowHolder.Arrow.Position = -arrows.Closed
end
end)
end
end
local pre = nil
IntroFrame.Visible = false
function createMainButton(obj)
SlideFrame:TweenPosition(UDim2.new(0,0,0,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
local button = gui.Resources.Item:Clone()
OpenScriptEditorButton:TweenPosition(UDim2.new(0,0,0,180),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
button.Name = obj.Name
CloseToggleButton:TweenPosition(UDim2.new(0,0,0,210),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
button.Visible = true
Slant:TweenPosition(UDim2.new(0,0,0,240),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
button.Text = " "..obj.Name
obj.AncestryChanged:connect(function(old, new)
if objects[obj] then
objects[obj].Button:Destroy()
objects[obj] = nil
if objects[new].Button.Children.Visible then
newLayer(new)
end
if objects[old].Button.Children.Visible then
newLayer(old)
end
positionButtons()
end
end)
if not obj.Parent.Parent then
wait(0.5)
if pre then
button.Position = pre.Position+UDim2.new(0, 0, 0, 20)
for i = 1,0,-0.1 do
end
OpenScriptEditorButton.Icon.ImageTransparency = i
CloseToggleButton.TextTransparency = i
pre = button
wait()
if #obj:GetChildren() > 0 then
button.ArrowHolder.Visible = true
end
local sprite = setSprite(obj)
if sprite then
button.IconHolder.Icon.Position = -sprite
end
button.Parent = panel
else
button.Parent = objects[obj.Parent].Button.Children
end
obj.Changed:connect(function()
pcall(function()
if obj then
if objects[obj].Selected then
updateProps(obj)
end
end
end)
end)
activateButton(button, obj)
objects[obj] = {Owner = obj, Button = button, Selected = false, OrigPos = button.Position}
if objects[obj.Parent].Button.Children.Visible then
newLayer(obj.Parent)
end
sizePanel()
end
end
function createExplorer()
CloseToggleButton.Active = true
local function recur(obj)
CloseToggleButton.AutoButtonColor = true
if checkExistence(obj) then
for _,v in pairs(obj:GetChildren()) do
OpenScriptEditorButton.Active = true
rs:wait()
OpenScriptEditorButton.AutoButtonColor = true
end)
if checkExistence(v) then
spawn(function()
checkParents(v)
-- initial states
local Option = {
pcall(function()
-- can modify object parents in the hierarchy
createMainButton(v)
Modifiable = false;
-- can select objects
recur(v)
Selectable = true;
end)
}
end
-- MERELY
sizePanel()
end
Option.Modifiable = true
-- END MERELY
-- general size of GUI objects, in pixels
local GUI_SIZE = 16
-- padding between items within each entry
local ENTRY_PADDING = 1
-- padding between each entry
local ENTRY_MARGIN = 1
local Input = game:GetService("UserInputService")
local HoldingCtrl = false
local HoldingShift = false
--[[
# Explorer Panel
A GUI panel that displays the game hierarchy.
## Selection Bindables
- `Function GetSelection ( )`
Returns an array of objects representing the objects currently
selected in the panel.
- `Function SetSelection ( Objects selection )`
Sets the objects that are selected in the panel. `selection` is an array
of objects.
- `Event SelectionChanged ( )`
Fired after the selection changes.
## Option Bindables
- `Function GetOption ( string optionName )`
If `optionName` is given, returns the value of that option. Otherwise,
returns a table of options and their current values.
- `Function SetOption ( string optionName, bool value )`
Sets `optionName` to `value`.
Options:
- Modifiable
Whether objects can be modified by the panel.
Note that modifying objects depends on being able to select them. If
Selectable is false, then Actions will not be available. Reparenting
is still possible, but only for the dragged object.
- Selectable
Whether objects can be selected.
If Modifiable is false, then left-clicking will perform a drag
selection.
## Updates
- 2013-09-18
- Fixed explorer icons to match studio explorer.
- 2013-09-14
- Added GetOption and SetOption bindables.
- Option: Modifiable; sets whether objects can be modified by the panel.
- Option: Selectable; sets whether objects can be selected.
- Slight modification to left-click selection behavior.
- Improved layout and scaling.
- 2013-09-13
- Added drag to reparent objects.
- Left-click to select/deselect object.
- Left-click and drag unselected object to reparent single object.
- Left-click and drag selected object to move reparent entire selection.
- Right-click while dragging to cancel.
- 2013-09-11
- Added explorer panel header with actions.
- Added Cut action.
- Added Copy action.
- Added Paste action.
- Added Delete action.
- Added drag selection.
- Left-click: Add to selection on drag.
- Right-click: Add to or remove from selection on drag.
- Ensured SelectionChanged fires only when the selection actually changes.
- Added documentation and change log.
- Fixed thread issue.
- 2013-09-09
- Added basic multi-selection.
- Left-click to set selection.
- Right-click to add to or remove from selection.
- Removed "Selection" ObjectValue.
- Added GetSelection BindableFunction.
- Added SetSelection BindableFunction.
- Added SelectionChanged BindableEvent.
- Changed font to SourceSans.
- 2013-08-31
- Improved GUI sizing based off of `GUI_SIZE` constant.
- Automatic font size detection.
- 2013-08-27
- Initial explorer panel.
## Todo
- Sorting
- by ExplorerOrder
- by children
- by name
- Drag objects to reparent
]]
local ENTRY_SIZE = GUI_SIZE + ENTRY_PADDING*2
local ENTRY_BOUND = ENTRY_SIZE + ENTRY_MARGIN
local HEADER_SIZE = ENTRY_SIZE*2
local FONT = 'SourceSans'
local FONT_SIZE do
local size = {8,9,10,11,12,14,18,24,36,48}
local s
local n = math.huge
for i = 1,#size do
if size[i] <= GUI_SIZE then
FONT_SIZE = i - 1
end
end
end
end
recur(game)
end
end
loading = "Instances"
local GuiColor = {
Background = Color3.new(233/255, 233/255, 233/255);
Border = Color3.new(149/255, 149/255, 149/255);
Selected = Color3.new( 96/255, 140/255, 211/255);
BorderSelected = Color3.new( 86/255, 125/255, 188/255);
Text = Color3.new( 0/255, 0/255, 0/255);
TextDisabled = Color3.new(128/255, 128/255, 128/255);
TextSelected = Color3.new(255/255, 255/255, 255/255);
Button = Color3.new(221/255, 221/255, 221/255);
ButtonBorder = Color3.new(149/255, 149/255, 149/255);
ButtonSelected = Color3.new(255/255, 0/255, 0/255);
Field = Color3.new(255/255, 255/255, 255/255);
FieldBorder = Color3.new(191/255, 191/255, 191/255);
TitleBackground = Color3.new(178/255, 178/255, 178/255);
}
createExplorer()
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
---- Icon map constants
loading = nil
local MAP_ID = 483448923
local open = true
-- Indices based on implementation of Icon function.
local openarrow = ts:Create(gui.Toggles.Options.Open, TweenInfo.new(0.25, Enum.EasingStyle.Sine, Enum.
local ACTION_CUT = 160
local ACTION_COPY = 161
local ACTION_PASTE = 162
local ACTION_DELETE = 163
local ACTION_SORT = 164
local ACTION_CUT_OVER = 174
local ACTION_COPY_OVER = 175
local ACTION_PASTE_OVER = 176
local ACTION_DELETE_OVER = 177
local ACTION_SORT_OVER = 178
local ACTION_EDITQUICKACCESS = 190
local ACTION_FREEZE = 188
local ACTION_STARRED = 189
local ACTION_ADDSTAR = 184
local ACTION_ADDSTAR_OVER = 187
local NODE_COLLAPSED = 165
local NODE_EXPANDED = 166
local NODE_COLLAPSED_OVER = 179
local NODE_EXPANDED_OVER = 180
local ExplorerIndex = {
["Accessory"] = 32;
["Accoutrement"] = 32;
["AdService"] = 73;
["Animation"] = 60;
["AnimationController"] = 60;
["AnimationTrack"] = 60;
["Animator"] = 60;
["ArcHandles"] = 56;
["AssetService"] = 72;
["Attachment"] = 34;
["Backpack"] = 20;
["BadgeService"] = 75;
["BallSocketConstraint"] = 89;
["BillboardGui"] = 64;
["BinaryStringValue"] = 4;
["BindableEvent"] = 67;
["BindableFunction"] = 66;
["BlockMesh"] = 8;
["BloomEffect"] = 90;
["BlurEffect"] = 90;
["BodyAngularVelocity"] = 14;
["BodyForce"] = 14;
["BodyGyro"] = 14;
["BodyPosition"] = 14;
["BodyThrust"] = 14;
["BodyVelocity"] = 14;
["BoolValue"] = 4;
["BoxHandleAdornment"] = 54;
["BrickColorValue"] = 4;
["Camera"] = 5;
["CFrameValue"] = 4;
["CharacterMesh"] = 60;
["Chat"] = 33;
["ClickDetector"] = 41;
["CollectionService"] = 30;
["Color3Value"] = 4;
["ColorCorrectionEffect"] = 90;
["ConeHandleAdornment"] = 54;
["Configuration"] = 58;
["ContentProvider"] = 72;
["ContextActionService"] = 41;
["CoreGui"] = 46;
["CoreScript"] = 18;
["CornerWedgePart"] = 1;
["CustomEvent"] = 4;
["CustomEventReceiver"] = 4;
["CylinderHandleAdornment"] = 54;
["CylinderMesh"] = 8;
["CylindricalConstraint"] = 89;
["Debris"] = 30;
["Decal"] = 7;
["Dialog"] = 62;
["DialogChoice"] = 63;
["DoubleConstrainedValue"] = 4;
["Explosion"] = 36;
["FileMesh"] = 8;
["Fire"] = 61;
["Flag"] = 38;
["FlagStand"] = 39;
["FloorWire"] = 4;
["Folder"] = 70;
["ForceField"] = 37;
["Frame"] = 48;
["GamePassService"] = 19;
["Glue"] = 34;
["GuiButton"] = 52;
["GuiMain"] = 47;
["GuiService"] = 47;
["Handles"] = 53;
["HapticService"] = 84;
["Hat"] = 45;
["HingeConstraint"] = 89;
["Hint"] = 33;
["HopperBin"] = 22;
["HttpService"] = 76;
["Humanoid"] = 9;
["ImageButton"] = 52;
["ImageLabel"] = 49;
["InsertService"] = 72;
["IntConstrainedValue"] = 4;
["IntValue"] = 4;
["JointInstance"] = 34;
["JointsService"] = 34;
["Keyframe"] = 60;
["KeyframeSequence"] = 60;
["KeyframeSequenceProvider"] = 60;
["Lighting"] = 13;
["LineHandleAdornment"] = 54;
["LocalScript"] = 18;
["LogService"] = 87;
["MarketplaceService"] = 46;
["Message"] = 33;
["Model"] = 2;
["ModuleScript"] = 71;
["Motor"] = 34;
["Motor6D"] = 34;
["MoveToConstraint"] = 89;
["NegateOperation"] = 78;
["NetworkClient"] = 16;
["NetworkReplicator"] = 29;
["NetworkServer"] = 15;
["NumberValue"] = 4;
["ObjectValue"] = 4;
["Pants"] = 44;
["ParallelRampPart"] = 1;
["Part"] = 1;
["ParticleEmitter"] = 69;
["PartPairLasso"] = 57;
["PathfindingService"] = 37;
["Platform"] = 35;
["Player"] = 12;
["PlayerGui"] = 46;
["Players"] = 21;
["PlayerScripts"] = 82;
["PointLight"] = 13;
["PointsService"] = 83;
["Pose"] = 60;
["PrismaticConstraint"] = 89;
["PrismPart"] = 1;
["PyramidPart"] = 1;
["RayValue"] = 4;
["ReflectionMetadata"] = 86;
["ReflectionMetadataCallbacks"] = 86;
["ReflectionMetadataClass"] = 86;
["ReflectionMetadataClasses"] = 86;
["ReflectionMetadataEnum"] = 86;
["ReflectionMetadataEnumItem"] = 86;
["ReflectionMetadataEnums"] = 86;
["ReflectionMetadataEvents"] = 86;
["ReflectionMetadataFunctions"] = 86;
["ReflectionMetadataMember"] = 86;
["ReflectionMetadataProperties"] = 86;
["ReflectionMetadataYieldFunctions"] = 86;
["RemoteEvent"] = 80;
["RemoteFunction"] = 79;
["ReplicatedFirst"] = 72;
["ReplicatedStorage"] = 72;
["RightAngleRampPart"] = 1;
["RocketPropulsion"] = 14;
["RodConstraint"] = 89;
["RopeConstraint"] = 89;
["Rotate"] = 34;
["RotateP"] = 34;
["RotateV"] = 34;
["RunService"] = 66;
["ScreenGui"] = 47;
["Script"] = 6;
["ScrollingFrame"] = 48;
["Seat"] = 35;
["Selection"] = 55;
["SelectionBox"] = 54;
["SelectionPartLasso"] = 57;
["SelectionPointLasso"] = 57;
["SelectionSphere"] = 54;
["ServerScriptService"] = 0;
["ServerStorage"] = 74;
["Shirt"] = 43;
["ShirtGraphic"] = 40;
["SkateboardPlatform"] = 35;
["Sky"] = 28;
["SlidingBallConstraint"] = 89;
["Smoke"] = 59;
["Snap"] = 34;
["Sound"] = 11;
["SoundService"] = 31;
["Sparkles"] = 42;
["SpawnLocation"] = 25;
["SpecialMesh"] = 8;
["SphereHandleAdornment"] = 54;
["SpotLight"] = 13;
["SpringConstraint"] = 89;
["StarterCharacterScripts"] = 82;
["StarterGear"] = 20;
["StarterGui"] = 46;
["StarterPack"] = 20;
["StarterPlayer"] = 88;
["StarterPlayerScripts"] = 82;
["Status"] = 2;
["StringValue"] = 4;
["SunRaysEffect"] = 90;
["SurfaceGui"] = 64;
["SurfaceLight"] = 13;
["SurfaceSelection"] = 55;
["Team"] = 24;
["Teams"] = 23;
["TeleportService"] = 81;
["Terrain"] = 65;
["TerrainRegion"] = 65;
["TestService"] = 68;
["TextBox"] = 51;
["TextButton"] = 51;
["TextLabel"] = 50;
["Texture"] = 10;
["TextureTrail"] = 4;
["Tool"] = 17;
["TouchTransmitter"] = 37;
["TrussPart"] = 1;
["UnionOperation"] = 77;
["UserInputService"] = 84;
["Vector3Value"] = 4;
["VehicleSeat"] = 35;
["VelocityMotor"] = 34;
["WedgePart"] = 1;
["Weld"] = 34;