
Key RequiredUniversal

-- 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)



pls dont hate me for using chat gpt cuz without it im tired using roblox studio or idk.
I don't hate you for using chatgpt, as long as the script is not garbage.
goo goo gaga I don't know how to use a a
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 :)
@randomuser4489 copy your SS Require id and paste ` _G.assetID = "here" ` and check work*e your executor "SS_Scripts" folder