Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- loadstring(game:HttpGet('https://pastebin.com/raw/5aH0bu7L'))()
- -- Credits in Scriptblox https://scriptblox.com/script/Universal-Script-SS-Source-Code-Grabber-30412
- -- Combined Script: Save and Restore Script Code
- -- Объединённый скрипт: Сохранение и восстановление исходного кода
- -------------------------------------------------------------
- -- GLOBAL SETTINGS & ASSET OBJECT RETRIEVAL
- -------------------------------------------------------------
- _G.assetID = "ID" -- 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)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement