Run it
Copy the script and paste it into your executor.
Players = :()
UserInputService = :()
TweenService = :()
RunService = :()
TextService = :()
player = Players.LocalPlayer
character = player.Character player.CharacterAdded:()
humanoid = character:()
translations = {
Russian = {
title = ,
r15 = ,
r6 = ,
start = ,
stop = ,
play = ,
play_reverse = ,
speed = ,
recording = ,
select_avatar = ,
hide = ,
show = ,
enter_speed = ,
confirm = ,
show_gui = ,
scroll =
},
English = {
title = ,
r15 = ,
r6 = ,
start = ,
stop = ,
play = ,
play_reverse = ,
speed = ,
recording = ,
select_avatar = ,
hide = ,
show = ,
enter_speed = ,
confirm = ,
show_gui = ,
scroll =
},
Thai = {
title = ,
r15 = ,
r6 = ,
start = ,
stop = ,
play = ,
play_reverse = ,
speed = ,
recording = ,
select_avatar = ,
hide = ,
show = ,
enter_speed = ,
confirm = ,
show_gui = ,
scroll =
},
Arabic = {
title = ,
r15 = ,
r6 = ,
start = ,
stop = ,
play = ,
play_reverse = ,
speed = ,
recording = ,
select_avatar = ,
hide = ,
show = ,
enter_speed = ,
confirm = ,
show_gui = ,
scroll =
},
French = {
title = ,
r15 = ,
r6 = ,
start = ,
stop = ,
play = ,
play_reverse = ,
speed = ,
recording = ,
select_avatar = ,
hide = ,
show = ,
enter_speed = ,
confirm = ,
show_gui = ,
scroll =
},
Spanish = {
title = ,
r15 = ,
r6 = ,
start = ,
stop = ,
play = ,
play_reverse = ,
speed = ,
recording = ,
select_avatar = ,
hide = ,
show = ,
enter_speed = ,
confirm = ,
show_gui = ,
scroll =
},
German = {
title = ,
r15 = ,
r6 = ,
start = ,
stop = ,
play = ,
play_reverse = ,
speed = ,
recording = ,
select_avatar = ,
hide = ,
show = ,
enter_speed = ,
confirm = ,
show_gui = ,
scroll =
}
}
currentLanguage =
selectedAvatar =
isRecording =
isPlaying =
isReversePlaying =
recordingStartTime =
recordedActions = {}
recordingConnection =
playConnection =
currentSpeed =
screenGui = .()
screenGui.Name =
screenGui.Parent = player.PlayerGui
(seconds)
minutes = .(seconds / )
secs = .(seconds % )
.(, minutes, secs)
(name, text, position, size)
button = .()
button.Name = name
button.Text = text
button.Size = .(, size.X, , size.Y)
button.Position = .(, position.X, , position.Y)
button.BackgroundColor3 = .(, , )
button.TextColor3 = .(, , )
button.Font = .Font.SourceSans
button.TextSize =
button.BorderSizePixel =
button.ZIndex =
button.AutoButtonColor =
button
(name, text, position)
label = .()
label.Name = name
label.Text = text
label.Size = .(, , , )
label.Position = .(, position.X, , position.Y)
label.BackgroundTransparency =
label.TextColor3 = .(, , )
label.Font = .Font.SourceSans
label.TextSize =
label.ZIndex =
label
(name, text, position, size)
textBox = .()
textBox.Name = name
textBox.Text = text
textBox.Size = .(, size.X, , size.Y)
textBox.Position = .(, position.X, , position.Y)
textBox.BackgroundColor3 = .(, , )
textBox.TextColor3 = .(, , )
textBox.Font = .Font.SourceSans
textBox.TextSize =
textBox.BorderSizePixel =
textBox.ZIndex =
textBox
showGUIButton = (, translations[currentLanguage].show_gui, .(, ), .(, ))
showGUIButton.BackgroundColor3 = .(, , )
showGUIButton.Visible =
showGUIButton.ZIndex =
showGUIButton.Parent = screenGui
languageFrame = .()
languageFrame.Size = .(, , , )
languageFrame.Position = .(, -, , -)
languageFrame.BackgroundColor3 = .(, , )
languageFrame.BorderSizePixel =
languageFrame.ZIndex =
languageFrame.Parent = screenGui
scrollingFrame = .()
scrollingFrame.Size = .(, -, , -)
scrollingFrame.Position = .(, , , )
scrollingFrame.BackgroundTransparency =
scrollingFrame.BorderSizePixel =
scrollingFrame.ScrollBarThickness =
scrollingFrame.CanvasSize = .(, , , )
scrollingFrame.ZIndex =
scrollingFrame.Parent = languageFrame
titleLabel = (, , .(, ))
titleLabel.Size = .(, , , )
titleLabel.TextSize =
titleLabel.Parent = languageFrame
scrollHint = (, translations[currentLanguage].scroll, .(, ))
scrollHint.Size = .(, , , )
scrollHint.TextSize =
scrollHint.TextColor3 = .(, , )
scrollHint.Parent = languageFrame
languages = {, , , , , , , , , , , , , , }
yOffset =
_, lang (languages)
button = (lang, lang, .(, yOffset), .(, ))
button.TextSize =
button.Parent = scrollingFrame
yOffset +=
scrollingFrame.CanvasSize = .(, , , #languages * )
_, button (scrollingFrame:())
button:()
button.MouseButton1Click:(()
currentLanguage = button.Name
titleLabel.Text = translations[currentLanguage].title
scrollHint.Text = translations[currentLanguage].scroll
languageFrame.Visible =
()
)
()
avatarFrame = .()
avatarFrame.Size = .(, , , )
avatarFrame.Position = .(, -, , -)
avatarFrame.BackgroundColor3 = .(, , )
avatarFrame.BorderSizePixel =
avatarFrame.ZIndex =
avatarFrame.Parent = screenGui
title = (, translations[currentLanguage].select_avatar, .(, ))
title.Size = .(, , , )
title.TextSize =
title.Parent = avatarFrame
r15Button = (, translations[currentLanguage].r15, .(, ), .(, ))
r15Button.TextSize =
r15Button.Parent = avatarFrame
r6Button = (, translations[currentLanguage].r6, .(, ), .(, ))
r6Button.TextSize =
r6Button.Parent = avatarFrame
r15Button.MouseButton1Click:(()
selectedAvatar =
avatarFrame:()
()
)
r6Button.MouseButton1Click:(()
selectedAvatar =
avatarFrame:()
()
)
()
isRecording =
recordingConnection
recordingConnection:()
recordingConnection =
()
isPlaying =
isReversePlaying =
playConnection
playConnection:()
playConnection =
()
mainFrame = .()
mainFrame.Name =
mainFrame.Size = .(, , , )
mainFrame.Position = .(, , , -)
mainFrame.BackgroundColor3 = .(, , )
mainFrame.BorderSizePixel =
mainFrame.ZIndex =
mainFrame.Parent = screenGui
recordButton = (, translations[currentLanguage].start, .(, ), .(, ))
recordButton.TextSize =
recordButton.Parent = mainFrame
playButton = (, translations[currentLanguage].play, .(, ), .(, ))
playButton.TextSize =
playButton.Parent = mainFrame
reversePlayButton = (, translations[currentLanguage].play_reverse, .(, ), .(, ))
reversePlayButton.TextSize =
reversePlayButton.Parent = mainFrame
hideButton = (, translations[currentLanguage].hide, .(, ), .(, ))
hideButton.TextSize =
hideButton.Parent = mainFrame
speedButton = (, , .(, ), .(, ))
speedButton.TextSize =
speedButton.Parent = mainFrame
timerLabel = (, translations[currentLanguage].recording .. , .(, ))
timerLabel.Size = .(, , , )
timerLabel.TextSize =
timerLabel.Parent = mainFrame
speedLabel = (, translations[currentLanguage].speed .. , .(, ))
speedLabel.Size = .(, , , )
speedLabel.TextSize =
speedLabel.Parent = mainFrame
speedInputFrame = .()
speedInputFrame.Size = .(, , , )
speedInputFrame.Position = .(, -, , -)
speedInputFrame.BackgroundColor3 = .(, , )
speedInputFrame.BorderSizePixel =
speedInputFrame.ZIndex =
speedInputFrame.Visible =
speedInputFrame.Parent = screenGui
speedInputLabel = (, translations[currentLanguage].enter_speed, .(, ))
speedInputLabel.Size = .(, , , )
speedInputLabel.TextSize =
speedInputLabel.Parent = speedInputFrame
speedTextBox = (, , .(, ), .(, ))
speedTextBox.Parent = speedInputFrame
confirmButton = (, translations[currentLanguage].confirm, .(, ), .(, ))
confirmButton.TextSize =
confirmButton.Parent = speedInputFrame
(speed)
currentSpeed = .((speed) , , )
speedLabel.Text = translations[currentLanguage].speed .. .(, currentSpeed)
speedInputFrame.Visible =
speedButton.MouseButton1Click:(()
speedInputFrame.Visible = speedInputFrame.Visible
speedInputFrame.Visible
speedTextBox.Text = (currentSpeed)
)
confirmButton.MouseButton1Click:(()
(speedTextBox.Text)
)
speedTextBox.FocusLost:((enterPressed)
enterPressed
(speedTextBox.Text)
)
isGUIVisible =
hideButton.MouseButton1Click:(()
isGUIVisible = isGUIVisible
mainFrame.Visible = isGUIVisible
hideButton.Text = isGUIVisible translations[currentLanguage].hide translations[currentLanguage].show
showGUIButton.Visible = isGUIVisible
showGUIButton.Text = translations[currentLanguage].show_gui
)
showGUIButton.MouseButton1Click:(()
mainFrame.Visible =
showGUIButton.Visible =
hideButton.Text = translations[currentLanguage].hide
isGUIVisible =
)
recordButton.MouseButton1Click:(()
isRecording
isRecording =
recordedActions = {}
recordingStartTime = ()
recordButton.Text = translations[currentLanguage].stop
playButton.Visible =
reversePlayButton.Visible =
recordingConnection = RunService.Heartbeat:(()
isRecording
currentTime = () - recordingStartTime
currentTime >=
()
recordButton.Text = translations[currentLanguage].start
playButton.Visible =
reversePlayButton.Visible =
action = {
time = currentTime,
position = character:().Position,
rotation = character:().Rotation
}
.(recordedActions, action)
timerLabel.Text = translations[currentLanguage].recording .. (currentTime) ..
)
()
recordButton.Text = translations[currentLanguage].start
playButton.Visible =
reversePlayButton.Visible =
)
playButton.MouseButton1Click:(()
isPlaying isReversePlaying
()
playButton.Text = translations[currentLanguage].play
reversePlayButton.Text = translations[currentLanguage].play_reverse
recordButton.Visible =
isPlaying #recordedActions >
isPlaying =
recordButton.Visible =
playButton.Text =
startTime = ()
currentIndex =
playConnection = RunService.Heartbeat:(()
isPlaying
elapsed = (() - startTime) * currentSpeed
currentIndex <= #recordedActions recordedActions[currentIndex].time <= elapsed
action = recordedActions[currentIndex]
character:(.(action.position) * action.rotation)
currentIndex +=
currentIndex > #recordedActions
()
playButton.Text = translations[currentLanguage].play
recordButton.Visible =
()
)
)
reversePlayButton.MouseButton1Click:(()
isPlaying isReversePlaying
()
playButton.Text = translations[currentLanguage].play
reversePlayButton.Text = translations[currentLanguage].play_reverse
recordButton.Visible =
isReversePlaying #recordedActions >
isReversePlaying =
recordButton.Visible =
reversePlayButton.Text =
startTime = ()
currentIndex = #recordedActions
totalDuration = recordedActions[#recordedActions].time
playConnection = RunService.Heartbeat:(()
isReversePlaying
elapsed = (() - startTime) * currentSpeed
reverseTime = .(, totalDuration - elapsed)
targetIndex =
i = #recordedActions, , -
recordedActions[i].time <= reverseTime
targetIndex = i
targetIndex >= targetIndex <= #recordedActions
action = recordedActions[targetIndex]
character:(.(action.position) * action.rotation)
elapsed >= totalDuration
()
reversePlayButton.Text = translations[currentLanguage].play_reverse
recordButton.Visible =
()
)
)
-- 🌟 ULTRA-REAL MOVEMENT RECORDING -- Record every move of your character with cinematic precision! local movement recording function() -- Record position and rotation in real time -- Smooth recording without frame drops -- Practical guidance for completing -- ⏯️ SMART PLAYBACK -- Play the recording in both directions - just like in a movie! local recording playback function (direction) -- Forward: Natural playback of movements -- Backward: Time rewind effect -- Only for creating cool memories. -- 🎮 AUTOMATIC OPTIMIZATION -- Automatically adjusts to any avatar! automatic optimization of the local function (avatarType) -- R15: Large hanging stand -- R6: Individual capacity with classics -- Full avatar type detection. -- ⚡ ADJUSTABLE SPEED -- From slow motion to fast playback! local speed adjustment function(speedValue) -- From 0.1x: Graphic files -- Up to 10x: Higher rates -- Total speed change due to jerks ends -- 🌍 MULTILINGUAL INTERFACE -- Full support for 15 languages for a global audience! local function multiLanguageSupport() -- Russian, English, 中文, Spanish, French, العربية -- and 9 more popular languages -- Automatic language detection at the end -- 📱 INTU