Run it
Copy the script and paste it into your executor.
Players = :()
LocalPlayer = Players.LocalPlayer
UserInputService = :()
RunService = :()
StarterGui = :()
TweenService = :()
Lighting = :()
Workspace = :()
VirtualUser = :()
VirtualInputManager = :()
HttpService = :()
()
()
()
PASSWORD_HASH = {
, , , , , , , , , , , , , , , , , ,
}
()
s =
_, c (PASSWORD_HASH)
s = s .. .(c)
s
(s)
s = (s )
s = s:()
s = s:(, )
s = s:(, )
s = s:(, )
s = s:(, )
s = s:(, )
s = s:(, )
s = s:(, )
s = s:(, )
s = s:(, )
s = s:(, )
s = s:(, )
s
StartMainScript
LockGui = .()
LockGui.Name = ..(.(, ))
LockGui.ResetOnSpawn =
LockGui.ZIndexBehavior = .ZIndexBehavior.Sibling
LockGui.DisplayOrder =
ok = (()
target = (gethui ()) :()
LockGui.Parent = target
)
ok LockGui.Parent ==
LockGui.Parent = LocalPlayer:()
LockBackground = .()
LockBackground.Size = .(, , , )
LockBackground.BackgroundColor3 = .(, , )
LockBackground.BackgroundTransparency =
LockBackground.BorderSizePixel =
LockBackground.Parent = LockGui
LockBox = .()
LockBox.Size = .(, , , )
LockBox.Position = .(, -, , )
LockBox.BackgroundColor3 = .(, , )
LockBox.BorderSizePixel =
LockBox.Parent = LockBackground
LockCorner = .()
LockCorner.CornerRadius = .(, )
LockCorner.Parent = LockBox
LockStroke = .()
LockStroke.Color = .(, , )
LockStroke.Thickness =
LockStroke.Parent = LockBox
LockIcon = .()
LockIcon.Size = .(, , , )
LockIcon.Position = .(, , , )
LockIcon.BackgroundTransparency =
LockIcon.Text =
LockIcon.TextSize =
LockIcon.Font = .Font.GothamBlack
LockIcon.Parent = LockBox
LockTitle = .()
LockTitle.Size = .(, , , )
LockTitle.Position = .(, , , )
LockTitle.BackgroundTransparency =
LockTitle.Text =
LockTitle.TextColor3 = .(, , )
LockTitle.TextSize =
LockTitle.Font = .Font.GothamBlack
LockTitle.Parent = LockBox
LockDesc = .()
LockDesc.Size = .(, -, , )
LockDesc.Position = .(, , , )
LockDesc.BackgroundTransparency =
LockDesc.Text =
LockDesc.TextColor3 = .(, , )
LockDesc.TextSize =
LockDesc.Font = .Font.Gotham
LockDesc.Parent = LockBox
PasswordBox = .()
PasswordBox.Size = .(, -, , )
PasswordBox.Position = .(, , , )
PasswordBox.BackgroundColor3 = .(, , )
PasswordBox.BorderSizePixel =
PasswordBox.Text =
PasswordBox.PlaceholderText =
PasswordBox.PlaceholderColor3 = .(, , )
PasswordBox.TextColor3 = .(, , )
PasswordBox.TextSize =
PasswordBox.Font = .Font.GothamBold
PasswordBox.ClearTextOnFocus =
PasswordBox.Parent = LockBox
PwCorner = .()
PwCorner.CornerRadius = .(, )
PwCorner.Parent = PasswordBox
SubmitBtn = .()
SubmitBtn.Size = .(, -, , )
SubmitBtn.Position = .(, , , )
SubmitBtn.BackgroundColor3 = .(, , )
SubmitBtn.BorderSizePixel =
SubmitBtn.Text =
SubmitBtn.TextColor3 = .(, , )
SubmitBtn.TextSize =
SubmitBtn.Font = .Font.GothamBlack
SubmitBtn.Parent = LockBox
SubmitCorner = .()
SubmitCorner.CornerRadius = .(, )
SubmitCorner.Parent = SubmitBtn
StatusMsg = .()
StatusMsg.Size = .(, -, , )
StatusMsg.Position = .(, , , )
StatusMsg.BackgroundTransparency =
StatusMsg.Text =
StatusMsg.TextColor3 = .(, , )
StatusMsg.TextSize =
StatusMsg.TextWrapped =
StatusMsg.Font = .Font.GothamBold
StatusMsg.Parent = LockBox
AccessGranted =
()
originalPos = LockBox.Position
LockStroke.Color = .(, , )
TweenService:(LockBox, TweenInfo.(), {Position = originalPos + .(, , , )}):()
.()
TweenService:(LockBox, TweenInfo.(), {Position = originalPos + .(, -, , )}):()
.()
TweenService:(LockBox, TweenInfo.(), {Position = originalPos + .(, , , )}):()
.()
TweenService:(LockBox, TweenInfo.(), {Position = originalPos}):()
.(, ()
AccessGranted
LockStroke.Color = .(, , )
)
()
AccessGranted
entered = (PasswordBox.Text)
correct = (())
entered == correct
AccessGranted =
()
StatusMsg.Text =
StatusMsg.TextColor3 = .(, , )
LockStroke.Color = .(, , )
PasswordBox.Text =
.()
LockGui:()
ok, err = (StartMainScript)
ok
(..(err))
codes = {}
i = , .(#entered, )
codes[#codes + ] = .(entered, i)
(..#entered....#correct)
#entered >
(..table.(codes, ))
()
StatusMsg.Text =
StatusMsg.TextColor3 = .(, , )
()
SubmitBtn.MouseButton1Click:(()
.(TryUnlock)
)
PasswordBox.FocusLost:((enterPressed)
enterPressed
.(TryUnlock)
)
.(, ()
(()
PasswordBox:()
)
)
()
StartMainScript = ()
REVIVE_KEY = .KeyCode.E
E_HOLD_MAX =
SpeedValue =
FlySpeed =
DANGER_RADIUS =
GUARD_RADIUS =
ESCAPE_COOLDOWN =
WARN_RADIUS =
HELPER_RADIUS =
HELPER_FRESH =
NotifyLevel =
Stats = {
escapes = ,
rescues = ,
reviveSuccess = ,
warnings = ,
}
States = {
AutoTP = , AutoRevive = , Speed = , InfJump = ,
Fly = , ESP = , AntiAFK = , Fullbright = ,
Noclip = , SelfEscape = , Underground = ,
}
FrogPlayer =
FrogSelectBtn =
followActive, followTarget, followConn, followManual = , , ,
IsReviving =
(msgType, title, text, duration)
NotifyLevel ==
NotifyLevel == msgType ==
.(()
_ = ,
ok = (()
StarterGui:(, {
Title = title, Text = text, Duration = duration ,
})
)
ok
.()
)
(..title....text)
(title, text, duration)
(, title, text, duration)
(studs)
.(studs)..
(plr1, plr2)
r1 = plr1.Character plr1.Character:()
r2 = plr2.Character plr2.Character:()
r1 r2
(r1.Position - r2.Position).Magnitude
MyLevel =
MyHelps =
ShowMyBadge =
ShowOthersBadge =
LevelData = {}
creditedByMe = {}
downedHelpers = {}
maxLevelNotified =
LEVEL_FILE = ..LocalPlayer.UserId..
(level)
level *
(plr)
LevelData[plr]
LevelData[plr] = {level = , helps = }
LevelData[plr]
()
(()
writefile isfolder makefolder
()
()
(LEVEL_FILE, HttpService:({
level = MyLevel, helps = MyHelps,
}))
)
(()
readfile isfile (LEVEL_FILE)
data = HttpService:((LEVEL_FILE))
data.level
MyLevel = .(.(data.level), , )
data.helps
MyHelps = .(, .(data.helps))
(..MyLevel....MyHelps....(MyLevel))
)
ScreenGui = .()
ScreenGui.Name = ..(.(, ))
ScreenGui.ResetOnSpawn =
ScreenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
ScreenGui.DisplayOrder =
ok = (()
target = (gethui ()) :()
ScreenGui.Parent = target
)
ok ScreenGui.Parent ==
ScreenGui.Parent = LocalPlayer:()
_, child (ScreenGui.Parent:())
child ~= ScreenGui child:() .(child.Name, , ) ==
child:()
_, plr (Players:())
plr.Character
_, d (plr.Character:())
d.Name ==
d:()
MainFrame = .()
MainFrame.Size = .(, , , )
MainFrame.Position = .(, -, , -)
MainFrame.BackgroundColor3 = .(, , )
MainFrame.BorderSizePixel =
MainFrame.ClipsDescendants =
MainFrame.Parent = ScreenGui
MainCorner = .() MainCorner.CornerRadius = .(, ) MainCorner.Parent = MainFrame
MainStroke = .() MainStroke.Color = .(, , ) MainStroke.Thickness = MainStroke.Transparency = MainStroke.Parent = MainFrame
TitleBar = .()
TitleBar.Size = .(, , , )
TitleBar.BackgroundColor3 = .(, , )
TitleBar.BorderSizePixel =
TitleBar.Parent = MainFrame
TitleCorner = .() TitleCorner.CornerRadius = .(, ) TitleCorner.Parent = TitleBar
TitleFix = .()
TitleFix.Size = .(, , , )
TitleFix.Position = .(, , , -)
TitleFix.BackgroundColor3 = .(, , )
TitleFix.BorderSizePixel =
TitleFix.Parent = TitleBar
TitleLabel = .()
TitleLabel.Size = .(, -, , )
TitleLabel.Position = .(, , , )
TitleLabel.BackgroundTransparency =
TitleLabel.Text =
TitleLabel.TextColor3 = .(, , )
TitleLabel.TextSize =
TitleLabel.Font = .Font.GothamBlack
TitleLabel.TextXAlignment = .TextXAlignment.Left
TitleLabel.Parent = TitleBar
SubLabel = .()
SubLabel.Size = .(, -, , )
SubLabel.Position = .(, , , )
SubLabel.BackgroundTransparency =
SubLabel.Text = ..LocalPlayer.Name
SubLabel.TextColor3 = .(, , )
SubLabel.TextSize =
SubLabel.Font = .Font.Gotham
SubLabel.TextXAlignment = .TextXAlignment.Left
SubLabel.Parent = TitleBar
MinimizeButton = .()
MinimizeButton.Size = .(, , , )
MinimizeButton.Position = .(, -, , )
MinimizeButton.BackgroundColor3 = .(, , )
MinimizeButton.BorderSizePixel =
MinimizeButton.Text =
MinimizeButton.TextColor3 = .(, , )
MinimizeButton.TextSize =
MinimizeButton.Font = .Font.GothamBold
MinimizeButton.Parent = TitleBar
MinCorner = .() MinCorner.CornerRadius = .(, ) MinCorner.Parent = MinimizeButton
Content = .()
Content.Size = .(, -, , -)
Content.Position = .(, , , )
Content.BackgroundTransparency =
Content.BorderSizePixel =
Content.ScrollBarThickness =
Content.ScrollBarImageColor3 = .(, , )
Content.CanvasSize = .(, , , )
Content.Parent = MainFrame
UIList = .()
UIList.SortOrder = .SortOrder.LayoutOrder
UIList.Padding = .(, )
UIList.Parent = Content
UIList:():(()
Content.CanvasSize = .(, , , UIList.AbsoluteContentSize.Y + )
)
StatusLabel = .()
StatusLabel.Size = .(, -, , )
StatusLabel.Position = .(, , , -)
StatusLabel.BackgroundTransparency =
StatusLabel.Text =
StatusLabel.TextColor3 = .(, , )
StatusLabel.TextSize =
StatusLabel.Font = .Font.Gotham
StatusLabel.TextXAlignment = .TextXAlignment.Left
StatusLabel.Parent = MainFrame
dragging, dragStart, startPosition = , ,
TitleBar.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1
input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPosition = MainFrame.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
UserInputService.InputChanged:((input)
dragging (input.UserInputType == .UserInputType.MouseMovement
input.UserInputType == .UserInputType.Touch)
delta = input.Position - dragStart
MainFrame.Position = .(
startPosition.X.Scale, startPosition.X.Offset + delta.X,
startPosition.Y.Scale, startPosition.Y.Offset + delta.Y
)
)
(text, callback, startOn)
button = .()
button.Size = .(, -, , )
button.BackgroundColor3 = startOn .(, , ) .(, , )
button.BorderSizePixel =
button.AutoButtonColor =
button.TextColor3 = .(, , )
button.TextSize =
button.Font = .Font.GothamBold
button.TextXAlignment = .TextXAlignment.Left
button.Parent = Content
corner = .() corner.CornerRadius = .(, ) corner.Parent = button
padding = .() padding.PaddingLeft = .(, ) padding.Parent = button
state = startOn
()
button.Text = text..(state )
()
button.MouseButton1Click:(()
state = state
()
TweenService:(button, TweenInfo.(), {
BackgroundColor3 = state .(, , ) .(, , )
}):()
(callback, state)
)
{ SetText = (newText) text = newText () }
(text, bgColor, callback)
button = .()
button.Size = .(, -, , )
button.BackgroundColor3 = bgColor .(, , )
button.BorderSizePixel =
button.Text = text
button.TextColor3 = .(, , )
button.TextSize =
button.Font = .Font.GothamBold
button.Parent = Content
corner = .() corner.CornerRadius = .(, ) corner.Parent = button
button.MouseButton1Click:(() (callback) )
button
(title, presets, onPreset)
holder = .()
holder.Size = .(, -, , )
holder.BackgroundColor3 = .(, , )
holder.BorderSizePixel =
holder.Parent = Content
rc = .() rc.CornerRadius = .(, ) rc.Parent = holder
titleLbl = .()
titleLbl.Size = .(, -, , )
titleLbl.Position = .(, , , )
titleLbl.BackgroundTransparency =
titleLbl.Text = title
titleLbl.TextColor3 = .(, , )
titleLbl.TextSize =
titleLbl.Font = .Font.Gotham
titleLbl.Parent = holder
count = #presets
btnW = ( - ) / count
i, preset (presets)
btn = .()
btn.Size = .(btnW, -, , )
btn.Position = .((i - ) * btnW + , , , )
btn.BackgroundColor3 = .(, , )
btn.BorderSizePixel =
btn.Text = preset.label
btn.TextColor3 = .(, , )
btn.TextSize =
btn.Font = .Font.GothamBold
btn.Parent = holder
c = .() c.CornerRadius = .(, ) c.Parent = btn
btn.MouseButton1Click:(()
(..title....(preset.value))
(onPreset, preset.value)
)
()
holder = .()
holder.Size = .(, -, , )
holder.BackgroundColor3 = .(, , )
holder.BorderSizePixel =
holder.Parent = Content
rc = .() rc.CornerRadius = .(, ) rc.Parent = holder
bar = .()
bar.Size = .(, , , -)
bar.Position = .(, , , )
bar.BackgroundColor3 = .(, , )
bar.BorderSizePixel =
bar.Parent = holder
bc = .() bc.CornerRadius = .(, ) bc.Parent = bar
lbl = .()
lbl.Size = .(, -, , -)
lbl.Position = .(, , , )
lbl.BackgroundTransparency =
lbl.TextColor3 = .(, , )
lbl.TextSize =
lbl.Font = .Font.GothamBold
lbl.Text =
lbl.ZIndex =
lbl.Parent = holder
{
Set = (frac, text)
frac < frac =
frac > frac =
bar.Size = .(frac, -, , -)
bar.Position = .(, , , )
lbl.Text = text
}
LevelHeaderBtn =
LevelBar =
(char)
first =
extras = {}
_, d (char:())
d.Name == d:()
first
first = d
.(extras, d)
_, e (extras)
e:()
first
(head, isMine)
bb = .()
bb.Name =
bb.Size = isMine .(, , , ) .(, , , )
bb.StudsOffset = .(, isMine , )
bb.AlwaysOnTop =
bb.Enabled =
bb.Parent = head
lbl = .()
lbl.Name =
lbl.Size = .(, , , )
lbl.BackgroundTransparency =
lbl.TextColor3 = isMine .(, , ) .(, , )
lbl.TextStrokeTransparency =
lbl.TextSize = isMine
lbl.Font = .Font.GothamBold
lbl.Text =
lbl.Parent = bb
bb
()
myChar = LocalPlayer.Character
myChar
head = myChar:() myChar:()
head
badge = (myChar)
ShowMyBadge
badge badge.Enabled =
badge
badge = (head, )
badge.Enabled =
MyLevel >=
badge.Label.Text =
badge.Label.Text = ..MyLevel....MyHelps....(MyLevel)
()
_, plr (Players:())
plr ~= LocalPlayer plr.Character
head = plr.Character:() plr.Character:()
head
badge = (plr.Character)
ShowOthersBadge
badge badge:()
badge
badge = (head, )
data = (plr)
badge.Label.Text = ..plr.Name....data.level....data.helps....(data.level)
()
target = (MyLevel)
MyLevel >=
LevelHeaderBtn
LevelHeaderBtn.Text =
LevelBar
LevelBar.(, )
LevelHeaderBtn
LevelHeaderBtn.Text = ..MyLevel....MyHelps....target
LevelBar
frac =
target > frac = MyHelps / target
frac > frac =
LevelBar.(frac, MyHelps....target....(MyLevel + ))
()
(plr, amount)
amount <=
plr == LocalPlayer
MyLevel >=
maxLevelNotified
maxLevelNotified =
(, , , )
MyHelps = MyHelps + amount
target = (MyLevel)
MyHelps >= target MyLevel <
MyHelps = MyHelps - target
MyLevel = MyLevel +
(, , ..MyLevel....(MyLevel).., )
target = (MyLevel)
MyLevel >=
MyHelps =
maxLevelNotified
maxLevelNotified =
(, , , )
()
()
(..MyLevel....MyHelps....(MyLevel))
data = (plr)
data.level >=
data.helps = data.helps + amount
target = (data.level)
data.helps >= target data.level <
data.helps = data.helps - target
data.level = data.level +
(, ..plr.Name.., ..data.level.., )
target = (data.level)
data.level >= data.helps =
()
(..plr.Name....data.level....data.helps....target)
PlayerListFrame = .()
PlayerListFrame.Size = .(, , , )
PlayerListFrame.Position = .(, -, , -)
PlayerListFrame.BackgroundColor3 = .(, , )
PlayerListFrame.BorderSizePixel =
PlayerListFrame.Visible =
PlayerListFrame.ZIndex =
PlayerListFrame.Parent = ScreenGui
c = .() c.CornerRadius = .(, ) c.Parent = PlayerListFrame
s = .() s.Color = .(, , ) s.Thickness = s.Parent = PlayerListFrame
ListTitle = .()
ListTitle.Size = .(, -, , )
ListTitle.Position = .(, , , )
ListTitle.BackgroundTransparency =
ListTitle.Text =
ListTitle.TextColor3 = .(, , )
ListTitle.TextSize =
ListTitle.Font = .Font.GothamBlack
ListTitle.TextXAlignment = .TextXAlignment.Left
ListTitle.ZIndex =
ListTitle.Parent = PlayerListFrame
CloseListBtn = .()
CloseListBtn.Size = .(, , , )
CloseListBtn.Position = .(, -, , )
CloseListBtn.BackgroundColor3 = .(, , )
CloseListBtn.BorderSizePixel =
CloseListBtn.Text =
CloseListBtn.TextColor3 = .(, , )
CloseListBtn.TextSize =
CloseListBtn.Font = .Font.GothamBold
CloseListBtn.ZIndex =
CloseListBtn.Parent = PlayerListFrame
c = .() c.CornerRadius = .(, ) c.Parent = CloseListBtn
PlayerScroll = .()
PlayerScroll.Size = .(, -, , -)
PlayerScroll.Position = .(, , , )
PlayerScroll.BackgroundTransparency =
PlayerScroll.BorderSizePixel =
PlayerScroll.ScrollBarThickness =
PlayerScroll.ScrollBarImageColor3 = .(, , )
PlayerScroll.CanvasSize = .(, , , )
PlayerScroll.ZIndex =
PlayerScroll.Parent = PlayerListFrame
CloseListBtn.MouseButton1Click:(()
PlayerListFrame.Visible =
)
()
_, child (PlayerScroll:())
child:() child:()
count =
_, plr (Players:())
plr ~= LocalPlayer
isFrog = (plr == FrogPlayer)
data = (plr)
btn = .()
btn.Size = .(, -, , )
btn.Position = .(, , , count * )
btn.BackgroundColor3 = isFrog .(, , ) .(, , )
btn.BorderSizePixel =
dist = (LocalPlayer, plr)
distTxt = dist (..math.(dist)..)
btn.Text = (isFrog )..plr.Name....data.level..distTxt
btn.TextColor3 = .(, , )
btn.TextSize =
btn.Font = .Font.GothamBold
btn.TextXAlignment = .TextXAlignment.Left
btn.ZIndex =
btn.Parent = PlayerScroll
c = .() c.CornerRadius = .(, ) c.Parent = btn
btn.MouseButton1Click:(()
FrogPlayer = plr
PlayerListFrame.Visible =
d = (LocalPlayer, plr)
dTxt = d (..(d))
(..plr.Name)
(, , ..plr.Name..dTxt.., )
FrogSelectBtn
FrogSelectBtn.Text = ..plr.Name
()
)
count = count +
PlayerScroll.CanvasSize = .(, , , count * + )
(text)
text ==
t = (text):(, )
t == #t >
n = (t)
n n > n <= n
m, s = t:()
m s
total = (m) * + (s)
total > total <= total
(obj)
current = obj
steps =
current steps <
current:() current:() current:()
current.Enabled
current:()
current.Visible
current = current.Parent
steps = steps +
DownedConfirm = {}
(player)
char = player.Character
char char.Parent
DownedConfirm[player] =
_, d (char:())
d:() d:()
anc = d:()
d:()
anc (d)
num = (d.Text)
num num
hum = char:()
root = char:()
hum root
vel = root.AssemblyLinearVelocity
horizontal = .(vel.X, , vel.Z).Magnitude
horizontal > hum:() == .HumanoidStateType.Running hum.PlatformStand
DownedConfirm[player] =
_, d (char:())
d:() d.Enabled
iAmFollowing = (player == LocalPlayer) followActive
hum hum.Health > (hum.PlatformStand hum:() == .HumanoidStateType.Physics)
iAmFollowing
DownedConfirm[player] = DownedConfirm[player] .()
.() - DownedConfirm[player] >=
iAmFollowing DownedConfirm[player] =
()
FrogPlayer
char = FrogPlayer.Character
char
char:()
(pos, radius)
root = ()
root
(root.Position - pos).Magnitude < radius
()
rayParams = RaycastParams.()
rayParams.FilterType = .RaycastFilterType.Exclude
exclude = {}
_, plr (Players:())
plr.Character .(exclude, plr.Character)
rayParams.FilterDescendantsInstances = exclude
rayParams
()
character = LocalPlayer.Character
character
_, part (character:())
part:() part.Name ~=
part.Parent:()
part.CanCollide =
FOLLOW_OFFSET = -
(tRoot)
pos = tRoot.Position + .(, FOLLOW_OFFSET, )
.(pos) * .(.(-), , )
()
followConn followConn:() followConn =
wasActive = followActive
followActive =
followTarget =
followManual =
wasActive
(()
myChar = LocalPlayer.Character
myRoot = myChar myChar:()
myRoot
myRoot.Anchored =
)
States.Noclip (RestoreCollision)
lastFollowCheck =
(target, manual)
()
myChar = LocalPlayer.Character
myRoot = myChar myChar:()
tChar = target.Character
tRoot = tChar tChar:()
(myRoot tRoot)
(()
myRoot.Anchored =
_, part (myChar:())
part:() part.CanCollide =
myRoot.CFrame = (tRoot)
)
followTarget = target
followManual = manual
followActive =
followConn = RunService.RenderStepped:(()
mChar = LocalPlayer.Character
mRoot = mChar mChar:()
mHum = mChar mChar:()
tc = followTarget followTarget.Character
tRoot2 = tc tc:()
(mRoot mHum tRoot2) mHum.Health <=
()
mRoot.Anchored mRoot.Anchored =
.() - lastFollowCheck >
lastFollowCheck = .()
(followTarget) ==
()
States.Fly ()
(LocalPlayer) ~= ()
followManual
States.Underground ()
(States.AutoTP States.AutoRevive) ()
(()
_, part (mChar:())
part:() part.CanCollide part.CanCollide =
)
mRoot.CFrame = (tRoot2)
)
lastSafePos =
(centerPos, searchRadii, frogPos, minFrogDist)
rayParams = ()
angles = {, , , , , , , , , , , }
bestSpot, bestFrogDist = ,
_, r (searchRadii)
_, a (angles)
ok, result = (()
rad = .(a)
candidateX = centerPos.X + .(rad) * r
candidateZ = centerPos.Z + .(rad) * r
fromY = centerPos.Y +
hit = Workspace:(.(candidateX, fromY, candidateZ), .(, -, ), rayParams)
hit
groundY = hit.Position.Y
flat =
checks = {{, }, {-, }, {, }, {, -}}
_, ck (checks)
h2 = Workspace:(.(candidateX + ck[], fromY, candidateZ + ck[]), .(, -, ), rayParams)
h2 flat =
.(h2.Position.Y - groundY) > flat =
flat
.(candidateX, groundY + , candidateZ)
)
ok result
frogPos
fd = (.(result.X, , result.Z) - .(frogPos.X, , frogPos.Z)).Magnitude
fd >= minFrogDist fd > bestFrogDist
bestSpot, bestFrogDist = result, fd
result
bestSpot
()
myChar = LocalPlayer.Character
myRoot = myChar myChar:()
fRoot = ()
(myRoot fRoot)
lastSafePos
currentFrog = ()
currentFrog (currentFrog.Position - lastSafePos).Magnitude > DANGER_RADIUS +
(()
myRoot.CFrame = .(lastSafePos)
)
spot = (myRoot.Position, {, }, fRoot.Position, DANGER_RADIUS + )
spot
(()
myRoot.CFrame = .(spot)
)
spot = (myRoot.Position, {, }, fRoot.Position, )
spot
(()
myRoot.CFrame = .(spot)
)
bestHelper, bestDist = ,
_, plr (Players:())
plr ~= LocalPlayer plr ~= FrogPlayer
c = plr.Character
hum = c c:()
root = c c:()
root hum hum.Health >
fd = (root.Position - fRoot.Position).Magnitude
fd > DANGER_RADIUS fd > bestDist
bestHelper, bestDist = plr, fd
bestHelper
hRoot = bestHelper.Character:()
hRoot
(()
myRoot.CFrame = .(hRoot.Position + .(, , ))
)
lastSafePos
(()
myRoot.CFrame = .(lastSafePos)
)
()
(target)
char = target.Character
char
prompt
_, d (char:())
d:() d.Enabled
prompt = d
prompt
(()
(prompt)
)
(()
prompt.HoldDuration prompt.HoldDuration >
prompt:()
.(.(prompt.HoldDuration, ) + )
prompt:()
)
(()
VirtualInputManager:(, REVIVE_KEY, , )
)
t0 = .()
taps =
.() - t0 < E_HOLD_MAX
.()
taps = taps +
(target) ==
creditedByMe[target] =
Stats.reviveSuccess = Stats.reviveSuccess +
(, , ..target.Name.., )
(LocalPlayer) ~=
tChar = target.Character
tRoot = tChar tChar:()
mChar = LocalPlayer.Character
mRoot = mChar mChar:()
tRoot mRoot
d = (tRoot.Position - mRoot.Position).Magnitude
followActive
(tRoot.Position, GUARD_RADIUS)
d >
(()
mRoot.CFrame = .(tRoot.Position + .(, , ))
)
d >
prompt taps % ==
(()
(prompt)
)
(()
VirtualInputManager:(, REVIVE_KEY, , )
)
(target)
IsReviving =
(DoRevive, target)
IsReviving =
()
myChar = LocalPlayer.Character
myRoot = myChar myChar:()
myRoot
best, bestDist = , .huge
_, plr (Players:())
plr ~= LocalPlayer plr ~= FrogPlayer
c = plr.Character
hum = c c:()
root = c c:()
root hum hum.Health > (plr) ==
d = (root.Position - myRoot.Position).Magnitude
(root.Position, DANGER_RADIUS + )
d < bestDist best, bestDist = plr, d
best
()
helper = ()
helper ,
myChar = LocalPlayer.Character
myRoot = myChar myChar:()
hChar = helper.Character
hRoot = hChar hChar:()
(myRoot hRoot) ,
(()
myRoot.CFrame = .(hRoot.Position + hRoot.CFrame.LookVector * + .(, , ))
)
, helper
lastManualTP =
()
myChar = LocalPlayer.Character
myRoot = myChar myChar:()
myRoot
best, bestNum, bestDist = , .huge, .huge
_, plr (Players:())
plr ~= LocalPlayer plr ~= FrogPlayer
num = (plr)
num
tRoot = plr.Character plr.Character:()
guarded = tRoot (tRoot.Position, GUARD_RADIUS)
guarded tRoot
dist = (myRoot.Position - tRoot.Position).Magnitude
num < bestNum (num == bestNum dist < bestDist)
best, bestNum, bestDist = plr, num, dist
best
(fromButton, skipIfClose)
.() - lastManualTP <
myChar = LocalPlayer.Character
myRoot = myChar myChar:()
myHum = myChar myChar:()
(myRoot myHum myHum.Health > )
(LocalPlayer)
best = ()
best
fromButton
(, , , )
skipIfClose
tRoot = best.Character best.Character:()
tRoot (tRoot.Position - myRoot.Position).Magnitude <
followActive followManual followTarget == best
fromButton
(, , , )
lastManualTP = .()
dist = (LocalPlayer, best)
distTxt = dist (..(dist))
States.Underground
(best, )
Stats.rescues = Stats.rescues +
(, , ..best.Name..distTxt.., )
tChar = best.Character
tRoot = tChar tChar:()
tRoot myRoot
(()
myRoot.CFrame = .(tRoot.Position + .(, , ))
)
Stats.rescues = Stats.rescues +
(, , ..best.Name..distTxt.., )
announcedDown = {}
guardAnnounced = {}
currentTarget =
selfDownNotified =
lastHelpMeTP =
lastEscapeAttempt =
lastWarnTime =
StatusFlags = { danger = , guardName = , helpme = , warned = }
.(()
ScreenGui.Parent
.()
(()
myChar = LocalPlayer.Character
myHum = myChar myChar:()
myRoot = myChar myChar:()
(myRoot myHum)
StatusFlags.helpme =
StatusFlags.guardName =
myHum.Health <=
States.SelfEscape followActive
fRootNow = ()
fRootNow
dw = (fRootNow.Position - myRoot.Position).Magnitude
dw < WARN_RADIUS dw >= DANGER_RADIUS
.() - lastWarnTime >
lastWarnTime = .()
Stats.warnings = Stats.warnings +
StatusFlags.warned =
(, , ..(dw).., )
States.SelfEscape followActive
fRootNow = ()
fRootNow
d = (fRootNow.Position - myRoot.Position).Magnitude
d < DANGER_RADIUS
.() - lastEscapeAttempt > ESCAPE_COOLDOWN
lastEscapeAttempt = .()
StatusFlags.danger = .()
escaped = ()
escaped
Stats.escapes = Stats.escapes +
(, , ..(d).., )
myInfo = (LocalPlayer)
myInfo
StatusFlags.helpme =
followActive ()
selfDownNotified
selfDownNotified =
currentTarget =
(, , , )
(States.AutoTP States.AutoRevive) .() - lastHelpMeTP >
lastHelpMeTP = .()
ok, helper = ()
ok helper
d = (LocalPlayer, helper)
dTxt = d (..(d))
(, , ..helper.Name..dTxt.., )
selfDownNotified =
downed = {}
_, plr (Players:())
plr ~= LocalPlayer plr ~= FrogPlayer
num = (plr)
num
tRoot = plr.Character plr.Character:()
guarded = tRoot (tRoot.Position, GUARD_RADIUS)
guarded
guardAnnounced[plr]
guardAnnounced[plr] =
(, ..plr.Name, , )
StatusFlags.guardName = plr.Name
currentTarget == plr currentTarget =
downed[plr] = num
guardAnnounced[plr]
guardAnnounced[plr] =
(, ..plr.Name, , )
announcedDown[plr]
announcedDown[plr] = {t = .(), char = plr.Character}
d = (LocalPlayer, plr)
dTxt = d (..(d))
timerTxt = (num <= ) (..math.(num)..)
(, ..plr.Name, ..dTxt..timerTxt.., )
tRoot
downedHelpers[plr] = downedHelpers[plr] {}
_, other (Players:())
other ~= plr other ~= FrogPlayer
oc = other.Character
oroot = oc oc:()
oroot
dd = (oroot.Position - tRoot.Position).Magnitude
dd < HELPER_RADIUS
downedHelpers[plr][other] = .()
info = announcedDown[plr]
announcedDown[plr] =
guardAnnounced[plr] =
info .() - info.t >
c = plr.Character
h = c c:()
h h.Health > info.char == c
helpers = downedHelpers[plr] {}
creditedByMe[plr]
helpers[LocalPlayer] = .()
creditedByMe[plr] =
tRoot = c:()
tRoot
_, other (Players:())
other ~= plr other ~= FrogPlayer
oc = other.Character
oroot = oc oc:()
oroot
dd = (oroot.Position - tRoot.Position).Magnitude
dd < HELPER_RADIUS
helpers[other] = .()
count =
names = {}
helper, lastSeen (helpers)
.() - lastSeen < HELPER_FRESH
(helper, )
count = count +
.(names, helper.Name)
count >
(, ..count.., ..plr.Name....count....table.(names, ), )
count ==
(, , ..plr.Name....names[], )
(, ..plr.Name, , )
info.char ~= c
(, , ..plr.Name.., )
downedHelpers[plr] =
(States.AutoTP States.AutoRevive)
followActive followManual ()
currentTarget =
currentTarget downed[currentTarget]
currentTarget =
currentTarget
bestNum = .huge
plr, num (downed)
num < bestNum
bestNum = num
currentTarget = plr
currentTarget
theirChar = currentTarget.Character
theirRoot = theirChar theirChar:()
theirRoot myRoot
States.Underground
followActive followTarget ~= currentTarget
(currentTarget, )
Stats.rescues = Stats.rescues +
d = (LocalPlayer, currentTarget)
dTxt = d (..(d))
NotifyMsg("rescue", "🔘 اندماج", "تم الدمج مع جسد "..currentTarget.Name..dTxt.." - سأبقى معه حتى يستيقظ", 3)
end
end
if States.AutoRevive then
SafeRevive(currentTarget)
end
else
-- الانتقال واقف (بلا دمج)
local dist = (theirRoot.Position - myRoot.Position).Magnitude
if States.AutoTP and dist > 9 then
pcall(function()
myRoot.CFrame = CFrame.new(theirRoot.Position + Vector3.new(0, 2.5, 0))
end)
end
if States.AutoRevive and dist <= 15 then
if not IsFrogNear(myRoot.Position, DANGER_RADIUS) then
SafeRevive(currentTarget)
end
end
end
else
currentTarget = nil
end
end
end)
end
end)
Players.PlayerRemoving:Connect(function(plr)
announcedDown[plr] = nil
guardAnnounced[plr] = nil
DownedConfirm[plr] = nil
creditedByMe[plr] = nil
downedHelpers[plr] = nil
LevelData[plr] = nil
if currentTarget == plr then currentTarget = nil end
if followTarget == plr then StopFollow() end
if FrogPlayer == plr then
FrogPlayer = nil
if FrogSelectBtn then
FrogSelectBtn.Text = "🎯 اختر الضفدع (لاعب)"
end
NotifyMsg("info", "⚠️ غادر الضفدع", "لقد غادر الخادم - اختر ضفدعاً جديداً", 4)
end
for _, helpers in pairs(downedHelpers) do
helpers[plr] = nil
end
end)
--═════════ شريط الحالة ═════════--
task.spawn(function()
while ScreenGui.Parent do
task.wait(0.5)
pcall(function()
if StatusFlags.helpme then
StatusLabel.Text = "😴 لقد سقطت - جارٍ نقلك إلى أقرب لاعب سليم..."
StatusLabel.TextColor3 = Color3.fromRGB(255, 160, 80)
elseif followActive then
StatusLabel.Text = "🔘 مدموج مع "..(followTarget and followTarget.Name or "؟").." • ⭐ Lv "..MyLevel
StatusLabel.TextColor3 = Color3.fromRGB(120, 220, 160)
elseif os.clock() - StatusFlags.danger < 2.5 then
StatusLabel.Text = "🛡️ هروب! ("..Stats.escapes.." هروبات)"
StatusLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
elseif StatusFlags.warned and os.clock() - lastWarnTime < 5 then
StatusLabel.Text = "⚠️ الضفدع يقرّب! ("..WARN_RADIUS.."م)"
StatusLabel.TextColor3 = Color3.fromRGB(255, 200, 80)
StatusFlags.warned = false
elseif StatusFlags.guardName then
StatusLabel.Text = "⏳ الضفدع يحرس "..StatusFlags.guardName.." - ننتظر..."
StatusLabel.TextColor3 = Color3.fromRGB(255, 200, 80)
elseif currentTarget then
local num = GetDownedInfo(currentTarget)
local timerTxt = (num and num <= 99) and (" ⏱️"..math.floor(num).."ث") or ""
StatusLabel.Text = "📍 عند "..currentTarget.Name..timerTxt.." (واقف)"
StatusLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
elseif FrogPlayer then
local fRoot = GetFrogRoot()
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if fRoot and myRoot then
local d = math.floor((fRoot.Position - myRoot.Position).Magnitude)
StatusLabel.Text = "👹 الضفدع ["..FrogPlayer.Name.."] • يبعد "..d.." متراً • ⭐ Lv "..MyLevel
else
StatusLabel.Text = "👹 الضفدع: "..FrogPlayer.Name.." • ⭐ Lv "..MyLevel
end
StatusLabel.TextColor3 = Color3.fromRGB(130, 170, 130)
else
StatusLabel.Text = "👀 أراقب • ⭐ Lv "..MyLevel.." ("..MyHelps.."/"..GetLevelTarget(MyLevel)..") • "..Stats.rescues.." إنقاذ"
StatusLabel.TextColor3 = Color3.fromRGB(85, 220, 130)
end
end)
end
end)
--═════════ ⚡ السرعة + القفز + Anti-AFK ═════════--
task.spawn(function()
while ScreenGui.Parent do
RunService.Heartbeat:Wait()
if States.Speed and not followActive then
local character = LocalPlayer.Character
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if humanoid and humanoid.WalkSpeed ~= SpeedValue then
humanoid.WalkSpeed = SpeedValue
end
end
end
end)
UserInputService.JumpRequest:Connect(function()
if followActive then StopFollow() end
if States.InfJump then
local character = LocalPlayer.Character
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end
end
end)
LocalPlayer.Idled:Connect(function()
if States.AntiAFK then
VirtualUser:CaptureController()
VirtualUser:ClickButton2(Vector2.new())
end
end)
RunService.Stepped:Connect(function()
if (States.Noclip or followActive) and LocalPlayer.Character then
for _, part in pairs(LocalPlayer.Character:GetDescendants()) do
if part:IsA("BasePart") and part.CanCollide then
part.CanCollide = false
end
end
end
end)
--═════════ 💡 الإضاءة ═════════--
local OriginalLighting = {
Brightness = Lighting.Brightness,
ClockTime = Lighting.ClockTime,
FogEnd = Lighting.FogEnd,
GlobalShadows = Lighting.GlobalShadows,
}
local function SetFullbright(enabled)
if enabled then
Lighting.Brightness = 3
Lighting.ClockTime = 14
Lighting.FogEnd = 100000
Lighting.GlobalShadows = false
else
Lighting.Brightness = OriginalLighting.Brightness
Lighting.ClockTime = OriginalLighting.ClockTime
Lighting.FogEnd = OriginalLighting.FogEnd
Lighting.GlobalShadows = OriginalLighting.GlobalShadows
end
end
task.spawn(function()
while ScreenGui.Parent do
task.wait(1)
if States.Fullbright then pcall(SetFullbright, true) end
end
end)
--═════════ 👁️ ESP ═════════--
local ESPHighlights = {}
local function CleanESP(player)
if player.Character then
for _, object in pairs(player.Character:GetDescendants()) do
if object.Name == "FroggeHub_ESP" then object:Destroy() end
end
end
ESPHighlights[player] = nil
end
local function UpdateESP()
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer and plr.Character then
local hl = ESPHighlights[plr]
if States.ESP then
if not hl or not hl.Parent then
local newHl = Instance.new("Highlight")
newHl.Name = "FroggeHub_ESP"
newHl.FillTransparency = 0.75
newHl.OutlineColor = Color3.fromRGB(255, 255, 255)
newHl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
newHl.Parent = plr.Character
ESPHighlights[plr] = newHl
hl = newHl
end
if plr == FrogPlayer then
hl.FillColor = Color3.fromRGB(170, 60, 200)
elseif GetDownedInfo(plr) then
hl.FillColor = Color3.fromRGB(255, 85, 85)
else
hl.FillColor = Color3.fromRGB(85, 255, 127)
end
else
CleanESP(plr)
end
end
end
end
task.spawn(function()
while ScreenGui.Parent do
task.wait(1)
pcall(UpdateESP)
end
end)
--═════════ 🕊️ الطيران ═════════--
local FlyUp, FlyDown = false, false
local FlyUpBtn, FlyDownBtn
do
local function MakeFlyBtn(text, posY)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, 46, 0, 46)
btn.Position = UDim2.new(1, -60, 0.45, posY)
btn.BackgroundColor3 = Color3.fromRGB(38, 122, 72)
btn.BorderSizePixel = 0
btn.Text = text
btn.TextSize = 20
btn.Font = Enum.Font.GothamBold
btn.TextColor3 = Color3.new(1, 1, 1)
btn.Visible = false
btn.ZIndex = 40
btn.Parent = ScreenGui
local c = Instance.new("UICorner") c.CornerRadius = UDim.new(1, 0) c.Parent = btn
return btn
end
FlyUpBtn = MakeFlyBtn("▲", -52)
FlyDownBtn = MakeFlyBtn("▼", 4)
local function BindHold(btn, setState)
btn.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
setState(true)
end
end)
btn.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
setState(false)
end
end)
end
BindHold(FlyUpBtn, function(v) FlyUp = v end)
BindHold(FlyDownBtn, function(v) FlyDown = v end)
end
UserInputService.InputBegan:Connect(function(input)
if States.Fly then
if input.KeyCode == Enum.KeyCode.Space then FlyUp = true
elseif input.KeyCode == Enum.KeyCode.LeftShift then FlyDown = true end
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.Space then FlyUp = false
elseif input.KeyCode == Enum.KeyCode.LeftShift then FlyDown = false end
end)
local function StartFly()
local character = LocalPlayer.Character
local rootPart = character and character:FindFirstChild("HumanoidRootPart")
if not rootPart then return end
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.Name = "FroggeHub_Fly"
bodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bodyVelocity.Velocity = Vector3.new()
bodyVelocity.Parent = rootPart
local bodyGyro = Instance.new("BodyGyro")
bodyGyro.Name = "FroggeHub_Gyro"
bodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
bodyGyro.P = 9000
bodyGyro.D = 500
bodyGyro.Parent = rootPart
task.spawn(function()
while States.Fly and ScreenGui.Parent do
RunService.RenderStepped:Wait()
local currentChar = LocalPlayer.Character
local currentRoot = currentChar and currentChar:FindFirstChild("HumanoidRootPart")
local humanoid = currentChar and currentChar:FindFirstChildOfClass("Humanoid")
local camera = Workspace.CurrentCamera
if currentRoot and humanoid and camera then
if bodyVelocity.Parent ~= currentRoot then
bodyVelocity.Parent = currentRoot
bodyGyro.Parent = currentRoot
end
bodyGyro.CFrame = camera.CFrame
local velocity = humanoid.MoveDirection * FlySpeed
if FlyUp then velocity = velocity + Vector3.new(0, FlySpeed, 0) end
if FlyDown then velocity = velocity - Vector3.new(0, FlySpeed, 0) end
bodyVelocity.Velocity = velocity
end
end
bodyVelocity:Destroy()
bodyGyro:Destroy()
end)
end
--═════════ 🚀 زر الانتقال السريع ═════════--
local QuickTPButton = Instance.new("TextButton")
QuickTPButton.Size = UDim2.new(0, 58, 0, 58)
QuickTPButton.Position = UDim2.new(1, -74, 0.6, 0)
QuickTPButton.BackgroundColor3 = Color3.fromRGB(205, 115, 40)
QuickTPButton.BorderSizePixel = 0
QuickTPButton.Text = "🚀"
QuickTPButton.TextSize = 26
QuickTPButton.Font = Enum.Font.GothamBold
QuickTPButton.TextColor3 = Color3.new(1, 1, 1)
QuickTPButton.ZIndex = 50
QuickTPButton.Parent = ScreenGui
do
local c = Instance.new("UICorner") c.CornerRadius = UDim.new(1, 0) c.Parent = QuickTPButton
local s = Instance.new("UIStroke") s.Color = Color3.fromRGB(255, 170, 80) s.Thickness = 2 s.Parent = QuickTPButton
end
QuickTPButton.MouseButton1Click:Connect(function()
ManualTeleport(true, false)
end)
--═════════ أزرار القائمة ═════════--
local NotifyLevelBtn = AddButton("📢 الإشعارات: كل شيء", Color3.fromRGB(60, 80, 140), function()
if NotifyLevel == "all" then
NotifyLevel = "important"
NotifyLevelBtn.Text = "📢 الإشعارات: المهم فقط"
NotifyMsg("info", "📢 الإشعارات", "تم التبديل إلى: المهم فقط", 3)
elseif NotifyLevel == "important" then
NotifyLevel = "off"
NotifyLevelBtn.Text = "📢 الإشعارات: مغلقة 🔕"
task.spawn(function()
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = "📢 الإشعارات",
Text = "تم إغلاق الإشعارات - اضغط الزر مجدداً لإعادتها",
Duration = 3,
})
end)
end)
print("[🐸] تم إغلاق الإشعارات")
else
NotifyLevel = "all"
NotifyLevelBtn.Text = "📢 الإشعارات: كل شيء"
NotifyMsg("info", "📢 الإشعارات", "تم تفعيل جميع الإشعارات ✅", 3)
end
end)
AddButton("📊 الراوتر الذكي (تقرير شامل)", Color3.fromRGB(90, 60, 130), function()
local fRoot = GetFrogRoot()
local frogDist = 0
if fRoot then
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if myRoot then
frogDist = math.floor((fRoot.Position - myRoot.Position).Magnitude)
end
end
local downedCount = 0
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer and GetDownedInfo(plr) then
downedCount = downedCount + 1
end
end
local report = "📊 تقرير شامل:\n"..
"⭐ المستوى: "..MyLevel.." ("..MyHelps.."/"..GetLevelTarget(MyLevel)..")\n"..
"🚀 هروبات: "..Stats.escapes.." | تحذيرات: "..Stats.warnings.."\n"..
"💚 إنقاذات: "..Stats.rescues.." | إحياءات: "..Stats.reviveSuccess.."\n"..
"🛡️ الضفدع: "..(FrogPlayer and FrogPlayer.Name or "غير محدد").." • يبعد "..frogDist.."م\n"..
"🚨 ساقطين حالياً: "..downedCount.." | وضع: "..(followActive and "مدموج 🔘" or "مراقبة 👀")
print(report)
NotifyMsg("info", "📊 الراوتر الذكي", report, 8)
end)
LevelHeaderBtn = AddButton("⭐ المستوى: "..MyLevel.." • المساعدات: "..MyHelps.."/"..GetLevelTarget(MyLevel), Color3.fromRGB(120, 90, 25), function()
local target = GetLevelTarget(MyLevel)
if MyLevel >= 999 then
NotifyMsg("info", "🏆 مستواك", "أنت في أقصى مستوى: 999! 🏆", 5)
else
NotifyMsg("info", "⭐ مستواك", "المستوى: "..MyLevel.." • التقدم: "..MyHelps.."/"..target.." • تحتاج "..(target - MyHelps).." للترقية", 5)
end
end)
LevelBar = AddProgressBar()
local MyBadgeBtn = AddButton("🏷️ الشعار فوق راسي: ظاهر", Color3.fromRGB(45, 90, 130), function()
ShowMyBadge = not ShowMyBadge
MyBadgeBtn.Text = ShowMyBadge and "🏷️ الشعار فوق راسي: ظاهر" or "🏷️ الشعار فوق راسي: مخفي"
UpdateMyBadge()
end)
local OthersBadgeBtn = AddButton("👥 شعارات اللاعبين: ظاهرة", Color3.fromRGB(45, 90, 130), function()
ShowOthersBadge = not ShowOthersBadge
OthersBadgeBtn.Text = ShowOthersBadge and "👥 شعارات اللاعبين: ظاهرة" or "👥 شعارات اللاعبين: مخفية"
UpdateOthersBadges()
end)
AddButton("🗑️ تصفير مستواي", Color3.fromRGB(80, 50, 50), function()
MyLevel = 1
MyHelps = 0
maxLevelNotified = false
SaveMyLevel()
RefreshLevelUI()
NotifyMsg("info", "🗑️ التصفير", "تمت إعادة مستواك إلى المستوى 1", 3)
end)
FrogSelectBtn = AddButton("🎯 اختر الضفدع (لاعب)", Color3.fromRGB(170, 80, 30), function()
RefreshPlayerList()
PlayerListFrame.Visible = true
end)
AddButton("🧪 فحص الضفدع والهروب", Color3.fromRGB(70, 90, 160), function()
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if not FrogPlayer then
NotifyMsg("info", "🧪 الفحص", "لم تختر ضفدعاً بعد! اختره أولاً", 4)
return
end
local fRoot = GetFrogRoot()
if fRoot and myRoot then
local d = math.floor((fRoot.Position - myRoot.Position).Magnitude)
print("[FroggeHub] 🧪 الضفدع على "..d.."م • الهروب تحت "..DANGER_RADIUS.."م • مفعّل: "..tostring(States.SelfEscape))
NotifyMsg("info", "🧪 نتيجة الفحص", "الضفدع يبعد "..d.." متراً • الهروب يشتغل تحت "..DANGER_RADIUS.." متراً • التنبيه عند "..WARN_RADIUS.." متراً", 5)
else
NotifyMsg("info", "🧪 الفحص", "الضفدع لا يملك جسماً حالياً", 4)
end
end)
AddToggle("🛡️ الهروب التلقائي من الضفدع", function(on)
States.SelfEscape = on
if on and not FrogPlayer then
NotifyMsg("info", "⚠️ مهم!", "اختر الضفدع أولاً ليعمل الهروب", 6)
else
NotifyMsg("info", "🛡️ الهروب التلقائي", on and "نشط! يهرب لو قرّب "..DANGER_RADIUS.." متر" or "متوقف", 4)
end
end, true)
AddPresetRow("🛡️ مسافة الهروب (متر)", {
{label = "10م", value = 10},
{label = "20م", value = 20},
{label = "35م", value = 35},
{label = "50م", value = 50},
{label = "80م", value = 80},
}, function(v)
DANGER_RADIUS = v
NotifyMsg("info", "🛡️ مسافة الهروب", "أصبحت: "..v.." متراً", 2)
print("[FroggeHub] 🛡️ مسافة الهروب الآن: "..v.."م")
end)
AddButton("🗑️ حذف اختيار الضفدع", Color3.fromRGB(80, 50, 50), function()
FrogPlayer = nil
FrogSelectBtn.Text = "🎯 اختر الضفدع (لاعب)"
NotifyMsg("info", "🗑️ الحذف", "تم حذف اختيار الضفدع", 3)
end)
AddToggle("🚀 الانتقال التلقائي (واقف فوقه - بلا دمج)", function(on)
States.AutoTP = on
NotifyMsg("info", "🚀 الانتقال التلقائي", on and "نشط! تنتقل واقف فوق الساقط" or "متوقف", 4)
end, true)
AddToggle("💚 الإحياء التلقائي (استمرار E)", function(on)
States.AutoRevive = on
NotifyMsg("info", "💚 الإحياء التلقائي", on and "نشط!" or "متوقف", 4)
end, true)
AddToggle("🔘 الاندماج (داخل جسده - اختياري)", function(on)
States.Underground = on
if not on and followActive then StopFollow() end
NotifyMsg("info", "🔘 الاندماج", on and "مفعل - راح تندمج بجسم الساقط" or "معطل - الانتقال واقف فوقه", 4)
end)
AddPresetRow("🔘 إزاحة الاندماج (لو مفعل)", {
{label = "-1", value = -1},
{label = "-0.5", value = -0.5},
{label = "المنتصف", value = 0},
{label = "+0.5", value = 0.5},
{label = "+1", value = 1},
}, function(v)
FOLLOW_OFFSET = v
NotifyMsg("info", "🔘 الإزاحة", "أصبحت: "..v, 2)
end)
AddButton("🎯 انتقل الآن (واقف فوق الساقط)", Color3.fromRGB(38, 122, 72), function()
ManualTeleport(true, false)
end)
local SpeedToggle = AddToggle("⚡ السرعة ["..SpeedValue.."]", function(on)
States.Speed = on
if not on then
local character = LocalPlayer.Character
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if humanoid then humanoid.WalkSpeed = 16 end
end
end)
AddPresetRow("⚡ تغيير السرعة (فعّل الزر فوق)", {
{label = "16", value = 16},
{label = "30", value = 30},
{label = "50", value = 50},
{label = "75", value = 75},
{label = "100", value = 100},
}, function(v)
SpeedValue = v
SpeedToggle.SetText("⚡ السرعة ["..SpeedValue.."]")
NotifyMsg("info", "⚡ السرعة", "أصبحت: "..SpeedValue, 2)
end)
AddToggle("🦘 القفز اللانهائي", function(on)
States.InfJump = on
end)
AddToggle("🕊️ الطيران", function(on)
States.Fly = on
FlyUpBtn.Visible = on
FlyDownBtn.Visible = on
if on then
if followActive then StopFollow() end
StartFly()
end
end)
AddToggle("👁️ الرؤية (الضفدع بنفسجي + الساقط أحمر)", function(on)
States.ESP = on
if not on then
for _, plr in ipairs(Players:GetPlayers()) do
CleanESP(plr)
end
end
end)
AddToggle("🛡️ منع الطرد (Anti-AFK)", function(on)
States.AntiAFK = on
end)
AddToggle("💡 الإضاءة الكاملة", function(on)
States.Fullbright = on
pcall(SetFullbright, on)
end)
AddToggle("👻 عبور الجدران (Noclip)", function(on)
States.Noclip = on
if not on and not followActive then pcall(RestoreCollision) end
end)
AddButton("❌ إيقاف السكريبت نهائياً", Color3.fromRGB(150, 45, 50), function()
for key in pairs(States) do States[key] = false end
pcall(StopFollow)
for _, plr in ipairs(Players:GetPlayers()) do
CleanESP(plr)
end
pcall(function() SetFullbright(false) end)
pcall(RestoreCollision)
local character = LocalPlayer.Character
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if humanoid then pcall(function() humanoid.WalkSpeed = 16 end) end
ScreenGui:Destroy()
task.spawn(function()
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = "🐸 مركز الضفدع",
Text = "تم إيقاف السكريبت بالكامل ✅",
Duration = 4,
})
end)
end)
end)
--═════════ 📜 سجل التحديثات (آخر شي) ═════════--
AddButton("📜 سجل التحديثات (آخر التحديثات)", Color3.fromRGB(50, 60, 100), function()
local changelog = "📜 سجل التحديثات:\n\n"..
"🆕 v19.3 (الحالية):\n"..
"• 🛡️ الهروب: 10م (الضفدع لازم يقرّب جداً)\n"..
"• التنبيه المسبق: 20م\n"..
"• محرس الساقط: 8م (مو 18م - تنقذ بجنبه بسهولة)\n\n"..
"v19.2:\n"..
"• الانتقال: واقف فوق الساقط (بلا دمج)\n"..
"• الاندماج: مطفي افتراضياً\n\n"..
"v19.1:\n"..
"• سجل التحديثات\n"..
"• حذف زر نقطة الاختبار\n\n"..
"v19.0:\n"..
"• هروب محسّن + تنبيه مسبق\n"..
"• الراوتر الذكي (تقرير شامل)\n"..
"• اختصارات: H هروب، F تقرير\n\n"..
"v18.2: منع الطيحة (5 طبقات)\n"..
"v18.0: قفل متسامح + ميزات جاهزة\n"..
"v17.0: كلمة السر\n"..
"v16.0: نقاط جماعية\n"..
"v15.0: ملف لكل حساب\n"..
"v14.0: نظام المستويات\n"..
"v13.0: إشعارات فصيحة\n"..
"v12.0: هروب آمن لمسطح\n"..
"v11.0: الضفدع = لاعب\n"..
"v8.0-10.0: الاندماج + زر E"
print(changelog)
NotifyMsg("info", "📜 سجل التحديثات", "طُبع بالكامل بلوق دلتا 📋", 4)
end)
RefreshLevelUI()
--═════════ الزر العائم 🐸 ═════════--
local FloatingButton = Instance.new("TextButton")
FloatingButton.Size = UDim2.new(0, 50, 0, 50)
FloatingButton.Position = UDim2.new(0, 12, 0.35, 0)
FloatingButton.BackgroundColor3 = Color3.fromRGB(38, 122, 72)
FloatingButton.BorderSizePixel = 0
FloatingButton.Text = "🐸"
FloatingButton.TextSize = 28
FloatingButton.Font = Enum.Font.GothamBold
FloatingButton.ZIndex = 50
FloatingButton.Parent = ScreenGui
do
local c = Instance.new("UICorner") c.CornerRadius = UDim.new(1, 0) c.Parent = FloatingButton
local s = Instance.new("UIStroke") s.Color = Color3.fromRGB(85, 220, 130) s.Thickness = 2 s.Parent = FloatingButton
end
FloatingButton.MouseButton1Click:Connect(function()
MainFrame.Visible = not MainFrame.Visible
end)
MinimizeButton.MouseButton1Click:Connect(function()
MainFrame.Visible = false
NotifyMsg("info", "🐸 مركز الضفدع", "اضغط 🐸 لإظهار القائمة", 3)
end)
--═════════ ⌨️ الاختصارات ═════════--
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == REVIVE_KEY then
if not IsReviving then
ManualTeleport(true, true)
end
elseif input.KeyCode == Enum.KeyCode.K then
MainFrame.Visible = not MainFrame.Visible
elseif input.KeyCode == Enum.KeyCode.H then
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if myRoot then
local escaped = EscapeFromFrog()
NotifyMsg("info", "🛡️ هروب يدوي", escaped and "تم! جرّب تتقرب من الضفدع وشاهد الحماية" or "ما فيه ضفدع محدد أو مكان آمن", 4)
end
elseif input.KeyCode == Enum.KeyCode.F then
local fRoot = GetFrogRoot()
local frogDist = 0
if fRoot then
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
if myRoot then
frogDist = math.floor((fRoot.Position - myRoot.Position).Magnitude)
end
end
local downedCount = 0
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer and GetDownedInfo(plr) then
downedCount = downedCount + 1
end
end
NotifyMsg("info", "📊 سريع", "Lv "..MyLevel.." • هروبات: "..Stats.escapes.." • إنقاذات: "..Stats.rescues.." • ساقطين: "..downedCount.." • ضفدع: "..frogDist.."م", 5)
end
end)
--═════════ ⭐ محدث الشعارات ═════════--
LocalPlayer.CharacterAdded:Connect(function(char)
task.wait(1)
pcall(UpdateMyBadge)
end)
Players.PlayerAdded:Connect(function(plr)
plr.CharacterAdded:Connect(function()
task.wait(1)
pcall(UpdateOthersBadges)
end)
end)
task.spawn(function()
while ScreenGui.Parent do
task.wait(1)
pcall(UpdateMyBadge)
pcall(UpdateOthersBadges)
pcall(function()
local myChar = LocalPlayer.Character
local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart")
local myHum = myChar and myChar:FindFirstChildOfClass("Humanoid")
if myRoot and myHum and myHum.Health > 0 and not followActive then
local fRoot = GetFrogRoot()
if fRoot and (fRoot.Position - myRoot.Position).Magnitude > DANGER_RADIUS + 30 then
local ok, hit = pcall(function()
return Workspace:Raycast(myRoot.Position, Vector3.new(0, -8, 0), GetRayParams())
end)
if ok and hit then
lastSafePos = hit.Position + Vector3.new(0, 3.5, 0)
end
end
end
end)
end
end)
NotifyMsg("info", "🐸 مركز الضفدع v19.3", "تم التشغيل! أهلاً "..LocalPlayer.Name.." 🎉 • Lv "..MyLevel, 5)
NotifyMsg("info", "🛡️ الهروب الجديد", "يهرب بك فقط لو الضفدع قرّب 10 أمتار!", 7)
NotifyMsg("info", "⌨️ الاختصارات", "E = انتقال • K = قائمة • H = هروب فوري • F = تقرير", 8)
print("🐸 مركز الضفدع v19.3 - اكتمل التحميل بنجاح! ✅")
print("🛡️ الهروب: 10م فقط (الضفدع لازم يقرّب جداً) | التنبيه: 20م")
end -- نهاية StartMainScript
print("🔐 السكريبت جاهز - بانتظار كلمة السر...")Auto assistant helps injured players Me Username: romal3m607 Own: romal Note there is a password in the script and you can find it in the script in a specific place the first person to find it will get the VIP copy