Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- basically you can type the path of any property and grab it and everything related to it so for example you can grab a model from studio or from a different game and ask ai to use that dump to recreate the model in a way you can execute it in your executor
- dump file is inside workspace its a regular script named dump which contains everything u need
- ]]
- local PropertyDatabase = {
- -- Universal Properties
- "Name", "Parent", "ClassName", "Archivable", "RobloxLocked", "SourceAssetId", "UniqueId",
- -- State Properties
- "Enabled", "Active", "Visible", "Playing", "IsPlaying", "Looped", "Priority", "Status",
- -- Appearance Properties
- "Color", "Color3", "BrickColor", "Material", "MaterialVariant", "Transparency", "Reflectance",
- "BackgroundColor3", "BackgroundTransparency", "BorderColor3", "TextColor3", "Image", "Texture",
- "TextureId", "MeshId", "MeshType", "Scale", "Offset", "VertexColor", "DoubleSided",
- "RenderFidelity", "CollisionFidelity",
- -- Transform Properties
- "CFrame", "Position", "Orientation", "Rotation", "Size", "Anchored", "PivotOffset", "WorldPivot",
- -- Physics Properties
- "CanCollide", "CanTouch", "CanQuery", "CollisionGroup", "CollisionGroupId", "Velocity",
- "RotVelocity", "AssemblyLinearVelocity", "AssemblyAngularVelocity", "Elasticity", "Friction",
- "Density", "Mass", "Massless", "CustomPhysicalProperties", "FormFactor", "Shape",
- "TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface",
- -- Text Properties
- "Text", "TextSize", "TextScaled", "TextWrapped", "Font", "FontFace", "FontSize",
- "TextXAlignment", "TextYAlignment", "TextStrokeColor3", "TextStrokeTransparency",
- "RichText", "LineHeight", "MaxVisibleGraphemes", "PlaceholderText", "PlaceholderColor3",
- "ClearTextOnFocus", "MultiLine", "TextEditable", "CursorPosition", "SelectionStart",
- -- GUI Properties
- "AnchorPoint", "LayoutOrder", "ZIndex", "ClipsDescendants", "Selectable", "AutoButtonColor",
- "Modal", "AbsolutePosition", "AbsoluteSize", "AbsoluteRotation", "AutomaticSize",
- "SizeConstraint", "Draggable", "Interactable", "BorderSizePixel", "BorderMode",
- "ScrollingEnabled", "CanvasSize", "CanvasPosition", "ScrollBarThickness",
- -- Sound Properties
- "SoundId", "Volume", "Pitch", "PlaybackSpeed", "TimePosition", "RollOffMode",
- "RollOffMinDistance", "RollOffMaxDistance", "EmitterSize", "PlayOnRemove", "SoundGroup",
- -- Animation Properties
- "AnimationId", "Speed", "Length", "WeightCurrent", "WeightTarget", "Animation",
- -- Lighting Properties
- "Brightness", "Color", "Range", "Shadows", "Ambient", "OutdoorAmbient", "TimeOfDay",
- "ClockTime", "Technology", "GlobalShadows", "FogColor", "FogEnd", "FogStart",
- "ExposureCompensation", "EnvironmentDiffuseScale", "EnvironmentSpecularScale",
- -- Model Properties
- "PrimaryPart", "ModelStreamingMode", "LevelOfDetail",
- -- Camera Properties
- "CameraType", "CameraSubject", "FieldOfView", "Focus", "HeadLocked", "HeadScale",
- "ViewportSize", "FieldOfViewMode",
- -- Humanoid Properties
- "Health", "MaxHealth", "WalkSpeed", "JumpPower", "JumpHeight", "AutoJumpEnabled",
- "DisplayDistanceType", "RigType", "HipHeight", "Sit", "Jump", "AutoRotate",
- "MoveDirection", "TargetPoint", "PlatformStand", "HealthDisplayDistance",
- "HealthDisplayType", "NameDisplayDistance", "NameOcclusion", "DisplayName",
- -- Constraint Properties
- "Attachment0", "Attachment1", "LimitsEnabled", "Restitution", "MaxForce", "MaxTorque",
- "Responsiveness", "RigidityEnabled", "Radius", "Thickness", "Length",
- -- ParticleEmitter Properties
- "Rate", "Lifetime", "Speed", "Acceleration", "Drag", "EmissionDirection", "LockedToPart",
- "LightEmission", "LightInfluence", "SpreadAngle", "VelocityInheritance", "Rotation",
- "RotSpeed", "FaceCamera", "ShapeStyle", "FlipbookMode",
- -- Player Properties
- "UserId", "Character", "Team", "TeamColor", "Neutral", "CharacterAppearanceId",
- "AccountAge", "MembershipType", "HasVerifiedBadge", "CameraMode",
- "CameraMaxZoomDistance", "CameraMinZoomDistance",
- -- Workspace Properties
- "CurrentCamera", "Gravity", "FallenPartsDestroyHeight", "StreamingEnabled",
- "FilteringEnabled", "GlobalWind", "Terrain",
- -- Tool Properties
- "CanBeDropped", "RequiresHandle", "Grip", "GripForward", "GripPos", "GripRight",
- "GripUp", "ToolTip", "ManualActivationOnly",
- -- Value Properties
- "Value", "MaxValue", "MinValue",
- -- Additional Properties
- "Heat", "TimeScale", "SecondaryColor", "Opacity", "RiseVelocity", "SparkleColor",
- "SkyboxBk", "SkyboxDn", "SkyboxFt", "SkyboxLf", "SkyboxRt", "SkyboxUp",
- "P", "D", "AngularVelocity", "ScrollingDirection", "ElasticBehavior",
- "FillDirection", "SortOrder", "Padding", "CellSize", "CellPadding",
- "ActionText", "ObjectText", "MaxActivationDistance", "HoldDuration",
- "Video", "IsLoaded", "TimeLength", "Resolution", "Bypass", "Attack",
- "EndEffector", "Target", "Pole", "ChainRoot", "Weight", "SmoothTime",
- "AutoAssignable", "Score", "AutoColorCharacters", "CursorIcon",
- "Adornee", "FillColor", "FillTransparency", "OutlineColor",
- "AlwaysOnTop", "MaxDistance", "StudsOffset", "SizeOffset",
- "DisplayOrder", "IgnoreGuiInset", "ResetOnSpawn", "ZIndexBehavior",
- "Ambient", "LightColor", "LightDirection", "ImageColor3",
- "ColorMap", "NormalMap", "RoughnessMap", "MetalnessMap",
- "Density", "Cover", "Glare", "Haze", "Decay",
- "BlastPressure", "BlastRadius", "ExplosionType",
- "Disabled", "Occupant", "Throttle", "Steer", "MaxSpeed",
- "InitialPrompt", "GoodbyeDialog", "Purpose", "ConversationDistance",
- "Time", "EasingDirection", "EasingStyle", "CornerRadius",
- "LocalTransparencyModifier", "CastShadow", "LinkedSource", "Source"
- }
- -- Convert to lookup table
- local PropertyLookup = {}
- for _, prop in ipairs(PropertyDatabase) do
- PropertyLookup[prop] = true
- end
- -- ============================================
- -- OPTIMIZED PROPERTY GETTER
- -- ============================================
- local function GetProperties(instance)
- if typeof(instance) ~= "Instance" then
- return {}
- end
- local properties = {}
- local readOnlyProps = {
- "ClassName", "UniqueId", "DataCost", "AbsolutePosition",
- "AbsoluteSize", "AbsoluteRotation", "WorldPivot",
- "AssemblyLinearVelocity", "AssemblyAngularVelocity",
- "IsPlaying", "IsPaused", "IsLoaded", "TimeLength"
- }
- local function isReadOnly(prop)
- for _, readOnly in ipairs(readOnlyProps) do
- if prop == readOnly then return true end
- end
- return false
- end
- -- Try all known properties
- for propName in pairs(PropertyLookup) do
- local success, value = pcall(function()
- return instance[propName]
- end)
- if success and value ~= nil then
- local valueType = typeof(value)
- if valueType ~= "function" and valueType ~= "RBXScriptSignal" then
- properties[propName] = {
- Value = value,
- Type = valueType,
- ReadOnly = isReadOnly(propName)
- }
- end
- end
- end
- return properties
- end
- -- ============================================
- -- ENHANCED PATH RESOLVER
- -- ============================================
- local function ResolvePath(pathString)
- pathString = pathString:gsub("^%s+", ""):gsub("%s+$", "")
- if pathString == "" then
- return nil, "Empty path"
- end
- -- Service shortcuts
- local serviceMap = {
- ["workspace"] = workspace,
- ["ws"] = workspace,
- ["game"] = game,
- ["players"] = game:GetService("Players"),
- ["lighting"] = game:GetService("Lighting"),
- ["replicatedstorage"] = game:GetService("ReplicatedStorage"),
- ["rs"] = game:GetService("ReplicatedStorage"),
- ["serverstorage"] = game:GetService("ServerStorage"),
- ["ss"] = game:GetService("ServerStorage")
- }
- -- Try direct eval
- local success, result = pcall(function()
- return loadstring("return " .. pathString)()
- end)
- if success and typeof(result) == "Instance" then
- return result, nil
- end
- -- Parse manually
- local parts = {}
- for part in pathString:gmatch("[^%.]+") do
- table.insert(parts, part)
- end
- if #parts == 0 then
- return nil, "Invalid path"
- end
- local current = serviceMap[parts[1]:lower()]
- local startIndex = 2
- if not current then
- current = workspace
- startIndex = 1
- end
- -- Traverse
- for i = startIndex, #parts do
- local partName = parts[i]
- local found = false
- local child = current:FindFirstChild(partName)
- if child then
- current = child
- found = true
- else
- for _, child in ipairs(current:GetChildren()) do
- if child.Name:lower() == partName:lower() then
- current = child
- found = true
- break
- end
- end
- end
- if not found then
- return nil, "Could not find '" .. partName .. "' in " .. current:GetFullName()
- end
- end
- return current, nil
- end
- -- ============================================
- -- CRASH-FREE DEEP SCANNER WITH YIELDING
- -- ============================================
- local RunService = game:GetService("RunService")
- local function DeepScan(targetInstance, progressCallback)
- local scanData = {
- Target = nil,
- Descendants = {},
- TotalInstances = 0,
- TotalProperties = 0,
- StartTime = tick()
- }
- if not targetInstance then
- return scanData
- end
- local function scanInstance(instance, depth)
- local props = GetProperties(instance)
- local propCount = 0
- for _ in pairs(props) do
- propCount = propCount + 1
- scanData.TotalProperties = scanData.TotalProperties + 1
- end
- local instanceData = {
- Instance = instance,
- Path = instance:GetFullName(),
- ClassName = instance.ClassName,
- Properties = props,
- PropertyCount = propCount,
- Depth = depth or 0
- }
- if depth == 0 then
- scanData.Target = instanceData
- else
- table.insert(scanData.Descendants, instanceData)
- end
- scanData.TotalInstances = scanData.TotalInstances + 1
- return instanceData
- end
- -- Scan target
- scanInstance(targetInstance, 0)
- if progressCallback then
- progressCallback(scanData.TotalInstances, scanData.TotalProperties)
- end
- -- Get all descendants at once
- local descendants = targetInstance:GetDescendants()
- local totalDescendants = #descendants
- -- Process in batches with yielding
- local batchSize = 50 -- Process 50 instances at a time
- for i = 1, totalDescendants, batchSize do
- -- Yield every batch to prevent timeout
- if i > 1 then
- RunService.Heartbeat:Wait()
- end
- -- Process batch
- local batchEnd = math.min(i + batchSize - 1, totalDescendants)
- for j = i, batchEnd do
- local descendant = descendants[j]
- -- Calculate depth
- local depth = 0
- local current = descendant
- while current and current ~= targetInstance do
- depth = depth + 1
- current = current.Parent
- end
- scanInstance(descendant, depth)
- end
- -- Update progress
- if progressCallback then
- progressCallback(scanData.TotalInstances, scanData.TotalProperties)
- end
- end
- scanData.EndTime = tick()
- scanData.ScanDuration = scanData.EndTime - scanData.StartTime
- return scanData
- end
- -- ============================================
- -- SERIALIZE TO LUA CODE
- -- ============================================
- local function SerializeValue(value, valueType)
- if valueType == "string" then
- return string.format("%q", value)
- elseif valueType == "number" then
- if value ~= value then return "0/0" end -- NaN
- if value == math.huge then return "math.huge" end
- if value == -math.huge then return "-math.huge" end
- return tostring(value)
- elseif valueType == "boolean" then
- return tostring(value)
- elseif valueType == "CFrame" then
- local components = {value:GetComponents()}
- return string.format("CFrame.new(%s)", table.concat(components, ", "))
- elseif valueType == "Vector3" then
- return string.format("Vector3.new(%.4f, %.4f, %.4f)", value.X, value.Y, value.Z)
- elseif valueType == "Vector2" then
- return string.format("Vector2.new(%.4f, %.4f)", value.X, value.Y)
- elseif valueType == "UDim2" then
- return string.format("UDim2.new(%.4f, %d, %.4f, %d)",
- value.X.Scale, value.X.Offset, value.Y.Scale, value.Y.Offset)
- elseif valueType == "UDim" then
- return string.format("UDim.new(%.4f, %d)", value.Scale, value.Offset)
- elseif valueType == "Color3" then
- return string.format("Color3.new(%.4f, %.4f, %.4f)", value.R, value.G, value.B)
- elseif valueType == "BrickColor" then
- return string.format("BrickColor.new(%q)", tostring(value))
- elseif valueType == "EnumItem" then
- return tostring(value)
- else
- return "nil"
- end
- end
- local function GenerateScript(scanData)
- local lines = {
- "-- Generated by Property Scanner Pro",
- "-- Instances: " .. scanData.TotalInstances,
- "-- Properties: " .. scanData.TotalProperties,
- "-- Scan Time: " .. string.format("%.2fs", scanData.ScanDuration),
- "",
- "local function createModel(parent)",
- " local instances = {}",
- ""
- }
- -- Collect all instances
- local allInstances = {scanData.Target}
- for _, inst in ipairs(scanData.Descendants) do
- table.insert(allInstances, inst)
- end
- -- Create instances
- for i, instData in ipairs(allInstances) do
- local varName = "inst_" .. i
- table.insert(lines, string.format(" local %s = Instance.new(%q)",
- varName, instData.ClassName))
- table.insert(lines, string.format(" %s.Name = %q",
- varName, instData.Instance.Name))
- table.insert(lines, string.format(" instances[%q] = %s",
- instData.Path, varName))
- end
- table.insert(lines, "")
- -- Set properties
- for i, instData in ipairs(allInstances) do
- local varName = "inst_" .. i
- for propName, propData in pairs(instData.Properties) do
- if not propData.ReadOnly and propName ~= "Parent" and propName ~= "Name" then
- local valueStr = SerializeValue(propData.Value, propData.Type)
- if valueStr ~= "nil" then
- table.insert(lines, string.format(" pcall(function() %s.%s = %s end)",
- varName, propName, valueStr))
- end
- end
- end
- end
- table.insert(lines, "")
- table.insert(lines, " -- Set parents")
- for i, instData in ipairs(allInstances) do
- local varName = "inst_" .. i
- if i == 1 then
- table.insert(lines, string.format(" %s.Parent = parent", varName))
- else
- local parentPath = instData.Path:match("(.+)%..+$")
- if parentPath then
- table.insert(lines, string.format(" %s.Parent = instances[%q]",
- varName, parentPath))
- end
- end
- end
- table.insert(lines, "")
- table.insert(lines, " return instances")
- table.insert(lines, "end")
- table.insert(lines, "")
- table.insert(lines, "-- Usage: createModel(workspace)")
- return table.concat(lines, "\n")
- end
- -- ============================================
- -- MODERN UI
- -- ============================================
- local function CreateUI()
- local screenGui = Instance.new("ScreenGui")
- screenGui.Name = "PropertyScanner"
- screenGui.ResetOnSpawn = false
- screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
- local main = Instance.new("Frame")
- main.Size = UDim2.new(0, 700, 0, 600)
- main.Position = UDim2.new(0.5, -350, 0.5, -300)
- main.BackgroundColor3 = Color3.fromRGB(30, 30, 35)
- main.BorderSizePixel = 0
- main.Parent = screenGui
- local corner = Instance.new("UICorner")
- corner.CornerRadius = UDim.new(0, 12)
- corner.Parent = main
- -- Title bar
- local titleBar = Instance.new("Frame")
- titleBar.Size = UDim2.new(1, 0, 0, 50)
- titleBar.BackgroundColor3 = Color3.fromRGB(40, 130, 255)
- titleBar.BorderSizePixel = 0
- titleBar.Parent = main
- local titleCorner = Instance.new("UICorner")
- titleCorner.CornerRadius = UDim.new(0, 12)
- titleCorner.Parent = titleBar
- local titleBarFix = Instance.new("Frame")
- titleBarFix.Size = UDim2.new(1, 0, 0, 12)
- titleBarFix.Position = UDim2.new(0, 0, 1, -12)
- titleBarFix.BackgroundColor3 = Color3.fromRGB(40, 130, 255)
- titleBarFix.BorderSizePixel = 0
- titleBarFix.Parent = titleBar
- local title = Instance.new("TextLabel")
- title.Size = UDim2.new(1, -100, 1, 0)
- title.Position = UDim2.new(0, 15, 0, 0)
- title.BackgroundTransparency = 1
- title.Text = "š Property Scanner Pro"
- title.TextColor3 = Color3.fromRGB(255, 255, 255)
- title.TextSize = 20
- title.Font = Enum.Font.GothamBold
- title.TextXAlignment = Enum.TextXAlignment.Left
- title.Parent = titleBar
- local closeBtn = Instance.new("TextButton")
- closeBtn.Size = UDim2.new(0, 40, 0, 40)
- closeBtn.Position = UDim2.new(1, -45, 0, 5)
- closeBtn.BackgroundColor3 = Color3.fromRGB(255, 70, 70)
- closeBtn.BorderSizePixel = 0
- closeBtn.Text = "Ć"
- closeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
- closeBtn.TextSize = 24
- closeBtn.Font = Enum.Font.GothamBold
- closeBtn.Parent = titleBar
- local closeBtnCorner = Instance.new("UICorner")
- closeBtnCorner.CornerRadius = UDim.new(0, 8)
- closeBtnCorner.Parent = closeBtn
- closeBtn.MouseButton1Click:Connect(function()
- screenGui:Destroy()
- end)
- -- Content
- local content = Instance.new("Frame")
- content.Size = UDim2.new(1, -30, 1, -80)
- content.Position = UDim2.new(0, 15, 0, 65)
- content.BackgroundTransparency = 1
- content.Parent = main
- local inputLabel = Instance.new("TextLabel")
- inputLabel.Size = UDim2.new(1, 0, 0, 20)
- inputLabel.BackgroundTransparency = 1
- inputLabel.Text = "Instance Path:"
- inputLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
- inputLabel.TextSize = 14
- inputLabel.Font = Enum.Font.GothamMedium
- inputLabel.TextXAlignment = Enum.TextXAlignment.Left
- inputLabel.Parent = content
- local inputBox = Instance.new("TextBox")
- inputBox.Size = UDim2.new(1, 0, 0, 45)
- inputBox.Position = UDim2.new(0, 0, 0, 25)
- inputBox.BackgroundColor3 = Color3.fromRGB(45, 45, 50)
- inputBox.BorderSizePixel = 0
- inputBox.PlaceholderText = "workspace.Part or game.Lighting"
- inputBox.Text = ""
- inputBox.TextColor3 = Color3.fromRGB(255, 255, 255)
- inputBox.TextSize = 14
- inputBox.Font = Enum.Font.Code
- inputBox.ClearTextOnFocus = false
- inputBox.Parent = content
- local inputCorner = Instance.new("UICorner")
- inputCorner.CornerRadius = UDim.new(0, 8)
- inputCorner.Parent = inputBox
- local inputPadding = Instance.new("UIPadding")
- inputPadding.PaddingLeft = UDim.new(0, 12)
- inputPadding.Parent = inputBox
- local scanBtn = Instance.new("TextButton")
- scanBtn.Size = UDim2.new(0, 200, 0, 45)
- scanBtn.Position = UDim2.new(0, 0, 0, 80)
- scanBtn.BackgroundColor3 = Color3.fromRGB(40, 200, 100)
- scanBtn.BorderSizePixel = 0
- scanBtn.Text = "š Scan & Generate"
- scanBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
- scanBtn.TextSize = 16
- scanBtn.Font = Enum.Font.GothamBold
- scanBtn.Parent = content
- local scanBtnCorner = Instance.new("UICorner")
- scanBtnCorner.CornerRadius = UDim.new(0, 8)
- scanBtnCorner.Parent = scanBtn
- local status = Instance.new("TextLabel")
- status.Size = UDim2.new(1, -210, 0, 45)
- status.Position = UDim2.new(0, 210, 0, 80)
- status.BackgroundTransparency = 1
- status.Text = "Ready to scan"
- status.TextColor3 = Color3.fromRGB(150, 150, 150)
- status.TextSize = 13
- status.Font = Enum.Font.Gotham
- status.TextXAlignment = Enum.TextXAlignment.Left
- status.Parent = content
- local resultsFrame = Instance.new("Frame")
- resultsFrame.Size = UDim2.new(1, 0, 1, -140)
- resultsFrame.Position = UDim2.new(0, 0, 0, 140)
- resultsFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25)
- resultsFrame.BorderSizePixel = 0
- resultsFrame.Parent = content
- local resultsCorner = Instance.new("UICorner")
- resultsCorner.CornerRadius = UDim.new(0, 8)
- resultsCorner.Parent = resultsFrame
- local scrollFrame = Instance.new("ScrollingFrame")
- scrollFrame.Size = UDim2.new(1, -10, 1, -10)
- scrollFrame.Position = UDim2.new(0, 5, 0, 5)
- scrollFrame.BackgroundTransparency = 1
- scrollFrame.BorderSizePixel = 0
- scrollFrame.ScrollBarThickness = 6
- scrollFrame.ScrollBarImageColor3 = Color3.fromRGB(80, 80, 90)
- scrollFrame.Parent = resultsFrame
- local resultsText = Instance.new("TextLabel")
- resultsText.Size = UDim2.new(1, -10, 1, 0)
- resultsText.BackgroundTransparency = 1
- resultsText.Text = "Results will appear here...\n\nExamples:\n⢠workspace.Baseplate\n⢠game.Lighting\n⢠workspace.idekbruh"
- resultsText.TextColor3 = Color3.fromRGB(180, 180, 180)
- resultsText.TextSize = 12
- resultsText.Font = Enum.Font.Code
- resultsText.TextXAlignment = Enum.TextXAlignment.Left
- resultsText.TextYAlignment = Enum.TextYAlignment.Top
- resultsText.TextWrapped = true
- resultsText.Parent = scrollFrame
- -- Scan logic with proper yielding
- local isScanning = false
- scanBtn.MouseButton1Click:Connect(function()
- if isScanning then
- return
- end
- local path = inputBox.Text
- if path == "" then
- status.Text = "ā Please enter a path"
- status.TextColor3 = Color3.fromRGB(255, 100, 100)
- return
- end
- isScanning = true
- scanBtn.Text = "ā³ Scanning..."
- scanBtn.BackgroundColor3 = Color3.fromRGB(255, 180, 50)
- status.Text = "Resolving path..."
- status.TextColor3 = Color3.fromRGB(255, 200, 100)
- task.spawn(function()
- task.wait(0.1)
- local instance, err = ResolvePath(path)
- if not instance then
- scanBtn.Text = "š Scan & Generate"
- scanBtn.BackgroundColor3 = Color3.fromRGB(40, 200, 100)
- status.Text = "ā " .. (err or "Path not found")
- status.TextColor3 = Color3.fromRGB(255, 100, 100)
- resultsText.Text = err or "Could not resolve path"
- isScanning = false
- return
- end
- status.Text = "Scanning instances..."
- local scanData = DeepScan(instance, function(instances, properties)
- status.Text = string.format("Scanning... %d instances, %d properties",
- instances, properties)
- end)
- status.Text = "Generating code..."
- task.wait(0.1)
- local code = GenerateScript(scanData)
- -- Save to workspace
- local oldDump = workspace:FindFirstChild("dump")
- if oldDump then
- oldDump:Destroy()
- end
- local dumpScript = Instance.new("Script")
- dumpScript.Name = "dump"
- dumpScript.Source = code
- dumpScript.Parent = workspace
- local resultText = string.format(
- "ā SCAN COMPLETE\n\n" ..
- "Path: %s\n" ..
- "Class: %s\n" ..
- "Instances: %d\n" ..
- "Properties: %d\n" ..
- "Duration: %.2fs\n\n" ..
- "ā Dump script created in Workspace!",
- scanData.Target.Path,
- scanData.Target.ClassName,
- scanData.TotalInstances,
- scanData.TotalProperties,
- scanData.ScanDuration
- )
- resultsText.Text = resultText
- resultsText.Size = UDim2.new(1, -10, 0, math.max(resultsText.TextBounds.Y, scrollFrame.AbsoluteSize.Y))
- scrollFrame.CanvasSize = UDim2.new(0, 0, 0, resultsText.TextBounds.Y + 10)
- scanBtn.Text = "š Scan & Generate"
- scanBtn.BackgroundColor3 = Color3.fromRGB(40, 200, 100)
- status.Text = string.format("ā Complete! %d instances", scanData.TotalInstances)
- status.TextColor3 = Color3.fromRGB(100, 255, 150)
- isScanning = false
- print("\n" .. resultText)
- end)
- end)
- -- Draggable
- local dragging, dragInput, dragStart, startPos
- titleBar.InputBegan:Connect(function(input)
- if input.UserInputType == Enum.UserInputType.MouseButton1 then
- dragging = true
- dragStart = input.Position
- startPos = main.Position
- input.Changed:Connect(function()
- if input.UserInputState == Enum.UserInputState.End then
- dragging = false
- end
- end)
- end
- end)
- titleBar.InputChanged:Connect(function(input)
- if input.UserInputType == Enum.UserInputType.MouseMovement then
- dragInput = input
- end
- end)
- game:GetService("UserInputService").InputChanged:Connect(function(input)
- if input == dragInput and dragging then
- local delta = input.Position - dragStart
- main.Position = UDim2.new(
- startPos.X.Scale, startPos.X.Offset + delta.X,
- startPos.Y.Scale, startPos.Y.Offset + delta.Y
- )
- end
- end)
- return screenGui
- end
- -- ============================================
- -- MAIN
- -- ============================================
- local gui = CreateUI()
- if game:GetService("RunService"):IsStudio() then
- gui.Parent = game:GetService("CoreGui")
- else
- local player = game:GetService("Players").LocalPlayer
- if player then
- gui.Parent = player:WaitForChild("PlayerGui")
- end
- end
- print("\n" .. string.rep("=", 70))
- print("PROPERTY SCANNER PRO - CRASH-FREE")
- print(string.rep("=", 70))
- print("ā Optimized with proper yielding")
- print("ā Batch processing prevents timeouts")
- print("ā Safe for large hierarchies")
- print(string.rep("=", 70) .. "\n")
Advertisement
Add Comment
Please, Sign In to add comment