SMM-Recorder
Key RequiredUniversal

SMM-Recorder

Universal ScriptFolder_maker967Folder_maker967 536 views 597 executesUpdated Sep 2, 2026
Unrated
00
Lua Script•154 lines (4361 chars)
local success, OrionLib = pcall(function()
    return loadstring(game:HttpGet("https://raw.githubusercontent.com/jensonhirst/Orion/main/source"))()
end)

if not success or not OrionLib then
    warn("Не удалось загрузить Orion UI! Проверьте подключение или исполнитель.")
    return
end

local Window = OrionLib:MakeWindow({
    Name = "TinyTask Macro | Solara Edition",
    HidePremium = false,
    SaveConfig = false,
    ConfigFolder = "OrionMacroConfig"
})

local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

local isRecording = false
local isReplaying = false
local loopReplay = false

local recordedData = {}
local startTime = 0
local replayConnection = nil

local Tab = Window:MakeTab({
    Name = "Recorder",
    Icon = "rbxassetid://4483345998",
    PremiumOnly = false
})

local StatusLabel = Tab:AddLabel("Статус: Ожидание")

RunService.RenderStepped:Connect(function()
    if isRecording then
        local character = LocalPlayer.Character
        if character and character:FindFirstChild("HumanoidRootPart") then
            local currentTime = os.clock() - startTime
            table.insert(recordedData, {
                Time = currentTime,
                CFrame = character.HumanoidRootPart.CFrame,
                CameraCFrame = workspace.CurrentCamera.CFrame
            })
            StatusLabel:Set("Запись... Точек: " .. #recordedData)
        end
    end
end)

local function stopReplay()
    if replayConnection then
        replayConnection:Disconnect()
        replayConnection = nil
    end
    isReplaying = false
    StatusLabel:Set("Статус: Остановлено")
end

local function startReplay()
    if #recordedData == 0 then
        StatusLabel:Set("Ошибка: Нет записанных данных!")
        return
    end
    
    if isReplaying then return end
    isReplaying = true
    
    task.spawn(function()
        repeat
            local replayStartTime = os.clock()
            local index = 1
            local completed = false
            
            replayConnection = RunService.RenderStepped:Connect(function()
                if not isReplaying then
                    if replayConnection then replayConnection:Disconnect() end
                    return
                end
                
                local elapsed = os.clock() - replayStartTime
                
                while index <= #recordedData and recordedData[index].Time <= elapsed do
                    local frame = recordedData[index]
                    local character = LocalPlayer.Character
                    if character and character:FindFirstChild("HumanoidRootPart") then
                        character.HumanoidRootPart.CFrame = frame.CFrame
                        workspace.CurrentCamera.CFrame = frame.CameraCFrame
                    end
                    index = index + 1
                end
                
                StatusLabel:Set("Воспроизведение: " .. index .. "/" .. #recordedData)
                
                if index > #recordedData then
                    completed = true
                end
            end)
            
            repeat task.wait() until completed or not isReplaying
            if replayConnection then replayConnection:Disconnect() end
            
        until not loopReplay or not isReplaying
        
        isReplaying = false
        StatusLabel:Set("Статус: Готово")
    end)
end

Tab:AddButton({
    Name = "🔴 Начать запись (Record)",
    Callback = function()
        if isReplaying then return end
        recordedData = {}
        startTime = os.clock()
        isRecording = true
    end    
})

Tab:AddButton({
    Name = "⏹️ Остановить запись (Stop)",
    Callback = function()
        isRecording = false
        StatusLabel:Set("Запись завершена. Точек: " .. #recordedData)
    end    
})

Tab:AddButton({
    Name = "▶️ Воспроизвести (Play)",
    Callback = function()
        if not isRecording then
            startReplay()
        end
    end    
})

Tab:AddButton({
    Name = "⛔ Остановить все (Stop All)",
    Callback = function()
        isRecording = false
        stopReplay()
    end    
})

Tab:AddToggle({
    Name = "🔁 Цикличное воспроизведение (Loop)",
    Default = false,
    Callback = function(Value)
        loopReplay = Value
    end    
})

OrionLib:Init()

Features & Information

- Dynamic Character & Camera CFrame Recording - Frame-by-Frame Motion Replay - Loop Replay System

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts