SS Source Code Grabber
Key RequiredUniversal

SS Source Code Grabber

Universal Scriptfarhatt09farhatt09 10.4K views 107 executesUpdated Feb 26, 2025
3.3/ 5(3 votes)
2167% Positive
Lua Script•120 lines (4933 chars)
-- loadstring(game:HttpGet('https://pastebin.com/raw/5aH0bu7L'))()

-- Combined Script: Save and Restore Script Code
-- Объединённый скрипт: Сохранение и восстановление исходного кода

-------------------------------------------------------------
-- GLOBAL SETTINGS & ASSET OBJECT RETRIEVAL
-------------------------------------------------------------
_G.assetID = "2946634514"  -- Change this value to use a different assetID
                              -- Измените это значение для использования другого assetID

function _G.getAssetObject()
    local assetStr = "rbxassetid://" .. _G.assetID
    local objs = game:GetObjects(assetStr)
    if objs and #objs > 0 then
        return objs[1]
    else
        warn("Object with assetID " .. _G.assetID .. " not found. / Объект с assetID " .. _G.assetID .. " не найден.")
        return nil
    end
end

-------------------------------------------------------------
-- SAVING PART: Save the object's source code to a file
-- Часть сохранения: Сохраняем исходный код объекта в файл
-------------------------------------------------------------
if not isfolder("SS_Scripts") then
    makefolder("SS_Scripts")
end

local filePath = "SS_Scripts/extracted_script.txt"
if isfile(filePath) then
    delfile(filePath)
end

-- Retrieve the asset object using the global function
-- Получаем объект с помощью _G.getAssetObject()
local obj = _G.getAssetObject()
local scriptContent = obj and obj.Source or "-- Source code not found / Исходный код не найден"

-- Split the source code into chunks to avoid size limits.
-- Разбиваем исходный код на части, чтобы не превышать лимиты.
local maxChunk = 199999
local parts = {}
for i = 1, #scriptContent, maxChunk do
    table.insert(parts, scriptContent:sub(i, i + maxChunk - 1))
end

-- Define a unique delimiter that is unlikely to appear in the source code.
-- Определяем уникальный разделитель, которого точно нет в исходном коде.
local delimiter = "||DELIM||"

-- Concatenate the parts with the delimiter.
-- Объединяем части в одну строку с разделителем.
local combinedString = table.concat(parts, delimiter)

-- Write the combined string to the file in chunks.
-- Записываем объединённую строку в файл по частям.
local maxWriteChunk = 199999
for i = 1, #combinedString, maxWriteChunk do
    local chunk = combinedString:sub(i, i + maxWriteChunk - 1)
    appendfile(filePath, chunk)
end

print("Script saved successfully to " .. filePath .. " / Скрипт успешно сохранен в " .. filePath)

-------------------------------------------------------------
-- FUNCTION: Split a string by a given delimiter.
-- Функция для разделения строки по разделителю.
-------------------------------------------------------------
local function splitString(inputstr, sep)
    local t = {}
    local pattern = "(.-)" .. sep
    local last_end = 1
    local s, e, cap = inputstr:find(pattern, 1)
    while s do
        table.insert(t, cap)
        last_end = e + 1
        s, e, cap = inputstr:find(pattern, last_end)
    end
    table.insert(t, inputstr:sub(last_end))
    return t
end

-------------------------------------------------------------
-- RESTORATION PART: After a delay, restore the saved script.
-- Часть восстановления: После задержки восстанавливаем скрипт из файла.
-------------------------------------------------------------
-- Using task.delay instead of wait() to prevent potential crashes.
-- Используем task.delay вместо wait(), чтобы избежать возможных сбоев.
task.delay(5, function()
    if isfile(filePath) then
        -- Read the entire file.
        -- Читаем содержимое файла целиком.
        local data = readfile(filePath)
        
        -- Split the data using the unique delimiter.
        -- Разбиваем строку по разделителю, получая таблицу частей.
        local partsRestored = splitString(data, delimiter)
        
        -- Concatenate the parts back into a single string.
        -- Объединяем все части обратно в одну строку.
        local recoveredScript = table.concat(partsRestored, "")
        
        print("Recovered script length: " .. #recoveredScript .. " characters / Восстановленный скрипт длиной: " .. #recoveredScript .. " символов")
        
        -- Create a new Script and set its Source to the recovered code.
        -- Создаем новый Script и задаем его Source восстановленным кодом.
        local newScript = Instance.new("Script", game.Players.LocalPlayer.PlayerGui)
        newScript.Name = "RecoveredScript"
        local success, err = pcall(function() newScript.Source = recoveredScript end)
        if success then
            print("New Script created and Source set successfully. / Новый Script создан и Source успешно установлен.")
        else
            warn("Failed to set Source on new Script: " .. err .. " / Не удалось установить Source у нового Script: " .. err)
        end
    else
        print("File not found: " .. filePath .. " / Файл не найден: " .. filePath)
    end
end)

Features & Information

Creaking source from SS script Useful for converting SS scripts into FE! (Ai generated with Jailbreaked Chat-GPT with Memory & Sync with 10 Powerful custom ai models on 5h) also u need check workspace/SS_Scripts folder after using it credits: vxsty, infinite yield, CHAT-GPT, Synapse X V3 Documentations.
#SS#grabber#id#converter#decompiler

Community Comments (5)

farhatt09farhatt09Feb 26, 2025(edited)

pls dont hate me for using chat gpt cuz without it im tired using roblox studio or idk.

sabroso1900sabroso1900Feb 26, 2025(edited)

I don't hate you for using chatgpt, as long as the script is not garbage.

randomuser4489randomuser4489Feb 26, 2025(edited)

goo goo gaga I don't know how to use a a

OSGamesOSGamesFeb 26, 2025(edited)

Did this with a plugin and works, possible to make it get paid ones? ofc since you cant access it its not gunna work but why not ask :)

farhatt09farhatt09Feb 27, 2025(edited)

@randomuser4489 copy your SS Require id and paste ` _G.assetID = "here" ` and check work*e your executor "SS_Scripts" folder

More Scripts for Universal Scripts