Run it
Copy the script and paste it into your executor.
||| Informant ||| Unclassified ||| KX Source ||| Leaked Version
Players = :()
TweenService = :()
UserInputService = :()
CollectionService = :()
color = .fromRGB
udim2 = .new
udim = .new
vector2 = .new
vector = .new
cframe = .new
v =
genv = v ()
genv.__KX_BUILD =
genv.__KX_VERSION =
genv.__KX_RUNTIME_CLEANUP
(genv.__KX_RUNTIME_CLEANUP)
tbl = {}
tbl2 = {}
flag =
()
n =
i = , #tbl
v2 = tbl[i]
v2 v2.Connected
tbl[n] = v2
n = n +
i = n, #tbl
tbl[i] =
(arg, arg2)
#tbl >=
()
connection = arg:(arg2)
tbl[#tbl + ] = connection
connection
(arg)
arg
(arg.Disconnect, arg)
(arg)
tbl2[#tbl2 + ] = arg
arg
genv.__KX_RUNTIME_CLEANUP = ()
flag =
i = #tbl, , -
(()
tbl[i]:()
)
i = #tbl2, , -
(tbl2[i])
.(tbl)
.(tbl2)
(arg, parent, ...)
instance = .(arg)
i = , (, ...),
instance[(i, ...)] = (i + , ...)
instance.Parent = parent
instance
localPlayer = Players.LocalPlayer
coreGui = :()
kxVisualKeySystem = coreGui:()
kxVisualKeySystem
kxVisualKeySystem:()
ScreenGui = (, coreGui, , , , , , , , .ZIndexBehavior.Sibling)
tbl3 = {
Bg = (, , ),
Panel = (, , ),
Panel2 = (, , ),
Accent = (, , ),
Accent2 = (, , ),
Text = (, , ),
Soft = (, , ),
Good = (, , ),
Bad = (, , ),
}
(arg, arg2, arg3)
ok, result = (()
TweenService:(arg, TweenInfo.(arg2, .EasingStyle.Quint, .EasingDirection.Out), arg3)
)
ok result
result:()
(arg, arg2)
(, arg, , (, arg2))
(arg, arg2, arg3, arg4)
n = arg3
n2 = arg4
(, arg, , arg2, , n, , n2, , .ApplyStrokeMode.Border)
(arg, arg2, arg3, arg4, arg5, arg6, arg7)
text = arg7 tbl3.Text
gotham = arg5 .Font.Gotham
n = arg6
(, arg, , , , arg3, , arg4, , arg2, , text, , gotham, , n, , .TextXAlignment.Left, , .TextYAlignment.Center, , .TextTruncate.AtEnd, , )
(arg, arg2, arg3, arg4, arg5, arg6, arg7)
TextButton = (, arg, , , , arg5, , arg3, , arg4, , arg2, , arg6, , .Font.GothamBold, , , , )
(TextButton, )
v2 = (TextButton, arg7, , )
(TextButton.MouseEnter, ()
(TextButton, , {BackgroundColor3 = arg7})
(v2, , {Color = arg6, Transparency = })
)
(TextButton.MouseLeave, ()
(TextButton, , {BackgroundColor3 = arg5})
(v2, , {Color = arg7, Transparency = })
)
TextButton
fn13 =
(arg)
fn15, tbl4, tbl5, fn16, v6
genv.__KX_API_TERMINAL = {entries = {}, listeners = {}, nextListener = }
now = .()
flag5 =
fn15 = ()
flag5
flag5 =
n2 = .(, .() - now)
str = .. .(, n2) ..
add_credit_line
(, str)
add_line
(, str, )
Players = :()
UserInputService = :()
TweenService = :()
service = :()
TextChatService = service
service2 = :()
HttpService = service2
service3 = :()
RunService = service3
service4 = :()
ReplicatedStorage = service4
service5 = :()
TeleportService = service5
service6 = :()
MarketplaceService = service6
service7 = :()
Lighting = service7
service8 = :()
Workspace = service8
service9 = :()
CoreGui = service9
LocalPlayer = Players.LocalPlayer
v7 = LocalPlayer:()
PlayerGui = v7
PlaceId = .PlaceId
JobId = .JobId
camera = Workspace.CurrentCamera
tbl4 = {}
tbl6 = {}
FORCEFIELD_SPAWN_GRACE =
obj = ({}, {__mode = })
forceFieldSpawnAt = obj
(arg2)
tbl6[arg2]
tbl4[#tbl4 + ] = arg2
tbl6[arg2] = #tbl4
(arg2)
v8 = tbl6[arg2]
v8
v9 = tbl4[#tbl4]
tbl4[v8] = v9
tbl4[#tbl4] =
tbl6[arg2] =
v9 v9 ~= arg2
tbl6[v9] = v8
i, player (Players:())
(player)
player.Character
forceFieldSpawnAt[player.Character] = -.huge
(Players.PlayerAdded, fn17)
(Players.PlayerRemoving, fn18)
isfolder
isfolder = ()
isfile
isfile = ()
makefolder
makefolder = ()
writefile
writefile = ()
readfile
readfile = ()
folder =
str = folder ..
tpfile = str
str2 = folder ..
cfgfile = str2
str3 = folder ..
dbfile = str3
serverfile = folder ..
(()
(folder)
(folder)
)
tbl5 = {
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
}
fn16 = (arg2, arg3)
x = arg2.X
z = arg2.Z
flag6 =
n2 = #arg3
i = , #arg3
v8 = arg3[i]
v9 = arg3[n2]
x2 = v8.X
z2 = v8.Z
x3 = v9.X
z3 = v9.Z
flag7 = z < z2
flag8 = z < z3
flag9 = flag7 ~= flag8 x < (x3 - x2) * (z - z2) / (z3 - z2 + ) + x2
flag9
flag6
flag6 =
flag6 =
n2 = i
flag6
tbl7 = {
fling_stop_death = ,
fling_no_limit = ,
fling_method = ,
fling_hit = ,
fling_whip = ,
}
cfg = {
kill_feedback = ,
aim_detect = ,
fling_detector = ,
invisible_detection = ,
lock_walkspeed = ,
walkspeed_value = ,
backpack_head = ,
tool_aura = ,
punch_aura = ,
player_list = ,
botton_fling = ,
fling_defaults_v4 = ,
laser_state = ,
get_method_guns = ,
auto_reload = ,
auto_switch = ,
anti_taze = ,
anti_riot = ,
anti_fling_v1 = ,
anti_fling_mode = ,
wall = ,
auto_respawn = ,
auto_respawn_neutral = ,
auto_arrest = ,
auto_keycard = ,
mobile_buttons = {},
pc_keybinds = {},
pc_keybind_position = {x = , y = },
old_pass_detected = {swat = , mafia = , sniper = },
auto_get = {},
skid_list = {},
esp_enabled = ,
tracers_enabled = ,
tracer_info_enabled = ,
backpack_view_enabled = ,
health_gui_enabled = ,
hitbox_enabled = ,
hitbox_size = ,
noclip = ,
inf_jump = ,
carspeed = ,
silent_aim = ,
silent_hit_chance = ,
silent_fov_size = ,
silent_hit_part = ,
silent_fov_visible = ,
silent_wall_check = ,
silent_team_check = ,
silent_forcefield_check = ,
silent_visibility = ,
}
k, v8 (tbl7)
cfg[k] = v8
sync_visual_cfg = ()
espCfg
cfg.esp_enabled = espCfg.espEnabled
cfg.tracers_enabled = espCfg.tracersEnabled
cfg.tracer_info_enabled = espCfg.tracerInfoEnabled
cfg.backpack_view_enabled = espCfg.backpackViewEnabled
cfg.health_gui_enabled = espCfg.healthGuiEnabled
cfg.hitbox_enabled = espCfg.hitboxEnabled
cfg.hitbox_size = espCfg.hitboxSize
save_cfg = ()
(()
()
(cfgfile, HttpService:(cfg))
)
load_cfg = ()
ok, result = (()
(cfgfile)
HttpService:((cfgfile))
)
ok (result) ==
k, v8 (result)
cfg[k] = v8
()
(cfg.old_pass_detected) ~=
cfg.old_pass_detected = {}
cfg.old_pass_detected.swat ==
cfg.old_pass_detected.swat =
cfg.old_pass_detected.mafia ==
cfg.old_pass_detected.mafia =
cfg.old_pass_detected.sniper ==
cfg.old_pass_detected.sniper =
cfg.laser_state == cfg.laser_state ~=
v8 = cfg
laserState = cfg.laser_state ==
v8.laser_state = laserState
v8 = cfg
silentAim = cfg.silent_aim ==
v8.silent_aim = silentAim
cfg.silent_mode =
v9 = cfg
clamp = .clamp
num = (cfg.silent_hit_chance)
n2 = num
v9.silent_hit_chance = (n2, , )
v10 = cfg
clamp2 = .clamp
num2 = (cfg.silent_fov_size)
n3 = num2
v10.silent_fov_size = (n3, , )
v11 = cfg
v12 =
silentHitPart = cfg.silent_hit_part
str4 = silentHitPart
v11.silent_hit_part = (str4):()
cfg.silent_hit_part ~= cfg.silent_hit_part ~= cfg.silent_hit_part ~= cfg.silent_hit_part ~= cfg.silent_hit_part ~=
cfg.silent_hit_part =
v13 = cfg
silentFovVisible = cfg.silent_fov_visible ~=
v13.silent_fov_visible = silentFovVisible
v14 = cfg
silentWallCheck = cfg.silent_wall_check ~=
v14.silent_wall_check = silentWallCheck
v15 = cfg
silentTeamCheck = cfg.silent_team_check ~=
v15.silent_team_check = silentTeamCheck
v16 = cfg
silentForcefieldCheck = cfg.silent_forcefield_check ~=
v16.silent_forcefield_check = silentForcefieldCheck
v17 = cfg
silentVisibility = cfg.silent_visibility ==
v17.silent_visibility = silentVisibility
(cfg.mobile_buttons) ~=
cfg.mobile_buttons = {}
(cfg.pc_keybinds) ~=
cfg.pc_keybinds = {}
(cfg.pc_keybind_position) ~=
cfg.pc_keybind_position = {x = , y = }
v18 = cfg
carspeed_ = cfg.carspeed ==
v18.carspeed = carspeed_
flag6 = cfg.fling_defaults_v4 ~=
flag6
k, v19 (tbl7)
cfg[k] = v19
cfg.fling_defaults_v4 =
flag7 = cfg.mod_guns ~=
flag8 = cfg.silent_proximity ~=
cfg.mod_guns =
cfg.silent_proximity == cfg.silent_hit_part ==
cfg.silent_hit_part =
cfg.silent_proximity =
v19 = cfg
v20 =
getMethodGuns = cfg.get_method_guns
str5 = getMethodGuns
v19.get_method_guns = (str5):()
cfg.get_method_guns ~=
cfg.get_method_guns =
v21 = cfg
autoReload = cfg.auto_reload ==
v21.auto_reload = autoReload
v22 = cfg
autoSwitch = cfg.auto_switch ==
v22.auto_switch = autoSwitch
v23 = cfg
bottonFling = cfg.botton_fling ~=
v23.botton_fling = bottonFling
v24 = cfg
flingStopDeath = cfg.fling_stop_death ~=
v24.fling_stop_death = flingStopDeath
v25 = cfg
flingNoLimit = cfg.fling_no_limit ~=
v25.fling_no_limit = flingNoLimit
v26 = cfg
v27 =
flingMethod = cfg.fling_method
str6 = flingMethod
v26.fling_method = (str6):()
cfg.fling_method ~= cfg.fling_method ~=
cfg.fling_method =
v28 = cfg
v29 =
flingHit = cfg.fling_hit
str7 = flingHit
v28.fling_hit = (str7):()
cfg.fling_hit ~= cfg.fling_hit ~=
cfg.fling_hit =
v30 = cfg
flingWhip = cfg.fling_whip ==
v30.fling_whip = flingWhip
v31 = cfg
v32 =
antiFlingMode = cfg.anti_fling_mode
str8 = antiFlingMode
v31.anti_fling_mode = (str8):()
cfg.anti_fling_mode ==
cfg.anti_fling_mode =
cfg.anti_fling_mode ~=
cfg.anti_fling_mode =
flag6 flag7 flag8
()
featureStateKey =
v33 = featureState
tbl8 = v33 {}
featureState = tbl8
(()
genv2 = ()
v34 = featureStateKey
v35 = ()[featureStateKey]
tbl9 = v35 {}
genv2[v34] = tbl9
v36 = ()[featureStateKey]
featureState = v36
)
featureSet = (arg2, arg3)
v34 = featureState
str9 = (arg2)
flag9 = arg3 ==
v34[str9] = flag9
featureGet = (arg2, arg3)
v34 = featureState[(arg2)]
v34 ==
flag9 = arg3 ==
flag9
flag9 = v34 ==
flag9
featureSyncFromConfig = ()
v34 = featureSet
v35 =
flag9 = cfg.kill_feedback ==
(v35, flag9)
v36 = featureSet
v37 =
flag10 = cfg.aim_detect ==
(v37, flag10)
v38 = featureSet
flag11 = cfg.fling_detector ==
(, flag11)
v39 = featureSet
flag12 = cfg.invisible_detection ==
(, flag12)
v40 = featureSet
v41 =
flag13 = cfg.lock_walkspeed ==
(v41, flag13)
v42 = featureSet
v43 =
flag14 = cfg.backpack_head ==
(v43, flag14)
v44 = featureSet
v45 =
flag15 = cfg.tool_aura ==
(v45, flag15)
v46 = featureSet
v47 =
flag16 = cfg.punch_aura ==
(v47, flag16)
v48 = featureSet
v49 =
flag17 = cfg.player_list ==
(v49, flag17)
v50 = featureSet
v51 =
flag18 = cfg.laser_state ==
(v51, flag18)
v52 = featureSet
flag19 = cfg.auto_reload ==
(, flag19)
v53 = featureSet
flag20 = cfg.auto_switch ==
(, flag20)
v54 = featureSet
v55 =
flag21 = cfg.anti_taze ==
(v55, flag21)
v56 = featureSet
flag22 = cfg.anti_riot ==
(, flag22)
v57 = featureSet
v58 =
flag23 = cfg.anti_fling_v1 ==
(v58, flag23)
v59 = featureSet
flag24 = cfg.wall ==
(, flag24)
v60 = featureSet
v61 =
flag25 = cfg.auto_respawn ==
(v61, flag25)
v62 = featureSet
flag26 = cfg.auto_respawn_neutral ==
(, flag26)
v63 = featureSet
v64 =
flag27 = cfg.auto_arrest ==
(v64, flag27)
v65 = featureSet
v66 =
flag28 = cfg.auto_keycard ==
(v66, flag28)
v67 = featureSet
v68 =
flag29 = cfg.noclip ==
(v68, flag29)
v69 = featureSet
v70 =
flag30 = cfg.inf_jump ==
(v70, flag30)
v71 = featureSet
flag31 = cfg.carspeed ==
(, flag31)
v72 = featureSet
flag32 = cfg.silent_aim ==
(, flag32)
cfg.esp_enabled ~=
v73 = featureSet
flag33 = cfg.esp_enabled ==
(, flag33)
cfg.tracers_enabled ~=
v73 = featureSet
flag33 = cfg.tracers_enabled ==
(, flag33)
cfg.tracer_info_enabled ~=
v73 = featureSet
flag33 = cfg.tracer_info_enabled ==
(, flag33)
cfg.backpack_view_enabled ~=
v73 = featureSet
flag33 = cfg.backpack_view_enabled ==
(, flag33)
cfg.health_gui_enabled ~=
v73 = featureSet
flag33 = cfg.health_gui_enabled ==
(, flag33)
cfg.hitbox_enabled ~=
v73 = featureSet
flag33 = cfg.hitbox_enabled ==
(, flag33)
()
save_feature_cfg = (arg2, arg3, arg4)
v34 = featureSet
flag9 = arg4 ==
(arg2, flag9)
v35 = cfg
flag10 = arg4 ==
v35[arg3] = flag10
()
refreshFeatureRuntime = ()
cfg.kill_feedback = (, cfg.kill_feedback)
cfg.aim_detect = (, cfg.aim_detect)
cfg.fling_detector = (, cfg.fling_detector)
cfg.invisible_detection = (, cfg.invisible_detection)
cfg.lock_walkspeed = (, cfg.lock_walkspeed)
cfg.backpack_head = (, cfg.backpack_head)
cfg.tool_aura = (, cfg.tool_aura)
cfg.punch_aura = (, cfg.punch_aura)
cfg.player_list = (, cfg.player_list)
cfg.laser_state = (, cfg.laser_state)
cfg.auto_reload = (, cfg.auto_reload)
cfg.auto_switch = (, cfg.auto_switch)
cfg.anti_taze = (, cfg.anti_taze)
cfg.anti_riot = (, cfg.anti_riot)
cfg.anti_fling_v1 = (, cfg.anti_fling_v1)
cfg.wall = (, cfg.wall)
cfg.auto_respawn = (, cfg.auto_respawn)
cfg.auto_respawn_neutral = (, cfg.auto_respawn_neutral)
cfg.auto_arrest = (, cfg.auto_arrest)
cfg.auto_keycard = (, cfg.auto_keycard)
cfg.noclip = (, cfg.noclip)
cfg.inf_jump = (, cfg.inf_jump)
cfg.carspeed = (, cfg.carspeed)
cfg.silent_aim = (, cfg.silent_aim)
v34 = db
tbl9 = v34 {}
db = tbl9
dbViewDirty =
dbRenderBusy =
db_default = ()
{
version = ,
fling_counter_epoch = ,
starts = {},
flings = {},
kills = {},
skids_added = {},
skid_encounters = {},
}
db_date = (arg2)
date = .date
num3 = (arg2)
now2 = num3 .()
(, now2)
db_account = ()
{
userId = LocalPlayer.UserId,
name = LocalPlayer.Name,
displayName = LocalPlayer.DisplayName,
date = (),
time = .(),
placeId = PlaceId,
jobId = JobId,
}
db_player = (arg2)
arg2
{userId = , name = , displayName = }
tbl10 = {
userId = arg2.UserId,
name = arg2.Name,
displayName = arg2.DisplayName,
}
team = arg2.Team
name = team arg2.Team.Name
tbl10.team = name
tbl10
db_fmt_player = (arg2)
arg2
v35 =
displayName = arg2.displayName
name = displayName arg2.name
v36 = (name)
v37 =
name2 = arg2.name
v38 = name2 v36
v39 = (v38)
v36 == v39
v39
v36 .. .. v39 ..
db_load = ()
v35 = ()
db = v35
ok, result = (()
(dbfile)
HttpService:((dbfile))
)
ok (result) ==
k, v36 (result)
db[k] = v36
flag9 = (result) ~= (result.fling_counter_epoch) ~=
k, v36 (())
(db[k]) ~= (v36)
db[k] = v36
flag9
db.flings = {}
db.fling_counter_epoch =
()
dbViewDirty =
db_save = ()
(()
(dbfile, HttpService:(db))
)
db_trim = (arg2, arg3)
db_add = (arg2, arg3)
(db) ~=
()
(db[arg2]) ~=
db[arg2] = {}
tbl10 = arg3 {}
v35 = tbl10
time = tbl10.time
now2 = time .()
v35.time = now2
date = v35.date
v36 = date (v35.time)
v35.date = v36
account = v35.account
v37 = account ()
v35.account = v37
placeId = v35.placeId
v38 = placeId PlaceId
v35.placeId = v38
jobId = v35.jobId
v39 = jobId JobId
v35.jobId = v39
.(db[arg2], v35)
dbViewDirty =
()
db_view_open db_render
.(db_render)
db_track_start = ()
(, { = , account = ()})
db_track_fling = (arg2)
(, { = , target = (arg2)})
db_track_kill = (arg2, arg3)
v35 = db_add
tbl10 = { = }
mode = arg3
tbl10.mode = mode
tbl10.target = (arg2)
(, tbl10)
db_track_skid_added = (arg2)
v35 = db_add
tbl10 = { = }
target = {}
v36 =
key = arg2 arg2.key
v37 = (key)
userId = v37
target.userId = userId
name = arg2 arg2.name
target.name = name
displayName = arg2 arg2.displayName arg2 arg2.name
target.displayName = displayName
tbl10.target = target
reason = arg2 arg2.reason
tbl10.reason = reason
addedBy = arg2 arg2.addedBy LocalPlayer.Name
tbl10.addedBy = addedBy
(, tbl10)
db_track_skid_encounter = (arg2, arg3)
v35 = db_add
tbl10 = { = , target = (arg2)}
reason = arg3 arg3.reason
tbl10.reason = reason
addedAt = arg3 arg3.addedAt
tbl10.skidAddedAt = addedAt
addedAt2 = arg3 arg3.addedAt (arg3.addedAt)
tbl10.skidAddedDate = addedAt2
addedBy = arg3 arg3.addedBy
tbl10.addedBy = addedBy
oldSkidList = arg3 arg3.oldSkidList ==
tbl10.oldSkidList = oldSkidList
skidOrigin = arg3 arg3.oldSkidList ==
tbl10.skidOrigin = skidOrigin
(, tbl10)
()
()
gamePassIds = {mafia = , sniper = , swat = }
gamePassCache = {}
oldPassKeyFromId = (arg2)
arg2 == gamePassIds.swat
arg2 == gamePassIds.mafia
arg2 == gamePassIds.sniper
oldPassEnsure = ()
(cfg.old_pass_detected) ~=
cfg.old_pass_detected = {swat = , mafia = , sniper = }
cfg.old_pass_detected.swat ==
cfg.old_pass_detected.swat =
cfg.old_pass_detected.mafia ==
cfg.old_pass_detected.mafia =
cfg.old_pass_detected.sniper ==
cfg.old_pass_detected.sniper =
oldPassHasTool = (arg2)
v35 =
str9 = arg2
v36 = (str9)
backpack = LocalPlayer:()
backpack backpack:(v36)
character_ = LocalPlayer.Character
character_ character_:(v36)
oldPassSaveDetected = (arg2, arg3)
()
cfg.old_pass_detected[arg2] ==
cfg.old_pass_detected[arg2] =
()
refresh_saved_commands
.(refresh_saved_commands)
add_line
v35 = add_line
str9 = .. (arg2)
str10 = arg3 .. (arg3)
(str9, .. str10, )
oldPassDetectSwat = (arg2)
()
cfg.old_pass_detected.swat ==
ownsGamePass (gamePassIds.swat)
()
v35 = oldPassSaveDetected
str9 = arg2
(, str9)
oldPassDetectedForPassId = (arg2)
()
v35 = (arg2)
v35
v35 ==
cfg.old_pass_detected.swat ==
()
flag9 = cfg.old_pass_detected[v35] ==
flag9
oldPassWatchTool = (arg2)
arg2 arg2:() arg2.Name ==
()
v35 = oldPassWatchBound
flag9 = v35
oldPassWatchBound = flag9
oldPassBindWatchers = ()
oldPassWatchBound
oldPassWatchBound =
.(()
backpack = LocalPlayer:()
backpack2 = backpack LocalPlayer:(, )
backpack2
i, child (backpack2:())
(child)
(backpack2.ChildAdded, oldPassWatchTool)
(arg2)
arg2
i, child (arg2:())
(child)
(arg2.ChildAdded, oldPassWatchTool)
.(, ()
()
)
LocalPlayer.Character
(LocalPlayer.Character)
(LocalPlayer.CharacterAdded, fn19)
.(, ()
()
)
)
passVerifyCommand = (arg2)
v36 =
str9 = arg2
(str9):():(, ):(, ) ==
() cfg.old_pass_detected.swat ~=
(, , )
()
(, , )
(, , )
()
()
ownsGamePass = (arg2)
arg2
gamePassCache[arg2] ~=
gamePassCache[arg2]
ok, result = (()
MarketplaceService:(LocalPlayer.UserId, arg2)
)
v36 = gamePassCache
flag10 = ok result ==
v36[arg2] = flag10
gamePassCache[arg2]
passName = (arg2)
arg2 == gamePassIds.mafia
arg2 == gamePassIds.sniper
arg2 == gamePassIds.swat
canUseWeaponData = (arg2)
arg2 arg2.passId
(arg2.passId)
(arg2.passId)
gamepassBlockedMessage = (arg2)
v36 = passName
passId = arg2 arg2.passId
.. (passId)
cmdColorForPass = (arg2)
arg2 (arg2)
(, , )
(arg2)
(, , )
(, , )
cmdTextForPass = (arg2, arg3)
arg3 (arg3)
arg2
(arg3)
arg2 ..
arg2 ..
saves = {}
cf_to_string = (arg2)
.({arg2:()}, )
string_to_cf = (arg2)
(arg2) ~=
tbl10 = {}
match .(arg2, )
tbl10[#tbl10 + ] = (match)
#tbl10 <
(tbl10[], tbl10[], tbl10[], tbl10[], tbl10[], tbl10[], tbl10[], tbl10[], tbl10[], tbl10[], tbl10[], tbl10[])
table_to_cf = (arg2)
(arg2) == #arg2 >=
((arg2[]), (arg2[]), (arg2[]), (arg2[]), (arg2[]), (arg2[]), (arg2[]), (arg2[]), (arg2[]), (arg2[]), (arg2[]), (arg2[]))
any_to_cf = (arg2)
(arg2) ==
(arg2)
(arg2) ==
(arg2)
save_saves = ()
(()
(tpfile, HttpService:(saves))
)
load_saves = ()
ok, result = (()
(tpfile)
HttpService:((tpfile))
)
ok (result) ==
saves = result
saves = {}
find_save = (arg2)
v36 =
str9 = arg2
str10 = (str9):():(, ):(, )
str10 ==
i, v37 (saves)
(v37.Name):() == str10
v37, i
i, v37 (saves)
str11 = (v37.Name):()
str11:(, #str10) == str10 str11:(str10, , )
v37, i
()
v36 = savedServers
tbl10 = v36 {}
savedServers = tbl10
serverTrim = (arg2)
v37 =
str9 = arg2
(str9):(, ):(, )
serverPlaceLabel = (arg2)
num3 = (arg2)
n4 = num3
v37 = n4
n4 ==
n4 ==
.. (v37)
serverModeLabel = (arg2)
num3 = (arg2)
n4 = num3
v37 = n4
n4 ==
n4 ==
(v37)
serverNormalizeJobId = (arg2)
str9 = (arg2):()
str9:()
str9
str9:()
.({
str9:(, ),
str9:(, ),
str9:(, ),
str9:(, ),
str9:(, ),
}, )
serverMakeJoinLink = (arg2, arg3)
.. (arg2) .. .. (arg3)
save_saved_servers = ()
(()
(serverfile, HttpService:(savedServers))
)
load_saved_servers = ()
ok, result = (()
(serverfile)
HttpService:((serverfile))
)
savedServers = {}
ok (result) ==
i, v37 (result)
(v37) ==
v38 = (v37.Name)
num3 = (v37.PlaceId)
v39 = (v37.JobId)
v38 ~= num3 v39
v40 = savedServers
n4 = #savedServers +
tbl11 = {Name = v38, PlaceId = num3, JobId = v39}
num4 = (v37.Time)
now2 = num4 .()
tbl11.Time = now2
status = v37.Status == v37.Status ==
tbl11.Status = status
v40[n4] = tbl11
find_saved_server = (arg2)
str9 = (arg2):()
str9 ==
i, v37 (savedServers)
(v37.Name):() == str9
v37, i
i, v37 (savedServers)
str10 = (v37.Name):()
str10:(, #str9) == str9 str10:(str9, , )
v37, i
find_saved_server_by_instance = (arg2, arg3)
num3 = (arg2)
v37 = (arg3)
num3 v37
i, v38 (savedServers)
(v38.PlaceId) == num3 (v38.JobId) == v37
v38, i
save_current_server = (arg2)
v37 = (arg2)
v37 ==
(, , )
()
v38 = (JobId)
v38
( .. v37, , )
()
tbl11 = {
Name = v37,
PlaceId = (PlaceId),
JobId = v38,
Time = .(),
}
v39, v40 = (v37)
v41, v42 = (PlaceId, v38)
v39 v40
savedServers[v40] = tbl11
v42 v42 ~= v40
.(savedServers, v42)
v41 v42
savedServers[v42] = tbl11
savedServers[#savedServers + ] = tbl11
()
refresh_saved_commands
()
( .. v37, .. v37 .. .. (PlaceId) .. , )
clear_saved_server = (arg2)
v37 = (arg2)
v37 ==
(, , )
()
v37:() ==
n4 = #savedServers
.(savedServers)
()
refresh_saved_commands
()
(, .. (n4), )
v38, v39 = (v37)
v38 v39
serverDeleted = (v38.Name)
.(savedServers, v39)
()
refresh_saved_commands
()
( .. v37, .. serverDeleted, )
( .. v37, , )
()
serverClipboardSet = (arg2)
v37 =
str9 = arg2
v38 = (str9)
v39 = setclipboard
v40 = v39 toclipboard set_clipboard
(v40) ==
(v40, v38)
v41 =
() ==
ok, result = ()
ok (result) ==
v41 = result
value = (v41, )
(value) == (value.set) ==
(value.set, v38)
copy_current_server_id = (arg2)
v37 = (JobId)
v37
(, , )
()
str9 = (arg2):()
str10, str11
str9 ~= str9 ~=
str9 ==
str10 = v37:(, )
str11 =
str10 = (PlaceId, v37)
str11 =
str10 = v37
str11 =
(str10)
(, , )
()
(, str11 .. , )
parse_join_server_target = (arg2)
v37 = (arg2)
v37 ==
v38 = (v37)
v38
(v38.PlaceId), (v38.JobId), v38.Name
match = v37:()
match2 = v37:()
match match2
v39 = (match2)
v39
(match), v39, (match)
v39 = (v37)
v39
i, v40 (savedServers)
(v40.JobId) == v39
(v40.PlaceId), v39, v40.Name
(PlaceId), v39, (PlaceId)
savedServerStatusText = (arg2)
arg2
arg2.Status ==
arg2.Status ==
savedServerSetStatus = (arg2, arg3, status)
v37 = (arg2, arg3)
v37
v37.Status = status
()
refresh_saved_commands
.(refresh_saved_commands)
serverTeleportStateKey =
serverTeleportState = {pending = , connection = }
(()
genv2 = ()
v37 = genv2[serverTeleportStateKey]
(v37) == v37.connection
(()
v37.connection:()
)
genv2[serverTeleportStateKey] = serverTeleportState
)
serverTeleportFailureMessage = (arg2, arg3)
v37 =
str9 = arg3
v38 = (str9)
arg2 == .TeleportResult.GameFull
.. v38 ..
arg2 == .TeleportResult.GameEnded
.. v38 ..
arg2 == .TeleportResult.GameNotFound
.. v38 ..
arg2 == .TeleportResult.Unauthorized
.. v38 ..
arg2 == .TeleportResult.Failure
v39 =
name = arg2 arg2.Name
.. (name)
serverTeleportState.connection = (TeleportService.TeleportInitFailed, (arg2, arg3, arg4, arg5, arg6)
arg2 ~= LocalPlayer
pending = serverTeleportState.pending
pending
serverInstanceId = arg6 arg6.ServerInstanceId pending pending.JobId
num3 = (arg5)
num4 = num3 pending (pending.PlaceId) (PlaceId)
name = pending pending.Name
serverInstanceId
v37 = (serverInstanceId)
str9 = v37 (serverInstanceId)
serverInstanceId = str9
arg3 == .TeleportResult.GameEnded serverInstanceId
(num4, serverInstanceId, )
arg3 == .TeleportResult.GameNotFound serverInstanceId
(num4, serverInstanceId, )
v37 = (arg3, name)
str9 = v37
arg4 arg4 ~= arg3 ~= .TeleportResult.GameFull arg3 ~= .TeleportResult.GameEnded arg3 ~= .TeleportResult.GameNotFound arg3 ~= .TeleportResult.Unauthorized arg3 ~= .TeleportResult.Failure
str9 = v37 .. .. (arg4)
( .. (name), str9, )
red_anim
()
serverTeleportState.pending =
)
join_saved_server = (arg2)
serverTeleportState.pending =
v37, v38, v39 = (arg2)
v37 v38
(v37) == (PlaceId) v38 == (JobId)
( .. (arg2), , )
()
v40 = (v37, v38)
name = v40 v40.Name v39 (v37)
( .. (arg2), .. (name) .. .. (v37) .. , )
serverTeleportState.pending = {
Name = (name),
PlaceId = (v37),
JobId = (v38),
}
ok, result = (()
TeleportService:((v37), (v38), LocalPlayer)
)
ok
serverTeleportState.pending =
v41 = add_line
str9 = .. (arg2)
str10 = result .. (result)
(str9, .. str10, )
red_anim
()
( .. (arg2), , )
()
show_saved_servers = ()
(, .. (#savedServers), )
#savedServers ==
add_secondary_line
(, )
i, v37 (savedServers)
v38 = (v37)
str9 = (v37.Name)
v39 = (v37.PlaceId)
str10 = tostring(v37.JobId)
local str11 = v38 and " (" .. v38 .. ")" or ""
local str12 = str9 .. " [" .. v39 .. "] | " .. str10 .. str11
if v38 then
add_line(".servers", str12, true)
elseif add_secondary_line then
add_secondary_line(".servers", str12)
else
add_line(".servers", str12, false)
end
end
return true
end
load_saved_servers()
get_char = function()
local character_ = LocalPlayer.Character
local result = character_ or LocalPlayer.CharacterAdded:Wait()
return result
end
get_root = function()
local v37 = get_char()
local humanoidRootPart = v37 and v37:FindFirstChild("HumanoidRootPart")
return humanoidRootPart
end
get_hum = function()
local v37 = get_char()
local humanoid_ = v37 and v37:FindFirstChildOfClass("Humanoid")
return humanoid_
end
char = function(arg2)
local character_ = arg2 and arg2.Character
return character_
end
hum = function(arg2)
local v37 = char(arg2)
local humanoid_ = v37 and v37:FindFirstChildOfClass("Humanoid")
return humanoid_
end
root = function(arg2)
local v37 = char(arg2)
local humanoidRootPart = v37 and v37:FindFirstChild("HumanoidRootPart")
return humanoidRootPart
end
local v37 = autoRespawnState
local v38 = v37
if not v37 then
local tbl11 = {}
v38 = tbl11
tbl11.enabled = false
tbl11.pos = nil
tbl11.neutralPos = nil
tbl11.pendingNeutralReturn = false
tbl11.lastTeam = ""
tbl11.charConn = nil
tbl11.diedConn = nil
tbl11.arrestedConn = nil
tbl11.teamConn = nil
tbl11.token = 0
tbl11.isArrested = false
tbl11.maxReturnTicks = 18
tbl11.pendingReturn = nil
tbl11.pendingReturnToken = nil
tbl11.pendingReturnReason = nil
tbl11.manualBusy = false
tbl11.manualBusyReason = nil
tbl11.manualBusyId = 0
tbl11.gunManualOp = nil
tbl11.returnDelay = 0
end
autoRespawnState = v38
autoRespawnDisconnectDied = function()
if autoRespawnState.diedConn then
pcall(function()
autoRespawnState.diedConn:Disconnect()
end)
autoRespawnState.diedConn = nil
end
end
autoRespawnShouldSave = function()
local team = LocalPlayer.Team
local name = team and LocalPlayer.Team.Name or ""
local flag10 = name == "Guards" or name == "Inmates"
return flag10
end
autoRespawnShouldReturn = function()
local team = LocalPlayer.Team
local name = team and LocalPlayer.Team.Name or ""
local flag10 = name ~= "Criminals"
return flag10
end
autoRespawnIsUnsafeY = function(arg2)
local num3 = tonumber(arg2)
if not num3 then
return true
end
if num3 <= -5 then
return true
end
if num3 >= 130 then
return true
end
return false
end
autoRespawnIsIgnoredRayPart = function(arg2)
if not arg2 then
return true
end
if arg2 == floor or arg2 == floor2 or arg2 == floor3 then
return true
end
if tostring(arg2.Name) == "StunPart" then
return true
end
local model = arg2:FindFirstAncestorOfClass("Model")
if model and model:FindFirstChildOfClass("Humanoid") then
return true
end
return false
end
autoRespawnGroundCFrame = function(arg2)
if not arg2 then
return nil
end
local position = arg2.Position
local filterDescendantsInstances = {LocalPlayer.Character}
if floor then
table.insert(filterDescendantsInstances, floor)
end
if floor2 then
table.insert(filterDescendantsInstances, floor2)
end
if floor3 then
table.insert(filterDescendantsInstances, floor3)
end
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = filterDescendantsInstances
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.IgnoreWater = true
local hit = Workspace:Raycast(position, vector(0, -600, 0), raycastParams)
if not hit or not hit.Instance or autoRespawnIsIgnoredRayPart(hit.Instance) then
return nil
end
local n4 = hit.Position.Y + 3
if autoRespawnIsUnsafeY(n4) then
return nil
end
local v39, v40 = arg2.CFrame:ToOrientation()
return cframe(position.X, n4, position.Z) * CFrame.Angles(0, v40, 0)
end
autoRespawnResolveSaveCFrame = function(arg2)
if not arg2 or not arg2.Parent then
return nil
end
local position = arg2.Position
if position.Y <= -5 then
return nil
end
if position.Y >= 70 then
return autoRespawnGroundCFrame(arg2)
end
if not autoRespawnIsUnsafeY(position.Y) then
return arg2.CFrame
end
return nil
end
autoRespawnValidReturnCFrame = function(arg2)
if typeof(arg2) ~= "CFrame" then
return false
end
local flag10
if autoRespawnIsUnsafeY(arg2.Position.Y) then
flag10 = false
else
flag10 = true
end
return flag10
end
autoRespawnQueueReturn = function(pendingReturn, arg2, arg3)
if not autoRespawnState or not autoRespawnState.enabled then
return false
end
if not autoRespawnValidReturnCFrame(pendingReturn) then
return false
end
autoRespawnState.pendingReturn = pendingReturn
local v39 = autoRespawnState
local token = arg2 or autoRespawnState.token
v39.pendingReturnToken = token
local v40 = autoRespawnState
local v41 = tostring
local str9 = arg3 or "command"
v40.pendingReturnReason = v41(str9)
return true
end
autoRespawnApplyReturn = function(cFrame, arg2, arg3)
if not autoRespawnState or not autoRespawnState.enabled then
return false
end
if arg2 and autoRespawnState.token ~= arg2 then
return false
end
if not autoRespawnValidReturnCFrame(cFrame) then
return false
end
if autoRespawnState.manualBusy ~= true and gunRunning ~= true then
local num3 = tonumber(autoRespawnState.maxReturnTicks)
local n4 = num3 or 14
for i = 1, n4 do
if not autoRespawnState.enabled or arg2 and autoRespawnState.token ~= arg2 then
break
end
if autoRespawnState.manualBusy ~= true and gunRunning ~= true then
local character_ = LocalPlayer.Character
local humanoid_ = character_ and character_:FindFirstChildOfClass("Humanoid")
local humanoidRootPart = character_ and character_:FindFirstChild("HumanoidRootPart")
if not character_ or not humanoid_ or not humanoidRootPart or humanoid_.Health <= 0 then
break
end
pcall(function()
humanoidRootPart.AssemblyLinearVelocity = Vector3.zero
humanoidRootPart.AssemblyAngularVelocity = Vector3.zero
humanoidRootPart.CFrame = cFrame
end)
RunService.RenderStepped:Wait()
continue
end
local v39 = autoRespawnQueueReturn
local str9 = arg3 or "manual command"
v39(cFrame, arg2, str9)
return false
end
if not arg2 or autoRespawnState.token == arg2 then
autoRespawnState.pos = nil
autoRespawnState.pendingReturn = nil
autoRespawnState.pendingReturnToken = nil
autoRespawnState.pendingReturnReason = nil
autoRespawnState.isArrested = false
end
return true
end
local v39 = autoRespawnQueueReturn
local str9 = arg3 or "manual command"
v39(cFrame, arg2, str9)
return false
end
autoRespawnTryQueuedReturn = function(arg2)
if not autoRespawnState or not autoRespawnState.enabled then
return false
end
if autoRespawnState.manualBusy == true or gunRunning == true then
return false
end
local pendingReturn = autoRespawnState.pendingReturn
local pos = pendingReturn or autoRespawnState.pos
local pendingReturnToken = autoRespawnState.pendingReturnToken
local token = pendingReturnToken or autoRespawnState.token
if not pos then
return false
end
local v39 = autoRespawnApplyReturn
local pendingReturnReason = arg2 or autoRespawnState.pendingReturnReason or "command"
return v39(pos, token, pendingReturnReason)
end
autoRespawnManualStart = function(arg2)
if not autoRespawnState or not autoRespawnState.enabled then
return nil
end
local v39 = autoRespawnState
local manualBusyId = autoRespawnState.manualBusyId
local n4 = manualBusyId or 0
v39.manualBusyId = n4 + 1
autoRespawnState.manualBusy = true
local v40 = autoRespawnState
local v41 = tostring
local str9 = arg2 or "command"
v40.manualBusyReason = v41(str9)
return autoRespawnState.manualBusyId
end
autoRespawnManualFinish = function(arg2, arg3)
if not autoRespawnState or not autoRespawnState.enabled then
return false
end
if arg2 and arg2 ~= autoRespawnState.manualBusyId then
return false
end
autoRespawnState.manualBusy = false
autoRespawnState.manualBusyReason = nil
task.delay(0.02, function()
local v39 = autoRespawnTryQueuedReturn
local str9 = arg3 or "command"
v39(str9)
end)
return true
end
autoRespawnDirectTpPriority = function(arg2)
if not autoRespawnState then
return false
end
autoRespawnState.pos = nil
autoRespawnState.pendingReturn = nil
autoRespawnState.pendingReturnToken = nil
autoRespawnState.pendingReturnReason = nil
autoRespawnState.pendingNeutralReturn = false
autoRespawnState.manualBusy = false
autoRespawnState.manualBusyReason = nil
return true
end
autoRespawnDeadTpBegin = function(arg2)
if not autoRespawnState then
return
end
autoRespawnState.deadTpSilent = true
autoRespawnState.deadTpNoticeShown = false
local v39 = autoRespawnState
local v40 = tostring
local str9 = arg2 or "unknown"
v39.deadTpName = v40(str9)
end
autoRespawnDeadTpEnd = function()
if not autoRespawnState then
return
end
task.defer(function()
autoRespawnState.deadTpSilent = false
autoRespawnState.deadTpNoticeShown = false
autoRespawnState.deadTpName = nil
end)
end
autoRespawnDeadTpNotify = function(arg2)
if not autoRespawnState or autoRespawnState.deadTpSilent ~= true then
return false
end
if autoRespawnState.deadTpNoticeShown == true then
return true
end
autoRespawnState.deadTpNoticeShown = true
local v39 = tostring
local deadTpName = arg2 or autoRespawnState.deadTpName or "unknown"
local str9 = "position changed after dead to (tp): " .. v39(deadTpName)
if add_secondary_line then
add_secondary_line(".autore", str9)
elseif add_line then
add_line(".autore", str9, false)
end
return true
end
autoRespawnHandleCharacter = function(arg2)
if not autoRespawnState.enabled or not arg2 then
return
end
autoRespawnDisconnectDied()
local humanoid_ = arg2:WaitForChild("Humanoid", 10)
local humanoidRootPart = arg2:WaitForChild("HumanoidRootPart", 10)
if not humanoid_ or not humanoidRootPart then
return
end
local pos = autoRespawnState.pos
local isArrested = autoRespawnState.isArrested
local token = autoRespawnState.token
if cfg.auto_respawn_neutral == true and autoRespawnState.pendingNeutralReturn and autoRespawnState.neutralPos then
pos = autoRespawnState.neutralPos
autoRespawnState.pendingNeutralReturn = false
autoRespawnState.neutralPos = nil
elseif cfg.auto_respawn_neutral ~= true then
autoRespawnState.pendingNeutralReturn = false
autoRespawnState.neutralPos = nil
end
local v39 = autoRespawnShouldReturn()
local v40 = v39 or isArrested
local flag10 = pos and autoRespawnState.enabled and autoRespawnState.token == token and v40 and autoRespawnValidReturnCFrame(pos) and autoRespawnState.manualBusy ~= true and gunRunning ~= true
if flag10 then
pcall(function()
humanoidRootPart.AssemblyLinearVelocity = Vector3.zero
humanoidRootPart.AssemblyAngularVelocity = Vector3.zero
humanoidRootPart.CFrame = pos
end)
end
task.spawn(function()
local num3 = tonumber(autoRespawnState.returnDelay)
local n4 = num3 or 0
if n4 > 0 then
task.wait(n4)
end
if pos and autoRespawnState.enabled and autoRespawnState.token == token and v40 and autoRespawnValidReturnCFrame(pos) then
if autoRespawnState.manualBusy ~= true and gunRunning ~= true then
autoRespawnApplyReturn(pos, token, "autorespawn")
return
end
local v41 = autoRespawnQueueReturn
local v42 = pos
local manualBusyReason = autoRespawnState.manualBusyReason
local str9 = manualBusyReason or "command"
v41(v42, token, str9)
return
end
if autoRespawnState.token == token then
autoRespawnState.pos = nil
autoRespawnState.pendingReturn = nil
autoRespawnState.pendingReturnToken = nil
autoRespawnState.pendingReturnReason = nil
autoRespawnState.isArrested = false
end
end)
autoRespawnState.diedConn = fn2(humanoid_.Died, function()
if not autoRespawnState.enabled then
return
end
if autoRespawnState.isArrested then
return
end
if autoRespawnShouldSave() and humanoidRootPart and humanoidRootPart.Parent then
autoRespawnState.pos = autoRespawnResolveSaveCFrame(humanoidRootPart)
autoRespawnState.pendingReturn = nil
autoRespawnState.pendingReturnToken = nil
autoRespawnState.pendingReturnReason = nil
else
autoRespawnState.pos = nil
autoRespawnState.pendingReturn = nil
autoRespawnState.pendingReturnToken = nil
autoRespawnState.pendingReturnReason = nil
end
end)
end
autoRespawnStart = function(arg2)
if autoRespawnState.enabled then
return true
end
autoRespawnState.enabled = true
local v39 = autoRespawnState
v39.token = v39.token + 1
autoRespawnState.pos = nil
autoRespawnState.isArrested = false
autoRespawnState.neutralPos = nil
autoRespawnState.pendingNeutralReturn = false
autoRespawnState.pendingReturn = nil
autoRespawnState.pendingReturnToken = nil
autoRespawnState.pendingReturnReason = nil
autoRespawnState.manualBusy = false
autoRespawnState.manualBusyReason = nil
autoRespawnState.gunManualOp = nil
if autoRespawnState.charConn then
pcall(function()
autoRespawnState.charConn:Disconnect()
end)
autoRespawnState.charConn = nil
end
if autoRespawnState.arrestedConn then
pcall(function()
autoRespawnState.arrestedConn:Disconnect()
end)
autoRespawnState.arrestedConn = nil
end
if autoRespawnState.teamConn then
pcall(function()
autoRespawnState.teamConn:Disconnect()
end)
autoRespawnState.teamConn = nil
end
autoRespawnState.charConn = fn2(LocalPlayer.CharacterAdded, autoRespawnHandleCharacter)
local v40 = autoRespawnState
local team = LocalPlayer.Team
local name = team and LocalPlayer.Team.Name or ""
v40.lastTeam = name
autoRespawnState.teamConn = fn2(LocalPlayer:GetPropertyChangedSignal("Team"), function()
if not autoRespawnState.enabled then
return
end
local team2 = LocalPlayer.Team
local name2 = team2 and LocalPlayer.Team.Name or ""
local lastTeam = autoRespawnState.lastTeam
if cfg.auto_respawn_neutral == true and name2 == "Neutral" and (lastTeam == "Guards" or lastTeam == "Inmates") then
local v41 = get_root()
if v41 then
autoRespawnState.neutralPos = autoRespawnResolveSaveCFrame(v41)
autoRespawnState.pendingNeutralReturn = false
end
elseif cfg.auto_respawn_neutral == true and (name2 == "Guards" or name2 == "Inmates") and lastTeam == "Neutral" then
if autoRespawnState.neutralPos then
autoRespawnState.pendingNeutralReturn = true
end
elseif name2 == "Criminals" or cfg.auto_respawn_neutral ~= true then
autoRespawnState.neutralPos = nil
autoRespawnState.pendingNeutralReturn = false
end
autoRespawnState.lastTeam = name2
end)
local ReplicatedStorage_ = game:GetService("ReplicatedStorage")
if ReplicatedStorage_:FindFirstChild("Remotes") and ReplicatedStorage_.Remotes:FindFirstChild("ClientArrested") then
autoRespawnState.arrestedConn = fn2(ReplicatedStorage_.Remotes.ClientArrested.OnClientEvent, function()
if not autoRespawnState.enabled then
return
end
local character_ = LocalPlayer.Character
if character_ then
local humanoid_ = character_:FindFirstChildOfClass("Humanoid")
local humanoidRootPart = character_:FindFirstChild("HumanoidRootPart")
if humanoid_ and humanoid_.Health > 0 and humanoidRootPart then
autoRespawnState.pos = autoRespawnResolveSaveCFrame(humanoidRootPart)
autoRespawnState.isArrested = true
humanoid_.Health = 0
end
end
end)
end
if LocalPlayer.Character then
task.defer(autoRespawnHandleCharacter, LocalPlayer.Character)
end
featureSet("auto_respawn", true)
cfg.auto_respawn = true
save_cfg()
if not arg2 and add_line then
add_line(".autore on", "autorespawn on", false)
end
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
return true
end
autoRespawnStop = function(arg2)
autoRespawnState.enabled = false
local v39 = autoRespawnState
v39.token = v39.token + 1
autoRespawnState.pos = nil
autoRespawnState.isArrested = false
autoRespawnDisconnectDied()
if autoRespawnState.charConn then
pcall(function()
autoRespawnState.charConn:Disconnect()
end)
autoRespawnState.charConn = nil
end
if autoRespawnState.arrestedConn then
pcall(function()
autoRespawnState.arrestedConn:Disconnect()
end)
autoRespawnState.arrestedConn = nil
end
if autoRespawnState.teamConn then
pcall(function()
autoRespawnState.teamConn:Disconnect()
end)
autoRespawnState.teamConn = nil
end
autoRespawnState.neutralPos = nil
autoRespawnState.pendingNeutralReturn = false
featureSet("auto_respawn", false)
cfg.auto_respawn = false
save_cfg()
if not arg2 and add_line then
add_line(".autore off", "autorespawn off", false)
end
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
return true
end
autoRespawnSet = function(arg2, arg3)
if arg2 == true then
return autoRespawnStart(arg3)
end
return autoRespawnStop(arg3)
end
autoRespawnNeutralSet = function(arg2, arg3)
local autoRespawnNeutral = arg2 == true
cfg.auto_respawn_neutral = autoRespawnNeutral
featureSet("auto_respawn_neutral", autoRespawnNeutral)
save_cfg()
if not autoRespawnNeutral then
autoRespawnState.neutralPos = nil
autoRespawnState.pendingNeutralReturn = false
end
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
if not arg3 and add_line then
local v39 = add_line
local str9 = autoRespawnNeutral and "on" or "off"
local str10 = ".aneutral " .. str9
local str11 = autoRespawnNeutral and "on" or "off"
v39(str10, "autorespawn neutral save " .. str11, false)
end
return true
end
autoRespawnNeutralCommand = function(arg2)
local v39 = tostring
local str9 = arg2 or ""
local str10 = v39(str9):lower():gsub("^%s+", ""):gsub("%s+$", "")
if str10 == "on" or str10 == "true" or str10 == "1" then
return autoRespawnNeutralSet(true, false)
end
if str10 == "off" or str10 == "false" or str10 == "0" then
return autoRespawnNeutralSet(false, false)
end
add_line(".aneutral", "use .aneutral on/off", true)
red_anim()
return false
end
autoRespawnCommand = function(arg2)
local v39 = tostring
local str9 = arg2 or ""
local str10 = v39(str9):lower():gsub("^%s+", ""):gsub("%s+$", "")
if str10 == "on" or str10 == "true" or str10 == "1" then
return autoRespawnSet(true, false)
end
if str10 == "off" or str10 == "false" or str10 == "0" then
return autoRespawnSet(false, false)
end
add_line(".autore", "use .autore on/off", true)
red_anim()
return false
end
task.defer(function()
task.wait(0.35)
local v39 = featureGet
local flag10 = cfg.auto_respawn == true
if v39("auto_respawn", flag10) then
autoRespawnStart(true)
end
end)
wallState = {enabled = false, spawners = {}}
local n4 = cframe(0, 2, -1.5) * CFrame.Angles(math.rad(90), math.rad(90), 0)
wallDisconnect = function()
fn3(wallState.conn)
wallState.conn = nil
end
wallRefreshSpawners = function()
local spawners = wallState.spawners
table.clear(spawners)
local prisonItems = Workspace:FindFirstChild("Prison_ITEMS")
local buttons = prisonItems and prisonItems:FindFirstChild("buttons")
if not buttons then
return spawners
end
for i, descendant in ipairs(buttons:GetDescendants()) do
if descendant:IsA("BasePart") and descendant.Name == "Car Spawner" then
spawners[#spawners + 1] = descendant
end
end
return spawners
end
wallNearSpawner = function(arg2)
local spawners = wallState.spawners
local v39 = spawners
if #spawners == 0 then
v39 = wallRefreshSpawners()
end
for i = #v39, 1, -1 do
local v40 = v39[i]
if not v40.Parent then
table.remove(v39, i)
continue
end
local n5 = v40.Position - arg2
if n5:Dot(n5) <= 400 then
return true
end
end
return false
end
wallFindBox = function()
local carContainer = Workspace:FindFirstChild("CarContainer")
local box = carContainer and carContainer:FindFirstChild("Box", true) or nil
return box
end
wallStart = function(arg2)
if wallState.enabled then
return true
end
wallState.enabled = true
wallState.last = 0
wallState.box = wallFindBox()
wallRefreshSpawners()
wallDisconnect()
wallState.conn = fn2(RunService.Heartbeat, function()
if not wallState.enabled then
return
end
local character_ = LocalPlayer.Character
local humanoidRootPart = character_ and character_:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then
return
end
local cFrame = humanoidRootPart.CFrame * n4
local box = wallState.box
local box2 = box
local n5 = box and box.Parent and box.Position - cFrame.Position
local now2 = os.clock()
if (not n5 or n5:Dot(n5) > 25) and now2 - wallState.last >= 0.5 then
wallState.last = now2
if wallNearSpawner(humanoidRootPart.Position) then
wallState.box = wallFindBox()
box2 = wallState.box
end
end
if box2 and box2.Parent then
box2.CFrame = cFrame
box2.AssemblyLinearVelocity = Vector3.zero
box2.AssemblyAngularVelocity = Vector3.zero
end
end)
save_feature_cfg("wall", "wall", true)
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
if not arg2 then
if add_secondary_line then
add_secondary_line(".shield on", "shield on (you need to spawn a car)")
elseif add_line then
add_line(".shield on", "shield on (you need to spawn a car)", false)
end
end
return true
end
wallStop = function(arg2)
wallState.enabled = false
wallState.box = nil
table.clear(wallState.spawners)
wallDisconnect()
save_feature_cfg("wall", "wall", false)
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
if not arg2 and add_line then
add_line(".shield off", "shield off", false)
end
return true
end
wallSet = function(arg2, arg3)
if arg2 == true then
return wallStart(arg3)
end
return wallStop(arg3)
end
wallCommand = function(arg2)
local v39 = parse_on_off(arg2)
if v39 ~= nil then
return wallSet(v39, false)
end
if add_line then
add_line(".shield", "use .shield on/off", true)
end
if red_anim then
red_anim()
end
return false
end
fn4(function()
local v39 = wallState
wallState.enabled = false
v39.box = nil
table.clear(wallState.spawners)
wallDisconnect()
end)
task.defer(function()
task.wait(0.45)
local v39 = featureGet
local flag10 = cfg.wall == true
if v39("wall", flag10) then
wallStart(true)
end
end)
autoArrestState = {
enabled = false,
token = 0,
busy = false,
nextArrest = 0,
debounce = {},
}
autoArrestIsGuard = function()
local team = LocalPlayer.Team
local flag10 = team and LocalPlayer.Team.Name == "Guards"
return flag10
end
autoArrestTargetValid = function(arg2, arg3)
if not arg2 or arg2 == LocalPlayer then
return nil
end
local team = arg2.Team
local name = team and arg2.Team.Name
if name ~= "Inmates" and name ~= "Criminals" then
return nil
end
local character_ = arg2.Character
local humanoidRootPart = character_ and character_:FindFirstChild("HumanoidRootPart")
local humanoid_ = character_ and character_:FindFirstChildOfClass("Humanoid")
if not humanoidRootPart or not humanoid_ or humanoid_.Health <= 0 or character_:GetAttribute("Arrested") then
return nil
end
if name == "Inmates" and character_:GetAttribute("Hostile") and not character_:GetAttribute("Tased") then
return nil
end
local n5 = humanoidRootPart.Position - arg3
local flag10 = n5:Dot(n5) <= 64 and arg2 or nil
return flag10
end
autoArrestStep = function(arg2)
local v39 = autoArrestState
local now2 = os.clock()
if not v39.enabled or v39.token ~= arg2 or v39.busy or now2 < v39.nextArrest or not autoArrestIsGuard() then
return
end
local character_ = LocalPlayer.Character
local humanoidRootPart = character_ and character_:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then
return
end
local remotes = ReplicatedStorage:FindFirstChild("Remotes")
local arrestPlayer = remotes and remotes:FindFirstChild("ArrestPlayer")
if not arrestPlayer then
return
end
for i, v40 in ipairs(tbl4) do
local v41 = autoArrestTargetValid(v40, humanoidRootPart.Position)
if v41 then
v39.busy = true
v39.nextArrest = now2 + 0.25
task.spawn(function()
local ok, result = pcall(arrestPlayer.InvokeServer, arrestPlayer, v41, 1)
if v39.token ~= arg2 then
return
end
if ok and result then
v39.nextArrest = os.clock() + 7
end
v39.busy = false
end)
return
end
continue
end
end
autoArrestStart = function(arg2)
local v39 = autoArrestState
if v39.enabled then
return true
end
v39.enabled = true
v39.busy = false
v39.nextArrest = 0
v39.token = v39.token + 1
local token = v39.token
save_feature_cfg("auto_arrest", "auto_arrest", true)
if not arg2 and add_line then
add_line(".autoarrest on", "autoarrest on", false)
end
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
task.spawn(function()
while flag and v39.enabled and v39.token == token do
if autoArrestIsGuard() then
autoArrestStep(token)
local character_ = LocalPlayer.Character
local tool = character_ and character_:FindFirstChildWhichIsA("Tool")
local v40 = tool
local wait = task.wait
local n5 = v40 and v40.Name == "Handcuffs" and 0.05 or 0.1
wait(n5)
else
task.wait(0.45)
end
end
end)
return true
end
autoArrestStop = function(arg2)
local v39 = autoArrestState
v39.enabled = false
v39.busy = false
v39.nextArrest = 0
v39.token = v39.token + 1
save_feature_cfg("auto_arrest", "auto_arrest", false)
if not arg2 and add_line then
add_line(".autoarrest off", "autoarrest off", false)
end
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
return true
end
autoArrestSet = function(arg2, arg3)
if arg2 == true then
return autoArrestStart(arg3)
end
return autoArrestStop(arg3)
end
autoArrestCommand = function(arg2)
local v39 = parse_on_off(arg2)
if v39 ~= nil then
return autoArrestSet(v39, false)
end
if add_line then
add_line(".autoarrest", "use .autoarrest/.ar on/off", true)
end
if red_anim then
red_anim()
end
return false
end
fn4(function()
local v39 = autoArrestState
autoArrestState.enabled = false
v39.busy = false
local v40 = autoArrestState
v40.token = v40.token + 1
end)
task.defer(function()
task.wait(0.35)
local v39 = featureGet
local flag10 = cfg.auto_arrest == true
if v39("auto_arrest", flag10) then
autoArrestStart(true)
end
end)
v6 = "HumanoidRootPart"
local Part = fn5("Part", Workspace, "Size", vector(50, 1, 50), "Anchored", true, "Transparency", 0.9, "Color", color(0, 255, 0))
floor = Part
local Part2 = fn5("Part", Workspace, "Name", "StunPart", "Size", vector(2, 0.1, 2), "Anchored", true, "Transparency", 0.94, "Color", color(0, 255, 0), "CastShadow", false)
floor2 = Part2
local Part3 = fn5("Part", Workspace, "Name", "StunPart", "Size", vector(2, 0.1, 2), "Anchored", true, "Transparency", 0.94, "Color", color(0, 255, 0), "CastShadow", false)
floor3 = Part3
fn4(function()
for i, v39 in ipairs({floor, floor2, floor3}) do
if v39 and v39.Parent then
v39:Destroy()
end
end
end)
fn2(RunService.RenderStepped, function()
local character_ = LocalPlayer.Character
local humanoidRootPart = character_ and character_:FindFirstChild("HumanoidRootPart")
if humanoidRootPart then
local position = humanoidRootPart.Position
floor.Position = vector(position.X, floor.Position.Y, position.Z)
floor2.Position = vector(position.X, floor2.Position.Y, position.Z)
floor3.Position = vector(position.X, floor3.Position.Y, position.Z)
end
end)
ReloadGunInBackground = function(arg2)
if arg2 then
local num3 = tonumber(arg2:GetAttribute("Local_ReloadSession"))
local n5 = num3 or 0
if n5 <= 0 then
local attributes = arg2:GetAttributes()
local behavior = attributes.Behavior
local maxAmmo = attributes.MaxAmmo
local n6 = maxAmmo or 0
local storedAmmo = attributes.StoredAmmo
local n7 = storedAmmo or 0
if behavior == "Sniper" and n7 <= 0 then
return
end
local now2 = tick()
arg2:SetAttribute("Local_ReloadSession", now2)
local funcReload = ReplicatedStorage:WaitForChild("GunRemotes"):WaitForChild("FuncReload")
task.spawn(function()
funcReload:InvokeServer()
end)
local reloadTime = attributes.ReloadTime
local n8 = reloadTime or 2
task.wait(n8)
if arg2 and arg2:GetAttribute("Local_ReloadSession") == now2 then
if behavior == "Sniper" then
arg2:SetAttribute("Local_CurrentAmmo", 1)
else
arg2:SetAttribute("Local_CurrentAmmo", n6)
end
arg2:SetAttribute("Local_ReloadSession", 0)
end
return
end
end
end
getBestTool = function()
local v39 = nil
local n5 = -1
local children = LocalPlayer.Backpack:GetChildren()
if LocalPlayer.Character then
for k, child in pairs(LocalPlayer.Character:GetChildren()) do
table.insert(children, child)
end
end
for k, child in pairs(children) do
if child:IsA("Tool") and child:GetAttribute("ToolType") == "Gun" then
local attribute = child:GetAttribute("Local_CurrentAmmo")
local attribute2 = attribute or child:GetAttribute("CurrentAmmo") or 0
local flag10 = child:GetAttribute("Local_ReloadSession") ~= 0
local attribute3 = child:GetAttribute("Damage")
local n6 = attribute3 or 10
if attribute2 > 0 and not flag10 then
local n7 = n6 * attribute2
if n5 < n7 then
n5 = n7
v39 = child
end
end
end
end
return v39
end
local tbl11 = {
rules = {
M4A1 = {priority = 1, minimum = 2},
["AK-47"] = {priority = 1, minimum = 0},
MP5 = {priority = 1, minimum = 0},
FAL = {priority = 1, minimum = 2},
["Remington 870"] = {priority = 2, minimum = 0},
M9 = {priority = 3, minimum = 1},
Revolver = {priority = 4, minimum = 1},
},
watched = setmetatable({}, {__mode = "k"}),
reloads = setmetatable({}, {__mode = "k"}),
switches = setmetatable({}, {__mode = "k"}),
}
autoWeaponState = tbl11
killWeaponBusy = 0
autoWeaponAmmo = function(arg2)
local v39 = tonumber
local attribute = arg2
if arg2 then
local attribute2 = arg2:GetAttribute("Local_CurrentAmmo")
attribute = attribute2 or arg2:GetAttribute("CurrentAmmo")
end
local v40 = v39(attribute)
local n5 = v40 or 0
return n5
end
autoWeaponSession = function(arg2)
local v39 = tonumber
local attribute = arg2 and arg2:GetAttribute("Local_ReloadSession")
local v40 = v39(attribute)
local n5 = v40 or 0
return n5
end
autoWeaponKillBusy = function()
local flag10 = killWeaponBusy > 0 or killExecutionBusy == true
return flag10
end
autoWeaponBestSwitch = function()
local backpack = LocalPlayer:FindFirstChildOfClass("Backpack")
local v39 = nil
local priority = nil
if not backpack then
return nil
end
for i, child in ipairs(backpack:GetChildren()) do
local isTool = child:IsA("Tool")
local v40 = isTool and autoWeaponState.rules[child.Name]
if v40 and autoWeaponSession(child) <= 0 then
local v41 = autoWeaponAmmo(child)
if v40.minimum < v41 and (not priority or v40.priority < priority) then
priority = v40.priority
v39 = child
end
end
end
return v39
end
autoWeaponTrySwitch = function(arg2, arg3)
if not cfg.auto_switch or autoWeaponKillBusy() then
return
end
if arg2.Parent ~= LocalPlayer.Character or arg3 <= 0 then
return
end
if autoWeaponState.switches[arg2] == arg3 then
return
end
autoWeaponState.switches[arg2] = arg3
task.delay(0.05, function()
local character_ = LocalPlayer.Character
local humanoid_ = character_ and character_:FindFirstChildOfClass("Humanoid")
if flag and cfg.auto_switch and not autoWeaponKillBusy() and autoWeaponState.switches[arg2] == arg3 and autoWeaponSession(arg2) == arg3 and humanoid_ and humanoid_.Health > 0 and arg2.Parent == character_ then
local v39 = autoWeaponBestSwitch()
if not v39 or not pcall(humanoid_.EquipTool, humanoid_, v39) then
autoWeaponState.switches[arg2] = nil
end
return
end
if autoWeaponState.switches[arg2] == arg3 then
autoWeaponState.switches[arg2] = nil
end
end)
end
autoWeaponBeginReload = function(arg2, arg3)
if autoWeaponState.reloads[arg2] then
return
end
autoWeaponState.reloads[arg2] = true
task.spawn(function()
if flag and cfg.auto_reload and not autoWeaponKillBusy() and arg2.Parent == LocalPlayer.Character and autoWeaponSession(arg2) <= 0 and autoWeaponAmmo(arg2) <= arg3.minimum then
ReloadGunInBackground(arg2)
end
autoWeaponState.reloads[arg2] = nil
end)
end
autoWeaponEvaluate = function(arg2)
local isTool = arg2 and arg2:IsA("Tool") and autoWeaponState.rules[arg2.Name]
if not isTool or not arg2.Parent then
return
end
local v39 = autoWeaponSession(arg2)
if v39 > 0 then
autoWeaponTrySwitch(arg2, v39)
return
end
autoWeaponState.switches[arg2] = nil
if cfg.auto_reload and not autoWeaponKillBusy() and arg2.Parent == LocalPlayer.Character and autoWeaponAmmo(arg2) <= isTool.minimum then
autoWeaponBeginReload(arg2, isTool)
end
end
autoWeaponWatch = function(arg2)
if not arg2 or not arg2:IsA("Tool") or autoWeaponState.watched[arg2] then
return
end
autoWeaponState.watched[arg2] = true
fn2(arg2.AttributeChanged, function(arg3)
if arg3 == "Local_CurrentAmmo" or arg3 == "CurrentAmmo" or arg3 == "Local_ReloadSession" then
autoWeaponEvaluate(arg2)
end
end)
task.defer(autoWeaponEvaluate, arg2)
end
autoWeaponScan = function()
local backpack = LocalPlayer:FindFirstChildOfClass("Backpack")
local character_ = LocalPlayer.Character
local v39, v40, v41 = ipairs({backpack, character_})
local v42 = v41
local v43 = v39
local v44 = v40
while true do
local v45, v46 = v43(v44, v42)
if v45 == nil then
break
end
v42 = v45
if v46 then
for i, child in ipairs(v46:GetChildren()) do
autoWeaponWatch(child)
end
v42 = v45
end
end
if character_ then
for i, child in ipairs(character_:GetChildren()) do
autoWeaponEvaluate(child)
end
end
end
autoWeaponBind = function(arg2)
if not arg2 then
return
end
for i, child in ipairs(arg2:GetChildren()) do
autoWeaponWatch(child)
end
fn2(arg2.ChildAdded, function(arg3)
autoWeaponWatch(arg3)
task.defer(autoWeaponScan)
end)
end
autoWeaponSet = function(arg2, arg3, arg4)
local flag10 = arg3 == true
cfg[arg2] = flag10
featureSet(arg2, flag10)
save_cfg()
if flag10 then
task.defer(autoWeaponScan)
end
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
if not arg4 and add_line then
local str9 = arg2 == "auto_reload" and "autoreload" or "autoswitch"
local v39 = add_line
local str10 = flag10 and "on" or "off"
v39("." .. str9 .. " " .. str10, nil, false)
end
return true
end
autoReloadSet = function(arg2, arg3)
return autoWeaponSet("auto_reload", arg2, arg3)
end
autoSwitchSet = function(arg2, arg3)
return autoWeaponSet("auto_switch", arg2, arg3)
end
autoWeaponCommandText = function(arg2, arg3)
local match, v39 = arg2:match("^%.(autoreload)%s*(.*)$")
local v40 = match
local v41 = v39
if not match then
local match2, v42 = arg2:match("^%.(autoswitch)%s*(.*)$")
v40 = match2
v41 = v42
end
if not v40 then
return false
end
local v42 = parse_on_off(v41)
if v42 == nil then
add_line("." .. v40, "use ." .. v40 .. " on/off", true)
if arg3 ~= "chat" then
red_anim()
end
return true
end
local flag10 = v40 == "autoreload" and autoReloadSet or autoSwitchSet
if flag10(v42, false) and arg3 ~= "chat" then
collapse()
end
return true
end
autoWeaponBind(LocalPlayer:FindFirstChildOfClass("Backpack"))
autoWeaponBind(LocalPlayer.Character)
fn2(LocalPlayer.ChildAdded, function(arg2)
if arg2:IsA("Backpack") then
autoWeaponBind(arg2)
task.defer(autoWeaponScan)
end
end)
fn2(LocalPlayer.CharacterAdded, function(arg2)
autoWeaponBind(arg2)
task.defer(autoWeaponScan)
end)
task.defer(autoWeaponScan)
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.IgnoreWater = true
isPathClear = function(arg2, arg3, filterDescendantsInstances)
raycastParams.FilterDescendantsInstances = filterDescendantsInstances
local hit = Workspace:Raycast(arg2, arg3 - arg2, raycastParams)
if hit and hit.Instance ~= Workspace.Terrain then
return false
end
return true
end
end
local fn17, fn18, tbl6, flag5
do
local tbl7 = {0}
for i = 0.25, 20, 0.25 do
tbl7[#tbl7 + 1] = i
tbl7[#tbl7 + 1] = -i
end
local v7 = vector(891, 40, 2339)
local function fn19(arg2)
local flag6 = arg2.X >= 849 and arg2.X <= 894 and arg2.Z >= 2319 and arg2.Z <= 2369 and arg2.Y < 40
return flag6
end
local function fn20(arg2, arg3)
local n2 = -14
local n3 = -18
if arg2.Y > 40 then
n2 = 44
n3 = 40
end
local n4 = arg3 - v7
if fn19(arg3) or fn19(arg2) or arg3.Y < 40 and arg2.Y >= 40 and n4:Dot(n4) <= 3025 then
n2 = 44
n3 = 40
end
return vector(arg2.X, n2, arg2.Z), n3, vector(arg2.X, 180, arg2.Z), 175
end
local function fn21(arg2, arg3)
local tbl8 = {arg2, arg3}
for i, child in ipairs(Workspace:GetChildren()) do
if child.Name == "StunPart" then
tbl8[#tbl8 + 1] = child
end
end
return tbl8
end
local function fn22(arg2, arg3, arg4)
for i, v8 in ipairs(tbl7) do
local v9 = vector(arg3.X, arg3.Y + v8, arg3.Z)
if isPathClear(arg2, v9, arg4) then
return v9
end
end
return nil
end
fn17 = function(arg2, arg3)
local character_ = arg2 and arg2.Character
local v8 = character_ and character_:FindFirstChild(v6)
local character_2 = LocalPlayer.Character
local v9 = character_2 and character_2:FindFirstChild(v6)
local muzzle = arg3 and arg3:FindFirstChild("Muzzle")
if not v8 or not v9 or not muzzle then
return nil
end
local position = v8.Position
local v10 = fn21(character_2, character_)
local v11 = fn22(muzzle.Position, position, v10)
if v11 then
return "direct", v11
end
local v12, v13, v14, v15 = fn20(v9.Position, position)
if fn22(v12, position, v10) then
return "below", nil, v12, v13
end
if not fn22(v14, position, v10) then
return "impossible"
end
return "above", nil, v14, v15
end
local tbl8 = {
["table1.Part"] = true,
["Model.FileCabinets.filecabinet.Part"] = true,
["Model.cubicle.Part"] = true,
["Model.Locker.Model.Part"] = true,
Part = true,
["Gun racks.Part"] = true,
["Model.Model.Part"] = true,
["Model.Model.Wedge"] = true,
["Model.Part"] = true,
["Model.Table.Part"] = true,
["GuardBooth.Stonewall"] = true,
["island.Part"] = true,
["counter.Part"] = true,
["oven.Part"] = true,
["shelves.Part"] = true,
["boxes.Part"] = true,
["vents.kitchenfan.Part"] = true,
["Prison_Cellblock.Cells_B.cell2.Toilet.Part"] = true,
["Prison_Cellblock.Cells_B.cell2.Sink.Part"] = true,
["desk.Part"] = true,
["bookshelf.Part"] = true,
["Couch.Wedge"] = true,
["Couch.Part"] = true,
["Model.Model.Model.Block"] = true,
["Model.furniture_reception.Part"] = true,
["Plant.Model.Union"] = true,
["vending machine.Model.Part"] = true,
}
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.IgnoreWater = true
local tbl9 = {
vector(0, 0, 0),
vector(0.75, 0, 0),
vector(-0.75, 0, 0),
vector(0, 0, 0.75),
vector(0, 0, -0.75),
}
local obj = setmetatable({}, {__mode = "k"})
local function fn23(arg2)
local parent = arg2
local tbl10 = {}
while parent and parent ~= Workspace do
table.insert(tbl10, 1, parent.Name)
parent = parent.Parent
end
local str = parent == Workspace and table.concat(tbl10, ".") or nil
return str
end
local function fn24(arg2)
local v8 = obj[arg2]
if v8 ~= nil then
return v8
end
local v9 = fn23(arg2)
local flag6 = tbl8[v9] == true or v9 ~= nil and v9:match("^Prison_Cellblock%.Cells_[^%.]+%.cell%d+%.Toilet%.Part$") ~= nil or v9 ~= nil and v9:match("^Prison_Cellblock%.Cells_[^%.]+%.cell%d+%.Sink%.Part$") ~= nil
obj[arg2] = flag6
local v10 = flag6
return v10
end
fn18 = function(arg2)
local character_ = arg2 and arg2.Character
local humanoid_ = character_ and character_:FindFirstChildOfClass("Humanoid")
local humanoidRootPart = character_ and character_:FindFirstChild("HumanoidRootPart")
if not humanoid_ or humanoid_.Health <= 0 or not humanoidRootPart then
return false
end
local filterDescendantsInstances = {character_}
for i, player in ipairs(Players:GetPlayers()) do
local character_2 = player.Character
if character_2 and character_2 ~= character_ then
filterDescendantsInstances[#filterDescendantsInstances + 1] = character_2
end
end
for i, v8 in ipairs({floor, floor2, floor3}) do
if v8 then
filterDescendantsInstances[#filterDescendantsInstances + 1] = v8
end
end
raycastParams.FilterDescendantsInstances = filterDescendantsInstances
for i, v8 in ipairs(tbl9) do
local hit = Workspace:Raycast(humanoidRootPart.Position + v8 + vector(0, 0.75, 0), vector(0, -10, 0), raycastParams)
if hit and fn24(hit.Instance) then
return true
end
end
return false
end
KillPlr = function(victim_, arg2, arg3, arg4)
_G.Victim = victim_
local character_ = victim_.Character
if character_ and character_:FindFirstChild(v6) and character_:FindFirstChild("Humanoid") then
local humanoidRootPart = character_.HumanoidRootPart
local humanoid_ = character_.Humanoid
local character_2 = LocalPlayer.Character
local humanoid_2 = character_2 and character_2:FindFirstChild("Humanoid")
local v8 = character_2 and character_2:FindFirstChild(v6)
if humanoid_2 and v8 then
local n2 = v8.Position - humanoidRootPart.Position
if n2:Dot(n2) > 902500 then
_G.Victim = nil
return false
end
local cFrame = v8.CFrame
local n3 = 0
local n4 = 0
local v9, muzzle, v10, v11, v12, v13, pos, n5, shootEvent, tbl10, attribute, attribute2
repeat
RunService.Heartbeat:Wait()
v9 = getBestTool()
if v9 then
if v9.Parent ~= character_2 then
humanoid_2:EquipTool(v9)
task.wait(0.1)
end
muzzle = v9:FindFirstChild("Muzzle")
if muzzle then
v10, v11, v12, v13 = fn17(victim_, v9)
if v10 == "below" then
floor.Position = vector(v12.X, v13, v12.Z)
v8.CFrame = cframe(v12)
task.wait(0.1)
elseif v10 == "above" then
floor2.Position = vector(v12.X, v13, v12.Z)
floor3.Position = vector(v12.X, v13, v12.Z)
v8.CFrame = cframe(v12)
task.wait(0.1)
elseif v10 == "impossible" then
if arg2 < n4 then
break
end
n4 = n4 + 1
task.wait(0.1)
elseif v10 == "direct" and v11 then
if v11 then
pos = v9.Name:find("870")
n5 = (pos or v9:GetAttribute("Behavior") == "Shotgun") and 5 or 1
shootEvent = ReplicatedStorage:WaitForChild("GunRemotes"):WaitForChild("ShootEvent")
tbl10 = {}
for i = 1, n5 do
table.insert(tbl10, {muzzle.Position, v11, humanoidRootPart})
end
shootEvent:FireServer(tbl10)
n3 = n3 + n5
attribute = v9:GetAttribute("Local_CurrentAmmo")
attribute2 = attribute or v9:GetAttribute("CurrentAmmo")
v9:SetAttribute("Local_CurrentAmmo", attribute2 - 1)
if v9:GetAttribute("Local_CurrentAmmo") <= 0 then
task.spawn(ReloadGunInBackground, v9)
humanoid_2:UnequipTools()
end
task.wait(0.03)
end
else
task.wait(0.1)
end
end
else
task.wait(0.1)
end
until humanoid_.Health <= 0 or victim_.Parent ~= Players or victim_.Character ~= character_ or LocalPlayer.Character ~= character_2 or not humanoid_2.Parent or humanoid_2.Health <= 0 or playerHasForceField(victim_) or arg4 and not arg4() or not arg3 and n3 >= 15
if v8 then
v8.CFrame = cFrame
end
_G.Victim = nil
local flag6 = humanoid_.Health <= 0
return flag6
end
_G.Victim = nil
return false
end
_G.Victim = nil
return false
end
if antiFlingV1 then
local v8 = pairs
local smartSavedProps = antiFlingV1.smartSavedProps
local tbl10 = smartSavedProps or {}
for k, v9 in v8(tbl10) do
if k and v9 then
pcall(function()
k.CanCollide = v9.CanCollide
k.CanTouch = v9.CanTouch
end)
end
end
local v9 = pairs
local originals = antiFlingV1.originals
local tbl11 = originals or {}
for k, v10 in v9(tbl11) do
if k and v10 ~= nil then
pcall(function()
k.CanCollide = v10
end)
end
end
local v10 = pairs
local smartSeatConnections = antiFlingV1.smartSeatConnections
local tbl12 = smartSeatConnections or {}
for k, v11 in v10(tbl12) do
if v11 then
pcall(function()
v11:Disconnect()
end)
end
end
for i, v11 in ipairs({antiFlingV1.descendantConn, antiFlingV1.childRemovedConn}) do
if v11 then
pcall(function()
v11:Disconnect()
end)
end
end
end
local tbl10 = {enabled = false}
local v8 = cfg
local antiFlingMode = v8 and cfg.anti_fling_mode or "normal"
tbl10.mode = antiFlingMode
tbl10.smartPermaGhostedCars = setmetatable({}, {__mode = "k"})
tbl10.smartLastCarPos = setmetatable({}, {__mode = "k"})
tbl10.protected = {}
tbl10.originals = {}
tbl10.descendantConn = nil
tbl10.loopId = 0
tbl10.localCarCache = nil
tbl10.localCarCacheAt = 0
tbl10.disabledSeatsCount = 0
tbl10.seatOriginals = {}
tbl10.disabledSeats = {}
tbl10.smartSavedProps = setmetatable({}, {__mode = "k"})
tbl10.smartConnectedSeats = setmetatable({}, {__mode = "k"})
tbl10.smartSeatConnections = setmetatable({}, {__mode = "k"})
tbl10.smartSeatCars = setmetatable({}, {__mode = "k"})
tbl10.smartCarSeats = setmetatable({}, {__mode = "k"})
tbl10.smartCarParts = setmetatable({}, {__mode = "k"})
tbl10.smartRegisteredCars = setmetatable({}, {__mode = "k"})
tbl10.smartGhostedCars = setmetatable({}, {__mode = "k"})
tbl10.smartCarLastProcess = setmetatable({}, {__mode = "k"})
tbl10.smartScanDelay = 8
tbl10.smartMaintainDelay = 0.5
tbl10.smartLastScan = 0
tbl10.seatScanDelay = 5
tbl10.seatLastScan = 0
tbl10.childRemovedConn = nil
antiFlingV1 = tbl10
local v9 = antiFlingV15TargetCars
local v10 = v9
if not v9 then
local tbl11 = {}
v10 = tbl11
tbl11.Sedan = true
tbl11.Squad = true
end
antiFlingV15TargetCars = v10
antiFlingV2GetCarContainer = function()
return Workspace:FindFirstChild("CarContainer")
end
antiFlingV2GetCarFromObject = function(arg2)
local v11 = antiFlingV2GetCarContainer()
if not v11 then
return nil
end
local parent = arg2
while flag and parent and parent ~= v11 do
if parent.Parent == v11 then
return parent
end
parent = parent.Parent
end
return nil
end
antiFlingV2GetPlayerFromSeat = function(arg2)
if not arg2 or not arg2:IsA("VehicleSeat") then
return nil
end
local occupant = arg2.Occupant
if not occupant then
return nil
end
local parent = occupant.Parent
if not parent then
return nil
end
return Players:GetPlayerFromCharacter(parent)
end
antiFlingV2SavePart = function(arg2, arg3)
if not arg2 or not arg3 or not arg3:IsA("BasePart") then
return nil
end
local v11 = antiFlingV1
local smartSavedProps = antiFlingV1.smartSavedProps
local smartSavedProps2 = smartSavedProps or setmetatable({}, {__mode = "k"})
v11.smartSavedProps = smartSavedProps2
local v12 = antiFlingV1
local smartCarParts = antiFlingV1.smartCarParts
local smartCarParts2 = smartCarParts or setmetatable({}, {__mode = "k"})
v12.smartCarParts = smartCarParts2
local v13 = antiFlingV1.smartSavedProps[arg3]
if v13 then
return v13
end
local tbl11 = {
Car = arg2,
CanCollide = arg3.CanCollide,
CanTouch = arg3.CanTouch,
}
antiFlingV1.smartSavedProps[arg3] = tbl11
local v14 = antiFlingV1.smartCarParts[arg2]
local v15 = v14
if not v14 then
local tbl12 = {}
v15 = tbl12
antiFlingV1.smartCarParts[arg2] = tbl12
end
v15[arg3] = tbl11
return tbl11
end
antiFlingV2MakePartGhost = function(arg2, arg3)
if not antiFlingV1.enabled then
return
end
if not arg3 or not arg3:IsA("BasePart") then
return
end
antiFlingV2SavePart(arg2, arg3)
if arg3.CanCollide ~= false then
arg3.CanCollide = false
end
if arg3.CanTouch ~= false then
arg3.CanTouch = false
end
end
antiFlingV2RestorePart = function(arg2)
local v11 = antiFlingV1
local smartSavedProps = antiFlingV1.smartSavedProps
local smartSavedProps2 = smartSavedProps or setmetatable({}, {__mode = "k"})
v11.smartSavedProps = smartSavedProps2
local v12 = antiFlingV1.smartSavedProps[arg2]
if not v12 then
return
end
if arg2 then
pcall(function()
arg2.CanCollide = v12.CanCollide
arg2.CanTouch = v12.CanTouch
end)
end
local smartCarParts = antiFlingV1.smartCarParts
local v13 = smartCarParts and antiFlingV1.smartCarParts[v12.Car]
if v13 then
v13[arg2] = nil
end
antiFlingV1.smartSavedProps[arg2] = nil
end
antiFlingV2ForceRestoreCar = function(arg2)
if not arg2 then
return
end
if antiFlingV1.smartGhostedCars then
antiFlingV1.smartGhostedCars[arg2] = nil
end
if antiFlingV1.smartPermaGhostedCars then
antiFlingV1.smartPermaGhostedCars[arg2] = nil
end
if antiFlingV1.smartCarLastProcess then
antiFlingV1.smartCarLastProcess[arg2] = nil
end
local smartCarParts = antiFlingV1.smartCarParts
local v11 = smartCarParts and antiFlingV1.smartCarParts[arg2]
if not v11 then
return
end
for k in pairs(v11) do
antiFlingV2RestorePart(k)
end
antiFlingV1.smartCarParts[arg2] = nil
end
antiFlingV2GetDriverState = function(arg2)
if not arg2 or not arg2.Parent then
return false, false, false
end
local v11 = antiFlingV1GetLocalCar
local v12 = v11 and antiFlingV1GetLocalCar() or nil
local flag6 = v12 == arg2
local flag7 = false
local flag8 = false
local character_ = LocalPlayer.Character
local v13 = antiFlingV1
local smartCarSeats = antiFlingV1.smartCarSeats
local smartCarSeats2 = smartCarSeats or setmetatable({}, {__mode = "k"})
v13.smartCarSeats = smartCarSeats2
local v14 = antiFlingV1.smartCarSeats[arg2]
local v15 = v14
if not v14 then
local obj2 = setmetatable({}, {__mode = "k"})
v15 = obj2
antiFlingV1.smartCarSeats[arg2] = obj2
for i, descendant in ipairs(arg2:GetDescendants()) do
if descendant:IsA("VehicleSeat") then
obj2[descendant] = true
end
end
end
for k in pairs(v15) do
if k and k.Parent then
if k.Occupant then
flag8 = true
if k.Occupant.Parent == character_ then
flag6 = true
else
flag7 = true
end
end
else
v15[k] = nil
end
end
return flag6, flag7, flag8
end
antiFlingV2IsMyCar = function(arg2)
return antiFlingV2GetDriverState(arg2)
end
antiFlingV2HasOtherDriver = function(arg2)
local v11, v12 = antiFlingV2GetDriverState(arg2)
return v12
end
antiFlingV2HasAnyDriver = function(arg2)
local v11, v12
v12, v12, v11 = antiFlingV2GetDriverState(arg2)
return v11
end
antiFlingV2GhostCar = function(arg2)
if not antiFlingV1.enabled or not arg2 or not arg2.Parent then
return
end
local v11 = antiFlingV1
local smartGhostedCars = antiFlingV1.smartGhostedCars
local smartGhostedCars2 = smartGhostedCars or setmetatable({}, {__mode = "k"})
v11.smartGhostedCars = smartGhostedCars2
local flag6 = antiFlingV1.smartGhostedCars[arg2] == true
antiFlingV1.smartGhostedCars[arg2] = true
if not flag6 then
for i, descendant in ipairs(arg2:GetDescendants()) do
if descendant:IsA("BasePart") then
antiFlingV2MakePartGhost(arg2, descendant)
end
end
return
end
local smartCarParts = antiFlingV1.smartCarParts
local v12 = smartCarParts and antiFlingV1.smartCarParts[arg2]
local v13 = pairs
local tbl11 = v12 or {}
for k in v13(tbl11) do
if k and k.Parent then
if k.CanCollide ~= false then
k.CanCollide = false
end
if k.CanTouch ~= false then
k.CanTouch = false
end
end
end
end
antiFlingV2RestoreCar = function(arg2)
antiFlingV2ForceRestoreCar(arg2)
end
antiFlingV2NormalizeMode = function(arg2)
if arg2 == nil then
return nil
end
local str = tostring(arg2):lower():gsub("^%s+", ""):gsub("%s+$", "")
local str2 = str
if str == "" then
return nil
end
if str == "agressive" then
str2 = "aggressive"
end
if str2 == "smart" then
str2 = "normal"
end
local flag6 = (str2 == "normal" or str2 == "aggressive") and str2 or nil
return flag6
end
antiFlingV2Mode = function()
local v11 = antiFlingV2NormalizeMode
local v12 = cfg
local antiFlingMode2 = v12 and cfg.anti_fling_mode or antiFlingV1.mode
local v13 = v11(antiFlingMode2)
local mode = v13 or "normal"
antiFlingV1.mode = mode
if cfg then
cfg.anti_fling_mode = mode
end
return mode
end
antiFlingV2GetWheels = function(arg2)
local wheels = arg2 and arg2:FindFirstChild("Wheels")
local tbl11 = {}
if not wheels then
return tbl11
end
for i, child in ipairs(wheels:GetChildren()) do
if child:IsA("BasePart") then
table.insert(tbl11, child)
end
end
return tbl11
end
antiFlingV2MaxRwdWheelDistance = function(arg2)
local rwd = arg2 and arg2:FindFirstChild("RWD")
if not rwd then
return 0
end
local n2 = 0
for i, v11 in ipairs(antiFlingV2GetWheels(arg2)) do
local n3 = v11.Position - rwd.Position
local v12 = n3:Dot(n3)
if n2 < v12 then
n2 = v12
end
end
return math.sqrt(n2)
end
antiFlingV2GetCarPosition = function(arg2)
local rwd = arg2 and arg2:FindFirstChild("RWD")
if rwd then
return rwd.Position
end
local v11 = nil
local v12 = ipairs
local descendants = arg2 and arg2:GetDescendants() or {}
for k, descendant in v12(descendants) do
if descendant:IsA("VehicleSeat") then
v11 = descendant
break
end
continue
end
if v11 then
return v11.Position
end
local body_ = arg2 and arg2:FindFirstChild("Body")
local basePart = body_ and body_:FindFirstChildWhichIsA("BasePart", true)
local position = basePart and basePart.Position or nil
return position
end
antiFlingV2IsTeleportCar = function(arg2)
if not antiFlingV2IsMyCar(arg2) then
local v11 = antiFlingV2GetCarPosition(arg2)
if not v11 then
return false
end
local v12 = antiFlingV1
local smartLastCarPos = antiFlingV1.smartLastCarPos
local smartLastCarPos2 = smartLastCarPos or setmetatable({}, {__mode = "k"})
v12.smartLastCarPos = smartLastCarPos2
local v13 = antiFlingV1.smartLastCarPos[arg2]
antiFlingV1.smartLastCarPos[arg2] = v11
if not v13 then
return false
end
local n2 = v11 - v13
local v14 = antiFlingV2MaxRwdWheelDistance(arg2)
local flag6 = n2:Dot(n2) >= 1225 and v14 <= 18
return flag6
end
antiFlingV2ClearLocalCarState(arg2)
return false
end
antiFlingV2HasAbnormalBehavior = function(arg2)
if not arg2 or not arg2.Parent then
return false
end
if not antiFlingV2IsMyCar(arg2) then
if antiFlingV2MaxRwdWheelDistance(arg2) > 20 then
return true
end
if not antiFlingV2IsTeleportCar(arg2) then
return false
end
return true
end
antiFlingV2ClearLocalCarState(arg2)
return false
end
antiFlingV2ClearLocalCarState = function(arg2)
if not arg2 then
return
end
if antiFlingV1.smartGhostedCars and antiFlingV1.smartGhostedCars[arg2] then
antiFlingV2ForceRestoreCar(arg2)
end
if antiFlingV1.smartPermaGhostedCars then
antiFlingV1.smartPermaGhostedCars[arg2] = nil
end
if antiFlingV1.smartGhostedCars then
antiFlingV1.smartGhostedCars[arg2] = nil
end
if antiFlingV1.smartCarLastProcess then
antiFlingV1.smartCarLastProcess[arg2] = nil
end
if antiFlingV1.smartLastCarPos then
antiFlingV1.smartLastCarPos[arg2] = nil
end
end
antiFlingV2IsPermaGhosted = function(arg2)
local v11 = antiFlingV1
local smartPermaGhostedCars = antiFlingV1.smartPermaGhostedCars
local smartPermaGhostedCars2 = smartPermaGhostedCars or setmetatable({}, {__mode = "k"})
v11.smartPermaGhostedCars = smartPermaGhostedCars2
local flag6 = arg2 and antiFlingV1.smartPermaGhostedCars[arg2] == true
return flag6
end
antiFlingV2ProcessCar = function(arg2, arg3)
if not antiFlingV1.enabled or not arg2 or not arg2.Parent then
return
end
local v11 = antiFlingV1
local smartGhostedCars = antiFlingV1.smartGhostedCars
local smartGhostedCars2 = smartGhostedCars or setmetatable({}, {__mode = "k"})
v11.smartGhostedCars = smartGhostedCars2
local v12 = antiFlingV1
local smartCarLastProcess = antiFlingV1.smartCarLastProcess
local smartCarLastProcess2 = smartCarLastProcess or setmetatable({}, {__mode = "k"})
v12.smartCarLastProcess = smartCarLastProcess2
local now = os.clock()
local v13 = antiFlingV1.smartCarLastProcess[arg2]
if not arg3 and v13 and now - v13 < 0.6 then
return
end
antiFlingV1.smartCarLastProcess[arg2] = now
if antiFlingV1.mode == "aggressive" then
antiFlingV2GhostCar(arg2)
return
end
local v14, v15 = antiFlingV2GetDriverState(arg2)
if not v14 and v15 then
antiFlingV2GhostCar(arg2)
return
end
if antiFlingV1.smartGhostedCars[arg2] == true then
antiFlingV2ForceRestoreCar(arg2)
end
end
antiFlingV2ConnectSeat = function(arg2, arg3)
if not arg2 or not arg2:IsA("VehicleSeat") then
return
end
local v11 = arg3 or antiFlingV2GetCarFromObject(arg2)
local v12 = v11
if not v11 then
return
end
local v13 = antiFlingV1
local smartConnectedSeats = antiFlingV1.smartConnectedSeats
local smartConnectedSeats2 = smartConnectedSeats or setmetatable({}, {__mode = "k"})
v13.smartConnectedSeats = smartConnectedSeats2
local v14 = antiFlingV1
local smartSeatConnections = antiFlingV1.smartSeatConnections
local smartSeatConnections2 = smartSeatConnections or setmetatable({}, {__mode = "k"})
v14.smartSeatConnections = smartSeatConnections2
local v15 = antiFlingV1
local smartSeatCars = antiFlingV1.smartSeatCars
local smartSeatCars2 = smartSeatCars or setmetatable({}, {__mode = "k"})
v15.smartSeatCars = smartSeatCars2
local v16 = antiFlingV1
local smartCarSeats = antiFlingV1.smartCarSeats
local smartCarSeats2 = smartCarSeats or setmetatable({}, {__mode = "k"})
v16.smartCarSeats = smartCarSeats2
local v17 = antiFlingV1.smartCarSeats[v12]
local v18 = v17
if not v17 then
local obj2 = setmetatable({}, {__mode = "k"})
v18 = obj2
antiFlingV1.smartCarSeats[v12] = obj2
end
v18[arg2] = true
antiFlingV1.smartSeatCars[arg2] = v12
if antiFlingV1.smartConnectedSeats[arg2] then
return
end
antiFlingV1.smartConnectedSeats[arg2] = true
local v19 = fn2(arg2:GetPropertyChangedSignal("Occupant"), function()
if not antiFlingV1.enabled then
return
end
local smartSeatCars3 = antiFlingV1.smartSeatCars
local v19 = smartSeatCars3 and antiFlingV1.smartSeatCars[arg2] or antiFlingV2GetCarFromObject(arg2)
if v19 then
antiFlingV2ProcessCar(v19, true)
end
end)
antiFlingV1.smartSeatConnections[arg2] = v19
end
antiFlingV2DisconnectCarSeats = function(arg2)
local smartCarSeats = antiFlingV1.smartCarSeats
local v11 = smartCarSeats and antiFlingV1.smartCarSeats[arg2]
local v12 = pairs
local tbl11 = v11 or {}
for k in v12(tbl11) do
local smartSeatConnections = antiFlingV1.smartSeatConnections
local v13 = smartSeatConnections and antiFlingV1.smartSeatConnections[k]
if v13 then
pcall(function()
v13:Disconnect()
end)
end
if antiFlingV1.smartSeatConnections then
antiFlingV1.smartSeatConnections[k] = nil
end
if antiFlingV1.smartConnectedSeats then
antiFlingV1.smartConnectedSeats[k] = nil
end
if antiFlingV1.smartSeatCars then
antiFlingV1.smartSeatCars[k] = nil
end
end
if antiFlingV1.smartCarSeats then
antiFlingV1.smartCarSeats[arg2] = nil
end
if antiFlingV1.smartRegisteredCars then
antiFlingV1.smartRegisteredCars[arg2] = nil
end
end
antiFlingV2RegisterCar = function(arg2)
local v11 = antiFlingV2GetCarContainer()
if not arg2 or not v11 or arg2.Parent ~= v11 then
return
end
local v12 = antiFlingV1
local smartRegisteredCars = antiFlingV1.smartRegisteredCars
local smartRegisteredCars2 = smartRegisteredCars or setmetatable({}, {__mode = "k"})
v12.smartRegisteredCars = smartRegisteredCars2
if antiFlingV1.smartRegisteredCars[arg2] then
return
end
antiFlingV1.smartRegisteredCars[arg2] = true
local v13 = antiFlingV1
local smartCarSeats = antiFlingV1.smartCarSeats
local smartCarSeats2 = smartCarSeats or setmetatable({}, {__mode = "k"})
v13.smartCarSeats = smartCarSeats2
local smartCarSeats3 = antiFlingV1.smartCarSeats
local v14 = antiFlingV1.smartCarSeats[arg2]
local obj2 = v14 or setmetatable({}, {__mode = "k"})
smartCarSeats3[arg2] = obj2
for i, descendant in ipairs(arg2:GetDescendants()) do
if descendant:IsA("VehicleSeat") then
antiFlingV2ConnectSeat(descendant, arg2)
elseif descendant:IsA("BasePart") and antiFlingV1.smartGhostedCars and antiFlingV1.smartGhostedCars[arg2] then
antiFlingV2MakePartGhost(arg2, descendant)
end
end
antiFlingV2ProcessCar(arg2, true)
end
antiFlingV2ScanCars = function()
if not antiFlingV1.enabled then
return
end
local v11 = antiFlingV2GetCarContainer()
if not v11 then
return
end
if not antiFlingV1.descendantConn or not antiFlingV1.descendantConn.Connected then
antiFlingV2ConnectContainer()
end
for i, child in ipairs(v11:GetChildren()) do
antiFlingV2RegisterCar(child)
antiFlingV2ProcessCar(child, false)
end
end
antiFlingV2MaintainGhostedCars = function()
if not antiFlingV1.enabled then
return
end
local v11 = pairs
local smartGhostedCars = antiFlingV1.smartGhostedCars
local tbl11 = smartGhostedCars or {}
for k, v12 in v11(tbl11) do
if v12 then
if k and k.Parent then
antiFlingV2ProcessCar(k, true)
else
antiFlingV2ForceRestoreCar(k)
antiFlingV2DisconnectCarSeats(k)
end
end
end
end
antiFlingV2ConnectContainer = function()
if antiFlingV1.descendantConn then
pcall(function()
antiFlingV1.descendantConn:Disconnect()
end)
antiFlingV1.descendantConn = nil
end
if antiFlingV1.childRemovedConn then
pcall(function()
antiFlingV1.childRemovedConn:Disconnect()
end)
antiFlingV1.childRemovedConn = nil
end
local v11 = antiFlingV2GetCarContainer()
if not v11 then
return
end
antiFlingV1.descendantConn = fn2(v11.DescendantAdded, function(arg2)
if not antiFlingV1.enabled then
return
end
local v12 = antiFlingV2GetCarFromObject(arg2)
if not v12 then
return
end
antiFlingV2RegisterCar(v12)
if arg2:IsA("VehicleSeat") then
antiFlingV2ConnectSeat(arg2, v12)
antiFlingV2ProcessCar(v12, true)
elseif arg2:IsA("BasePart") and antiFlingV1.smartGhostedCars[v12] then
antiFlingV2MakePartGhost(v12, arg2)
end
end)
antiFlingV1.childRemovedConn = fn2(v11.ChildRemoved, function(arg2)
antiFlingV2ForceRestoreCar(arg2)
antiFlingV2DisconnectCarSeats(arg2)
if antiFlingV1.smartLastCarPos then
antiFlingV1.smartLastCarPos[arg2] = nil
end
end)
end
antiFlingV2RestoreAllSmartCars = function()
local v11 = antiFlingV1
local smartSavedProps = antiFlingV1.smartSavedProps
local smartSavedProps2 = smartSavedProps or setmetatable({}, {__mode = "k"})
v11.smartSavedProps = smartSavedProps2
local n2 = 0
for k in pairs(antiFlingV1.smartSavedProps) do
antiFlingV2RestorePart(k)
local n3 = n2 + 1
n2 = n3
if n3 % 250 == 0 then
task.wait()
end
end
antiFlingV1.smartGhostedCars = setmetatable({}, {__mode = "k"})
antiFlingV1.smartPermaGhostedCars = setmetatable({}, {__mode = "k"})
antiFlingV1.smartCarLastProcess = setmetatable({}, {__mode = "k"})
antiFlingV1.smartCarParts = setmetatable({}, {__mode = "k"})
end
antiFlingV2DisconnectSmartSeats = function()
local v11 = antiFlingV1
local smartSeatConnections = antiFlingV1.smartSeatConnections
local smartSeatConnections2 = smartSeatConnections or setmetatable({}, {__mode = "k"})
v11.smartSeatConnections = smartSeatConnections2
for k, smartSeatConnection in pairs(antiFlingV1.smartSeatConnections) do
if smartSeatConnection then
pcall(function()
smartSeatConnection:Disconnect()
end)
end
antiFlingV1.smartSeatConnections[k] = nil
end
antiFlingV1.smartConnectedSeats = setmetatable({}, {__mode = "k"})
antiFlingV1.smartSeatConnections = setmetatable({}, {__mode = "k"})
antiFlingV1.smartSeatCars = setmetatable({}, {__mode = "k"})
antiFlingV1.smartCarSeats = setmetatable({}, {__mode = "k"})
antiFlingV1.smartRegisteredCars = setmetatable({}, {__mode = "k"})
end
antiFlingV15IsTargetSeat = function(arg2)
if not arg2 or arg2.ClassName ~= "Seat" then
return false
end
local v11 = antiFlingV2GetCarContainer()
if not v11 then
return false
end
local parent = arg2
while flag and parent and parent ~= v11 do
if parent.Parent == v11 and antiFlingV15TargetCars[parent.Name] then
local body_ = parent:FindFirstChild("Body")
local v12 = body_ and arg2:IsDescendantOf(body_)
return v12
end
parent = parent.Parent
end
return false
end
antiFlingV15DisableSeat = function(arg2)
return false
end
antiFlingV15ScanSeats = function() end
antiFlingV15RestoreSeats = function()
antiFlingV1.seatOriginals = {}
antiFlingV1.disabledSeats = {}
end
antiFlingV1GetWheelCar = function(arg2)
if not arg2 or not arg2:IsA("BasePart") then
return nil
end
local parent = arg2.Parent
while flag and parent and parent ~= Workspace and parent ~= workspace do
if tostring(parent.Name):lower() == "wheels" then
return parent.Parent
end
parent = parent.Parent
end
return nil
end
antiFlingV1GetLocalCar = function()
local now = os.clock()
local localCarCacheAt = antiFlingV1.localCarCacheAt
local n2 = localCarCacheAt or 0
if now - n2 < 0.25 then
local localCarCache = antiFlingV1.localCarCache
local parent = localCarCache and localCarCache.Parent and localCarCache or nil
return parent
end
antiFlingV1.localCarCache = nil
antiFlingV1.localCarCacheAt = now
local ok, localCarCache = pcall(function()
local playerGui = LocalPlayer:FindFirstChildOfClass("PlayerGui")
local screen = playerGui and playerGui:FindFirstChild("Screen")
local carSeat = screen and screen:FindFirstChild("CarSeat")
local value = carSeat and carSeat.Value
if value and value.Parent and value.Parent.Parent then
return value.Parent.Parent
end
local character_ = LocalPlayer.Character
local humanoid_ = character_ and character_:FindFirstChildOfClass("Humanoid")
local seatPart = humanoid_ and humanoid_.SeatPart
if seatPart and seatPart.Parent and seatPart.Parent.Parent and seatPart.Parent.Parent:FindFirstChild("Wheels") then
return seatPart.Parent.Parent
end
if seatPart and seatPart.Parent and seatPart.Parent:FindFirstChild("Wheels") then
return seatPart.Parent
end
return nil
end)
if not ok or not localCarCache or not localCarCache.Parent then
return nil
end
antiFlingV1.localCarCache = localCarCache
return localCarCache
end
antiFlingV1CarIsBeingUsedForFling = function(arg2)
if not arg2 or not flingState or not flingState.CarInAttack then
return false
end
for k, v11 in pairs(flingState.CarInAttack) do
if v11 and v11.car == arg2 then
return true
end
end
return false
end
antiFlingV1ShouldSkipCar = function(arg2)
if not arg2 then
return false
end
local v11 = antiFlingV1GetLocalCar()
local flag6 = v11 and arg2 == v11
if flag6 then
if antiFlingV1CarIsBeingUsedForFling(arg2) then
flag6 = false
else
flag6 = true
end
end
return flag6
end
antiFlingV1ShouldSkipPart = function(arg2)
return antiFlingV1ShouldSkipCar(antiFlingV1GetWheelCar(arg2))
end
antiFlingV1IsWheelPart = function(arg2)
if not arg2 or not arg2:IsA("BasePart") then
return false
end
local v11 = antiFlingV1GetWheelCar(arg2)
if not v11 then
return false
end
return antiFlingV1CarIsBeingUsedForFling(v11)
end
antiFlingV1Protect = function(arg2) end
antiFlingV1ForceProtectCar = function(arg2)
return false
end
antiFlingV1ReleasePart = function(arg2, arg3)
antiFlingV1.protected[arg2] = nil
local v11 = antiFlingV1.originals[arg2]
antiFlingV1.originals[arg2] = nil
if arg3 and arg2 and arg2.Parent and v11 ~= nil then
pcall(function()
arg2.CanCollide = v11
end)
end
end
antiFlingV1ScanOnce = function()
if not antiFlingV1.enabled then
return
end
task.spawn(function()
antiFlingV2ScanCars()
end)
end
antiFlingV1ProtectActiveFlingCars = function() end
antiFlingV1LightMaintain = function() end
antiFlingV1Start = function(arg2)
if not antiFlingV1.enabled then
antiFlingV1.enabled = true
local v11 = antiFlingV1
v11.loopId = v11.loopId + 1
antiFlingV1.mode = "normal"
cfg.anti_fling_mode = "normal"
antiFlingV1.localCarCache = nil
antiFlingV1.localCarCacheAt = 0
antiFlingV1.smartLastScan = 0
antiFlingV1.seatLastScan = 0
antiFlingV1.smartLastCarPos = setmetatable({}, {__mode = "k"})
local v12 = antiFlingV1
local smartGhostedCars = antiFlingV1.smartGhostedCars
local smartGhostedCars2 = smartGhostedCars or setmetatable({}, {__mode = "k"})
v12.smartGhostedCars = smartGhostedCars2
local v13 = antiFlingV1
local smartCarLastProcess = antiFlingV1.smartCarLastProcess
local smartCarLastProcess2 = smartCarLastProcess or setmetatable({}, {__mode = "k"})
v13.smartCarLastProcess = smartCarLastProcess2
local v14 = antiFlingV1
local smartSavedProps = antiFlingV1.smartSavedProps
local smartSavedProps2 = smartSavedProps or setmetatable({}, {__mode = "k"})
v14.smartSavedProps = smartSavedProps2
local v15 = antiFlingV1
local smartConnectedSeats = antiFlingV1.smartConnectedSeats
local smartConnectedSeats2 = smartConnectedSeats or setmetatable({}, {__mode = "k"})
v15.smartConnectedSeats = smartConnectedSeats2
local v16 = antiFlingV1
local smartSeatConnections = antiFlingV1.smartSeatConnections
local smartSeatConnections2 = smartSeatConnections or setmetatable({}, {__mode = "k"})
v16.smartSeatConnections = smartSeatConnections2
local v17 = antiFlingV1
local smartSeatCars = antiFlingV1.smartSeatCars
local smartSeatCars2 = smartSeatCars or setmetatable({}, {__mode = "k"})
v17.smartSeatCars = smartSeatCars2
local v18 = antiFlingV1
local smartCarSeats = antiFlingV1.smartCarSeats
local smartCarSeats2 = smartCarSeats or setmetatable({}, {__mode = "k"})
v18.smartCarSeats = smartCarSeats2
local v19 = antiFlingV1
local smartCarParts = antiFlingV1.smartCarParts
local smartCarParts2 = smartCarParts or setmetatable({}, {__mode = "k"})
v19.smartCarParts = smartCarParts2
local v20 = antiFlingV1
local smartRegisteredCars = antiFlingV1.smartRegisteredCars
local smartRegisteredCars2 = smartRegisteredCars or setmetatable({}, {__mode = "k"})
v20.smartRegisteredCars = smartRegisteredCars2
antiFlingV2ConnectContainer()
antiFlingV2ScanCars()
local loopId = antiFlingV1.loopId
task.spawn(function()
local now = os.clock()
local smartScanDelay = antiFlingV1.smartScanDelay
local n2 = smartScanDelay or 8
local n3 = now + n2
while flag and antiFlingV1.enabled and antiFlingV1.loopId == loopId do
local wait = task.wait
local smartMaintainDelay = antiFlingV1.smartMaintainDelay
local n4 = smartMaintainDelay or 0.5
wait(n4)
if not antiFlingV1.enabled or antiFlingV1.loopId ~= loopId then
break
end
antiFlingV2MaintainGhostedCars()
if n3 <= os.clock() then
antiFlingV2ScanCars()
local now2 = os.clock()
local smartScanDelay2 = antiFlingV1.smartScanDelay
local n5 = smartScanDelay2 or 8
n3 = now2 + n5
end
end
end)
featureSet("anti_fling_v1", true)
cfg.anti_fling_v1 = true
save_cfg()
if not arg2 and add_line then
add_line(".antifling on", "antifling on", false)
end
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
return true
end
antiFlingV2Mode()
antiFlingV2ScanCars()
return true
end
antiFlingV1Stop = function(arg2)
antiFlingV1.enabled = false
local v11 = antiFlingV1
v11.loopId = v11.loopId + 1
antiFlingV1.localCarCache = nil
antiFlingV1.localCarCacheAt = 0
antiFlingV1.smartLastScan = 0
antiFlingV1.seatLastScan = 0
if antiFlingV1.descendantConn then
pcall(function()
antiFlingV1.descendantConn:Disconnect()
end)
antiFlingV1.descendantConn = nil
end
if antiFlingV1.childRemovedConn then
pcall(function()
antiFlingV1.childRemovedConn:Disconnect()
end)
antiFlingV1.childRemovedConn = nil
end
antiFlingV2DisconnectSmartSeats()
antiFlingV2RestoreAllSmartCars()
antiFlingV15RestoreSeats()
local n2 = 0
for k, original in pairs(antiFlingV1.originals) do
if k and k.Parent and original ~= nil then
pcall(function()
k.CanCollide = original
end)
end
local n3 = n2 + 1
n2 = n3
if n3 % 300 == 0 then
task.wait()
end
end
antiFlingV1.protected = {}
antiFlingV1.originals = {}
antiFlingV1.smartSavedProps = setmetatable({}, {__mode = "k"})
antiFlingV1.smartGhostedCars = setmetatable({}, {__mode = "k"})
antiFlingV1.smartCarLastProcess = setmetatable({}, {__mode = "k"})
antiFlingV1.smartLastCarPos = setmetatable({}, {__mode = "k"})
antiFlingV1.smartCarParts = setmetatable({}, {__mode = "k"})
featureSet("anti_fling_v1", false)
cfg.anti_fling_v1 = false
save_cfg()
if not arg2 and add_line then
add_line(".antifling off", "antifling off", false)
end
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
return true
end
antiFlingV1Set = function(arg2, arg3)
antiFlingV2Mode()
if arg2 == true then
return antiFlingV1Start(arg3)
end
return antiFlingV1Stop(arg3)
end
antiFlingV1Command = function(arg2)
local v11 = tostring
local str = arg2 or ""
local str2 = v11(str):lower():gsub("^%s+", ""):gsub("%s+$", "")
if str2 == "on" or str2 == "true" or str2 == "1" then
return antiFlingV1Set(true, false)
end
if str2 == "off" or str2 == "false" or str2 == "0" then
return antiFlingV1Set(false, false)
end
add_line(".antifling", "use .antifling on/off or .af on/off", true)
red_anim()
return false
end
antiFlingV2SetMode = function(arg2, arg3)
local v11 = antiFlingV2NormalizeMode(arg2)
if not v11 then
return false
end
antiFlingV1.mode = v11
cfg.anti_fling_mode = v11
save_cfg()
if antiFlingV1.enabled then
local v12 = antiFlingV2GetCarContainer()
local v13 = ipairs
local children = v12 and v12:GetChildren() or {}
for k, child in v13(children) do
antiFlingV2RegisterCar(child)
antiFlingV2ProcessCar(child, true)
end
end
if refresh_saved_commands then
task.defer(refresh_saved_commands)
end
if not arg3 and add_line then
local v12 = add_line
local str = ".afmode " .. v11
local str2 = v11 == "aggressive" and "impossible to interact with a car" or "antifling mode normal"
v12(str, str2, false)
end
return true
end
antiFlingV2ModeCommand = function(arg2)
local v11 = antiFlingV2NormalizeMode(arg2)
if v11 then
return antiFlingV2SetMode(v11, false)
end
add_line(".afmode", "use .afmode normal/aggressive or .antiflingmode normal/aggressive", true)
red_anim()
return false
end
antiFlingModeCommandText = function(arg2, arg3)
local match = arg2:match("^%.afmode%s+(.+)$")
local match2 = match or arg2:match("^%.antiflingmode%s+(.+)$")
if not match2 and arg2 ~= ".afmode" and arg2 ~= ".antiflingmode" then
return false
end
if antiFlingV2ModeCommand(match2) and arg3 ~= "chat" then
collapse()
end
return true
end
fn4(function()
if not antiFlingV1 then
return
end
antiFlingV1.enabled = false
local v11 = antiFlingV1
v11.loopId = v11.loopId + 1
if antiFlingV1.descendantConn then
pcall(function()
antiFlingV1.descendantConn:Disconnect()
end)
end
if antiFlingV1.childRemovedConn then
pcall(function()
antiFlingV1.childRemovedConn:Disconnect()
end)
end
antiFlingV2DisconnectSmartSeats()
antiFlingV2RestoreAllSmartCars()
end)
task.defer(function()
task.wait(0.35)
local v11 = featureGet
local flag6 = cfg.anti_fling_v1 == true
if v11("anti_fling_v1", flag6) then
antiFlingV1Start(true)
end
end)
local tbl11 = {
Stage = cframe(11.6286936, 223.9959087, 1175.45935, 0.13477385, 0.124517478, -0.983021557, 5.22149934e-10, 0.99207288, 0.125663981, 0.990876377, -0.0169362202, 0.133705482),
Zero = Vector3.zero,
HoodPhysics = PhysicalProperties.new(100, 0, 1, 100, 100),
DeathWait = 12,
OwnershipWait = 3,
ActiveTime = 15,
RadiusDelay = 0.5,
Controlled = {
Prediction = 0.04,
FootOffset = 2.8,
HoodGap = 0.15,
UpVelocity = 18000,
HorizontalGain = 35,
TargetVelocityGain = 2.5,
MaxHorizontalVelocity = 3500,
MaxTrackRadius = 420,
MinTrackY = -250,
MaxTrackY = 230,
},
Aggressive = {
Spin = vector(5200, 6100, 5700),
Offset = vector(3.6, 2.8, 1.8),
Velocity = vector(1800, 1500, 900),
PhaseStep = 1.35,
Prediction = 0.065,
DirectionForce = 15000,
TargetForce = 3.5,
},
Whip = {
PhaseStep = 0.08,
Prediction = 0.045,
HeightOffset = 0.35,
TargetForce = 3.5,
controlled = {
Radius = 4.2,
Depth = 1.8,
SideForce = 26000,
ImpactForce = 12000,
Lift = 9000,
},
aggressive = {
Radius = 5.4,
Depth = 2.4,
SideForce = 38000,
ImpactForce = 18000,
Lift = 6000,
},
},
}
tbl6 = {
Started = "fling started",
Ended = "fling ended",
Stopped = "fling stopped",
LostCar = "lost car",
CarGone = "car disappeared, fling stopped",
PlayerLeft = "player left, fling stopped",
DeathMissing = "death not detected, fling stopped",
OwnershipMissing = "ownership failed, fling stopped",
}
local setsimulationradius_ = genv.setsimulationradius
local v11 = setsimulationradius_ or setsimulationradius
local sethiddenproperty_ = genv.sethiddenproperty
local v12 = sethiddenproperty_ or sethiddenproperty
local function fn25(arg2, arg3)
local v13 = add_line
local flag6 = arg3 == true
v13(".fling", arg2, flag6)
if arg3 then
red_anim()
end
end
local function fn26(arg2)
fn25(arg2, true)
return nil
end
local function fn27(arg2)
local body_ = arg2 and arg2:FindFirstChild("Body")
local colorParts = body_ and body_:FindFirstChild("ColorParts")
local hood = colorParts and colorParts:FindFirstChild("Hood")
local isBasePart = hood and hood:IsA("BasePart") and hood or nil
return isBasePart
end
local function fn28()
if typeof(v11) == "function" then
pcall(v11, math.huge, math.huge)
elseif typeof(v12) == "function" then
pcall(v12, LocalPlayer, "SimulationRadius", math.huge)
end
end
local function fn29(arg2)
local now = os.clock()
if now < arg2 then
return arg2
end
fn28()
return now + tbl11.RadiusDelay
end
local function fn30(arg2)
local flag6
if arg2:IsGrounded() then
flag6 = false
else
flag6 = true
end
if flag6 then
flag6 = arg2.AssemblyRootPart.ReceiveAge == 0
end
return flag6
end
local function fn31(arg2)
local parent = arg2
while parent and parent ~= Workspace do
if parent:IsA("Model") and fn27(parent) then
return parent
end
parent = parent.Parent
end
return nil
end
local function fn32(arg2, arg3)
local tbl12 = {}
local tbl13 = {}
local cFrame = arg3.CFrame
for i, descendant in ipairs(arg2:GetDescendants()) do
if descendant:IsA("BasePart") and not descendant.Anchored then
local assemblyRootPart = descendant.AssemblyRootPart
local v13 = assemblyRootPart or descendant
if v13 and v13.Parent and v13:IsDescendantOf(arg2) and not v13.Anchored and not tbl13[v13] then
tbl13[v13] = true
tbl12[#tbl12 + 1] = {
Root = v13,
HoodOffset = cFrame:ToObjectSpace(v13.CFrame),
OriginalCFrame = v13.CFrame,
}
end
end
end
return tbl12
end
local function fn33(arg2, arg3)
local v13 = arg3
if not v13 then
local tbl12 = {}
for i, descendant in ipairs(arg2:GetDescendants()) do
if descendant:IsA("BasePart") then
local canCollide = descendant.CanCollide
local canTouch = descendant.CanTouch
tbl12[#tbl12 + 1] = descendant
tbl12[#tbl12 + 2] = canCollide
tbl12[#tbl12 + 3] = canTouch
descendant.CanCollide = false
descendant.CanTouch = false
end
end
return tbl12
end
for i = 1, #v13, 3 do
local v14 = v13[i]
if v14 and v14.Parent then
pcall(function()
v14.CanCollide = v13[i + 1]
v14.CanTouch = v13[i + 2]
end)
end
end
end
local function fn34(arg2, arg3, arg4, arg5)
local zero = arg4 or tbl11.Zero
local v13 = zero
local zero2 = arg5 or tbl11.Zero
local v14 = zero2
local flag6 = false
local car = arg2.car
for i, assembly in ipairs(arg2.assemblies) do
local root_ = assembly.Root
if root_ and root_.Parent and root_:IsDescendantOf(car) and not root_.Anchored then
local ok = pcall(function()
root_.CFrame = arg3 * assembly.HoodOffset
root_.AssemblyLinearVelocity = v13
root_.AssemblyAngularVelocity = v14
end)
local v15 = flag6 or ok
flag6 = v15
end
end
return flag6
end
local function fn35(arg2, arg3)
local v13 = vector(arg2.X, 0, arg2.Z)
local n2 = arg3 < v13.Magnitude and v13.Unit * arg3 or v13
return n2
end
local function fn36(arg2, arg3, arg4)
if arg2.hit == "torso" then
return arg3.Position
end
local controlled = tbl11.Controlled
local max = math.max
local footOffset = controlled.FootOffset
local num = tonumber(arg4.HipHeight)
local n2 = num or 0
local v13 = max(footOffset, n2 + arg3.Size.Y * 0.5)
return arg3.Position - vector(0, v13 + controlled.HoodGap, 0)
end
local function fn37(arg2, arg3)
arg2.origin = arg3.Position
arg2.phase = 0
arg2.whipPhase = 0
end
local function fn38(arg2, arg3)
local controlled = tbl11.Controlled
local origin = arg2.origin
local v13 = origin or arg3
arg2.origin = v13
local v14 = fn35(arg3 - v13, controlled.MaxTrackRadius)
return vector(v13.X + v14.X, math.clamp(arg3.Y, controlled.MinTrackY, controlled.MaxTrackY), v13.Z + v14.Z)
end
local function fn39(arg2, arg3, arg4)
local whip = tbl11.Whip
local whipProfile = arg2.whipProfile
arg2.whipPhase = arg2.whipPhase + whip.PhaseStep
local whipPhase = arg2.whipPhase
local assemblyLinearVelocity = arg3.AssemblyLinearVelocity
local v13 = vector(assemblyLinearVelocity.X, 0, assemblyLinearVelocity.Z)
local v14 = fn36(arg2, arg3, arg4)
local rightVector = arg3.CFrame.RightVector
local v15 = vector(rightVector.X, 0, rightVector.Z)
local unit = v15.Magnitude > 0.01 and v15.Unit or vector(1, 0, 0)
local v16 = unit
local v17 = vector(v16.Z, 0, -v16.X)
local n2 = whipPhase % 2
local n3 = n2 <= 1 and n2 or 2 - n2
local n4 = n2 <= 1 and 1 or -1
local n5 = math.pi * n3
local v18 = math.sin(n5)
local v19 = math.cos(n5)
local n6 = v14 + v13 * whip.Prediction + v16 * (-v19 * whipProfile.Radius) - v17 * (v18 * whipProfile.Depth) - vector(0, whip.HeightOffset, 0)
local v20 = n6
if not arg2.aggressive then
v20 = fn38(arg2, n6)
end
local n7 = (v16 * (v18 * whipProfile.Radius) - v17 * (v19 * whipProfile.Depth)) * n4
local unit2 = n7.Magnitude > 0.01 and n7.Unit or v16 * n4
local v21 = unit2
local n8 = v14 - v20
local unit3 = n8.Magnitude > 0.01 and n8.Unit or v17
local v22 = unit3
local n9 = v21 * whipProfile.SideForce * (0.55 + v18 * 0.45) + v22 * whipProfile.ImpactForce + v13 * whip.TargetForce + vector(0, whipProfile.Lift, 0)
local aggressive = arg2.aggressive
local cframe2 = aggressive and CFrame.Angles(math.rad(90), whipPhase * 5.5, whipPhase * 7) or arg2.hoodRotation
return cframe(v20) * cframe2, n9
end
local function fn40(arg2, arg3, arg4)
local controlled = tbl11.Controlled
local assemblyLinearVelocity = arg3.AssemblyLinearVelocity
local v13 = fn36(arg2, arg3, arg4)
local v14 = fn38(arg2, vector(v13.X + assemblyLinearVelocity.X * controlled.Prediction, v13.Y, v13.Z + assemblyLinearVelocity.Z * controlled.Prediction))
local v15 = fn35((v14 - arg2.hood.Position) * controlled.HorizontalGain + assemblyLinearVelocity * controlled.TargetVelocityGain, controlled.MaxHorizontalVelocity)
return cframe(v14) * arg2.hoodRotation, vector(v15.X, controlled.UpVelocity, v15.Z)
end
local function fn41(arg2, arg3, arg4)
local aggressive = tbl11.Aggressive
arg2.phase = arg2.phase + aggressive.PhaseStep
local phase = arg2.phase
local assemblyLinearVelocity = arg3.AssemblyLinearVelocity
local v13 = fn36(arg2, arg3, arg4)
local cFrame = arg3.CFrame
local rightVector = cFrame.RightVector
local lookVector = cFrame.LookVector
local upVector = cFrame.UpVector
local n2 = rightVector * math.sin(phase) * aggressive.Offset.X + lookVector * math.cos(phase * 1.45) * aggressive.Offset.Y + upVector * math.sin(phase * 1.9) * aggressive.Offset.Z
local n3 = v13 + assemblyLinearVelocity * aggressive.Prediction + n2
local n4 = v13 - arg2.hood.Position
local unit = n4.Magnitude > 0.01 and n4.Unit or lookVector
local v14 = unit
local n5 = rightVector * math.cos(phase) * aggressive.Velocity.X + lookVector * -math.sin(phase * 1.45) * aggressive.Velocity.Y + upVector * math.cos(phase * 1.9) * aggressive.Velocity.Z
return cframe(n3) * CFrame.Angles(math.rad(90), phase * 2.8, phase * 3.6), v14 * aggressive.DirectionForce + assemblyLinearVelocity * aggressive.TargetForce + n5
end
local function fn42(arg2)
local car = arg2.car
if not car.Parent then
return
end
for i, assembly in ipairs(arg2.assemblies) do
local root_ = assembly.Root
if root_ and root_.Parent and root_:IsDescendantOf(car) and not root_.Anchored then
pcall(function()
root_.CFrame = assembly.OriginalCFrame
root_.AssemblyLinearVelocity = tbl11.Zero
root_.AssemblyAngularVelocity = tbl11.Zero
end)
end
end
end
flingState = {CarInAttack = {}, CarBusy = {}, lastUsedCar = nil}
flingRefreshButtons = function()
task.defer(function()
if playerListUpdateFlingButtons then
playerListUpdateFlingButtons()
end
end)
end
flingDisconnectAttack = function(arg2)
if not arg2 then
return
end
fn3(arg2.CarGoneConn)
fn3(arg2.SeatOccupantConn)
arg2.CarGoneConn = nil
arg2.SeatOccupantConn = nil
end
flingStopByPlayerName = function(arg2, arg3)
local v13 = flingState.CarInAttack[arg2]
if not v13 then
return false
end
flingDisconnectAttack(v13)
flingState.CarInAttack[arg2] = nil
if arg3 then
fn25(arg3, true)
end
flingRefreshButtons()
return true
end
flingStopByCar = function(arg2, arg3)
local n2 = 0
for k, v13 in pairs(flingState.CarInAttack) do
if v13 and v13.car == arg2 then
flingDisconnectAttack(v13)
flingState.CarInAttack[k] = nil
n2 = n2 + 1
end
end
if n2 > 0 then
local carGone = arg3 or tbl6.CarGone
fn25(carGone, true)
flingRefreshButtons()
end
return n2
end
KillWheel = function(arg2)
if not arg2 or arg2 == LocalPlayer or arg2.Parent ~= Players then
return nil
end
local name = arg2.Name
if flingState.CarInAttack[name] then
return flingState.CarInAttack[name]
end
fn28()
local character_ = LocalPlayer.Character
local humanoid_ = character_ and character_:FindFirstChildOfClass("Humanoid")
local humanoidRootPart = character_ and character_:FindFirstChild("HumanoidRootPart")
local seatPart = humanoid_ and humanoid_.SeatPart
if not humanoidRootPart or not seatPart or not seatPart:IsA("VehicleSeat") then
return fn26("sit in VehicleSeat")
end
local v13 = fn31(seatPart)
if not v13 then
return fn26("invalid car")
end
if flingState.CarBusy[v13] then
return fn26("car busy")
end
if flingState.lastUsedCar == v13 then
return fn26("use another car")
end
local v14 = fn27(v13)
local v15 = v14
if v14 then
local assemblyRootPart = v14.AssemblyRootPart
v15 = assemblyRootPart or v14
end
if not v14 or not v15 or v14.Anchored or v15.Anchored then
return fn26("car anchored")
end
local v16 = fn32(v13, v14)
if #v16 == 0 then
return fn26("no movable car parts")
end
local v17 = fn33(v13)
local customPhysicalProperties = v14.CustomPhysicalProperties
v14.CustomPhysicalProperties = tbl11.HoodPhysics
local aggressive = cfg.fling_method == "aggressive"
local flag6 = cfg.fling_whip == true
local tbl12 = {
car = v13,
hood = v14,
hoodRotation = v14.CFrame - v14.Position,
}
local hit = cfg.fling_hit == "torso" and "torso" or "legs"
tbl12.hit = hit
tbl12.aggressive = aggressive
local v18 = flag6 and fn39 or (aggressive and fn41 or fn40)
tbl12.motion = v18
local spin = aggressive and tbl11.Aggressive.Spin or tbl11.Zero
tbl12.spin = spin
local whip = tbl11.Whip
local str = aggressive and "aggressive" or "controlled"
tbl12.whipProfile = whip[str]
tbl12.phase = 0
tbl12.whipPhase = 0
tbl12.assemblies = v16
flingState.CarInAttack[name] = tbl12
flingState.CarBusy[v13] = tbl12
flingState.lastUsedCar = v13
tbl12.CarGoneConn = v13.AncestryChanged:Connect(function(child, parent)
if parent == nil then
flingStopByCar(v13, tbl6.CarGone)
end
end)
tbl12.SeatOccupantConn = seatPart:GetPropertyChangedSignal("Occupant"):Connect(function()
local occupant = seatPart.Occupant
local playerFromCharacter = occupant and occupant.Parent and Players:GetPlayerFromCharacter(occupant.Parent)
if occupant and occupant ~= humanoid_ and playerFromCharacter ~= LocalPlayer and flingState.CarInAttack[name] == tbl12 then
flingStopByPlayerName(name, tbl6.LostCar)
end
end)
if firstFlingViewStart then
task.defer(firstFlingViewStart, arg2)
end
flingRefreshButtons()
task.spawn(function()
local n2 = 0
local deathMissing = nil
local flag7 = humanoid_.Health <= 0
local connection = nil
if not flag7 then
connection = humanoid_.Died:Connect(function()
flag7 = true
end)
end
local function fn43()
local v19 = flag
local parent = v19 and flingState.CarInAttack[name] == tbl12 and arg2.Parent == Players and v13.Parent and v14.Parent and v15.Parent
return parent
end
local n3 = os.clock() + tbl11.DeathWait
while fn43() and not flag7 and os.clock() < n3 do
if humanoid_.Health <= 0 then
flag7 = true
end
n2 = fn29(n2)
if not fn34(tbl12, tbl11.Stage) then
break
end
if not flag7 then
RunService.Heartbeat:Wait()
end
end
fn3(connection)
if fn43() and not flag7 then
deathMissing = tbl6.DeathMissing
end
local flag8 = false
if fn43() and not deathMissing then
local n4 = os.clock() + tbl11.OwnershipWait
local ok, result, flag9
repeat
n2 = fn29(n2)
fn34(tbl12, tbl11.Stage)
ok, result = pcall(fn30, v14)
flag9 = ok and result == true
flag8 = flag9
if not flag9 then
RunService.Heartbeat:Wait()
end
until not fn43() or flag8 or n4 <= os.clock()
if fn43() and not flag8 then
deathMissing = tbl6.OwnershipMissing
end
end
local n4 = 0
local flag9 = false
local v19 = nil
local v20 = nil
local v21 = nil
while fn43() and flag8 and not deathMissing and (cfg.fling_no_limit == true or n4 < tbl11.ActiveTime) do
local now = os.clock()
local flag10 = true
n2 = fn29(n2)
local character_2 = arg2.Character
local humanoidRootPart2 = character_2
if character_2 then
local torso = character_2:FindFirstChild("Torso")
humanoidRootPart2 = torso or character_2:FindFirstChild("HumanoidRootPart")
end
local humanoid_2 = character_2 and character_2:FindFirstChildOfClass("Humanoid")
local flag11 = cfg.fling_stop_death ~= false
if flag9 then
flag10 = false
local cFrame = v21 or v14.CFrame
v21 = cFrame
fn34(tbl12, v21)
if flag11 then
if character_2 and character_2 ~= v19 and humanoidRootPart2 and humanoid_2 and humanoid_2.Health > 0 then
flag9 = false
v19 = nil
v20 = character_2
v21 = nil
fn37(tbl12, humanoidRootPart2)
end
else
flag9 = false
v19 = nil
v21 = nil
end
elseif flag11 and (not character_2 or not humanoidRootPart2 or not humanoid_2 or humanoid_2.Health <= 0) then
flag9 = true
local v22 = v20 or character_2
v19 = v22
local cFrame = v14.CFrame
v21 = cFrame
flag10 = false
fn34(tbl12, cFrame)
elseif humanoidRootPart2 and humanoid_2 and (humanoid_2.Health > 0 or not flag11) then
if character_2 ~= v20 then
fn37(tbl12, humanoidRootPart2)
end
if humanoid_2.Health > 0 then
v20 = character_2
end
local v22, v23 = tbl12:motion(humanoidRootPart2, humanoid_2)
if not fn34(tbl12, v22, v23, tbl12.spin) then
break
end
else
fn34(tbl12, v14.CFrame)
end
RunService.Heartbeat:Wait()
if flag10 then
n4 = n4 + (os.clock() - now)
end
end
flingDisconnectAttack(tbl12)
if v14.Parent then
pcall(function()
v14.CustomPhysicalProperties = customPhysicalProperties
end)
end
fn33(v13, v17)
fn42(tbl12)
local flag10 = arg2.Parent ~= Players or tbl12.PlayerExited == true
if flingState.CarInAttack[name] == tbl12 then
flingState.CarInAttack[name] = nil
if deathMissing then
fn25(deathMissing, true)
elseif flag10 then
fn25(tbl6.PlayerLeft, true)
else
fn25(tbl6.Ended, false)
end
end
if flingState.CarBusy[v13] == tbl12 then
flingState.CarBusy[v13] = nil
end
flingRefreshButtons()
end)
return tbl12
end
espCfg = {
espEnabled = true,
tracersEnabled = true,
tracerInfoEnabled = true,
backpackViewEnabled = true,
healthGuiEnabled = true,
hitboxEnabled = true,
sitDetection = true,
teamCheck = true,
hitboxSize = 7,
hitboxTransparency = 0.7,
tracerAimPart = "Torso",
tracerRenderDistance = 999999,
tracerThickness = 1,
tracerTextSize = 13,
refreshRate = 0.016666666666666666,
espRefreshRate = 0.15,
backpackRefreshRate = 0.18,
}
local tbl12 = {
Inmates = color(255, 145, 35),
Guards = color(0, 145, 255),
Criminals = color(255, 55, 65),
}
teamColors = tbl12
apply_visual_cfg = function()
if cfg.esp_enabled ~= nil then
local v13 = espCfg
local v14 = featureGet
local flag6 = cfg.esp_enabled == true
v13.espEnabled = v14("esp_enabled", flag6)
end
if cfg.tracers_enabled ~= nil then
local v13 = espCfg
local v14 = featureGet
local flag6 = cfg.tracers_enabled == true
v13.tracersEnabled = v14("tracers_enabled", flag6)
end
if cfg.tracer_info_enabled ~= nil then
local v13 = espCfg
local v14 = featureGet
local flag6 = cfg.tracer_info_enabled == true
v13.tracerInfoEnabled = v14("tracer_info_enabled", flag6)
end
if cfg.backpack_view_enabled ~= nil then
local v13 = espCfg
local v14 = featureGet
local flag6 = cfg.backpack_view_enabled == true
v13.backpackViewEnabled = v14("backpack_view_enabled", flag6)
end
if cfg.health_gui_enabled ~= nil then
local v13 = espCfg
local v14 = featureGet
local flag6 = cfg.health_gui_enabled == true
v13.healthGuiEnabled = v14("health_gui_enabled", flag6)
end
if cfg.hitbox_enabled ~= nil then
local v13 = espCfg
local v14 = featureGet
local flag6 = cfg.hitbox_enabled == true
v13.hitboxEnabled = v14("hitbox_enabled", flag6)
end
if cfg.hitbox_size ~= nil then
local v13 = espCfg
local clamp = math.clamp
local num = tonumber(cfg.hitbox_size)
local hitboxSize = num or espCfg.hitboxSize
v13.hitboxSize = clamp(hitboxSize, 1, 10)
end
end
apply_visual_cfg()
local kerauniusEspLogic = CoreGui:FindFirstChild("Keraunius_ESP_Logic")
local folder_ = kerauniusEspLogic or Instance.new("Folder")
espFolder = folder_
espFolder.Name = "Keraunius_ESP_Logic"
espFolder.Parent = CoreGui
for i, child in ipairs(espFolder:GetChildren()) do
if child:IsA("Highlight") then
child:Destroy()
end
end
local obj2 = setmetatable({}, {__mode = "k"})
plOriginalRoots = obj2
local obj3 = setmetatable({}, {__mode = "k"})
flag5 = false
local overlapParams = OverlapParams.new()
hitboxOverlap = overlapParams
hitboxOverlap.FilterType = Enum.RaycastFilterType.Include
hitboxOverlap.MaxParts = 1
hitboxTouchCharacter = nil
tracerDrawings = {}
healthGuiData = {}
healthBodyCache = {}
backpackCache = {}
backpackClock = {}
lastEspRefresh = 0
lastTick = 0
espConnections = {}
espPlayers = {}
espPlayerIndex = {}
espHighlights = {}
c4EspData = {}
local v13 = vector2(1280, 720)
local v14 = color(170, 85, 255)
local v15 = color(0, 0, 0)
local v16 = color(255, 0, 0)
local v17 = color(0, 255, 0)
local flag6 = false
local n2 = 1
local n3 = -math.huge
local function fn43(arg2)
local now = os.clock()
if now - n3 >= 0.5 then
n3 = now
local v18
if typeof(kxUsePhoneGui) == "function" then
local ok, result = pcall(kxUsePhoneGui)
local flag7 = ok and result == true
v18 = flag7
else
local viewportSize = arg2
if not arg2 then
local v19 = camera
viewportSize = v19 and camera.ViewportSize
end
if not viewportSize then
viewportSize = v13
end
local touchEnabled = UserInputService.TouchEnabled
local flag7 = touchEnabled and math.min(viewportSize.X, viewportSize.Y) <= 700
v18 = flag7
end
flag6 = v18
if v18 and typeof(kxPhoneGuiScale) == "function" then
local ok, result = pcall(kxPhoneGuiScale)
local n4 = ok and tonumber(result) or 0.78
n2 = n4
elseif v18 then
local viewportSize = arg2
if not arg2 then
local v19 = camera
viewportSize = v19 and camera.ViewportSize
end
if not viewportSize then
viewportSize = v13
end
local n4 = math.min(viewportSize.X, viewportSize.Y) <= 420 and 0.78 or 0.84
n2 = n4
else
n2 = 1
end
end
return flag6, n2
end
addESPPlayer = function(arg2)
if not arg2 or arg2 == LocalPlayer or espPlayerIndex[arg2] then
return
end
espPlayers[#espPlayers + 1] = arg2
espPlayerIndex[arg2] = #espPlayers
end
removeESPPlayer = function(arg2)
local v18 = espPlayerIndex[arg2]
if not v18 then
return
end
local v19 = espPlayers[#espPlayers]
espPlayers[v18] = v19
espPlayers[#espPlayers] = nil
espPlayerIndex[arg2] = nil
if v19 and v19 ~= arg2 then
espPlayerIndex[v19] = v18
end
end
playerTeamName = function(arg2)
local name = arg2 and arg2.Team and arg2.Team.Name or ""
return name
end
teamColor = function(arg2)
local v18 = playerTeamName(arg2)
if teamColors[v18] then
return teamColors[v18]
end
if arg2 and arg2.Team and arg2.Team.TeamColor then
return arg2.Team.TeamColor.Color
end
return color(0, 170, 255)
end
character = function(arg2)
local character_ = arg2 and arg2.Character
return character_
end
humanoid = function(arg2)
local humanoid_ = arg2
if arg2 then
local humanoid_2 = arg2:FindFirstChildOfClass("Humanoid")
humanoid_ = humanoid_2 or arg2:FindFirstChildWhichIsA("Humanoid", true)
end
return humanoid_
end
rootPart = function(arg2)
local humanoidRootPart = arg2 and arg2:FindFirstChild("HumanoidRootPart")
return humanoidRootPart
end
alive = function(arg2, arg3)
local v18 = arg3 or humanoid(arg2)
local v19 = v18
local flag7 = v18 and v19.Health > 0
return flag7
end
isSitting = function(arg2, arg3)
if not espCfg.sitDetection then
return fals"The first stretch begins, and with it, the first warning is bestowed. There is always a path by which one may return - but heed this well: before you venture beyond the horizon, know the place to which your soul must return. For even the mightiest of journeys demands a haven, and even the greatest of wanderers must remember where home lies." [EntroS, MMT, ISPS]

Prison Life