local Workspace = game:GetService("Workspace") local HttpService = game:GetService("HttpService") local aiFolder = Workspace:FindFirstChild("World") and Workspace.World:FindFirstChild("AI") if not aiFolder then warn("[Dumper] 'workspace.World.AI' wurde nicht gefunden!") return end local copyToClipboard = setclipboard or toclipboard or syn and syn.write_clipboard if not copyToClipboard then warn("[Dumper] Deine Ausführungsumgebung unterstützt 'setclipboard' nicht!") return end print("[Dumper] Starte Analyse von 'workspace.World.AI'...") local dumpedData = {} local categoryCount = 0 local totalModels = 0 local function getAttributesTable(instance) local attributes = {} for name, value in pairs(instance:GetAttributes()) do attributes[name] = tostring(value) end return attributes end local function getChildrenStructure(parent) local structure = {} for _, child in ipairs(parent:GetChildren()) do local childData = { Name = child.Name, ClassName = child.ClassName, Attributes = getAttributesTable(child) } if #child:GetChildren() > 0 then childData.Children = getChildrenStructure(child) end table.insert(structure, childData) end return structure end for _, item in ipairs(aiFolder:GetChildren()) do local categoryName = item.Name -- Kategorisierung nach Objektname if not dumpedData[categoryName] then dumpedData[categoryName] = { Count = 0, Instances = {} } categoryCount = categoryCount + 1 end dumpedData[categoryName].Count = dumpedData[categoryName].Count + 1 totalModels = totalModels + 1 local modelDetails = { ClassName = item.ClassName, PrimaryPart = item:IsA("Model") and (item.PrimaryPart and item.PrimaryPart.Name or "Keines") or "N/A", Attributes = getAttributesTable(item), Children = getChildrenStructure(item) } table.insert(dumpedData[categoryName].Instances, modelDetails) end local success, formattedJson = pcall(function() return HttpService:JSONEncode(dumpedData) end) if success then copyToClipboard(formattedJson) print(string.format("[Dumper] Erfolgreich! %d Modelle in %d Kategorien kopiert.", totalModels, categoryCount)) print("[Dumper] Die Daten befinden sich jetzt in deiner Zwischenablage (STRG + V).") else warn("[Dumper] Fehler beim Formatieren der Daten: " .. tostring(formattedJson)) end