local function geniter(f, s, c)
if type(f) ~= "function" then
local mt = getmetatable(f)
if type(mt) == "table" and mt.__iter then
f, s, c = mt.__iter(f)
elseif type(f) == "table" then
f, s, c = next, f, nil
end
end
return function()
local r = table.pack(f(s, c))
if r[1] == nil then
return false
end
c = r[1]
return true, table.unpack(r, 1, r.n)
end
end
local CFrame_ = CFrame
local cFrameNew = CFrame_ and CFrame_.new
local lookAt = CFrame_ and CFrame_.lookAt
local Angles = CFrame_ and CFrame_.Angles
local fromMatrix = CFrame_ and CFrame_.fromMatrix
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
local RunService = game:GetService("RunService")
game:GetService("TweenService")
local TeleportService = game:GetService("TeleportService")
local v14, genv, v16, __SenaV4TweenRuntimeGeneration, t1, v19, v20, v21, v22, v23
local v24, v25, v26, v27, v28, v29, v30, v31, v32, v33
do
local Workspace = game:GetService("Workspace")
v14 = function()
return Workspace:FindFirstChild("World") or Workspace:FindFirstChild("__OBJECTS")
end
genv = getgenv and getgenv() or _G
if type(genv.__SenaV4HubShutdown) == "function" then
pcall(genv.__SenaV4HubShutdown)
end
local t2 = {}
genv.__SenaV4HubSession = t2
v16 = function()
return genv.__SenaV4HubSession == t2
end
genv.__SenaV4IdentityGetter = genv.getthreadidentity or genv.get_thread_identity or genv.getidentity or genv.getthreadcontext or genv.get_thread_context
genv.__SenaV4IdentitySetter = genv.setthreadidentity or genv.set_thread_identity or genv.setidentity or genv.setthreadcontext or genv.set_thread_context
local __SenaV4IdentitySetter = genv.__SenaV4IdentitySetter
if type(__SenaV4IdentitySetter) == "function" then
pcall(__SenaV4IdentitySetter, 8)
genv.__SenaV4UICapabilityIdentity = 8
end
if not (rawget(_G, "setfpscap") or rawget(_G, "set_fps_cap")) and type(setfpscap) == "function" then
end
genv.__SenaV4SetCapFps = function(p1)
local v37 = math.clamp(math.floor(tonumber(p1) or 240), 1, 999)
local setfpscap_ = rawget(_G, "setfpscap") or rawget(_G, "set_fps_cap") or type(setfpscap) == "function" and setfpscap
if type(setfpscap_) == "function" then
return pcall(setfpscap_, v37)
end
return false
end
if type(genv.__SenaV4TweenRuntimeCleanup) == "function" then
pcall(genv.__SenaV4TweenRuntimeCleanup)
end
if type(genv.__SenaV4EggRuntimeCleanup) == "function" then
pcall(genv.__SenaV4EggRuntimeCleanup)
end
if type(genv.__SenaV4AntiGuardCleanup) == "function" then
pcall(genv.__SenaV4AntiGuardCleanup)
end
genv.__SenaV4TweenRuntimeGeneration = (genv.__SenaV4TweenRuntimeGeneration or 0) + 1
__SenaV4TweenRuntimeGeneration = genv.__SenaV4TweenRuntimeGeneration
t1 = {
KEY = "__SenaV4StealAnEggMovementSpoof",
VERSION = 436,
INTEGRITY_KEY = "__SenaV4StealAnEggIntegritySpoof",
SIGNAL = "ClientCharacter: GetDebugSnapshot",
HEADROOM = 1.35,
CLAMP = 0.15,
PADDING = 24,
MULTIPLIER = 10,
MIN_INPUT = 20,
MAX_INPUT = 100,
DEF_INPUT = 60,
MIN_SPEED = 200,
MAX_SPEED = 1000,
DEF_SPEED = 600,
FIELDS = {
"LastObservedSample",
"LastSample",
"LastGoodSample",
"LastGameplayTrustedSample",
"LastValidatedSample",
"LastValidatedGroundedSample",
"LastConfirmedGroundSample",
"CandidateGroundedSample"
}
}
local KEY = t1.KEY
local VERSION = t1.VERSION
local INTEGRITY_KEY = t1.INTEGRITY_KEY
local SIGNAL = t1.SIGNAL
local HEADROOM = t1.HEADROOM
local CLAMP = t1.CLAMP
local PADDING = t1.PADDING
local MIN_SPEED = t1.MIN_SPEED
local MAX_SPEED = t1.MAX_SPEED
local DEF_SPEED = t1.DEF_SPEED
local FIELDS = t1.FIELDS
local n1 = 60
game:GetService("RunService").Heartbeat:Connect(function(dt)
if dt and dt > 0 then
n1 = n1 * 0.9 + 1 / dt * 0.1
end
end)
v19 = function()
return n1
end
local u51
local v52 = tostring(math.random(100000, 999999))
local connection
local connection2
local t3 = {}
local u56
v20 = nil
local function v57()
for _, child in ipairs(Workspace:GetChildren()) do
if child:IsA("BasePart") and child.Name == "__SenaV4HoverPad" and child ~= u51 then
pcall(child.Destroy, child)
end
end
end
v21 = function(p2)
if not u51 or not u51.Parent then
return false
end
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return false
end
local v63 = typeof(p2) == "Vector3" and p2
v63 = v63 or HumanoidRootPart.Position
u51.CFrame = cFrameNew(v63.X, v63.Y - (Humanoid.RigType == Enum.HumanoidRigType.R15 and HumanoidRootPart.Size.Y * 0.5 + math.max(Humanoid.HipHeight, 0.5) or HumanoidRootPart.Size.Y * 0.5 + 2) - 0.5 - 0.05, v63.Z)
return true
end
v22 = function()
if not u51 or not u51.Parent or u51:GetAttribute("SenaV4RuntimeOwner") ~= v52 then
v57()
if u51 and u51.Parent then
pcall(u51.Destroy, u51)
end
local Part = Instance.new("Part")
Part.Name = "__SenaV4HoverPad"
Part:SetAttribute("SenaV4RuntimeOwner", v52)
Part.Anchored = true
Part.CanCollide = true
Part.CanQuery = true
Part.CanTouch = false
Part.CastShadow = false
Part.Transparency = 1
Part.Material = Enum.Material.SmoothPlastic
Part.Size = Vector3.new(8, 1, 8)
u51 = Part
Part.Parent = Workspace
end
v21()
if not connection then
local function v65()
if not v21() then
v22()
end
end
connection = RunService.PreSimulation:Connect(v65)
end
if not connection2 then
connection2 = RunService.PostSimulation:Connect(function()
v21()
end)
end
end
v23 = function()
if connection then
pcall(connection.Disconnect, connection)
connection = nil
end
if connection2 then
pcall(connection2.Disconnect, connection2)
connection2 = nil
end
if u51 then
pcall(u51.Destroy, u51)
u51 = nil
end
v57()
end
v23()
v24 = function()
u56 = nil
end
v25 = function(p3, p4)
if p3 and typeof(p4) == "CFrame" then
u56 = {
Character = LocalPlayer.Character,
RootPart = p3,
CFrame = p4
}
end
end
local function v66()
local v67 = u56
if type(v67) == "table" then
if typeof(v67.CFrame) == "CFrame" then
if LocalPlayer.Character == v67.Character then
if v67.RootPart and v67.RootPart.Parent then
v22()
v67.RootPart.AssemblyLinearVelocity = Vector3.zero
v67.RootPart.AssemblyAngularVelocity = Vector3.zero
v21(v67.CFrame.Position)
v67.RootPart.CFrame = v67.CFrame
v21(v67.CFrame.Position)
return true
end
end
u56 = nil
return false
end
end
return false
end
local function v68()
local Character = LocalPlayer.Character
local HumanoidRootPart = Character
HumanoidRootPart = HumanoidRootPart and Character:FindFirstChild("HumanoidRootPart")
for _, v in pairs(t3) do
if type(v) == "table" then
v.cancelled = true
end
end
table.clear(t3)
if HumanoidRootPart then
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
end
v24()
v23()
end
genv.__SenaV4TweenRuntimeCleanup = function()
for _, v in pairs(t3) do
if type(v) == "table" then
v.cancelled = true
end
end
table.clear(t3)
v24()
v23()
end
v26 = function()
return getgenv and getgenv() or _G
end
local function v75()
local v76 = v26()
local v77 = v76[KEY]
if type(v77) ~= "table" or v77.Version ~= VERSION then
if type(v77) == "table" then
v77.Enabled = false
end
v77 = {
Version = VERSION,
Installed = false,
Enabled = false,
Mode = "StateBaseline",
Humanoid = nil,
RootPart = nil,
WalkSpeed = DEF_SPEED
}
v76[KEY] = v77
end
return v77
end
v27 = function(p5, p6)
local v78 = v75()
if not v78 then
return false
end
local Humanoid = p5 and p5:FindFirstChildOfClass("Humanoid")
local HumanoidRootPart = p5 and p5:FindFirstChild("HumanoidRootPart")
v78.Humanoid = Humanoid
v78.RootPart = HumanoidRootPart
v78.WalkSpeed = math.clamp(tonumber(p6) or DEF_SPEED, MIN_SPEED, MAX_SPEED * HEADROOM)
v78.Enabled = false
return Humanoid ~= nil and HumanoidRootPart ~= nil
end
local function v81()
local v82 = v26()[KEY]
if type(v82) == "table" then
v82.Enabled = false
v82.Humanoid = nil
v82.RootPart = nil
end
end
local function v83(p7, p8, p9)
local u84
if type(getcallbackvalue) == "function" and type(debug) == "table" and type(debug.getupvalue) == "function" then
local Signal = ReplicatedStorage:FindFirstChild("Packages") and ReplicatedStorage.Packages:FindFirstChild("Signal")
if Signal then
local ok, result = pcall(require, Signal)
if ok and type(result) == "table" and type(result.Invoked) == "function" then
local ok2, result2 = pcall(result.Invoked, SIGNAL)
if ok2 and result2 then
local ok3, result3 = pcall(getcallbackvalue, result2, "OnInvoke")
if ok3 and type(result3) == "function" then
local ok4, result4 = pcall(debug.getinfo, result3)
if ok4 then
local function v94(p10, p11, p12)
if u84 or type(p10) ~= "table" or p11 > 3 or p12[p10] then
return
end
p12[p10] = true
if rawget(p10, "Player") == p7 and rawget(p10, "Character") == p7.Character then
if rawget(p10, "Humanoid") == p8 and rawget(p10, "RootPart") == p9 and type(rawget(p10, "SampleHistory")) == "table" and type(rawget(p10, "Evidence")) == "table" then
u84 = p10
return
end
end
local n2 = 0
for _, v in pairs(p10) do
n2 += 1
if n2 > 128 then
break
end
if type(v) == "table" then
v94(v, p11 + 1, p12)
end
end
end
local n3 = 1
local nups = result4.nups or 0
for i = n3, nups do
local ok5, result5 = pcall(debug.getupvalue, result3, i)
if not ok5 or type(result5) ~= "table" then
continue
end
v94(result5, 0, {})
if u84 then
break
end
end
end
end
end
end
end
end
if not u84 and type(getgc) == "function" then
local ok, result = pcall(getgc, true)
if ok and type(result) == "table" then
for _, v in ipairs(result) do
if type(v) == "table" and rawget(v, "Player") == p7 and rawget(v, "Character") == p7.Character and rawget(v, "Humanoid") == p8 and rawget(v, "RootPart") == p9 and type(rawget(v, "SampleHistory")) == "table" and type(rawget(v, "Evidence")) == "table" then
u84 = v
break
end
end
end
end
return u84
end
local t4 = {
busy = false,
nextAt = 0,
misses = 0,
found = nil
}
local function v108(p13, p14, p15)
local found = t4.found
if type(found) == "table" and rawget(found, "Player") == p13 then
if rawget(found, "Character") == p13.Character and rawget(found, "Humanoid") == p14 and rawget(found, "RootPart") == p15 then
return found
end
end
if t4.busy or os.clock() < t4.nextAt then
return nil
end
t4.busy = true
task.spawn(function()
task.wait()
local ok, result = pcall(v83, p13, p14, p15)
local v112 = ok and result or nil
t4.found = v112
t4.misses = v112 and 0 or t4.misses + 1
t4.nextAt = os.clock() + (v112 and 0.2 or t4.misses >= 5 and 10 or 1)
t4.busy = false
end)
return nil
end
v28 = function(p16, p17, p18)
if type(p16) ~= "table" then
return false
end
local value = rawget(p16, "RootPart")
local CFrame_2 = value and value.Parent and value.CFrame or nil
local Position = CFrame_2 and CFrame_2.Position or nil
local vector3 = typeof(p18) == "Vector3" and p18 or Vector3.zero
local function v117(p19)
if type(p19) == "table" then
rawset(p19, "WalkSpeed", p17)
if CFrame_2 then
rawset(p19, "CFrame", CFrame_2)
rawset(p19, "Position", Position)
rawset(p19, "LinearVelocity", vector3)
rawset(p19, "AngularVelocity", Vector3.zero)
end
end
end
for _, v in ipairs(FIELDS) do
v117(rawget(p16, v))
end
local pairs_ = pairs
local v121 = rawget(p16, "SampleHistory") or {}
for _, v in pairs_(v121) do
v117(v)
end
local pairs_2 = pairs
local v125 = rawget(p16, "SafeGroundCheckpoints") or {}
for _, v in pairs_2(v125) do
v117(v)
end
local value2 = rawget(p16, "Evidence")
if type(value2) == "table" then
value2.Speed = 0
value2.Teleport = 0
value2.Flight = 0
end
local value3 = rawget(p16, "ImpulseContext")
if type(value3) == "table" then
local maxHorizontalSpeed = math.max(tonumber(value3.MaxHorizontalSpeed) or 0, p17)
local v131 = math.max((tonumber(value3.ExpiresAt) or 0) - (tonumber(value3.StartedAt) or 0), CLAMP)
value3.MaxHorizontalSpeed = maxHorizontalSpeed
if Position then
value3.OriginPosition = Position
end
value3.MaxHorizontalDistance = math.max(tonumber(value3.MaxHorizontalDistance) or 0, maxHorizontalSpeed * v131 + PADDING * 2)
v117(value3.PreMovementSafeSample)
end
if rawget(p16, "CorrectionContext") == nil then
rawset(p16, "FirstSuspiciousAt", nil)
if rawget(p16, "ThreatLevel") == "Observing" then
rawset(p16, "ThreatLevel", "Trusted")
end
end
return true
end
local function v132()
local v133 = v26()
local v134 = v133[INTEGRITY_KEY]
if type(v134) ~= "table" then
v134 = {}
v133[INTEGRITY_KEY] = v134
end
return v134
end
v29 = function(p20, p21, p22)
return type(p20) == "table" and rawget(p20, "Player") == LocalPlayer and rawget(p20, "Character") == LocalPlayer.Character and rawget(p20, "Humanoid") == p21 and rawget(p20, "RootPart") == p22
end
v30 = function(p23, p24, p25)
return v29(p23, p24, p25)
end
v31 = function(p26, p27, p28)
local v135 = v132()
local State = v135.State
if not v29(State, p26, p27) then
local now = os.clock()
if now < (v135.NextSearchAt or 0) then
return false
end
v135.NextSearchAt = now + 0.2
State = v108(LocalPlayer, p26, p27)
end
if not State then
return false
end
if not v30(State, p26, p27) then
v135.Enabled = false
v135.Humanoid = p26
v135.RootPart = p27
v135.State = State
return false
end
v135.NextSearchAt = 0
v135.Enabled = true
v135.Humanoid = p26
v135.RootPart = p27
v135.State = State
v135.WalkSpeed = math.clamp(p28 * HEADROOM, MIN_SPEED, MAX_SPEED * HEADROOM)
v135.TravelVelocity = Vector3.zero
v28(State, v135.WalkSpeed, v135.TravelVelocity)
return true
end
v32 = function(p29, p30, p31, p32)
local v138 = v26()[INTEGRITY_KEY]
if type(v138) == "table" and v138.Enabled and v138.Humanoid == p29 and v138.RootPart == p30 then
if v30(v138.State, p29, p30) then
v138.WalkSpeed = math.clamp(p31 * HEADROOM, MIN_SPEED, MAX_SPEED * HEADROOM)
if typeof(p32) == "Vector3" then
v138.TravelVelocity = p32
elseif typeof(v138.TravelVelocity) ~= "Vector3" then
v138.TravelVelocity = Vector3.zero
end
return v28(v138.State, v138.WalkSpeed, v138.TravelVelocity)
end
end
return false
end
local function v139(p33)
local v140 = v26()[INTEGRITY_KEY]
if type(v140) ~= "table" then
return
end
if p33 == nil or v140.Humanoid == p33 then
v140.Enabled = false
v140.Humanoid = nil
v140.RootPart = nil
v140.State = nil
v140.TravelVelocity = nil
v140.NextSearchAt = 0
end
end
local connection3
v33 = function()
if connection3 then
return
end
connection3 = RunService.PreSimulation:Connect(function()
if genv.__SenaV4TweenRuntimeGeneration ~= __SenaV4TweenRuntimeGeneration then
local v142 = connection3
connection3 = nil
if v142 then
pcall(v142.Disconnect, v142)
end
return
end
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not Character or not HumanoidRootPart or not Humanoid then
return
end
local v146 = v20()
v27(Character, v146 * HEADROOM)
if not v32(Humanoid, HumanoidRootPart, v146) then
v31(Humanoid, HumanoidRootPart, v146)
end
v66()
end)
end
local function v147()
if connection3 then
pcall(connection3.Disconnect, connection3)
connection3 = nil
end
v81()
v139()
end
genv.__SenaV4TweenRuntimeCleanup = function()
v68()
v147()
end
end
RunService.Heartbeat:Connect(function()
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return
end
local AssemblyLinearVelocity = HumanoidRootPart.AssemblyLinearVelocity
if Vector3.new(AssemblyLinearVelocity.X, 0, AssemblyLinearVelocity.Z).Magnitude > 400 or math.abs(AssemblyLinearVelocity.Y) > 400 then
HumanoidRootPart.AssemblyLinearVelocity = Vector3.new(math.clamp(AssemblyLinearVelocity.X, -100, 100), math.clamp(AssemblyLinearVelocity.Y, -100, 100), math.clamp(AssemblyLinearVelocity.Z, -100, 100))
end
end)
pcall(function()
local queue_on_teleport_ = queue_on_teleport or queueonteleport
queue_on_teleport_ = queue_on_teleport_ or syn and syn.queue_on_teleport
if queue_on_teleport_ then
pcall(queue_on_teleport_, "")
end
end)
do
pcall(function()
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)
end)
end
do
local connection
local connection2
local function v154(p34)
if not p34 then
return
end
local Humanoid = p34:WaitForChild("Humanoid", 5) or p34:FindFirstChildOfClass("Humanoid")
if not p34:WaitForChild("HumanoidRootPart", 5) then
p34:FindFirstChild("HumanoidRootPart")
end
if not Humanoid then
return
end
local health = math.max(Humanoid.MaxHealth, 100)
local u157 = false
local n4 = 0
local function v159()
if u157 or not Humanoid.Parent then
return
end
local now = os.clock()
if now - n4 < 0.1 then
if Humanoid.Health > 0 then
if Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then
return
end
end
end
n4 = now
u157 = true
pcall(function()
Humanoid.BreakJointsOnDeath = false
Humanoid.RequiresNeck = false
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
if Humanoid.Health <= 0 then
Humanoid.Health = health
end
if Humanoid:GetState() == Enum.HumanoidStateType.Dead then
Humanoid:ChangeState(Enum.HumanoidStateType.Running)
end
end)
u157 = false
end
v159()
if connection then
pcall(connection.Disconnect, connection)
end
if connection2 then
pcall(connection2.Disconnect, connection2)
end
connection = Humanoid.HealthChanged:Connect(function(health2)
if health2 <= 0 or health2 < health then
v159()
end
end)
connection2 = RunService.Heartbeat:Connect(v159)
end
task.spawn(function()
v154(LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait())
end)
LocalPlayer.CharacterAdded:Connect(function(character)
v154(character)
end)
end
local senaV4Config = {
AutoSteal = false,
HelpFriend = false,
ScrambleTradeInTrade = false,
ScrambleTradeInReroll = false,
ScrambleTradeInBanners = {},
ScrambleBossAuto = false,
StealMode = "Fly",
FlyAerial = false,
StealHoldSeconds = 5,
StealAreas = { "None" },
StealRarities = { "None" },
StealNamesFilter = { "None" },
StealMinValue = 0,
StealMutations = { "None" },
StealMinWeight = 0,
StealPriority = "Rarity",
AutoFavorite = false,
FavMode = "Rarity",
FavRarities = { "None" },
FavSpecies = { "None" },
AutoEquipBest = false,
AutoClaimOffline = false,
AutoBaseUpgrade = false,
AutoClaimAlmanac = false,
AutoFusePets = false,
ScrambleFarmDrones = false,
ScrambleLostParts = false,
ScrambleCollectSamples = false,
ScrambleAutoVault = false,
ScrambleAutoBuy = false,
ScrambleAreas = {},
ScrambleDroneTypes = {},
ScrambleBuyList = {},
ButterflyAutoNet = false,
ButterflyAutoCatch = false,
ButterflyEsp = false,
ButterflyTiers = {},
ButterflyAutoTrade = false,
ButterflyTradeRecipe = "All",
ButterflyCatchMode = "Tween",
ButterflyAutoCraft = false,
Noclip = false,
BottingMode = false,
AntiCutscene = false,
FuseSelectedOnly = false,
FuseRarities = { "None" },
FuseSpecies = { "None" },
EspDetails = {
"Name",
"Rarity",
"Value"
},
BackpackRateEsp = false,
AntiAFK = true,
AutoReconnect = true,
AutoExecute = false,
AutoPlace = false,
PlaceRarities = { "None" },
AutoHatch = false,
SellAll = false,
AutoSell = false,
SellNames = { "None" },
SellRarities = { "None" },
AutoSellEgg = false,
SellEggRarities = { "None" },
WebhookEnabled = false,
WebhookURL = "",
TweenSpeedMultiplier = 60,
AutoTreadmillIdle = false,
AutoTreadmillUpgrade = false,
AntiTreadmill = false,
HopNoMatch = false,
PrivateServerMax = "2",
PrivateServerAuto = false,
HopCooldown = 5,
AutoIndex = false,
AntiHitGuard = false,
FlyForCapture = false,
AutoStealCapture = false,
InstantGrab = false,
InfiniteJump = false,
WalkSpeedMultiplier = 1,
AntiGuardKnockback = true,
GodMode = true,
EggPredictUI = false,
EggESP = false,
StealPlayers = false,
StealPlayerRarities = { "None" },
StealPlayerMinValue = 0,
StealPlayerTarget = "Any Player",
WebhookRarities = { "None" },
WebhookMinValue = 0
}
local EggState = require(game:GetService("ReplicatedStorage").Client.EggState)
EggState.GetAreaEggSnapshot = EggState.ReadFieldEggs
EggState.GetAreaEggRecord = EggState.ReadFieldEgg
EggState.RequestAreaEggSnapshot = EggState.SyncFieldEggs
EggState.RequestCarryAreaEgg = EggState.CarryFieldEgg
EggState.RequestDropHeldAreaEgg = EggState.DropFieldEgg
EggState.AreaEggCarryStateChanged = EggState.CarryChanged
EggState.AreaEggClaimed = EggState.FieldClaimed
EggState.AreaEggUpdated = EggState.FieldShifted
EggState.AreaEggRemoved = EggState.FieldGone
EggState.GetOwnerRuntimeRecords = EggState.ReadOwnerEggs
EggState.RequestEquipTool = EggState.WearEggTool
EggState.RequestPlaceEgg = EggState.PlantEgg
EggState.RequestHatchEgg = EggState.BeginHatch
EggState.RequestCompleteHatchEgg = EggState.FinishHatch
EggState.RequestRuntimeSnapshot = EggState.SyncOwnedEggs
EggState.RuntimeOwnerUpdated = EggState.OwnerRefreshed
EggState.RuntimeOwnerCleared = EggState.OwnerCleared
local PlotState = require(game:GetService("ReplicatedStorage").Client.PlotState)
PlotState.GetMySlot = PlotState.ResolveLocalSlot
PlotState.GetPlotsFolder = PlotState.ResolveFolder
PlotState.IsWorldPositionWithinLocalPlotBounds = PlotState.ContainsLocalPoint
PlotState.GetPlotData = PlotState.ResolvePlot
local AreaEggResetWall = require(game:GetService("ReplicatedStorage").Client.AreaEggResetWall)
AreaEggResetWall.IsClosed = AreaEggResetWall.IsSealed
v20 = function()
if genv.__SenaV4AdminBoost == true then
return 4000
end
return math.clamp(math.floor((tonumber(senaV4Config.TweenSpeedMultiplier) or t1.DEF_INPUT) + 0.5), t1.MIN_INPUT, t1.MAX_INPUT) * t1.MULTIPLIER
end
senaV4Config.applyStealValueInput = function(p35, p36)
local lower = string.lower
local tostring_ = tostring
local v167 = lower(tostring_(p36 or "")):gsub("[%s,]", "")
if v167 == "" then
p35.StealMinValue = 0
return true
end
local v168, v169 = string.match(v167, "^([%d]+%.?[%d]*)([kmb]?)$")
local v170 = tonumber(v168)
if not v170 then
return false
end
local n5 = 1
if v169 == "k" then
n5 = 1000
elseif v169 == "m" then
n5 = 1000000
elseif v169 == "b" then
n5 = 1e9
end
p35.StealMinValue = v170 * n5
return true
end
senaV4Config.getAreaEggValue = function(p37, p38)
if not p37._assetGenerationUtil then
p37._assetGenerationUtil = require(game:GetService("ReplicatedStorage").Shared.Util.AssetEarnings)
end
return p37._assetGenerationUtil.MutationOnlyRatePerSecond({
Category = p38.AssetCategory,
Scale = p38.AssetScale or 1,
Mutations = p38.Mutations or {},
BaseMutation = p38.BaseMutation,
EyeColor = p38.AssetEyeColor,
ColorSeed = p38.AssetColorSeed,
ColorIndex = p38.AssetColorIndex,
Gender = p38.Gender,
Personality = p38.Personality or "Normal",
HasBeenFirstPlaced = p38.HasBeenFirstPlaced == true
})
end
local function v172(p39)
local max = math.max
local StealPriorityUntil = senaV4Config.StealPriorityUntil or 0
senaV4Config.StealPriorityUntil = max(StealPriorityUntil, os.clock() + (p39 or 5))
end
local AreaEggCycle
local AreaEggResetWall2
pcall(function()
AreaEggCycle = require(ReplicatedStorage.Shared.Util.AreaEggCycle)
AreaEggResetWall2 = require(ReplicatedStorage.Client.AreaEggResetWall)
end)
local function v177()
if AreaEggCycle then
if type(AreaEggCycle.IsNightPhase) == "function" then
local ok, result = pcall(AreaEggCycle.IsNightPhase, workspace:GetServerTimeNow())
if ok then
if result == true then
return true
end
end
end
end
if AreaEggResetWall2 then
if type(AreaEggResetWall2.IsSealed) == "function" then
local ok, result = pcall(AreaEggResetWall2.IsSealed)
if ok and result == true then
return true
end
end
if type(AreaEggResetWall2.IsClosed) == "function" then
local ok, result = pcall(AreaEggResetWall2.IsClosed)
if ok and result == true then
return true
end
end
end
return false
end
do
local n6 = 0
local u185 = false
local function v186()
if v177() then
return false
end
local now = os.clock()
if now - n6 < 0.35 then
return u185
end
n6 = now
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local v189 = require(ReplicatedStorage2.Client.EggState).GetAreaEggSnapshot()
local Directory = require(ReplicatedStorage2.Data.Assets).Directory
local pairs_ = pairs
local Records = v189 and v189.Records or {}
for _, Record in pairs_(Records) do
if Record.State ~= "Slot" and Record.State ~= "Dropped" or not Record.BottomCFrame then
continue
end
local v195 = Directory[Record.AssetCategory]
local Rarity = v195 and v195.Rarity
local DisplayName = Rarity and (Rarity.DisplayName or Rarity._id)
if DisplayName ~= "Eternal" and DisplayName ~= "Divine" then
continue
end
u185 = true
return true
end
u185 = false
return false
end
end
local function v198()
if senaV4Config.IsStealing then
return false
end
local __SenaV4DronesWantCharacter = genv.__SenaV4DronesWantCharacter
if __SenaV4DronesWantCharacter and __SenaV4DronesWantCharacter() then
return false
end
if senaV4Config.IsPlacing == true then
return false
end
if senaV4Config.AutoSteal then
return os.clock() >= (senaV4Config.StealPriorityUntil or 0)
end
return true
end
do
local function v200(p40)
pcall(function()
if typeof(writefile) ~= "function" then
return
end
local s1 = ""
if typeof(readfile) == "function" and typeof(isfile) == "function" and isfile("Sena_Disconnect_Log.txt") then
s1 = readfile("Sena_Disconnect_Log.txt") or ""
end
local t5 = {}
for match in s1:gmatch("[^\r\n]+") do
table.insert(t5, match)
end
local v204 = "] " .. p40
table.insert(t5, "[" .. os.date("%Y-%m-%d %H:%M:%S") .. v204)
while #t5 > 50 do
table.remove(t5, 1)
end
writefile("Sena_Disconnect_Log.txt", table.concat(t5, "\n"))
end)
end
end
local function v205(p41)
if not p41 or type(p41.GetValue) ~= "function" then
return nil
end
local ok, result = pcall(function()
return p41:GetValue()
end)
if not ok then
return nil
end
if type(result) ~= "table" then
if type(result) == "string" then
return { result }
end
return nil
end
local t6 = {}
for k, v in pairs(result) do
if type(k) == "number" then
table.insert(t6, v)
elseif type(k) == "string" and v == true then
table.insert(t6, k)
end
end
return t6
end
local function v211(p42, p43, p44, p45)
if senaV4Config.SellAll then
return true
end
if type(p44) ~= "table" or type(p45) ~= "table" then
return false
end
local v212 = false
if not (#p44 == 0 or table.find(p44, "None")) then
if table.find(p44, "All") then
v212 = true
else
v212 = table.find(p44, p42) ~= nil
end
end
local v213 = false
if #p45 ~= 0 and not table.find(p45, "None") then
if table.find(p45, "All") then
v213 = true
else
v213 = table.find(p45, p43) ~= nil
end
end
return v212 or v213
end
local function v214(p46, p47)
if type(p47) ~= "table" then
return false
end
if #p47 ~= 0 then
if not table.find(p47, "None") then
if table.find(p47, "All") then
return true
end
return table.find(p47, p46) ~= nil
end
end
return false
end
local function v215(p48)
local HumanoidRootPart = p48 and p48:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart then
HumanoidRootPart:SetAttribute("KillPartIgnore", true)
end
end
local vector3 = Vector3.new(544.76, 71.5, -416.48)
local t7 = {
CarryRetry = 0.25,
CarryTimeout = 2,
EarlyCarryDistance = 8,
SafeStable = 0.35,
ReturnValidation = 0.08,
NextTarget = 0.05,
SafeHandoff = 0.15
}
local t8 = {
GUARD_MARGIN = 1.25,
GUARD_FALLBACK = 222,
maxGuardWalkSpeed = nil,
floorNotifiedFor = -1,
capNotifiedFor = -1
}
local function v220()
if not t8.maxGuardWalkSpeed then
local ok, result = pcall(function()
return require(game:GetService("ReplicatedStorage").Data.Guards).GetHighestWalkSpeed()
end)
t8.maxGuardWalkSpeed = ok and type(result) == "number" and result > 0 and result or t8.GUARD_FALLBACK
warn(string.format("[GuardEscape] Guard tercepat %d stud/detik -> lantai kabur %d stud/detik", t8.maxGuardWalkSpeed, t8.maxGuardWalkSpeed * t8.GUARD_MARGIN))
end
return t8.maxGuardWalkSpeed * t8.GUARD_MARGIN
end
local function v223(p49)
local tweenSpeedMultiplier = math.clamp(math.floor((tonumber(p49) or t1.DEF_INPUT) + 0.5), t1.MIN_INPUT, t1.MAX_INPUT)
if math.abs((senaV4Config.TweenSpeedMultiplier or 0) - tweenSpeedMultiplier) <= 0.001 then
return
end
senaV4Config.TweenSpeedMultiplier = tweenSpeedMultiplier
end
local function v225(p50, p51, p52, p53)
local v226 = os.clock() + p52
local now
local n7 = 0
local n8 = 0.1
pcall(function()
n8 = LocalPlayer:GetNetworkPing()
end)
local v230 = math.clamp(n8 * 2 + 0.2, 0.4, 1)
while true do
if not (os.clock() < v226) then
return false
end
if p53 and p53() then
break
end
p50.AssemblyLinearVelocity = Vector3.zero
p50.AssemblyAngularVelocity = Vector3.zero
RunService.Heartbeat:Wait()
if not ((p50.Parent and (p50.Position - p51.Position).Magnitude or math.huge) <= 1.5) then
now = nil
n7 = 0
continue
end
p50.CFrame = p51
now = now or os.clock()
n7 += 1
if not (n7 >= 3) or not (v230 <= os.clock() - now) then
continue
end
return true
end
return false
end
local t9 = {}
local function v232(p54, p55, p56, p57, p58, p59, p60)
if not p54 or not p55 or typeof(p56) ~= "CFrame" then
return false
end
if p57 and p57() then
return false
end
local v233 = t9[p54]
if v233 then
v233.cancelled = true
t9[p54] = nil
end
local Parent = p54.Parent
if not Parent then
return false
end
v24()
v215(Parent)
v33()
local CurrentCamera = workspace.CurrentCamera
if CurrentCamera and CurrentCamera.CameraSubject ~= p55 then
pcall(function()
CurrentCamera.CameraSubject = p55
end)
end
local AutoRotate = p55.AutoRotate
p55.AutoRotate = false
local v237 = p60 and math.max(p54.Position.Y, p56.Position.Y + 5, vector3.Y + 5) or nil
local v238 = v237 and cFrameNew(p56.Position.X, v237, p56.Position.Z) * p56.Rotation or p56
local v239 = math.clamp(v20(), t1.MIN_SPEED, genv.__SenaV4AdminBoost == true and 3000 or t1.MAX_SPEED)
v27(Parent, v239 * t1.HEADROOM)
local t10 = {
cancelled = false
}
t9[p54] = t10
v22()
local now
local v242
local n9 = 0
local v244 = v237 and (math.abs(p54.Position.Y - v237) > 0.35 and "takeoff" or "cruise") or nil
local Magnitude = (v238.Position - p54.Position).Magnitude
local v246 = os.clock() + math.max(Magnitude / v239, 0.08) * 3 + 8
local v247 = false
local v248 = false
while not t10.cancelled and (not p57 or not p57()) and p54.Parent and not (v246 <= os.clock()) do
local v249 = math.max(math.min(RunService.Heartbeat:Wait(), 0.15), 0.0041666666666666666)
local v250 = math.clamp(v20(), t1.MIN_SPEED, genv.__SenaV4AdminBoost == true and 3000 or t1.MAX_SPEED)
v27(Parent, v250 * t1.HEADROOM)
local v251 = v26()[t1.INTEGRITY_KEY]
local State = type(v251) == "table" and v251.State or nil
if v30(State, p55, p54) then
local Position = p54.Position
local v254 = v238.Position - Position
local Magnitude2 = v254.Magnitude
local vector32 = Vector3.new(v254.X, 0, v254.Z)
if v237 and v244 == "takeoff" and math.abs(Position.Y - v237) <= 0.35 then
v244 = "cruise"
end
local v257 = (v237 and v244 == "takeoff" and Vector3.new(Position.X, v237, Position.Z) or v238.Position) - Position
local Magnitude3 = v257.Magnitude
local Magnitude4 = v237 and vector32.Magnitude or Magnitude2
if v242 and v242 + 2 < Magnitude4 then
n9 = os.clock() + 0.5
end
v242 = Magnitude4
local v260 = (os.clock() < n9 and math.max(t1.MIN_SPEED, v250 * 0.45) or v250) * v249
if p59 and not v248 and Magnitude2 <= t7.EarlyCarryDistance then
v248 = true
task.spawn(p59)
end
local vector33 = Vector3.new(p54.CFrame.LookVector.X, 0, p54.CFrame.LookVector.Z)
local Unit = vector32.Magnitude > 0.001 and vector32.Unit or vector33.Magnitude > 0.001 and vector33.Unit or Vector3.new(0, 0, -1)
if (not v237 or v244 == "cruise") and Magnitude2 <= math.max(v260, 0.05) then
if Magnitude2 > 0.5 then
now = nil
end
v21(v238.Position)
p54.CFrame = lookAt(v238.Position, v238.Position + Unit)
p54.AssemblyLinearVelocity = Vector3.zero
p54.AssemblyAngularVelocity = Vector3.zero
v21(v238.Position)
v32(p55, p54, v250, Vector3.zero)
now = now or os.clock()
if os.clock() - now >= 0.4 then
v247 = true
break
end
else
now = nil
if Magnitude3 <= 0.001 then
p54.AssemblyLinearVelocity = Vector3.zero
p54.AssemblyAngularVelocity = Vector3.zero
v21(Position)
else
local v263 = Position + v257.Unit * math.min(v260, Magnitude3)
local v264 = (v263 - Position) / v249
v21(v263)
p54.CFrame = lookAt(v263, v263 + Unit)
p54.AssemblyLinearVelocity = Vector3.zero
v21(v263)
if not v32(p55, p54, v250, v264) then
v31(p55, p54, v250)
v32(p55, p54, v250, v264)
end
end
end
else
v242 = nil
now = nil
p54.AssemblyLinearVelocity = Vector3.zero
p54.AssemblyAngularVelocity = Vector3.zero
v21(p54.Position)
if v29(State, p55, p54) then
v28(State, v250 * t1.HEADROOM, Vector3.zero)
else
v31(p55, p54, v250)
end
end
end
if p55.Parent and AutoRotate ~= nil then
p55.AutoRotate = AutoRotate
end
p54.AssemblyLinearVelocity = Vector3.zero
p54.AssemblyAngularVelocity = Vector3.zero
if v247 and p58 then
v25(p54, v238)
else
v23()
end
local v265 = v247 and not t10.cancelled
return v265
end
local function v266(p61, p62, p63, p64)
return v232(p61, p62, p63, p64, false, nil, true)
end
local function v267(p65, p66)
if p65 then
if typeof(p66) == "CFrame" then
if not pcall(function()
p65.AssemblyLinearVelocity = Vector3.zero
p65.AssemblyAngularVelocity = Vector3.zero
p65.CFrame = p66
p65.AssemblyLinearVelocity = Vector3.zero
p65.AssemblyAngularVelocity = Vector3.zero
end) then
return false
end
v21(p66.Position)
local Parent = p65.Parent
local Humanoid = Parent and Parent:FindFirstChildOfClass("Humanoid")
if Humanoid then
local v270 = math.clamp(v20(), t1.MIN_SPEED, genv.__SenaV4AdminBoost == true and 3000 or t1.MAX_SPEED)
v27(Parent, v270 * t1.HEADROOM)
if not v32(Humanoid, p65, v270, Vector3.zero) then
v31(Humanoid, p65, v270)
v32(Humanoid, p65, v270, Vector3.zero)
end
end
return true
end
end
return false
end
getgenv().SenaV4Config = senaV4Config
local function v271(p67)
if p67 and p67.Name == "PlayerTrap" then
pcall(function()
p67:Destroy()
end)
end
end
task.spawn(function()
local function v272(p68)
if not p68 then
return
end
local v273, v274, v275 = ipairs(p68:GetChildren())
local v276 = geniter(v273, v274, v275)
local v277 = table.pack(v276())
if v277[1] then
local v278 = v277[3]
while true do
v271(v278)
local v279 = table.pack(v276())
if v279[1] then
v278 = v279[3]
else
break
end
end
end
p68.ChildAdded:Connect(function(child)
v271(child)
end)
end
local Transient = workspace:FindFirstChild("Transient")
if Transient then
v272(Transient)
end
local __DEBRIS = workspace:FindFirstChild("__DEBRIS")
if __DEBRIS then
v272(__DEBRIS)
end
workspace.ChildAdded:Connect(function(child)
if child.Name == "Transient" or child.Name == "__DEBRIS" then
v272(child)
elseif child.Name == "PlayerTrap" then
v271(child)
return
elseif child.Name:lower():find("trap") then
v271(child)
end
end)
task.spawn(function()
while v16() do
for _, v in ipairs({
workspace:FindFirstChild("Transient"),
workspace:FindFirstChild("__DEBRIS")
}) do
if v then
for _, child in ipairs(v:GetChildren()) do
v271(child)
end
end
end
task.wait(1.5)
end
end)
end)
local u286
local function v287()
local ok, result = pcall(function()
return require(game:GetService("ReplicatedStorage").Shared.Remotes).Treadmill.AskRenderSnapshot:InvokeServer()
end)
if ok then
if type(result) == "table" then
return table.find(result, LocalPlayer.UserId) ~= nil
end
end
return nil
end
local function v290()
local ok, result, result2 = pcall(function()
return require(game:GetService("ReplicatedStorage").Shared.Remotes).Treadmill.AskDoff:InvokeServer()
end)
if not ok then
return false, tostring(result)
end
if result ~= true then
return false, tostring(result2)
end
return true
end
local function v294()
local ok, result = pcall(function()
local PlotState2 = require(ReplicatedStorage.Client.PlotState)
local v298 = type(PlotState2.ResolveLocalSlot) == "function" and PlotState2.ResolveLocalSlot() or PlotState2.GetMySlot()
local v299 = type(PlotState2.ResolveFolder) == "function" and PlotState2.ResolveFolder() or PlotState2.GetPlotsFolder()
local v300 = v299 and v298
v300 = v300 and v299:FindFirstChild(tostring(v298))
local TreadmillBottom = v300 and v300:FindFirstChild("TreadmillBottom")
if not TreadmillBottom or not TreadmillBottom:IsA("BasePart") then
return nil
end
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if HumanoidRootPart and Humanoid then
return TreadmillBottom.CFrame * cFrameNew(0, TreadmillBottom.Size.Y * 0.5 + (Humanoid.RigType == Enum.HumanoidRigType.R15 and HumanoidRootPart.Size.Y * 0.5 + math.max(Humanoid.HipHeight, 0.5) or HumanoidRootPart.Size.Y * 0.5 + 2) + 0.05, 0)
end
return nil
end)
local v305 = ok and result or nil
return v305
end
local t11 = {
HoldSeconds = 0.3,
ConfirmStableSeconds = 0.3,
ConfirmTimeout = 2.5,
PollSeconds = 0.05,
ArrivalSettle = 0.5,
DecoyName = "__SenaV4TweenTreadmillDecoy",
destroyTrail = function(p69)
if typeof(p69) == "Instance" then
if p69:IsA("Trail") then
pcall(p69.Destroy, p69)
end
end
end,
destroyStealPopup = function(p70)
if senaV4Config.IsStealing then
if typeof(p70) == "Instance" and (p70.Name == "SpeedGainPopup" or p70.Name == "PlusOne") then
pcall(p70.Destroy, p70)
end
end
end
}
t11.purgeStealPopups = function()
local PlayerGui = LocalPlayer:FindFirstChildOfClass("PlayerGui")
if not PlayerGui then
return
end
for _, descendant in ipairs(PlayerGui:GetDescendants()) do
t11.destroyStealPopup(descendant)
end
end
t11.guiConnection = LocalPlayer:WaitForChild("PlayerGui").DescendantAdded:Connect(function(descendant)
t11.destroyStealPopup(descendant)
end)
t11.removeDecoy = function()
if t11.cameraConnection then
pcall(t11.cameraConnection.Disconnect, t11.cameraConnection)
t11.cameraConnection = nil
end
if t11.characterConnection then
pcall(t11.characterConnection.Disconnect, t11.characterConnection)
t11.characterConnection = nil
end
local pairs_ = pairs
local transparency = t11.transparency or {}
for k, v in pairs_(transparency) do
if typeof(k) == "Instance" and k.Parent then
pcall(function()
k.LocalTransparencyModifier = v
end)
end
end
t11.transparency = nil
local Character = LocalPlayer.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local CurrentCamera = workspace.CurrentCamera
if CurrentCamera then
pcall(function()
CurrentCamera.CameraSubject = Humanoid or t11.cameraSubject
end)
end
t11.cameraSubject = nil
if t11.decoy then
pcall(t11.decoy.Destroy, t11.decoy)
end
t11.decoy = nil
end
t11.spawnDecoy = function(p71)
t11.removeDecoy()
local Character = LocalPlayer.Character
if not Character then
return false
end
local Archivable = Character.Archivable
Character.Archivable = true
local ok, decoy = pcall(Character.Clone, Character)
Character.Archivable = Archivable
if not ok or not decoy or typeof(decoy) ~= "Instance" then
return false
end
decoy.Name = t11.DecoyName
for _, descendant in ipairs(decoy:GetDescendants()) do
if not descendant:IsA("Script") then
if not descendant:IsA("LocalScript") and not descendant:IsA("BillboardGui") and not descendant:IsA("Sound") and not descendant:IsA("Trail") then
if not descendant:IsA("BasePart") then
continue
end
descendant.LocalTransparencyModifier = 0
descendant.Anchored = true
descendant.CanCollide = false
descendant.CanQuery = false
descendant.CanTouch = false
continue
end
end
pcall(descendant.Destroy, descendant)
end
local Humanoid = decoy:FindFirstChildOfClass("Humanoid")
if not Humanoid then
decoy:Destroy()
return false
end
pcall(function()
Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
Humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff
end)
decoy.Parent = workspace
decoy:PivotTo(p71)
t11.decoy = decoy
local transparency = setmetatable({}, {
__mode = "k"
})
local function v325(p72)
if not p72 or not p72:IsA("BasePart") or not p72:IsDescendantOf(Character) then
return
end
if transparency[p72] == nil then
transparency[p72] = p72.LocalTransparencyModifier
end
p72.LocalTransparencyModifier = 1
end
for _, descendant in ipairs(Character:GetDescendants()) do
v325(descendant)
t11.destroyTrail(descendant)
end
t11.transparency = transparency
t11.characterConnection = Character.DescendantAdded:Connect(function(descendant)
if t11.decoy == decoy then
pcall(v325, descendant)
t11.destroyTrail(descendant)
end
end)
local CurrentCamera = workspace.CurrentCamera
if CurrentCamera then
t11.cameraSubject = CurrentCamera.CameraSubject
CurrentCamera.CameraSubject = Humanoid
end
t11.cameraConnection = RunService.RenderStepped:Connect(function()
if t11.decoy == decoy then
if decoy.Parent and Humanoid.Parent then
for k in pairs(transparency) do
if k.Parent and k.LocalTransparencyModifier ~= 1 then
k.LocalTransparencyModifier = 1
end
end
local CurrentCamera2 = workspace.CurrentCamera
if CurrentCamera2 and CurrentCamera2.CameraSubject ~= Humanoid then
CurrentCamera2.CameraSubject = Humanoid
end
return
end
end
end)
return true
end
t11.requestEquip = function()
local ok, result, result2 = pcall(function()
return require(ReplicatedStorage.Shared.Remotes).Treadmill.AskWearStill:InvokeServer()
end)
if ok then
if result ~= false then
return true
end
end
local v334 = false
local tostring_ = tostring
local v336 = result2 or result
return v334, tostring_(v336)
end
t11.prepare = function(p73, p74)
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if HumanoidRootPart then
if Humanoid and typeof(p73) == "CFrame" then
local function v340()
return p74 ~= nil and p74()
end
local function v341()
local Character2 = LocalPlayer.Character
local HumanoidRootPart2 = Character2 and Character2:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart2 then
v267(HumanoidRootPart2, p73)
task.wait(0.1)
end
t11.removeDecoy()
end
t11.purgeStealPopups()
v24()
v23()
if not t11.spawnDecoy(p73) then
return false
end
local v344 = v294()
if not v344 or v340() or not v267(HumanoidRootPart, v344) then
v290()
v341()
return false
end
task.wait(t11.ArrivalSettle)
if v340() then
v290()
v341()
return false
end
if not t11.requestEquip() then
v290()
v341()
return false
end
local v345 = os.clock() + t11.ConfirmTimeout
local v346 = false
local now
while not v340() do
if not (os.clock() < v345) then
break
end
if v287() == true then
now = now or os.clock()
if not (t11.ConfirmStableSeconds <= os.clock() - now) then
task.wait(t11.PollSeconds)
continue
end
v346 = true
break
end
now = nil
task.wait(t11.PollSeconds)
end
if not v346 or v340() then
v290()
v341()
return false
end
local v348 = os.clock() + t11.HoldSeconds
while not v340() and os.clock() < v348 do
task.wait(t11.PollSeconds)
end
local v349 = os.clock() + t11.ConfirmTimeout
local v350 = false
while not v340() and os.clock() < v349 do
v290()
task.wait(t11.PollSeconds)
if v287() == false then
u286 = nil
v350 = true
break
end
end
v341()
local v351 = v350 and not v340()
return v351
end
end
return false
end
t11.previousCleanup = genv.__SenaV4TweenRuntimeCleanup
genv.__SenaV4TweenRuntimeCleanup = function()
v290()
t11.removeDecoy()
if t11.guiConnection then
pcall(t11.guiConnection.Disconnect, t11.guiConnection)
t11.guiConnection = nil
end
if type(t11.previousCleanup) == "function" then
t11.previousCleanup()
end
end
LocalPlayer.CharacterRemoving:Connect(function()
t11.removeDecoy()
end)
do
if type(genv.__SenaV4CosmeticSuppressCleanup) == "function" then
pcall(genv.__SenaV4CosmeticSuppressCleanup)
end
local t12 = {}
local function v353(child)
if child then
if child.Name == "DropHeldEgg" then
if not child:IsA("ScreenGui") then
if not child:IsA("LayerCollector") then
return
end
end
pcall(function()
child.Enabled = false
end)
table.insert(t12, child:GetPropertyChangedSignal("Enabled"):Connect(function()
if child.Enabled then
pcall(function()
child.Enabled = false
end)
end
end))
return
end
end
end
local function v354()
local PlayerGui = LocalPlayer:FindFirstChildOfClass("PlayerGui")
if PlayerGui then
for _, child in ipairs(PlayerGui:GetChildren()) do
v353(child)
end
table.insert(t12, PlayerGui.ChildAdded:Connect(v353))
return
end
end
v354()
table.insert(t12, LocalPlayer.CharacterAdded:Connect(function()
task.defer(v354)
end))
pcall(function()
local GuardPresentationComponent = require(ReplicatedStorage.Shared.Modules.GuardAreas.GuardPresentationComponent)
if type(GuardPresentationComponent) == "table" then
genv.__SenaV4GuardPresentOrig = genv.__SenaV4GuardPresentOrig or {
PlayWake = GuardPresentationComponent.PlayWake,
PlayHit = GuardPresentationComponent.PlayHit,
PlayAfterWake = GuardPresentationComponent.PlayAfterWake,
ScheduleAfterWake = GuardPresentationComponent.ScheduleAfterWake
}
local function playWake()
end
GuardPresentationComponent.PlayWake = playWake
GuardPresentationComponent.PlayHit = function()
return 0
end
GuardPresentationComponent.PlayAfterWake = playWake
GuardPresentationComponent.ScheduleAfterWake = playWake
end
end)
genv.__SenaV4CosmeticSuppressCleanup = function()
for _, v in ipairs(t12) do
pcall(function()
v:Disconnect()
end)
end
table.clear(t12)
local __SenaV4GuardPresentOrig = genv.__SenaV4GuardPresentOrig
if type(__SenaV4GuardPresentOrig) == "table" then
pcall(function()
local GuardPresentationComponent = require(ReplicatedStorage.Shared.Modules.GuardAreas.GuardPresentationComponent)
for k, v in pairs(__SenaV4GuardPresentOrig) do
GuardPresentationComponent[k] = v
end
end)
end
end
end
do
if type(genv.__SenaV4StealDeclutterCleanup) == "function" then
pcall(genv.__SenaV4StealDeclutterCleanup)
end
local t13 = {
{
name = "ProximityPrompts",
restore = true
},
{
name = "AreaGui",
restore = false
}
}
local u367 = false
local t14 = {}
local function v369(p75)
return p75 and (p75:IsA("ScreenGui") or p75:IsA("LayerCollector"))
end
local function v370(p76)
if not v369(p76) then
return
end
pcall(function()
p76.Enabled = false
end)
table.insert(t14, p76:GetPropertyChangedSignal("Enabled"):Connect(function()
if u367 then
if p76.Enabled then
pcall(function()
p76.Enabled = false
end)
end
end
end))
end
local function v371(p77)
local PlayerGui = LocalPlayer:FindFirstChildOfClass("PlayerGui")
if not PlayerGui then
return
end
for _, v in ipairs(t13) do
local VName = PlayerGui:FindFirstChild(v.name)
if VName then
p77(VName, v)
end
end
end
local function v376()
local PlayerGui = LocalPlayer:FindFirstChildOfClass("PlayerGui")
if not PlayerGui then
return
end
v371(function(p78)
v370(p78)
end)
table.insert(t14, PlayerGui.ChildAdded:Connect(function(child)
if not u367 then
return
end
for _, v in ipairs(t13) do
if child.Name == v.name then
v370(child)
break
end
end
end))
end
local function v380()
for _, v in ipairs(t14) do
pcall(function()
v:Disconnect()
end)
end
table.clear(t14)
v371(function(p79, p80)
pcall(function()
p79.Enabled = p80.restore
end)
end)
end
genv.__SenaV4SetStealDeclutter = function(p81)
local v383 = p81 == true
if v383 == u367 then
return
end
u367 = v383
if v383 then
v376()
else
v380()
end
end
genv.__SenaV4StealDeclutterCleanup = function()
u367 = false
v380()
end
end
do
local function v384()
local v385 = v287()
if v385 == false then
u286 = nil
return true
end
if v385 == nil and u286 == nil then
return true
end
u286 = u286 or "server"
local v386, v387 = v290()
if not v386 then
warn("[Treadmill] Gagal minta lepas dari treadmill sebelum steal:", v387)
return false
end
local v388 = os.clock() + 1.5
while u286 ~= nil and os.clock() < v388 do
task.wait(0.05)
if not senaV4Config.AutoSteal then
return false
end
if v287() == false then
u286 = nil
break
end
end
if u286 ~= nil then
warn("[Treadmill] Lepas treadmill gak kekonfirmasi dalam 1.5s, steal dilanjut apa adanya.")
return false
end
task.wait(0.12)
return true
end
end
if type(genv.__SenaV4DecomBoostCleanup) == "function" then
pcall(genv.__SenaV4DecomBoostCleanup)
end
local t15, v390, v391
do
local t16 = {}
local u393 = false
genv.__SenaV4DecomBoostCleanup = function()
for _, v in ipairs(t16) do
pcall(function()
v:Disconnect()
end)
end
table.clear(t16)
u393 = false
end
local function v396()
local ClientRenderedAssets = workspace:FindFirstChild("ClientRenderedAssets")
if not ClientRenderedAssets then
return
end
for _, child in ipairs(ClientRenderedAssets:GetChildren()) do
pcall(function()
child.Parent = nil
end)
end
end
local function v400(p82)
return string.sub(p82.Name, 1, #tostring(LocalPlayer.UserId) + 1) == tostring(LocalPlayer.UserId) .. "_"
end
local function v401()
for _, child in ipairs(workspace:GetChildren()) do
if child.Name == "PlacedEggRenders" then
for _, child2 in ipairs(child:GetChildren()) do
pcall(function()
if not child2:FindFirstChildOfClass("ProximityPrompt") then
if not v400(child2) then
child2.Parent = nil
end
end
end)
end
end
end
end
local function v406()
for _, v in ipairs({
"Transient",
"__DEBRIS"
}) do
local v409 = workspace:FindFirstChild(v)
if v409 then
for _, child in ipairs(v409:GetChildren()) do
if child.Name ~= "PlayerTrap" then
if not child.Name:lower():find("trap") then
continue
end
end
pcall(function()
child:Destroy()
end)
end
end
end
end
local function v412(p83)
if not p83:FindFirstAncestor("SenaVisualBack") then
if not p83:FindFirstAncestor("SenaVisualRemote") then
local Tool = p83:FindFirstAncestorWhichIsA("Tool")
return Tool ~= nil and Tool:GetAttribute("SenaVisual") ~= nil
end
end
return true
end
t15 = {
effects = {},
parts = {},
decals = {},
snapshot = nil
}
local t17 = {
PlusOne = true,
SpeedGainPopup = true,
SellPayout = true,
SyncedIncomeCash = true
}
local t18 = {
PlayerPlotSign = true,
CanUpgrade = true,
AlertGui = true,
OfflineMoneyClaimBillboard = true
}
local function v416(descendant)
pcall(function()
if v412(descendant) then
return
end
if t17[descendant.Name] then
descendant:Destroy()
return
end
if descendant:IsA("BillboardGui") and t18[descendant.Name] then
if descendant.Enabled then
t15.effects[descendant] = true
end
descendant.Enabled = false
return
end
if descendant:IsA("ParticleEmitter") or descendant:IsA("Trail") or descendant:IsA("Beam") or descendant:IsA("Sparkles") or descendant:IsA("Fire") or descendant:IsA("Smoke") or descendant:IsA("PostEffect") then
if descendant.Enabled then
t15.effects[descendant] = true
end
descendant.Enabled = false
end
end)
end
local function v417()
if u393 then
return
end
u393 = true
table.insert(t16, game.DescendantAdded:Connect(v416))
table.insert(t16, workspace.ChildAdded:Connect(function(child)
if child.Name == "ClientRenderedAssets" then
v396()
table.insert(t16, child.ChildAdded:Connect(function(child2)
pcall(function()
child2.Parent = nil
end)
end))
elseif child.Name == "PlacedEggRenders" then
v401()
table.insert(t16, child.ChildAdded:Connect(function(child2)
pcall(function()
if not child2:FindFirstChildOfClass("ProximityPrompt") and not v400(child2) then
child2.Parent = nil
end
end)
end))
elseif child.Name == "__DEBRIS" or child.Name == "Transient" then
table.insert(t16, child.ChildAdded:Connect(function(child2)
if child2.Name == "PlayerTrap" then
pcall(function()
child2:Destroy()
end)
return
elseif child2.Name:lower():find("trap") then
pcall(function()
child2:Destroy()
end)
end
end))
end
end))
local ClientRenderedAssets = workspace:FindFirstChild("ClientRenderedAssets")
if ClientRenderedAssets then
table.insert(t16, ClientRenderedAssets.ChildAdded:Connect(function(child)
pcall(function()
child.Parent = nil
end)
end))
end
for _, child in ipairs(workspace:GetChildren()) do
if child.Name == "PlacedEggRenders" then
table.insert(t16, child.ChildAdded:Connect(function(child2)
pcall(function()
if not child2:FindFirstChildOfClass("ProximityPrompt") then
if not v400(child2) then
child2.Parent = nil
end
end
end)
end))
end
end
end
local u421 = false
v390 = function()
if u421 then
return
end
u421 = true
local Lighting = game:GetService("Lighting")
if not t15.snapshot then
local t19 = {}
pcall(function()
t19.quality = settings().Rendering.QualityLevel
t19.throttle = settings().Physics.PhysicsEnvironmentalThrottle
t19.technology = Lighting.Technology
t19.shadows = Lighting.GlobalShadows
t19.fogEnd = Lighting.FogEnd
t19.brightness = Lighting.Brightness
t19.ambient = Lighting.Ambient
t19.outdoorAmbient = Lighting.OutdoorAmbient
end)
local Terrain = workspace:FindFirstChildOfClass("Terrain")
if Terrain then
pcall(function()
t19.terrain = {
WaterWaveSize = Terrain.WaterWaveSize,
WaterWaveSpeed = Terrain.WaterWaveSpeed,
WaterReflectance = Terrain.WaterReflectance,
WaterTransparency = Terrain.WaterTransparency,
Decoration = Terrain.Decoration
}
end)
pcall(function()
local Clouds = Terrain:FindFirstChildOfClass("Clouds")
if Clouds then
t19.cloudsEnabled = Clouds.Enabled
end
end)
end
pcall(function()
local Preferences = ReplicatedStorage.Shared:FindFirstChild("Preferences")
if Preferences then
local module = require(Preferences)
t19.prefs = {
HideOtherPets = module.IsOn("HideOtherPets"),
DisableVideos = module.IsOn("DisableVideos")
}
end
end)
if t19.quality == Enum.QualityLevel.Level01 then
t19.quality = Enum.QualityLevel.Automatic
end
t15.snapshot = genv.__SenaV4DecomSnapshot or t19
genv.__SenaV4DecomSnapshot = t15.snapshot
end
pcall(function()
settings().Rendering.QualityLevel = Enum.QualityLevel.Level01
settings().Physics.PhysicsEnvironmentalThrottle = Enum.EnviromentalPhysicsThrottle.Always
Lighting.Technology = Enum.Technology.Compatibility
Lighting.GlobalShadows = false
Lighting.FogEnd = 9e9
Lighting.Brightness = 2
Lighting.Ambient = Color3.new(1, 1, 1)
Lighting.OutdoorAmbient = Color3.new(1, 1, 1)
end)
local now = os.clock()
for _, v in ipairs({
workspace,
Lighting
}) do
for _, descendant in ipairs(v:GetDescendants()) do
if not v412(descendant) then
if descendant:IsA("BasePart") then
pcall(function()
if not t15.parts[descendant] then
t15.parts[descendant] = {
descendant.Material,
descendant.CastShadow,
descendant:IsA("MeshPart") and descendant.RenderFidelity or nil
}
end
descendant.Material = Enum.Material.SmoothPlastic
descendant.CastShadow = false
if descendant:IsA("MeshPart") then
descendant.RenderFidelity = Enum.RenderFidelity.Performance
end
end)
else
if descendant:IsA("Decal") then
pcall(function()
if descendant.Texture ~= "" and not t15.decals[descendant] then
t15.decals[descendant] = descendant.Texture
end
descendant.Texture = ""
end)
if os.clock() - now > 0.004 then
task.wait()
now = os.clock()
end
continue
end
if descendant:IsA("Texture") then
pcall(function()
if descendant.Texture ~= "" and not t15.decals[descendant] then
t15.decals[descendant] = descendant.Texture
end
descendant.Texture = ""
end)
else
v416(descendant)
end
end
if os.clock() - now > 0.004 then
task.wait()
now = os.clock()
end
end
end
end
local Terrain = workspace:FindFirstChildOfClass("Terrain")
if Terrain then
pcall(function()
Terrain.WaterWaveSize = 0
Terrain.WaterWaveSpeed = 0
Terrain.WaterReflectance = 0
Terrain.WaterTransparency = 1
Terrain.Decoration = false
local Clouds = Terrain:FindFirstChildOfClass("Clouds")
if Clouds then
Clouds.Enabled = false
end
end)
end
pcall(function()
local Shared = ReplicatedStorage.Shared
local Preferences = Shared:FindFirstChild("Preferences")
if Preferences then
local module = require(Preferences)
module.Set("HideOtherPets", true)
module.Set("DisableVideos", true)
else
local SettingsCmds = require(Shared.SettingsCmds)
SettingsCmds.Write("HideOtherPets", true)
SettingsCmds.Write("DisableVideos", true)
end
end)
v396()
v401()
v406()
v417()
u421 = false
end
t15.revert = function()
for _, v in ipairs(t16) do
pcall(function()
v:Disconnect()
end)
end
table.clear(t16)
u393 = false
local snapshot = t15.snapshot
local Lighting = game:GetService("Lighting")
if snapshot then
pcall(function()
settings().Rendering.QualityLevel = snapshot.quality or Enum.QualityLevel.Automatic
end)
pcall(function()
settings().Physics.PhysicsEnvironmentalThrottle = snapshot.throttle
end)
pcall(function()
Lighting.Technology = snapshot.technology
Lighting.GlobalShadows = snapshot.shadows
Lighting.FogEnd = snapshot.fogEnd
Lighting.Brightness = snapshot.brightness
Lighting.Ambient = snapshot.ambient
Lighting.OutdoorAmbient = snapshot.outdoorAmbient
end)
local Terrain = workspace:FindFirstChildOfClass("Terrain")
if Terrain and snapshot.terrain then
for k, v in pairs(snapshot.terrain) do
pcall(function()
Terrain[k] = v
end)
end
if snapshot.cloudsEnabled ~= nil then
pcall(function()
local Clouds = Terrain:FindFirstChildOfClass("Clouds")
if Clouds then
Clouds.Enabled = snapshot.cloudsEnabled
end
end)
end
end
if snapshot.prefs then
pcall(function()
local Preferences = require(ReplicatedStorage.Shared.Preferences)
for k, pref in pairs(snapshot.prefs) do
Preferences.Set(k, pref)
end
end)
end
end
local n10 = 0
for k, part in pairs(t15.parts) do
if k.Parent then
pcall(function()
k.Material = part[1]
k.CastShadow = part[2]
if part[3] ~= nil and k:IsA("MeshPart") then
k.RenderFidelity = part[3]
end
end)
end
n10 += 1
if n10 % 400 == 0 then
task.wait()
end
end
for k, decal in pairs(t15.decals) do
if k.Parent then
pcall(function()
k.Texture = decal
end)
end
end
for k in pairs(t15.effects) do
if k.Parent then
pcall(function()
k.Enabled = true
end)
end
end
t15.parts = {}
t15.decals = {}
t15.effects = {}
t15.snapshot = nil
end
genv.__SenaV4DecomBoostUndo = t15
local u456 = false
local function v457(p84)
if not p84 or not p84:IsA("Model") then
return
end
local match = p84.Name:match("^(%d+)_")
local v459 = match and tonumber(match)
if not v459 or v459 == LocalPlayer.UserId then
return
end
for _, descendant in ipairs(p84:GetDescendants()) do
if descendant:IsA("BasePart") then
descendant.Transparency = 1
descendant.CanCollide = false
elseif descendant:IsA("Decal") or descendant:IsA("Texture") then
descendant.Transparency = 1
elseif descendant:IsA("ParticleEmitter") or descendant:IsA("Trail") or descendant:IsA("Beam") then
descendant.Enabled = false
elseif descendant:IsA("BillboardGui") or descendant:IsA("SurfaceGui") then
descendant.Enabled = false
end
end
end
local function v462()
if senaV4Config._fpsEggsReady then
return true
end
local u463 = false
local ok, result = pcall(function()
local v466 = require(game:GetService("ReplicatedStorage").Shared.Eggs.PlacedEggRenderer).GetRenderFolder()
if not v466 then
return
end
local children = v466:GetChildren()
for _, child in ipairs(children) do
v457(child)
end
v466.ChildAdded:Connect(function(child)
task.defer(v457, child)
end)
u463 = true
end)
if not ok then
warn("[FPSBoost] Gagal hide egg pemain lain:", result)
return false
end
return u463
end
local function v470(p85)
if not p85 then
return
end
pcall(function()
p85.Parent = nil
end)
end
local function v471()
if senaV4Config._fpsPetsReady then
return true
end
local IsOn
local ok, result = pcall(function()
local Shared = game:GetService("ReplicatedStorage").Shared
local Preferences = Shared:FindFirstChild("Preferences")
if Preferences then
local module = require(Preferences)
module.Set("HideOtherPets", true)
IsOn = module.IsOn
else
local SettingsCmds = require(Shared.SettingsCmds)
SettingsCmds.Write("HideOtherPets", true)
IsOn = SettingsCmds.Allows
end
end)
local v479 = false
if ok and IsOn then
local ok2, result2 = pcall(IsOn, "HideOtherPets")
v479 = ok2 and result2 == true
end
if ok then
if v479 then
local u482 = false
local ok2, result2 = pcall(function()
local ClientRenderedAssets = workspace:FindFirstChild("ClientRenderedAssets") or workspace:WaitForChild("ClientRenderedAssets", 10)
if not ClientRenderedAssets then
return
end
local children = ClientRenderedAssets:GetChildren()
for _, child in ipairs(children) do
v470(child)
end
ClientRenderedAssets.ChildAdded:Connect(function(child)
task.defer(v470, child)
end)
u482 = true
end)
if not ok2 then
warn("[FPSBoost] Gagal hide pet (manual):", result2)
return false
end
return u482
end
end
warn("[FPSBoost] Gagal set HideOtherPets bawaan game:", result or "setting belum aktif")
return false
end
local function v489()
if type(genv.__SenaV4SetCapFps) == "function" then
pcall(genv.__SenaV4SetCapFps, 240)
end
pcall(function()
settings().Rendering.QualityLevel = Enum.QualityLevel.Level01
end)
local function v490()
UserSettings():GetService("UserGameSettings").SavedQualityLevel = Enum.SavedQualitySetting.QualityLevel1
end
pcall(v490)
pcall(function()
require(game:GetService("ReplicatedStorage").Client.LightingsController):SetModifier("FPSBoost", function(p86)
local v491 = table.clone(p86)
v491.Bloom = nil
v491.ColorCorrection = nil
v491.SunRays = nil
v491.DepthOfField = nil
v491.Blur = nil
v491.Clouds = nil
v491.Atmosphere = nil
v491.ShadowSoftness = 1
return v491
end, 100, 0)
end)
pcall(function()
local Lighting = game:GetService("Lighting")
Lighting.GlobalShadows = false
Lighting.Technology = Enum.Technology.Compatibility
Lighting.FogEnd = 9e9
Lighting.Brightness = 2
end)
pcall(function()
local Terrain = workspace:FindFirstChildOfClass("Terrain")
if Terrain then
Terrain.WaterWaveSize = 0
Terrain.WaterWaveSpeed = 0
Terrain.WaterReflectance = 0
Terrain.WaterTransparency = 1
Terrain.Decoration = false
end
end)
pcall(function()
local __DEBRIS = workspace:FindFirstChild("__DEBRIS")
if __DEBRIS then
for _, child in ipairs(__DEBRIS:GetChildren()) do
if child.Name == "PlayerTrap" then
pcall(function()
child:Destroy()
end)
end
end
end
end)
end
local color3 = Color3.fromRGB(120, 120, 120)
local function v498(p87)
if not p87 or not p87:IsA("BasePart") then
return
end
p87.Material = Enum.Material.SmoothPlastic
p87.Color = color3
p87.CastShadow = false
end
local function v499(p88)
if p88:IsA("ParticleEmitter") then
p88.Enabled = false
p88.Rate = 0
pcall(function()
p88:Clear()
end)
elseif p88:IsA("Trail") or p88:IsA("Beam") or p88:IsA("Smoke") or p88:IsA("Fire") or p88:IsA("Sparkles") or p88:IsA("PostEffect") or p88:IsA("Light") or p88:IsA("Highlight") or p88:IsA("Clouds") then
p88.Enabled = false
elseif p88:IsA("Atmosphere") then
p88.Density = 0
p88.Haze = 0
p88.Glare = 0
elseif p88:IsA("Explosion") then
pcall(function()
p88.Visible = false
end)
end
end
local function v500()
if senaV4Config._fpsWorldReady then
return true
end
local u501 = false
local t20 = {}
local ok, result = pcall(function()
local function v505(p89)
if v412(p89) then
return
end
v498(p89)
v499(p89)
end
local t21 = {
workspace,
game:GetService("Lighting")
}
for _, v in ipairs(t21) do
table.insert(t20, v.DescendantAdded:Connect(function(descendant)
task.defer(v505, descendant)
end))
end
local t22 = {}
for _, v in ipairs(t21) do
for _, child in ipairs(v:GetChildren()) do
table.insert(t22, child)
end
end
local n11 = 0
while #t22 > 0 do
local v515 = table.remove(t22)
v505(v515)
for _, child in ipairs(v515:GetChildren()) do
table.insert(t22, child)
end
n11 += 1
if n11 >= 250 and #t22 > 0 then
n11 = 0
RunService.Heartbeat:Wait()
end
end
u501 = true
end)
if ok then
return u501
end
for _, v in ipairs(t20) do
v:Disconnect()
end
warn("[FPSBoost] Gagal flatten material workspace:", result)
return false
end
local function v520()
if senaV4Config._fpsAreasReady then
return true
end
local v521 = v14()
local Areas = v521 and v521:FindFirstChild("Areas")
local GuardAreas = Areas and Areas:FindFirstChild("GuardAreas")
local Build = v521 and v521:FindFirstChild("Build")
if not GuardAreas or not Build then
return false
end
for _, child in ipairs(GuardAreas:GetChildren()) do
local RequiredSpeedSign = child:FindFirstChild("RequiredSpeedSign")
if RequiredSpeedSign then
pcall(function()
RequiredSpeedSign:Destroy()
end)
end
end
local MainMap = Build:FindFirstChild("MainMap")
local Bases = MainMap and MainMap:FindFirstChild("Bases")
local function v530(p90)
if Bases and p90:IsDescendantOf(Bases) then
return p90.Size.Y <= 5 and not string.find(string.upper(p90.Name), "WALL", 1, true)
end
local Parent = p90
while true do
if not Parent or Parent == Build then
return false
end
if not string.find(string.upper(Parent.Name), "BOTTOM", 1, true) then
Parent = Parent.Parent
continue
end
break
end
return true
end
local t23 = {
"ENCHANTED",
"FUSEBIOME",
"WISP",
"BUTTERFLY",
"MARKERS",
"PORTAL",
"TRIGGER"
}
local function v533(p91)
if p91:FindFirstChildOfClass("TouchTransmitter") or p91:FindFirstChildWhichIsA("ProximityPrompt", true) then
return true
end
local Parent = p91
while true do
if not Parent then
return false
end
if Parent == Build then
return false
end
local v535 = string.upper(Parent.Name)
for _, v in ipairs(t23) do
if string.find(v535, v, 1, true) then
return true
end
end
Parent = Parent.Parent
end
end
local function v538(p92)
if not p92:IsA("BasePart") then
return
end
if v533(p92) then
return
end
if v530(p92) then
v498(p92)
else
pcall(function()
p92:Destroy()
end)
end
end
local connection = Build.DescendantAdded:Connect(function(descendant)
task.defer(v538, descendant)
end)
local n12 = 0
local fpsAreaDeleted = 0
for _, descendant in ipairs(Build:GetDescendants()) do
local v544 = descendant.Parent ~= nil
v538(descendant)
if v544 and descendant.Parent == nil then
fpsAreaDeleted += 1
end
n12 += 1
if n12 >= 250 then
n12 = 0
RunService.Heartbeat:Wait()
end
end
senaV4Config._fpsAreaListener = connection
senaV4Config._fpsAreaDeleted = fpsAreaDeleted
senaV4Config._fpsAreasReady = true
return true
end
local function v545()
if senaV4Config._fpsPlotsReady then
return true
end
local u546 = false
local ok, result = pcall(function()
local PlotState2 = require(game:GetService("ReplicatedStorage").Client.PlotState)
if PlotState2.GetMySlot() == nil then
warn("[FPSBoost] Slot plot kita belum ke-resolve, skip delete plot dulu (biar aman).")
return
end
local function v550(p93)
local v551 = PlotState2.GetMySlot()
return v551 ~= nil and p93.Name == tostring(v551)
end
local Plots = PlotState2.GetPlotsFolder() or workspace:WaitForChild("Plots", 10)
if not Plots then
warn("[FPSBoost] workspace.Plots gak ketemu sama sekali.")
return
end
local children = Plots:GetChildren()
local n13 = 0
for _, child in ipairs(children) do
if not v550(child) and pcall(function()
child:Destroy()
end) then
n13 += 1
end
end
Plots.ChildAdded:Connect(function(child)
task.defer(function()
if child.Parent then
if not v550(child) then
pcall(function()
child:Destroy()
end)
end
end
end)
end)
u546 = true
end)
if ok then
return u546
end
warn("[FPSBoost] Gagal delete plot pemain lain:", result)
return false
end
local function v557()
if senaV4Config._fpsTreadmillsReady then
return true
end
local u558 = false
local ok, result = pcall(function()
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local PlotState2 = require(ReplicatedStorage2.Client.PlotState)
local v563
local Modules = ReplicatedStorage2.Client:FindFirstChild("Modules") or ReplicatedStorage2.Client:WaitForChild("Modules", 10)
local RuntimeInstanceRegistry = Modules and (Modules:FindFirstChild("RuntimeInstanceRegistry") or Modules:WaitForChild("RuntimeInstanceRegistry", 10))
if RuntimeInstanceRegistry then
local ok, result = pcall(require, RuntimeInstanceRegistry)
if ok then
v563 = result
end
end
local __ClientTreadmillRenders = workspace:FindFirstChild("__ClientTreadmillRenders") or workspace:WaitForChild("__ClientTreadmillRenders", 10)
if not __ClientTreadmillRenders then
return
end
local function v569()
local v570 = PlotState2.GetMySlot()
if v570 == nil then
return nil
end
local v571 = __ClientTreadmillRenders:FindFirstChild("TreadmillRender_" .. tostring(v570))
if v571 then
return v571
end
local Peek = v563 and (v563.Peek or v563.Get)
if not Peek then
return nil
end
local ok, result = pcall(Peek, "TreadmillPlotRender", tostring(v570))
if ok then
return result
end
return nil
end
local function v575(p94)
local v576 = v569()
if v576 and p94 == v576 then
return true
end
local ok, result = pcall(function()
return p94:GetPivot().Position
end)
if not ok then
return true
end
local ok2, result2 = pcall(PlotState2.IsWorldPositionWithinLocalPlotBounds, result)
local v581 = ok2 and result2
return v581
end
local children = __ClientTreadmillRenders:GetChildren()
local n14 = 0
for _, child in ipairs(children) do
if child:IsA("Model") and not v575(child) and pcall(function()
child:Destroy()
end) then
n14 += 1
end
end
__ClientTreadmillRenders.ChildAdded:Connect(function(child)
task.defer(function()
if child.Parent and child:IsA("Model") and not v575(child) then
pcall(function()
child:Destroy()
end)
end
end)
end)
u558 = true
end)
if ok then
return u558
end
warn("[FPSBoost] Gagal delete treadmill pemain lain:", result)
return false
end
v391 = function()
if u456 or senaV4Config._fpsBoostApplying then
return
end
senaV4Config._fpsBoostApplying = true
local ok, result = pcall(function()
v489()
senaV4Config._fpsPlotsReady = v545() == true
senaV4Config._fpsTreadmillsReady = v557() == true
senaV4Config._fpsAreasReady = v520() == true
senaV4Config._fpsWorldReady = v500() == true
senaV4Config._fpsPetsReady = v471() == true
senaV4Config._fpsEggsReady = v462() == true
u456 = senaV4Config._fpsEggsReady and senaV4Config._fpsPetsReady and senaV4Config._fpsWorldReady and senaV4Config._fpsPlotsReady and senaV4Config._fpsTreadmillsReady and senaV4Config._fpsAreasReady
end)
senaV4Config._fpsBoostApplying = nil
if not ok then
warn("[FPSBoost] Gagal menerapkan FPS Boost:", result)
end
end
end
local function v588(p95, p96, p97)
local u589 = true
pcall(function()
local filterDescendantsInstances = { p97 }
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
local v592 = p95
for i = 1, 8 do
raycastParams.FilterDescendantsInstances = filterDescendantsInstances
local v594 = p96 - v592
if v594.Magnitude < 1 then
break
end
local hit = workspace:Raycast(v592, v594, raycastParams)
if not hit then
break
end
if not hit.Instance.CanCollide then
table.insert(filterDescendantsInstances, hit.Instance)
v592 = hit.Position + v594.Unit * 0.1
continue
end
u589 = false
break
end
end)
return u589
end
local t24 = {}
local ProximityPromptService = game:GetService("ProximityPromptService")
local t25 = {
TITLES = {
auto_steal = "Auto Steal",
mech_boss = "Mech Boss",
butterfly = "Butterfly Bloom",
auto_place = "Auto Place",
treadmill = "Treadmill"
},
ORDER = {
"auto_steal",
"mech_boss",
"butterfly",
"auto_place",
"treadmill"
}
}
do
local function v599(p98)
if p98 == "auto_steal" then
local __SenaV4StealWantsCharacter = genv.__SenaV4StealWantsCharacter
return __SenaV4StealWantsCharacter ~= nil and __SenaV4StealWantsCharacter() == true
end
if p98 ~= "mech_boss" then
if p98 == "butterfly" then
local __SenaV4ButterflyRuntime = genv.__SenaV4ButterflyRuntime
return __SenaV4ButterflyRuntime ~= nil and __SenaV4ButterflyRuntime.wantsCharacter == true
end
if p98 == "auto_place" then
return senaV4Config.IsPlacing == true
end
return false
end
if LocalPlayer:GetAttribute("InScrambleArena") == true then
return true
end
if senaV4Config.ScrambleBossAuto ~= true then
return false
end
local ScrambleArena = workspace:FindFirstChild("ScrambleArena")
local v603 = workspace:FindFirstChild("ScrambleArenaPortal") ~= nil
if not v603 then
v603 = ScrambleArena ~= nil
if v603 then
v603 = tostring(ScrambleArena:GetAttribute("Phase") or "") ~= ""
end
v603 = v603 and ScrambleArena:GetAttribute("Phase") ~= "Defeated"
end
return v603
end
local function v604(p99)
if p99 == "auto_steal" then
local __SenaV4EggRuntime = genv.__SenaV4EggRuntime
return __SenaV4EggRuntime ~= nil and __SenaV4EggRuntime.enabled == true and (__SenaV4EggRuntime.running == true or __SenaV4EggRuntime.carry ~= nil and __SenaV4EggRuntime.carry.active == true)
end
if p99 == "mech_boss" then
return LocalPlayer:GetAttribute("InScrambleArena") == true
end
if p99 ~= "butterfly" then
if p99 == "auto_place" then
return senaV4Config.IsPlacing == true
end
return false
end
local __SenaV4ButterflyRuntime = genv.__SenaV4ButterflyRuntime
return __SenaV4ButterflyRuntime ~= nil and __SenaV4ButterflyRuntime.active == true
end
t25.blocker = function(p100)
if p100 ~= "mech_boss" and LocalPlayer:GetAttribute("InScrambleArena") == true then
return "mech_boss"
end
for _, v in ipairs(t25.ORDER) do
if v == p100 then
return nil
end
if v599(v) then
return v
end
end
return nil
end
t25.holder = function(p101)
for _, v in ipairs(t25.ORDER) do
if v ~= p101 and v ~= "treadmill" then
if v604(v) then
return v
end
end
end
return nil
end
end
local v611, v612, v613, v614, v615
do
local function v616()
local t26 = {}
t26.__index = t26
local t27 = {
auto_place = true,
auto_fuse = true,
equip_best = true
}
local t28 = {
auto_steal = 100,
auto_hatch = 80,
auto_place = 70,
auto_fuse = 50,
equip_best = 40,
rewards = 20
}
local function v620(p102)
local t29 = {}
for k, v in pairs(p102) do
t29[k] = v
end
return t29
end
t26.new = function()
local obj = setmetatable({}, t26)
obj.destroyed = false
obj.active = nil
obj.background = nil
obj.reservations = {}
obj.listeners = {}
obj.backgroundListeners = {}
obj.serial = 0
return obj
end
t26._snapshot = function(p103)
local active = p103.active
return {
busy = active ~= nil,
operation = active and active.owner or nil,
priority = active and active.priority or 0,
reservedCount = active and #active.uids or 0,
reservations = v620(p103.reservations)
}
end
t26._emit = function(p104)
local v626 = p104:_snapshot()
for k in pairs(p104.listeners) do
local ok, result = pcall(k, v626)
if not ok then
warn("[StealAnEgg] Coordinator listener failed:", result)
end
end
end
t26._emitBackground = function(p105)
local background = p105.background
local t30 = {
busy = background ~= nil
}
local owner = background and background.owner
t30.operation = owner or nil
for k in pairs(p105.backgroundListeners) do
local ok, result = pcall(k, t30)
if not ok then
warn("[StealAnEgg] Background coordinator listener failed:", result)
end
end
end
t26.subscribe = function(p106, p107)
p106.listeners[p107] = true
pcall(p107, p106:_snapshot())
local function v636()
p106.listeners[p107] = nil
end
return v636
end
t26.subscribeBackground = function(p108, p109)
p108.backgroundListeners[p109] = true
pcall(p109, {
busy = p108.background ~= nil,
operation = p108.background and p108.background.owner or nil
})
local function v637()
p108.backgroundListeners[p109] = nil
end
return v637
end
t26.getSnapshot = function(p110)
return p110:_snapshot()
end
t26.isBackgroundBusy = function(p111)
return p111.background ~= nil
end
t26.isReserved = function(p112, p113, p114)
local v638 = p112.reservations[p113]
return v638 ~= nil and v638 ~= p114
end
t26.tryAcquire = function(p115, p116, p117, p118)
if p115.destroyed then
return nil, "Coordinator destroyed"
end
if type(p116) ~= "string" or p116 == "" then
return nil, "Invalid operation owner"
end
if p115.active then
return nil, "Busy: " .. p115.active.owner
end
if p115.background and t27[p116] then
return nil, "Busy: background " .. p115.background.owner
end
local t31 = {}
local t32 = {}
local ipairs_ = ipairs
local v642 = type(p117) == "table" and p117 or {}
for _, v in ipairs_(v642) do
if type(v) == "string" and v ~= "" and not t32[v] then
if p115:isReserved(v, p116) then
return nil, "UID reserved by " .. tostring(p115.reservations[v])
end
t32[v] = true
table.insert(t31, v)
end
end
p115.serial += 1
local active = {
id = p115.serial,
lane = "foreground",
owner = p116,
priority = tonumber(p118) or t28[p116] or 0,
uids = t31,
released = false
}
p115.active = active
for _, v in ipairs(t31) do
p115.reservations[v] = p116
end
p115:_emit()
return active
end
t26.tryAcquireBackground = function(p119, p120, p121)
if p119.destroyed then
return nil, "Coordinator destroyed"
end
if type(p120) ~= "string" or p120 == "" then
return nil, "Invalid operation owner"
end
if p119.background then
return nil, "Background busy: " .. p119.background.owner
end
if p119.active and t27[p119.active.owner] then
return nil, "Foreground tool busy: " .. p119.active.owner
end
local t33 = {}
local t34 = {}
local ipairs_ = ipairs
local v651 = type(p121) == "table" and p121 or {}
for _, v in ipairs_(v651) do
if type(v) == "string" and v ~= "" and not t34[v] then
if p119:isReserved(v, p120) then
return nil, "UID reserved by " .. tostring(p119.reservations[v])
end
t34[v] = true
table.insert(t33, v)
end
end
p119.serial += 1
local background = {
id = p119.serial,
lane = "background",
owner = p120,
priority = 0,
uids = t33,
released = false
}
p119.background = background
for _, v in ipairs(t33) do
p119.reservations[v] = p120
end
p119:_emitBackground()
return background
end
t26.release = function(p122, p123)
if type(p123) ~= "table" or p123.released then
return false
end
p123.released = true
local ipairs_ = ipairs
local uids = p123.uids or {}
for _, uid in ipairs_(uids) do
if p122.reservations[uid] == p123.owner then
p122.reservations[uid] = nil
end
end
local v661 = p122.active == p123
if v661 then
p122.active = nil
elseif p122.background == p123 then
p122.background = nil
p122:_emitBackground()
end
if v661 then
p122:_emit()
end
return true
end
t26.destroy = function(p124)
if p124.destroyed then
return
end
p124.destroyed = true
if p124.active then
p124:release(p124.active)
end
if p124.background then
p124:release(p124.background)
end
table.clear(p124.reservations)
table.clear(p124.listeners)
table.clear(p124.backgroundListeners)
end
return t26
end
local v662 = v616()
local function v663()
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local Areas = require(ReplicatedStorage2.Data.Areas)
local Assets = require(ReplicatedStorage2.Data.Assets)
local Guards = require(ReplicatedStorage2.Data.Guards)
local Mutations = require(ReplicatedStorage2.Shared.Modules.Mutations)
local t35 = {
Common = 1,
Uncommon = 2,
Rare = 3,
Epic = 4,
Legendary = 5,
Mythic = 6,
Cosmic = 7,
Secret = 8,
Eternal = 9,
Divine = 10
}
local function v670(p125)
local t36 = {}
local t37 = {}
for _, v in ipairs(p125) do
if type(v) == "string" and v ~= "" and not t36[v] then
t36[v] = true
table.insert(t37, v)
end
end
table.sort(t37)
return t37
end
return {
rarityRank = function(p126)
return t35[p126] or 0
end,
getRarities = function()
local t38 = {}
for k in pairs(Assets.ByRarity) do
table.insert(t38, k)
end
table.sort(t38, function(p127, p128)
local v677 = t35[p127] or 99
local v678 = t35[p128] or 99
if v677 == v678 then
return tostring(p127) < tostring(p128)
end
return v677 < v678
end)
return t38
end,
getNames = function()
local t39 = {}
for _, v in pairs(Assets.Directory) do
table.insert(t39, v.DisplayName or v._id)
end
return v670(t39)
end,
getAreas = function()
local t40 = {}
for k, v in pairs(Areas.Directory) do
if type(k) == "string" and type(v) == "table" and type(v.DropTable) == "table" then
table.insert(t40, k)
end
end
table.sort(t40, function(p129, p130)
local v685 = Guards.Directory[p129]
local v686 = Guards.Directory[p130]
local WalkSpeed = v685 and v685.WalkSpeed or math.huge
local WalkSpeed2 = v686 and v686.WalkSpeed
WalkSpeed2 = WalkSpeed2 or math.huge
if WalkSpeed == WalkSpeed2 then
return p129 < p130
end
return WalkSpeed < WalkSpeed2
end)
return t40
end,
getMutations = function()
local t41 = {}
local v690 = Mutations.Ids()
local pairs_ = pairs
local v692 = type(v690) == "table" and v690 or {}
for k in pairs_(v692) do
if type(k) == "string" and k ~= Mutations.NO_MUTATION then
local ok, result = pcall(Mutations.LabelOf, k)
table.insert(t41, ok and type(result) == "string" and result ~= "" and result or k)
end
end
return v670(t41)
end,
resolveMutationId = function(p131)
if type(p131) ~= "string" then
return nil
end
if Mutations.IdSet[p131] then
return p131
end
for k in pairs(Mutations.Ids()) do
if k ~= Mutations.NO_MUTATION and Mutations.LabelOf(k) == p131 then
return k
end
end
return nil
end,
resolve = function(p132)
local v697 = p132 and Assets.Directory[p132.AssetCategory]
local Rarity = v697 and v697.Rarity
local DisplayName = Rarity and (Rarity.DisplayName or Rarity._id) or "Unknown"
return {
name = v697 and (v697.DisplayName or v697._id) or p132 and p132.AssetCategory or "Unknown",
category = p132 and p132.AssetCategory or "Unknown",
rarity = DisplayName,
rarityRank = t35[DisplayName] or 0,
rarityColor = Rarity and Rarity.Color or nil,
icon = v697 and type(v697.Icon) == "string" and v697.Icon or nil
}
end
}
end
v611 = v663()
local function v700(p133)
if not p133 then
return nil
end
for _, descendant in ipairs(p133:GetDescendants()) do
if not descendant:IsA("ModuleScript") or not (descendant.Name == "Limits" and descendant.Parent) then
continue
end
if not descendant.Parent:FindFirstChild("Surface") then
continue
end
if descendant.Parent:FindFirstChild("Runtime") then
return descendant
end
end
return nil
end
local v703 = v700(LocalPlayer:FindFirstChildOfClass("PlayerScripts")) or v700(game:GetService("StarterPlayer"):FindFirstChild("StarterPlayerScripts"))
local function v704()
local Players2 = game:GetService("Players")
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local RunService2 = game:GetService("RunService")
local LocalPlayer2 = Players2.LocalPlayer
local EggState2 = require(ReplicatedStorage2.Client.EggState)
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
local EggWorld = Remotes.EggWorld
local AreaEggs = require(ReplicatedStorage2.Shared.Types.AreaEggs)
local AreaEggSlotIdentity = require(ReplicatedStorage2.Shared.Util.AreaEggSlotIdentity)
local AreaEggResetWall3 = require(ReplicatedStorage2.Client.AreaEggResetWall)
local SpeedPowerProjection = require(ReplicatedStorage2.Client.SpeedPowerProjection)
local TreadmillUtil = require(ReplicatedStorage2.Shared.Util.TreadmillUtil)
local EggRecords = require(ReplicatedStorage2.Shared.Util.EggRecords)
local AssetEarnings = require(ReplicatedStorage2.Shared.Util.AssetEarnings)
local Save = require(ReplicatedStorage2.Shared.Save)
local PlotState2 = require(ReplicatedStorage2.Client.PlotState)
local function v721()
return genv.__SenaV4AdminBoost == true and 3000 or 1000
end
local t42 = {
Divine = true,
Eternal = true
}
local t43 = {
"LastObservedSample",
"LastSample",
"LastGoodSample",
"LastGameplayTrustedSample",
"LastValidatedSample",
"LastValidatedGroundedSample",
"LastConfirmedGroundSample",
"CandidateGroundedSample"
}
local vector32 = Vector3.new(544.76, 71.5, -416.48)
local t44 = {
-364.3,
-367.21,
-371.12,
-375.65
}
cFrameNew(599.8, 113.5, -325)
Vector3.new(599.8, 70, -325)
local cFrame = cFrameNew(616.749, 71.667, -395.585)
local t45 = {
Script = true,
LocalScript = true,
BillboardGui = true,
Sound = true
}
local t46 = {}
t46.__index = t46
local Stats = game:GetService("Stats")
local function v730(p134, p135)
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart then
pcall(function()
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
end)
end
local n15 = 0
pcall(function()
n15 = Stats.Network.ServerStats.Ping:GetValue()
end)
task.wait(math.max(0.3, n15 * 2.5 / 1000))
local t47 = {
Uid = p134
}
if p135 ~= nil then
t47.FirstAreaSlotKey = p135
end
local response, v735 = EggWorld.AskFieldEggCarry:InvokeServer(t47)
local v736 = response == true
local v737 = typeof(v735) == "string" and v735 or nil
return v736, v737
end
local function v738(p136, p137, p138)
local connection = p136:Connect(p137)
table.insert(p138, connection)
return connection
end
local function v740(p139)
for _, v in ipairs(p139) do
pcall(v.Disconnect, v)
end
table.clear(p139)
end
local function v743(p140, p141)
local ipairs_ = ipairs
local v745 = p140 or {}
for _, v in ipairs_(v745) do
if v == p141 then
return true
end
end
return false
end
local v748
local function v749(p142, p143)
if type(p142) ~= "function" or type(debug) ~= "table" or type(debug.getconstants) ~= "function" then
return false
end
local ok, result = pcall(debug.getconstants, p142)
if not ok or type(result) ~= "table" then
return false
end
local t48 = {}
for _, v in ipairs(result) do
if type(v) == "string" then
t48[v] = true
end
end
for _, v in ipairs(p143) do
if not t48[v] then
return false
end
end
return true
end
local function v757(p144)
if type(p144) ~= "function" or type(debug) ~= "table" or type(debug.info) ~= "function" then
return ""
end
local ok, result = pcall(debug.info, p144, "s")
return ok and tostring(result) or ""
end
local function v760(p145)
local HumanoidRootPart = p145 and p145:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart then
HumanoidRootPart:SetAttribute("KillPartIgnore", true)
end
end
local function v762(p146)
local Humanoid = p146 and p146:FindFirstChildOfClass("Humanoid")
if not Humanoid or not Humanoid.Parent then
return false
end
pcall(function()
Humanoid.BreakJointsOnDeath = false
end)
local clone = Humanoid:Clone()
Humanoid:Destroy()
clone.Parent = p146
local CurrentCamera = workspace.CurrentCamera
if CurrentCamera then
CurrentCamera.CameraSubject = clone
end
local Animate = p146:FindFirstChild("Animate")
if Animate then
local clone2 = Animate:Clone()
Animate:Destroy()
clone2.Parent = p146
end
pcall(function()
clone:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
clone:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
clone:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
clone:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding, false)
clone:SetStateEnabled(Enum.HumanoidStateType.Physics, false)
clone:ChangeState(Enum.HumanoidStateType.Running)
end)
return true
end
local function v768(p147)
if p147._healthPinner then
pcall(p147._healthPinner.Disconnect, p147._healthPinner)
p147._healthPinner = nil
end
if p147._healthChangedConnection then
pcall(p147._healthChangedConnection.Disconnect, p147._healthChangedConnection)
p147._healthChangedConnection = nil
end
end
local function v769(p148, p149)
v768(p148)
local Humanoid = p149 and p149:FindFirstChildOfClass("Humanoid")
local HumanoidRootPart = p149 and p149:FindFirstChild("HumanoidRootPart")
if not Humanoid then
return false
end
local health = math.max(Humanoid.MaxHealth, 100)
local u773 = false
local n16 = 0
local function v775()
if u773 or p148.destroyed or LocalPlayer2.Character ~= p149 or not Humanoid.Parent then
return
end
local now = os.clock()
if now - n16 < 0.1 and Humanoid.Health > 0 and Humanoid:GetState() ~= Enum.HumanoidStateType.Dead then
return
end
n16 = now
u773 = true
pcall(function()
Humanoid.BreakJointsOnDeath = false
Humanoid.RequiresNeck = false
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
if Humanoid.Health <= 0 then
Humanoid.Health = health
end
if Humanoid:GetState() == Enum.HumanoidStateType.Dead then
Humanoid:ChangeState(Enum.HumanoidStateType.Running)
end
if HumanoidRootPart and HumanoidRootPart.Parent == p149 and HumanoidRootPart.Anchored then
HumanoidRootPart.Anchored = false
end
end)
u773 = false
end
v775()
p148._healthChangedConnection = Humanoid.HealthChanged:Connect(function(health2)
if health2 <= 0 or health2 < health then
v775()
end
end)
p148._healthPinner = RunService2.Heartbeat:Connect(v775)
return true
end
local function v777(p150)
local Humanoid = p150 and p150:FindFirstChildOfClass("Humanoid")
if not Humanoid then
return
end
pcall(function()
Humanoid.BreakJointsOnDeath = false
Humanoid.RequiresNeck = false
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
end)
end
local function v779(p151)
local Humanoid = p151 and p151:FindFirstChildOfClass("Humanoid")
if not Humanoid then
return
end
pcall(function()
if Humanoid.Health <= 0 then
Humanoid.Health = math.max(Humanoid.MaxHealth, 1)
end
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, true)
Humanoid.BreakJointsOnDeath = true
Humanoid.RequiresNeck = true
end)
end
local function v781()
return getgenv and getgenv() or _G
end
local function v782()
if type(getconnections) ~= "function" or type(debug) ~= "table" or type(debug.info) ~= "function" or type(debug.getupvalue) ~= "function" then
return false
end
local ok, result = pcall(getconnections, LocalPlayer2.Idled)
if not (ok and type(result) == "table") then
return false
end
for _, v in ipairs(result) do
local Function = v.Function
if type(Function) == "function" and type(v.Disable) == "function" then
local ok2, result2 = pcall(debug.info, Function, "s")
local ok3, result3 = pcall(debug.getupvalue, Function, 1)
if not ok2 or not (type(result2) == "string" and result2:sub(-27) == ".PlayerScripts.Game.AntiAFK" and ok3) then
continue
end
if type(result3) == "number" then
return (pcall(v.Disable, v))
end
end
end
return false
end
local function v792()
local v793 = v781()
local __SenaV4StealAnEggMovementSpoof = v793.__SenaV4StealAnEggMovementSpoof
if type(__SenaV4StealAnEggMovementSpoof) ~= "table" or __SenaV4StealAnEggMovementSpoof.Version ~= 436 then
if type(__SenaV4StealAnEggMovementSpoof) == "table" then
__SenaV4StealAnEggMovementSpoof.Enabled = false
end
__SenaV4StealAnEggMovementSpoof = {
Version = 436,
Installed = false,
Enabled = false,
Mode = "StateBaseline",
Humanoid = nil,
RootPart = nil,
WalkSpeed = 600
}
v793.__SenaV4StealAnEggMovementSpoof = __SenaV4StealAnEggMovementSpoof
end
return __SenaV4StealAnEggMovementSpoof
end
local function v795(p152, p153)
local v796 = v792()
if not v796 then
return false
end
local Humanoid = p152 and p152:FindFirstChildOfClass("Humanoid")
local HumanoidRootPart = p152 and p152:FindFirstChild("HumanoidRootPart")
v796.Humanoid = Humanoid
v796.RootPart = HumanoidRootPart
v796.WalkSpeed = math.clamp(tonumber(p153) or 600, 200, 1350)
v796.Enabled = false
return Humanoid ~= nil and HumanoidRootPart ~= nil
end
local function v799()
local __SenaV4StealAnEggMovementSpoof = v781().__SenaV4StealAnEggMovementSpoof
if type(__SenaV4StealAnEggMovementSpoof) == "table" then
__SenaV4StealAnEggMovementSpoof.Enabled = false
__SenaV4StealAnEggMovementSpoof.Humanoid = nil
__SenaV4StealAnEggMovementSpoof.RootPart = nil
end
end
local function v801(p154, p155, p156)
local u802
if type(getcallbackvalue) == "function" then
if type(debug) == "table" and type(debug.getupvalue) == "function" then
local Signal = ReplicatedStorage2:FindFirstChild("Packages") and ReplicatedStorage2.Packages:FindFirstChild("Signal")
if Signal then
local ok, result = pcall(require, Signal)
if ok and type(result) == "table" and type(result.Invoked) == "function" then
local ok2, result2 = pcall(result.Invoked, "ClientCharacter: GetDebugSnapshot")
if ok2 and result2 then
local ok3, result3 = pcall(getcallbackvalue, result2, "OnInvoke")
if ok3 and type(result3) == "function" then
local ok4, result4 = pcall(debug.getinfo, result3)
if ok4 then
local function v812(p157, p158, p159)
if u802 or type(p157) ~= "table" or p158 > 3 or p159[p157] then
return
end
p159[p157] = true
if rawget(p157, "Player") == p154 and rawget(p157, "Character") == p154.Character and rawget(p157, "Humanoid") == p155 and rawget(p157, "RootPart") == p156 and type(rawget(p157, "SampleHistory")) == "table" and type(rawget(p157, "Evidence")) == "table" then
u802 = p157
return
end
local n17 = 0
for _, v in pairs(p157) do
n17 += 1
if n17 > 128 then
break
end
if type(v) == "table" then
v812(v, p158 + 1, p159)
end
end
end
local n18 = 1
local nups = result4.nups or 0
for i = n18, nups do
local ok5, result5 = pcall(debug.getupvalue, result3, i)
if not ok5 or type(result5) ~= "table" then
continue
end
v812(result5, 0, {})
if u802 then
break
end
end
end
end
end
end
end
end
end
if not u802 and type(getgc) == "function" then
local ok, result = pcall(getgc, true)
if ok and type(result) == "table" then
for _, v in ipairs(result) do
if type(v) == "table" and rawget(v, "Player") == p154 and rawget(v, "Character") == p154.Character and rawget(v, "Humanoid") == p155 and rawget(v, "RootPart") == p156 and type(rawget(v, "SampleHistory")) == "table" and type(rawget(v, "Evidence")) == "table" then
u802 = v
break
end
end
end
end
return u802
end
local t49 = {
busy = false,
nextAt = 0,
misses = 0,
found = nil
}
local function v826(p160, p161, p162)
local found = t49.found
if type(found) == "table" and rawget(found, "Player") == p160 and rawget(found, "Character") == p160.Character and rawget(found, "Humanoid") == p161 and rawget(found, "RootPart") == p162 then
return found
end
if t49.busy or os.clock() < t49.nextAt then
return nil
end
t49.busy = true
task.spawn(function()
task.wait()
local ok, result = pcall(v801, p160, p161, p162)
local v830 = ok and result or nil
t49.found = v830
t49.misses = v830 and 0 or t49.misses + 1
t49.nextAt = os.clock() + (v830 and 0.2 or t49.misses >= 5 and 10 or 1)
t49.busy = false
end)
return nil
end
local function v831(p163, p164, p165)
if type(p163) ~= "table" then
return false
end
local value = rawget(p163, "RootPart")
local CFrame_2 = value and value.Parent and value.CFrame
CFrame_2 = CFrame_2 or nil
local Position = CFrame_2 and CFrame_2.Position or nil
local vector33 = typeof(p165) == "Vector3" and p165 or Vector3.zero
local function v836(p166)
if type(p166) == "table" then
rawset(p166, "WalkSpeed", p164)
if CFrame_2 then
rawset(p166, "CFrame", CFrame_2)
rawset(p166, "Position", Position)
rawset(p166, "LinearVelocity", vector33)
rawset(p166, "AngularVelocity", Vector3.zero)
end
end
end
for _, v in ipairs(t43) do
v836(rawget(p163, v))
end
local pairs_ = pairs
local v840 = rawget(p163, "SampleHistory") or {}
for _, v in pairs_(v840) do
v836(v)
end
local pairs_2 = pairs
local v844 = rawget(p163, "SafeGroundCheckpoints") or {}
for _, v in pairs_2(v844) do
v836(v)
end
local value2 = rawget(p163, "Evidence")
if type(value2) == "table" then
value2.Speed = 0
value2.Teleport = 0
value2.Flight = 0
end
local value3 = rawget(p163, "ImpulseContext")
if type(value3) == "table" then
local maxHorizontalSpeed = math.max(tonumber(value3.MaxHorizontalSpeed) or 0, p164)
local v850 = math.max((tonumber(value3.ExpiresAt) or 0) - (tonumber(value3.StartedAt) or 0), 0.15)
value3.MaxHorizontalSpeed = maxHorizontalSpeed
if Position then
value3.OriginPosition = Position
end
value3.MaxHorizontalDistance = math.max(tonumber(value3.MaxHorizontalDistance) or 0, maxHorizontalSpeed * v850 + 48)
v836(value3.PreMovementSafeSample)
end
if rawget(p163, "CorrectionContext") == nil then
rawset(p163, "FirstSuspiciousAt", nil)
if rawget(p163, "ThreatLevel") == "Observing" then
rawset(p163, "ThreatLevel", "Trusted")
end
end
return true
end
local function v851()
local v852 = v781()
local __SenaV4StealAnEggIntegritySpoof = v852.__SenaV4StealAnEggIntegritySpoof
if type(__SenaV4StealAnEggIntegritySpoof) ~= "table" then
__SenaV4StealAnEggIntegritySpoof = {}
v852.__SenaV4StealAnEggIntegritySpoof = __SenaV4StealAnEggIntegritySpoof
end
return __SenaV4StealAnEggIntegritySpoof
end
local function v854(p167, p168, p169)
return type(p167) == "table" and rawget(p167, "Player") == LocalPlayer2 and rawget(p167, "Character") == LocalPlayer2.Character and rawget(p167, "Humanoid") == p168 and rawget(p167, "RootPart") == p169
end
local function v855(p170, p171, p172)
return v854(p170, p171, p172)
end
local function v856(p173, p174, p175)
local v857 = v851()
local State = v857.State
if not v854(State, p173, p174) then
local now = os.clock()
if now < (v857.NextSearchAt or 0) then
return false
end
v857.NextSearchAt = now + 0.2
State = v826(LocalPlayer2, p173, p174)
end
if not State then
return false
end
if not v855(State, p173, p174) then
v857.Enabled = false
v857.Humanoid = p173
v857.RootPart = p174
v857.State = State
return false
end
v857.NextSearchAt = 0
v857.Enabled = true
v857.Humanoid = p173
v857.RootPart = p174
v857.State = State
v857.WalkSpeed = math.clamp(p175 * 1.35, 200, 1350)
v857.TravelVelocity = Vector3.zero
v831(State, v857.WalkSpeed, v857.TravelVelocity)
return true
end
local function v860(p176, p177, p178, p179)
local __SenaV4StealAnEggIntegritySpoof = v781().__SenaV4StealAnEggIntegritySpoof
if type(__SenaV4StealAnEggIntegritySpoof) ~= "table" or not __SenaV4StealAnEggIntegritySpoof.Enabled or __SenaV4StealAnEggIntegritySpoof.Humanoid ~= p176 or __SenaV4StealAnEggIntegritySpoof.RootPart ~= p177 or not v855(__SenaV4StealAnEggIntegritySpoof.State, p176, p177) then
return false
end
__SenaV4StealAnEggIntegritySpoof.WalkSpeed = math.clamp(p178 * 1.35, 200, 1350)
if typeof(p179) == "Vector3" then
__SenaV4StealAnEggIntegritySpoof.TravelVelocity = p179
elseif typeof(__SenaV4StealAnEggIntegritySpoof.TravelVelocity) ~= "Vector3" then
__SenaV4StealAnEggIntegritySpoof.TravelVelocity = Vector3.zero
end
return v831(__SenaV4StealAnEggIntegritySpoof.State, __SenaV4StealAnEggIntegritySpoof.WalkSpeed, __SenaV4StealAnEggIntegritySpoof.TravelVelocity)
end
local function v862(p180)
local __SenaV4StealAnEggIntegritySpoof = v781().__SenaV4StealAnEggIntegritySpoof
if type(__SenaV4StealAnEggIntegritySpoof) ~= "table" then
return
end
if p180 == nil or __SenaV4StealAnEggIntegritySpoof.Humanoid == p180 then
__SenaV4StealAnEggIntegritySpoof.Enabled = false
__SenaV4StealAnEggIntegritySpoof.Humanoid = nil
__SenaV4StealAnEggIntegritySpoof.RootPart = nil
__SenaV4StealAnEggIntegritySpoof.State = nil
__SenaV4StealAnEggIntegritySpoof.TravelVelocity = nil
__SenaV4StealAnEggIntegritySpoof.NextSearchAt = 0
end
end
local function v864(p181, p182)
if #p182 == 0 then
return true
end
local ipairs_ = ipairs
local Mutations = p181.Mutations or {}
for _, Mutation in ipairs_(Mutations) do
if v743(p182, Mutation) then
return true
end
end
return p181.BaseMutation ~= nil and v743(p182, p181.BaseMutation)
end
local function v869()
local v870 = TreadmillUtil.SpeedPowerToWalkSpeed(SpeedPowerProjection.ReadProjected())
local Character = LocalPlayer2.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
return math.clamp(math.min(v870, Humanoid and Humanoid.WalkSpeed or v870), 200, 1000)
end
t46.new = function(p183, p184, p185)
local obj = setmetatable({}, t46)
obj.catalog = p183
obj.limitsModule = p184
obj.coordinator = p185
obj.operationToken = nil
obj.connections = {}
obj.listeners = {}
obj.records = {}
obj.enabled = false
obj.userStealEnabled = false
obj.skippedEggs = {}
obj.riftWants = {}
obj.riftOnly = false
obj.indexObjectiveEnabled = false
obj.wispObjective = nil
obj.manualObjectiveEnabled = false
obj.manualQueue = {}
obj.manualOrder = {}
obj.indexCache = {
at = 0,
set = {}
}
obj.running = false
obj.safeStarting = false
obj.movementRetryPending = false
obj.destroyed = false
obj.resetBlocked = AreaEggResetWall3.IsSealed()
obj.gateOpenAt = obj.resetBlocked and math.huge or os.clock()
obj.activeTween = nil
obj.activeTarget = nil
obj.claimPresentationNode = nil
obj.claimPresentationOriginal = nil
obj.claimPresentationSuppression = nil
obj.carry = {
active = false,
uid = nil,
generation = 0
}
obj.carryWorker = nil
obj.tweenRecoveryUid = nil
obj.planGeneration = 0
obj.treadmillDecoy = nil
obj.treadmillDecoyCamera = nil
obj.treadmillDecoyCameraConnection = nil
obj.treadmillDecoyCharacterConnection = nil
obj.treadmillPopupConnection = nil
obj.treadmillDecoyRealTransparency = nil
obj.hoverPadOwnerId = string.format("%s:%0.6f", tostring(obj), os.clock())
obj.instantPhase = nil
obj.primerUid = nil
obj.primerUids = {}
obj.targetUid = nil
obj.hitTimer = nil
obj.guardHitBoostInstalled = false
obj.stats = {
status = obj.resetBlocked and "Reset wall closed" or "Ready",
available = 0,
matching = 0,
lastTarget = "None",
lastResult = "Idle"
}
obj.config = {
stealMode = "Fly",
flyAerial = false,
flyZigzag = false,
speed = 600,
antiTrap = true,
heaviestFirst = false,
highestValueFirst = false,
minWeightKg = 0,
espEnabled = false,
espRarity = true,
espName = true,
espKg = true,
espMutation = true,
espValue = true,
espPlaced = false,
espIcon = true,
espMinRank = 0,
espMinValue = 0,
minValuePerSec = 0,
rarityEnabled = false,
rarities = {},
nameEnabled = false,
names = {},
areaEnabled = false,
areas = {},
mutationEnabled = false,
mutations = {}
}
obj.gameAntiAfkDisabled = v782()
if LocalPlayer2.Character then
v760(LocalPlayer2.Character)
local Humanoid = LocalPlayer2.Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
pcall(function()
Humanoid.BreakJointsOnDeath = false
Humanoid.RequiresNeck = false
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
end)
end
v769(obj, LocalPlayer2.Character)
end
local ok, result = pcall(function()
return require(ReplicatedStorage2.Shared.Util.EggRecords)
end)
obj.weightUtil = ok and type(result.WeightKgForScale) == "function" and result or nil
local function v877(p186)
if not p186 then
return
end
v738(p186.DescendantAdded, function(p187)
if obj.config.antiTrap then
obj:_purgeTrap(p187)
end
end, obj.connections)
end
v877(workspace:FindFirstChild("Transient"))
v877(workspace:FindFirstChild("__DEBRIS"))
if obj.config.antiTrap then
obj:_purgeTraps()
end
v738(workspace.ChildAdded, function(p188)
if p188.Name == "Transient" or p188.Name == "__DEBRIS" then
v877(p188)
if obj.config.antiTrap then
obj:_purgeTraps()
end
end
end, obj.connections)
obj:_replaceSnapshot(EggState2.ReadFieldEggs())
v738(EggState2.FieldRefreshed, function(p189)
obj:_replaceSnapshot(p189)
end, obj.connections)
v738(EggState2.FieldShifted, function(p190)
obj.records[p190.Uid] = p190
obj:_refreshCounts()
if obj.enabled and not obj.destroyed and not obj.running and not obj.carry.active and (p190.State == AreaEggs.States.Slot or p190.State == AreaEggs.States.Dropped) and not obj._shiftWakePending then
obj._shiftWakePending = true
task.delay(0.25, function()
obj._shiftWakePending = nil
if not obj.destroyed and obj.enabled then
if not obj.running then
obj:_schedule()
end
end
end)
end
end, obj.connections)
v738(EggState2.FieldGone, function(p191)
obj.records[p191] = nil
if obj.activeTarget and obj.activeTarget.Uid == p191 then
if obj.carry.active and obj.carry.uid == p191 then
obj:_refreshCounts()
return
end
obj.carryAttemptToken = nil
obj:_clearArrivalHold(p191)
if obj.activeTween and obj.activeTween.Cancel then
pcall(obj.activeTween.Cancel, obj.activeTween)
end
local activeTarget = obj.activeTarget
task.delay(0.65, function()
if obj.destroyed or not obj.enabled then
return
end
if obj.carry.active and obj.carry.uid == p191 then
return
end
if obj.activeTarget == activeTarget and activeTarget.Uid == p191 then
obj:_finish("Target removed — continuing")
end
end)
end
obj:_refreshCounts()
end, obj.connections)
v738(EggState2.ResetCountdown, function()
obj:_closeGate("Egg reset countdown")
end, obj.connections)
v738(EggState2.ResetFade, function()
obj:_closeGate("Egg reset teleport")
end, obj.connections)
v738(AreaEggResetWall3.Changed, function(p192)
if p192 then
obj:_closeGate("Reset wall closed")
else
obj.resetBlocked = false
obj.gateOpenAt = os.clock()
obj.safeStarting = false
obj.running = false
obj:_setStatus(obj.enabled and "Searching" or "Ready")
obj:_schedule()
end
end, obj.connections)
v738(LocalPlayer2.CharacterRemoving, function()
obj._recalling = nil
obj:_cleanupInstantSteal()
obj:_hideTreadmillDecoy()
obj._forestDropInProgress = nil
obj._instantReturnToken = nil
local carry = obj.carry
carry.generation += 1
obj:_invalidateCarryWorker()
obj.carry.active = false
obj.carry.uid = nil
obj.safeStarting = false
obj.planGeneration += 1
obj:_cancelTween("Character resetting")
obj:_stopMovementProtection()
end, obj.connections)
v738(RunService2.Heartbeat, function()
if obj.destroyed then
return
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return
end
local AssemblyLinearVelocity = HumanoidRootPart.AssemblyLinearVelocity
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
local WalkSpeed = Humanoid and Humanoid.WalkSpeed or 0
local vector33 = Vector3.new(AssemblyLinearVelocity.X, 0, AssemblyLinearVelocity.Z)
local Magnitude = vector33.Magnitude
if math.max(400, WalkSpeed * 1.5) < Magnitude or math.abs(AssemblyLinearVelocity.Y) > 400 then
local v887 = math.max(100, WalkSpeed)
if v887 < vector33.Magnitude then
vector33 = vector33.Unit * v887
end
HumanoidRootPart.AssemblyLinearVelocity = Vector3.new(vector33.X, math.clamp(AssemblyLinearVelocity.Y, -100, 100), vector33.Z)
end
end, obj.connections)
v738(LocalPlayer2.CharacterAdded, function(p193)
obj:_hideTreadmillDecoy()
v760(p193)
local Humanoid = p193:FindFirstChildOfClass("Humanoid")
if Humanoid then
pcall(function()
Humanoid.BreakJointsOnDeath = false
Humanoid.RequiresNeck = false
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
end)
end
v769(obj, p193)
task.delay(0.25, function()
if not obj.destroyed and obj.enabled then
obj:_startMovementProtection()
end
end)
task.delay(1, function()
if not obj.destroyed and obj.enabled and obj:_wallOpen() then
obj:_schedule()
end
end)
end, obj.connections)
obj:_installClaimPresentationFilter()
v738(EggState2.CarryChanged, function(p194)
if p194.IsCarrying then
if obj.running then
if obj.activeTarget and p194.Uid == obj.activeTarget.Uid then
if obj.carry.active and obj.carry.uid == p194.Uid then
return
end
if obj.instantPhase == "priming" and p194.Uid == obj.primerUid then
obj.carry.active = true
obj.carry.uid = p194.Uid
obj:_clearArrivalHold(p194.Uid)
obj:_enterBaitWait()
return
end
local carry = obj.carry
carry.generation += 1
obj:_invalidateCarryWorker()
obj:_clearArrivalHold(p194.Uid)
obj.claimPresentationSuppression = {
assetCategory = obj.activeTarget.AssetCategory,
expiresAt = os.clock() + 8
}
obj.carry.active = true
obj.carry.uid = p194.Uid
obj.carryStartTime = os.clock()
obj.carryStartPos = obj.activeTarget and obj.activeTarget.BottomCFrame and obj.activeTarget.BottomCFrame.Position or LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart") and LocalPlayer2.Character.HumanoidRootPart.Position
if obj.tweenRecoveryUid == p194.Uid then
obj.tweenRecoveryUid = nil
end
if obj.carryTimeouts then
obj.carryTimeouts[p194.Uid] = nil
end
obj.stats.lastResult = "Carry confirmed"
obj:_notify()
obj.carryAttemptToken = nil
if obj.activeTween and obj.activeTween.Cancel then
pcall(obj.activeTween.Cancel, obj.activeTween)
end
task.defer(function()
if not obj.destroyed and obj.enabled and obj.carry.uid == p194.Uid and obj:_hasConfirmedCarry(p194.Uid) then
if genv.__SenaV4GodMode then
genv.__SenaV4GodMode:stopDefend()
end
obj:_returnToSafe()
end
end)
end
end
return
end
if obj.carry.uid ~= nil and p194.Uid ~= nil and p194.Uid ~= obj.carry.uid then
return
end
local Uid = p194.Uid or obj.carry.uid
Uid = Uid or obj.activeTarget and obj.activeTarget.Uid
local active = obj.carry.active
local carry = obj.carry
carry.generation += 1
local generation = obj.carry.generation
obj:_invalidateCarryWorker()
if obj.activeTween and obj.activeTween.Cancel then
pcall(obj.activeTween.Cancel, obj.activeTween)
end
obj.carry.active = false
obj.carry.uid = nil
if genv.__SenaV4GodMode then
genv.__SenaV4GodMode:startDefend(Uid)
end
if obj._captureHoldUid ~= nil and Uid == obj._captureHoldUid or obj._adminBusyUid ~= nil and Uid == obj._adminBusyUid then
return
end
if obj.instantPhase == "priming" and (p194.Uid == obj.primerUid or Uid == obj.primerUid) then
obj:_startPrimerTargetHunt()
return
end
if obj._forestDropInProgress ~= nil and Uid == obj._forestDropInProgress then
return
end
if not active then
return
end
if not obj.running or not obj.activeTarget then
return
end
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart or not obj:_isInSafeArea(HumanoidRootPart) then
task.delay(0.03, function()
if not obj.destroyed then
if obj.enabled and not obj.carry.active and obj.carry.generation == generation then
if LocalPlayer2.Character then
local HumanoidRootPart2 = LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart2 and obj:_isInSafeArea(HumanoidRootPart2) then
obj:_reportStolen()
obj:_finish("Safe return complete")
return
end
end
obj:_reStealDroppedEgg(Uid)
return
end
end
end)
return
end
obj:_reportStolen()
obj:_finish("Safe return complete")
end, obj.connections)
v738(LocalPlayer2:GetAttributeChangedSignal("RagdollEndTime"), function()
local attribute = LocalPlayer2:GetAttribute("RagdollEndTime") or 0
if obj.instantPhase == "priming" and workspace:GetServerTimeNow() < attribute then
obj:_startPrimerTargetHunt()
end
end, obj.connections)
v738(RunService2.Heartbeat, function()
if obj.destroyed then
return
end
local now = os.clock()
if now - (obj._espLastTick or 0) < 0.4 then
return
end
obj._espLastTick = now
local ok2, result2 = pcall(function()
obj:_updateEsp()
end)
if not ok2 then
if now - (obj._espErrLast or 0) > 5 then
obj._espErrLast = now
warn("[SAE][esp] update error: " .. tostring(result2))
end
end
end, obj.connections)
obj.stats.status = obj.stats.status
return obj
end
t46._installClaimPresentationFilter = function()
return false
end
t46._restoreClaimPresentationFilter = function(p195)
local claimPresentationNode = p195.claimPresentationNode
local claimPresentationOriginal = p195.claimPresentationOriginal
if type(claimPresentationNode) == "table" and type(claimPresentationOriginal) == "function" and rawget(claimPresentationNode, "_fn") == p195.claimPresentationWrapper then
claimPresentationNode._fn = claimPresentationOriginal
end
p195.claimPresentationNode = nil
p195.claimPresentationOriginal = nil
p195.claimPresentationWrapper = nil
p195.claimPresentationSuppression = nil
end
t46._setStatus = function(p196, p197)
if p196.stats.status == p197 then
return
end
if type(p197) == "string" and string.find(p197, "not currently trusted", 1, true) then
p196._untrustedSeen = true
end
p196.stats.status = p197
p196:_notify()
end
t46._notify = function(p198)
local v902 = p198:getSnapshot()
for k in pairs(p198.listeners) do
local ok, result = pcall(k, v902)
if not ok then
warn("[StealAnEgg] UI listener failed:", result)
end
end
end
t46.onChanged = function(p199, p200)
p199.listeners[p200] = true
local ok, result = pcall(p200, p199:getSnapshot())
if not ok then
warn("[StealAnEgg] UI listener failed:", result)
end
local function v908()
p199.listeners[p200] = nil
end
return v908
end
t46.getSnapshot = function(p201)
return {
status = p201.stats.status,
available = p201.stats.available,
matching = p201.stats.matching,
lastTarget = p201.stats.lastTarget,
lastResult = p201.stats.lastResult,
wallClosed = p201.resetBlocked or AreaEggResetWall3.IsSealed() or os.clock() < p201.gateOpenAt,
enabled = p201.enabled,
running = p201.running
}
end
t46._replaceSnapshot = function(p202, p203)
table.clear(p202.records)
local Records = p203 and (p203.Records or p203) or {}
for k, Record in pairs(Records) do
if type(Record) == "table" and type(Record.Uid) == "string" then
p202.records[Record.Uid] = Record
elseif type(k) == "string" and type(Record) == "table" then
p202.records[k] = Record
end
end
p202:_refreshCounts()
p202:_schedule()
end
t46._indexWants = function(p204)
local now = os.clock()
local indexCache = p204.indexCache
if indexCache then
if now - (indexCache.at or 0) < 2 then
return indexCache.set
end
end
local t50 = {}
pcall(function()
local areasDirectory = p204.areasDirectory
if not areasDirectory then
areasDirectory = require(ReplicatedStorage2.Data.Areas).Directory
p204.areasDirectory = areasDirectory
end
local v916 = (Save.Peek or Save.Get)()
if not areasDirectory or not v916 then
return
end
local Index = v916.Index or {}
local t51 = {}
local pairs_ = pairs
local EggInventory = v916.EggInventory or {}
for _, v in pairs_(EggInventory) do
local AssetCategory = type(v) == "table" and (v.AssetCategory or v.Category) or nil
if AssetCategory then
t51[tostring(AssetCategory)] = true
end
end
local uid = p204.carry and p204.carry.uid
if uid then
local v925 = p204.records[uid]
if v925 and v925.AssetCategory then
t51[tostring(v925.AssetCategory)] = true
end
end
for _, v in pairs(areasDirectory) do
if type(v) == "table" and type(v.DropTable) == "table" then
for _, v2 in ipairs(v.DropTable) do
local v930 = v2[1]
if v930 then
local v931 = tostring(v930)
if not Index[v931] and not t51[v931] then
t50[v931] = true
end
end
end
end
end
end)
p204.indexCache = {
at = now,
set = t50
}
return t50
end
t46._isIndexObjective = function(p205, p206)
if not p205.indexObjectiveEnabled then
return false
end
if type(p206) ~= "table" then
return false
end
local AssetCategory = p206.AssetCategory
if not AssetCategory or AssetCategory == "" then
return false
end
return p205:_indexWants()[tostring(AssetCategory)] == true
end
t46.setIndexObjective = function(p207, p208)
local indexObjectiveEnabled = p208 == true
if p207.indexObjectiveEnabled == indexObjectiveEnabled then
return
end
p207.indexObjectiveEnabled = indexObjectiveEnabled
p207.indexCache = {
at = 0,
set = {}
}
p207:_reconcileRunningState()
end
t46._isWispObjective = function(p209, p210)
local wispObjective = p209.wispObjective
if type(wispObjective) ~= "table" or type(p210) ~= "table" then
return false
end
if wispObjective.area and p210.AreaId ~= wispObjective.area then
return false
end
if wispObjective.rarity then
local v935 = p209.catalog.resolve(p210)
if not v935 or v935.rarity ~= wispObjective.rarity then
return false
end
end
return true
end
t46.setWispObjective = function(p211, p212)
local wispObjectiveKey = type(p212) == "table"
if wispObjectiveKey then
wispObjectiveKey = (p212.area or "") .. "|" .. (p212.rarity or "")
end
wispObjectiveKey = wispObjectiveKey or nil
if p211.wispObjectiveKey == wispObjectiveKey then
return
end
p211.wispObjectiveKey = wispObjectiveKey
p211.wispObjective = wispObjectiveKey and p212 or nil
p211:_reconcileRunningState()
end
t46.indexMissingCount = function(p213)
local n19 = 0
for _ in pairs(p213:_indexWants()) do
n19 += 1
end
return n19
end
t46._matchesNormalFilter = function(p214, p215)
local v939 = p214.catalog.resolve(p215)
local config = p214.config
local v941, v942, minValuePerSec, minWeightKg
if config.rarityEnabled then
if not (#config.rarities ~= 0 and v743(config.rarities, v939.rarity)) then
return false
end
if config.nameEnabled then
if #config.names == 0 or not v743(config.names, v939.name) and not v743(config.names, v939.category) then
return false
end
if config.areaEnabled then
if not (#config.areas ~= 0 and v743(config.areas, p215.AreaId)) then
return false
end
if config.mutationEnabled then
if not v864(p215, config.mutations) then
return false
end
if (config.minWeightKg or 0) > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
if (config.minValuePerSec or 0) > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
else
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
end
elseif config.mutationEnabled then
if not v864(p215, config.mutations) then
return false
end
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
else
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
end
elseif config.areaEnabled then
if not (#config.areas ~= 0 and v743(config.areas, p215.AreaId)) then
return false
end
if config.mutationEnabled then
if not v864(p215, config.mutations) then
return false
end
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
else
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
end
elseif config.mutationEnabled then
if not v864(p215, config.mutations) then
return false
end
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
else
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
end
elseif config.nameEnabled then
if #config.names == 0 or not v743(config.names, v939.name) and not v743(config.names, v939.category) then
return false
end
if config.areaEnabled then
if not (#config.areas ~= 0 and v743(config.areas, p215.AreaId)) then
return false
end
if config.mutationEnabled then
if not v864(p215, config.mutations) then
return false
end
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
else
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
end
elseif config.mutationEnabled then
if not v864(p215, config.mutations) then
return false
end
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
else
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
end
elseif config.areaEnabled then
if not (#config.areas ~= 0 and v743(config.areas, p215.AreaId)) then
return false
end
if config.mutationEnabled then
if not v864(p215, config.mutations) then
return false
end
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
else
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
end
elseif config.mutationEnabled then
if not v864(p215, config.mutations) then
return false
end
minWeightKg = config.minWeightKg or 0
if minWeightKg > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
else
if (config.minWeightKg or 0) > 0 then
v942 = p214:_resolveWeightKg(p215)
if not v942 or v942 < config.minWeightKg then
return false
end
minValuePerSec = config.minValuePerSec or 0
if minValuePerSec > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
else
if (config.minValuePerSec or 0) > 0 then
v941 = v748(p215)
if not v941 or v941 < config.minValuePerSec then
return false
end
end
end
end
return true
end
t46._matches = function(p216, p217)
if p217.State ~= AreaEggs.States.Slot and p217.State ~= AreaEggs.States.Dropped then
return false
end
if p216.riftWants[p217.AssetCategory] then
return true
end
if p216.indexObjectiveEnabled and p216:_isIndexObjective(p217) then
return true
end
if p216.wispObjective and p216:_isWispObjective(p217) then
return true
end
if p216.userStealEnabled and not p216.riftOnly and p216:_matchesNormalFilter(p217) then
return true
end
return false
end
t46.setScrambleWants = function(p218, p219, p220)
local riftWants = {}
local ipairs_ = ipairs
local v947 = type(p219) == "table" and p219 or {}
for _, v in ipairs_(v947) do
if type(v) == "string" and v ~= "" then
riftWants[v] = true
end
end
local riftOnly = p220 == true
local v951 = riftOnly ~= p218.riftOnly
for k in pairs(riftWants) do
if not p218.riftWants[k] then
v951 = true
end
end
for k in pairs(p218.riftWants) do
if not riftWants[k] then
v951 = true
end
end
if not v951 then
return
end
p218.riftWants = riftWants
p218.riftOnly = riftOnly
p218:_reconcileRunningState()
end
t46._refreshCounts = function(p221)
local available = 0
local matching = 0
for _, record in pairs(p221.records) do
if record.State == AreaEggs.States.Slot then
available += 1
if p221:_matches(record) then
matching += 1
end
end
end
p221.stats.available = available
p221.stats.matching = matching
p221:_notify()
end
t46.hasPriorityRareEgg = function(p222)
local Character = LocalPlayer2.Character
Character = Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
local v959
local v960
local v961
local pairs_ = pairs
local records = p222.records or {}
for _, record in pairs_(records) do
if (record.State == AreaEggs.States.Slot or record.State == AreaEggs.States.Dropped) and record.BottomCFrame and not p222:isSkippedEgg(record.Uid) and p222:_matchesNormalFilter(record) then
local v966 = p222.catalog.resolve(record)
if t42[v966.rarity] then
local Magnitude = Character and (record.BottomCFrame.Position - Character.Position).Magnitude or 0
local rarityRank = v966.rarityRank or 0
if not v959 or v960 < rarityRank or rarityRank == v960 and Magnitude < v961 then
v959 = record
v960 = rarityRank
v961 = Magnitude
end
end
end
end
return v959 ~= nil, v959
end
t46.isSkippedEgg = function(p223, p224)
if p224 ~= nil then
if p224 == workspace:GetAttribute("Event_CaptureTheEggUid") then
if not p223.captureObjectiveEnabled then
return true
end
end
end
local v969 = p224 and p223.skippedEggs[p224]
if not v969 then
return false
end
if os.clock() < v969 then
return true
end
p223.skippedEggs[p224] = nil
return false
end
do
t46._isCaptureEgg = function(p225, p226)
return p226 ~= nil and p226 == workspace:GetAttribute("Event_CaptureTheEggUid")
end
end
t46.setCaptureObjective = function(p227, p228)
local v970 = p228 == true
if p227.captureObjectiveEnabled == v970 then
return
end
if v970 then
p227._modeBeforeCapture = {
p227.config.stealMode,
p227.config.flyAerial,
p227.config.flyZigzag
}
p227:setStealMode("Instant", false, false)
p227.captureObjectiveEnabled = true
else
p227.captureObjectiveEnabled = false
local _modeBeforeCapture = p227._modeBeforeCapture
p227._modeBeforeCapture = nil
if _modeBeforeCapture then
p227:setStealMode(_modeBeforeCapture[1], _modeBeforeCapture[2], _modeBeforeCapture[3])
end
end
p227:_reconcileRunningState()
end
t46._captureHold = function(p229, p230)
if p229._captureHoldUid == p230 then
return
end
p229._captureHoldUid = p230
local function v972()
local v973 = EggState2.ReadFieldEgg(p230)
return v973 ~= nil and v973.State == AreaEggs.States.Carried and v973.CarrierUserId == LocalPlayer2.UserId
end
local function v974()
return not p229.destroyed and p229.enabled and p229.captureObjectiveEnabled and v972()
end
task.spawn(function()
p229:_clearArrivalHold(p230)
p229:_hideTreadmillDecoy()
pcall(function()
p229:_stopHoverPad()
end)
p229.stats.lastResult = "Holding capture egg"
p229:_setStatus("Holding capture egg")
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local cFrame2 = HumanoidRootPart and cFrameNew(HumanoidRootPart.Position.X, 110, HumanoidRootPart.Position.Z) * HumanoidRootPart.CFrame.Rotation
if cFrame2 then
p229:_glideRoot(cFrame2, function()
return not v974()
end)
end
while v974() do
local Character2 = LocalPlayer2.Character
local HumanoidRootPart2 = Character2 and Character2:FindFirstChild("HumanoidRootPart")
local Humanoid = Character2 and Character2:FindFirstChildOfClass("Humanoid")
if HumanoidRootPart2 and Humanoid and cFrame2 then
pcall(function()
HumanoidRootPart2.CFrame = cFrame2
HumanoidRootPart2.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart2.AssemblyAngularVelocity = Vector3.zero
end)
p229:_syncHoverPad(cFrame2.Position)
local v981 = math.clamp(p229.config.speed or 600, 200, v721())
pcall(function()
v795(Character2, v981 * 1.35)
v860(Humanoid, HumanoidRootPart2, v981, Vector3.zero)
end)
end
task.wait(0.1)
end
pcall(function()
p229:_stopHoverPad()
end)
if p229._captureHoldUid == p230 then
p229._captureHoldUid = nil
end
if p229.destroyed or not p229.enabled then
return
end
p229:_finish(p229.captureObjectiveEnabled and "Capture egg lost — re-grabbing" or "Capture stopped")
end)
end
t46._chooseTarget = function(p231)
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return nil
end
if p231.captureObjectiveEnabled then
local attribute = workspace:GetAttribute("Event_CaptureTheEggUid")
local v984 = attribute and (EggState2.ReadFieldEgg(attribute) or p231.records[attribute])
if type(v984) == "table" and v984.BottomCFrame and (v984.State == AreaEggs.States.Slot or v984.State == AreaEggs.States.Dropped) then
return v984
end
end
if p231.manualObjectiveEnabled then
local v985 = p231:_takeManualTarget()
if v985 then
return v985
end
end
if p231.userStealEnabled and not p231.riftOnly then
local v986, v987 = p231:hasPriorityRareEgg()
if v986 and v987 then
return v987
end
end
local v988
local v989
local v990
local v991
local v992
local v993
for _, record in pairs(p231.records) do
if (record.State == AreaEggs.States.Slot or record.State == AreaEggs.States.Dropped) and record.BottomCFrame and not p231:isSkippedEgg(record.Uid) then
local Magnitude = (record.BottomCFrame.Position - HumanoidRootPart.Position).Magnitude
if not p231.riftWants[record.AssetCategory] then
if not p231.wispObjective or not p231:_isWispObjective(record) then
if p231.indexObjectiveEnabled and p231:_isIndexObjective(record) and (not v990 or Magnitude < v991) then
v990 = record
v991 = Magnitude
end
elseif not v992 or Magnitude < v993 then
v992 = record
v993 = Magnitude
end
elseif not v988 or Magnitude < v989 then
v988 = record
v989 = Magnitude
end
end
end
if v988 or v992 or v990 then
return v988 or v992 or v990
end
if p231.userStealEnabled and not p231.riftOnly then
local v997
local v998
local v999
for _, record in pairs(p231.records) do
if record.State == AreaEggs.States.Slot or record.State == AreaEggs.States.Dropped then
if not p231:isSkippedEgg(record.Uid) and p231:_matchesNormalFilter(record) then
local Magnitude = (record.BottomCFrame.Position - HumanoidRootPart.Position).Magnitude
local v1003 = p231.catalog.resolve(record)
local v1004
if p231.config.highestValueFirst then
v1004 = v748(record) or -math.huge
elseif p231.config.heaviestFirst then
v1004 = p231:_resolveWeightKg(record) or -math.huge
else
v1004 = v1003.rarityRank or 0
end
if not v997 or v998 < v1004 or v1004 == v998 and Magnitude < v999 then
v997 = record
v998 = v1004
v999 = Magnitude
end
end
end
end
if v997 then
return v997
end
end
return nil
end
t46._takeManualTarget = function(p232)
local t52 = {}
local manualOrder = {}
for _, v in ipairs(p232.manualOrder) do
local v1009 = p232.records[v]
if v1009 and (v1009.State == AreaEggs.States.Slot or v1009.State == AreaEggs.States.Dropped) then
manualOrder[#manualOrder + 1] = v
t52[v] = true
end
end
p232.manualOrder = manualOrder
for k in pairs(p232.manualQueue) do
if not t52[k] then
p232.manualQueue[k] = nil
end
end
if #manualOrder ~= 0 then
return p232.records[manualOrder[1]]
end
if p232.manualObjectiveEnabled then
p232.manualObjectiveEnabled = false
task.defer(function()
if not p232.destroyed then
p232:_reconcileRunningState()
end
end)
end
return nil
end
t46.queueManual = function(p233, p234)
if type(p234) ~= "table" then
return 0
end
for _, v in ipairs(p234) do
local v1013 = v
if v1013 ~= nil and not p233.manualQueue[v1013] then
p233.manualQueue[v1013] = true
p233.manualOrder[#p233.manualOrder + 1] = v1013
end
end
local v1014 = #p233.manualOrder
if v1014 > 0 then
p233.manualObjectiveEnabled = true
end
p233:_reconcileRunningState()
return v1014
end
do
t46.clearManual = function(p235)
p235.manualQueue = {}
p235.manualOrder = {}
p235.manualObjectiveEnabled = false
p235:_reconcileRunningState()
end
end
t46.manualPending = function(p236)
return #p236.manualOrder
end
t46.setTreadmillManager = function(p237, p238)
p237.treadmillManager = p238
end
t46.getStealMode = function(p239)
return p239.config.stealMode == "Fly" and "Fly" or "Instant"
end
do
t46.setStealMode = function(p240, p241, p242, p243)
local stealMode = p241 == "Fly" and "Fly" or "Instant"
local flyAerial = stealMode == "Fly" and p242 == true
local flyZigzag = stealMode == "Fly" and p243 == true and not flyAerial
if p240.config.stealMode ~= stealMode or p240.config.flyAerial ~= flyAerial or p240.config.flyZigzag ~= flyZigzag then
p240.config.stealMode = stealMode
p240.config.flyAerial = flyAerial
p240.config.flyZigzag = flyZigzag
if p240.enabled then
p240:_installGuardHitDistanceBoost()
p240:_finish("Mode changed")
end
end
return stealMode
end
end
do
local ResolveHitDistance
t46._installGuardHitDistanceBoost = function(p244)
if not p244.guardHitBoostInstalled then
pcall(function()
local GuardChasePolicy = require(ReplicatedStorage2.Shared.Modules.GuardAreas.GuardChasePolicy)
if GuardChasePolicy and type(GuardChasePolicy.ResolveHitDistance) == "function" then
ResolveHitDistance = ResolveHitDistance or GuardChasePolicy.ResolveHitDistance
local v1020 = p244
GuardChasePolicy.ResolveHitDistance = function(p245)
if v1020.enabled and v1020.instantPhase == "priming" then
return 25
end
if v1020.enabled or v1020._recalling then
return -math.huge
end
local ok = not ResolveHitDistance
local v1022
if not ok then
v1022 = ResolveHitDistance(p245)
ok = not v1022
end
if ok then
v1022 = p245 or 10
end
return v1022
end
p244.guardHitBoostInstalled = true
end
end)
return
end
end
t46._removeGuardHitDistanceBoost = function(p246)
if not p246.guardHitBoostInstalled then
return
end
pcall(function()
local GuardChasePolicy = require(ReplicatedStorage2.Shared.Modules.GuardAreas.GuardChasePolicy)
if GuardChasePolicy and ResolveHitDistance then
GuardChasePolicy.ResolveHitDistance = ResolveHitDistance
p246.guardHitBoostInstalled = false
end
end)
end
end
t46._setInstantAnchored = function(p247, p248)
pcall(function()
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart then
if HumanoidRootPart.Anchored ~= p248 then
HumanoidRootPart.Anchored = p248
end
end
end)
end
do
t46._kbCancelTimer = function(p249)
if p249.hitTimer then
pcall(task.cancel, p249.hitTimer)
p249.hitTimer = nil
end
end
end
t46._isPrimerEgg = function(p250, p251)
if p251 == nil then
return false
end
if p251 == p250.primerUid then
return true
end
local primerUids = p250.primerUids and p250.primerUids[p251]
if primerUids then
if os.clock() < primerUids then
return true
end
end
if primerUids then
p250.primerUids[p251] = nil
end
return false
end
t46._cleanupInstantSteal = function(p252)
p252.instantPhase = nil
p252.primerUid = nil
p252.targetUid = nil
p252._flyDeparting = false
p252:_stopGuardStick()
p252:_kbCancelTimer()
p252:_setInstantAnchored(false)
p252:_hideTreadmillDecoy()
end
t46._choosePrimerEgg = function(p253, p254)
local v1026 = v14()
local Areas = v1026 and v1026:FindFirstChild("Areas")
local GuardAreas = Areas and Areas:FindFirstChild("GuardAreas")
local Forest = GuardAreas and GuardAreas:FindFirstChild("Forest")
local Guard = Forest and Forest:FindFirstChild("Guard")
local HumanoidRootPart = Guard and Guard:FindFirstChild("HumanoidRootPart")
local Position = HumanoidRootPart and HumanoidRootPart.Position
local v1033
local v1034
for _, record in pairs(p253.records) do
if record.State == AreaEggs.States.Slot and record.AreaId == "Forest" and record.Uid ~= p254 and not p253:_isCaptureEgg(record.Uid) then
local v1037 = -(Position and (record.BottomCFrame.Position - Position).Magnitude or LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart") and (record.BottomCFrame.Position - LocalPlayer2.Character.HumanoidRootPart.Position).Magnitude or math.huge) - (p253.catalog.resolve(record).rarityRank or 0) * 100
if not v1033 or v1034 < v1037 then
v1033 = record
v1034 = v1037
end
end
end
return v1033
end
t46._stopGuardStick = function(p255)
if p255.guardStickConnection then
pcall(p255.guardStickConnection.Disconnect, p255.guardStickConnection)
p255.guardStickConnection = nil
end
end
t46._startGuardStick = function(p256)
p256:_stopGuardStick()
local function v1038()
local v1039 = v14()
local Areas = v1039 and v1039:FindFirstChild("Areas")
local GuardAreas = Areas and Areas:FindFirstChild("GuardAreas")
local Forest = GuardAreas and GuardAreas:FindFirstChild("Forest")
local Guard = Forest and Forest:FindFirstChild("Guard")
return Guard and Guard:FindFirstChild("HumanoidRootPart")
end
p256.guardStickConnection = RunService2.PreSimulation:Connect(function()
if p256.destroyed or not p256.enabled or p256.instantPhase ~= "priming" then
p256:_stopGuardStick()
return
end
local v1044 = v1038()
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not v1044 or not HumanoidRootPart then
return
end
local Position = v1044.Position
local v1048 = v1044.CFrame.LookVector * 2.5
local v1049 = Vector3.new(Position.X + v1048.X, HumanoidRootPart.Position.Y, Position.Z + v1048.Z) - HumanoidRootPart.Position
if v1049.Magnitude > 40 then
v1049 = v1049.Unit * 40
end
local v1050 = HumanoidRootPart.Position + v1049
HumanoidRootPart.CFrame = lookAt(v1050, Vector3.new(Position.X, v1050.Y, Position.Z))
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
p256:_syncHoverPad(v1050)
end)
end
t46._forestGuardModel = function()
local v1051 = v14()
local Areas = v1051 and v1051:FindFirstChild("Areas")
local GuardAreas = Areas and Areas:FindFirstChild("GuardAreas")
local Forest = GuardAreas and GuardAreas:FindFirstChild("Forest")
return Forest and Forest:FindFirstChild("Guard")
end
t46._triggerGuardHit = function(p257)
local v1055 = p257:_forestGuardModel()
local HumanoidRootPart = v1055 and v1055:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return
end
local Character = LocalPlayer2.Character
local HumanoidRootPart2 = Character and Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart2 then
return
end
local Position = HumanoidRootPart.Position
local v1060 = HumanoidRootPart.CFrame.LookVector * 2.5
local vector33 = Vector3.new(Position.X + v1060.X, HumanoidRootPart2.Position.Y, Position.Z + v1060.Z)
p257.guardStrikeAnchor = vector33
HumanoidRootPart2.CFrame = lookAt(vector33, Vector3.new(Position.X, vector33.Y, Position.Z))
HumanoidRootPart2.AssemblyLinearVelocity = Vector3.zero
local Collider = v1055:FindFirstChild("Collider") or HumanoidRootPart
if firetouchinterest then
pcall(function()
firetouchinterest(HumanoidRootPart2, Collider, 0)
firetouchinterest(HumanoidRootPart2, Collider, 1)
end)
end
pcall(function()
local ForestStrike = Remotes.GuardPatrol and Remotes.GuardPatrol.ForestStrike
if ForestStrike then
ForestStrike:FireServer({
EggUid = p257.primerUid,
GuardCFrame = HumanoidRootPart.CFrame
})
end
end)
end
t46._stopGuardStrike = function(p258)
p258.guardStrikeGeneration = (p258.guardStrikeGeneration or 0) + 1
end
t46._knockbackLanded = function()
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return false
end
if Humanoid.PlatformStand or Humanoid.Sit then
return true
end
local state = Humanoid:GetState()
if state == Enum.HumanoidStateType.Ragdoll or state == Enum.HumanoidStateType.FallingDown or state == Enum.HumanoidStateType.PlatformStanding then
return true
end
return HumanoidRootPart.AssemblyLinearVelocity.Magnitude > 18
end
t46._settleAfterKnockback = function(p259)
local guardStrikeAnchor = p259.guardStrikeAnchor
local v1069 = os.clock() + 0.35
while true do
if not (os.clock() < v1069) or p259.destroyed then
return
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
break
end
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
pcall(function()
Humanoid.PlatformStand = false
Humanoid.Sit = false
Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
end)
end
if guardStrikeAnchor then
HumanoidRootPart.CFrame = cFrameNew(guardStrikeAnchor)
end
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
p259:_syncHoverPad(guardStrikeAnchor or HumanoidRootPart.Position)
RunService2.Heartbeat:Wait()
end
end
t46._startGuardStrike = function(p260)
p260:_stopGuardStrike()
local guardStrikeGeneration = p260.guardStrikeGeneration
task.spawn(function()
local v1074 = os.clock() + 1.5
while not p260.destroyed and p260.enabled and p260.instantPhase == "priming" and p260.guardStrikeGeneration == guardStrikeGeneration and os.clock() < v1074 do
p260:_triggerGuardHit()
local v1075 = os.clock() + 0.05
local v1076 = false
while os.clock() < v1075 do
if p260:_knockbackLanded() then
v1076 = true
break
else
RunService2.Heartbeat:Wait()
end
end
if v1076 then
break
end
end
if p260.guardStrikeGeneration == guardStrikeGeneration then
p260:_stopGuardStick()
p260:_settleAfterKnockback()
end
end)
end
t46._enterBaitWait = function(p261)
p261:_setInstantAnchored(false)
p261:_setStatus("Preparing steal")
p261:_startGuardStick()
p261:_startGuardStrike()
if p261.hitTimer then
return
end
p261.hitTimer = task.delay(1.8, function()
p261.hitTimer = nil
if p261.destroyed or not p261.enabled then
return
end
if p261.instantPhase ~= "priming" then
return
end
p261:_stopGuardStick()
p261:_stopGuardStrike()
if p261.carry.active and p261:_isPrimerEgg(p261.carry.uid) then
pcall(EggState2.DropFieldEgg, "PlayerRequest")
end
p261:_finish("Steal timed out — retrying")
end)
end
local function v1077(p262, p263)
local v1078 = tostring(p262 or ""):lower()
local n20 = 8
local n21 = 3.5
if v1078:find("enchanted") then
n20 = 18
n21 = 12
elseif v1078:find("light") or v1078:find("dark") then
n20 = 16
n21 = 10
elseif v1078:find("titan") then
n20 = 10
n21 = 8
end
return math.max(n21, n20 * ((11 - math.clamp(p263, 1, 10)) / 6))
end
do
t46._resolveSettleSeconds = function(p264, p265)
local v1081 = math.clamp(tonumber(senaV4Config.StealHoldSeconds) or 5, 1, 10)
local v1082 = p264.settleBonus and type(p265) == "table" and p264.settleBonus[p265.Uid]
local seconds = v1082 and v1082.untilAt > os.clock() and v1082.seconds or 0
return v1077(type(p265) == "table" and p265.AreaId, v1081) + seconds
end
end
t46._startPrimerTargetHunt = function(p266)
if p266.instantPhase ~= "priming" then
return
end
p266:_stopGuardStick()
p266:_stopGuardStrike()
pcall(function()
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
Humanoid.PlatformStand = false
Humanoid.Sit = false
end
if HumanoidRootPart then
if p266.guardStrikeAnchor then
HumanoidRootPart.CFrame = cFrameNew(p266.guardStrikeAnchor)
end
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
end
end)
p266:_kbCancelTimer()
p266:_setInstantAnchored(false)
p266.instantPhase = "hunting"
p266:_clearArrivalHold()
local carry = p266.carry
carry.generation += 1
p266:_invalidateCarryWorker()
p266.carry.active = false
p266.carry.uid = nil
local targetUid = p266.targetUid
p266.targetUid = nil
if not targetUid then
p266:_finish("No target egg")
return
end
local v1089 = EggState2.ReadFieldEgg(targetUid) or p266.records[targetUid]
if not v1089 or v1089.State ~= AreaEggs.States.Slot and v1089.State ~= AreaEggs.States.Dropped then
p266:_finish("Target egg no longer available")
return
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
p266:_finish("Character unavailable")
return
end
p266.activeTarget = v1089
local v1093 = p266:_resolveEggDestination(v1089, HumanoidRootPart, Humanoid)
if not v1093 then
p266:_finish("Target destination unavailable")
return
end
if p266.config.stealMode ~= "Fly" then
if p266.config.stealMode == "Instant" and not p266.lowFpsPrime then
local Uid = v1089.Uid
local function v1095()
return p266.destroyed or not p266.enabled or p266.instantPhase ~= "hunting" or not p266.activeTarget or p266.activeTarget.Uid ~= Uid
end
local cFrame2 = v1093 + Vector3.new(0, 14, 0)
p266:_setStatus("Heading to target egg")
if not p266:_glideRoot(cFrame2, v1095) then
if not v1095() then
p266:_finish("Could not reach the egg — retrying")
end
return
end
task.spawn(function()
local v1097 = p266:_resolveSettleSeconds(v1089)
local v1098 = os.clock() + v1097
if os.clock() < v1098 then
local exitTo
while not v1095() do
p266:_setStatus(string.format("Securing target egg (%.1fs)", math.max(0, v1098 - os.clock())))
local Character2 = LocalPlayer2.Character
local HumanoidRootPart2 = Character2 and Character2:FindFirstChild("HumanoidRootPart")
local Humanoid2 = Character2 and Character2:FindFirstChildOfClass("Humanoid")
if HumanoidRootPart2 and Humanoid2 then
pcall(function()
HumanoidRootPart2.CFrame = cFrame2
HumanoidRootPart2.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart2.AssemblyAngularVelocity = Vector3.zero
end)
p266:_syncHoverPad(cFrame2.Position)
local v1103 = math.clamp(p266.config.speed or 600, 200, v721())
pcall(function()
v795(Character2, v1103 * 1.35)
v860(Humanoid2, HumanoidRootPart2, v1103, Vector3.zero)
end)
end
task.wait(0.1)
if not (os.clock() < v1098) then
exitTo = 1
break
end
end
if exitTo ~= 1 then
return
end
if not v1095() then
p266:_glideRoot(v1093, v1095)
if v1095() then
return
end
p266:_setArrivalHold(v1093, Uid)
p266:_setStatus("Securing target egg")
p266:_requestCarry(v1089, true)
return
end
elseif not v1095() then
p266:_glideRoot(v1093, v1095)
if v1095() then
return
end
p266:_setArrivalHold(v1093, Uid)
p266:_setStatus("Securing target egg")
p266:_requestCarry(v1089, true)
return
end
end)
return
end
p266:_setStatus("Heading to target egg")
p266:_tweenRoot(v1093, function()
if p266.instantPhase == "hunting" and p266.activeTarget and p266.activeTarget.Uid == v1089.Uid then
p266:_requestCarry(v1089, false)
end
end, nil, {
holdAfterArrival = true,
holdUid = v1089.Uid,
flightProfile = true,
carryTarget = v1089
})
return
end
local Uid = v1089.Uid
local function v1105()
return p266.destroyed or not p266.enabled or p266.instantPhase ~= "hunting" or not p266.activeTarget or p266.activeTarget.Uid ~= Uid
end
if p266.config.flyAerial then
p266:_setStatus("Heading to target egg")
p266:_startFlyGrounding()
local v1106 = p266:_flyWalkTo(v1093, v1105, 8, 110)
p266:_stopFlyGrounding()
if not v1106 then
if not v1105() then
p266:_finish("Could not reach the egg — retrying")
end
return
end
elseif p266.config.flyZigzag then
p266:_setStatus("Heading to target egg")
if not p266:_walkToZigzag(v1093, v1105) then
if not v1105() then
p266:_finish("Zig-zag walk to target failed")
end
return
end
else
p266:_setStatus("Heading to target egg")
if not p266:_walkTo(v1093, v1105) then
if not v1105() then
p266:_finish("Walk to target failed")
end
return
end
end
if v1105() then
return
end
p266:_glideRoot(v1093, v1105, p266:_legitWalkSpeed())
if v1105() then
return
end
p266:_setArrivalHold(v1093, Uid)
p266:_setStatus("Securing target egg")
p266:_requestCarry(v1089, true)
end
do
t46._wallOpen = function(p267)
if p267.resetBlocked or AreaEggResetWall3.IsSealed() or os.clock() < p267.gateOpenAt then
return false
end
local v1107 = v14()
local Areas = v1107 and v1107:FindFirstChild("Areas")
local WallStartCollision = Areas and Areas:FindFirstChild("WallStartCollision")
if WallStartCollision and WallStartCollision:IsA("BasePart") and WallStartCollision.CanCollide then
return false
end
return true
end
end
t46._closeGate = function(p268, p269)
p268.resetBlocked = true
p268.gateOpenAt = math.huge
p268.safeStarting = false
if not p268.activeTween then
p268:_cancelTween(p269)
elseif not p268.activeTween.sharedTravel then
p268:_cancelTween(p269)
p268:_setStatus(p269)
return
end
p268:_setStatus(p269)
end
t46._releaseOperation = function(p270)
local operationToken = p270.operationToken
p270.operationToken = nil
if operationToken and p270.coordinator then
p270.coordinator:release(operationToken)
end
end
do
t46._acquireOperation = function(p271)
if p271.operationToken or not p271.coordinator then
return true
end
local autoSteal, v1112 = p271.coordinator:tryAcquire("auto_steal", {})
if not autoSteal then
return false, v1112
end
p271.operationToken = autoSteal
return true
end
end
t46._cancelTween = function(p272, p273, p274)
p272:_cleanupInstantSteal()
p272.carryAttemptToken = nil
p272:_clearArrivalHold()
p272.safeStarting = false
if p272.activeTween then
pcall(p272.activeTween.Cancel, p272.activeTween)
p272.activeTween = nil
end
if not p272.activeTween and not p272.arrivalHold then
p272:_stopHoverPad()
end
if p272.running then
p272.running = false
p272.activeTarget = nil
p272.stats.lastResult = p273
p272:_notify()
end
if not p274 then
p272:_releaseOperation()
end
end
t46._groundYAt = function(p275, p276, p277, p278)
local Character = p278 or LocalPlayer2.Character
local vector33 = Vector3.new(p276, (Character and Character:FindFirstChild("HumanoidRootPart") and Character.HumanoidRootPart.Position.Y or vector32.Y) + 60, p277)
local filterDescendantsInstances = {}
if Character then
table.insert(filterDescendantsInstances, Character)
end
if p275.hoverPad then
table.insert(filterDescendantsInstances, p275.hoverPad)
end
if p275.treadmillDecoy then
table.insert(filterDescendantsInstances, p275.treadmillDecoy)
end
for _, child in ipairs(workspace:GetChildren()) do
if child.Name == "__SenaV4HoverPad" or child.Name == "__SenaV4TreadmillDecoy" then
table.insert(filterDescendantsInstances, child)
end
end
for i = 1, 10 do
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.FilterDescendantsInstances = filterDescendantsInstances
raycastParams.IgnoreWater = true
local hit = workspace:Raycast(vector33, Vector3.new(0, -300, 0), raycastParams)
if not hit then
return nil
end
if hit.Instance.CanCollide then
return hit.Position.Y
end
table.insert(filterDescendantsInstances, hit.Instance)
end
return nil
end
do
t46._resolveSafeCFrame = function(p279, p280)
if not p280 then
return nil
end
local X = vector32.X
local Z = vector32.Z
local Y = vector32.Y
local v1124 = p279:_groundYAt(X, Z, p280.Parent)
if v1124 then
Y = v1124 + 3.2
end
return cFrameNew(X, Y, Z) * p280.CFrame.Rotation
end
end
t46._groundSnap = function(p281)
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return false
end
local Position = HumanoidRootPart.Position
local v1129 = p281:_groundYAt(Position.X, Position.Z, Character)
if not v1129 then
return false
end
local v1130 = v1129 + p281:_feetOffset(HumanoidRootPart, Humanoid)
if not (Position.Y < v1130 - 0.25) and not (v1130 + 8 < Position.Y) then
return false
end
pcall(function()
p281:_syncHoverPad(Vector3.new(Position.X, v1130, Position.Z))
HumanoidRootPart.CFrame = cFrameNew(Position.X, v1130, Position.Z) * HumanoidRootPart.CFrame.Rotation
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
end)
return true
end
do
local function v1131(p282)
if typeof(p282) == "Instance" and p282:IsA("Trail") then
pcall(p282.Destroy, p282)
end
end
local function v1132(p283)
if typeof(p283) == "Instance" then
if p283.Name == "SpeedGainPopup" or p283.Name == "PlusOne" then
pcall(p283.Destroy, p283)
end
end
end
t46._showTreadmillDecoy = function(p284)
if p284.treadmillDecoy and p284.treadmillDecoy.Parent then
return true
end
p284:_hideTreadmillDecoy()
local Character = LocalPlayer2.Character
if not Character then
return false
end
local Archivable = Character.Archivable
Character.Archivable = true
local ok, treadmillDecoy = pcall(Character.Clone, Character)
Character.Archivable = Archivable
if not ok or not treadmillDecoy or typeof(treadmillDecoy) ~= "Instance" then
return false
end
treadmillDecoy.Name = "__SenaV4TreadmillDecoy"
for _, descendant in ipairs(treadmillDecoy:GetDescendants()) do
if t45[descendant.ClassName] or descendant:IsA("Trail") then
pcall(descendant.Destroy, descendant)
elseif descendant:IsA("BasePart") then
descendant.LocalTransparencyModifier = 0
descendant.Anchored = true
descendant.CanCollide = false
descendant.CanQuery = false
descendant.CanTouch = false
end
end
local HumanoidRootPart = treadmillDecoy:FindFirstChild("HumanoidRootPart")
local Humanoid = treadmillDecoy:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
treadmillDecoy:Destroy()
return false
end
pcall(function()
Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
Humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff
end)
treadmillDecoy.Parent = workspace
treadmillDecoy:PivotTo(cFrameNew(vector32))
p284.treadmillDecoy = treadmillDecoy
local PlayerGui = LocalPlayer2:FindFirstChildOfClass("PlayerGui")
if PlayerGui then
for _, descendant in ipairs(PlayerGui:GetDescendants()) do
if descendant.Name == "SpeedGainPopup" or descendant.Name == "PlusOne" then
v1132(descendant)
end
end
p284.treadmillPopupConnection = PlayerGui.DescendantAdded:Connect(function(descendant)
if p284.treadmillDecoy == treadmillDecoy then
v1132(descendant)
end
end)
end
local treadmillDecoyRealTransparency = setmetatable({}, {
__mode = "k"
})
local function v1145(p285)
if not p285 or not p285:IsA("BasePart") or not p285:IsDescendantOf(Character) then
return
end
if treadmillDecoyRealTransparency[p285] == nil then
treadmillDecoyRealTransparency[p285] = p285.LocalTransparencyModifier
end
p285.LocalTransparencyModifier = 1
end
for _, descendant in ipairs(Character:GetDescendants()) do
v1145(descendant)
v1131(descendant)
end
p284.treadmillDecoyRealTransparency = treadmillDecoyRealTransparency
p284.treadmillDecoyCharacterConnection = Character.DescendantAdded:Connect(function(descendant)
if p284.treadmillDecoy == treadmillDecoy then
pcall(v1145, descendant)
v1131(descendant)
end
end)
local CurrentCamera = workspace.CurrentCamera
if CurrentCamera then
p284.treadmillDecoyCamera = CurrentCamera.CameraSubject
CurrentCamera.CameraSubject = Humanoid
end
p284.treadmillDecoyCameraConnection = RunService2.RenderStepped:Connect(function()
if p284.treadmillDecoy ~= treadmillDecoy or not treadmillDecoy.Parent or not Humanoid.Parent then
return
end
for k in pairs(treadmillDecoyRealTransparency) do
if k.Parent and k.LocalTransparencyModifier ~= 1 then
k.LocalTransparencyModifier = 1
end
end
local CurrentCamera2 = workspace.CurrentCamera
if CurrentCamera2 and CurrentCamera2.CameraSubject ~= Humanoid then
CurrentCamera2.CameraSubject = Humanoid
end
end)
return true
end
end
t46._hideTreadmillDecoy = function(p286, p287)
if p286._recalling and not p287 then
return
end
if p286.treadmillDecoyCameraConnection then
pcall(p286.treadmillDecoyCameraConnection.Disconnect, p286.treadmillDecoyCameraConnection)
p286.treadmillDecoyCameraConnection = nil
end
if p286.treadmillDecoyCharacterConnection then
pcall(p286.treadmillDecoyCharacterConnection.Disconnect, p286.treadmillDecoyCharacterConnection)
p286.treadmillDecoyCharacterConnection = nil
end
if p286.treadmillPopupConnection then
pcall(p286.treadmillPopupConnection.Disconnect, p286.treadmillPopupConnection)
p286.treadmillPopupConnection = nil
end
local pairs_ = pairs
local treadmillDecoyRealTransparency = p286.treadmillDecoyRealTransparency or {}
for k, v in pairs_(treadmillDecoyRealTransparency) do
if typeof(k) == "Instance" and k.Parent then
pcall(function()
k.LocalTransparencyModifier = v
end)
end
end
p286.treadmillDecoyRealTransparency = nil
local Character = LocalPlayer2.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local CurrentCamera = workspace.CurrentCamera
if CurrentCamera then
pcall(function()
CurrentCamera.CameraSubject = Humanoid or p286.treadmillDecoyCamera
end)
end
p286.treadmillDecoyCamera = nil
if p286.treadmillDecoy then
pcall(p286.treadmillDecoy.Destroy, p286.treadmillDecoy)
end
p286.treadmillDecoy = nil
end
do
t46._restoreTreadmillVisualAtSafe = function(p288)
if not p288.treadmillDecoy then
p288:_hideTreadmillDecoy()
return true
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local v1161 = p288:_resolveSafeCFrame(HumanoidRootPart)
if not HumanoidRootPart or not Humanoid or not v1161 then
p288:_hideTreadmillDecoy()
return false
end
local v1162 = os.clock() + 2
local v1163
local n22 = 0
while not p288.destroyed and os.clock() < v1162 do
local now = os.clock()
if p288:_isInSafeArea(HumanoidRootPart) then
v1163 = v1163 or now
if now - v1163 >= 0.35 then
p288:_hideTreadmillDecoy()
return true
end
else
v1163 = nil
if n22 <= now then
n22 = now + 0.1
p288:_teleportRoot(HumanoidRootPart, Humanoid, v1161)
end
end
task.wait(0.03)
end
p288:_hideTreadmillDecoy()
return false
end
end
t46._prepareTreadmillLaunch = function(p289, p290, p291)
local treadmillManager = p289.treadmillManager
if not treadmillManager or type(treadmillManager.pulseForCarry) ~= "function" then
return false, "Preparation unavailable"
end
local Uid = p290 and p290.Uid
local function v1168()
return Uid and (EggState2.ReadFieldEgg(Uid) or p289.records[Uid]) or nil
end
local function v1169()
local v1170 = v1168()
return p289.destroyed or not p289.enabled or p289.planGeneration ~= p291 or not p289:_wallOpen() or type(v1170) ~= "table" or not p289:_matches(v1170)
end
local function v1171(p292)
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
return p289:_teleportRoot(HumanoidRootPart, Character and Character:FindFirstChildOfClass("Humanoid"), p292)
end
p289:_setStatus("Preparing carry")
if not p289:_showTreadmillDecoy() then
return false, "Safe-zone visual unavailable"
end
local v1174, v1175 = treadmillManager:pulseForCarry(v1171, v1169)
if not v1174 then
p289:_restoreTreadmillVisualAtSafe()
return false, v1175
end
p289:_setStatus("Positioning at safe area")
if not p289:_restoreTreadmillVisualAtSafe() then
return false, "Safe teleport failed"
end
if not v1169() then
return true, v1168()
end
return false, "Target changed before travel"
end
t46._resolveEggDestination = function(p293, p294, p295, p296)
if type(p294) ~= "table" or typeof(p294.BottomCFrame) ~= "CFrame" then
return nil
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = p295 or Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = p296 or Character and Character:FindFirstChildOfClass("Humanoid")
if HumanoidRootPart and Humanoid then
return cFrameNew(p294.BottomCFrame.Position + Vector3.new(0, p293:_feetOffset(HumanoidRootPart, Humanoid) + 0.15, 0))
end
return nil
end
local function v1179()
local ok, result = pcall(function()
local v1182 = v14()
return v1182 and v1182:FindFirstChild("Areas") and v1182.Areas:FindFirstChild("EggCarryBounds")
end)
if ok and result then
local Gameplay1 = result:FindFirstChild("Gameplay1")
if Gameplay1 and Gameplay1:IsA("BasePart") then
local v1184 = Gameplay1.Size.Z * 0.5 - 18
if v1184 > 5 then
return Gameplay1.Position.Z - v1184, Gameplay1.Position.Z + v1184
end
end
end
return -426, -308
end
t46._resolveRouteCruiseY = function(p297, p298, p299)
if p297.config.stealMode ~= "Fly" then
return nil
end
if not p298 or typeof(p299) ~= "CFrame" then
return nil
end
if p299.Position.Y >= 104 then
return nil
end
return 110
end
t46._resolveElevatedDestination = function(p300, p301, p302)
if p301 then
if typeof(p302) == "CFrame" then
return p302
end
end
return nil
end
t46._teleportRoot = function(p303, p304, p305, p306)
if not p304 or not p305 or typeof(p306) ~= "CFrame" then
return false
end
if not pcall(function()
p304.AssemblyLinearVelocity = Vector3.zero
p304.AssemblyAngularVelocity = Vector3.zero
p304.CFrame = p306
p304.AssemblyLinearVelocity = Vector3.zero
p304.AssemblyAngularVelocity = Vector3.zero
end) then
return false
end
local v1185 = math.clamp(p303.config.speed or 600, 200, v721())
v795(LocalPlayer2.Character, v1185 * 1.35)
if not v860(p305, p304, v1185, Vector3.zero) then
v856(p305, p304, v1185)
v860(p305, p304, v1185, Vector3.zero)
end
return true
end
t46._legitWalkSpeed = function(p307)
local u1186
pcall(function()
local Character = LocalPlayer2.Character
local WalkSpeed
if Character then
local Humanoid = LocalPlayer2.Character:FindFirstChildOfClass("Humanoid")
WalkSpeed = Humanoid and Humanoid.WalkSpeed
else
WalkSpeed = Character
end
u1186 = WalkSpeed
end)
if type(u1186) == "number" and u1186 >= 1 and u1186 <= 400 then
p307._legitWsCache = u1186
end
local _legitWsCache = p307._legitWsCache or type(u1186) == "number" and math.clamp(u1186, 1, 400) or 16
return _legitWsCache
end
do
t46._activeGlideSpeed = function(p308)
if p308.config.stealMode == "Fly" and p308._flyDeparting then
return p308:_legitWalkSpeed()
end
return 5000
end
end
t46._glideRoot = function(p309, p310, p311, p312)
if typeof(p310) ~= "CFrame" then
return false
end
local v1191 = p312 or p309:_activeGlideSpeed()
local Character = LocalPlayer2.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart or not Humanoid then
return false
end
pcall(v760, Character)
pcall(function()
Humanoid.AutoRotate = false
end)
p309:_startHoverPad()
local Position = p310.Position
local function v1196(p313, p314, p315)
local v1197 = math.clamp(p309.config.speed or 600, 200, v721())
pcall(function()
v795(p313, v1197 * 1.35)
v860(p314, p315, v1197, Vector3.zero)
end)
end
local v1198 = os.clock() + math.clamp((Position - HumanoidRootPart.Position).Magnitude / math.max(v1191, 1) * 1.6 + 6, 15, 120)
while true do
if not (os.clock() < v1198) then
return false
end
if p311 and p311() then
break
end
if p309.destroyed or not p309.enabled and not p309._externalDeliver then
return false
end
local Character2 = LocalPlayer2.Character
local HumanoidRootPart2 = Character2 and Character2:FindFirstChild("HumanoidRootPart")
Humanoid = Character2 and Character2:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart2 then
return false
end
if not Humanoid then
return false
end
local Position2 = HumanoidRootPart2.Position
local v1202 = Position - Position2
local Magnitude = v1202.Magnitude
if Magnitude <= 1 then
pcall(function()
HumanoidRootPart2.CFrame = p310
HumanoidRootPart2.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart2.AssemblyAngularVelocity = Vector3.zero
end)
p309:_syncHoverPad(Position)
v1196(Character2, Humanoid, HumanoidRootPart2)
return true
end
local v1204 = math.max(math.min(RunService2.Heartbeat:Wait(), 0.15), 0.0041666666666666666)
local v1205 = Position2 + v1202.Unit * math.min(v1191 * v1204, Magnitude)
if v1204 >= 0.033333333333333333 then
local v1206 = p309:_groundYAt(v1205.X, v1205.Z, Character2)
if v1206 then
local v1207 = v1206 + p309:_feetOffset(HumanoidRootPart2, Humanoid)
if v1205.Y < v1207 then
v1205 = Vector3.new(v1205.X, v1207, v1205.Z)
end
end
end
pcall(function()
HumanoidRootPart2.CFrame = cFrameNew(v1205, v1205 + v1202.Unit)
HumanoidRootPart2.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart2.AssemblyAngularVelocity = Vector3.zero
end)
p309:_syncHoverPad(v1205)
v1196(Character2, Humanoid, HumanoidRootPart2)
end
return false
end
t46._walkBrakeDecel = function(p316)
if p316._brakeDecel then
return p316._brakeDecel
end
local __SenaV4BrakeDecel = genv.__SenaV4BrakeDecel
if LocalPlayer2.Character then
local Humanoid = LocalPlayer2.Character:FindFirstChildOfClass("Humanoid")
if type(__SenaV4BrakeDecel) == "table" and Humanoid then
if math.abs((__SenaV4BrakeDecel.ws or 0) - Humanoid.WalkSpeed) < 15 then
p316._brakeDecel = __SenaV4BrakeDecel.decel
return __SenaV4BrakeDecel.decel
end
end
else
type(__SenaV4BrakeDecel)
end
return 420
end
do
t46._walkLeg = function(p317, p318, p319, p320, p321, p322, p323)
local state = 1
local v1211, v1212, v1213, v1214, v1215, v1216, v1217, n23, v1219, n24, v1221, v1222, v1223, u1224, u1225, u1226, u1227, Character, HumanoidRootPart, Humanoid, Position, vector33, Magnitude, AssemblyLinearVelocity, Magnitude2, v1236, v1237, vector34, now, v1240, v1241, Character2, v1243, Humanoid2, HumanoidRootPart2
while true do
if state == 1 then
v1211 = p317
v1212 = p318
v1213 = p319
v1214 = p320
v1215 = p321
v1216 = p322
v1217 = p323
n23 = 684529208
v1219 = nil
n24 = 602089359
v1221 = nil
v1222 = nil
v1223 = function(p324, p325)
if p324 then
if p325 then
pcall(function()
p324:MoveTo(p325.Position)
end)
end
end
return false
end
u1224 = nil
u1225 = nil
u1226 = nil
u1227 = nil
if os.clock() < v1216 then
state = 2
else
state = 40
end
elseif state == 2 then
Character = LocalPlayer2.Character
HumanoidRootPart = Character
if HumanoidRootPart then
state = 35
else
state = 3
end
elseif state == 3 then
if Character then
state = 4
else
state = 39
end
elseif state == 4 then
Humanoid = Character:FindFirstChildOfClass("Humanoid")
state = 5
elseif state == 5 then
if HumanoidRootPart and Humanoid then
state = 6
else
state = 38
end
elseif state == 6 then
if v1213 and v1213() then
state = 7
else
state = 8
end
else
if state == 7 then
return v1223(Humanoid, HumanoidRootPart)
end
if state == 8 then
if not v1211.destroyed and (v1211.enabled or v1211._externalDeliver) then
state = 10
else
state = 9
end
else
if state == 9 then
return v1223(Humanoid, HumanoidRootPart)
end
if state == 10 then
Position = HumanoidRootPart.Position
vector33 = Vector3.new(v1212.X - Position.X, 0, v1212.Z - Position.Z)
Magnitude = vector33.Magnitude
AssemblyLinearVelocity = HumanoidRootPart.AssemblyLinearVelocity
Magnitude2 = Vector3.new(AssemblyLinearVelocity.X, 0, AssemblyLinearVelocity.Z).Magnitude
if v1215 then
state = 11
else
state = 13
end
elseif state == 11 then
if Magnitude <= v1214 and Magnitude2 <= 20 then
state = 12
else
state = 19
end
else
if state == 12 then
pcall(function()
u1224 = 26636988
u1225 = 319405266
Humanoid:MoveTo(Position)
end)
return true
end
if state == 13 then
v1236 = v1219
if v1236 then
state = 18
else
state = 14
end
elseif state == 14 then
v1236 = Magnitude > 0.001
if v1236 then
state = 15
else
state = 16
end
elseif state == 15 then
v1236 = vector33.Unit
state = 16
elseif state == 16 then
if v1236 then
state = 18
else
state = 17
end
elseif state == 17 then
v1236 = Vector3.zero
state = 18
elseif state == 18 then
v1219 = v1236
if Magnitude <= v1214 or vector33:Dot(v1219) <= 0 then
state = 37
else
state = 19
end
elseif state == 19 then
v1237 = Magnitude > 0.001
if v1237 then
state = 20
else
state = 21
end
elseif state == 20 then
v1237 = math.max(AssemblyLinearVelocity.X * vector33.X + AssemblyLinearVelocity.Z * vector33.Z, 0) / Magnitude
state = 21
elseif state == 21 then
if v1237 then
state = 23
else
state = 22
end
elseif state == 22 then
v1237 = Magnitude2
state = 23
elseif state == 23 then
if v1215 and Magnitude <= v1237 * v1237 / (2 * v1211:_walkBrakeDecel()) + v1237 * 0.06 then
state = 24
else
state = 28
end
elseif state == 24 then
vector34 = Position
now = os.clock()
if v1221 and v1222 < now and Magnitude2 > 20 then
state = 25
else
state = 27
end
elseif state == 25 then
v1240 = (v1221 - Magnitude2) / (now - v1222)
if v1240 > 20 and v1240 < 5000 then
state = 26
else
state = 27
end
elseif state == 26 then
v1211._brakeDecel = v1211:_walkBrakeDecel() * 0.8 + v1240 * 0.93 * 0.2
genv.__SenaV4BrakeDecel = {
ws = Humanoid.WalkSpeed,
decel = v1211._brakeDecel
}
state = 27
elseif state == 27 then
v1221 = Magnitude2
v1222 = now
state = 31
elseif state == 28 then
v1221 = nil
v1241 = math.max(Humanoid.WalkSpeed * 0.5, 12)
if v1215 and Magnitude <= v1241 then
state = 29
else
state = 30
end
elseif state == 29 then
vector34 = Vector3.new(v1212.X, Position.Y, v1212.Z)
state = 31
elseif state == 30 then
vector34 = Position + vector33.Unit * v1241
state = 31
elseif state == 31 then
pcall(function()
u1226 = 843258489
u1227 = 553919544
Humanoid:MoveTo(vector34)
end)
if v1217 then
state = 32
else
state = 33
end
elseif state == 32 then
v1217()
state = 33
elseif state == 33 then
RunService2.Heartbeat:Wait()
if os.clock() < v1216 then
state = 34
else
state = 40
end
elseif state == 34 then
Character = LocalPlayer2.Character
HumanoidRootPart = Character
if HumanoidRootPart then
state = 35
else
state = 36
end
elseif state == 35 then
HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
state = 36
elseif state == 36 then
Humanoid = Character
if Humanoid then
state = 4
else
state = 5
end
else
if state == 37 then
return true
end
if state == 38 then
return false
end
if state == 39 then
return false
end
if state == 40 then
Character2 = LocalPlayer2.Character
v1243 = v1223
Humanoid2 = Character2
if Humanoid2 then
state = 41
else
state = 42
end
elseif state == 41 then
Humanoid2 = Character2:FindFirstChildOfClass("Humanoid")
state = 42
elseif state == 42 then
HumanoidRootPart2 = Character2
if HumanoidRootPart2 then
state = 43
else
state = 45
end
elseif state == 43 then
HumanoidRootPart2 = Character2:FindFirstChild("HumanoidRootPart")
state = 44
elseif state == 44 then
return v1243(Humanoid2, HumanoidRootPart2)
elseif state == 45 then
return v1243(Humanoid2, HumanoidRootPart2)
end
end
end
end
end
end
end
end
do
t46._walkTo = function(p326, p327, p328, p329)
if typeof(p327) ~= "CFrame" then
return false
end
local v1246 = p329 or 8
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return false
end
pcall(function()
Humanoid.AutoRotate = true
end)
local Position = p327.Position
local WalkSpeed = Humanoid.WalkSpeed
if not WalkSpeed or WalkSpeed < 1 then
WalkSpeed = 16
end
local Magnitude = Vector3.new(Position.X - HumanoidRootPart.Position.X, 0, Position.Z - HumanoidRootPart.Position.Z).Magnitude
return p326:_walkLeg(Position, p328, v1246, true, os.clock() + math.clamp(Magnitude / WalkSpeed * 2 + 8, 12, 90))
end
end
t46._walkToZigzag = function(p330, p331, p332, p333)
if typeof(p331) ~= "CFrame" then
return false
end
local v1253 = p333 or 8
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return false
end
pcall(function()
Humanoid.AutoRotate = true
end)
local Position = p331.Position
local WalkSpeed = Humanoid.WalkSpeed
if not WalkSpeed or WalkSpeed < 1 then
WalkSpeed = 16
end
local Magnitude = Vector3.new(Position.X - HumanoidRootPart.Position.X, 0, Position.Z - HumanoidRootPart.Position.Z).Magnitude
local v1260 = math.max(45, WalkSpeed * WalkSpeed / (2 * p330:_walkBrakeDecel()) * 2.5)
local v1261 = os.clock() + math.clamp(Magnitude / WalkSpeed * 3 + 10, 14, 120)
local v1262
local v1263
local ok, result, result2 = pcall(function()
return v1179()
end)
if ok and type(result) == "number" and type(result2) == "number" then
v1262 = math.min(result, result2)
v1263 = math.max(result, result2)
end
while true do
if not (os.clock() < v1261) then
return false
end
if p332 and p332() then
break
end
if p330.destroyed or not p330.enabled then
return false
end
local Character2 = LocalPlayer2.Character
local HumanoidRootPart2 = Character2 and Character2:FindFirstChild("HumanoidRootPart")
Humanoid = Character2 and Character2:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart2 or not Humanoid then
return false
end
local Position2 = HumanoidRootPart2.Position
local vector33 = Vector3.new(Position.X - Position2.X, 0, Position.Z - Position2.Z)
local Magnitude2 = vector33.Magnitude
if Magnitude2 <= v1260 then
return p330:_walkLeg(Position, p332, v1253, true, v1261)
end
local Unit = vector33.Unit
local vector34 = Vector3.new(-Unit.Z, 0, Unit.X)
local v1274 = math.max(Magnitude2 - v1260 * 0.5, 4)
local v1275 = math.min(60 + math.random() * 40, v1274)
local v1276 = math.min(38, v1275 * 0.4)
local v1277 = Position2 + Unit * v1275 + vector34 * ((math.random() * 2 - 1) * v1276)
local Z = v1277.Z
if v1262 and v1263 then
Z = math.clamp(Z, v1262 + 2, v1263 - 2)
end
if p330:_walkLeg(Vector3.new(v1277.X, Position2.Y, Z), p332, 10, false, v1261) then
continue
end
return false
end
return false
end
t46._flyWalkTo = function(p334, p335, p336, p337, p338)
if typeof(p335) ~= "CFrame" then
return false
end
local v1279 = p337 or 8
local hoverPadHeightOverride = tonumber(p338) or 110
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return false
end
pcall(function()
Humanoid.AutoRotate = true
end)
local function v1284()
pcall(function()
local Humanoid2 = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChildOfClass("Humanoid")
local Animator = Humanoid2 and Humanoid2:FindFirstChildWhichIsA("Animator")
if Animator then
for _, v in ipairs(Animator:GetPlayingAnimationTracks()) do
v:Stop(0)
end
end
end)
end
local function v1289(p339)
local Character2 = LocalPlayer2.Character
local Animate = Character2 and Character2:FindFirstChild("Animate")
if Animate then
pcall(function()
Animate.Disabled = p339
end)
end
end
v1289(true)
v1284()
local Position = p335.Position
p334.hoverPadHeightOverride = hoverPadHeightOverride
p334:_startHoverPad()
pcall(function()
HumanoidRootPart.CFrame = cFrameNew(HumanoidRootPart.Position.X, hoverPadHeightOverride, HumanoidRootPart.Position.Z) * HumanoidRootPart.CFrame.Rotation
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
end)
p334:_syncHoverPad()
local WalkSpeed = Humanoid.WalkSpeed
if not WalkSpeed or WalkSpeed < 1 then
WalkSpeed = 16
end
local Magnitude = Vector3.new(Position.X - HumanoidRootPart.Position.X, 0, Position.Z - HumanoidRootPart.Position.Z).Magnitude
local v1295 = p334:_walkLeg(Position, p336, v1279, true, os.clock() + math.clamp(Magnitude / WalkSpeed * 2 + 10, 12, 120), v1284)
v1289(false)
p334.hoverPadHeightOverride = nil
if not v1295 then
return false
end
if p336 and p336() then
return false
end
p334:_glideRoot(p335, p336, p334:_legitWalkSpeed())
local v1296 = p336 and p336()
return not v1296
end
t46._isInSafeArea = function(p340, p341)
if not p341 then
return false
end
local v1297 = p341.Position - vector32
return Vector2.new(v1297.X, v1297.Z).Magnitude <= 30 and math.abs(v1297.Y) <= 18
end
t46._isInField = function(p342, p343)
local v1298 = v14()
local Areas = v1298 and v1298:FindFirstChild("Areas")
local WallStartCollision = Areas and Areas:FindFirstChild("WallStartCollision")
if WallStartCollision and WallStartCollision:IsA("BasePart") then
return p343.Position.X >= WallStartCollision.Position.X + 3
end
return true
end
t46._needsSafeZoneHop = function(p344, p345)
if p344:_isInField(p345) or p344:_isInSafeArea(p345) then
return false, nil
end
return true, p344:_resolveSafeCFrame(p345)
end
t46._invalidateCarryWorker = function(p346)
p346.carryWorker = nil
end
t46._claimCarryWorker = function(p347, p348, p349)
local generation = p347.carry.generation
local carryWorker = p347.carryWorker
if carryWorker then
if carryWorker.generation == generation then
return nil
end
end
local carryWorker2 = {
kind = p348,
uid = p349,
generation = generation,
token = {}
}
p347.carryWorker = carryWorker2
return carryWorker2
end
do
t46._isCarryWorkerCurrent = function(p350, p351)
return type(p351) == "table" and p350.carryWorker == p351 and p350.carry.generation == p351.generation and not p350.destroyed and (p350.enabled or p350._externalDeliver)
end
end
t46._releaseCarryWorker = function(p352, p353)
if p352.carryWorker == p353 then
p352.carryWorker = nil
end
end
t46.ownsCarryRecovery = function(p354, p355)
if p354.destroyed or not p354.enabled then
return false
end
if p354.carry.uid == p355 then
return true
end
return p354.running and p354.activeTarget ~= nil and (p355 == nil or p354.activeTarget.Uid == p355)
end
t46.requestCarryRecovery = function(p356, p357)
if p356.destroyed or not p356.enabled or type(p357) ~= "string" or p357 == "" then
return false
end
if p356:isSkippedEgg(p357) then
return true
end
if p356.tweenRecoveryUid == p357 then
p356:_scheduleMovementRetry()
return true
end
if p356.carry.active and p356.carry.uid == p357 then
return true
end
local v1304 = EggState2.ReadFieldEgg(p357) or p356.records[p357]
if type(v1304) ~= "table" or v1304.State ~= AreaEggs.States.Dropped and v1304.State ~= AreaEggs.States.Slot then
return false
end
local carryWorker = p356.carryWorker
if (not carryWorker or carryWorker.kind ~= "re-steal" or carryWorker.uid ~= p357) and (not p356.activeTween or not p356.activeTarget or p356.activeTarget.Uid ~= p357) then
if not p356.carryAttemptToken or not p356.activeTarget or p356.activeTarget.Uid ~= p357 then
local carry = p356.carry
carry.generation += 1
p356:_invalidateCarryWorker()
p356.carryAttemptToken = nil
p356.running = true
p356.activeTarget = v1304
task.defer(function()
if not p356.destroyed and p356.enabled and not p356.carry.active then
p356:_reStealDroppedEgg(p357)
end
end)
return true
end
end
return true
end
t46._hasConfirmedCarry = function(p358, p359)
if not p358.carry.active then
return false
end
if p359 == nil or p358.carry.uid == nil then
return true
end
return p358.carry.uid == p359
end
t46._adoptCarryFromRecord = function(p360, p361)
if p360.carry.active and p360.carry.uid == p361 then
return
end
if p360.carryTimeouts then
p360.carryTimeouts[p361] = nil
end
if p360.instantPhase == "priming" and p361 == p360.primerUid then
p360.carry.active = true
p360.carry.uid = p361
return
end
local carry = p360.carry
carry.generation += 1
p360:_invalidateCarryWorker()
p360:_clearArrivalHold(p361)
local activeTarget = p360.activeTarget
p360.claimPresentationSuppression = {
assetCategory = activeTarget and activeTarget.AssetCategory,
expiresAt = os.clock() + 8
}
p360.carry.active = true
p360.carry.uid = p361
p360.carryStartTime = os.clock()
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
p360.carryStartPos = activeTarget and activeTarget.BottomCFrame and activeTarget.BottomCFrame.Position or HumanoidRootPart and HumanoidRootPart.Position
if p360.tweenRecoveryUid == p361 then
p360.tweenRecoveryUid = nil
end
p360.stats.lastResult = "Carry confirmed"
p360:_notify()
end
t46._recordShowsCarried = function(p362, p363)
if type(p363) ~= "string" or p363 == "" then
return false
end
local v1310 = EggState2.ReadFieldEgg(p363) or p362.records[p363]
return type(v1310) == "table" and v1310.State == AreaEggs.States.Carried and v1310.CarrierUserId == LocalPlayer2.UserId
end
t46._recordShowsForeignCarry = function(p364, p365)
if type(p365) ~= "string" or p365 == "" then
return false
end
local v1311 = EggState2.ReadFieldEgg(p365) or p364.records[p365]
return type(v1311) == "table" and v1311.State == AreaEggs.States.Carried and v1311.CarrierUserId ~= nil and v1311.CarrierUserId ~= LocalPlayer2.UserId
end
t46._resolveMovementSpeed = function(p366, p367)
if not p367.Parent or p367.Health <= 0 then
return nil
end
return math.clamp(p366.config.speed, 200, v721())
end
t46._isAreaSafe = function()
return true
end
t46._feetOffset = function(p368, p369, p370)
if p370.RigType == Enum.HumanoidRigType.R15 then
return p369.Size.Y * 0.5 + math.max(p370.HipHeight, 0.5)
end
return p369.Size.Y * 0.5 + 2
end
t46.setAntiTrap = function(p371, p372)
p371.config.antiTrap = p372 == true
if p371.config.antiTrap then
p371:_purgeTraps()
end
end
t46._isForeignTrap = function(p373, p374)
if p374.Name == "PlayerTrap" and p374:IsA("BasePart") then
local attribute = p374:GetAttribute("Owner")
return type(attribute) ~= "string" or attribute ~= LocalPlayer2.Name
end
return p374:IsA("Model") and p374.Name == "Trap" and p374:FindFirstChild("Hitbox") ~= nil
end
t46._purgeTrap = function(p375, p376)
if p375.config.antiTrap and p376 then
if p376.Parent then
if p375:_isForeignTrap(p376) then
pcall(p376.Destroy, p376)
end
return
end
end
end
t46._purgeTraps = function(p377)
for _, v in ipairs({
"Transient",
"__DEBRIS"
}) do
local v1315 = workspace:FindFirstChild(v)
if v1315 then
for _, descendant in ipairs(v1315:GetDescendants()) do
p377:_purgeTrap(descendant)
end
end
end
end
do
t46._syncHoverPad = function(p378, p379)
local hoverPad = p378.hoverPad
if not hoverPad or not hoverPad.Parent or hoverPad:GetAttribute("SenaV4RuntimeOwner") ~= p378.hoverPadOwnerId then
return false
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return false
end
local Position = typeof(p379) == "Vector3" and p379 or HumanoidRootPart.Position
local Y = Position.Y
if p378.hoverPadHeightOverride ~= nil and typeof(p379) ~= "Vector3" then
Y = p378.hoverPadHeightOverride
end
local n25 = 8
if p378.hoverPadHeightOverride ~= nil then
n25 = math.max(8, Humanoid.WalkSpeed * 2 / 15)
end
if math.abs(hoverPad.Size.X - n25) > 0.5 then
hoverPad.Size = Vector3.new(n25, 1, n25)
end
hoverPad.CFrame = cFrameNew(Position.X, Y - p378:_feetOffset(HumanoidRootPart, Humanoid) - 0.5 - 0.05, Position.Z)
return true
end
end
do
t46._setArrivalHold = function(p380, p381, p382)
if typeof(p381) ~= "CFrame" then
return
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not Character or not HumanoidRootPart then
return
end
p380.arrivalHold = {
Character = Character,
RootPart = HumanoidRootPart,
CFrame = p381,
Uid = p382
}
end
end
t46._clearArrivalHold = function(p383, p384)
local arrivalHold = p383.arrivalHold
if not arrivalHold or p384 == nil or arrivalHold.Uid == nil or arrivalHold.Uid == p384 then
p383.arrivalHold = nil
end
end
t46._enforceArrivalHold = function(p385)
local arrivalHold = p385.arrivalHold
if type(arrivalHold) ~= "table" or typeof(arrivalHold.CFrame) ~= "CFrame" then
return false
end
if LocalPlayer2.Character ~= arrivalHold.Character or not arrivalHold.RootPart or not arrivalHold.RootPart.Parent then
p385.arrivalHold = nil
return false
end
p385:_startHoverPad()
pcall(function()
arrivalHold.RootPart.AssemblyLinearVelocity = Vector3.zero
arrivalHold.RootPart.AssemblyAngularVelocity = Vector3.zero
p385:_syncHoverPad(arrivalHold.CFrame.Position)
arrivalHold.RootPart.CFrame = arrivalHold.CFrame
end)
p385:_syncHoverPad(arrivalHold.CFrame.Position)
return true
end
t46._purgeOrphanHoverPads = function(p386)
for _, child in ipairs(workspace:GetChildren()) do
if child.Name == "__SenaV4HoverPad" and child ~= p386.hoverPad then
pcall(child.Destroy, child)
end
end
end
t46._startHoverPad = function(p387)
local hoverPad = p387.hoverPad
if not hoverPad or not hoverPad.Parent or hoverPad:GetAttribute("SenaV4RuntimeOwner") ~= p387.hoverPadOwnerId then
p387:_purgeOrphanHoverPads()
if hoverPad and hoverPad.Parent then
pcall(hoverPad.Destroy, hoverPad)
end
local Part = Instance.new("Part")
Part.Name = "__SenaV4HoverPad"
Part:SetAttribute("SenaV4RuntimeOwner", p387.hoverPadOwnerId)
Part.Anchored = true
Part.CanCollide = true
Part.CanQuery = true
Part.CanTouch = false
Part.CastShadow = false
Part.Transparency = 1
Part.Material = Enum.Material.SmoothPlastic
Part.Size = Vector3.new(8, 1, 8)
p387.hoverPad = Part
Part.Parent = workspace
end
p387:_syncHoverPad()
if not p387.hoverPadConnection then
p387.hoverPadConnection = RunService2.PreSimulation:Connect(function()
if not p387:_syncHoverPad() then
p387:_startHoverPad()
end
end)
end
if not p387.hoverPadPostConnection then
p387.hoverPadPostConnection = RunService2.PostSimulation:Connect(function()
if p387.activeTween or p387.arrivalHold then
p387:_syncHoverPad()
end
end)
end
end
do
t46._stopHoverPad = function(p388)
p388.hoverPadHeightOverride = nil
if p388.hoverPadConnection then
pcall(p388.hoverPadConnection.Disconnect, p388.hoverPadConnection)
p388.hoverPadConnection = nil
end
if p388.hoverPadPostConnection then
pcall(p388.hoverPadPostConnection.Disconnect, p388.hoverPadPostConnection)
p388.hoverPadPostConnection = nil
end
if p388.hoverPad then
pcall(p388.hoverPad.Destroy, p388.hoverPad)
p388.hoverPad = nil
end
p388:_purgeOrphanHoverPads()
end
end
do
t46._startMovementProtection = function(p389)
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not Character or not HumanoidRootPart or not Humanoid then
return false
end
local v1336 = math.clamp(p389.config.speed or 600, 200, v721())
p389.protectionCharacter = Character
p389.protectionHumanoid = Humanoid
p389.protectionRoot = HumanoidRootPart
v795(Character, v1336 * 1.35)
v856(Humanoid, HumanoidRootPart, v1336)
if not p389.integritySpoofConnection then
p389.integritySpoofConnection = RunService2.PreSimulation:Connect(function()
local Character2 = LocalPlayer2.Character
local HumanoidRootPart2 = Character2 and Character2:FindFirstChild("HumanoidRootPart")
local Humanoid2 = Character2 and Character2:FindFirstChildOfClass("Humanoid")
if not Character2 or not HumanoidRootPart2 or not Humanoid2 then
return
end
local v1340 = math.clamp(p389.config.speed or 600, 200, v721())
p389.protectionCharacter = Character2
p389.protectionHumanoid = Humanoid2
p389.protectionRoot = HumanoidRootPart2
v795(Character2, v1340 * 1.35)
if not v860(Humanoid2, HumanoidRootPart2, v1340) then
v856(Humanoid2, HumanoidRootPart2, v1340)
end
p389:_enforceArrivalHold()
end)
end
if not p389.arrivalHoldConnection then
p389.arrivalHoldConnection = RunService2.Heartbeat:Connect(function()
p389:_enforceArrivalHold()
end)
end
return true
end
end
t46._startFlyGrounding = function(p390)
p390:_stopFlyGrounding()
local v1341 = v851()
p390._flyGroundConn = RunService2.PreSimulation:Connect(function()
if p390.destroyed then
return
end
local State = v1341 and v1341.State
if type(State) ~= "table" or rawget(State, "CorrectionContext") ~= nil then
return
end
rawset(State, "IsSupportedNow", true)
rawset(State, "UnsupportedStartedAt", nil)
if rawget(State, "MovementMode") ~= "Correcting" then
rawset(State, "MovementMode", "Grounded")
end
local value = rawget(State, "Evidence")
if type(value) == "table" then
value.Flight = 0
value.Teleport = 0
value.Speed = 0
end
end)
end
t46._stopFlyGrounding = function(p391)
if p391._flyGroundConn then
pcall(p391._flyGroundConn.Disconnect, p391._flyGroundConn)
p391._flyGroundConn = nil
end
end
t46._stopMovementProtection = function(p392)
p392:_stopFlyGrounding()
if p392.integritySpoofConnection then
pcall(p392.integritySpoofConnection.Disconnect, p392.integritySpoofConnection)
p392.integritySpoofConnection = nil
end
if p392.arrivalHoldConnection then
pcall(p392.arrivalHoldConnection.Disconnect, p392.arrivalHoldConnection)
p392.arrivalHoldConnection = nil
end
p392:_clearArrivalHold()
p392:_stopHoverPad()
v799()
v862(p392.protectionHumanoid)
p392.protectionCharacter = nil
p392.protectionHumanoid = nil
p392.protectionRoot = nil
end
t46.travelAndWait = function(p393, p394, p395)
local v1344 = p395 or {}
if p393.destroyed then
return false
end
if p393.travelBusy then
if os.clock() < (p393.travelBusyUntil or 0) then
return false
end
end
if p393.activeTween and not p393.running and (not p393.activeTween.sharedTravel or v1344.preempt == true) then
pcall(p393.activeTween.Cancel, p393.activeTween)
local v1345 = os.clock() + 0.5
while p393.activeTween and os.clock() < v1345 do
task.wait(0.05)
end
end
if p393.activeTween then
return false
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return false
end
p393.travelBusy = true
p393.travelBusyUntil = os.clock() + 45
local ok, result = pcall(function()
local u1350
local now = os.clock()
local v1352 = now
local Magnitude = (p394.Position - HumanoidRootPart.Position).Magnitude
local v1354 = now + Magnitude / math.max(tonumber(v1344.speed) or p393.config.speed or 600, 200) + 6
p393.travelBusyUntil = v1354 + 2
p393:_tweenRoot(p394, nil, v1344.speed, {
silent = true,
sharedTravel = true,
abort = function()
return p393.destroyed or v1344.abort ~= nil and v1344.abort()
end,
onDone = function(p396)
u1350 = p396 == true
end
})
while u1350 == nil do
local now2 = os.clock()
local HumanoidRootPart2 = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
local Magnitude2 = HumanoidRootPart2 and (p394.Position - HumanoidRootPart2.Position).Magnitude or math.huge
if Magnitude2 < Magnitude - 0.5 then
Magnitude = Magnitude2
v1352 = now2
end
if p393.destroyed or v1344.abort ~= nil and v1344.abort() or now2 - v1352 >= 1.5 or v1354 <= now2 then
if p393.activeTween and p393.activeTween.Cancel then
pcall(p393.activeTween.Cancel)
end
u1350 = false
break
else
task.wait(0.05)
end
end
return u1350
end)
p393.travelBusy = false
if ok then
return result == true
end
if p393.activeTween and p393.activeTween.sharedTravel and p393.activeTween.Cancel then
pcall(p393.activeTween.Cancel)
end
return false
end
do
t46._tweenRoot = function(p397, p398, p399, p400, p401)
p397:_clearArrivalHold()
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local v1361 = p401 or {}
if not HumanoidRootPart or not Humanoid then
p397.safeStarting = false
if not v1361.silent then
p397:_finish("Character unavailable")
return
end
if v1361.onDone then
pcall(v1361.onDone, false)
end
return
end
local v1362 = p400 or p397:_resolveMovementSpeed(Humanoid)
if not v1362 then
p397.safeStarting = false
if not v1361.silent then
p397:_finish("Movement unavailable")
return
end
if v1361.onDone then
pcall(v1361.onDone, false)
end
return
end
local v1363 = math.clamp(v1362, 200, v721())
p397:_startMovementProtection()
pcall(v760, Character)
local CurrentCamera = workspace.CurrentCamera
if CurrentCamera and CurrentCamera.CameraSubject ~= Humanoid then
pcall(function()
CurrentCamera.CameraSubject = Humanoid
end)
end
local AutoRotate = Humanoid.AutoRotate
Humanoid.AutoRotate = false
local v1366 = v1361.flightProfile == true and p397:_resolveRouteCruiseY(HumanoidRootPart, p398) or nil
local activeTween = {
sharedTravel = v1361.sharedTravel == true,
routeCruiseY = v1366,
travelPhase = v1366 and "takeoff" or nil,
zigzag = p397.config.stealMode == "Zig-Zag",
zigT = 0,
zigLast = 0
}
p397.activeTween = activeTween
p397:_startHoverPad()
local u1368 = false
local connection
local now
local u1371
local n26 = 0
local function v1373(p402)
if u1368 then
return
end
u1368 = true
now = nil
if Humanoid.Parent ~= nil then
Humanoid.AutoRotate = AutoRotate
end
if p402 and v1361.holdAfterArrival then
p397:_setArrivalHold(p398, v1361.holdUid)
end
if v1361.onDone then
pcall(v1361.onDone, p402 == true)
end
if connection then
connection:Disconnect()
connection = nil
end
if p397.activeTween == activeTween then
p397.activeTween = nil
end
if not p397.arrivalHold then
p397:_stopHoverPad()
end
if not p397.enabled then
p397:_stopMovementProtection()
end
pcall(function()
if LocalPlayer2.Character == Character and HumanoidRootPart.Parent then
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
end
end)
if p402 and LocalPlayer2.Character == Character and Humanoid.Parent ~= nil and p399 then
p399()
end
end
activeTween.Cancel = function()
v1373(false)
end
connection = RunService2.Heartbeat:Connect(function(dt)
if v1361.abort and v1361.abort() then
v1373(false)
return
end
if p397.destroyed or p397.activeTween ~= activeTween then
v1373(false)
return
end
if v1361.carryTarget then
if (activeTween.nextTargetCheck or 0) <= os.clock() then
activeTween.nextTargetCheck = os.clock() + 0.1
local Uid = v1361.carryTarget.Uid
local v1375 = EggState2.ReadFieldEgg(Uid)
local State = v1375 and v1375.State
if State ~= AreaEggs.States.Slot and State ~= AreaEggs.States.Dropped and State ~= "GuardCarried" and (not v1375 or v1375.CarrierUserId ~= LocalPlayer2.UserId) and not p397:_hasConfirmedCarry(Uid) then
v1373(false)
local __SenaV4PlayerSteal = genv.__SenaV4PlayerSteal
p397:_finish(State == "Carried" and __SenaV4PlayerSteal ~= nil and __SenaV4PlayerSteal:intercept(Uid) and "Target taken - chasing the carrier" or "Target taken by someone else")
return
end
end
end
pcall(function()
local v1378 = math.clamp(p400 or p397.config.speed or v1363, 200, v721())
v795(Character, v1378 * 1.35)
local __SenaV4StealAnEggIntegritySpoof = v781().__SenaV4StealAnEggIntegritySpoof
local State = type(__SenaV4StealAnEggIntegritySpoof) == "table" and __SenaV4StealAnEggIntegritySpoof.State or nil
if not v855(State, Humanoid, HumanoidRootPart) then
u1371 = nil
now = nil
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
p397:_syncHoverPad(HumanoidRootPart.Position)
if v854(State, Humanoid, HumanoidRootPart) then
v831(State, v1378 * 1.35, Vector3.zero)
else
v856(Humanoid, HumanoidRootPart, v1378)
end
return
end
local Position = HumanoidRootPart.Position
local v1382 = p398.Position - Position
local Magnitude = v1382.Magnitude
local vector33 = Vector3.new(v1382.X, 0, v1382.Z)
local Magnitude2 = vector33.Magnitude
local Position2 = p398.Position
if activeTween.routeCruiseY then
if activeTween.travelPhase == "takeoff" then
if activeTween.routeCruiseY - 0.5 <= Position.Y then
activeTween.travelPhase = "cruise"
else
Position2 = Vector3.new(Position.X, activeTween.routeCruiseY, Position.Z)
end
end
if activeTween.travelPhase == "cruise" then
if Magnitude2 <= 4 then
activeTween.travelPhase = "descend"
else
Position2 = Vector3.new(p398.Position.X, activeTween.routeCruiseY, p398.Position.Z)
end
end
if activeTween.travelPhase == "descend" then
Position2 = p398.Position
end
end
local v1387 = Position2 - Position
local Magnitude3 = v1387.Magnitude
local routeCruiseY = activeTween.routeCruiseY and Magnitude2 or Magnitude
if u1371 and u1371 + 2 < routeCruiseY then
n26 = os.clock() + 0.5
end
u1371 = routeCruiseY
local v1390 = os.clock() < n26 and math.max(200, v1378 * 0.45) or v1378
if v1361.carryTarget and not activeTween.__earlyCarrySpam and Magnitude <= 30 then
activeTween.__earlyCarrySpam = true
local carryTarget = v1361.carryTarget
local Uid = carryTarget.Uid
local v1393 = AreaEggSlotIdentity.LooksLikeFirstAreaUid(Uid) and AreaEggSlotIdentity.SlotKey(carryTarget.AreaId, carryTarget.NestId) or nil
task.spawn(function()
while not p397.destroyed and p397.enabled and p397.activeTween == activeTween and not p397:_hasConfirmedCarry(Uid) do
pcall(v730, Uid, v1393)
task.wait(0.08)
end
end)
end
local v1394 = math.max(math.min(dt, 0.15), 0.0041666666666666666)
local v1395 = v1390 * v1394
local v1396 = vector33
local vector34 = Vector3.new(HumanoidRootPart.CFrame.LookVector.X, 0, HumanoidRootPart.CFrame.LookVector.Z)
local Unit = v1396.Magnitude > 0.001 and v1396.Unit or vector34.Magnitude > 0.001 and vector34.Unit or Vector3.new(0, 0, -1)
if (not activeTween.routeCruiseY or activeTween.travelPhase == "descend") and Magnitude <= math.max(v1395, 0.05) then
if Magnitude > 0.5 then
now = nil
end
p397:_syncHoverPad(p398.Position)
HumanoidRootPart.CFrame = lookAt(p398.Position, p398.Position + Unit)
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
p397:_syncHoverPad(p398.Position)
v860(Humanoid, HumanoidRootPart, v1378, Vector3.zero)
now = now or os.clock()
if os.clock() - now >= 0.4 then
v1373(true)
end
return
end
now = nil
if Magnitude3 <= 0.001 then
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
p397:_syncHoverPad(Position)
return
end
if not p397.hoverPad or not p397.hoverPad.Parent then
p397:_startHoverPad()
end
local v1399 = math.min(v1395, Magnitude3)
local v1400 = Position + v1387.Unit * v1399
if v1394 >= 0.033333333333333333 and (not activeTween.routeCruiseY or activeTween.travelPhase ~= "cruise") then
local v1401 = p397:_groundYAt(v1400.X, v1400.Z, Character)
if v1401 then
local v1402 = v1401 + p397:_feetOffset(HumanoidRootPart, Humanoid)
if v1400.Y < v1402 then
v1400 = Vector3.new(v1400.X, v1402, v1400.Z)
end
end
end
if activeTween.zigzag and (not activeTween.routeCruiseY or activeTween.travelPhase == "cruise") then
local vector35 = Vector3.new(v1387.X, 0, v1387.Z)
if vector35.Magnitude > 1 and Magnitude2 > 12 then
local Unit2 = vector35.Unit
local vector36 = Vector3.new(-Unit2.Z, 0, Unit2.X)
local v1406 = math.min(30, Magnitude2 * 0.3)
if Magnitude2 < 120 then
v1406 *= Magnitude2 / 120
end
activeTween.zigT = (activeTween.zigT or 0) + v1399
local zigLast = v1406 * math.sin(activeTween.zigT / 900 * 3.1415926535897931 * 2)
local zigLast2 = activeTween.zigLast or 0
activeTween.zigLast = zigLast
v1400 += vector36 * (zigLast - zigLast2)
if not activeTween.zigLaneMin then
local v1409, v1410 = v1179()
activeTween.zigLaneMin = v1409
activeTween.zigLaneMax = v1410
end
local v1411 = math.clamp(v1400.Z, activeTween.zigLaneMin, activeTween.zigLaneMax)
if v1411 ~= v1400.Z then
v1400 = Vector3.new(v1400.X, v1400.Y, v1411)
end
else
activeTween.zigLast = 0
end
end
local v1412 = (v1400 - Position) / v1394
p397:_syncHoverPad(v1400)
HumanoidRootPart.CFrame = lookAt(v1400, v1400 + Unit)
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
p397:_syncHoverPad(v1400)
if not v860(Humanoid, HumanoidRootPart, v1378, v1412) then
v856(Humanoid, HumanoidRootPart, v1378)
v860(Humanoid, HumanoidRootPart, v1378, v1412)
end
end)
end)
end
end
t46._reStealDroppedEgg = function(p403, p404)
if type(p404) ~= "string" or p404 == "" then
p403:_finish("Egg lost — retrying")
return
end
if p403:isSkippedEgg(p404) then
return
end
if p403.tweenRecoveryUid == p404 then
p403.running = false
p403.activeTarget = nil
p403:_releaseOperation()
p403:_scheduleMovementRetry()
return
end
local v1413 = p403:_claimCarryWorker("re-steal", p404)
if not v1413 then
return
end
if genv.__SenaV4GodMode then
genv.__SenaV4GodMode:startDefend(p404)
end
local v1414
local v1415 = os.clock() + 5
p403:_setStatus("Re-stealing dropped egg")
while p403:_isCarryWorkerCurrent(v1413) and os.clock() < v1415 do
local v1416 = EggState2.ReadFieldEgg(p404) or p403.records[p404]
if v1416 and (v1416.State == AreaEggs.States.Dropped or v1416.State == AreaEggs.States.Slot) then
v1414 = v1416
break
else
task.wait(0.03)
end
end
if not p403:_isCarryWorkerCurrent(v1413) then
return
end
if not v1414 or not p403:_wallOpen() then
p403:_releaseCarryWorker(v1413)
p403:_finish("Egg lost — retrying")
return
end
p403:_cancelTween("Re-stealing dropped egg", true)
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local v1420 = p403:_resolveEggDestination(v1414, HumanoidRootPart, Humanoid)
local v1421 = v1420 and p403:_resolveElevatedDestination(HumanoidRootPart, v1420) or nil
if not v1421 then
p403:_releaseCarryWorker(v1413)
p403:_finish("Character unavailable")
return
end
p403.running = true
p403.activeTarget = v1414
p403:_setStatus("Bringing egg home")
if p403:_regrabBurst(v1413, v1414.Uid, 3.5) or not p403:_isCarryWorkerCurrent(v1413) then
return
end
p403:_setStatus("Re-stealing egg")
if not p403:_teleportRoot(HumanoidRootPart, Humanoid, v1421) then
p403:_releaseCarryWorker(v1413)
p403:_finish("Re-steal failed — retrying")
return
end
p403:_setArrivalHold(v1421, v1414.Uid)
p403:_setStatus("Re-stealing egg")
if p403:_isCarryWorkerCurrent(v1413) then
p403:_requestCarry(v1414, true)
end
end
do
t46._regrabBurst = function(p405, p406, p407, p408)
local function v1422()
local v1423 = EggState2.ReadFieldEgg(p407)
return v1423 ~= nil and v1423.State == AreaEggs.States.Carried and v1423.CarrierUserId == LocalPlayer2.UserId
end
local RagdollJoints
pcall(function()
RagdollJoints = require(ReplicatedStorage2.Shared.Modules.RagdollJoints)
end)
local u1425 = false
local u1426 = false
local v1427 = os.clock() + p408
while true do
if not (os.clock() < v1427) or p405.destroyed or not p405.enabled and not p405._externalDeliver then
return v1422()
end
if v1422() then
break
end
if not p405:_isCarryWorkerCurrent(p406) then
return v1422()
end
local v1428 = EggState2.ReadFieldEgg(p407)
if not v1428 or v1428.State ~= AreaEggs.States.Dropped and v1428.State ~= AreaEggs.States.Slot then
return false
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return false
end
pcall(function()
if RagdollJoints and RagdollJoints.Release then
RagdollJoints.Release(Character)
end
Humanoid.PlatformStand = false
Humanoid.Sit = false
if Humanoid:GetState() ~= Enum.HumanoidStateType.Running then
Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
end
end)
local v1432 = p405:_resolveEggDestination(v1428, HumanoidRootPart, Humanoid)
if v1432 then
HumanoidRootPart.CFrame = v1432
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
p405:_syncHoverPad(v1432.Position)
end
if not u1425 then
u1425 = true
task.spawn(function()
pcall(function()
EggWorld.AskFieldEggCarry:InvokeServer({
Uid = p407
})
end)
u1425 = false
end)
end
if not u1426 then
u1426 = true
task.spawn(function()
pcall(EggState2.CarryFieldEgg, p407)
u1426 = false
end)
end
pcall(function()
local AreaEggSlotsClient = workspace:FindFirstChild("AreaEggSlotsClient")
local v1434 = AreaEggSlotsClient and AreaEggSlotsClient:FindFirstChild(tostring(p407))
local CarryAreaEgg = v1434 and (v1434:FindFirstChild("CarryAreaEgg", true) or v1434:FindFirstChildWhichIsA("ProximityPrompt", true))
if CarryAreaEgg and CarryAreaEgg.Enabled and type(fireproximityprompt) == "function" then
CarryAreaEgg.HoldDuration = 0
CarryAreaEgg.RequiresLineOfSight = false
fireproximityprompt(CarryAreaEgg, 0)
end
end)
task.wait(0.06)
end
return true
end
end
t46._recoverCarryConfirmationTimeout = function(p409, p410, p411)
if p409.destroyed or not p409.enabled or p409.carryAttemptToken ~= p410 or p409:_hasConfirmedCarry(p411) then
return false
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local v1438 = HumanoidRootPart and p409:_resolveSafeCFrame(HumanoidRootPart)
local v1439 = v1438 and p409:_resolveElevatedDestination(HumanoidRootPart, v1438) or nil
p409.carryTimeouts = p409.carryTimeouts or {}
local v1440 = (p409.carryTimeouts[p411] or 0) + 1
local v1441 = v1440 >= 2
if v1441 then
p409.carryTimeouts[p411] = nil
p409.skippedEggs[p411] = os.clock() + 45
p409.tweenRecoveryUid = nil
else
p409.carryTimeouts[p411] = v1440
p409.tweenRecoveryUid = not p409:_isPrimerEgg(p411) and p411 or nil
end
local lastCarryReject = p409.stats.lastCarryReject
local v1443 = p409.records[p411] or EggState2.ReadFieldEgg(p411)
local v1444 = p409.config.stealMode == "Instant" and (p411 == p409.primerUid or type(v1443) == "table" and v1443.AreaId == "Forest")
local carry = p409.carry
carry.generation += 1
p409:_invalidateCarryWorker()
p409.carryAttemptToken = nil
p409:_clearArrivalHold(p411)
if p409.activeTween and p409.activeTween.Cancel then
pcall(p409.activeTween.Cancel, p409.activeTween)
end
p409.activeTween = nil
p409.running = true
p409.activeTarget = nil
p409.stats.lastResult = "Carry confirmation timeout"
if HumanoidRootPart and v1439 then
pcall(function()
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
end)
p409:_setStatus("Carry timeout - returning to safe area")
pcall(p409._glideRoot, p409, v1439, function()
return p409.destroyed or not p409.enabled
end)
if v1441 then
p409:_setStatus(lastCarryReject and "Carry refused (" .. lastCarryReject .. ") — skipping egg" or "Carry timed out twice — skipping egg")
else
p409:_setStatus("Carry timeout — retrying")
end
else
p409:_setStatus("Carry timeout — safe area unavailable")
end
p409.running = false
p409:_releaseOperation()
if v1444 then
p409.running = true
end
task.delay(0.35, function()
if v1444 then
if not p409.destroyed and p409.enabled then
p409:_setStatus("Retrying steal")
pcall(p409._treadmillReset, p409, function()
return p409.destroyed or not p409.enabled
end)
end
p409.running = false
end
if not p409.destroyed and p409.enabled and p409.carryAttemptToken == nil then
p409:_schedule()
end
end)
return true
end
t46._requestCarry = function(p412, p413, p414)
if not p412:_wallOpen() then
p412:_finish("Wall closed before carry")
return
end
local Uid = p413.Uid
local carryAttemptToken = {}
local u1448
p412.stats.lastCarryReject = nil
local v1449 = p412.instantPhase == "priming" and Uid == p412.primerUid and 5 or math.max(5, p412:_resolveSettleSeconds(p413) + 3)
p412.carryAttemptToken = carryAttemptToken
p412.stats.lastResult = "Carry requested"
p412:_setStatus("Securing egg")
local Character = LocalPlayer2.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
pcall(Humanoid.UnequipTools, Humanoid)
end
if p412.coordinator then
local v1452 = os.clock() + 0.35
while p412.coordinator:isBackgroundBusy() and not p412.destroyed and p412.enabled and p412.carryAttemptToken == carryAttemptToken and os.clock() < v1452 do
task.wait(0.02)
end
if Humanoid and Humanoid.Parent then
pcall(Humanoid.UnequipTools, Humanoid)
end
end
task.spawn(function()
while not p412.destroyed and p412.enabled and p412.running and p412.carryAttemptToken == carryAttemptToken and p412.activeTarget and p412.activeTarget.Uid == Uid do
if not p412:_hasConfirmedCarry(Uid) and p412:_recordShowsCarried(Uid) then
p412:_adoptCarryFromRecord(Uid)
end
if p412:_hasConfirmedCarry(Uid) then
if not p412:_recordShowsCarried(Uid) then
p412:_setStatus("Confirming carry record")
task.wait(0.25)
continue
end
p412:_clearArrivalHold(Uid)
p412.carryAttemptToken = nil
if p412.activeTween then
pcall(p412.activeTween.Cancel, p412.activeTween)
p412.activeTween = nil
end
if p412.instantPhase == "priming" and Uid == p412.primerUid then
p412.carry.active = true
p412.carry.uid = Uid
p412.stats.lastResult = "Preparing steal"
p412:_enterBaitWait()
return
end
p412.carry.active = true
p412.carry.uid = Uid
p412.stats.lastResult = "Carry confirmed"
p412:_setStatus("Carry confirmed")
task.defer(function()
if not p412.destroyed and p412.enabled and p412:_hasConfirmedCarry(Uid) then
p412:_returnToSafe()
end
end)
return
end
if u1448 and u1448 <= os.clock() then
p412:_recoverCarryConfirmationTimeout(carryAttemptToken, Uid)
return
end
if not p412:_wallOpen() then
p412:_finish("Wall closed before carry")
return
end
local v1453 = EggState2.ReadFieldEgg(Uid) or p412.records[Uid]
if not v1453 then
p412:_finish("Target unavailable")
return
end
if v1453.State == AreaEggs.States.Carried then
if v1453.CarrierUserId == LocalPlayer2.UserId then
p412:_setStatus("Confirming carry state")
task.wait(0.25)
continue
end
p412:_finish("Egg carried by another player")
return
end
if v1453.State ~= AreaEggs.States.Slot and v1453.State ~= AreaEggs.States.Dropped then
p412:_finish("Target changed")
return
end
local Character2 = LocalPlayer2.Character
local HumanoidRootPart = Character2 and Character2:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
p412:_finish("Character unavailable")
return
end
local Humanoid2 = Character2 and Character2:FindFirstChildOfClass("Humanoid")
if not Humanoid2 then
p412:_finish("Character unavailable")
return
end
local v1457 = p412:_resolveEggDestination(v1453, HumanoidRootPart, Humanoid2)
local v1458 = v1457 and p412:_resolveElevatedDestination(HumanoidRootPart, v1457) or nil
if not v1458 then
p412:_finish("Character unavailable")
return
end
if (HumanoidRootPart.Position - v1458.Position).Magnitude > 10 then
if not p414 then
p412:_setStatus("Re-approaching egg")
local u1459 = false
p412:_tweenRoot(v1457, function()
u1459 = true
if p412.carryAttemptToken == carryAttemptToken and not p412:_hasConfirmedCarry(Uid) then
p412:_setStatus("Securing egg")
end
end, nil, {
holdAfterArrival = true,
holdUid = Uid,
flightProfile = true
})
while not p412.destroyed and p412.enabled and p412.carryAttemptToken == carryAttemptToken and not p412:_hasConfirmedCarry(Uid) and not u1459 do
task.wait(0.25)
end
continue
end
p412:_setStatus("Re-stealing egg")
if not p412:_teleportRoot(HumanoidRootPart, Humanoid2, v1458) then
p412:_finish("Re-steal failed — retrying")
return
end
p412:_setArrivalHold(v1458, Uid)
p412:_setStatus("Re-stealing egg")
end
local ok, result, lastCarryReject = pcall(v730, v1453.Uid, AreaEggSlotIdentity.LooksLikeFirstAreaUid(v1453.Uid) and AreaEggSlotIdentity.SlotKey(v1453.AreaId, v1453.NestId) or nil)
if not ok then
lastCarryReject = tostring(result)
elseif result == true then
lastCarryReject = nil
end
if lastCarryReject then
p412.stats.lastCarryReject = lastCarryReject
if lastCarryReject ~= p412._lastCarryRejectLogged then
p412._lastCarryRejectLogged = lastCarryReject
warn("[Sena Steal] carry refused: " .. lastCarryReject)
end
end
u1448 = u1448 or os.clock() + v1449
p412.stats.lastResult = "Carry requested"
p412:_setStatus(lastCarryReject and "Waiting for carry · " .. lastCarryReject or "Waiting for carry confirmation")
task.wait(0.25)
end
end)
end
t46._burstHold = function(p415, p416, p417)
if typeof(p416) ~= "CFrame" then
return false
end
local Position = p416.Position
local function v1464()
local Character = LocalPlayer2.Character
return Character and Character:FindFirstChild("HumanoidRootPart")
end
local function v1466(p418)
p418.CFrame = p416
p418.AssemblyLinearVelocity = Vector3.zero
p418.AssemblyAngularVelocity = Vector3.zero
end
local v1467 = os.clock() + 0.7
while true do
if os.clock() < v1467 then
if p417 and p417() then
break
end
local v1468 = v1464()
if not v1468 or not v1468.Parent then
return false
end
pcall(v1466, v1468)
RunService2.Heartbeat:Wait()
continue
end
local v1469 = os.clock() + 3
local now
while true do
if not (os.clock() < v1469) then
local v1471 = v1464()
local v1472 = v1471 ~= nil and (v1471.Position - Position).Magnitude <= 6
return v1472
end
if p417 and p417() then
break
end
local v1473 = v1464()
if not v1473 or not v1473.Parent then
return false
end
if (v1473.Position - Position).Magnitude > 6 then
now = nil
elseif not now then
now = os.clock()
elseif os.clock() - now >= 0.45 then
return true
end
pcall(v1466, v1473)
RunService2.Heartbeat:Wait()
end
return false
end
return false
end
t46._isStealPrompt = function(p419, p420)
if typeof(p420) ~= "Instance" then
return false
end
if p420.Name == "EnchantedTreePrompt" then
return true
end
local AreaEggSlotsClient = workspace:FindFirstChild("AreaEggSlotsClient")
if AreaEggSlotsClient and p420:IsDescendantOf(AreaEggSlotsClient) then
return true
end
if p420:FindFirstAncestor("FuseBiomeLanePortals") or p420:FindFirstAncestor("FuseBiomeZone") then
return true
end
return false
end
t46._installPromptFilter = function(p421)
if p421._promptFilter or type(getconnections) ~= "function" then
return
end
local promptFilter = {
muted = {},
forwarders = {}
}
p421._promptFilter = promptFilter
local function v1476()
return not p421.destroyed and (p421.enabled or p421._externalDeliver or p421._recalling or p421._treeFxMuted ~= nil)
end
for _, v in ipairs({
ProximityPromptService.PromptShown,
ProximityPromptService.PromptHidden
}) do
local ok, result = pcall(getconnections, v)
local ipairs_ = ipairs
local v1482 = ok and type(result) == "table" and result or {}
for _, v2 in ipairs_(v1482) do
local Function = v2.Function
local v1486 = false
local result2
if type(Function) == "function" then
v1486, result2 = pcall(debug.info, Function, "s")
end
if v1486 then
if tostring(result2):find("ProximityPromptScriptController", 1, true) and type(v2.Disable) == "function" and pcall(v2.Disable, v2) then
table.insert(promptFilter.muted, v2)
table.insert(promptFilter.forwarders, v:Connect(function(p422, ...)
if v1476() then
if p421:_isStealPrompt(p422) then
return
end
end
Function(p422, ...)
end))
end
end
end
end
end
t46._removePromptFilter = function(p423)
local _promptFilter = p423._promptFilter
if not _promptFilter then
return
end
p423._promptFilter = nil
for _, forwarder in ipairs(_promptFilter.forwarders) do
pcall(forwarder.Disconnect, forwarder)
end
for _, v in ipairs(_promptFilter.muted) do
pcall(v.Enable, v)
end
end
t46._treadmillReset = function(p424, p425)
p424._treadmillResetting = true
local ok, result = pcall(p424._treadmillResetInner, p424, p425)
p424._treadmillResetting = false
return ok and result
end
t46._treadmillResetInner = function(p426, p427)
local function v1495()
return p427 ~= nil and p427()
end
local Treadmill = Remotes and Remotes.Treadmill
if not Treadmill or v1495() then
return false
end
local function v1497()
local ok, result = pcall(function()
return Treadmill.AskRenderSnapshot:InvokeServer()
end)
if ok and type(result) == "table" then
return table.find(result, LocalPlayer2.UserId) ~= nil
end
return nil
end
local function v1500()
local ok, result = pcall(function()
local v1503 = type(PlotState2.ResolveLocalSlot) == "function" and PlotState2.ResolveLocalSlot() or PlotState2.GetMySlot()
local v1504 = type(PlotState2.ResolveFolder) == "function" and PlotState2.ResolveFolder() or PlotState2.GetPlotsFolder()
local v1505 = v1504 and v1503 and v1504:FindFirstChild(tostring(v1503))
local TreadmillBottom = v1505 and v1505:FindFirstChild("TreadmillBottom")
if not TreadmillBottom or not TreadmillBottom:IsA("BasePart") then
return nil
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character
local Humanoid, v1510
if HumanoidRootPart then
HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
if Character then
Humanoid = Character:FindFirstChildOfClass("Humanoid")
if HumanoidRootPart and Humanoid then
if Humanoid.RigType == Enum.HumanoidRigType.R15 then
v1510 = HumanoidRootPart.Size.Y * 0.5 + math.max(Humanoid.HipHeight, 0.5)
if not v1510 then
v1510 = HumanoidRootPart.Size.Y * 0.5 + 2
return TreadmillBottom.CFrame * cFrameNew(0, TreadmillBottom.Size.Y * 0.5 + v1510 + 0.05, 0)
end
else
v1510 = HumanoidRootPart.Size.Y * 0.5 + 2
end
return TreadmillBottom.CFrame * cFrameNew(0, TreadmillBottom.Size.Y * 0.5 + v1510 + 0.05, 0)
end
end
elseif Character then
Humanoid = Character:FindFirstChildOfClass("Humanoid")
if HumanoidRootPart and Humanoid then
if Humanoid.RigType == Enum.HumanoidRigType.R15 then
v1510 = HumanoidRootPart.Size.Y * 0.5 + math.max(Humanoid.HipHeight, 0.5)
if not v1510 then
v1510 = HumanoidRootPart.Size.Y * 0.5 + 2
return TreadmillBottom.CFrame * cFrameNew(0, TreadmillBottom.Size.Y * 0.5 + v1510 + 0.05, 0)
end
else
v1510 = HumanoidRootPart.Size.Y * 0.5 + 2
end
return TreadmillBottom.CFrame * cFrameNew(0, TreadmillBottom.Size.Y * 0.5 + v1510 + 0.05, 0)
end
end
return nil
end)
local v1511 = ok and result or nil
return v1511
end
local v1512 = v1500()
if not v1512 or v1495() then
return false
end
p426:_glideRoot(v1512, function()
return v1495()
end)
if v1495() then
return false
end
local v1513 = false
local v1514 = os.clock() + 0.7
if not v1495() and os.clock() < v1514 then
while true do
pcall(function()
Treadmill.AskWearStill:InvokeServer()
end)
task.wait(0.08)
if v1497() == true then
v1513 = true
break
elseif v1495() or not (os.clock() < v1514) then
break
end
end
if v1513 then
local v1515 = os.clock() + 0.25
while not v1495() do
if not (os.clock() < v1515) then
break
end
task.wait(0.05)
end
end
end
local v1516 = false
local v1517 = os.clock() + 0.7
while not v1495() and os.clock() < v1517 do
pcall(function()
Treadmill.AskDoff:InvokeServer()
end)
task.wait(0.08)
if v1497() == false then
v1516 = true
break
end
end
local v1518 = v1513 and v1516
return v1518
end
t46._instantReturn = function(p428, p429)
if p428._instantReturnToken ~= nil then
return
end
local instantReturnToken = {}
p428._instantReturnToken = instantReturnToken
p428._flyDeparting = false
if p428.config.stealMode == "Fly" then
p428:_showTreadmillDecoy()
end
task.spawn(function()
local function v1520()
return not p428.destroyed and (p428.enabled or p428._externalDeliver) and p428._instantReturnToken == instantReturnToken
end
local function v1521()
local Character = LocalPlayer2.Character
return Character and Character:FindFirstChild("HumanoidRootPart"), Character and Character:FindFirstChildOfClass("Humanoid")
end
local function v1523()
return EggState2.ReadFieldEgg(p429)
end
local function v1524()
local v1525 = v1523()
return v1525 ~= nil and v1525.State == AreaEggs.States.Carried and v1525.CarrierUserId == LocalPlayer2.UserId
end
local function v1526()
local v1527 = v1523()
if v1527 then
return v1527.State == AreaEggs.States.Claimed
end
return true
end
local function v1528(p430, p431)
local v1529, v1530 = v1521()
if v1529 and v1530 and typeof(p430) == "CFrame" then
if p431 then
p428:_setStatus(p431)
end
p428:_teleportRoot(v1529, v1530, p430)
end
end
local function v1531()
local v1532 = v1521()
return v1532 and p428:_resolveSafeCFrame(v1532) or nil
end
local function v1533(p432)
p428.settleBonus = p428.settleBonus or {}
if p432 then
p428.settleBonus[p429] = nil
elseif p428.config.stealMode == "Instant" and p428.boostedUid ~= p429 then
p428.settleBonus[p429] = {
seconds = 2,
untilAt = os.clock() + 300
}
end
end
local function v1534(p433)
if p428._instantReturnToken ~= instantReturnToken then
return
end
v1533(p433 == nil or p433 == "Safe return complete")
p428._instantReturnToken = nil
p428._forestDropInProgress = nil
local _externalDeliver = p428._externalDeliver
p428._externalDeliver = nil
if p428.destroyed then
return
end
if p428.enabled then
p428:_reportStolen()
p428:_finish(p433 or "Safe return complete")
elseif _externalDeliver then
p428:_reportStolen()
p428.carry.active = false
p428.carry.uid = nil
p428.activeTarget = nil
p428:_hideTreadmillDecoy()
end
end
p428:_clearArrivalHold(p429)
local treeRegrabMode = p428.treeBoostedUid == p429 and (p428.treeRegrabMode or "walk") or "glide"
local function v1537()
local v1538 = v1521()
return v1538 ~= nil and p428:_isInSafeArea(v1538)
end
local function v1539(p434, p435, p436)
return p428:_walkTo(p434, p435, p436 or 4)
end
local function v1540(p437, p438, p439, p440)
local v1541 = treeRegrabMode == "walk" or p440 == "egg" and (treeRegrabMode == "glideSafe" or treeRegrabMode == "skipSafe") or p440 == "safe" and treeRegrabMode == "glideEgg"
if v1541 and p440 == "safe" then
local v1542 = p428
local _walkTo = p428._walkTo
local v1544 = p437
local function v1545()
return p438() or v1537()
end
local v1546 = p439 or 4
return _walkTo(v1542, v1544, v1545, v1546)
end
if not v1541 then
return p428:_glideRoot(p437, p438)
end
local v1547 = p428
local _walkTo = p428._walkTo
local v1549 = p437
local v1550 = p438
local v1551 = p439 or 4
return _walkTo(v1547, v1549, v1550, v1551)
end
local v1552 = p428.config.stealMode == "Fly" or p428.boostedUid == p429 and not senaV4Config.HelpFriend
local v1553 = v1552 and 0.15 or 0.4
local v1554 = v1552 and 0.45 or 0.85
local v1555 = v1524()
if not v1555 then
p428:_setStatus("Confirming carry record")
local v1556 = os.clock() + 2.5
while v1520() and os.clock() < v1556 do
v1555 = v1524()
if not v1555 then
local v1557 = v1523()
if not v1557 or v1557.State ~= AreaEggs.States.Claimed then
RunService2.Heartbeat:Wait()
continue
end
end
break
end
if not v1520() then
return
end
end
if v1555 then
p428._forestDropInProgress = p429
p428:_setStatus("Bringing egg home")
p428:_glideRoot(cFrame, function()
return not v1520() or not v1524()
end)
if not v1520() then
return
end
local v1558 = false
for i = 1, 3 do
if not v1520() or not v1524() then
break
end
p428:_setStatus("Bringing egg home")
p428:_glideRoot(cFrame, function()
return not v1520() or not v1524()
end)
if not v1520() then
return
end
if v1524() then
task.wait(v1553)
if not v1520() then
return
end
if v1524() then
pcall(EggState2.DropFieldEgg, "PlayerRequest")
end
local v1560 = os.clock() + v1554
while v1520() and v1524() and os.clock() < v1560 do
RunService2.Heartbeat:Wait()
end
end
local v1561 = v1523()
if not v1561 or v1561.State ~= AreaEggs.States.Dropped then
if not v1524() then
break
end
continue
end
v1558 = true
break
end
if not v1520() then
return
end
if not v1558 then
if p428._instantReturnToken == instantReturnToken then
p428._instantReturnToken = nil
end
p428._forestDropInProgress = nil
v1533(false)
p428:_finish("Drop failed — retrying")
return
end
if senaV4Config.HelpFriend then
p428.skippedEggs[p429] = os.clock() + 1800
p428._forestDropInProgress = nil
p428.carry.active = false
p428.carry.uid = nil
p428.stats.lastResult = "Dropped for a friend"
p428:_setStatus("Egg dropped for a friend, heading back")
local v1562 = v1531()
if v1562 then
p428:_glideRoot(v1562, function()
return not v1520()
end)
end
if not v1520() then
return
end
local _externalDeliver = p428._externalDeliver
p428._instantReturnToken = nil
p428._externalDeliver = nil
if p428.enabled then
p428:_finish("Dropped for a friend")
elseif _externalDeliver then
p428.activeTarget = nil
p428:_hideTreadmillDecoy()
end
return
end
local Position
local v1565 = os.clock() + 3
while v1520() and os.clock() < v1565 do
local v1566 = v1523()
if v1566 and v1566.State == AreaEggs.States.Dropped then
local BottomCFrame = v1566.BottomCFrame or v1566.BoundsCFrame
Position = BottomCFrame and BottomCFrame.Position
if not Position then
task.wait(0.1)
continue
end
elseif not v1566 or v1566.State == AreaEggs.States.Carried then
task.wait(0.1)
continue
end
break
end
if not v1520() then
return
end
p428._forestDropInProgress = nil
p428:_setStatus("Bringing egg home")
local v1568 = treeRegrabMode ~= "skipSafe" and v1531() or nil
if v1568 then
v1540(v1568, function()
return not v1520()
end, nil, "safe")
end
if not v1520() then
return
end
local v1569 = p428:_claimCarryWorker("instant-regrab", p429)
local cFrame2 = Position and cFrameNew(Position + Vector3.new(0, 3.2, 0)) or cFrame
local function v1571()
v1540(cFrame2, function()
return not v1520() or v1524()
end, 3, "egg")
end
local v1572 = false
if v1569 then
p428:_setStatus("Bringing egg home")
v1571()
if not v1520() then
return
end
v1572 = p428:_regrabBurst(v1569, p429, 0.5)
if not v1520() then
return
end
if v1524() then
v1572 = true
end
if not v1572 and not v1524() and p428:_isCarryWorkerCurrent(v1569) then
p428:_setStatus("Bringing egg home")
local v1573 = v1531()
if v1573 then
p428:_glideRoot(v1573, function()
return not v1520()
end)
end
if not v1520() then
return
end
p428:_setStatus("Bringing egg home")
p428:_treadmillReset(function()
return not v1520()
end)
if not v1520() then
return
end
p428:_setStatus("Bringing egg home")
local v1574 = v1531()
if v1574 then
p428:_glideRoot(v1574, function()
return not v1520()
end)
end
if not v1520() then
return
end
if p428:_isCarryWorkerCurrent(v1569) then
p428:_setStatus("Bringing egg home")
v1571()
if not v1520() then
return
end
v1572 = p428:_regrabBurst(v1569, p429, 0.6)
if not v1520() then
return
end
end
end
end
if not v1572 and not v1524() then
v1534(v1526() and "Safe return complete" or "Re-grab failed — retrying")
return
end
end
if v1524() then
p428:_setStatus("Bringing egg home")
local v1575 = v1531()
if v1575 then
v1539(v1575, function()
return not v1520() or not v1524()
end)
end
end
p428:_setStatus("Waiting for deposit")
local v1576 = os.clock() + 8
while v1520() and not v1526() and os.clock() < v1576 do
local v1577, v1578 = v1521()
if v1577 and v1578 and not p428:_isInSafeArea(v1577) then
local v1579 = p428:_resolveSafeCFrame(v1577)
if v1579 then
v1539(v1579, function()
return not v1520() or v1526()
end)
end
end
task.wait(0.1)
end
v1534(v1526() and "Safe return complete" or "Bank not confirmed — retrying")
end)
end
t46.deliverCarriedEgg = function(p441, p442, p443)
if type(p442) ~= "string" or p442 == "" or p441.destroyed then
return false
end
if p441._instantReturnToken ~= nil then
return false
end
p441._externalDeliver = true
if type(p443) == "table" then
p441.activeTarget = p443
end
p441.carry.active = true
p441.carry.uid = p442
p441.reportedUid = nil
p441:_instantReturn(p442)
if p441._instantReturnToken ~= nil then
task.spawn(function()
local v1580 = os.clock() + 30
while p441._instantReturnToken ~= nil and os.clock() < v1580 do
task.wait(0.25)
end
if p441._externalDeliver then
p441._externalDeliver = nil
p441._instantReturnToken = nil
p441.carry.active = false
p441.carry.uid = nil
end
end)
return true
end
p441._externalDeliver = nil
p441.carry.active = false
p441.carry.uid = nil
return false
end
t46._adminSteal = function(p444, p445)
local Uid = p445.Uid
p444._adminBusyUid = Uid
local function v1582()
local v1583 = EggState2.ReadFieldEgg(Uid)
return v1583 ~= nil and v1583.State == AreaEggs.States.Carried and v1583.CarrierUserId == LocalPlayer2.UserId
end
local function v1584()
return not p444.destroyed and p444.enabled and genv.__SenaV4AdminBoost == true and p444._adminBusyUid == Uid
end
local ok, result = pcall(function()
p444.instantPhase = nil
p444.primerUid = nil
p444.targetUid = nil
p444.activeTarget = p445
p444.stats.lastResult = "Admin Abuse"
p444:_setStatus("Heading to target egg")
local v1587 = os.clock() + 3
local n27 = 0
while true do
if not v1584() or v1582() then
if not v1584() then
return
end
p444.carry.active = true
p444.carry.uid = Uid
p444:_adminDeliver(Uid)
return
end
if v1587 <= os.clock() then
break
end
local v1589 = EggState2.ReadFieldEgg(Uid)
if not v1589 or v1589.State ~= AreaEggs.States.Slot and v1589.State ~= AreaEggs.States.Dropped then
return p444:_finish("Target egg no longer available")
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return p444:_finish("Character unavailable")
end
local v1593 = p444:_resolveEggDestination(v1589, HumanoidRootPart, Humanoid)
if v1593 and (HumanoidRootPart.Position - v1593.Position).Magnitude > 4 then
p444:_teleportRoot(HumanoidRootPart, Humanoid, v1593)
end
if n27 <= os.clock() then
n27 = os.clock() + 0.1
p444:_setStatus("Securing egg")
task.spawn(function()
pcall(function()
EggWorld.AskFieldEggCarry:InvokeServer({
Uid = Uid
})
end)
end)
end
RunService2.Heartbeat:Wait()
end
p444.skippedEggs[Uid] = os.clock() + 10
return p444:_finish("Carry refused — next egg")
end)
if p444._adminBusyUid == Uid then
p444._adminBusyUid = nil
end
if not ok then
warn("[Sena Steal] admin steal error: " .. tostring(result))
if not p444.destroyed and p444.enabled then
p444:_finish("Steal error — retrying")
end
end
end
do
t46._adminDeliver = function(p446, p447)
if p446._adminDeliverUid == p447 then
return
end
p446._adminDeliverUid = p447
p446._adminBusyUid = p447
local function v1594()
return EggState2.ReadFieldEgg(p447)
end
local function v1595()
local v1596 = v1594()
return v1596 ~= nil and v1596.State == AreaEggs.States.Carried and v1596.CarrierUserId == LocalPlayer2.UserId
end
local function v1597()
local v1598 = v1594()
return v1598 == nil or v1598.State == AreaEggs.States.Claimed
end
p446:_clearArrivalHold(p447)
p446:_setStatus("Bringing egg home")
local v1599 = os.clock() + 4
while not p446.destroyed and p446.enabled and not v1597() and v1595() and os.clock() < v1599 do
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local v1603 = HumanoidRootPart and p446:_resolveSafeCFrame(HumanoidRootPart)
if v1603 and Humanoid and (HumanoidRootPart.Position - v1603.Position).Magnitude > 4 then
p446:_teleportRoot(HumanoidRootPart, Humanoid, v1603)
p446:_setStatus("Waiting for deposit")
end
RunService2.Heartbeat:Wait()
end
p446._adminDeliverUid = nil
if p446._adminBusyUid == p447 then
p446._adminBusyUid = nil
end
if p446.destroyed or not p446.enabled then
return
end
if v1597() then
p446:_reportStolen()
p446:_finish("Safe return complete")
else
p446:_finish(v1595() and "Bank not confirmed — retrying" or "Egg lost — retrying")
end
end
end
do
t46._returnToSafe = function(p448)
if p448:_isPrimerEgg(p448.carry.uid) then
local uid = p448.carry.uid
p448.stats.lastResult = "Steal not banked — retrying"
p448.carry.active = false
p448.carry.uid = nil
local carry = p448.carry
carry.generation += 1
p448:_invalidateCarryWorker()
p448.skippedEggs[uid] = os.clock() + 30
pcall(EggState2.DropFieldEgg, "PlayerRequest")
if p448.instantPhase == "priming" then
p448:_startPrimerTargetHunt()
else
task.delay(0.5, function()
if not p448.destroyed and p448.enabled and not p448.running then
p448:_schedule()
end
end)
end
p448:_notify()
return
end
if p448.captureObjectiveEnabled and p448:_isCaptureEgg(p448.carry.uid) then
p448:_captureHold(p448.carry.uid)
return
end
if genv.__SenaV4AdminBoost == true then
local uid = p448.carry.uid or p448.activeTarget and p448.activeTarget.Uid
if uid and p448._adminBusyUid ~= uid then
task.spawn(p448._adminDeliver, p448, uid)
end
return
end
if p448.config.stealMode == "Instant" or p448.config.stealMode == "Fly" then
local uid = p448.carry.uid or p448.activeTarget and p448.activeTarget.Uid
if not uid then
p448:_finish("Carry lost — retrying")
return
end
p448:_instantReturn(uid)
return
end
local uid = p448.carry.uid
local v1609 = p448:_claimCarryWorker("return", uid)
if not v1609 then
return
end
p448:_clearArrivalHold(uid)
if not p448:_wallOpen() then
p448:_releaseCarryWorker(v1609)
p448:_finish("Reset interrupted carry")
return
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
p448:_releaseCarryWorker(v1609)
p448:_finish("Character unavailable")
return
end
if not p448:_hasConfirmedCarry(uid) or p448:_recordShowsForeignCarry(uid) then
p448:_releaseCarryWorker(v1609)
p448:_finish("Carry not confirmed — retrying")
return
end
if p448:_isInSafeArea(HumanoidRootPart) then
p448:_finalizeReturn(v1609)
return
end
if not senaV4Config.HelpFriend then
local v1612 = p448:_resolveSafeCFrame(HumanoidRootPart)
if not v1612 then
p448:_releaseCarryWorker(v1609)
p448:_finish("Safe destination unavailable")
return
end
p448:_setStatus("Returning to safe area")
p448:_tweenRoot(v1612, function()
if p448:_isCarryWorkerCurrent(v1609) then
p448:_finalizeReturn(v1609)
end
end, nil, {
flightProfile = true
})
return
end
p448.handoffLane = (p448.handoffLane or 0) % #t44 + 1
local v1613 = cFrameNew(612, vector32.Y, t44[p448.handoffLane]) * HumanoidRootPart.CFrame.Rotation
p448:_setStatus("Taking the egg to the friend drop")
p448:_tweenRoot(v1613, function()
if p448:_isCarryWorkerCurrent(v1609) then
task.spawn(p448._handOffEgg, p448, v1609, uid, v1613)
end
end, nil, {
flightProfile = true
})
end
end
do
t46._handOffEgg = function(p449, p450, p451, p452)
local function v1614()
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return false
end
HumanoidRootPart.CFrame = p452
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
return true
end
local function v1616()
local v1617 = EggState2.ReadFieldEgg(p451)
return v1617 ~= nil and v1617.State == AreaEggs.States.Carried and v1617.CarrierUserId == LocalPlayer2.UserId
end
p449:_setStatus("Dropping the egg for a friend")
local n28 = 0.1
pcall(function()
n28 = LocalPlayer2:GetNetworkPing() or 0.1
end)
local v1619 = os.clock() + math.max(0.3, 0.2 + 2 * n28)
while os.clock() < v1619 and v1614() do
RunService2.Heartbeat:Wait()
end
p449.skippedEggs[p451] = os.clock() + 1800
p449:_reportStolen()
local v1620 = false
for i = 1, 4 do
v1614()
if not v1616() then
v1620 = true
break
end
pcall(EggState2.DropFieldEgg, "PlayerRequest")
local v1622 = os.clock() + 0.6
while true do
RunService2.Heartbeat:Wait()
v1620 = not v1616()
if v1620 then
break
elseif v1622 <= os.clock() then
break
end
end
if v1620 then
break
end
end
if not v1620 then
p449.skippedEggs[p451] = nil
if p449:_isCarryWorkerCurrent(p450) then
p449:_releaseCarryWorker(p450)
p449:_finish("Friend drop failed — retrying")
end
return
end
local v1623 = os.clock() + 1
while p449.carry.active and os.clock() < v1623 do
RunService2.Heartbeat:Wait()
end
p449.carry.active = false
p449.carry.uid = nil
p449.stats.lastResult = "Dropped for a friend"
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
local v1625 = HumanoidRootPart and p449:_resolveSafeCFrame(HumanoidRootPart)
if not v1625 then
p449:_finish("Dropped for a friend")
return
end
p449:_setStatus("Egg dropped for a friend, heading back")
p449:_tweenRoot(v1625, nil, nil, {
flightProfile = true,
onDone = function()
p449:_finish("Dropped for a friend")
end
})
end
end
do
t46._reportStolen = function(p453)
local activeTarget = p453.activeTarget
if not (type(activeTarget) == "table" and activeTarget.Uid) then
return
end
if p453.reportedUid == activeTarget.Uid then
return
end
p453.reportedUid = activeTarget.Uid
task.delay(1.5, function()
if p453.destroyed then
return
end
local u1627
pcall(function()
u1627 = EggState2.ReadFieldEgg(activeTarget.Uid)
end)
if type(u1627) == "table" and (u1627.State == AreaEggs.States.Slot or u1627.State == AreaEggs.States.Dropped or u1627.State == AreaEggs.States.Carried and u1627.CarrierUserId ~= LocalPlayer2.UserId) then
p453.reportedUid = nil
p453.stats.deliveryFailed = (p453.stats.deliveryFailed or 0) + 1
p453.stats.lastResult = "Delivery failed — retrying"
p453:_notify()
if p453.enabled and not p453.running then
p453:_schedule()
end
return
end
p453.stats.delivered = (p453.stats.delivered or 0) + 1
local __SenaV4Webhook = genv.__SenaV4Webhook
if not __SenaV4Webhook then
return
end
local ok, result = pcall(p453.catalog.resolve, activeTarget)
pcall(__SenaV4Webhook.stolen, activeTarget, ok and result or nil, nil)
end)
end
end
do
t46._startWatchdog = function(p454)
if p454.watchdogRunning then
return
end
p454.watchdogRunning = true
task.spawn(function()
local v1631
local now = os.clock()
local now2
local v1634
local Position
local now3
while v16() and not p454.destroyed do
if not p454.userStealEnabled then
break
end
task.wait(2)
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
local v1638 = tostring(p454.stats.status)
if not p454.enabled or not p454.running or p454.carry.active or p454.carryAttemptToken ~= nil or p454._instantReturnToken ~= nil or p454._captureHoldUid or not HumanoidRootPart or v1638 ~= v1634 or not Position or not ((HumanoidRootPart.Position - Position).Magnitude < 3) then
Position = HumanoidRootPart and HumanoidRootPart.Position
v1634 = v1638
now3 = os.clock()
elseif os.clock() - now3 > 12 then
v1634 = nil
Position = nil
now3 = nil
v1631 = nil
p454.stats.watchdogResets = (p454.stats.watchdogResets or 0) + 1
pcall(function()
p454:_invalidateCarryWorker()
end)
p454:_finish("Stuck - retrying")
p454:_releaseOperation()
end
if not p454.enabled or p454._captureHoldUid then
v1631 = nil
now2 = nil
elseif p454.running then
now2 = nil
local v1639 = tostring(p454.activeTarget and p454.activeTarget.Uid) .. "|" .. tostring(p454.carry.active)
if v1639 ~= v1631 then
v1631 = v1639
now = os.clock()
elseif os.clock() - now > 60 then
v1631 = nil
p454.stats.watchdogResets = (p454.stats.watchdogResets or 0) + 1
local Uid = p454.activeTarget and p454.activeTarget.Uid
if Uid and not p454.carry.active then
p454.skippedEggs[Uid] = os.clock() + 45
if p454.tweenRecoveryUid == Uid then
p454.tweenRecoveryUid = nil
end
end
pcall(function()
p454:_invalidateCarryWorker()
end)
p454:_finish("Stuck — retrying")
end
else
v1631 = nil
local ok, result = pcall(p454._chooseTarget, p454)
if p454:_wallOpen() and ok and result ~= nil then
now2 = now2 or os.clock()
if os.clock() - now2 > 6 then
now2 = nil
p454.stats.watchdogResets = (p454.stats.watchdogResets or 0) + 1
p454:_releaseOperation()
p454:_schedule()
end
else
now2 = nil
end
end
end
p454.watchdogRunning = false
end)
end
end
t46._finalizeReturn = function(p455, p456)
if not p455:_isCarryWorkerCurrent(p456) then
return
end
if not p455.carry.active then
p455:_releaseCarryWorker(p456)
p455:_reportStolen()
p455:_finish("Safe return complete")
return
end
p455:_setStatus("Validating safe arrival")
local now = os.clock()
local v1644 = os.clock() + 6
while true do
if not p455:_isCarryWorkerCurrent(p456) or not p455.carry.active or not (os.clock() < v1644) then
if not p455:_isCarryWorkerCurrent(p456) then
return
end
if not p455.carry.active then
p455:_releaseCarryWorker(p456)
p455:_reportStolen()
p455:_finish("Safe return complete")
return
end
p455:_setStatus("Deposit pending — validating again")
task.defer(function()
if p455:_isCarryWorkerCurrent(p456) and p455.carry.active then
p455:_finalizeReturn(p456)
end
end)
return
end
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
p455:_releaseCarryWorker(p456)
p455:_finish("Character unavailable")
return
end
if not p455:_isInSafeArea(HumanoidRootPart) then
break
end
if os.clock() - now >= 0.35 then
p455:_setStatus("Waiting for deposit")
end
task.wait(0.08)
end
p455:_setStatus("Rollback detected — returning again")
p455:_releaseCarryWorker(p456)
task.defer(function()
if not p455.destroyed and p455.enabled and p455.carry.active then
p455:_returnToSafe()
end
end)
end
t46._finish = function(p457, p458)
p457:_noteLowSpeedOutcome(p458)
p457:_hideTreadmillDecoy()
p457._forestDropInProgress = nil
p457._instantReturnToken = nil
p457.boostedUid = nil
p457:_invalidateCarryWorker()
p457.planGeneration += 1
p457:_cancelTween(p458, p457.enabled)
p457:_setStatus(p457.enabled and "Searching" or "Idle")
if p457.enabled then
task.delay(0.05, function()
if p457.destroyed or not p457.enabled then
p457:_releaseOperation()
return
end
p457:_schedule()
end)
end
end
t46._scheduleMovementRetry = function(p459)
if p459.movementRetryPending or p459.destroyed or not p459.enabled then
return
end
p459.movementRetryPending = true
task.delay(0.2, function()
p459.movementRetryPending = false
if not p459.destroyed and p459.enabled then
p459:_schedule()
end
end)
end
t46._schedule = function(p460)
if not p460.running then
p460.safeStarting = false
end
if p460.destroyed or not p460.enabled or p460.running then
return
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
p460:_releaseOperation()
p460:_setStatus("Character unavailable")
return
end
p460:_startMovementProtection()
if p460.carry.active and p460.carry.uid ~= nil then
if p460.instantPhase == "priming" and p460.carry.uid == p460.primerUid then
return
end
if p460:_isPrimerEgg(p460.carry.uid) then
p460:_setStatus("Dropping primer egg")
p460.skippedEggs[p460.carry.uid] = os.clock() + 30
pcall(EggState2.DropFieldEgg, "PlayerRequest")
task.delay(0.5, function()
if not p460.destroyed and p460.enabled then
p460:_schedule()
end
end)
return
end
local v1649 = p460.records[p460.carry.uid] or EggState2.ReadFieldEgg(p460.carry.uid)
local captureObjectiveEnabled = type(v1649) == "table" and (p460.riftWants[v1649.AssetCategory] or p460.captureObjectiveEnabled and p460:_isCaptureEgg(v1649.Uid) or p460.indexObjectiveEnabled and p460:_isIndexObjective(v1649) or p460.wispObjective and p460:_isWispObjective(v1649) or p460.userStealEnabled and not p460.riftOnly and p460:_matchesNormalFilter(v1649))
if type(v1649) ~= "table" or captureObjectiveEnabled then
p460:_returnToSafe()
return
end
p460:_setStatus("Dropping unwanted egg")
p460.skippedEggs[p460.carry.uid] = os.clock() + 30
pcall(EggState2.DropFieldEgg, "PlayerRequest")
task.delay(0.5, function()
if not p460.destroyed and p460.enabled then
p460:_schedule()
end
end)
return
end
if not p460:_wallOpen() then
p460:_releaseOperation()
p460:_setStatus("Waiting for reset wall")
return
end
local __SenaV4PlayerSteal = genv.__SenaV4PlayerSteal
local autoSteal = t25.blocker("auto_steal")
local autoSteal2 = not autoSteal and t25.holder("auto_steal") or nil
if autoSteal or autoSteal2 or __SenaV4PlayerSteal and __SenaV4PlayerSteal.running then
p460:_releaseOperation()
p460:_setStatus(autoSteal and "Yielding to " .. t25.TITLES[autoSteal] or autoSteal2 and "Waiting for " .. t25.TITLES[autoSteal2] .. " to hand over" or "Yielding to Steal Players")
if p460._yieldRetryPending then
return
end
p460._yieldRetryPending = true
task.delay((autoSteal or autoSteal2) and 1 or 0.5, function()
p460._yieldRetryPending = nil
if not p460.destroyed and p460.enabled then
p460:_schedule()
end
end)
return
end
local tweenRecoveryUid = p460.tweenRecoveryUid
local v1655 = tweenRecoveryUid and (EggState2.ReadFieldEgg(tweenRecoveryUid) or p460.records[tweenRecoveryUid]) or nil
if tweenRecoveryUid then
if type(v1655) ~= "table" or v1655.State ~= AreaEggs.States.Slot and v1655.State ~= AreaEggs.States.Dropped then
p460.tweenRecoveryUid = nil
tweenRecoveryUid = nil
v1655 = nil
end
end
v1655 = v1655 or p460:_chooseTarget()
if not v1655 then
if p460.stats.matching == 0 and p460.stats.available > 0 then
if (p460.config.minWeightKg or 0) > 0 then
p460:_setStatus(string.format("No eggs ≥ %dKg", p460.config.minWeightKg))
else
p460:_setStatus("No matching eggs")
end
else
p460:_setStatus("No matching eggs")
end
p460:_releaseOperation()
if not p460.activeTween and p460:_isInField(HumanoidRootPart) and not p460:_isInSafeArea(HumanoidRootPart) then
local v1656 = p460:_resolveSafeCFrame(HumanoidRootPart)
if v1656 then
p460:_tweenRoot(v1656, nil, nil, {
silent = true,
flightProfile = true,
abort = function()
return not p460.enabled or p460.running
end
})
end
end
return
end
if p460.treadmillManager then
if p460.treadmillManager:isEngaged() then
p460.treadmillManager:_cancelIdle(true)
end
end
local planGeneration = p460.planGeneration
local v1658, v1659 = p460:_acquireOperation()
if not v1658 then
p460:_setStatus("Waiting · " .. tostring(v1659 or "another operation"))
task.delay(0.5, function()
if not p460.destroyed and p460.enabled and p460.planGeneration == planGeneration then
p460:_schedule()
end
end)
return
end
p460.safeStarting = true
p460.running = true
p460.activeTarget = v1655
local v1660 = p460.catalog.resolve(v1655)
p460.stats.lastTarget = string.format("%s · %s · %s", v1660.rarity, v1660.name, v1655.AreaId)
if tweenRecoveryUid then
p460.safeStarting = false
p460.stats.lastResult = "Recovering with tween"
local v1661 = p460:_resolveEggDestination(v1655, HumanoidRootPart, Humanoid)
if not v1661 then
p460.tweenRecoveryUid = nil
p460:_finish("Recovery destination unavailable")
return
end
p460:_setStatus("Returning to egg")
p460:_tweenRoot(v1661, function()
if p460.tweenRecoveryUid == v1655.Uid then
p460:_requestCarry(v1655, false)
end
end, nil, {
holdAfterArrival = true,
holdUid = v1655.Uid,
flightProfile = true,
carryTarget = v1655
})
return
end
if not p460:_leftTreadmill(HumanoidRootPart) then
p460.running = false
p460.safeStarting = false
p460.activeTarget = nil
p460:_releaseOperation()
p460:_setStatus("Preparing steal")
task.delay(0.3, function()
if not p460.destroyed and p460.enabled and p460.planGeneration == planGeneration then
p460:_schedule()
end
end)
return
end
if genv.__SenaV4AdminBoost == true and (not p460.captureObjectiveEnabled or not p460:_isCaptureEgg(v1655.Uid)) then
p460.safeStarting = false
task.spawn(p460._adminSteal, p460, v1655)
return
end
local v1662 = HumanoidRootPart.Position - vector32
local Magnitude = Vector2.new(v1662.X, v1662.Z).Magnitude
local v1664 = false
if p460.config.stealMode == "Fly" then
local BottomCFrame = v1655.BottomCFrame or v1655.BoundsCFrame
if BottomCFrame then
local v1666 = BottomCFrame.Position - HumanoidRootPart.Position
if Vector2.new(v1666.X, v1666.Z).Magnitude < Magnitude then
v1664 = true
end
end
end
if not v1664 and Magnitude > 3 then
if os.clock() - (p460.lastSafeRepositionAt or 0) > 5 then
local v1667 = p460:_resolveSafeCFrame(HumanoidRootPart)
if v1667 then
p460.safeStarting = true
p460.running = true
p460.lastSafeRepositionAt = os.clock()
p460:_setStatus("Repositioning to safe area")
p460:_tweenRoot(v1667, function()
p460:_groundSnap()
p460.safeStarting = false
p460.running = false
task.delay(0.15, function()
if not p460.destroyed and p460.enabled and p460.planGeneration == planGeneration then
p460:_schedule()
end
end)
end, nil, {
flightProfile = true
})
return
end
end
end
p460.safeStarting = false
if p460.config.stealMode == "Fly" then
p460.instantPhase = "priming"
p460.primerUid = nil
p460.targetUid = v1655.Uid
p460.activeTarget = v1655
p460._flyDeparting = false
p460.lowFpsPrime = false
p460:_installGuardHitDistanceBoost()
p460:_startMovementProtection()
p460.stats.lastResult = "High Speed departing"
p460:_startPrimerTargetHunt()
return
end
local v1668 = p460:_choosePrimerEgg(v1655.Uid)
if not v1668 then
p460.running = false
p460.activeTarget = nil
p460:_releaseOperation()
p460:_setStatus("Preparing steal")
task.delay(0.25, function()
if not p460.destroyed and p460.enabled and p460.planGeneration == planGeneration then
p460:_schedule()
end
end)
return
end
p460.instantPhase = "priming"
p460.primerUid = v1668.Uid
p460.primerUids[v1668.Uid] = os.clock() + 120
p460.skippedEggs[v1668.Uid] = os.clock() + 30
p460.targetUid = v1655.Uid
p460.activeTarget = v1668
p460._flyDeparting = p460.config.stealMode == "Fly"
if p460.config.stealMode == "Instant" then
p460:_showTreadmillDecoy()
end
p460:_installGuardHitDistanceBoost()
p460.stats.lastResult = p460.config.stealMode .. " priming"
p460.lowFpsPrime = v19() < 30
local v1669 = p460:_resolveEggDestination(v1668, HumanoidRootPart, Humanoid)
if not v1669 then
p460:_finish("Steal unavailable — retrying")
return
end
if p460.lowFpsPrime then
p460:_setStatus("Preparing steal")
p460:_tweenRoot(v1669, function()
if p460.instantPhase == "priming" and p460.primerUid == v1668.Uid then
p460:_requestCarry(v1668, false)
end
end, nil, {
holdAfterArrival = true,
holdUid = v1668.Uid,
flightProfile = true,
carryTarget = v1668
})
return
end
if p460.config.stealMode == "Fly" then
p460:_setStatus("Preparing steal")
if not p460:_glideRoot(v1669, function()
return p460.destroyed or not p460.enabled or p460.instantPhase ~= "priming" or p460.primerUid ~= v1668.Uid
end) then
if p460.instantPhase == "priming" and p460.primerUid == v1668.Uid then
p460:_finish("Steal unavailable — retrying")
end
return
end
p460:_setArrivalHold(v1669, v1668.Uid)
p460:_requestCarry(v1668, true)
return
end
p460:_setStatus("Preparing steal")
if not p460:_teleportRoot(HumanoidRootPart, Humanoid, v1669) then
p460:_finish("Steal unavailable — retrying")
return
end
p460:_setArrivalHold(v1669, v1668.Uid)
p460:_requestCarry(v1668, true)
end
t46._leftTreadmill = function(p461, p462)
local treadmillManager = p461.treadmillManager
if not treadmillManager or treadmillManager.destroyed then
return true
end
if not (treadmillManager.activeTreadmill ~= nil or treadmillManager.treadmillEquipPending == true or treadmillManager.travelingToTreadmill == true or p462 ~= nil and p462.Anchored) then
p461.treadmillLeaveAt = nil
return true
end
local now = os.clock()
p461.treadmillLeaveAt = p461.treadmillLeaveAt or now
treadmillManager.idleGeneration += 1
if not p461.treadmillDoffBusy then
if now - (p461.treadmillDoffAt or 0) > 0.6 then
p461.treadmillDoffBusy = true
p461.treadmillDoffAt = now
task.spawn(function()
pcall(treadmillManager._requestUnequip, treadmillManager)
pcall(treadmillManager._syncActiveTreadmillSnapshot, treadmillManager)
p461.treadmillDoffBusy = false
end)
end
end
if p462 and p462.Anchored and now - p461.treadmillLeaveAt > 1 then
pcall(function()
p462.Anchored = false
end)
end
if not (now - p461.treadmillLeaveAt > 8) then
return false
end
p461.treadmillLeaveAt = nil
return true
end
do
t46._reconcileRunningState = function(p463)
local enabled = p463.userStealEnabled == true or next(p463.riftWants) ~= nil or p463.indexObjectiveEnabled == true or p463.wispObjective ~= nil or p463.manualObjectiveEnabled == true or p463.captureObjectiveEnabled == true
if p463.enabled == enabled then
if p463.enabled then
p463:_refreshCounts()
p463:_schedule()
end
return
end
p463.enabled = enabled
if p463.enabled then
if LocalPlayer2.Character then
v760(LocalPlayer2.Character)
v769(p463, LocalPlayer2.Character)
end
p463:_installGuardHitDistanceBoost()
p463:_startMovementProtection()
pcall(p463._installPromptFilter, p463)
p463:_setStatus("Searching")
p463:_schedule()
else
if p463._instantReturnToken ~= nil and p463.carry.uid ~= nil and not p463._externalDeliver then
p463._externalDeliver = true
p463.planGeneration += 1
p463.running = false
p463:_setStatus("Finishing target egg")
task.spawn(function()
local v1673 = os.clock() + 45
while p463._instantReturnToken ~= nil and os.clock() < v1673 and not p463.destroyed do
task.wait(0.2)
end
if p463.destroyed or p463.enabled then
return
end
p463._externalDeliver = nil
p463._instantReturnToken = nil
p463.carry.active = false
p463.carry.uid = nil
p463.activeTarget = nil
p463:_cleanupInstantSteal()
p463:_removeGuardHitDistanceBoost()
p463:_restoreTreadmillVisualAtSafe()
p463:_stopMovementProtection()
v768(p463)
p463:_setStatus("Idle")
end)
p463:_refreshCounts()
return
end
p463.planGeneration += 1
local carry = p463.carry
carry.generation += 1
p463:_cleanupInstantSteal()
p463:_removeGuardHitDistanceBoost()
p463:_invalidateCarryWorker()
p463._forestDropInProgress = nil
p463._instantReturnToken = nil
p463.carry.active = false
p463.carry.uid = nil
p463.tweenRecoveryUid = nil
p463.claimPresentationSuppression = nil
p463.safeStarting = false
p463.movementRetryPending = false
p463:_cancelTween("Disabled")
p463:_releaseOperation()
p463:_restoreTreadmillVisualAtSafe()
p463:_stopMovementProtection()
v768(p463)
p463.activeTarget = nil
p463.running = false
p463:_setStatus("Idle")
end
p463:_refreshCounts()
end
end
t46.setEnabled = function(p464, p465)
p464.userStealEnabled = p465 == true
p464:_reconcileRunningState()
if p464.userStealEnabled then
p464:_startWatchdog()
end
p464:_reconcileScramblePortal()
end
do
t46._neutralizeScramblePortal = function(p466, p467)
if typeof(p467) ~= "Instance" or p467.Name ~= "ScrambleArenaPortal" then
return
end
p466.scramblePortalOriginals = p466.scramblePortalOriginals or {}
for _, descendant in ipairs(p467:GetDescendants()) do
if descendant:IsA("BasePart") then
if p466.scramblePortalOriginals[descendant] == nil then
local attribute = descendant:GetAttribute("SenaV4PortalOrig")
if type(attribute) == "string" then
p466.scramblePortalOriginals[descendant] = {
CanCollide = attribute:sub(1, 1) == "1",
CanTouch = attribute:sub(2, 2) == "1"
}
else
p466.scramblePortalOriginals[descendant] = {
CanCollide = descendant.CanCollide,
CanTouch = descendant.CanTouch
}
pcall(descendant.SetAttribute, descendant, "SenaV4PortalOrig", (descendant.CanCollide and "1" or "0") .. (descendant.CanTouch and "1" or "0"))
end
end
pcall(function()
descendant.CanCollide = false
descendant.CanTouch = false
end)
end
end
end
end
t46._startScramblePortalBypass = function(p468)
local ScrambleArenaPortal = workspace:FindFirstChild("ScrambleArenaPortal")
if ScrambleArenaPortal then
p468:_neutralizeScramblePortal(ScrambleArenaPortal)
end
if not p468.scramblePortalConn then
p468.scramblePortalConn = workspace.ChildAdded:Connect(function(child)
if p468.destroyed or not p468.userStealEnabled or p468._scramblePortalHold or senaV4Config.ScrambleBossAuto == true then
return
end
if child.Name ~= "ScrambleArenaPortal" then
return
end
for _, v in ipairs({
0,
0.15,
0.4,
0.8
}) do
task.delay(v, function()
if not p468.destroyed and p468.userStealEnabled and not p468._scramblePortalHold then
if senaV4Config.ScrambleBossAuto ~= true and child.Parent then
p468:_neutralizeScramblePortal(child)
end
end
end)
end
end)
end
end
t46._stopScramblePortalBypass = function(p469)
if p469.scramblePortalConn then
pcall(p469.scramblePortalConn.Disconnect, p469.scramblePortalConn)
p469.scramblePortalConn = nil
end
if p469.scramblePortalOriginals then
for k, scramblePortalOriginal in pairs(p469.scramblePortalOriginals) do
if typeof(k) == "Instance" and k.Parent then
pcall(function()
k.CanCollide = scramblePortalOriginal.CanCollide
k.CanTouch = scramblePortalOriginal.CanTouch
k:SetAttribute("SenaV4PortalOrig", nil)
end)
end
end
p469.scramblePortalOriginals = nil
end
end
do
t46._setScramblePortalHold = function(p470, p471)
local scramblePortalHold = p471 == true
if p470._scramblePortalHold == scramblePortalHold then
return
end
p470._scramblePortalHold = scramblePortalHold
p470:_reconcileScramblePortal()
end
end
t46._reconcileScramblePortal = function(p472)
if not p472.userStealEnabled or p472._scramblePortalHold or senaV4Config.ScrambleBossAuto == true then
p472:_stopScramblePortalBypass()
else
p472:_startScramblePortalBypass()
end
end
t46._resolveWeightKg = function(p473, p474)
local weightUtil = p473.weightUtil
if not weightUtil or not p474 or not p474.AssetScale or not p474.AssetCategory then
return nil
end
local ok, result = pcall(weightUtil.WeightKgForScale, p474.AssetCategory, p474.AssetScale)
if ok and type(result) == "number" then
return result
end
return nil
end
t46.setHeaviestFirst = function(p475, p476)
p475.config.heaviestFirst = p476 == true
if p475.config.heaviestFirst then
p475.config.highestValueFirst = false
end
p475:_schedule()
end
t46.setHighestValueFirst = function(p477, p478)
p477.config.highestValueFirst = p478 == true
if p477.config.highestValueFirst then
p477.config.heaviestFirst = false
end
p477:_schedule()
end
do
local t53 = {
rarity = true,
name = true,
kg = true,
mutation = true,
value = true,
placed = true,
icon = true
}
v748 = function(p479)
if type(p479) ~= "table" then
return nil
end
local Category = p479.Category or p479.AssetCategory
local v1689 = tonumber(p479.Scale or p479.AssetScale)
if type(Category) ~= "string" or not v1689 or v1689 <= 0 then
return nil
end
local ok, result = pcall(AssetEarnings.MutationOnlyRatePerSecond, {
Category = Category,
Scale = v1689,
Mutations = type(p479.Mutations) == "table" and table.clone(p479.Mutations) or {},
BaseMutation = type(p479.BaseMutation) == "string" and p479.BaseMutation or nil
})
return ok and type(result) == "number" and result or nil
end
local u1692
local function v1693(p480)
if type(u1692) ~= "table" then
local ok, result = pcall(require, ReplicatedStorage2.Packages.FormatNumber.Simple)
if ok and type(result.FormatCompact) == "function" then
u1692 = result
end
end
if u1692 then
local ok, result = pcall(u1692.FormatCompact, p480, ".#")
if ok and type(result) == "string" then
return result
end
end
local v1698 = math.abs(p480)
if v1698 >= 1e12 then
return string.format("%.2fT", p480 / 1e12)
end
if v1698 >= 1e9 then
return string.format("%.2fB", p480 / 1e9)
end
if v1698 >= 1000000 then
return string.format("%.1fM", p480 / 1000000)
end
if v1698 >= 1000 then
return string.format("%.1fK", p480 / 1000)
end
return string.format("%d", math.floor(p480 + 0.5))
end
local t54 = {
["Carry not confirmed — retrying"] = true,
["Carry refused — next egg"] = true,
["Carry lost — retrying"] = true,
["Drop failed — retrying"] = true,
["Egg lost — retrying"] = true,
["Re-steal failed — retrying"] = true,
["Steal timed out — retrying"] = true
}
local t55 = {}
local function v1701()
if next(t55) then
return t55
end
local v1702 = v14()
local Areas = v1702 and v1702:FindFirstChild("Areas")
local GuardAreas = Areas and Areas:FindFirstChild("GuardAreas")
local ipairs_ = ipairs
local children = GuardAreas and GuardAreas:GetChildren() or {}
for _, child in ipairs_(children) do
local ClosestExitPoint = child:FindFirstChild("ClosestExitPoint")
if ClosestExitPoint and ClosestExitPoint:IsA("BasePart") then
t55[child.Name] = ClosestExitPoint.Position.X
end
end
return t55
end
t46.settleNeed = function(p481, p482, p483)
return 2 + math.max(0, (v1701()[p482] or 597) - 597) / (3.2 * math.max(p483, 16))
end
t46.recommendLowSpeedLevel = function(p484, p485)
local v1710 = p485 or v869()
local t56 = {}
if p484.config.areaEnabled and #p484.config.areas > 0 then
t56 = p484.config.areas
else
for k in pairs(v1701()) do
t56[#t56 + 1] = k
end
end
local n29 = 10
local n30 = 10
local v1715
for _, v in ipairs(t56) do
local v1718 = p484:settleNeed(v, v1710)
local n31 = 1
local n32 = 1
for i = 10, 1, -1 do
if v1718 <= v1077(v, i) then
n31 = i
break
end
end
for i = 10, 1, -1 do
if v1718 * 1.25 <= v1077(v, i) then
n32 = i
break
end
end
if n31 < n30 then
n30 = n31
v1715 = v
end
n29 = math.min(n29, n32)
end
local lowSpeedFailCap = p484.lowSpeedFailCap
if lowSpeedFailCap then
n30 = math.min(n30, lowSpeedFailCap)
n29 = math.min(n29, lowSpeedFailCap)
end
return math.min(n29, n30), n30, v1710, v1715
end
t46._noteLowSpeedOutcome = function(p486, p487)
local v1724 = p486._untrustedSeen == true
p486._untrustedSeen = nil
if p486.config.stealMode ~= "Instant" then
return
end
if p486.boostedUid ~= nil or p486._boostHopUid ~= nil then
return
end
local v1725 = t54[tostring(p487)] == true or v1724
if not v1725 and p487 ~= "Safe return complete" then
return
end
local v1726 = math.clamp(tonumber(senaV4Config.StealHoldSeconds) or 5, 1, 10)
p486.lowSpeedOutcomes = p486.lowSpeedOutcomes or {}
local v1727 = p486.lowSpeedOutcomes[v1726] or {}
p486.lowSpeedOutcomes[v1726] = v1727
v1727[#v1727 + 1] = {
at = os.clock(),
failed = v1725
}
while #v1727 > 8 do
table.remove(v1727, 1)
end
local n33 = 0
local n34 = 0
for _, v in ipairs(v1727) do
if os.clock() - v.at <= 600 then
n34 += 1
if v.failed then
n33 += 1
end
end
end
if v1726 > 1 then
if n33 >= 3 and n33 / n34 >= 0.4 then
local lowSpeedFailCap = v1726 - 1
if not p486.lowSpeedFailCap or lowSpeedFailCap < p486.lowSpeedFailCap then
p486.lowSpeedFailCap = lowSpeedFailCap
p486.lowSpeedAdvice = {
from = v1726,
to = lowSpeedFailCap,
fails = n33,
total = n34,
fresh = true
}
end
end
end
end
t46.lowSpeedStatus = function(p488)
local u1733
pcall(function()
u1733 = SpeedPowerProjection.ReadProjected()
end)
local v1734, v1735, v1736 = p488:recommendLowSpeedLevel()
local v1737 = math.clamp(tonumber(senaV4Config.StealHoldSeconds) or 5, 1, 10)
local lowSpeedAdvice = p488.lowSpeedAdvice
if lowSpeedAdvice and v1737 <= lowSpeedAdvice.to then
lowSpeedAdvice = nil
end
local t57 = {
speedText = type(u1733) == "number" and v1693(u1733) or "?",
walkSpeed = math.floor((v1736 or 0) + 0.5),
safe = v1734,
fast = v1735,
level = v1737,
advice = lowSpeedAdvice
}
return t57
end
t46.setEggEsp = function(p489, p490)
p489.config.espEnabled = p490 == true
if not p489.config.espEnabled then
pcall(function()
p489:_clearEsp()
end)
end
end
t46.setEspMinRank = function(p491, p492)
p491.config.espMinRank = math.max(tonumber(p492) or 0, 0)
end
t46.setEspMinValue = function(p493, p494)
p493.config.espMinValue = math.max(tonumber(p494) or 0, 0)
end
t46._espPasses = function(p495, p496, p497)
local config = p495.config
local espMinRank = config.espMinRank
if (espMinRank or 0) > 0 then
if (tonumber(p496 and p496.rarityRank) or 0) < config.espMinRank then
return false
end
end
if (config.espMinValue or 0) > 0 then
if (tonumber(p497) or 0) < config.espMinValue then
return false
end
end
return true
end
t46.setEspOption = function(p498, p499, p500)
if t53[p499] then
p498.config["esp" .. p499:sub(1, 1):upper() .. p499:sub(2)] = p500 == true
end
end
t46._clearEsp = function()
local AreaEggSlotsClient = workspace:FindFirstChild("AreaEggSlotsClient")
if not AreaEggSlotsClient then
return
end
for _, child in ipairs(AreaEggSlotsClient:GetChildren()) do
local __SenaV4EggEsp = child:FindFirstChild("__SenaV4EggEsp")
if __SenaV4EggEsp then
__SenaV4EggEsp:Destroy()
end
local __SenaV4EggHighlight = child:FindFirstChild("__SenaV4EggHighlight")
if __SenaV4EggHighlight then
__SenaV4EggHighlight:Destroy()
end
end
end
t46._updateEsp = function(p501)
local AreaEggSlotsClient = workspace:FindFirstChild("AreaEggSlotsClient")
if not AreaEggSlotsClient then
return
end
local config = p501.config
for _, child in ipairs(AreaEggSlotsClient:GetChildren()) do
local v1751 = p501.records[child.Name]
local v1752 = config.espEnabled and v1751 ~= nil and (v1751.State == AreaEggs.States.Slot or v1751.State == AreaEggs.States.Dropped)
if v1752 and not p501:_espPasses(p501.catalog.resolve(v1751), v748(v1751)) then
v1752 = false
end
local Hitbox = v1752 and (child:FindFirstChild("Hitbox") or child:FindFirstChildWhichIsA("BasePart", true))
local __SenaV4EggEsp = child:FindFirstChild("__SenaV4EggEsp")
local __SenaV4EggHighlight = child:FindFirstChild("__SenaV4EggHighlight")
if v1752 and Hitbox then
if __SenaV4EggEsp and not __SenaV4EggEsp:FindFirstChild("Icon") then
__SenaV4EggEsp:Destroy()
__SenaV4EggEsp = nil
end
if not __SenaV4EggEsp then
__SenaV4EggEsp = Instance.new("BillboardGui")
__SenaV4EggEsp.Name = "__SenaV4EggEsp"
__SenaV4EggEsp.AlwaysOnTop = true
__SenaV4EggEsp.Size = UDim2.fromOffset(220, 72)
__SenaV4EggEsp.StudsOffset = Vector3.new(0, 4.4, 0)
__SenaV4EggEsp.MaxDistance = 1000
__SenaV4EggEsp.Adornee = Hitbox
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Name = "Icon"
ImageLabel.AnchorPoint = Vector2.new(0.5, 1)
ImageLabel.Position = UDim2.fromScale(0.5, 0.42)
ImageLabel.Size = UDim2.fromOffset(30, 30)
ImageLabel.BackgroundTransparency = 1
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Visible = false
ImageLabel.Parent = __SenaV4EggEsp
local TextLabel = Instance.new("TextLabel")
TextLabel.Name = "Text"
TextLabel.AnchorPoint = Vector2.new(0.5, 0)
TextLabel.Position = UDim2.fromScale(0.5, 0.45)
TextLabel.Size = UDim2.new(1, 0, 0.55, 0)
TextLabel.BackgroundTransparency = 1
TextLabel.Font = Enum.Font.GothamBold
TextLabel.TextSize = 13
TextLabel.TextStrokeTransparency = 0.35
TextLabel.TextXAlignment = Enum.TextXAlignment.Center
TextLabel.TextYAlignment = Enum.TextYAlignment.Top
TextLabel.Parent = __SenaV4EggEsp
__SenaV4EggEsp.Parent = child
end
__SenaV4EggEsp.Adornee = Hitbox
local v1758 = p501.catalog.resolve(v1751)
local Icon = __SenaV4EggEsp:FindFirstChild("Icon")
local icon = config.espIcon and type(v1758.icon) == "string" and v1758.icon ~= "" and v1758.icon or nil
Icon.Image = icon or ""
Icon.Visible = icon ~= nil
local rarityColor = typeof(v1758.rarityColor) == "Color3" and v1758.rarityColor or Color3.fromRGB(255, 255, 255)
local t58 = {}
if config.espRarity then
t58[#t58 + 1] = string.upper(v1758.rarity or "?")
end
if config.espName then
t58[#t58 + 1] = tostring(v1758.name)
end
if config.espKg then
local v1763 = p501:_resolveWeightKg(v1751)
if v1763 then
t58[#t58 + 1] = string.format("%d Kg", math.floor(v1763))
end
end
if config.espMutation and type(v1751.Mutations) == "table" and next(v1751.Mutations) then
local t59 = {}
for _, mutation in pairs(v1751.Mutations) do
t59[#t59 + 1] = tostring(mutation)
end
if #t59 > 0 then
table.sort(t59)
t58[#t58 + 1] = table.concat(t59, ", ")
end
end
if config.espValue then
local v1767 = v748(v1751)
if v1767 then
t58[#t58 + 1] = "$" .. v1693(v1767) .. "/s"
end
end
local Text = __SenaV4EggEsp:FindFirstChild("Text")
Text.Text = table.concat(t58, " | ")
Text.TextColor3 = rarityColor
if __SenaV4EggHighlight and not __SenaV4EggHighlight:IsA("Highlight") then
__SenaV4EggHighlight:Destroy()
__SenaV4EggHighlight = nil
end
if not __SenaV4EggHighlight then
__SenaV4EggHighlight = Instance.new("Highlight")
__SenaV4EggHighlight.Name = "__SenaV4EggHighlight"
__SenaV4EggHighlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
__SenaV4EggHighlight.Parent = child
end
__SenaV4EggHighlight.Adornee = child
__SenaV4EggHighlight.FillColor = rarityColor
__SenaV4EggHighlight.FillTransparency = 0.72
__SenaV4EggHighlight.OutlineColor = rarityColor
__SenaV4EggHighlight.OutlineTransparency = 0
else
if __SenaV4EggEsp then
__SenaV4EggEsp:Destroy()
end
if __SenaV4EggHighlight then
__SenaV4EggHighlight:Destroy()
end
end
end
p501._placedEspAnchors = p501._placedEspAnchors or {}
os.clock()
if config.espPlaced then
local v1769 = (Save.Peek or Save.Get)()
local EggInventory = type(v1769) == "table" and v1769.EggInventory
EggInventory = EggInventory or nil
local v1771 = PlotState2.ResolveLocalSlot()
local v1772 = PlotState2.ResolveFolder()
local v1773 = v1772 and v1771 and v1772:FindFirstChild(tostring(v1771))
local CenterPoint = v1773 and v1773:FindFirstChild("CenterPoint")
if CenterPoint and not CenterPoint:IsA("BasePart") then
CenterPoint = nil
end
local t60 = {}
if type(EggInventory) == "table" and CenterPoint then
local SenaV4PlacedEggAnchors = workspace:FindFirstChild("SenaV4PlacedEggAnchors")
if not SenaV4PlacedEggAnchors then
SenaV4PlacedEggAnchors = Instance.new("Folder")
SenaV4PlacedEggAnchors.Name = "SenaV4PlacedEggAnchors"
SenaV4PlacedEggAnchors.Parent = workspace
end
for _, child in ipairs(SenaV4PlacedEggAnchors:GetChildren()) do
if child:IsA("Highlight") or child:IsA("BillboardGui") then
child:Destroy()
end
end
for k, v in pairs(EggInventory) do
if type(k) == "string" and type(v) == "table" and type(v.Placement) == "table" then
t60[k] = true
local LocalCFrame = v.Placement.LocalCFrame
if typeof(LocalCFrame) ~= "CFrame" then
local ok, result = pcall(EggRecords.Decode, v)
local Placement = ok and type(result) == "table" and result.Placement or nil
LocalCFrame = type(Placement) == "table" and Placement.LocalCFrame or nil
end
if typeof(LocalCFrame) == "CFrame" then
local ok, result = pcall(EggRecords.Decode, v)
local v1787 = ok and type(result) == "table" and result or v
local v1788 = tonumber(v1787.AssetScale) or 1
local cFrame2 = CenterPoint.CFrame * LocalCFrame + Vector3.new(0, 3 + v1788 * 2, 0)
p501._placedEspAnchors[k] = p501._placedEspAnchors[k] or {}
local v1790 = p501._placedEspAnchors[k]
if typeof(v1790.anchor) ~= "Instance" then
local Part = Instance.new("Part")
Part.Name = "SenaV4PE_" .. k
Part.Size = Vector3.new(1.5, 1.5, 1.5)
Part.Transparency = 1
Part.Anchored = true
Part.CanCollide = false
Part.CanQuery = false
Part.CanTouch = false
Part.Parent = SenaV4PlacedEggAnchors
v1790.anchor = Part
end
v1790.anchor.CFrame = cFrame2
local v1792 = p501.catalog.resolve({
AssetCategory = v1787.AssetCategory
})
local rarityColor = typeof(v1792.rarityColor) == "Color3" and v1792.rarityColor or Color3.fromRGB(255, 255, 255)
local v1794 = v748({
Category = v1787.AssetCategory,
Mutations = type(v1787.Mutations) == "table" and v1787.Mutations or {},
Scale = v1788,
BaseMutation = type(v1787.BaseMutation) == "string" and v1787.BaseMutation or nil
})
if p501:_espPasses(v1792, v1794) then
local t61 = {}
if config.espRarity then
t61[#t61 + 1] = string.upper(v1792.rarity or "?")
end
if config.espName then
t61[#t61 + 1] = tostring(v1792.name)
end
if config.espKg then
local ok2, result2 = pcall(EggRecords.WeightKgForScale, v1787.AssetCategory, v1788)
if ok2 and type(result2) == "number" then
t61[#t61 + 1] = string.format("%d Kg", math.floor(result2))
end
end
if config.espValue and v1794 then
t61[#t61 + 1] = "$" .. v1693(v1794) .. "/s"
end
if type(v.Placement.ReadyAt) == "number" or type(v1787.Placement) == "table" and v1787.Placement.ReadyAt ~= nil then
t61[#t61 + 1] = "READY"
end
local __SenaV4EggEsp = v1790.anchor:FindFirstChild("__SenaV4EggEsp")
if not __SenaV4EggEsp then
__SenaV4EggEsp = Instance.new("BillboardGui")
__SenaV4EggEsp.Name = "__SenaV4EggEsp"
__SenaV4EggEsp.AlwaysOnTop = true
__SenaV4EggEsp.Size = UDim2.fromOffset(220, 72)
__SenaV4EggEsp.StudsOffset = Vector3.new(0, 1.4, 0)
__SenaV4EggEsp.MaxDistance = 1000
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Name = "Icon"
ImageLabel.AnchorPoint = Vector2.new(0.5, 1)
ImageLabel.Position = UDim2.fromScale(0.5, 0.42)
ImageLabel.Size = UDim2.fromOffset(34, 34)
ImageLabel.BackgroundTransparency = 1
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Visible = false
ImageLabel.Parent = __SenaV4EggEsp
local TextLabel = Instance.new("TextLabel")
TextLabel.Name = "Text"
TextLabel.AnchorPoint = Vector2.new(0.5, 0)
TextLabel.Position = UDim2.fromScale(0.5, 0.45)
TextLabel.Size = UDim2.new(1, 0, 0.55, 0)
TextLabel.BackgroundTransparency = 1
TextLabel.Font = Enum.Font.GothamBold
TextLabel.TextSize = 13
TextLabel.TextStrokeTransparency = 0.35
TextLabel.TextXAlignment = Enum.TextXAlignment.Center
TextLabel.TextYAlignment = Enum.TextYAlignment.Top
TextLabel.Parent = __SenaV4EggEsp
__SenaV4EggEsp.Parent = v1790.anchor
end
local Icon = __SenaV4EggEsp:FindFirstChild("Icon")
if Icon then
local icon = config.espIcon and type(v1792.icon) == "string" and v1792.icon ~= "" and v1792.icon or nil
Icon.Image = icon or ""
Icon.Visible = icon ~= nil
end
local Text = __SenaV4EggEsp:FindFirstChild("Text")
Text.Text = table.concat(t61, " | ")
Text.TextColor3 = rarityColor
local __SenaV4EggHighlight = v1790.anchor:FindFirstChild("__SenaV4EggHighlight")
if __SenaV4EggHighlight then
__SenaV4EggHighlight:Destroy()
end
else
t60[k] = nil
end
end
end
end
end
for k, placedEspAnchor in pairs(p501._placedEspAnchors) do
if not t60[k] then
if typeof(placedEspAnchor.anchor) == "Instance" then
placedEspAnchor.anchor:Destroy()
end
if typeof(placedEspAnchor.highlight) == "Instance" then
placedEspAnchor.highlight:Destroy()
end
p501._placedEspAnchors[k] = nil
end
end
else
local pairs_ = pairs
local _placedEspAnchors = p501._placedEspAnchors or {}
for k, _placedEspAnchor in pairs_(_placedEspAnchors) do
if typeof(_placedEspAnchor.anchor) == "Instance" then
_placedEspAnchor.anchor:Destroy()
end
if typeof(_placedEspAnchor.highlight) == "Instance" then
_placedEspAnchor.highlight:Destroy()
end
p501._placedEspAnchors[k] = nil
end
end
end
end
t46.setMinWeightKg = function(p502, p503)
p502.config.minWeightKg = math.max(tonumber(p503) or 0, 0)
end
t46.setMinValuePerSec = function(p504, p505)
p504.config.minValuePerSec = math.max(tonumber(p505) or 0, 0)
p504:_refreshCounts()
p504:_schedule()
end
t46.setSpeed = function(p506, p507)
local v1811 = math.clamp(math.floor((tonumber(p507) or 60) + 0.5), 20, 100)
p506.config.speed = v1811 * 10
if genv.__SenaV4AdminBoost == true then
p506.config.speed = 3000
end
if p506.enabled or p506.activeTween then
p506:_startMovementProtection()
end
return v1811
end
do
t46.getDefaultSpeed = function()
return 60
end
end
do
t46.setFilterEnabled = function(p508, p509, p510)
p508.config[p509 .. "Enabled"] = p510 == true
p508:_refreshCounts()
p508:_schedule()
end
end
t46.setFilter = function(p511, p512, p513)
local v1812 = type(p513) == "table" and table.clone(p513) or {}
if p512 == "mutations" and type(p511.catalog.resolveMutationId) == "function" then
local t62 = {}
for _, v in ipairs(v1812) do
local v1816 = p511.catalog.resolveMutationId(v)
if v1816 then
table.insert(t62, v1816)
end
end
v1812 = t62
end
p511.config[p512] = v1812
p511:_refreshCounts()
p511:_schedule()
end
t46.destroy = function(p514)
if p514.destroyed then
return
end
p514.destroyed = true
p514.enabled = false
pcall(p514._stopScramblePortalBypass, p514)
pcall(p514._removePromptFilter, p514)
if p514._relocateConn then
pcall(p514._relocateConn.Disconnect, p514._relocateConn)
p514._relocateConn = nil
end
p514._recalling = nil
p514:_hideTreadmillDecoy()
p514.planGeneration += 1
local carry = p514.carry
carry.generation += 1
p514:_invalidateCarryWorker()
p514.carry.active = false
p514.carry.uid = nil
p514.tweenRecoveryUid = nil
p514.safeStarting = false
p514:_cancelTween("Destroyed")
p514:_cleanupInstantSteal()
p514:_removeGuardHitDistanceBoost()
p514:_releaseOperation()
p514:_stopMovementProtection()
if p514._healthPinner then
pcall(p514._healthPinner.Disconnect, p514._healthPinner)
p514._healthPinner = nil
end
if p514._healthChangedConnection then
pcall(p514._healthChangedConnection.Disconnect, p514._healthChangedConnection)
p514._healthChangedConnection = nil
end
p514:_restoreClaimPresentationFilter()
v779(LocalPlayer2.Character)
pcall(function()
p514:_clearEsp()
end)
pcall(function()
local pairs_ = pairs
local _placedEspAnchors = p514._placedEspAnchors or {}
for _, _placedEspAnchor in pairs_(_placedEspAnchors) do
if typeof(_placedEspAnchor.anchor) == "Instance" then
_placedEspAnchor.anchor:Destroy()
end
end
local SenaV4PlacedEggAnchors = workspace:FindFirstChild("SenaV4PlacedEggAnchors")
if SenaV4PlacedEggAnchors then
SenaV4PlacedEggAnchors:Destroy()
end
end)
v740(p514.connections)
table.clear(p514.listeners)
table.clear(p514.records)
end
return t46
end
local v1823 = v704()
local t63 = {
k = 1000,
m = 1000000,
b = 1e9,
t = 1e12,
q = 1e15
}
local function v1825(p515)
local match, v1827 = tostring(p515 or ""):lower():gsub("%s+", ""):gsub("%$", ""):gsub("/s$", ""):match("^([%d%.]+)([kmbtq]?)$")
local v1828 = tonumber(match)
if v1828 then
return math.max(0, math.floor(v1828 * (t63[v1827] or 1) + 0.5))
end
return nil
end
local function v1829()
local Players2 = game:GetService("Players")
local RunService2 = game:GetService("RunService")
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local LocalPlayer2 = Players2.LocalPlayer
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
local EggState2 = require(ReplicatedStorage2.Client.EggState)
local Ragdoll = require(ReplicatedStorage2.Shared.Modules.Ragdoll)
local RagdollJoints = require(ReplicatedStorage2.Shared.Modules.RagdollJoints)
local EggWorld = Remotes.EggWorld
local t64 = {}
t64.__index = t64
local function v1840(p516)
if p516 then
pcall(p516.Disconnect, p516)
end
end
t64.new = function(p517)
local obj = setmetatable({}, t64)
obj.eggRuntime = p517
obj.enabled = true
obj.destroyed = false
obj.connections = {}
obj.originalRagdoll = {}
obj.originalHumanoidStates = setmetatable({}, {
__mode = "k"
})
obj.stats = {
blockedHits = 0,
blockedDrops = 0,
recarriedEggs = 0
}
obj.lastHeldEggUid = nil
obj.lastHeldSlotKey = nil
obj._installed = false
obj._stickyToken = 0
obj._nextBodyRecoveryAt = 0
obj._nextJointSweepAt = 0
obj._forestStrikeOldFire = nil
return obj
end
t64._liveBody = function()
local Character = LocalPlayer2.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
return Character, Humanoid, Character and Character:FindFirstChild("HumanoidRootPart")
end
t64._recoverBody = function(p518, p519)
if not p518.enabled or p518.destroyed then
return
end
local v1844, v1845, v1846 = p518:_liveBody()
if not v1844 or not v1845 or not v1846 then
return
end
local now = os.clock()
if not p519 and now < p518._nextBodyRecoveryAt then
return
end
p518._nextBodyRecoveryAt = now + 0.03
if not p518.originalHumanoidStates[v1845] then
p518.originalHumanoidStates[v1845] = {
Physics = v1845:GetStateEnabled(Enum.HumanoidStateType.Physics),
FallingDown = v1845:GetStateEnabled(Enum.HumanoidStateType.FallingDown),
Ragdoll = v1845:GetStateEnabled(Enum.HumanoidStateType.Ragdoll)
}
end
local state = v1845:GetState()
local v1849 = state == Enum.HumanoidStateType.Physics or state == Enum.HumanoidStateType.FallingDown
v1849 = v1849 or state == Enum.HumanoidStateType.Ragdoll or state == Enum.HumanoidStateType.PlatformStanding or state == Enum.HumanoidStateType.Seated
pcall(function()
v1845.BreakJointsOnDeath = false
v1845.RequiresNeck = false
v1845:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
v1845:SetStateEnabled(Enum.HumanoidStateType.Physics, false)
v1845:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
v1845:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
v1845.PlatformStand = false
v1845.Sit = false
local state2 = v1845:GetState()
if state2 == Enum.HumanoidStateType.Physics or state2 == Enum.HumanoidStateType.FallingDown or state2 == Enum.HumanoidStateType.Ragdoll or state2 == Enum.HumanoidStateType.PlatformStanding or state2 == Enum.HumanoidStateType.Seated then
v1845:ChangeState(Enum.HumanoidStateType.GettingUp)
v1845:ChangeState(Enum.HumanoidStateType.Running)
end
end)
for _, descendant in ipairs(v1844:GetDescendants()) do
if not descendant:IsA("Motor6D") then
if descendant:IsA("BallSocketConstraint") or descendant:IsA("HingeConstraint") then
if descendant.Name:find("Ragdoll", 1, true) or descendant:GetAttribute("RagdollConstraint") then
pcall(descendant.Destroy, descendant)
end
end
elseif not descendant.Enabled then
descendant.Enabled = true
end
end
local AssemblyLinearVelocity = v1846.AssemblyLinearVelocity
local Magnitude = Vector3.new(AssemblyLinearVelocity.X, 0, AssemblyLinearVelocity.Z).Magnitude
local v1855 = math.max(340, (tonumber(v1845.WalkSpeed) or 0) * 1.5)
if v1849 or v1855 < Magnitude or math.abs(AssemblyLinearVelocity.Y) > 240 then
v1846.AssemblyLinearVelocity = Vector3.zero
v1846.AssemblyAngularVelocity = Vector3.zero
p518.stats.blockedHits += 1
end
end
t64._watchCharacter = function(p520, p521)
if not p521 then
return
end
local connection = p521.DescendantAdded:Connect(function(descendant)
if not p520.enabled or p520.destroyed then
return
end
if not descendant:IsA("BallSocketConstraint") and not descendant:IsA("HingeConstraint") then
if descendant:IsA("Motor6D") and not descendant.Enabled then
descendant.Enabled = true
end
elseif descendant.Name:find("Ragdoll", 1, true) or descendant:GetAttribute("RagdollConstraint") then
pcall(descendant.Destroy, descendant)
p520:_recoverBody(true)
end
end)
table.insert(p520.connections, connection)
end
t64._installRagdollHooks = function(p522)
if p522._installed then
return
end
p522._installed = true
task.spawn(function()
task.wait()
local __SenaV4ForestGate = genv.__SenaV4ForestGate
if type(__SenaV4ForestGate) == "table" and __SenaV4ForestGate.comp and __SenaV4ForestGate.orig then
pcall(rawset, __SenaV4ForestGate.comp, "_attackHandler", __SenaV4ForestGate.orig)
genv.__SenaV4ForestGate = nil
end
if type(getgc) ~= "function" then
return
end
local ok, result = pcall(getgc, true)
if not ok or type(result) ~= "table" then
return
end
for i, v in ipairs(result) do
if i % 20000 == 0 then
RunService2.Heartbeat:Wait()
end
if p522.destroyed then
return
end
if type(v) ~= "table" or rawget(v, "_areaId") ~= "Forest" or type(rawget(v, "_attackHandler")) ~= "function" then
continue
end
local value = rawget(v, "_attackHandler")
p522._forestGate = {
comp = v,
orig = value
}
genv.__SenaV4ForestGate = p522._forestGate
rawset(v, "_attackHandler", function(...)
if not p522.enabled or p522.destroyed or p522.eggRuntime and p522.eggRuntime.instantPhase == "priming" or genv.__SenaV4PlayerSteal and genv.__SenaV4PlayerSteal.running then
return value(...)
end
p522.stats.blockedHits += 1
p522:_recoverBody(true)
if genv.__SenaV4GodMode then
genv.__SenaV4GodMode:startDefend()
end
end)
break
end
end)
for _, v in ipairs({
"ApplyClientRagdoll",
"Ragdoll",
"TimedRagdoll",
"TimedRagdollAsync"
}) do
if type(Ragdoll[v]) == "function" then
p522.originalRagdoll[v] = Ragdoll[v]
Ragdoll[v] = function(...)
if p522.enabled then
if not p522.destroyed then
p522.stats.blockedHits += 1
p522:_recoverBody(true)
return
end
end
return p522.originalRagdoll[v](...)
end
end
end
if type(Ragdoll.IsRagdolled) == "function" then
p522.originalRagdoll.IsRagdolled = Ragdoll.IsRagdolled
Ragdoll.IsRagdolled = function(p523)
if p522.enabled then
if p523 == LocalPlayer2.Character then
return false
end
end
return p522.originalRagdoll.IsRagdolled(p523)
end
end
end
t64._restoreLocalState = function(p524)
for k, originalHumanoidState in pairs(p524.originalHumanoidStates) do
if k.Parent then
pcall(function()
k:SetStateEnabled(Enum.HumanoidStateType.Physics, originalHumanoidState.Physics)
k:SetStateEnabled(Enum.HumanoidStateType.FallingDown, originalHumanoidState.FallingDown)
k:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, originalHumanoidState.Ragdoll)
end)
end
end
p524.originalHumanoidStates = setmetatable({}, {
__mode = "k"
})
pcall(RagdollJoints.Release, LocalPlayer2.Character)
end
t64._slotKey = function(p525, p526)
if type(p526) == "table" and type(p526.AreaId) == "string" and type(p526.NestId) == "string" then
return string.format("%s:%s", p526.AreaId, p526.NestId)
end
return nil
end
t64._requestCarry = function(p527, p528, p529)
local t65 = {
Uid = p528
}
if p529 ~= nil then
t65.FirstAreaSlotKey = p529
end
return EggWorld.AskFieldEggCarry:InvokeServer(t65)
end
t64._startSticky = function(p530, p531, p532)
if type(p531) ~= "string" or p531 == "" then
return
end
p530._stickyToken += 1
local _stickyToken = p530._stickyToken
p530.stats.recarriedEggs += 1
task.spawn(function()
local v1869 = os.clock() + 5
while not p530.destroyed and p530.enabled and _stickyToken == p530._stickyToken and os.clock() < v1869 do
local v1870 = EggState2.ReadFieldEgg(p531)
if v1870 and v1870.State == "Carried" and v1870.CarrierUserId == LocalPlayer2.UserId then
p530.lastHeldEggUid = p531
p530.lastHeldSlotKey = p532 or p530:_slotKey(v1870)
return
end
if v1870 and (v1870.State == "Dropped" or v1870.State == "Slot") then
if p530.eggRuntime then
if p530.eggRuntime:requestCarryRecovery(p531) then
return
end
end
local _, _, v1873 = p530:_liveBody()
if v1873 and v1870.BottomCFrame and (v1873.Position - v1870.BottomCFrame.Position).Magnitude <= 10 then
pcall(p530._requestCarry, p530, p531, p532 or p530:_slotKey(v1870))
end
end
task.wait(0.05)
end
end)
end
t64._bindSignals = function(p533)
table.insert(p533.connections, EggState2.CarryChanged:Connect(function(p534)
if not p533.enabled then
return
end
if p534.IsCarrying and type(p534.Uid) == "string" then
p533._stickyToken += 1
p533.lastHeldEggUid = p534.Uid
local v1874 = EggState2.ReadFieldEgg(p534.Uid)
p533.lastHeldSlotKey = p533:_slotKey(v1874)
return
end
local __SenaV4PlayerSteal = genv.__SenaV4PlayerSteal
if __SenaV4PlayerSteal and __SenaV4PlayerSteal.running then
return
end
local Uid = p534.Uid or p533.lastHeldEggUid
local lastHeldSlotKey = p533.lastHeldSlotKey
if p533.eggRuntime then
if p533.eggRuntime:isSkippedEgg(Uid) then
return
end
end
if Uid then
p533.stats.blockedDrops += 1
p533:_startSticky(Uid, lastHeldSlotKey)
if genv.__SenaV4GodMode then
genv.__SenaV4GodMode:startDefend(Uid)
end
end
end))
table.insert(p533.connections, LocalPlayer2.CharacterAdded:Connect(function(character)
p533:_watchCharacter(character)
task.defer(function()
p533:_recoverBody(true)
end)
end))
if LocalPlayer2.Character then
p533:_watchCharacter(LocalPlayer2.Character)
end
table.insert(p533.connections, RunService2.Stepped:Connect(function()
p533:_recoverBody()
end))
end
t64.setEnabled = function(p535, p536)
local enabled = p536 == true
if p535.enabled == enabled then
return
end
p535.enabled = enabled
if p535.enabled then
p535:_recoverBody()
else
p535._stickyToken += 1
p535:_restoreLocalState()
end
end
t64.install = function(p537)
if p537.destroyed then
return false
end
getgenv().__SenaV4AntiGuard = p537
p537:_installRagdollHooks()
p537:_bindSignals()
p537:_recoverBody()
return true
end
local s2 = "destroy"
local function v1880(p538)
if p538.destroyed then
return
end
p538.enabled = false
p538:_restoreLocalState()
p538.destroyed = true
p538._stickyToken += 1
for _, connection in ipairs(p538.connections) do
v1840(connection)
end
table.clear(p538.connections)
for k, v in pairs(p538.originalRagdoll) do
if type(v) == "function" then
Ragdoll[k] = v
end
end
if p538._forestGate then
pcall(rawset, p538._forestGate.comp, "_attackHandler", p538._forestGate.orig)
if genv.__SenaV4ForestGate == p538._forestGate then
genv.__SenaV4ForestGate = nil
end
p538._forestGate = nil
end
p538.eggRuntime = nil
if getgenv().__SenaV4AntiGuard == p538 then
getgenv().__SenaV4AntiGuard = nil
end
end
t64[s2] = v1880
t64.getStats = function(p539)
return p539.stats
end
return t64
end
local v1885 = v1829()
local function v1886()
local Players2 = game:GetService("Players")
game:GetService("RunService")
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local LocalPlayer2 = Players2.LocalPlayer
local t66 = {}
t66.__index = t66
t66.new = function(p540)
local obj = setmetatable({}, t66)
obj.eggRuntime = p540
obj.enabled = senaV4Config.GodMode == nil and true or senaV4Config.GodMode == true
obj.active = false
obj.activeDroppedUid = nil
obj.swingSequence = 0
obj.lastSwingAt = 0
obj.defendThread = nil
obj.connections = {}
obj.targetRange = 35
obj:_bindSignals()
return obj
end
t66._isBat = function(p541, p542)
if not p542 or not p542:IsA("Tool") then
return false
end
local __SenaV4IsBatTool = genv.__SenaV4IsBatTool
if __SenaV4IsBatTool and __SenaV4IsBatTool(p542) then
return true
end
if not __SenaV4IsBatTool and (p542:GetAttribute("IsBat") == true or p542:GetAttribute("GearName") == "Bat") then
return true
end
local attribute = p542:GetAttribute("ItemType")
if attribute == nil or attribute == "Gear" then
return string.find(string.lower(p542.Name), "slap", 1, true) ~= nil
end
return false
end
t66._findBat = function(p543)
local Character = LocalPlayer2.Character
local Backpack = LocalPlayer2:FindFirstChildOfClass("Backpack")
if Character then
for _, child in ipairs(Character:GetChildren()) do
if not p543:_isBat(child) then
continue
end
return child, true
end
end
if Backpack then
for _, child in ipairs(Backpack:GetChildren()) do
if not p543:_isBat(child) then
continue
end
return child, false
end
end
pcall(function()
local Networking = ReplicatedStorage2:FindFirstChild("Packages") and ReplicatedStorage2.Packages:FindFirstChild("Networking")
local RFCodexAskWearFieldBat = Networking and Networking:FindFirstChild("RF/Codex/AskWearFieldBat")
if RFCodexAskWearFieldBat then
RFCodexAskWearFieldBat:InvokeServer()
end
end)
return nil, false
end
t66._equipBat = function(p544)
local Character = LocalPlayer2.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not Humanoid or Humanoid.Health <= 0 then
return nil
end
local v1904, v1905 = p544:_findBat()
if not v1904 then
return nil
end
if v1905 and v1904.Parent == Character then
return v1904
end
pcall(Humanoid.EquipTool, Humanoid, v1904)
local v1906 = os.clock() + 0.35
while true do
if not (os.clock() < v1906) then
return v1904.Parent == Character and v1904 or nil
end
if v1904.Parent == Character then
break
end
task.wait(0.05)
end
return v1904
end
t66._getNearbyEnemies = function(p545)
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return {}
end
local t67 = {}
for _, player in ipairs(Players2:GetPlayers()) do
if player ~= LocalPlayer2 and player.Character then
local HumanoidRootPart2 = player.Character:FindFirstChild("HumanoidRootPart")
local Humanoid = player.Character:FindFirstChildOfClass("Humanoid")
if HumanoidRootPart2 and Humanoid and Humanoid.Health > 0 then
local Magnitude = (HumanoidRootPart2.Position - HumanoidRootPart.Position).Magnitude
if Magnitude <= p545.targetRange then
table.insert(t67, {
player = player,
root = HumanoidRootPart2,
humanoid = Humanoid,
distance = Magnitude
})
end
end
end
end
table.sort(t67, function(p546, p547)
return p546.distance < p547.distance
end)
return t67
end
t66._swing = function(p548, p549, p550)
if not p549 or p549.Parent ~= LocalPlayer2.Character then
return false
end
local serverTimeNow = workspace:GetServerTimeNow()
if serverTimeNow - p548.lastSwingAt < 0.22 then
return false
end
p548.lastSwingAt = serverTimeNow
pcall(p549.Activate, p549)
local Handle = p549:FindFirstChild("Handle") or p549:FindFirstChildWhichIsA("BasePart", true)
if Handle and p550 and type(firetouchinterest) == "function" then
pcall(function()
firetouchinterest(Handle, p550, 0)
task.wait(0.01)
firetouchinterest(Handle, p550, 1)
end)
end
pcall(function()
local BatSwing = require(ReplicatedStorage2.Shared.Remotes).BatSwing
if BatSwing and BatSwing.Trigger then
p548.swingSequence += 1
local v1918 = string.format("%d:%d:%d", LocalPlayer2.UserId, p548.swingSequence, math.floor(serverTimeNow * 1000))
BatSwing.Trigger:FireServer(nil, v1918)
end
end)
return true
end
t66.startDefend = function(p551, p552)
if not p551.enabled then
return
end
if p551.eggRuntime and p551.eggRuntime.instantPhase == "priming" then
return
end
if p552 and p551.eggRuntime then
if p551.eggRuntime:isSkippedEgg(p552) then
return
end
end
local __SenaV4PlayerSteal = genv.__SenaV4PlayerSteal
if __SenaV4PlayerSteal and __SenaV4PlayerSteal.running then
return
end
p551.active = true
p551.activeDroppedUid = p552 or p551.activeDroppedUid
if not p551.defendThread then
p551.defendThread = task.spawn(function()
local v1920 = false
while p551.active and p551.enabled and (not p551.eggRuntime or not p551.eggRuntime.carry or not p551.eggRuntime.carry.active) do
local __SenaV4PlayerSteal2 = genv.__SenaV4PlayerSteal
if __SenaV4PlayerSteal2 and __SenaV4PlayerSteal2.running then
v1920 = true
break
end
local v1922 = p551:_getNearbyEnemies()
if #v1922 > 0 then
local v1923 = p551:_equipBat()
if v1923 then
for _, v in ipairs(v1922) do
if v.root and v.root.Parent then
p551:_swing(v1923, v.root)
end
end
end
end
task.wait(0.1)
end
p551.active = false
p551.defendThread = nil
if v1920 then
return
end
pcall(function()
local Character = LocalPlayer2.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
Humanoid:UnequipTools()
end
end)
end)
return
end
end
t66.stopDefend = function(p553)
p553.active = false
p553.activeDroppedUid = nil
end
t66.setEnabled = function(p554, p555)
p554.enabled = p555 == true
if not p554.enabled then
p554:stopDefend()
end
end
t66._bindSignals = function(p556)
pcall(function()
table.insert(p556.connections, require(ReplicatedStorage2.Client.EggState).CarryChanged:Connect(function(p557)
if p557.IsCarrying then
p556:stopDefend()
elseif p556.enabled then
p556:startDefend(p557.Uid)
end
end))
end)
pcall(function()
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
local ForestStrike = Remotes.GuardPatrol and Remotes.GuardPatrol.ForestStrike
if ForestStrike then
table.insert(p556.connections, ForestStrike.OnClientEvent:Connect(function()
if p556.enabled then
p556:startDefend()
end
end))
end
end)
end
t66.destroy = function(p558)
p558:stopDefend()
for _, connection in ipairs(p558.connections) do
pcall(connection.Disconnect, connection)
end
table.clear(p558.connections)
end
return t66
end
local v1932 = v1886()
local function v1933()
local Players2 = game:GetService("Players")
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local LocalPlayer2 = Players2.LocalPlayer
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
local PlotState2 = require(ReplicatedStorage2.Client.PlotState)
local Hud = require(ReplicatedStorage2.Client.Hud)
local Save = require(ReplicatedStorage2.Shared.Save)
local Treadmills = require(ReplicatedStorage2.Data.Treadmills)
local function v1942()
local treadmill = t25.blocker("treadmill")
if treadmill then
return "Yielding to " .. t25.TITLES[treadmill]
end
local treadmill2 = t25.holder("treadmill")
if treadmill2 then
return "Waiting for " .. t25.TITLES[treadmill2]
end
return nil
end
local function v1945()
return v1942() ~= nil
end
local function v1946()
return t25.blocker("treadmill") == "auto_steal"
end
local function v1947()
return v1942() or "Yielding"
end
local t68 = {}
t68.__index = t68
t68.new = function(p559, p560)
local obj = setmetatable({}, t68)
obj.coordinator = p559
obj.travel = p560
obj.destroyed = false
obj.listeners = {}
obj.resources = {}
obj.config = {
disableDuringAutomation = true,
idleFarm = false,
autoUpgrade = false
}
obj.stats = {
mode = "Idle",
boost = "Waiting"
}
obj.busy = p559 and p559:getSnapshot().busy == true or false
obj.idleGeneration = 0
obj.lastEquipAt = 0
obj.activeTreadmill = nil
obj.travelingToTreadmill = false
obj.treadmillEquipPending = false
obj.unequipGuardRunning = false
obj.backgroundYieldRunning = false
obj.lastBackgroundYieldAt = 0
obj.carryPulseRunning = false
obj.treadmillStateRevision = 0
obj:_listenActiveTreadmill()
task.spawn(function()
pcall(function()
obj:_syncActiveTreadmillSnapshot()
end)
end)
obj:_listenCoordinator()
obj:_listenSpeedGain()
return obj
end
t68._snapshot = function(p561)
return {
mode = p561.stats.mode,
boost = p561.stats.boost,
disableDuringAutomation = p561.config.disableDuringAutomation,
idleFarm = p561.config.idleFarm
}
end
t68._emit = function(p562)
local v1950 = p562:_snapshot()
for _, listener in ipairs(p562.listeners) do
pcall(listener, v1950)
end
end
t68._setStatus = function(p563, p564, p565)
if p564 ~= nil then
p563.stats.mode = p564
end
if p565 ~= nil then
p563.stats.boost = p565
end
p563:_emit()
end
t68.subscribe = function(p566, p567)
table.insert(p566.listeners, p567)
pcall(p567, p566:_snapshot())
local function v1953()
local v1954 = table.find(p566.listeners, p567)
if v1954 then
table.remove(p566.listeners, v1954)
end
end
return v1953
end
t68._requestUnequip = function()
local ok, result, result2 = pcall(function()
return Remotes.Treadmill.AskDoff:InvokeServer()
end)
if not ok then
return false, tostring(result)
end
if result ~= false then
return true
end
local v1958 = false
local tostring_ = tostring
local v1960 = result2 or "Server rejected"
return v1958, tostring_(v1960)
end
t68._shouldBlockTreadmill = function(p568)
if p568.destroyed or p568.carryPulseRunning then
return false
end
if p568.busy and p568.config.disableDuringAutomation then
return true
end
local __SenaV4EggRuntime = genv.__SenaV4EggRuntime
if __SenaV4EggRuntime and __SenaV4EggRuntime._treadmillResetting then
return false
end
local ok, result = pcall(t25.holder, "treadmill")
return ok and result ~= nil
end
t68._startUnequipGuard = function(p569)
if p569.unequipGuardRunning or not p569:_shouldBlockTreadmill() or p569.activeTreadmill == nil then
return
end
p569.unequipGuardRunning = true
task.spawn(function()
local n35 = 0.15
while p569:_shouldBlockTreadmill() and p569.activeTreadmill ~= nil do
local v1965, v1966 = p569:_requestUnequip()
p569:_setStatus("Automation active", v1965 and "Blocked" or "Release retry: " .. tostring(v1966))
task.wait(n35)
n35 = math.min(n35 * 2, 0.75)
end
p569.unequipGuardRunning = false
if p569:_shouldBlockTreadmill() and p569.activeTreadmill ~= nil then
p569:_startUnequipGuard()
end
end)
end
t68._cancelIdle = function(p570, p571)
p570.idleGeneration += 1
if p571 then
p570:_requestUnequip()
end
end
t68.setDisableDuringAutomation = function(p572)
p572.config.disableDuringAutomation = true
if p572.busy and p572.config.disableDuringAutomation then
p572:_cancelIdle(true)
p572:_startUnequipGuard()
p572:_setStatus("Automation active", "Blocked")
elseif not p572.busy and p572.config.idleFarm then
p572:_startIdle()
end
end
t68.setIdleFarm = function(p573, p574)
p573.config.idleFarm = p574 == true
if not p573.config.idleFarm then
p573:_cancelIdle(true)
p573:_setStatus(p573.busy and "Automation active" or "Idle", "Disabled")
return
end
if not p573.busy then
p573:_startIdle()
end
if p573.idleWatchdog then
return
end
p573.idleWatchdog = task.spawn(function()
while not p573.destroyed and p573.config.idleFarm do
task.wait(2)
if p573.idleRunning == nil and not p573.busy and p573.config.idleFarm and not p573.destroyed then
p573:_startIdle()
end
end
p573.idleWatchdog = nil
end)
end
t68._readUpgradeState = function()
local ok, result, result2, result3 = pcall(function()
local v1971 = (Save.Peek or Save.Get)()
if not v1971 then
return nil
end
local v1972 = tonumber(v1971.TreadmillUpgradeLevel) or 0
return v1972, v1971.Money, Treadmills.GetByUpgradeLevel(v1972 + 1)
end)
if not ok or result == nil then
return nil
end
return result, result2, result3
end
t68._raiseTier = function(p575)
local _, v1974, v1975 = p575:_readUpgradeState()
if not v1975 then
return false, "Max tier"
end
if (tonumber(v1974) or 0) < (tonumber(v1975.Price) or 0) then
return false, "Not enough money"
end
local ok, result, result2 = pcall(function()
return Remotes.Treadmill.AskTierRaise:InvokeServer(v1975._id)
end)
if not ok then
return false, tostring(result)
end
if result ~= true then
local v1979 = false
local tostring_ = tostring
local v1981 = result2 or "Server rejected"
return v1979, tostring_(v1981)
end
local v1982 = true
local DisplayName = v1975.DisplayName or v1975._id
return v1982, DisplayName
end
t68.setAutoUpgrade = function(p576, p577)
p576.config.autoUpgrade = p577 == true
if not p576.config.autoUpgrade or p576.autoUpgradeRunning then
return
end
p576.autoUpgradeRunning = true
task.spawn(function()
while not p576.destroyed and p576.config.autoUpgrade do
while true do
local v1984, v1985 = p576:_raiseTier()
if v1984 then
p576:_setStatus(p576.busy and "Automation active" or "Idle", "Upgraded to " .. tostring(v1985))
task.wait(1)
else
if v1985 ~= "Max tier" then
break
end
p576:_setStatus(p576.busy and "Automation active" or "Idle", "Treadmill maxed")
task.wait(30)
end
if not p576.destroyed and p576.config.autoUpgrade then
continue
end
p576.autoUpgradeRunning = false
return
end
task.wait(5)
end
p576.autoUpgradeRunning = false
end)
end
t68._resolveStandCFrame = function()
local v1986 = PlotState2.ResolveLocalSlot()
local v1987 = PlotState2.ResolveFolder()
local v1988 = v1987 and v1986 and v1987:FindFirstChild(tostring(v1986))
local TreadmillBottom = v1988 and v1988:FindFirstChild("TreadmillBottom")
if not TreadmillBottom or not TreadmillBottom:IsA("BasePart") then
return nil
end
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return nil
end
local v1993
if Humanoid.RigType == Enum.HumanoidRigType.R15 then
v1993 = HumanoidRootPart.Size.Y * 0.5 + math.max(Humanoid.HipHeight, 0.5)
else
v1993 = HumanoidRootPart.Size.Y * 0.5 + 2
end
return TreadmillBottom.CFrame * cFrameNew(0, TreadmillBottom.Size.Y * 0.5 + v1993 + 0.05, 0)
end
t68.isEngaged = function(p578)
return p578.activeTreadmill ~= nil or p578.travelingToTreadmill or p578.treadmillEquipPending or p578.carryPulseRunning
end
t68._isTreadmillHudActive = function()
local ok, result = pcall(function()
local Game = Hud.Frame("Game")
local Treadmill = Hud.Frame("Treadmill")
return Game.Visible == false and Treadmill.Visible == true
end)
local v1998 = ok and result == true
return v1998
end
t68._isGameHudRestored = function()
local ok, result = pcall(function()
local Game = Hud.Frame("Game")
local Treadmill = Hud.Frame("Treadmill")
return Game.Visible == true and Treadmill.Visible == false
end)
local v2003 = ok and result == true
return v2003
end
t68.pulseForCarry = function(p579, p580, p581)
if p579.destroyed or p579.carryPulseRunning or type(p580) ~= "function" then
return false, "Preparation unavailable"
end
p579:_cancelIdle(false)
p579.carryPulseRunning = true
local function v2004()
return p579.destroyed or p581 ~= nil and p581()
end
local function v2005(p582)
local v2006 = os.clock() + p582
local n36 = 0
local v2008
local treadmillStateRevision = p579.treadmillStateRevision
while not p579.destroyed and os.clock() < v2006 do
local now = os.clock()
if n36 <= now then
p579:_requestUnequip()
n36 = now + 0.15
end
local v2011 = p579:_syncActiveTreadmillSnapshot()
local v2012 = p579:_isGameHudRestored()
if p579.treadmillStateRevision ~= treadmillStateRevision then
treadmillStateRevision = p579.treadmillStateRevision
v2008 = nil
end
if not v2011 and p579.activeTreadmill == nil and v2012 then
v2008 = v2008 or now
if now - v2008 >= 0.35 then
return true
end
else
v2008 = nil
end
task.wait(0.03)
end
return false
end
local function v2013(p583, p584)
if not p583 then
v2005(1.85)
end
p579.treadmillEquipPending = false
p579.carryPulseRunning = false
if p583 then
p579:_setStatus("Automation active", "Preparation complete")
elseif not p579.destroyed then
p579:_setStatus("Automation active", tostring(p584 or "Preparation failed"))
end
if p579:_shouldBlockTreadmill() and p579.activeTreadmill ~= nil then
p579:_startUnequipGuard()
end
return p583, p584
end
p579:_syncActiveTreadmillSnapshot()
local v2014 = false
local v2015
for i = 1, 3 do
if v2004() then
return v2013(false, "Cancelled")
end
local v2017 = p579:_resolveStandCFrame()
if v2017 then
p579:_setStatus("Preparing carry", i == 1 and "Positioning" or "Repositioning")
local ok, result = pcall(p580, v2017)
if ok and result == true then
task.wait(0.35)
p579.treadmillEquipPending = true
p579:_setStatus("Preparing carry", "Activating")
local v2020 = os.clock() + 2.5
local n37 = 0
local n38 = 0
while not v2004() and os.clock() < v2020 do
local now = os.clock()
if n38 <= now then
n38 = now + 0.25
p579:_syncActiveTreadmillSnapshot()
end
if p579.activeTreadmill ~= nil and p579:_isTreadmillHudActive() then
v2014 = true
break
end
if p579.activeTreadmill == nil and n37 <= now then
n37 = now + 0.2
local ok2, result2, result3 = pcall(function()
return Remotes.Treadmill.AskWearStill:InvokeServer()
end)
if not ok2 or result2 == false then
v2015 = tostring(result3 or result2)
p579:_setStatus("Preparing carry", "Activation retry")
end
end
task.wait(0.03)
end
else
v2015 = "Positioning failed"
end
else
v2015 = "Position unavailable"
end
if v2014 then
break
end
if not v2004() then
p579:_setStatus("Preparing carry", "Resetting position")
v2005(1.85)
continue
end
return v2013(false, "Cancelled")
end
if not v2014 then
local v2027 = v2013
local v2028 = false
local tostring_ = tostring
local v2030 = v2015 or "Unknown"
return v2027(v2028, "Activation not confirmed: " .. tostring_(v2030))
end
p579.treadmillEquipPending = false
p579:_setStatus("Preparing carry", "Active")
local v2031 = os.clock() + 0.1
while not v2004() and os.clock() < v2031 do
task.wait(0.03)
end
if v2004() then
return v2013(false, "Cancelled")
end
p579:_setStatus("Preparing carry", "Releasing")
if v2005(1.85) then
return v2013(true)
end
local v2032 = v2013
local v2033 = false
local v2034 = v2004() and "Cancelled" or "Release not confirmed"
return v2032(v2033, v2034)
end
t68.yieldForBackground = function(p585)
if p585.destroyed then
return
end
p585:_cancelIdle(false)
if p585.backgroundYieldRunning then
return
end
p585.backgroundYieldRunning = true
task.spawn(function()
local n39 = 0.15
while not p585.destroyed do
if p585.coordinator and p585.coordinator:isBackgroundBusy() then
p585.lastBackgroundYieldAt = os.clock()
p585:_setStatus("Idle", "Yielding to background inventory")
p585:_requestUnequip()
task.wait(n39)
if p585:_syncActiveTreadmillSnapshot() then
n39 = math.min(n39 * 2, 0.75)
continue
end
end
break
end
p585.backgroundYieldRunning = false
if not p585.destroyed and not p585:isEngaged() then
p585:_setStatus("Idle", "Background inventory ready")
end
end)
end
t68._startIdle = function(p586)
if p586.destroyed or p586.busy or not p586.config.idleFarm then
return
end
p586:_cancelIdle(false)
local idleGeneration = p586.idleGeneration
local now = os.clock()
p586.idleRunning = idleGeneration
task.spawn(function()
local ok, result = xpcall(function()
while not p586.destroyed and not p586.busy and p586.config.idleFarm and idleGeneration == p586.idleGeneration do
if p586.coordinator then
if p586.coordinator:isBackgroundBusy() then
now = os.clock()
p586:_setStatus("Idle", "Waiting for background inventory")
task.wait(0.25)
continue
end
end
if v1946() then
now = os.clock()
p586:_setStatus("Idle", "Yielding to Auto Steal")
task.wait(0.25)
elseif genv.__SenaV4IsAutoSellEggBusy and genv.__SenaV4IsAutoSellEggBusy() then
now = os.clock()
p586:_setStatus("Idle", "Waiting for Auto Sell Egg")
task.wait(0.25)
elseif v1945() then
now = os.clock()
p586:_setStatus("Idle", v1947())
task.wait(0.25)
else
local v2040 = 1 - (os.clock() - now)
if v2040 > 0 then
p586:_setStatus("Idle", string.format("Starting in %.0fs", math.ceil(v2040)))
task.wait(math.min(v2040, 0.25))
else
local v2041 = p586:_resolveStandCFrame()
if v2041 then
p586.travelingToTreadmill = true
p586:_setStatus("Moving", "Waiting")
local travel = p586.travel and p586.travel:travelAndWait(v2041, {
abort = function()
return p586.destroyed or p586.busy or not p586.config.idleFarm or idleGeneration ~= p586.idleGeneration or p586.coordinator and p586.coordinator:isBackgroundBusy() or genv.__SenaV4IsAutoSellEggBusy and genv.__SenaV4IsAutoSellEggBusy() or v1945()
end
})
p586.travelingToTreadmill = false
if not travel then
if not p586.busy and p586.config.idleFarm then
p586:_setStatus("Idle", "Travel failed")
task.wait(1)
end
elseif not p586.busy and p586.config.idleFarm and idleGeneration == p586.idleGeneration then
if p586.coordinator then
if p586.coordinator:isBackgroundBusy() then
continue
end
end
if (not genv.__SenaV4IsAutoSellEggBusy or not genv.__SenaV4IsAutoSellEggBusy()) and not v1945() then
task.wait(0.35)
if not p586.busy and p586.config.idleFarm and idleGeneration == p586.idleGeneration then
if p586.coordinator then
if p586.coordinator:isBackgroundBusy() then
continue
end
end
if (not genv.__SenaV4IsAutoSellEggBusy or not genv.__SenaV4IsAutoSellEggBusy()) and not v1945() then
p586.treadmillEquipPending = true
local ok, result, result2 = pcall(function()
return Remotes.Treadmill.AskWearStill:InvokeServer()
end)
if ok and result ~= false then
p586.lastEquipAt = os.clock()
p586:_setStatus("Active", "Waiting for gain")
task.delay(2, function()
if not p586.destroyed and p586.activeTreadmill == nil then
p586.treadmillEquipPending = false
end
end)
local v2046 = os.clock() + 8
while (p586.activeTreadmill ~= nil or os.clock() < v2046) and not p586.destroyed and not p586.busy and p586.config.idleFarm and idleGeneration == p586.idleGeneration do
local ok33 = not p586.coordinator
if not ok33 then
ok33 = not p586.coordinator:isBackgroundBusy()
end
if not ok33 then
break
end
if v1946() then
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Steal")
break
end
if not genv.__SenaV4IsAutoSellEggBusy or not genv.__SenaV4IsAutoSellEggBusy() then
if not v1945() then
task.wait(0.25)
continue
end
p586:_requestUnequip()
p586:_setStatus("Idle", v1947())
break
end
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Sell Egg")
break
end
continue
end
p586.treadmillEquipPending = false
p586:_setStatus("Preparing carry", "Activation failed: " .. tostring(result2 or result))
local v2048 = os.clock() + 8
while true do
local coordinator
if p586.activeTreadmill == nil then
if os.clock() < v2048 and not p586.destroyed and not p586.busy and p586.config.idleFarm and idleGeneration == p586.idleGeneration then
if not p586.coordinator then
if v1946() then
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Steal")
break
end
if not genv.__SenaV4IsAutoSellEggBusy or not genv.__SenaV4IsAutoSellEggBusy() then
if not v1945() then
task.wait(0.25)
continue
end
p586:_requestUnequip()
p586:_setStatus("Idle", v1947())
break
end
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Sell Egg")
break
end
coordinator = p586.coordinator
if not coordinator:isBackgroundBusy() then
if v1946() then
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Steal")
break
end
if not genv.__SenaV4IsAutoSellEggBusy or not genv.__SenaV4IsAutoSellEggBusy() then
if not v1945() then
task.wait(0.25)
continue
end
p586:_requestUnequip()
p586:_setStatus("Idle", v1947())
break
end
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Sell Egg")
break
end
end
break
end
if not p586.destroyed and not p586.busy and p586.config.idleFarm and idleGeneration == p586.idleGeneration then
if not p586.coordinator then
if v1946() then
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Steal")
break
end
if not genv.__SenaV4IsAutoSellEggBusy or not genv.__SenaV4IsAutoSellEggBusy() then
if not v1945() then
task.wait(0.25)
continue
end
p586:_requestUnequip()
p586:_setStatus("Idle", v1947())
break
end
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Sell Egg")
break
end
coordinator = p586.coordinator
if not coordinator:isBackgroundBusy() then
if v1946() then
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Steal")
break
end
if not genv.__SenaV4IsAutoSellEggBusy or not genv.__SenaV4IsAutoSellEggBusy() then
if not v1945() then
task.wait(0.25)
continue
end
p586:_requestUnequip()
p586:_setStatus("Idle", v1947())
break
end
p586:_cancelIdle(true)
p586:_setStatus("Idle", "Yielding to Auto Sell Egg")
break
end
end
break
end
end
end
end
end
else
p586:_setStatus("Idle", "Position unavailable")
task.wait(2)
end
end
end
end
end, debug.traceback)
if not ok then
warn("[SAE][treadmill] idle error:\n" .. tostring(result))
end
if p586.idleRunning == idleGeneration then
p586.idleRunning = nil
end
end)
end
t68._onCoordinator = function(p587, p588)
local busy = p587.busy
p587.busy = p588.busy == true
if p587.busy then
p587:_cancelIdle(p587.config.disableDuringAutomation)
p587:_startUnequipGuard()
p587:_setStatus("Automation active", p587.config.disableDuringAutomation and "Blocked" or "Unchanged")
elseif busy or p587.config.idleFarm then
if p587.config.idleFarm then
p587:_startIdle()
else
p587:_setStatus("Idle", "Disabled")
end
end
end
t68._listenCoordinator = function(p589)
if not p589.coordinator then
return
end
table.insert(p589.resources, p589.coordinator:subscribe(function(p590)
p589:_onCoordinator(p590)
end))
table.insert(p589.resources, p589.coordinator:subscribeBackground(function(p591)
if p591.busy then
p589:_cancelIdle(false)
p589:_setStatus("Idle", "Waiting for background inventory")
elseif not p589.destroyed and not p589.busy and p589.config.idleFarm then
p589:_startIdle()
end
end))
end
t68._syncActiveTreadmillSnapshot = function(p592)
local ok, result = pcall(function()
return Remotes.Treadmill.AskRenderSnapshot:InvokeServer()
end)
if not ok or type(result) ~= "table" then
return p592.activeTreadmill ~= nil
end
local v2053 = table.find(result, LocalPlayer2.UserId) ~= nil
p592.activeTreadmill = v2053 and "snapshot" or nil
if not v2053 then
p592.treadmillEquipPending = false
end
return v2053
end
t68._listenActiveTreadmill = function(p593)
local function v2054(p594)
p593.treadmillStateRevision += 1
p593.activeTreadmill = p594
p593.treadmillEquipPending = false
if p594 ~= nil and p593:_shouldBlockTreadmill() then
p593:_startUnequipGuard()
elseif p594 == nil and p593:_shouldBlockTreadmill() then
p593:_setStatus("Automation active", "Blocked")
elseif p594 == nil then
p593:_setStatus("Idle", p593.config.idleFarm and "Released" or "Disabled")
elseif not p593.busy then
p593:_setStatus("Active", "Waiting for gain")
end
end
local AssignedBeltShifted
local RenderStateShifted
pcall(function()
AssignedBeltShifted = Remotes.Treadmill.AssignedBeltShifted
end)
pcall(function()
RenderStateShifted = Remotes.Treadmill.RenderStateShifted
end)
if AssignedBeltShifted then
table.insert(p593.resources, AssignedBeltShifted.OnClientEvent:Connect(function(p595)
v2054(p595)
end))
return
end
if RenderStateShifted then
table.insert(p593.resources, RenderStateShifted.OnClientEvent:Connect(function(p596, p597)
if p596 ~= LocalPlayer2.Name then
return
end
local v2057 = v2054
local v2058 = p597 and p596
v2057(v2058 or nil)
end))
end
end
t68._listenSpeedGain = function(p598)
local SpeedGained = Remotes.Treadmill.SpeedGained
if SpeedGained then
table.insert(p598.resources, SpeedGained.OnClientEvent:Connect(function()
p598.activeTreadmill = p598.activeTreadmill or true
p598.treadmillEquipPending = false
if not p598:_shouldBlockTreadmill() then
p598:_setStatus("Active", "Gain ticking")
return
end
p598:_startUnequipGuard()
end))
end
end
t68.destroy = function(p599)
if p599.destroyed then
return
end
p599.destroyed = true
p599:_cancelIdle(true)
for _, resource in ipairs(p599.resources) do
pcall(function()
if typeof(resource) == "RBXScriptConnection" then
resource:Disconnect()
elseif type(resource) == "function" then
resource()
elseif type(resource) == "table" and type(resource.Disconnect) == "function" then
resource:Disconnect()
end
end)
end
table.clear(p599.resources)
table.clear(p599.listeners)
end
t68.Destroy = t68.destroy
return t68
end
local v2062 = v1933()
local v2063 = v662.new()
v612 = v1823.new(v611, v703, v2063)
genv.__SenaV4EggRuntime = v612
v613 = v2062.new(v2063, v612)
genv.__SenaV4TreadmillManager = v613
v612:setTreadmillManager(v613)
v613:setDisableDuringAutomation(true)
if senaV4Config.AutoTreadmillIdle then
v613:setIdleFarm(true)
end
if senaV4Config.AutoIndex then
v612:setIndexObjective(true)
end
if senaV4Config.AutoTreadmillUpgrade then
v613:setAutoUpgrade(true)
end
local function v2064()
local HttpService = game:GetService("HttpService")
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local LocalPlayer2 = game:GetService("Players").LocalPlayer
local http_request_ = http_request or request or http and http.request or syn and syn.request or fluxus and fluxus.request
local t70 = {}
local u2071 = false
local t71 = {}
local u2073
local AssetEarnings
local EggRecords
pcall(function()
AssetEarnings = require(ReplicatedStorage2.Shared.Util.AssetEarnings)
end)
pcall(function()
EggRecords = require(ReplicatedStorage2.Shared.Util.EggRecords)
end)
local function v2076(p600)
local match = tostring(p600 or ""):match("%d+")
if not match then
return nil
end
local v2078 = t71[match]
if v2078 ~= nil then
if v2078 == "" then
return nil
end
return v2078
end
local v2079
for _, v in ipairs({
"512x512",
"150x150"
}) do
local imageUrl
pcall(function()
local v2083 = "https://thumbnails.roblox.com/v1/assets?assetIds=" .. match .. "&size=" .. v .. "&format=Png&isCircular=false"
local Body
if http_request_ then
local v2085 = http_request_({
Url = v2083,
Method = "GET"
})
Body = type(v2085) == "table" and (v2085.Body or v2085.body) or nil
else
Body = HttpService:GetAsync(v2083)
end
if type(Body) == "string" and Body ~= "" then
local data = HttpService:JSONDecode(Body)
local data2 = data and data.data and data.data[1]
if data2 and data2.state == "Completed" and type(data2.imageUrl) == "string" and data2.imageUrl ~= "" then
imageUrl = data2.imageUrl
end
end
end)
if imageUrl then
v2079 = v2079 or imageUrl
if imageUrl:find("/Png/", 1, true) then
v2079 = imageUrl
break
else
end
else
end
end
t71[match] = v2079 or ""
return v2079
end
local function v2088()
if u2073 == nil then
u2073 = v2076("96240498384290") or false
end
return u2073 or nil
end
local function v2089()
if u2071 then
return
end
u2071 = true
task.spawn(function()
while #t70 > 0 do
local v2090 = table.remove(t70, 1)
pcall(function()
if v2090.thumbAsset then
local v2091 = v2090.payload.embeds[1]
local v2092 = v2076(v2090.thumbAsset)
if v2092 then
v2091.thumbnail = {
url = v2092
}
end
end
local json = HttpService:JSONEncode(v2090.payload)
if http_request_ then
http_request_({
Url = v2090.url,
Method = "POST",
Headers = {
["Content-Type"] = "application/json"
},
Body = json
})
else
HttpService:PostAsync(v2090.url, json, Enum.HttpContentType.ApplicationJson)
end
end)
task.wait(0.6)
end
u2071 = false
end)
end
local function v2094(p601)
if typeof(p601) == "Color3" then
return math.floor(p601.R * 255 + 0.5) * 65536 + math.floor(p601.G * 255 + 0.5) * 256 + math.floor(p601.B * 255 + 0.5)
end
return 5814783
end
local function compact(p602)
local Simple
pcall(function()
Simple = require(ReplicatedStorage2.Packages.FormatNumber.Simple)
end)
if Simple and Simple.FormatCompact then
local ok, result = pcall(Simple.FormatCompact, p602, ".#")
if ok and result then
return tostring(result)
end
end
local format = string.format
local s3 = "%.1f"
local v2101 = p602 or 0
return format(s3, v2101)
end
local t69 = {
compact = compact,
rateOf = function(p603)
if not AssetEarnings or type(p603) ~= "table" then
return 0
end
local v2102 = tonumber(p603.AssetScale) or 1
local t72 = {
Category = p603.AssetCategory,
Scale = v2102,
AssetScale = v2102,
BaseMutation = p603.BaseMutation,
Mutations = p603.Mutations or {}
}
for _, v in ipairs({
"LiveRatePerSecond",
"RatePerSecond",
"CatalogRatePerSecond"
}) do
if type(AssetEarnings[v]) == "function" then
local ok, result = pcall(AssetEarnings[v], t72)
if ok and type(result) == "number" and result > 0 then
return result
end
end
end
return 0
end,
weightOf = function(p604)
if not EggRecords or type(p604) ~= "table" then
return 0
end
local ok, result = pcall(EggRecords.WeightKgForScale, p604.AssetCategory, tonumber(p604.AssetScale) or 1)
if ok and type(result) == "number" then
return result
end
return 0
end,
sizeText = function(p605)
local v2110 = tonumber(p605 and (p605.AssetScale or p605.Scale)) or 1
if v2110 >= 100 then
return string.format("%.0fx", v2110)
end
return string.format("%.2fx", v2110)
end,
weightText = function(p606)
local v2111 = tonumber(p606) or 0
if v2111 >= 1000 then
return compact(v2111) .. " kg"
end
return string.format("%.1fkg", v2111)
end,
rateText = function(p607)
local v2112 = tonumber(p607) or 0
if v2112 >= 1000 then
return "$" .. compact(v2112) .. "/s"
end
return string.format("$%d/s", math.floor(v2112))
end,
passes = function(p608, p609, p610)
local t73 = {}
local v2114 = false
local ipairs_ = ipairs
local WebhookRarities = senaV4Config.WebhookRarities or {}
for _, WebhookRarity in ipairs_(WebhookRarities) do
if WebhookRarity ~= "None" and WebhookRarity ~= "" then
t73[WebhookRarity] = true
v2114 = true
end
end
if v2114 and not t73[p609.rarity] then
return false
end
local v2119 = tonumber(senaV4Config.WebhookMinValue) or 0
if v2119 > 0 and p610 < v2119 then
return false
end
return true
end
}
local t74 = {
"Image",
"Icon",
"Thumbnail",
"ImageId",
"IconId",
"Texture",
"Asset",
"DisplayImage"
}
t69.eggAsset = function(p611)
local Directory
pcall(function()
Directory = require(ReplicatedStorage2.Data.Assets).Directory
end)
local v2122 = Directory and Directory[p611]
if type(v2122) ~= "table" then
return nil
end
for _, v in ipairs({
v2122,
v2122.Egg,
v2122.Pet
}) do
if type(v) == "table" then
for _, v2 in ipairs(t74) do
local v2127 = v[v2]
local match = (type(v2127) == "string" or type(v2127) == "number") and tostring(v2127):match("%d+")
if not match or not (tonumber(match) > 0) then
continue
end
return match
end
end
end
return nil
end
t69.stolen = function(p612, p613, p614)
if senaV4Config.WebhookEnabled ~= true then
return
end
local WebhookURL = senaV4Config.WebhookURL
if type(WebhookURL) ~= "string" or WebhookURL == "" then
return
end
if not (type(p612) == "table" and p612.AssetCategory) then
return
end
local v2130 = p613 or {
name = p612.AssetCategory,
rarity = "Unknown",
rarityColor = nil
}
local v2131 = t69.rateOf(p612)
if not t69.passes(p612, v2130, v2131) then
return
end
local t75 = {
{
name = "User",
value = LocalPlayer2.Name,
inline = true
},
{
name = "Rarity",
value = tostring(v2130.rarity),
inline = true
},
{
name = "Size",
value = t69.sizeText(p612),
inline = true
},
{
name = "Weight",
value = t69.weightText(t69.weightOf(p612)),
inline = true
},
{
name = "Cash/s",
value = t69.rateText(v2131),
inline = true
},
{
name = "Area",
value = tostring(p612.AreaId or "?"),
inline = true
}
}
local Mutations = p612.Mutations or {}
if #Mutations > 0 then
local t82 = {}
for _, Mutation in ipairs(Mutations) do
t82[#t82 + 1] = tostring(Mutation)
end
t75[#t75 + 1] = {
name = "Mutations",
value = table.concat(t82, ", "),
inline = false
}
end
if p614 and p614 ~= "" then
t75[#t75 + 1] = {
name = "Taken From",
value = tostring(p614),
inline = false
}
end
local v2143 = v2088()
local t83 = {
title = "Egg Stolen",
description = string.format("You've stolen a **%s** %s", tostring(v2130.rarity), tostring(v2130.name)),
color = v2094(v2130.rarityColor),
timestamp = os.date("!%Y-%m-%dT%H:%M:%SZ"),
author = {
name = "Sena Hub",
icon_url = v2143
},
footer = {
text = "discord.gg/senahub",
icon_url = v2143
},
fields = t75
}
if #t70 > 40 then
table.remove(t70, 1)
end
table.insert(t70, {
url = WebhookURL,
payload = {
embeds = { t83 }
}
})
v2089()
end
t69.test = function()
local WebhookURL = senaV4Config.WebhookURL
if type(WebhookURL) ~= "string" or WebhookURL == "" then
return false
end
local v2146 = v2088()
local t84 = {
title = "Webhook Test",
description = string.format("Connection test for **%s**", LocalPlayer2.Name),
color = 5814783,
timestamp = os.date("!%Y-%m-%dT%H:%M:%SZ"),
author = {
name = "Sena Hub",
icon_url = v2146
},
footer = {
text = "discord.gg/senahub",
icon_url = v2146
},
fields = {
{
name = "User",
value = LocalPlayer2.Name,
inline = true
},
{
name = "User ID",
value = tostring(LocalPlayer2.UserId),
inline = true
},
{
name = "Place ID",
value = tostring(game.PlaceId),
inline = true
},
{
name = "Status",
value = "Connected",
inline = true
}
}
}
local v2148 = v2076("96240498384290")
if v2148 then
t84.thumbnail = {
url = v2148
}
end
table.insert(t70, {
url = WebhookURL,
payload = {
embeds = { t84 }
}
})
v2089()
return true
end
return t69
end
genv.__SenaV4Webhook = v2064()
local function v2149()
local Players2 = game:GetService("Players")
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local LocalPlayer2 = Players2.LocalPlayer
local EggState2 = require(ReplicatedStorage2.Client.EggState)
local AreaEggs = require(ReplicatedStorage2.Shared.Types.AreaEggs)
local t85 = {}
t85.__index = t85
local t86 = {
1.1,
0.2,
0.7,
1.4,
0.45
}
t85.new = function(p615, p616, p617)
local obj = setmetatable({}, t85)
obj.eggRuntime = p615
obj.godMode = p616
obj.catalog = p617
obj.enabled = false
obj.running = false
obj.status = "idle"
obj.taken = 0
obj.attempts = 0
obj.history = {}
obj.blacklist = {}
obj.forced = false
obj.listeners = {}
obj.swingSeq = 0
obj.leadIdx = 1
obj.hitIdx = nil
obj.missStreak = 0
return obj
end
t85.onChanged = function(p618, p619)
table.insert(p618.listeners, p619)
end
t85._notify = function(p620)
for _, listener in ipairs(p620.listeners) do
pcall(listener, p620)
end
end
t85._setStatus = function(p621, p622)
if p621.status == p622 then
return
end
p621.status = p622
p621:_notify()
end
t85._log = function(p623, p624, p625, p626)
table.insert(p623.history, 1, {
at = os.time(),
player = p624 or "?",
egg = p625 or "?",
outcome = p626 or "?"
})
while #p623.history > 20 do
table.remove(p623.history)
end
p623:_notify()
end
t85.setEnabled = function(p627, p628)
p627.enabled = p628 == true
if p627.enabled then
p627:_setStatus("looking for a carrier")
p627:_start()
else
p627:_setStatus("idle")
end
end
t85._passes = function(p629, p630)
if not (type(p630) == "table" and p630.AssetCategory) then
return false
end
local v2160 = p629.catalog.resolve(p630)
local t87 = {}
local v2162 = false
local ipairs_ = ipairs
local StealPlayerRarities = senaV4Config.StealPlayerRarities or {}
for _, StealPlayerRarity in ipairs_(StealPlayerRarities) do
if StealPlayerRarity ~= "None" and StealPlayerRarity ~= "" then
t87[StealPlayerRarity] = true
v2162 = true
end
end
if not v2162 then
local ipairs_2 = ipairs
local StealRarities = senaV4Config.StealRarities or {}
for _, StealRarity in ipairs_2(StealRarities) do
if StealRarity ~= "None" and StealRarity ~= "" then
t87[StealRarity] = true
v2162 = true
end
end
end
if v2162 and not t87[v2160.rarity] then
return false
end
local v2171 = tonumber(senaV4Config.StealPlayerMinValue) or 0
if v2171 > 0 then
if (genv.__SenaV4Webhook and genv.__SenaV4Webhook.rateOf(p630) or 0) < v2171 then
return false
end
end
return true
end
t85.carriers = function(p631)
local t88 = {}
local ok, result = pcall(function()
return EggState2.ReadFieldEggs()
end)
if not ok or not result then
return t88
end
local ipairs_ = ipairs
local Records = result.Records or {}
for _, Record in ipairs_(Records) do
if (Record.State == "Carried" or AreaEggs and AreaEggs.States and Record.State == AreaEggs.States.Carried) and not p631.blacklist[Record.Uid] then
local u2179
pcall(function()
u2179 = EggState2.ReadFieldEgg(Record.Uid)
end)
u2179 = u2179 or Record
local CarrierUserId = u2179.CarrierUserId
if CarrierUserId and CarrierUserId ~= LocalPlayer2.UserId then
local playerByUserId = Players2:GetPlayerByUserId(CarrierUserId)
local HumanoidRootPart = playerByUserId and playerByUserId.Character and playerByUserId.Character:FindFirstChild("HumanoidRootPart")
if playerByUserId and HumanoidRootPart then
table.insert(t88, {
record = u2179,
player = playerByUserId,
root = HumanoidRootPart
})
end
end
end
end
return t88
end
t85.clearHistory = function(p632)
table.clear(p632.history)
p632:_notify()
end
local function v2183(p633)
if typeof(p633) == "Color3" then
return string.format("%02x%02x%02x", math.floor(p633.R * 255 + 0.5), math.floor(p633.G * 255 + 0.5), math.floor(p633.B * 255 + 0.5))
end
return "ffffff"
end
t85.listEntries = function(p634)
local t89 = {}
for _, v in ipairs(p634:carriers()) do
t89[v.player] = v.record
end
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
local t90 = {}
local v2189
for _, player in ipairs(Players2:GetPlayers()) do
if player ~= LocalPlayer2 then
local v2192, s4
if player.Character then
local HumanoidRootPart2 = player.Character:FindFirstChild("HumanoidRootPart")
v2192 = t89[player]
local ok = not (HumanoidRootPart2 and HumanoidRootPart)
if not ok then
v2189 = math.floor((HumanoidRootPart2.Position - HumanoidRootPart.Position).Magnitude + 0.5)
ok = not v2189
end
if ok then
v2189 = nil
end
s4 = "Offline"
if v2192 and v2192.AreaId then
s4 = tostring(v2192.AreaId)
elseif HumanoidRootPart2 then
s4 = HumanoidRootPart2.Position.X <= 552.2 and "Safe Zone" or "Field"
end
else
v2192 = t89[player]
v2189 = nil
s4 = "Offline"
if v2192 and v2192.AreaId then
s4 = tostring(v2192.AreaId)
end
end
local rarityRank
local v2197, v2198
if v2192 then
local ok, result = pcall(function()
return p634.catalog.resolve(v2192)
end)
local v2201 = ok and result
if not v2201 then
v2201 = {
rarityRank = 0,
name = tostring(v2192.AssetCategory or "Egg"),
rarity = "Unknown",
rarityColor = Color3.fromRGB(245, 196, 81)
}
end
local v2202 = v2201
rarityRank = v2202.rarityRank or 0
v2197 = string.format("%s [%s]", v2183(v2202.rarityColor), tostring(v2202.name or "Egg"), tostring(v2202.rarity or "Common"))
v2198 = string.format("Running in %s%s", s4, v2189 and " - " .. v2189 .. " studs" or "")
else
v2197 = "No Egg Carried"
v2198 = string.format("Idle in %s%s", s4, v2189 and " - " .. v2189 .. " studs" or "")
end
t90[#t90 + 1] = {
id = tostring(player.UserId),
name = tostring(player.DisplayName or player.Name),
sub = string.format("@%s [%s]", tostring(player.Name), s4),
status = v2197,
statusSub = v2198,
button = "Steal",
buttonColor = v2192 and "accent" or "dim",
player = player,
carrying = v2192 ~= nil,
rank = rarityRank or -1,
distance = v2189 or 1e9,
onClick = function(p635, p636)
local v2203 = p634:strike(p635.player)
p636(v2203 and "Chasing" or "No Egg", v2203 and "green" or "red")
task.delay(1.6, function()
pcall(p636, "Steal", p635.carrying and "accent" or "dim")
end)
end
}
end
end
table.sort(t90, function(p637, p638)
if p637.carrying ~= p638.carrying then
return p637.carrying
end
if not p637.carrying or p637.rank == p638.rank then
return p637.distance < p638.distance
end
return p637.rank > p638.rank
end)
return t90
end
t85._pick = function(p639)
local StealPlayerTarget = senaV4Config.StealPlayerTarget
local v2205
local v2206
local v2207, v2208, v2209 = ipairs(p639:carriers())
local v2210 = geniter(v2207, v2208, v2209)
while true do
local v2211 = table.pack(v2210())
if not v2211[1] then
break
end
local v2212 = v2211[3]
local v2213 = StealPlayerTarget == nil or StealPlayerTarget == "" or StealPlayerTarget == "Any Player" or v2212.player.Name == StealPlayerTarget
if not (v2212.root.Position.X > 672.2) then
continue
end
local exitTo2
while true do
local v2215 = v2212.player:GetAttribute("InBossArena") ~= true
local exitTo
while true do
if not v2213 or not v2215 then
local v2217 = table.pack(v2210())
if not v2217[1] then
break
end
v2212 = v2217[3]
v2213 = StealPlayerTarget == nil or StealPlayerTarget == "" or StealPlayerTarget == "Any Player" or v2212.player.Name == StealPlayerTarget
v2215 = v2212.root.Position.X > 672.2
if not v2215 then
continue
end
exitTo = 2
break
end
exitTo = 1
break
end
if exitTo == 1 then
exitTo2 = 1
break
elseif exitTo == 2 then
continue
end
break
end
if exitTo2 == 1 then
if p639:_passes(v2212.record) then
local rarityRank = p639.catalog.resolve(v2212.record).rarityRank or 0
if not v2206 or v2206 < rarityRank then
v2205 = v2212
v2206 = rarityRank
end
end
continue
end
break
end
return v2205
end
t85.strike = function(p640, p641)
if not p641 or p641 == LocalPlayer2 then
return false
end
for _, v in ipairs(p640:carriers()) do
if v.player == p641 then
p640.forced = true
task.spawn(function()
p640:_chase(v)
end)
return true
end
end
p640:_setStatus(p641.Name .. " is not carrying an egg")
return false
end
local function v2221()
local Character = LocalPlayer2.Character
if not Character then
return
end
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
for _, descendant in ipairs(Character:GetDescendants()) do
if not descendant:IsA("Motor6D") then
if not descendant:IsA("BallSocketConstraint") then
if not descendant:IsA("HingeConstraint") then
if not descendant:IsA("Attachment") then
continue
end
if not descendant.Name:find("Ragdoll") and not descendant:GetAttribute("RagdollAttachment") then
continue
end
pcall(function()
descendant:Destroy()
end)
continue
end
end
if descendant.Name:find("Ragdoll") or descendant:GetAttribute("RagdollConstraint") then
pcall(function()
descendant:Destroy()
end)
end
elseif not descendant.Enabled then
descendant.Enabled = true
end
end
if Humanoid then
Humanoid.PlatformStand = false
Humanoid.Sit = false
pcall(function()
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
Humanoid:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding, false)
Humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
task.wait(0.02)
Humanoid:ChangeState(Enum.HumanoidStateType.Running)
end)
end
if HumanoidRootPart then
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
end
end
local function v2227()
local v2228 = v14()
local Areas = v2228 and v2228:FindFirstChild("Areas")
local GuardAreas = Areas and Areas:FindFirstChild("GuardAreas")
local Forest = GuardAreas and GuardAreas:FindFirstChild("Forest")
if Forest then
local Guard = Forest:FindFirstChild("Guard")
local HumanoidRootPart = Guard and (Guard:FindFirstChild("HumanoidRootPart") or Guard:FindFirstChild("Collider") or Guard:IsA("Model") and Guard.PrimaryPart)
if Guard and HumanoidRootPart then
return Guard, HumanoidRootPart
end
local ForestGuardAuthored = Forest:FindFirstChild("ForestGuardAuthored")
local HumanoidRootPart2 = ForestGuardAuthored and (ForestGuardAuthored:FindFirstChild("HumanoidRootPart") or ForestGuardAuthored:IsA("Model") and ForestGuardAuthored.PrimaryPart)
if ForestGuardAuthored and HumanoidRootPart2 then
return ForestGuardAuthored, HumanoidRootPart2
end
end
local AreaGuards = workspace:FindFirstChild("AreaGuards")
if AreaGuards then
for _, child in ipairs(AreaGuards:GetChildren()) do
local HumanoidRootPart = child:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart and HumanoidRootPart.Position.X < 850 then
return child, HumanoidRootPart
end
end
end
return nil, nil
end
local function v2240(p642)
local u2241
pcall(function()
u2241 = EggState2.ReadFieldEggs()
end)
local Records = u2241 and u2241.Records or {}
local v2243
for _, Record in ipairs(Records) do
if (Record.State == "Slot" or Record.State == "Dropped") and Record.Uid ~= p642 and (not Record.CarrierUserId or Record.CarrierUserId == LocalPlayer2.UserId) then
local Position = Record.BottomCFrame and Record.BottomCFrame.Position or Record.BoundsCFrame and Record.BoundsCFrame.Position
if Record.AreaId == "Forest" or tostring(Record.Uid):find("Forest", 1, true) or tostring(Record.Uid):find("^FirstArea") or Position and Position.X < 680 then
if Record.State == "Slot" then
v2243 = Record
break
end
v2243 = v2243 or Record
end
end
end
return v2243
end
t85._primeForest = function(p643, p644)
local eggRuntime = p643.eggRuntime
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid or not (Humanoid.Health > 0) then
return false
end
if eggRuntime and eggRuntime.carry and eggRuntime.carry.active and eggRuntime.carry.uid then
pcall(function()
eggRuntime:_returnToSafe()
end)
task.wait(0.08)
end
p643:_setStatus("Finding Forest bait egg")
local v2251 = v2240(p644)
if not v2251 then
p643:_setStatus("No Forest bait egg available")
return false
end
local Position = v2251.BottomCFrame and v2251.BottomCFrame.Position or v2251.BoundsCFrame and v2251.BoundsCFrame.Position or Vector3.new(596.6, 67.7, -325)
local vector32 = Vector3.new(Position.X, Position.Y + 2.5, Position.Z)
local u2254 = "Forest:" .. tostring(v2251.NestId or "Slot_001")
pcall(function()
local AreaEggSlotIdentity = require(ReplicatedStorage2.Shared.Util.AreaEggSlotIdentity)
if AreaEggSlotIdentity and v2251.AreaId and v2251.NestId then
u2254 = AreaEggSlotIdentity.SlotKey(v2251.AreaId, v2251.NestId)
end
end)
p643:_setStatus("Grabbing Forest bait egg")
HumanoidRootPart.CFrame = cFrameNew(vector32)
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
RunService.Heartbeat:Wait()
local v2256 = false
local now = os.clock()
local n40 = 0
while os.clock() - now < 0.8 do
HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart") or HumanoidRootPart
if HumanoidRootPart.Position.Y < 65 then
HumanoidRootPart.CFrame = cFrameNew(vector32)
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
end
if n40 <= os.clock() then
n40 = os.clock() + 0.1
task.spawn(function()
pcall(function()
EggState2.CarryFieldEgg(v2251.Uid, u2254)
end)
end)
task.spawn(function()
pcall(function()
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
if Remotes and Remotes.EggWorld and Remotes.EggWorld.AskFieldEggCarry then
Remotes.EggWorld.AskFieldEggCarry:InvokeServer({
Uid = v2251.Uid,
FirstAreaSlotKey = u2254
})
end
end)
end)
end
local u2260
pcall(function()
u2260 = EggState2.ReadFieldEgg(v2251.Uid)
end)
if u2260 and u2260.State == "Carried" and u2260.CarrierUserId == LocalPlayer2.UserId then
v2256 = true
break
else
RunService.Heartbeat:Wait()
end
end
if not v2256 then
p643:_setStatus("Failed to carry Forest bait egg")
v2221()
return false
end
p643:_setStatus("Moving to Forest Guard")
local u2261, u2262 = v2227()
local Position2, u2264, t91
if u2261 then
if not u2261:FindFirstChild("Collider") then
end
Position2 = u2262 and u2262.Position or Vector3.new(596.6, 69.4, -317.1)
HumanoidRootPart.CFrame = cFrameNew(Position2.X, Position2.Y + 0.8, Position2.Z)
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
u2264 = false
t91 = {}
else
Position2 = u2262 and u2262.Position or Vector3.new(596.6, 69.4, -317.1)
HumanoidRootPart.CFrame = cFrameNew(Position2.X, Position2.Y + 0.8, Position2.Z)
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
u2264 = false
t91 = {}
end
pcall(function()
local RERigSyncRefresh = ReplicatedStorage2:FindFirstChild("Packages") and ReplicatedStorage2.Packages:FindFirstChild("Networking") and ReplicatedStorage2.Packages.Networking:FindFirstChild("RE/RigSync/Refresh")
if RERigSyncRefresh then
table.insert(t91, RERigSyncRefresh.OnClientEvent:Connect(function()
u2264 = true
end))
end
end)
pcall(function()
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
if Remotes and Remotes.EggWorld and Remotes.EggWorld.OwnerDropped then
table.insert(t91, Remotes.EggWorld.OwnerDropped.OnClientEvent:Connect(function()
u2264 = true
end))
end
end)
table.insert(t91, Humanoid.StateChanged:Connect(function(old, new)
if new == Enum.HumanoidStateType.Ragdoll or new == Enum.HumanoidStateType.FallingDown or new == Enum.HumanoidStateType.PlatformStanding then
u2264 = true
end
end))
table.insert(t91, Humanoid:GetPropertyChangedSignal("PlatformStand"):Connect(function()
if Humanoid.PlatformStand then
u2264 = true
end
end))
local function v2268()
local v2269, v2270 = v2227()
u2261 = v2269
u2262 = v2270
local Position3 = u2262 and u2262.Position or Position2
local HumanoidRootPart2 = Character:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart2 then
HumanoidRootPart2.CFrame = cFrameNew(Position3.X, Position3.Y + 0.8, Position3.Z)
HumanoidRootPart2.AssemblyLinearVelocity = Vector3.zero
end
local Collider = u2261 and u2261:FindFirstChild("Collider") or u2262
if Collider and type(firetouchinterest) == "function" and HumanoidRootPart2 then
pcall(function()
firetouchinterest(HumanoidRootPart2, Collider, 0)
firetouchinterest(HumanoidRootPart2, Collider, 1)
end)
end
pcall(function()
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
if Remotes then
if Remotes.GuardPatrol and Remotes.GuardPatrol.ForestStrike then
Remotes.GuardPatrol.ForestStrike:FireServer({
EggUid = v2251.Uid,
GuardCFrame = u2262 and u2262.CFrame or cFrameNew(Position3)
})
end
end
end)
end
p643:_setStatus("Triggering Forest Guard hit")
v2268()
local v2275 = os.clock() + 0.75
local v2276 = os.clock() + 0.05
while os.clock() < v2275 and not u2264 do
local Humanoid2 = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChildOfClass("Humanoid")
if Humanoid2 and (Humanoid2.PlatformStand or Humanoid2.Sit) then
u2264 = true
break
end
local HumanoidRootPart2 = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart2 and HumanoidRootPart2.AssemblyLinearVelocity.Magnitude > 18 then
u2264 = true
break
else
if HumanoidRootPart2 and HumanoidRootPart2.Position.Y < 65 then
HumanoidRootPart2.CFrame = cFrameNew(Position2.X, 70, Position2.Z)
HumanoidRootPart2.AssemblyLinearVelocity = Vector3.zero
end
if v2276 <= os.clock() then
v2276 = os.clock() + 0.05
v2268()
end
RunService.Heartbeat:Wait()
end
end
for _, v in ipairs(t91) do
pcall(v.Disconnect, v)
end
if not u2264 then
p643:_setStatus("Forest Guard hit timed out")
v2221()
return false, v2251.Uid
end
p643:_setStatus("Recovering posture")
v2221()
local v2281 = os.clock() + 0.35
while os.clock() < v2281 do
local Humanoid2 = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChildOfClass("Humanoid")
local HumanoidRootPart2 = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if not Humanoid2 or not HumanoidRootPart2 or Humanoid2.PlatformStand or Humanoid2.Sit then
v2221()
RunService.Heartbeat:Wait()
else
local state = Humanoid2:GetState()
if state ~= Enum.HumanoidStateType.Ragdoll and state ~= Enum.HumanoidStateType.FallingDown and state ~= Enum.HumanoidStateType.PlatformStanding then
HumanoidRootPart2.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart2.AssemblyAngularVelocity = Vector3.zero
break
end
v2221()
RunService.Heartbeat:Wait()
end
end
return true, v2251.Uid
end
t85._swingBatAt = function(p645, p646, p647)
if not p647 or p647.Parent ~= LocalPlayer2.Character then
return false
end
p645.swingSeq += 1
local v2285 = string.format("%d:%d:%d", LocalPlayer2.UserId, p645.swingSeq, math.floor(workspace:GetServerTimeNow() * 1000))
local function v2286()
require(ReplicatedStorage2.Shared.Remotes).BatSwing.Trigger:FireServer(p646, v2285)
end
return pcall(v2286)
end
t85._returnSafe = function(p648)
local eggRuntime = p648.eggRuntime
local Character = LocalPlayer2.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not eggRuntime or not HumanoidRootPart or not Humanoid or eggRuntime:_isInSafeArea(HumanoidRootPart) then
return
end
local v2291 = eggRuntime:_resolveSafeCFrame(HumanoidRootPart)
if not v2291 then
return
end
p648:_setStatus("Returning to safe zone")
v232(HumanoidRootPart, Humanoid, v2291, function()
return Humanoid.Health <= 0 or not HumanoidRootPart.Parent
end, false, nil, true)
end
t85.intercept = function(p649, p650)
if p649.running then
return false
end
local HumanoidRootPart = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return false
end
for _, v in ipairs(p649:carriers()) do
if v.record.Uid == p650 then
if v.root.Position.X <= 552.2 or (v.root.Position - HumanoidRootPart.Position).Magnitude > 80 then
return false
end
p649.forced = true
task.spawn(p649._chase, p649, v, true)
return p649.running
end
end
return false
end
local s5 = "_chase"
local function v2296(p651, p652, p653)
if p651.running then
return
end
p651.running = true
p651.attempts += 1
local record = p652.record
local Uid = record.Uid
local v2299 = p651.catalog.resolve(record)
local player = p652.player
local DisplayName = player.DisplayName or player.Name
if p651.godMode then
p651.godMode:stopDefend()
end
if not p653 then
p651:_returnSafe()
p651:_setStatus(string.format("Priming at Forest Guard for %s", DisplayName))
local ok, result, result2 = pcall(p651._primeForest, p651, Uid)
local u2305
if ok and not result and result2 then
pcall(function()
u2305 = EggState2.ReadFieldEgg(result2)
end)
end
if u2305 and u2305.State == "Carried" and u2305.CarrierUserId == LocalPlayer2.UserId then
p651:_returnSafe()
p651:_log(DisplayName, v2299.name, "Forest priming failed")
p651:_setStatus(p651.enabled and "looking for a carrier" or "idle")
p651.running = false
p651.forced = false
return
end
end
local godMode = p651.godMode and p651.godMode:_equipBat()
local v2307 = os.clock() + (p653 and 8 or 16)
local s6 = "could not catch them"
local n41 = 0
local n42 = 0
local now
local v2312
local now2
local t92 = {}
local vector32 = Vector3.zero
local attribute = player:GetAttribute("RagdollEndTime") or false
local n43 = 0.1
pcall(function()
n43 = math.clamp(LocalPlayer2:GetNetworkPing() or 0.1, 0.03, 0.6)
end)
local v2318 = math.clamp(0.14 + n43, 0.14, 0.35)
local hitIdx = p651.hitIdx or p651.leadIdx
p651.leadIdx = hitIdx or 1
p651.missStreak = 0
local connection
pcall(function()
connection = RunService.Stepped:Connect(function()
local Character = LocalPlayer2.Character
if Character then
for _, descendant in ipairs(Character:GetDescendants()) do
if descendant:IsA("BasePart") then
descendant.CanCollide = false
end
end
end
end)
end)
p651:_setStatus(string.format("Chasing %s", DisplayName))
while os.clock() < v2307 do
local result = RunService.PreSimulation:Wait()
if not p651.enabled and not p651.forced then
s6 = "stopped"
break
end
local u2325
pcall(function()
u2325 = EggState2.ReadFieldEgg(Uid)
end)
local State = u2325 and u2325.State
if not u2325 or State == "Slot" or State == "GuardCarried" then
s6 = "egg reset"
break
end
if State == "Claimed" then
s6 = "they banked it"
break
end
if State == "Carried" and u2325.CarrierUserId == LocalPlayer2.UserId then
s6 = "taken"
break
end
if State == "Dropped" then
if now and os.clock() - now <= 1 then
p651.hitIdx = p651.leadIdx
end
p651:_setStatus(string.format("Grabbing dropped egg from %s", DisplayName))
s6 = p651:_grab(u2325) and "taken" or "someone else grabbed it"
break
end
local Character = LocalPlayer2.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 then
s6 = "character died"
break
end
local HumanoidRootPart2, now3, v2332, AssemblyLinearVelocity, vector33, Magnitude, LookVector, vector34, Unit, Unit2, clamp, v2341, v2342, vector35, cFrame, v2345, Magnitude2, v2347, v2348, v2349, v2350, attribute2, v2352
if u2325.CarrierUserId == player.UserId then
HumanoidRootPart2 = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart2 then
s6 = "lost sight of them"
break
end
if HumanoidRootPart2.Position.X <= 552.2 then
s6 = "banked"
break
end
now3 = os.clock()
v2332 = #t92 + 1
t92[v2332] = {
t = now3,
p = HumanoidRootPart2.Position
}
while #t92 > 2 and now3 - t92[1].t > 0.4 do
table.remove(t92, 1)
end
AssemblyLinearVelocity = HumanoidRootPart2.AssemblyLinearVelocity
if Vector3.new(AssemblyLinearVelocity.X, 0, AssemblyLinearVelocity.Z).Magnitude > 8 then
vector32 = AssemblyLinearVelocity
elseif #t92 >= 2 and now3 - t92[1].t > 0.15 then
vector32 = (HumanoidRootPart2.Position - t92[1].p) / (now3 - t92[1].t)
end
vector33 = Vector3.new(vector32.X, 0, vector32.Z)
Magnitude = vector33.Magnitude
if Magnitude > 6 then
Unit2 = vector33.Unit
else
LookVector = HumanoidRootPart2.CFrame.LookVector
vector34 = Vector3.new(LookVector.X, 0, LookVector.Z)
Unit = vector34.Magnitude > 0.05 and vector34.Unit or Vector3.new(-1, 0, 0)
Unit2 = Unit
end
clamp = math.clamp
v2341 = t86[p651.leadIdx] or 1
v2342 = HumanoidRootPart2.Position + Unit2 * clamp(v2341 * Magnitude * v2318, 3, 110)
if v2342.X < 557.2 then
v2342 = Vector3.new(557.2, v2342.Y, v2342.Z)
end
vector35 = Vector3.new(HumanoidRootPart2.Position.X, v2342.Y, HumanoidRootPart2.Position.Z)
if (vector35 - v2342).Magnitude < 0.5 then
vector35 = v2342 - Unit2
end
cFrame = lookAt(v2342, vector35)
v2345 = v2342 - HumanoidRootPart.Position
Magnitude2 = v2345.Magnitude
v2347 = v20()
v2348 = v2347 * math.min(result, 0.05)
v27(Character, v2347 * t1.HEADROOM)
if v2348 < Magnitude2 then
HumanoidRootPart.CFrame = cFrameNew(HumanoidRootPart.Position + v2345.Unit * v2348) * cFrame.Rotation
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
v2349 = v2345.Unit * v2347
else
HumanoidRootPart.CFrame = cFrame
HumanoidRootPart.AssemblyLinearVelocity = HumanoidRootPart2.AssemblyLinearVelocity
v2349 = HumanoidRootPart2.AssemblyLinearVelocity
end
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
if not v32(Humanoid, HumanoidRootPart, v2347, v2349) then
v31(Humanoid, HumanoidRootPart, v2347)
v32(Humanoid, HumanoidRootPart, v2347, v2349)
end
v2350 = Magnitude * result * 1.5
if not (Magnitude2 <= 5 + v2350) then
if 12 + v2350 < Magnitude2 and now2 then
now2 = nil
p651:_setStatus(string.format("Chasing %s", DisplayName))
end
elseif not now2 then
now2 = os.clock()
p651:_setStatus(string.format("Attacking %s", DisplayName))
end
attribute2 = player:GetAttribute("RagdollEndTime") or false
if attribute2 ~= attribute then
attribute = attribute2
p651.hitIdx = p651.leadIdx
p651.missStreak = 0
now = nil
end
if (not godMode or godMode.Parent ~= Character) and n42 <= os.clock() then
n42 = os.clock() + 0.5
task.spawn(function()
godMode = p651.godMode and p651.godMode:_equipBat() or godMode
end)
end
v2352 = godMode and tonumber(godMode:GetAttribute("CooldownEndTime")) or 0
if now and os.clock() - now > 0.9 then
if v2352 ~= v2312 then
p651.missStreak += 1
if p651.missStreak >= 2 then
p651.missStreak = 0
p651.leadIdx = p651.leadIdx % #t86 + 1
now2 = nil
end
end
now = nil
end
if godMode and godMode.Parent == Character and now2 and v2318 + 0.05 <= os.clock() - now2 and godMode:GetAttribute("CooldownActive") ~= true and v2352 <= workspace:GetServerTimeNow() and os.clock() - n41 >= 0.35 then
n41 = os.clock()
if not now then
now = os.clock()
v2312 = v2352
end
task.spawn(p651._swingBatAt, p651, player, godMode)
end
else
local playerByUserId = Players2:GetPlayerByUserId(u2325.CarrierUserId or 0)
if not playerByUserId then
s6 = "taken by another player"
break
end
player = playerByUserId
DisplayName = player.DisplayName or player.Name
attribute = player:GetAttribute("RagdollEndTime") or false
now2 = nil
now = nil
table.clear(t92)
p651:_setStatus(string.format("Chasing %s", DisplayName))
HumanoidRootPart2 = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart2 then
s6 = "lost sight of them"
break
end
if HumanoidRootPart2.Position.X <= 552.2 then
s6 = "banked"
break
end
now3 = os.clock()
v2332 = #t92 + 1
t92[v2332] = {
t = now3,
p = HumanoidRootPart2.Position
}
while #t92 > 2 and now3 - t92[1].t > 0.4 do
table.remove(t92, 1)
end
AssemblyLinearVelocity = HumanoidRootPart2.AssemblyLinearVelocity
if Vector3.new(AssemblyLinearVelocity.X, 0, AssemblyLinearVelocity.Z).Magnitude > 8 then
vector32 = AssemblyLinearVelocity
elseif #t92 >= 2 and now3 - t92[1].t > 0.15 then
vector32 = (HumanoidRootPart2.Position - t92[1].p) / (now3 - t92[1].t)
end
vector33 = Vector3.new(vector32.X, 0, vector32.Z)
Magnitude = vector33.Magnitude
if Magnitude > 6 then
Unit2 = vector33.Unit
else
LookVector = HumanoidRootPart2.CFrame.LookVector
vector34 = Vector3.new(LookVector.X, 0, LookVector.Z)
Unit = vector34.Magnitude > 0.05 and vector34.Unit or Vector3.new(-1, 0, 0)
Unit2 = Unit
end
clamp = math.clamp
v2341 = t86[p651.leadIdx] or 1
v2342 = HumanoidRootPart2.Position + Unit2 * clamp(v2341 * Magnitude * v2318, 3, 110)
if v2342.X < 557.2 then
v2342 = Vector3.new(557.2, v2342.Y, v2342.Z)
end
vector35 = Vector3.new(HumanoidRootPart2.Position.X, v2342.Y, HumanoidRootPart2.Position.Z)
if (vector35 - v2342).Magnitude < 0.5 then
vector35 = v2342 - Unit2
end
cFrame = lookAt(v2342, vector35)
v2345 = v2342 - HumanoidRootPart.Position
Magnitude2 = v2345.Magnitude
v2347 = v20()
v2348 = v2347 * math.min(result, 0.05)
v27(Character, v2347 * t1.HEADROOM)
if v2348 < Magnitude2 then
HumanoidRootPart.CFrame = cFrameNew(HumanoidRootPart.Position + v2345.Unit * v2348) * cFrame.Rotation
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
v2349 = v2345.Unit * v2347
else
HumanoidRootPart.CFrame = cFrame
HumanoidRootPart.AssemblyLinearVelocity = HumanoidRootPart2.AssemblyLinearVelocity
v2349 = HumanoidRootPart2.AssemblyLinearVelocity
end
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
if not v32(Humanoid, HumanoidRootPart, v2347, v2349) then
v31(Humanoid, HumanoidRootPart, v2347)
v32(Humanoid, HumanoidRootPart, v2347, v2349)
end
v2350 = Magnitude * result * 1.5
if not (Magnitude2 <= 5 + v2350) then
if 12 + v2350 < Magnitude2 and now2 then
now2 = nil
p651:_setStatus(string.format("Chasing %s", DisplayName))
end
elseif not now2 then
now2 = os.clock()
p651:_setStatus(string.format("Attacking %s", DisplayName))
end
attribute2 = player:GetAttribute("RagdollEndTime") or false
if attribute2 ~= attribute then
attribute = attribute2
p651.hitIdx = p651.leadIdx
p651.missStreak = 0
now = nil
end
if (not godMode or godMode.Parent ~= Character) and n42 <= os.clock() then
n42 = os.clock() + 0.5
task.spawn(function()
godMode = p651.godMode and p651.godMode:_equipBat() or godMode
end)
end
v2352 = godMode and tonumber(godMode:GetAttribute("CooldownEndTime")) or 0
if now and os.clock() - now > 0.9 then
if v2352 ~= v2312 then
p651.missStreak += 1
if p651.missStreak >= 2 then
p651.missStreak = 0
p651.leadIdx = p651.leadIdx % #t86 + 1
now2 = nil
end
end
now = nil
end
if godMode and godMode.Parent == Character and now2 and v2318 + 0.05 <= os.clock() - now2 and godMode:GetAttribute("CooldownActive") ~= true and v2352 <= workspace:GetServerTimeNow() and os.clock() - n41 >= 0.35 then
n41 = os.clock()
if not now then
now = os.clock()
v2312 = v2352
end
task.spawn(p651._swingBatAt, p651, player, godMode)
end
end
end
if connection then
pcall(function()
connection:Disconnect()
end)
end
if s6 == "taken" then
p651.taken += 1
pcall(function()
local Humanoid = LocalPlayer2.Character and LocalPlayer2.Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
Humanoid:UnequipTools()
end
end)
else
p651.blacklist[Uid] = os.clock() + 20
end
p651:_returnSafe()
p651:_log(DisplayName, v2299.name, s6)
p651:_setStatus(p651.enabled and "looking for a carrier" or "idle")
p651.running = false
p651.forced = false
end
t85[s5] = v2296
t85._grab = function(p654, p655)
local eggRuntime = p654.eggRuntime
local Uid = p655.Uid
local v2357 = os.clock() + 3
local n44 = 0
while true do
if not (os.clock() < v2357) then
return false
end
local u2359
pcall(function()
u2359 = EggState2.ReadFieldEgg(Uid)
end)
local State = u2359 and u2359.State
if State == "Carried" then
if u2359.CarrierUserId ~= LocalPlayer2.UserId then
return false
end
if genv.__SenaV4Webhook then
local ok, result = pcall(p654.catalog.resolve, u2359)
pcall(genv.__SenaV4Webhook.stolen, u2359, ok and result or nil, "player carry")
end
return true
end
if State ~= "Dropped" then
return false
end
local Character = LocalPlayer2.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 then
break
end
local cFrame = eggRuntime and eggRuntime:_resolveEggDestination(u2359, HumanoidRootPart, Humanoid)
if not cFrame then
local Position = u2359.BottomCFrame and u2359.BottomCFrame.Position or u2359.BoundsCFrame and u2359.BoundsCFrame.Position
cFrame = Position and cFrameNew(Position.X, Position.Y + 2.5, Position.Z)
end
if cFrame then
HumanoidRootPart.CFrame = cFrame
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
HumanoidRootPart.AssemblyAngularVelocity = Vector3.zero
end
if n44 <= os.clock() then
n44 = os.clock() + 0.1
task.spawn(function()
pcall(function()
EggState2.CarryFieldEgg(Uid)
end)
end)
task.spawn(function()
pcall(function()
require(ReplicatedStorage2.Shared.Remotes).EggWorld.AskFieldEggCarry:InvokeServer({
Uid = Uid
})
end)
end)
end
RunService.Heartbeat:Wait()
end
return false
end
t85._start = function(p656)
if p656.loop then
return
end
p656.loop = task.spawn(function()
while true do
task.wait(0.4)
if genv.ChloeX_Running == nil and genv.__SenaV4PlayerSteal ~= p656 then
break
end
for k, v in pairs(p656.blacklist) do
if v < os.clock() then
p656.blacklist[k] = nil
end
end
local eggRuntime = p656.eggRuntime
local __SenaV4ScrambleRuntime = genv.__SenaV4ScrambleRuntime
if p656.enabled and not p656.running and (not eggRuntime or not eggRuntime.running and (not eggRuntime.carry or not eggRuntime.carry.active)) and (__SenaV4ScrambleRuntime == nil or __SenaV4ScrambleRuntime.active ~= true) then
local v2372 = p656:_pick()
if v2372 then
p656:_chase(v2372)
end
end
end
p656.loop = nil
end)
end
return t85
end
local v2373 = v2149()
v614 = v1885.new(v612)
v614:install()
v614:setEnabled(senaV4Config.AntiGuardKnockback == true)
genv.__SenaV4AntiGuard = v614
v615 = v1932.new(v612)
v615:setEnabled(senaV4Config.GodMode == nil and true or senaV4Config.GodMode == true)
genv.__SenaV4GodMode = v615
local v2374 = v2373.new(v612, v615, v611)
local function v2375()
local Players2 = game:GetService("Players")
local RunService2 = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer2 = Players2.LocalPlayer
local t93 = {}
t93.__index = t93
t93.new = function()
local obj = setmetatable({}, t93)
obj.flyEnabled = false
obj.flyConnection = nil
obj.flyMover = nil
obj.grabEnabled = false
obj.grabConnection = nil
obj.grabOriginals = setmetatable({}, {
__mode = "k"
})
obj.jumpEnabled = false
obj.jumpConnections = {}
obj.lastJumpAt = 0
obj.speedMultiplier = 1
obj.speedModules = nil
obj.speedConnection = nil
return obj
end
t93._root = function()
local Character = LocalPlayer2.Character
return Character and Character:FindFirstChild("HumanoidRootPart")
end
t93._humanoid = function()
local Character = LocalPlayer2.Character
return Character and Character:FindFirstChildOfClass("Humanoid")
end
t93._ensureMover = function(p657, p658)
if p657.flyMover and p657.flyMover.Parent == p658 then
return
end
if p657.flyMover then
pcall(function()
p657.flyMover:Destroy()
end)
end
local BodyVelocity = Instance.new("BodyVelocity")
BodyVelocity.Name = "SenaFlyCaptureHover"
BodyVelocity.MaxForce = Vector3.new(0, 9e9, 0)
BodyVelocity.Velocity = Vector3.zero
BodyVelocity.Parent = p658
p657.flyMover = BodyVelocity
end
local function v2385()
local __SenaV4TreadmillManager = genv.__SenaV4TreadmillManager
return __SenaV4TreadmillManager ~= nil and not __SenaV4TreadmillManager.destroyed and __SenaV4TreadmillManager.config ~= nil and __SenaV4TreadmillManager.config.idleFarm == true
end
local t94 = {
at = 0,
value = false
}
local function v2388()
local now = os.clock()
if now - t94.at < 0.25 then
return t94.value
end
t94.at = now
local value = false
pcall(function()
local EggState2 = require(game:GetService("ReplicatedStorage").Client.EggState)
local GetAreaEggSnapshot = EggState2.GetAreaEggSnapshot and EggState2.GetAreaEggSnapshot()
if (not GetAreaEggSnapshot or not GetAreaEggSnapshot.Records) and EggState2.ReadFieldEggs then
GetAreaEggSnapshot = EggState2.ReadFieldEggs()
end
local ipairs_ = ipairs
local Records = GetAreaEggSnapshot and GetAreaEggSnapshot.Records or {}
for _, Record in ipairs_(Records) do
if Record.State == "Carried" and Record.CarrierUserId == LocalPlayer2.UserId then
value = true
break
end
end
end)
t94.value = value
return value
end
t93._dropMover = function(p659, p660)
if p659.flyMover then
pcall(function()
p659.flyMover:Destroy()
end)
p659.flyMover = nil
end
local SenaFlyCaptureHover = p660 and p660:FindFirstChild("SenaFlyCaptureHover")
if SenaFlyCaptureHover then
pcall(function()
SenaFlyCaptureHover:Destroy()
end)
end
end
t93.setFlyForCapture = function(p661, p662)
p661.flyEnabled = p662 == true
if p661.flyEnabled then
if not p661.flyConnection then
p661.flyAnchored = false
p661.flyConnection = RunService2.PreSimulation:Connect(function()
if not p661.flyEnabled then
return
end
local v2398 = p661:_root()
if not v2398 then
return
end
local running = not v2388() or v2385() or next(t9) ~= nil or v612 and (v612.running or v612.activeTween)
if not running then
local __SenaV4PlayerSteal = genv.__SenaV4PlayerSteal
if __SenaV4PlayerSteal and __SenaV4PlayerSteal.running then
running = true
end
end
if running then
if p661.flyAnchored then
pcall(function()
v2398.Anchored = false
end)
p661.flyAnchored = false
end
return
end
if v2398.Position.Y < 109 then
if p661.flyAnchored then
pcall(function()
v2398.Anchored = false
end)
p661.flyAnchored = false
end
v2398.CFrame = cFrameNew(v2398.Position.X, v2398.Position.Y + math.min(110 - v2398.Position.Y, 4), v2398.Position.Z) * v2398.CFrame.Rotation
v2398.AssemblyLinearVelocity = Vector3.zero
v2398.AssemblyAngularVelocity = Vector3.zero
elseif v2398.Anchored then
p661.flyAnchored = true
else
pcall(function()
v2398.Anchored = true
end)
p661.flyAnchored = true
end
end)
return
end
return
end
if p661.flyConnection then
pcall(function()
p661.flyConnection:Disconnect()
end)
p661.flyConnection = nil
end
if p661.flyMover then
pcall(function()
p661.flyMover:Destroy()
end)
p661.flyMover = nil
end
local v2401 = p661:_root()
if v2401 then
local SenaFlyCaptureHover = v2401:FindFirstChild("SenaFlyCaptureHover")
if SenaFlyCaptureHover then
pcall(function()
SenaFlyCaptureHover:Destroy()
end)
end
if p661.flyAnchored then
pcall(function()
v2401.Anchored = false
end)
end
end
p661.flyAnchored = false
end
t93._isGrabPrompt = function(p663, p664)
return p664:IsA("ProximityPrompt") and p664.Name == "CarryAreaEgg"
end
t93._applyGrab = function(p665, p666)
if not p665:_isGrabPrompt(p666) then
return
end
if p665.grabOriginals[p666] == nil then
p665.grabOriginals[p666] = p666.HoldDuration
end
if p666.HoldDuration > 0.1 then
p666.HoldDuration = 0.1
end
end
t93._restoreGrab = function(p667)
local v2403 = workspace:GetAttribute("FastEggPickupTime") and 0.25 or 1.2
for k, grabOriginal in pairs(p667.grabOriginals) do
pcall(function()
if k.Parent then
k.HoldDuration = tonumber(grabOriginal) and grabOriginal > 0.1 and grabOriginal or v2403
end
end)
end
p667.grabOriginals = setmetatable({}, {
__mode = "k"
})
end
t93._fireGrab = function(p668, p669)
if not p668:_isGrabPrompt(p669) or not p669.Enabled then
return
end
p668.grabFiring = p668.grabFiring or setmetatable({}, {
__mode = "k"
})
if p668.grabFiring[p669] then
return
end
local Parent = p669.Parent
local v2407 = p668:_root()
if not v2407 or not Parent or not Parent:IsA("BasePart") then
return
end
if (tonumber(p669.MaxActivationDistance) or 10) + 1 < (Parent.Position - v2407.Position).Magnitude then
return
end
p668.grabFiring[p669] = true
task.spawn(function()
pcall(function()
local v2408 = math.max(0.1, tonumber(p669.HoldDuration) or 0.1)
p669:InputHoldBegin()
task.wait(v2408 + 0.05)
p669:InputHoldEnd()
end)
task.wait(0.4)
if p668.grabFiring then
p668.grabFiring[p669] = nil
end
end)
end
t93.setInstantGrab = function(p670, p671)
p670.grabEnabled = p671 == true
if p670.grabEnabled then
for _, descendant in ipairs(workspace:GetDescendants()) do
p670:_applyGrab(descendant)
end
if not p670.grabConnection then
p670.grabConnection = workspace.DescendantAdded:Connect(function(descendant)
if p670.grabEnabled then
if p670:_isGrabPrompt(descendant) then
task.defer(function()
p670:_applyGrab(descendant)
end)
end
end
end)
end
else
if p670.grabConnection then
pcall(function()
p670.grabConnection:Disconnect()
end)
p670.grabConnection = nil
end
p670.grabFireLoop = nil
p670:_restoreGrab()
end
end
t93.triggerJump = function(p672)
if not p672.jumpEnabled then
return
end
local now = os.clock()
if now - p672.lastJumpAt < 0.08 then
return
end
local v2412 = p672:_humanoid()
local v2413 = p672:_root()
if not v2412 or not v2413 or v2412.Health <= 0 then
return
end
p672.lastJumpAt = now
pcall(function()
v2412:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
v2412:ChangeState(Enum.HumanoidStateType.Jumping)
v2412.Jump = true
end)
local n45 = 55
if v2412.UseJumpPower and v2412.JumpPower > 0 then
n45 = v2412.JumpPower
elseif v2412.JumpHeight and v2412.JumpHeight > 0 then
n45 = math.sqrt(2 * workspace.Gravity * v2412.JumpHeight)
end
if n45 < 55 then
n45 = 55
end
pcall(function()
local AssemblyLinearVelocity = v2413.AssemblyLinearVelocity
v2413.AssemblyLinearVelocity = Vector3.new(AssemblyLinearVelocity.X, n45, AssemblyLinearVelocity.Z)
end)
end
t93.setInfiniteJump = function(p673, p674)
p673.jumpEnabled = p674 == true
if #p673.jumpConnections > 0 then
return
end
pcall(function()
table.insert(p673.jumpConnections, UserInputService.InputBegan:Connect(function(input)
if not p673.jumpEnabled then
return
end
if UserInputService:GetFocusedTextBox() then
return
end
if input.KeyCode == Enum.KeyCode.Space or input.KeyCode == Enum.KeyCode.ButtonA then
p673:triggerJump()
end
end))
table.insert(p673.jumpConnections, UserInputService.JumpRequest:Connect(function()
if not p673.jumpEnabled then
return
end
if UserInputService:GetFocusedTextBox() then
return
end
p673:triggerJump()
end))
end)
task.spawn(function()
while true do
RunService2.Heartbeat:Wait()
if p673.jumpEnabled and not UserInputService:GetFocusedTextBox() then
local u2416 = false
pcall(function()
if UserInputService:IsKeyDown(Enum.KeyCode.Space) or UserInputService:IsGamepadButtonDown(Enum.UserInputType.Gamepad1, Enum.KeyCode.ButtonA) then
u2416 = true
end
end)
if u2416 and os.clock() - p673.lastJumpAt >= 0.28 then
p673:triggerJump()
end
end
end
end)
end
t93._gameWalkSpeed = function(p675)
local speedModules = p675.speedModules
if not speedModules then
speedModules = {}
pcall(function()
speedModules.TreadmillUtil = require(ReplicatedStorage.Shared.Util.TreadmillUtil)
end)
pcall(function()
speedModules.Projection = require(ReplicatedStorage.Client.SpeedPowerProjection)
end)
pcall(function()
speedModules.Save = require(ReplicatedStorage.Shared.Save)
end)
p675.speedModules = speedModules
end
if not speedModules.TreadmillUtil or not speedModules.TreadmillUtil.SpeedPowerToWalkSpeed then
return nil
end
local SpeedPower
if speedModules.Projection then
pcall(function()
SpeedPower = speedModules.Projection.ReadProjected()
end)
end
if type(SpeedPower) ~= "number" and speedModules.Save then
pcall(function()
SpeedPower = (speedModules.Save.Peek or speedModules.Save.Get)().SpeedPower
end)
end
if type(SpeedPower) ~= "number" then
return nil
end
local ok, result = pcall(speedModules.TreadmillUtil.SpeedPowerToWalkSpeed, SpeedPower)
local v2421 = ok and tonumber(result) or nil
return v2421
end
t93.setSpeedMultiplier = function(p676, p677)
p676.speedMultiplier = math.clamp(tonumber(p677) or 1, 1, 2.1)
p676:_applySpeedMultiplier()
if not p676.speedConnection then
p676.speedConnection = RunService2.Heartbeat:Connect(function()
if p676.speedMultiplier <= 1.001 then
return
end
p676:_applySpeedMultiplier()
end)
return
end
end
t93._applySpeedMultiplier = function(p678)
local __SenaV4TreadmillManager = genv.__SenaV4TreadmillManager
if __SenaV4TreadmillManager and __SenaV4TreadmillManager.activeTreadmill ~= nil then
return
end
local v2423 = p678:_humanoid()
if not v2423 then
return
end
local v2424 = p678:_gameWalkSpeed()
if not v2424 or v2424 <= 0 then
return
end
local walkSpeed = v2424 * p678.speedMultiplier
if math.abs(v2423.WalkSpeed - walkSpeed) > 0.05 then
pcall(function()
v2423.WalkSpeed = walkSpeed
end)
end
end
t93.destroy = function(p679)
p679:setFlyForCapture(false)
p679:setInstantGrab(false)
p679.jumpEnabled = false
for _, jumpConnection in ipairs(p679.jumpConnections) do
pcall(function()
jumpConnection:Disconnect()
end)
end
p679.jumpConnections = {}
if p679.speedConnection then
pcall(function()
p679.speedConnection:Disconnect()
end)
p679.speedConnection = nil
end
end
return t93
end
local v2428 = v2375().new()
genv.__SenaV4MovementExtras = v2428
if senaV4Config.FlyForCapture then
v2428:setFlyForCapture(true)
end
if senaV4Config.InstantGrab then
v2428:setInstantGrab(true)
end
if senaV4Config.InfiniteJump then
v2428:setInfiniteJump(true)
end
if (senaV4Config.WalkSpeedMultiplier or 1) > 1 then
v2428:setSpeedMultiplier(senaV4Config.WalkSpeedMultiplier)
end
local function v2429()
local Players2 = game:GetService("Players")
local RunService2 = game:GetService("RunService")
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local LocalPlayer2 = Players2.LocalPlayer
local cFrame = cFrameNew(544.76, 71.5, -416.48)
local t95 = {}
t95.__index = t95
t95.new = function()
local obj = setmetatable({}, t95)
obj.enabled = false
obj.running = false
obj.destroyed = false
obj.connection = nil
obj.wasHolding = false
obj.lastResult = "Idle"
return obj
end
t95._character = function()
return LocalPlayer2.Character
end
t95._root = function(p680)
local v2437 = p680:_character()
return v2437 and v2437:FindFirstChild("HumanoidRootPart")
end
t95._carriedUid = function()
local Uid
pcall(function()
local EggState2 = require(ReplicatedStorage2.Client.EggState)
local v2440
if EggState2.GetAreaEggSnapshot then
v2440 = EggState2.GetAreaEggSnapshot()
end
if (not v2440 or not v2440.Records) and EggState2.ReadFieldEggs then
v2440 = EggState2.ReadFieldEggs()
end
if not v2440 or not v2440.Records then
return
end
local UserId = LocalPlayer2.UserId
for _, record in ipairs(v2440.Records) do
if record.State == "Carried" and record.CarrierUserId == UserId then
Uid = record.Uid
return
end
end
end)
return Uid
end
t95._record = function(p681, p682)
local ReadFieldEgg
pcall(function()
local EggState2 = require(ReplicatedStorage2.Client.EggState)
ReadFieldEgg = EggState2.ReadFieldEgg and EggState2.ReadFieldEgg(p682)
end)
return ReadFieldEgg
end
t95._guardFor = function(p683, p684)
local Guard
pcall(function()
local v2447 = p683:_record(p684)
local v2448 = v14()
local Areas = v2448 and v2448:FindFirstChild("Areas")
local GuardAreas = Areas and Areas:FindFirstChild("GuardAreas")
local AreaId = GuardAreas and v2447 and v2447.AreaId and GuardAreas:FindFirstChild(v2447.AreaId)
Guard = AreaId and AreaId:FindFirstChild("Guard")
end)
return Guard
end
t95._skips = function(p685, p686)
local __SenaV4EggRuntime = genv.__SenaV4EggRuntime
if __SenaV4EggRuntime then
if __SenaV4EggRuntime.instantPhase == "priming" then
return true
end
if __SenaV4EggRuntime.enabled or __SenaV4EggRuntime.running then
return true
end
end
local __SenaV4PlayerSteal = genv.__SenaV4PlayerSteal
if __SenaV4PlayerSteal and __SenaV4PlayerSteal.running then
return true
end
if not p686 then
return false
end
local v2454 = p685:_record(p686)
return v2454 ~= nil and tostring(v2454.AreaId) == "Forest"
end
t95._freeze = function(p687, p688)
local v2455 = p687:_character()
local Humanoid = v2455 and v2455:FindFirstChildOfClass("Humanoid")
local CurrentCamera = workspace.CurrentCamera
local CFrame_2 = CurrentCamera and CurrentCamera.CFrame
local CameraType = CurrentCamera and CurrentCamera.CameraType
local clone
pcall(function()
v2455.Archivable = true
clone = v2455:Clone()
if p688 then
pcall(function()
clone:PivotTo(p688)
end)
end
clone.Name = "SenaAntiHitGhost"
for _, descendant in ipairs(clone:GetDescendants()) do
if descendant:IsA("LuaSourceContainer") or descendant:IsA("Sound") then
descendant:Destroy()
elseif descendant:IsA("BasePart") then
descendant.CanCollide = false
descendant.Anchored = true
end
end
clone.Parent = workspace
for _, descendant in ipairs(v2455:GetDescendants()) do
if descendant:IsA("BasePart") and descendant.Name ~= "HumanoidRootPart" then
descendant.LocalTransparencyModifier = 1
end
if descendant:IsA("Trail") then
descendant.Enabled = false
end
end
if CurrentCamera then
CurrentCamera.CameraType = Enum.CameraType.Scriptable
CurrentCamera.CFrame = CFrame_2
end
end)
local t96 = {}
pcall(function()
for _, descendant in ipairs(v2455:GetDescendants()) do
if descendant:IsA("BasePart") and descendant.Name ~= "HumanoidRootPart" then
t96[#t96 + 1] = descendant
end
end
end)
local function v2468()
if CurrentCamera then
CurrentCamera.CameraType = Enum.CameraType.Scriptable
CurrentCamera.CFrame = CFrame_2
end
for _, v in ipairs(t96) do
if v.Parent then
v.LocalTransparencyModifier = 1
end
end
end
local function v2471(p689)
pcall(function()
if clone then
clone:Destroy()
end
for _, descendant in ipairs(v2455:GetDescendants()) do
if descendant:IsA("BasePart") then
descendant.LocalTransparencyModifier = 0
end
if descendant:IsA("Trail") then
descendant.Enabled = true
end
end
if CurrentCamera then
CurrentCamera.CameraType = CameraType ~= Enum.CameraType.Scriptable and CameraType or Enum.CameraType.Custom
if Humanoid then
CurrentCamera.CameraSubject = Humanoid
end
if p689 then
CurrentCamera.CFrame = CFrame_2
end
end
end)
end
return v2471, v2468
end
t95.shield = function(p690, p691)
if not p690.enabled or p690.running then
return false
end
if p690:_skips(p691) then
return false
end
local v2474 = p690:_root()
if not v2474 then
return false
end
p690.running = true
local CFrame_2 = v2474.CFrame
local v2476 = p690:_guardFor(p691)
local function v2477()
local v2478 = p690:_root()
if not v2478 then
return false
end
v2478.CFrame = cFrame
v2478.AssemblyLinearVelocity = Vector3.zero
v2478.AssemblyAngularVelocity = Vector3.zero
return true
end
v2477()
local v2479, v2480 = p690:_freeze(CFrame_2)
local n46 = 1
local u2482 = false
pcall(function()
local now = os.clock()
local v2484 = false
while (os.clock() - now < 0.9 or v2484 and os.clock() - now < 1.6 and v2476 and (v2476:GetAttribute("GuardState") == "Waking" or v2476:GetAttribute("GuardState") == "Chasing")) and v2477() do
v2480()
n46 += 1
local attribute = v2476 and v2476:GetAttribute("GuardState")
if attribute == "Waking" or attribute == "Chasing" then
v2484 = true
RunService2.Heartbeat:Wait()
elseif v2484 and attribute == "Sleeping" and os.clock() - now > 0.2 then
u2482 = true
break
else
RunService2.Heartbeat:Wait()
end
end
end)
v2479(true)
p690.lastResult = (u2482 and "Guard slept" or "Held") .. " (" .. n46 .. " writes)"
p690.running = false
return true
end
t95._check = function(p692, p693)
if not p692.enabled then
p692.wasHolding = false
return
end
local Uid
if type(p693) == "table" and p693.IsCarrying and p693.Uid then
Uid = p693.Uid
else
Uid = p692:_carriedUid()
end
local wasHolding = Uid ~= nil
if wasHolding and not p692.wasHolding and not p692.running and not p692:_skips(Uid) then
task.spawn(function()
pcall(function()
p692:shield(Uid)
end)
end)
end
p692.wasHolding = wasHolding
end
t95.setEnabled = function(p694, p695)
p694.enabled = p695 == true
if p694.enabled then
p694.wasHolding = p694:_carriedUid() ~= nil
end
if not p694.watcher then
p694.watcher = true
task.spawn(function()
while not p694.destroyed do
if not p694.enabled or p694.running then
task.wait(0.5)
else
pcall(function()
p694:_check()
end)
task.wait(0.15)
end
end
end)
end
if p694.connection then
return
end
pcall(function()
local EggState2 = require(ReplicatedStorage2.Client.EggState)
if EggState2 and EggState2.CarryChanged then
p694.connection = EggState2.CarryChanged:Connect(function(p696)
task.defer(function()
p694:_check(p696)
end)
end)
end
end)
end
t95.destroy = function(p697)
p697.destroyed = true
p697.enabled = false
if p697.connection then
pcall(function()
p697.connection:Disconnect()
end)
p697.connection = nil
end
end
return t95
end
local v2489 = v2429().new()
genv.__SenaV4AntiHitGuard = v2489
if senaV4Config.AntiHitGuard then
v2489:setEnabled(true)
end
genv.__SenaV4PlayerSteal = v2374
end
do
local t97 = {
at = 0,
value = false
}
genv.__SenaV4StealWantsCharacter = function()
local __SenaV4PlayerSteal = genv.__SenaV4PlayerSteal
if __SenaV4PlayerSteal and __SenaV4PlayerSteal.running then
return true
end
local __SenaV4EggRuntime = genv.__SenaV4EggRuntime
if not __SenaV4EggRuntime or not __SenaV4EggRuntime.enabled or __SenaV4EggRuntime.destroyed then
return false
end
if __SenaV4EggRuntime.running or __SenaV4EggRuntime.activeTween and not __SenaV4EggRuntime.activeTween.sharedTravel or __SenaV4EggRuntime.carry and __SenaV4EggRuntime.carry.active then
return true
end
local now = os.clock()
if now - t97.at < 0.5 then
return t97.value
end
t97.at = now
local ok, result = pcall(function()
return __SenaV4EggRuntime:_wallOpen() and __SenaV4EggRuntime:_chooseTarget() or nil
end)
t97.value = ok and result ~= nil
return t97.value
end
genv.__SenaV4DronesWantCharacter = function()
local __SenaV4ButterflyRuntime = genv.__SenaV4ButterflyRuntime
return __SenaV4ButterflyRuntime ~= nil and (__SenaV4ButterflyRuntime.active == true or __SenaV4ButterflyRuntime.wantsCharacter == true)
end
end
v612:setStealMode(senaV4Config.StealMode == "Semi Teleport" and "Instant" or senaV4Config.StealMode)
v612:setSpeed(senaV4Config.TweenSpeedMultiplier or 60)
if senaV4Config.StealMinValue and senaV4Config.StealMinValue > 0 then
v612:setMinValuePerSec(senaV4Config.StealMinValue)
end
if senaV4Config.StealAreas and not table.find(senaV4Config.StealAreas, "None") and #senaV4Config.StealAreas > 0 then
local t98 = {}
for _, stealArea in ipairs(senaV4Config.StealAreas) do
if stealArea ~= "None" then
table.insert(t98, stealArea)
end
end
v612:setFilter("areas", t98)
v612:setFilterEnabled("area", #t98 > 0)
end
if senaV4Config.StealRarities and not table.find(senaV4Config.StealRarities, "None") and #senaV4Config.StealRarities > 0 then
local t99 = {}
for _, stealRarity in ipairs(senaV4Config.StealRarities) do
if stealRarity ~= "None" then
table.insert(t99, stealRarity)
end
end
v612:setFilter("rarities", t99)
v612:setFilterEnabled("rarity", #t99 > 0)
end
if senaV4Config.StealNamesFilter and not table.find(senaV4Config.StealNamesFilter, "None") and #senaV4Config.StealNamesFilter > 0 then
local t100 = {}
for _, v in ipairs(senaV4Config.StealNamesFilter) do
if v ~= "None" then
table.insert(t100, v)
end
end
v612:setFilter("names", t100)
v612:setFilterEnabled("name", #t100 > 0)
end
do
genv.__SenaV4EggRuntimeCleanup = function()
if v612 then
pcall(v612.destroy, v612)
end
if v613 then
pcall(v613.destroy, v613)
end
if genv.__SenaV4EggRuntime == v612 then
genv.__SenaV4EggRuntime = nil
end
if genv.__SenaV4TreadmillManager == v613 then
genv.__SenaV4TreadmillManager = nil
end
end
genv.__SenaV4AntiGuardCleanup = function()
if v614 then
pcall(v614.destroy, v614)
end
if v615 then
pcall(v615.destroy, v615)
end
if genv.__SenaV4AntiGuard == v614 then
genv.__SenaV4AntiGuard = nil
end
if genv.__SenaV4GodMode == v615 then
genv.__SenaV4GodMode = nil
end
end
end
do
local function v2506()
return getgenv and getgenv() or _G
end
local function v2507()
if type(getconnections) == "function" then
return getconnections
end
if type(get_signal_cons) == "function" then
return get_signal_cons
end
return nil
end
local function v2508(p698)
local LocalPlayer2 = Players.LocalPlayer
if not LocalPlayer2 then
p698.antiAfkStatus = "LocalPlayer unavailable"
return false
end
local v2510 = v2507()
if not v2510 then
p698.antiAfkStatus = "Native Idled connection API unavailable"
return false
end
local ok, result = pcall(v2510, LocalPlayer2.Idled)
if not ok or type(result) ~= "table" then
p698.antiAfkStatus = "Idled scan unavailable"
return false
end
local lastDisabledIdleConnections = 0
for _, v in ipairs(result) do
local v2516 = false
if type(v) == "table" or type(v) == "userdata" then
if type(v.Disable) == "function" then
v2516 = pcall(v.Disable, v)
elseif type(v.Disconnect) == "function" then
v2516 = pcall(v.Disconnect, v)
end
end
if v2516 then
lastDisabledIdleConnections += 1
end
end
p698.scanRuns += 1
p698.lastScanAt = os.clock()
p698.lastDisabledIdleConnections = lastDisabledIdleConnections
p698.disabledIdleConnections += lastDisabledIdleConnections
p698.antiAfkStatus = lastDisabledIdleConnections > 0 and "Anti-AFK disabled " .. tostring(lastDisabledIdleConnections) .. " Idled connection(s)" or "Anti-AFK active; Idled connections clear"
return true
end
local t101 = {
install = function()
local v2518 = v2506()
local value = rawget(v2518, "__FyyStealAnEggStartupProtectionLiteV2")
if type(value) == "table" and value.installed then
value.installRuns += 1
v2508(value)
value.status = value.antiAfkStatus
return value
end
local t102 = {
installRuns = 1,
scanRuns = 0,
disabledIdleConnections = 0,
lastDisabledIdleConnections = 0,
lastScanAt = 0,
installed = false,
mode = "native-idled-disabler",
integrityPatcherInstalled = false,
networkFilterInstalled = false,
namecallHookInstalled = false
}
v2518.__FyyStealAnEggStartupProtectionLiteV2 = t102
local LocalPlayer2 = Players.LocalPlayer
if not LocalPlayer2 then
t102.antiAfkInstalled = false
t102.antiAfkStatus = "LocalPlayer unavailable"
t102.status = t102.antiAfkStatus
t102.installed = true
return t102
end
t102.antiAfkInstalled = v2508(t102)
t102.idledConnection = LocalPlayer2.Idled:Connect(function()
v2508(t102)
end)
t102.characterConnection = LocalPlayer2.CharacterAdded:Connect(function()
task.delay(1, function()
if t102.installed then
v2508(t102)
end
end)
end)
t102.installed = true
t102.status = t102.antiAfkStatus
local function v2522()
while t102.installed and v2518.__FyyStealAnEggStartupProtectionLiteV2 == t102 do
task.wait(60)
if t102.installed and v2518.__FyyStealAnEggStartupProtectionLiteV2 == t102 then
v2508(t102)
t102.status = t102.antiAfkStatus
end
end
end
task.spawn(v2522)
return t102
end,
uninstall = function()
local value = rawget(v2506(), "__FyyStealAnEggStartupProtectionLiteV2")
if type(value) == "table" then
value.installed = false
if value.idledConnection and typeof(value.idledConnection.Disconnect) == "function" then
pcall(value.idledConnection.Disconnect, value.idledConnection)
value.idledConnection = nil
end
if value.characterConnection and typeof(value.characterConnection.Disconnect) == "function" then
pcall(value.characterConnection.Disconnect, value.characterConnection)
value.characterConnection = nil
end
end
end
}
local function v2524()
local genv2 = getgenv and getgenv() or _G
genv2.__SenaV4AntiAfkGeneration = (genv2.__SenaV4AntiAfkGeneration or 0) + 1
genv2.__SenaV4AntiAfkEnabled = senaV4Config.AntiAFK
genv2.__SenaV4StartupProtection = t101
genv2.__SenaV4SetAntiAfkEnabled = function(p699)
genv2.__SenaV4AntiAfkEnabled = p699 == true
if p699 then
t101.install()
else
t101.uninstall()
end
end
if senaV4Config.AntiAFK then
genv2.__SenaV4SetAntiAfkEnabled(true)
end
end
v2524()
end
local v2526 = senaV4Config
local t103 = {
TeleportService = TeleportService or game:GetService("TeleportService"),
LP = LocalPlayer or Players.LocalPlayer,
Players = Players
}
local function v2528()
pcall(function()
if writefile then
pcall(function()
writefile("autoexec/Sena_StealAnEgg.lua", [[repeat task.wait(0.5) until game:IsLoaded()
task.wait(1.5)
if getgenv then getgenv().SNE_AutoExecute = true end
loadstring(game:HttpGet("https://senahub.xyz/raw/saev2"))()
]])
end)
pcall(function()
writefile("autoexecute/Sena_StealAnEgg.lua", [[repeat task.wait(0.5) until game:IsLoaded()
task.wait(1.5)
if getgenv then getgenv().SNE_AutoExecute = true end
loadstring(game:HttpGet("https://senahub.xyz/raw/saev2"))()
]])
end)
end
end)
local queue_on_teleport_ = queue_on_teleport or syn and syn.queue_on_teleport or fluxus and fluxus.queue_on_teleport
if queue_on_teleport_ then
pcall(function()
queue_on_teleport_([[repeat task.wait(0.5) until game:IsLoaded()
task.wait(1.5)
if getgenv then getgenv().SNE_AutoExecute = true end
loadstring(game:HttpGet("https://senahub.xyz/raw/saev2"))()
]])
end)
end
end
local function v2530()
pcall(function()
if delfile then
pcall(function()
delfile("autoexec/Sena_StealAnEgg.lua")
end)
pcall(function()
delfile("autoexecute/Sena_StealAnEgg.lua")
end)
elseif writefile then
pcall(function()
writefile("autoexec/Sena_StealAnEgg.lua", "")
end)
pcall(function()
writefile("autoexecute/Sena_StealAnEgg.lua", "")
end)
end
end)
end
local u2531 = false
local function v2532()
if u2531 then
return
end
u2531 = true
if v2526.autoExecute or getgenv and getgenv().SNE_AutoExecute then
pcall(v2528)
end
task.wait(3)
local TeleportService2 = t103.TeleportService or game:GetService("TeleportService")
local PlaceId = game.PlaceId
local JobId = game.JobId
while true do
pcall(function()
if JobId then
if not (#JobId > 0) then
TeleportService2:Teleport(PlaceId, t103.LP)
return
end
TeleportService2:TeleportToPlaceInstance(PlaceId, JobId, t103.LP)
else
TeleportService2:Teleport(PlaceId, t103.LP)
end
end)
task.wait(6)
end
end
pcall(function()
game:GetService("GuiService").ErrorMessageChanged:Connect(function(p700)
if v2526.autoReconnect and p700 and #p700 > 0 then
v2532()
end
end)
end)
pcall(function()
local LP = t103.LP or LocalPlayer
LP = LP or Players.LocalPlayer
if LP and LP.OnTeleport then
LP.OnTeleport:Connect(function()
if v2526.autoExecute or getgenv and getgenv().SNE_AutoExecute then
pcall(v2528)
end
end)
end
end)
task.spawn(function()
while true do
task.wait(2)
if v2526.autoReconnect then
pcall(function()
local RobloxPromptGui = game:GetService("CoreGui"):FindFirstChild("RobloxPromptGui")
local promptOverlay = RobloxPromptGui and RobloxPromptGui:FindFirstChild("promptOverlay")
local ErrorPrompt = promptOverlay and promptOverlay:FindFirstChild("ErrorPrompt")
if ErrorPrompt and ErrorPrompt.Visible then
v2532()
end
end)
end
end
end)
local function v2540()
local Remotes = require(ReplicatedStorage.Shared.Remotes)
local function v2542(p701, p702, p703)
local v2543 = (require(ReplicatedStorage.Shared.Save).Peek or require(ReplicatedStorage.Shared.Save).Get)()
if not v2543 or type(v2543.Inventory) ~= "table" then
return nil
end
local AssetItems = require(ReplicatedStorage.Shared.Util.AssetItems)
local Directory = require(ReplicatedStorage.Data.Assets).Directory
local t104 = {}
local ipairs_ = ipairs
local EquippedAssets = v2543.EquippedAssets or {}
for _, EquippedAsset in ipairs_(EquippedAssets) do
t104[EquippedAsset] = true
end
local t105 = {}
for k, v in pairs(v2543.Inventory) do
if not t104[k] then
local u2554
if AssetItems and type(AssetItems.Decode) == "function" then
pcall(function()
u2554 = AssetItems.Decode(v)
end)
end
u2554 = u2554 or v
if type(u2554) == "table" and not u2554.InFuse and not u2554.IsFavorite and u2554.Category then
local v2555 = Directory[u2554.Category]
local DisplayName = v2555 and v2555.Rarity and (v2555.Rarity.DisplayName or v2555.Rarity._id)
local v2557 = true
if p703 and #p703 > 0 and not table.find(p703, "All") then
v2557 = DisplayName and table.find(p703, DisplayName) ~= nil
end
local v2558 = true
if p701 and p702 and #p702 > 0 and not table.find(p702, "All") then
v2558 = table.find(p702, u2554.Category) ~= nil or v2555 and table.find(p702, v2555.DisplayName) ~= nil
end
if v2557 and v2558 then
t105[u2554.Category] = t105[u2554.Category] or {}
table.insert(t105[u2554.Category], {
uid = k,
d = u2554
})
end
end
end
end
for _, v in pairs(t105) do
if not (#v >= 3) then
continue
end
return {
v[1].uid,
v[2].uid,
v[3].uid
}
end
return nil
end
local t106 = {
equipBest = function()
pcall(function()
Remotes.Haul.WearBest:InvokeServer()
end)
end,
claimOffline = function()
local ok, result = pcall(function()
return Remotes.AwayEarnings.FetchSummary:InvokeServer()
end)
if ok and type(result) == "table" then
if (result.ClaimableAmount or 0) > 0 then
pcall(function()
Remotes.AwayEarnings.AskCollect:InvokeServer({
Kind = "Claim"
})
end)
end
end
end,
favoriteSelected = function()
local v2564 = (require(ReplicatedStorage.Shared.Save).Peek or require(ReplicatedStorage.Shared.Save).Get)()
if not v2564 or type(v2564.Inventory) ~= "table" then
return 0
end
local AssetItems = require(ReplicatedStorage.Shared.Util.AssetItems)
local Directory = require(ReplicatedStorage.Data.Assets).Directory
local n47 = 0
for k, v in pairs(v2564.Inventory) do
local u2570
if AssetItems and type(AssetItems.Decode) == "function" then
pcall(function()
u2570 = AssetItems.Decode(v)
end)
end
u2570 = u2570 or v
if type(u2570) == "table" then
if not u2570.IsFavorite and u2570.Category then
local v2571 = Directory[u2570.Category]
local DisplayName = v2571 and v2571.Rarity and (v2571.Rarity.DisplayName or v2571.Rarity._id)
local v2573 = false
if senaV4Config.FavMode == "Species" then
local FavSpecies = senaV4Config.FavSpecies or {}
if table.find(FavSpecies, "All") or table.find(FavSpecies, u2570.Category) or v2571 and table.find(FavSpecies, v2571.DisplayName) then
v2573 = true
end
else
local FavRarities = senaV4Config.FavRarities or {}
if table.find(FavRarities, "All") or DisplayName and table.find(FavRarities, DisplayName) then
v2573 = true
end
end
if v2573 then
pcall(function()
Remotes.PetSatchel.WriteFavourite:FireServer(k, true)
end)
n47 += 1
if n47 % 10 == 0 then
task.wait(0.05)
end
end
end
end
end
return n47
end,
unfavoriteAll = function()
local v2576 = (require(ReplicatedStorage.Shared.Save).Peek or require(ReplicatedStorage.Shared.Save).Get)()
if not v2576 or type(v2576.Inventory) ~= "table" then
return 0
end
local n48 = 0
for k, v in pairs(v2576.Inventory) do
local v2580 = v
if type(v2580) == "table" and v2580.IsFavorite then
pcall(function()
Remotes.PetSatchel.WriteFavourite:FireServer(k, false)
end)
n48 += 1
if n48 % 10 == 0 then
task.wait(0.05)
end
end
end
return n48
end,
fuseOnePair = function()
local v2581 = (require(ReplicatedStorage.Shared.Save).Peek or require(ReplicatedStorage.Shared.Save).Get)()
if not v2581 then
return false
end
if v2581.FusionLocked then
return false, "Fusion locked"
end
local v2582 = v2542(senaV4Config.FuseSelectedOnly, senaV4Config.FuseSpecies, senaV4Config.FuseRarities)
if not v2582 then
return false, "No eligible group of 3"
end
pcall(function()
Remotes.Fusery.ConfirmBriefing:InvokeServer()
end)
for _, v in ipairs(v2582) do
local ok, result = pcall(function()
return Remotes.Fusery.LoadPet:InvokeServer(v)
end)
if ok and result then
task.wait(0.02)
continue
end
return false, "Failed to load pet"
end
local ok, result = pcall(function()
return Remotes.Fusery.BeginFuse:InvokeServer()
end)
if not ok or not result then
return false, "Failed to begin fuse"
end
task.wait(0.06)
pcall(function()
Remotes.Fusery.FinishReveal:InvokeServer()
end)
return true
end
}
task.spawn(function()
local n49 = 0
while v16() do
local now = os.clock()
if senaV4Config.AutoEquipBest and now - n49 > 6 then
n49 = now
pcall(t106.equipBest)
end
if senaV4Config.AutoClaimOffline then
pcall(t106.claimOffline)
end
if senaV4Config.AutoFavorite then
pcall(t106.favoriteSelected)
end
if senaV4Config.AutoFusePets then
pcall(t106.fuseOnePair)
end
task.wait(2.5)
end
end)
return t106
end
genv.__SenaV4PetBarn = v2540()
do
local function v2591()
local Remotes = require(ReplicatedStorage.Shared.Remotes)
local t107 = {
upgradeBase = function()
local v2594 = (require(ReplicatedStorage.Shared.Save).Peek or require(ReplicatedStorage.Shared.Save).Get)()
if not v2594 then
return false
end
local v2595 = tonumber(v2594.BaseUpgradeLevel or 0) or 0
local Bases = require(ReplicatedStorage.Data.Bases)
local BASES = Bases and Bases.BASES and Bases.BASES[v2595 + 1]
if not BASES then
return false, "Max level"
end
local v2598 = tonumber(v2594.Money or 0) or 0
if v2598 < (BASES.Cost or 0) then
return false, "Not enough money"
end
local ok, result = pcall(function()
return Remotes.Homestead.AskBaseTierRaise:InvokeServer()
end)
local v2601 = ok and result == true
return v2601, result
end,
claimAlmanac = function()
local ok, result = pcall(function()
return Remotes.Codex.AskRedeemAll:InvokeServer()
end)
return ok, result
end
}
task.spawn(function()
while v16() do
if senaV4Config.AutoBaseUpgrade then
pcall(t107.upgradeBase)
end
if senaV4Config.AutoClaimAlmanac then
pcall(t107.claimAlmanac)
end
task.wait(3)
end
end)
return t107
end
genv.__SenaV4Upgrades = v2591()
end
local function v2604()
local t108 = {
noclipConn = nil
}
t108.setNoclip = function(p704)
senaV4Config.Noclip = p704 == true
if t108.noclipConn then
pcall(function()
t108.noclipConn:Disconnect()
end)
t108.noclipConn = nil
end
if senaV4Config.Noclip then
t108.noclipConn = RunService.Stepped:Connect(function()
if not senaV4Config.Noclip then
return
end
local Character = LocalPlayer.Character
if not Character then
return
end
for _, descendant in ipairs(Character:GetDescendants()) do
if descendant:IsA("BasePart") and descendant.CanCollide then
descendant:SetAttribute("SenaNoclip", true)
descendant.CanCollide = false
end
end
end)
return
end
local Character = LocalPlayer.Character
if Character then
for _, descendant in ipairs(Character:GetDescendants()) do
if descendant:IsA("BasePart") and descendant:GetAttribute("SenaNoclip") then
descendant.CanCollide = true
descendant:SetAttribute("SenaNoclip", nil)
end
end
end
end
t108.waypointList = function()
local t109 = { "Respawn Point" }
local v2613 = v14()
local Machines = v2613 and v2613:FindFirstChild("Machines")
if Machines and Machines:FindFirstChild("FuseMachine") then
table.insert(t109, "Fuse Machine")
end
local Areas = v2613 and v2613:FindFirstChild("Areas")
local GuardAreas = Areas and Areas:FindFirstChild("GuardAreas")
if GuardAreas then
for _, child in ipairs(GuardAreas:GetChildren()) do
table.insert(t109, child.Name)
end
end
return t109
end
t108.teleportWaypoint = function(p705)
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return false
end
local Position
local v2622 = v14()
if p705 == "Respawn Point" then
pcall(function()
local PlotState2 = require(ReplicatedStorage.Client.PlotState)
local ResolvePlot = PlotState2.ResolvePlot and PlotState2.ResolvePlot()
if ResolvePlot and ResolvePlot.RespawnPointCFrame then
Position = ResolvePlot.RespawnPointCFrame.Position
elseif ResolvePlot and ResolvePlot.Model then
if ResolvePlot.Model:FindFirstChild("Spawn") then
Position = ResolvePlot.Model.Spawn.Position
end
end
end)
elseif p705 == "Fuse Machine" then
local Machines = v2622 and v2622:FindFirstChild("Machines")
local FuseMachine = Machines and Machines:FindFirstChild("FuseMachine")
local Machine = FuseMachine and (FuseMachine:FindFirstChild("Machine") or FuseMachine.PrimaryPart)
if Machine then
Position = Machine.Position
end
else
local Areas = v2622 and v2622:FindFirstChild("Areas")
local GuardAreas = Areas and Areas:FindFirstChild("GuardAreas")
local v2630 = GuardAreas and GuardAreas:FindFirstChild(p705)
local Guard = v2630 and v2630:FindFirstChild("Guard")
if Guard and Guard:IsA("BasePart") then
Position = Guard.Position
end
end
if not Position then
return false
end
HumanoidRootPart.CFrame = cFrameNew(Position + Vector3.new(0, 4, 0))
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
return true
end
t108.setBottingMode = function(p706)
senaV4Config.BottingMode = p706 == true
local __SenaV4BottingOverlay = genv.__SenaV4BottingOverlay
if __SenaV4BottingOverlay and __SenaV4BottingOverlay.Parent then
pcall(function()
__SenaV4BottingOverlay:Destroy()
end)
end
genv.__SenaV4BottingOverlay = nil
if not senaV4Config.BottingMode then
pcall(function()
RunService:Set3dRenderingEnabled(true)
end)
return
end
pcall(function()
RunService:Set3dRenderingEnabled(false)
end)
local CoreGui
pcall(function()
CoreGui = game:GetService("CoreGui")
end)
CoreGui = CoreGui or LocalPlayer:FindFirstChildOfClass("PlayerGui")
if not CoreGui then
return
end
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "SenaBottingOverlay"
ScreenGui.ResetOnSpawn = false
ScreenGui.IgnoreGuiInset = true
ScreenGui.DisplayOrder = -1
ScreenGui.Parent = CoreGui
local Frame = Instance.new("Frame")
Frame.Name = "Blackscreen"
Frame.Size = UDim2.new(1, 0, 1, 0)
Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
Frame.BorderSizePixel = 0
Frame.Active = false
Frame.Parent = ScreenGui
genv.__SenaV4BottingOverlay = ScreenGui
end
task.spawn(function()
while v16() do
if senaV4Config.AntiCutscene then
pcall(function()
local PlayerGui = LocalPlayer:FindFirstChild("PlayerGui")
if PlayerGui then
for _, child in ipairs(PlayerGui:GetChildren()) do
if child:IsA("ScreenGui") and (string.find(string.lower(child.Name), "cutscene") or child.Name == "Intro") and child.Enabled then
child.Enabled = false
end
end
end
end)
end
task.wait(0.2)
end
end)
return t108
end
genv.__SenaV4Roaming = v2604()
do
local function v2639()
local t110 = {
snapAt = 0,
snap = nil,
status = "Idle",
lastBuy = 0,
doneLost = {},
active = false,
token = 0
}
local function v2641()
return require(ReplicatedStorage.Shared.Remotes).Scramble
end
t110.snapshot = function(p707)
local now = os.clock()
if not p707 and t110.snap and now - t110.snapAt < 1.5 then
return t110.snap
end
local ok, snap = pcall(function()
return v2641().Request:InvokeServer("Snapshot")
end)
if ok and type(snap) == "table" and snap.State then
t110.snap = snap
t110.snapAt = now
end
return t110.snap
end
t110.live = function()
local v2645 = t110.snapshot()
if not v2645 then
return false
end
local v2646 = v2645.Ready == true and v2645.Enabled == true and v2645.WorldReady == true
if v2646 then
v2646 = workspace:GetServerTimeNow() < (v2645.EventEndsAt or 0)
end
return v2646
end
t110.windowActive = function()
local v2647 = t110.snapshot()
return v2647 and v2647.Window and v2647.Window.Active == true or false
end
t110.progress = function()
local v2648 = t110.snapshot()
local State = v2648 and v2648.State
if State then
return State.Samples or 0, State.TotalParts or 0, State.DroneParts or 0
end
return 0, 0, 0
end
t110.buyTick = function()
local ScrambleBuyList = senaV4Config.ScrambleBuyList
if not ScrambleBuyList or #ScrambleBuyList == 0 then
return
end
if os.clock() - t110.lastBuy < 2 then
return
end
local v2651 = t110.snapshot(true)
if not v2651 or not v2651.State or not v2651.Shop then
return
end
local Samples = v2651.State.Samples or 0
for _, v in pairs(v2651.Shop) do
if not senaV4Config.ScrambleAutoBuy then
return
end
local v2655 = tostring(v.Label)
local v2656 = false
local v2657, v2658, v2659 = ipairs(ScrambleBuyList)
local v2660 = geniter(v2657, v2658, v2659)
local v2661 = table.pack(v2660())
if v2661[1] then
local v2662 = v2661[3]
while true do
if tostring(v2662) == v2655 then
v2656 = true
break
end
local v2663 = table.pack(v2660())
if not v2663[1] then
break
end
v2662 = v2663[3]
end
if not v2656 then
continue
end
if not ((v.Price or 0) <= Samples) then
continue
end
local v2664 = (v2651.State.ShopPurchases or {})[v.Id]
local Count = v2664 and v2664.Period == v2651.ShopPeriod and (v2664.Count or 0) or 0
if not v.PurchaseLimit then
t110.lastBuy = os.clock()
pcall(function()
v2641().Request:InvokeServer("Shop", v.Id, {
Quote = v.Quote,
Sequence = v2651.State.ShopSequence
})
end)
t110.status = "Bought " .. v2655
t110.snapshot(true)
return
end
if not (Count + (v.Quantity or 1) <= v.PurchaseLimit) then
continue
end
t110.lastBuy = os.clock()
pcall(function()
v2641().Request:InvokeServer("Shop", v.Id, {
Quote = v.Quote,
Sequence = v2651.State.ShopSequence
})
end)
t110.status = "Bought " .. v2655
t110.snapshot(true)
return
end
end
end
task.spawn(function()
while v16() do
t110.wantsCharacter = false
t110.active = false
if senaV4Config.ScrambleAutoBuy then
pcall(function()
if t110.live() then
t110.buyTick()
else
t110.status = "Event not active"
end
end)
end
task.wait(senaV4Config.ScrambleAutoBuy and 0.5 or 1)
end
end)
return t110
end
genv.__SenaV4ScrambleRuntime = v2639()
end
local function v2666()
local t111 = {
status = "Idle",
active = false,
wantsCharacter = false,
lastSwing = 0,
retryAt = {},
cards = {},
snap = {}
}
local t112 = {
"Green",
"Blue",
"Purple",
"Golden"
}
local t113 = {
Green = 1,
Blue = 2,
Purple = 3,
Golden = 4
}
local t114 = {
TITLES = {
auto_steal = "Auto Steal",
mech_boss = "Mech Boss",
auto_place = "Auto Place"
},
blocker = function()
if LocalPlayer:GetAttribute("InScrambleArena") == true then
return "mech_boss"
end
if senaV4Config.ScrambleBossAuto == true then
local ScrambleArena = workspace:FindFirstChild("ScrambleArena")
if workspace:FindFirstChild("ScrambleArenaPortal") or ScrambleArena and ScrambleArena:GetAttribute("Phase") ~= "Defeated" then
return "mech_boss"
end
end
local __SenaV4StealWantsCharacter = genv.__SenaV4StealWantsCharacter
if __SenaV4StealWantsCharacter and __SenaV4StealWantsCharacter() then
return "auto_steal"
end
return nil
end,
holder = function()
if senaV4Config.IsPlacing == true then
return "auto_place"
end
return nil
end
}
local function v2673(p708, ...)
for _, v in ipairs({ ... }) do
if not p708 then
return nil
end
p708 = p708:FindFirstChild(v)
end
return p708
end
local u2676
local function v2677()
if u2676 then
return u2676
end
local function v2678(p709)
if not p709 then
return nil
end
local ok, result = pcall(require, p709)
return ok and result or nil
end
local t115 = {
Remotes = v2678(v2673(ReplicatedStorage, "Shared", "Remotes")),
Save = v2678(v2673(ReplicatedStorage, "Shared", "Save")),
Catalog = v2678(v2673(ReplicatedStorage, "Shared", "Modules", "ButterflyCatalog")),
Flags = v2678(v2673(ReplicatedStorage, "Shared", "Flags", "ButterflyFlags")),
Swarm = v2678(v2673(ReplicatedStorage, "Controllers", "Game", "AdminAbuseClientController", "Events", "ButterflyBloom", "Swarm"))
}
if not t115.Remotes or not t115.Save or not t115.Catalog then
return nil
end
u2676 = t115
return t115
end
local function v2682(p710, p711)
local v2683 = v2677()
local Flags = v2683 and v2683.Flags and v2683.Flags[p710]
if not Flags then
return p711
end
local ok, result = pcall(function()
return Flags:Get()
end)
if not ok or result == nil then
return p711
end
return result
end
local function v2687(p712, p713, ...)
local v2688 = v2677()
local v2689 = v2688 and v2688.Remotes[p712] and v2688.Remotes[p712][p713]
if not v2689 then
return false, p712 .. "." .. p713 .. " missing"
end
local v2690 = table.pack(pcall(v2689.InvokeServer, v2689, ...))
if v2690[1] then
return v2690[2] == true, type(v2690[3]) == "string" and v2690[3] or nil, v2690[2]
end
return false, tostring(v2690[2])
end
local function v2691(p714)
return (t111.retryAt[p714] or 0) <= os.clock()
end
local function v2692(p715)
t111.retryAt[p715] = os.clock() + 5
end
local function v2693()
local Character = LocalPlayer.Character
return Character and Character:FindFirstChild("HumanoidRootPart") or nil
end
t111.bloomLeft = function()
local v2695 = v2677()
local attribute = workspace:GetAttribute(v2695 and v2695.Catalog.EndsAtAttribute or "ButterflyBloomEndsAt")
if typeof(attribute) == "number" then
return math.max(0, attribute - workspace:GetServerTimeNow())
end
return 0
end
t111.nextBloom = function()
local v2697 = tonumber(v2682("IntervalSeconds", 1800)) or 1800
local v2698 = tonumber(v2682("OffsetSeconds", 900)) or 900
local v2699 = tonumber(v2682("DurationSeconds", 300)) or 300
if v2697 <= 0 then
return nil
end
local serverTimeNow = workspace:GetServerTimeNow()
local v2701 = v2677()
local attribute = workspace:GetAttribute(v2701 and v2701.Catalog.EndsAtAttribute or "ButterflyBloomEndsAt")
local v2703 = typeof(attribute) == "number" and attribute - v2699 or math.floor((serverTimeNow - v2698) / v2697) * v2697 + v2698
local n50 = 0
while v2703 <= serverTimeNow and n50 < 64 do
v2703 += v2697
n50 += 1
end
return v2703 > serverTimeNow and v2703 - serverTimeNow or nil
end
local function v2705(p716)
if not p716 then
return nil
end
for _, child in ipairs(p716:GetChildren()) do
if child:IsA("Tool") and child:GetAttribute("ButterflyNet") == true then
return child
end
end
return nil
end
local u2708
t111.tiers = function()
if u2708 then
return u2708
end
local v2709 = v2677()
if not v2709 then
return nil
end
local t116 = {}
for i, v in ipairs(t112) do
local Tiers = v2709.Catalog.Tiers and v2709.Catalog.Tiers[v]
t116[v] = {
name = (Tiers and tostring(Tiers.DisplayName) or v):gsub("%s*Butterfly$", ""),
color = Tiers and typeof(Tiers.Color) == "Color3" and Tiers.Color or Color3.new(1, 1, 1),
trade = i < 4 and (tonumber(v2682(("%sTo%sCost"):format(v, t112[i + 1]), 0)) or 0) or 0,
essence = tonumber(v2682("Essence" .. v, 0)) or 0
}
end
u2708 = t116
return t116
end
t111.snapshot = function()
local v2714 = v2677()
local snap = t111.snap
if not v2714 then
return snap
end
snap.left = t111.bloomLeft()
snap.active = snap.left > 0
snap.enabled = v2682("Enabled", true) ~= false
snap.nextIn = not snap.active and t111.nextBloom() or nil
local ok, result = pcall(v2714.Save.Peek)
local v2718 = ok and result or nil
local Butterflies = v2718 and v2718.Butterflies
snap.net = type(Butterflies) == "table" and Butterflies.NetClaimed == true
snap.holding = v2705(LocalPlayer.Character) ~= nil
snap.inBag = v2705(LocalPlayer:FindFirstChildOfClass("Backpack")) ~= nil
snap.counts = snap.counts or {}
for _, v in ipairs(t112) do
snap.counts[v] = type(Butterflies) == "table" and Butterflies.Counts and tonumber(Butterflies.Counts[v]) or 0
end
snap.essence = type(Butterflies) == "table" and tonumber(Butterflies.Essence) or 0
snap.caught = type(Butterflies) == "table" and tonumber(Butterflies.TotalCaught) or 0
snap.treeUnlocked = LocalPlayer:GetAttribute("EnchantedTreeUnlocked") == true
return snap
end
t111.smartNext = function(p717)
local v2722 = t111.tiers()
if not v2722 or not p717 then
return nil
end
for i = 3, 1, -1 do
local v2724 = t112[i]
local v2725 = t112[i + 1]
local trade = v2722[v2724].trade
if not (trade > 0) then
continue
end
if not ((p717[v2725] or 0) < v2722[v2725].essence) then
continue
end
if trade <= (p717[v2724] or 0) - v2722[v2724].essence then
return v2724
end
end
return nil
end
t111.canTrade = function()
local snap = t111.snap
local v2728 = t111.tiers()
if not v2728 or not snap.counts then
return false
end
local ButterflyTradeRecipe = senaV4Config.ButterflyTradeRecipe
if ButterflyTradeRecipe == "Smart" then
return t111.smartNext(snap.counts) ~= nil
end
for i = 1, 3 do
local v2731 = t112[i]
if ButterflyTradeRecipe ~= nil and ButterflyTradeRecipe ~= "All" and ButterflyTradeRecipe ~= v2731 or not (v2728[v2731].trade > 0) then
continue
end
if v2728[v2731].trade <= (snap.counts[v2731] or 0) then
return true
end
end
return false
end
t111.canCraft = function()
local snap = t111.snap
local v2733 = t111.tiers()
if not v2733 or not snap.counts then
return false
end
for _, v in ipairs(t112) do
if not (v2733[v].essence > 0) then
continue
end
if (snap.counts[v] or 0) < v2733[v].essence then
return false, v
end
end
return true
end
local function v2736()
local ButterflyTiers = senaV4Config.ButterflyTiers
if type(ButterflyTiers) ~= "table" or #ButterflyTiers == 0 then
return nil
end
local t117 = {}
for _, ButterflyTier in ipairs(ButterflyTiers) do
t117[tostring(ButterflyTier)] = true
end
return t117
end
local function v2741()
local ButterflyBloomSwarm = workspace:FindFirstChild("ButterflyBloomSwarm")
if not ButterflyBloomSwarm then
return {}
end
local t118 = {}
for _, child in ipairs(ButterflyBloomSwarm:GetChildren()) do
if t113[child.Name] and child:IsA("Model") then
t118[#t118 + 1] = {
pos = child.PrimaryPart and child.PrimaryPart.Position or child:GetPivot().Position,
tier = child.Name
}
end
end
return t118
end
local function v2746()
local Character = LocalPlayer.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local v2749 = v2705(LocalPlayer:FindFirstChildOfClass("Backpack"))
if not Humanoid or not v2749 then
return false
end
pcall(function()
Humanoid:EquipTool(v2749)
end)
return v2705(Character) ~= nil
end
local t119 = {
part = nil,
y = 0
}
local function v2751()
if t119.part then
pcall(function()
t119.part:Destroy()
end)
end
t119.part = nil
end
local function v2752()
local v2753 = v2693()
if not v2753 then
return
end
if not t119.part or not t119.part.Parent then
local Part = Instance.new("Part")
Part.Name = "SenaBloomPad"
Part.Anchored = true
Part.CanCollide = true
Part.CanTouch = false
Part.CastShadow = false
Part.Transparency = 1
Part.Size = Vector3.new(24, 1, 24)
t119.y = v2753.Position.Y - 3.5
Part.CFrame = cFrameNew(v2753.Position.X, t119.y, v2753.Position.Z)
Part.Parent = workspace
t119.part = Part
end
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.FilterDescendantsInstances = {
LocalPlayer.Character,
t119.part
}
local hit = workspace:Raycast(v2753.Position + Vector3.new(0, 4, 0), Vector3.new(0, -80, 0), raycastParams)
if not hit then
return
end
t119.y += math.clamp(hit.Position.Y - 0.5 + 6 - t119.y, -2, 2)
t119.part.CFrame = cFrameNew(v2753.Position.X, t119.y, v2753.Position.Z)
end
local function v2757(p718, p719)
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return false
end
v2751()
local v2761 = os.clock() + (p719 or 30)
local function v2762()
if not v16() or v2761 < os.clock() then
return true
end
return t114.blocker("butterfly") ~= nil
end
if v612 and HumanoidRootPart.Position.Y < 16000 and p718.Y < 16000 and (HumanoidRootPart.Position - p718).Magnitude > 600 and not v612:_isInSafeArea(HumanoidRootPart) then
local v2763 = v612:_resolveSafeCFrame(HumanoidRootPart)
if v2763 and (v2763.Position - p718).Magnitude > 40 then
local status = t111.status
t111.status = "Heading to the safe zone first"
pcall(v232, HumanoidRootPart, Humanoid, v2763, v2762)
t111.status = status
HumanoidRootPart = v2693()
if not HumanoidRootPart or v2762() or not v612:_isInSafeArea(HumanoidRootPart) then
return false
end
end
end
pcall(v232, HumanoidRootPart, Humanoid, cFrameNew(p718) * HumanoidRootPart.CFrame.Rotation, v2762)
local v2765 = v2693()
local v2766 = v2765 ~= nil and (v2765.Position - p718).Magnitude <= 12
return v2766
end
local function v2767()
if LocalPlayer:GetAttribute("InEnchantedTree") == true then
return true
end
local v2768 = v2693()
return v2768 ~= nil and v2768.Position.Y > 16000
end
local function v2769(p720)
if not p720 or not p720:IsA("ProximityPrompt") or not p720.Enabled then
return false
end
local v2770 = tonumber(p720.HoldDuration) or 0
pcall(function()
p720:InputHoldBegin()
task.wait(v2770 > 0 and v2770 + 0.15 or 0.05)
p720:InputHoldEnd()
end)
if typeof(fireproximityprompt) == "function" then
pcall(fireproximityprompt, p720, v2770 > 0 and v2770 + 0.15 or 0)
end
return true
end
local EnchantedTreePrompt
local function v2772()
if v2767() then
return nil
end
if LocalPlayer:GetAttribute("EnchantedTreeUnlocked") ~= true then
return "Enchanted Tree is locked (finish the Wisp Event)"
end
if not EnchantedTreePrompt or not EnchantedTreePrompt.Parent then
local world = v2673(workspace, "World", "Build", "EnchantedTreeInterior", "Markers", "EnterTrigger")
EnchantedTreePrompt = world and world:FindFirstChild("EnchantedTreePrompt", true) or nil
end
local Parent = EnchantedTreePrompt and EnchantedTreePrompt.Parent
local WorldPosition = Parent and (Parent:IsA("Attachment") and Parent.WorldPosition or Parent:IsA("BasePart") and Parent.Position)
if not WorldPosition then
return "tree entrance not found"
end
if v177() then
return "night - the forest is sealed"
end
t111.status = "Flying to the Enchanted Tree"
if not v2757(WorldPosition + Vector3.new(0, 3, 0), 60) then
return "could not reach the tree entrance"
end
t111.status = "Entering the tree"
v2769(EnchantedTreePrompt)
local v2776 = os.clock() + 8
while os.clock() < v2776 and not v2767() do
task.wait(0.05)
end
if v2767() then
return nil
end
return "entering the tree failed"
end
local function v2777()
if not v2767() then
return true
end
local world = v2673(workspace, "World", "Build", "EnchantedTreeInterior", "Markers", "ExitTrigger")
if not world or typeof(firetouchinterest) ~= "function" then
return false
end
t111.status = "Leaving the tree"
local v2779 = os.clock() + 6
while os.clock() < v2779 and v2767() do
local v2780 = v2693()
if v2780 then
pcall(firetouchinterest, v2780, world, 0)
pcall(firetouchinterest, v2780, world, 1)
end
task.wait(0.3)
end
return not v2767()
end
local function v2781(p721)
local world = v2673(workspace, "World", "Machines", "ButterflyStation", p721, "Anchor")
return world and world:IsA("BasePart") and world.Position or nil, world
end
local function v2783(p722)
local v2784 = v2781(p722)
if not v2784 then
return false, p722 .. " not found"
end
local v2785 = v2693()
if v2785 and (v2785.Position - v2784).Magnitude <= 10 then
return true
end
local v2786 = v2772()
if v2786 then
return false, v2786
end
t111.status = "Walking to the " .. p722
if v2757(v2784 + Vector3.new(0, 3, 0), 15) then
return true
end
return false, "could not reach the " .. p722
end
local function v2787()
local world = v2673(workspace, "World", "Areas", "ButterflyBloom", "Bounds")
return world and world:IsA("BasePart") and world or nil
end
local function v2789()
local v2790 = v2787()
local v2791 = v2693()
if not v2790 or not v2791 or v2767() then
return false
end
local v2792 = v2790.CFrame:PointToObjectSpace(v2791.Position)
return math.abs(v2792.X) <= v2790.Size.X / 2 + 20 and math.abs(v2792.Z) <= v2790.Size.Z / 2 + 20
end
local function v2793()
local v2794 = v2787()
return v2794 and v2794.Position + Vector3.new(0, 4, 0) or nil
end
local function v2795()
local __SenaV4TreadmillManager = genv.__SenaV4TreadmillManager
if not __SenaV4TreadmillManager or __SenaV4TreadmillManager.activeTreadmill == nil then
return
end
t111.status = "Leaving the treadmill"
local v2797 = os.clock() + 5
while __SenaV4TreadmillManager.activeTreadmill ~= nil and os.clock() < v2797 do
__SenaV4TreadmillManager:_requestUnequip()
task.wait(0.3)
end
local v2798 = v2693()
if v2798 and v2798.Anchored then
pcall(function()
v2798.Anchored = false
end)
end
end
local function v2799()
local __SenaV4TreadmillManager = genv.__SenaV4TreadmillManager
if not __SenaV4TreadmillManager or __SenaV4TreadmillManager.destroyed or not __SenaV4TreadmillManager.config.idleFarm then
return false
end
if not __SenaV4TreadmillManager.busy and not __SenaV4TreadmillManager.idleRunning then
task.defer(function()
__SenaV4TreadmillManager:_startIdle()
end)
end
return true
end
local function v2801()
v2751()
if v2767() then
v2777()
end
if v2799() then
return
end
local v2802 = v2693()
if not v2802 or not v612 or v612:_isInSafeArea(v2802) then
return
end
local v2803 = v612:_resolveSafeCFrame(v2802)
if v2803 then
t111.status = "Back to the safe zone"
v2757(v2803.Position, 60)
end
end
t111.claimNet = function()
local NetStand, v2805 = v2783("NetStand")
if not NetStand then
return false, v2805
end
t111.status = "Claiming the net"
local _, v2807 = v2781("NetStand")
local Butterflies, v2809
if v2807 then
local ProximityPrompt = v2807:FindFirstChildWhichIsA("ProximityPrompt", true)
if ProximityPrompt and ProximityPrompt.Enabled then
v2769(ProximityPrompt)
local v2811 = os.clock() + 2
while true do
if not (os.clock() < v2811) then
Butterflies, v2809 = v2687("Butterflies", "AskClaimNet")
return Butterflies, v2809
end
if not t111.snapshot().net then
task.wait(0.1)
continue
end
break
end
return true
end
end
Butterflies, v2809 = v2687("Butterflies", "AskClaimNet")
return Butterflies, v2809
end
t111.tradeUp = function()
t111.snapshot()
if not t111.canTrade() then
return false, "nothing to trade up"
end
local ButterflyMachine, v2813 = v2783("ButterflyMachine")
if not ButterflyMachine then
return false, v2813
end
local v2814 = t111.tiers()
local ButterflyTradeRecipe = senaV4Config.ButterflyTradeRecipe
local n51 = 0
if ButterflyTradeRecipe == "Smart" then
local v2817 = table.clone(t111.snap.counts)
local v2818
while true do
if n51 < 50 then
local v2819 = t111.smartNext(v2817)
if not v2819 then
return true, n51
end
t111.status = "Trading up " .. v2814[v2819].name .. " for the essence"
local Butterflies
Butterflies, v2818 = v2687("Butterflies", "AskTradeUp", v2819)
if not Butterflies then
break
end
n51 += 1
v2817[v2819] = (v2817[v2819] or 0) - v2814[v2819].trade
local v2821 = t112[t113[v2819] + 1]
v2817[v2821] = (v2817[v2821] or 0) + 1
task.wait(0.12)
else
return true, n51
end
end
if n51 == 0 then
return false, v2818 or "the machine refused"
end
return true, n51
end
local v2822
for i = 3, 1, -1 do
local v2824 = t112[i]
if ButterflyTradeRecipe ~= nil and ButterflyTradeRecipe ~= "All" and ButterflyTradeRecipe ~= v2824 then
continue
end
local v2825 = t111.snap.counts[v2824] or 0
local trade = v2814[v2824].trade
local exitTo
while trade > 0 and trade <= v2825 do
t111.status = "Trading up " .. v2814[v2824].name
local Butterflies
Butterflies, v2822 = v2687("Butterflies", "AskTradeUp", v2824)
if not Butterflies then
exitTo = 1
break
end
n51 += 1
v2825 -= trade
task.wait(0.12)
end
if exitTo == 1 then
if n51 == 0 then
return false, v2822 or "the machine refused"
end
end
end
return true, n51
end
t111.craft = function()
t111.snapshot()
local v2829, v2830 = t111.canCraft()
if not v2829 then
local v2831 = t111.tiers()
return false, "need more " .. tostring(v2831 and v2831[v2830] and v2831[v2830].name or v2830)
end
local MutationShrine, v2833 = v2783("MutationShrine")
if not MutationShrine then
return false, v2833
end
local n52 = 0
local v2835
while true do
if n52 < 10 and t111.canCraft() then
t111.status = "Crafting Enchanted Essence"
local Butterflies
Butterflies, v2835 = v2687("Butterflies", "AskCraftEssence")
if not Butterflies then
break
end
n52 += 1
task.wait(0.2)
t111.snapshot()
else
return true, n52
end
end
if n52 == 0 then
return false, v2835 or "the shrine refused"
end
return true, n52
end
t111.tierOptions = function()
local v2837 = t111.tiers()
local t120 = {}
for i = #t112, 1, -1 do
local v2840 = t112[i]
t120[#t120 + 1] = v2837 and v2837[v2840].name or v2840
end
return t120
end
t111.tierFromLabel = function(p723)
local v2841 = t111.tiers()
for _, v in ipairs(t112) do
if p723 == v or v2841 and v2841[v].name == p723 then
return v
end
end
return nil
end
t111.setTiers = function(p724)
local butterflyTiers = {}
local ipairs_ = ipairs
local v2846 = type(p724) == "table" and p724 or {}
for _, v in ipairs_(v2846) do
local v2849 = t111.tierFromLabel(tostring(v))
if v2849 then
butterflyTiers[#butterflyTiers + 1] = v2849
end
end
senaV4Config.ButterflyTiers = butterflyTiers
end
local t121 = {
"All Recipes",
"For Essence (shortfall only)",
"Emerald to Sapphire",
"Sapphire to Amethyst",
"Amethyst to Radiant"
}
local t122 = {
["For Essence (shortfall only)"] = "Smart",
["Emerald to Sapphire"] = "Green",
["Sapphire to Amethyst"] = "Blue",
["Amethyst to Radiant"] = "Purple"
}
t111.recipeOptions = function()
return t121
end
t111.setRecipe = function(p725)
senaV4Config.ButterflyTradeRecipe = t122[tostring(p725)] or "All"
end
local t123 = {
"Tween to Butterfly",
"Stand",
"Zigzag",
"Circle"
}
local t124 = {
["Tween to Butterfly"] = "Tween",
Stand = "Stand",
Zigzag = "Zigzag",
Circle = "Circle"
}
t111.modeOptions = function()
return t123
end
t111.setMode = function(p726)
senaV4Config.ButterflyCatchMode = t124[tostring(p726)] or "Tween"
end
local Folder
local function v2855()
for k, card in pairs(t111.cards) do
pcall(function()
card.part:Destroy()
end)
t111.cards[k] = nil
end
if Folder then
pcall(function()
Folder:Destroy()
end)
Folder = nil
end
end
local function v2858()
local CurrentCamera = workspace.CurrentCamera
if not CurrentCamera then
return
end
if not Folder or not Folder.Parent then
Folder = Instance.new("Folder")
Folder.Name = "SenaBloomEsp"
Folder.Parent = CurrentCamera
end
local v2860 = t111.tiers() or {}
local v2861 = v2693()
local t125 = {}
for _, v in ipairs(v2741()) do
local v2865 = ("%d_%d_%d"):format(v.pos.X, v.pos.Y, v.pos.Z)
t125[v2865] = true
local v2866 = t111.cards[v2865]
if not v2866 or not v2866.part.Parent then
local Part = Instance.new("Part")
Part.Size = Vector3.new(0.2, 0.2, 0.2)
Part.Anchored = true
Part.CanCollide = false
Part.CanQuery = false
Part.CanTouch = false
Part.Transparency = 1
Part.Parent = Folder
local BillboardGui = Instance.new("BillboardGui")
BillboardGui.Adornee = Part
BillboardGui.Size = UDim2.fromOffset(120, 20)
BillboardGui.StudsOffsetWorldSpace = Vector3.new(0, 1.6, 0)
BillboardGui.AlwaysOnTop = true
BillboardGui.MaxDistance = 260
BillboardGui.Parent = Part
local TextLabel = Instance.new("TextLabel")
TextLabel.Size = UDim2.fromScale(1, 1)
TextLabel.BackgroundTransparency = 1
TextLabel.Font = Enum.Font.GothamBold
TextLabel.TextSize = 13
TextLabel.TextStrokeTransparency = 0.35
TextLabel.Parent = BillboardGui
v2866 = {
part = Part,
label = TextLabel
}
t111.cards[v2865] = v2866
end
v2866.part.CFrame = cFrameNew(v.pos)
local v2870 = v2860[v.tier]
v2866.label.TextColor3 = v2870 and v2870.color or Color3.new(1, 1, 1)
local label = v2866.label
local v2872 = v2861
if v2872 then
v2872 = ("%s %dm"):format(v2870 and v2870.name or v.tier, math.floor((v.pos - v2861.Position).Magnitude))
end
label.Text = v2872 or v2870 and v2870.name or v.tier
end
for k, card in pairs(t111.cards) do
if not t125[k] then
pcall(function()
card.part:Destroy()
end)
t111.cards[k] = nil
end
end
end
local t126
t126 = {
target = nil,
since = 0,
swinging = false,
skip = setmetatable({}, {
__mode = "k"
}),
pos = function(p727)
if not p727 or not p727.Parent then
return nil
end
local ok, result = pcall(function()
return p727.PrimaryPart and p727.PrimaryPart.Position or p727:GetPivot().Position
end)
local v2878 = ok and result or nil
return v2878
end,
pick = function(p728)
local ButterflyBloomSwarm = workspace:FindFirstChild("ButterflyBloomSwarm")
if not ButterflyBloomSwarm then
return nil
end
local v2880 = v2736()
local now = os.clock()
local v2882
local v2883
for _, child in ipairs(ButterflyBloomSwarm:GetChildren()) do
if child:IsA("Model") and t113[child.Name] and (not v2880 or v2880[child.Name]) then
if (t126.skip[child] or 0) <= now then
local v2886 = t126.pos(child)
if v2886 then
local v2887 = (t113[child.Name] == 4 and 1000000 or 0) - (v2886 - p728).Magnitude
if not v2883 or v2883 < v2887 then
v2882 = child
v2883 = v2887
end
end
end
end
end
return v2882
end,
gain = function()
local ok, result = pcall(v2677().Save.Peek)
local v2890 = ok and result and result.Butterflies and tonumber(result.Butterflies.TotalCaught)
return v2890 and t111.bloomBase and math.max(0, v2890 - t111.bloomBase) or 0
end
}
t126.swing = function(p729, p730)
if t126.swinging then
return
end
local v2891 = tonumber(v2682("SwingCooldownSeconds", 0.45)) or 0.45
if os.clock() - t111.lastSwing < v2891 then
return
end
local v2892 = v2677()
if not v2892 or not v2892.Swarm or not v2892.Swarm.Nearest then
return
end
local ok, result = pcall(v2892.Swarm.Nearest, p730, Vector3.new(0, 0, -1), 4)
local Flight = ok and result and result.Flight
if not Flight or not Flight.Id then
return
end
if Flight.Tier ~= nil and tostring(Flight.Tier) ~= p729.Name then
return
end
t111.lastSwing = os.clock()
t126.swinging = true
task.spawn(function()
local _, _, v2898 = v2687("Butterflies", "AskSwing", Flight.Id)
t126.swinging = false
if v2898 ~= "Caught" and v2898 ~= "Gone" then
t126.skip[p729] = os.clock() + 1.5
end
if t126.target == p729 then
t126.target = nil
end
local v2899 = t111.tiers()
t111.status = ("%s %s · +%d this Bloom"):format(v2898 == "Caught" and "Caught" or "Chasing", v2899 and v2899[p729.Name] and v2899[p729.Name].name or p729.Name, t126.gain())
end)
end
t126.prepare = function()
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
return nil
end
v2751()
v215(Character)
v33()
v22()
local AutoRotate = Humanoid.AutoRotate
Humanoid.AutoRotate = false
return Character, HumanoidRootPart, Humanoid, AutoRotate
end
t126.release = function(p731, p732, p733)
t126.target = nil
if p732.Parent and p733 ~= nil then
p732.AutoRotate = p733
end
p731.AssemblyLinearVelocity = Vector3.zero
p731.AssemblyAngularVelocity = Vector3.zero
v23()
end
t126.keepGoing = function(p734, p735, p736)
if not v16() or not senaV4Config.ButterflyAutoCatch or not (t111.bloomLeft() > 0) or not p734.Parent or not (p735.Health > 0) then
return false
end
if (senaV4Config.ButterflyCatchMode or "Tween") == p736 then
return not (t111.manual or v2767() or v177() or t114.blocker("butterfly") ~= nil)
end
return false
end
t126.moveStep = function(p737, p738, p739, p740, p741, p742, p743)
v27(p737, p742 * t1.HEADROOM)
local v2904 = v26()[t1.INTEGRITY_KEY]
local State = type(v2904) == "table" and v2904.State or nil
if not v30(State, p738, p739) then
p739.AssemblyLinearVelocity = Vector3.zero
p739.AssemblyAngularVelocity = Vector3.zero
v21(p739.Position)
if v29(State, p738, p739) then
v28(State, p742 * t1.HEADROOM, Vector3.zero)
else
v31(p738, p739, p742)
end
return nil
end
local Position = p739.Position
local v2907 = p740 - Position
local v2908 = p742 * p743
local v2909 = v2907.Magnitude <= v2908 and p740 or Position + v2907.Unit * v2908
local v2910 = (p741 or p740) - v2909
local vector32 = Vector3.new(v2910.X, 0, v2910.Z)
if vector32.Magnitude <= 0.001 then
vector32 = Vector3.new(v2907.X, 0, v2907.Z)
end
local Unit = vector32.Magnitude > 0.001 and vector32.Unit or p739.CFrame.LookVector
local v2913 = (v2909 - Position) / p743
v21(v2909)
p739.CFrame = lookAt(v2909, v2909 + Unit)
p739.AssemblyLinearVelocity = Vector3.zero
p739.AssemblyAngularVelocity = Vector3.zero
if not v32(p738, p739, p742, v2913) then
v31(p738, p739, p742)
v32(p738, p739, p742, v2913)
end
return v2909
end
t126.nearest = function(p744, p745)
local ButterflyBloomSwarm = workspace:FindFirstChild("ButterflyBloomSwarm")
if not ButterflyBloomSwarm then
return nil
end
local v2915 = v2736()
local now = os.clock()
local v2917
local v2918
local v2919 = p745
for _, child in ipairs(ButterflyBloomSwarm:GetChildren()) do
if child:IsA("Model") and t113[child.Name] and (not v2915 or v2915[child.Name]) then
if (t126.skip[child] or 0) <= now then
local v2922 = t126.pos(child)
local Magnitude = v2922 and (v2922 - p744).Magnitude
if Magnitude and Magnitude <= v2919 then
v2917 = child
v2918 = v2922
v2919 = Magnitude
end
end
end
end
return v2917, v2918
end
t126.cluster = function(p746)
local ButterflyBloomSwarm = workspace:FindFirstChild("ButterflyBloomSwarm")
local t127 = {}
local ipairs_ = ipairs
local children = ButterflyBloomSwarm and ButterflyBloomSwarm:GetChildren() or {}
for _, child in ipairs_(children) do
if child:IsA("Model") and t113[child.Name] then
local v2930 = t126.pos(child)
if v2930 then
t127[#t127 + 1] = v2930
end
end
end
if #t127 == 0 then
return nil, 0, 0
end
local n53 = 0
for _, v in ipairs(t127) do
if p746 and (v - p746).Magnitude <= 24 then
n53 += 1
end
end
local v2934
local v2935
for _, v in ipairs(t127) do
local vector32 = Vector3.zero
local n54 = 0
for _, v2 in ipairs(t127) do
if (v - v2).Magnitude <= 24 then
vector32 += v2
n54 += 1
end
end
local v2942 = vector32 / n54
local v2943 = n54 * 100 - (p746 and (v2942 - p746).Magnitude or 0)
if not v2935 or v2935 < v2943 then
v2934 = v2942
v2935 = v2943
end
end
return v2934, #t127, n53
end
t126.route = function(p747, p748, p749)
if p747 == "Circle" then
local v2944 = p749 * 2.0833333333333335
return p748 + Vector3.new(math.cos(v2944) * 24, 0, math.sin(v2944) * 24)
end
local v2945 = v2787()
if not (p747 == "Zigzag" and v2945) then
return p748
end
local v2946 = math.max(v2945.Size.X / 2 - 12, 20)
local v2947 = math.clamp(v2945.Size.Z / 2 - 12, 8, 30)
local v2948 = p749 * 80 / math.sqrt((2 * v2946 / 8) ^ 2 + (2 * v2947) ^ 2) % 16
local v2949 = math.floor(v2948)
local v2950 = v2948 - v2949
local v2951 = v2949 <= 8 and v2949 or 16 - v2949
local v2952 = v2949 + 1 <= 8 and v2949 + 1 or 16 - (v2949 + 1)
local v2953 = -v2946 + v2951 * (2 * v2946 / 8)
local v2954 = v2949 % 2 == 0 and -v2947 or v2947
local v2955 = v2945.CFrame:VectorToWorldSpace(Vector3.new(v2953 + (-v2946 + v2952 * (2 * v2946 / 8) - v2953) * v2950, 0, v2954 + (((v2949 + 1) % 2 == 0 and -v2947 or v2947) - v2954) * v2950))
return Vector3.new(v2945.Position.X + v2955.X, p748.Y, v2945.Position.Z + v2955.Z)
end
t126.patrol = function(p750)
local v2956, v2957, v2958, v2959 = t126.prepare()
if not v2956 then
return false
end
local v2960 = tonumber(v2682("NetReach", 14)) or 14
local v2961 = ({
Stand = "Standing in the swarm",
Zigzag = "Zigzag patrol",
Circle = "Circling the swarm"
})[p750] or p750
local v2962
local n55 = 0
local now = os.clock()
local v2965
local v2966 = false
local n56 = 0
while t126.keepGoing(v2957, v2958, p750) do
local v2968 = math.max(math.min(RunService.Heartbeat:Wait(), 0.15), 0.0041666666666666666)
local now2 = os.clock()
if n55 <= now2 then
local v2970, v2971, v2972 = t126.cluster(v2962)
n55 = now2 + 1.5
if v2971 == 0 then
v2965 = v2965 or now2
else
v2965 = nil
if p750 == "Stand" then
if not v2962 or v2972 < 3 then
v2962 = v2970
end
else
v2962 = v2962 and v2962:Lerp(v2970, 0.5) or v2970
end
end
end
if v2965 and now2 - v2965 > 2 then
break
end
if v2962 then
v2966 = true
local v2973 = t126.route(p750, v2962, now2 - now)
local huge = (v2973 - v2957.Position).Magnitude > 40 and math.huge or p750 == "Stand" and 60 or p750 == "Circle" and 70 or 110
local v2975 = math.clamp(math.min(v20(), huge), t1.MIN_SPEED, t1.MAX_SPEED)
local v2976, v2977 = t126.nearest(v2957.Position, v2960 + 6)
local v2978 = t126.moveStep(v2956, v2958, v2957, v2973, v2977, v2975, v2968)
if v2978 and v2976 and (v2977 - v2978).Magnitude <= v2960 - 1.5 then
t126.swing(v2976, v2977)
end
if n56 <= now2 and not t126.swinging then
n56 = now2 + 1
t111.status = ("%s · +%d this Bloom"):format(v2961, t126.gain())
end
else
v2957.AssemblyLinearVelocity = Vector3.zero
v2957.AssemblyAngularVelocity = Vector3.zero
v21(v2957.Position)
end
end
t126.release(v2957, v2958, v2959)
return v2966
end
t126.run = function()
local v2979, v2980, v2981, v2982 = t126.prepare()
if not v2979 then
return false
end
local v2983 = tonumber(v2682("NetReach", 14)) or 14
local v2984 = math.min(v2983 - 3, (tonumber(v2682("DodgeRadius", 9)) or 9) + 1)
local now
local v2986 = false
while t126.keepGoing(v2980, v2981, "Tween") do
local v2987 = math.max(math.min(RunService.Heartbeat:Wait(), 0.15), 0.0041666666666666666)
local target = t126.target
local v2989 = t126.pos(target)
if not v2989 or os.clock() - t126.since > 3 then
if v2989 then
t126.skip[target] = os.clock() + 2
end
target = t126.pick(v2980.Position)
local now2 = os.clock()
t126.target = target
t126.since = now2
v2989 = t126.pos(target)
if target then
local v2991 = t111.tiers()
t111.status = ("Chasing %s · +%d this Bloom"):format(v2991 and v2991[target.Name] and v2991[target.Name].name or target.Name, t126.gain())
end
end
if v2989 then
now = nil
v2986 = true
local v2992 = math.clamp(v20(), t1.MIN_SPEED, t1.MAX_SPEED)
local v2993 = v2980.Position - v2989
local v2994 = t126.moveStep(v2979, v2981, v2980, v2993.Magnitude > 0.001 and v2989 + v2993.Unit * v2984 or v2989 + Vector3.new(v2984, 0, 0), v2989, v2992, v2987)
if v2994 and (v2989 - v2994).Magnitude <= v2983 - 1.5 then
t126.swing(target, v2989)
end
continue
else
now = now or os.clock()
if not (os.clock() - now > 2) then
v2980.AssemblyLinearVelocity = Vector3.zero
v2980.AssemblyAngularVelocity = Vector3.zero
v21(v2980.Position)
continue
end
end
break
end
t126.release(v2980, v2981, v2982)
return v2986
end
local function v2995(p751)
if v2767() then
v2777()
return
end
if not v2789() then
v2751()
if v177() then
t111.status = "Night - waiting to fly to the forest"
return
end
if not v2691("area") then
return
end
local v2996 = v2793()
if not v2996 then
t111.status = "Butterfly Bloom zone not found"
v2692("area")
return
end
t111.status = "Flying to the Butterfly Bloom"
if not v2757(v2996, 60) then
v2692("area")
t111.status = "Could not reach the Enchanted Forest"
end
return
end
local __SenaV4TreadmillManager = genv.__SenaV4TreadmillManager
if __SenaV4TreadmillManager and __SenaV4TreadmillManager.activeTreadmill ~= nil then
v2795()
end
if not p751.holding and not v2746() then
t111.status = "Butterfly Net is not in your backpack"
return
end
local ButterflyCatchMode = senaV4Config.ButterflyCatchMode or "Tween"
local v2999
if ButterflyCatchMode == "Tween" then
v2999 = t126.run()
else
v2999 = t126.patrol(ButterflyCatchMode)
end
if not v2999 then
v2752()
t111.status = ("Waiting for butterflies · +%d this Bloom"):format(t126.gain())
end
end
local function v3000(p752)
if not p752.net then
return p752.treeUnlocked and "No Butterfly Net yet" or "Enchanted Tree locked - finish the Wisp Event"
end
if p752.active then
return "Bloom is live"
end
if p752.nextIn then
return ("Next Bloom in %dm %02ds"):format(math.floor(p752.nextIn / 60), math.floor(p752.nextIn % 60))
end
return "Idle"
end
local function v3001()
if t111.manual then
return
end
local v3002 = t111.snapshot()
if v3002.active then
t111.bloomBase = t111.bloomBase or v3002.caught
else
t111.bloomBase = nil
end
if senaV4Config.ButterflyEsp and v3002.active then
v2858()
elseif next(t111.cards) or Folder then
v2855()
end
local s7
if senaV4Config.ButterflyAutoNet and not v3002.net and v3002.treeUnlocked and v2691("net") then
s7 = "net"
elseif senaV4Config.ButterflyAutoCatch and v3002.active and v3002.net then
s7 = "catch"
elseif not v3002.active and senaV4Config.ButterflyAutoTrade and v3002.net and t111.canTrade() and v2691("trade") then
s7 = "trade"
elseif not v3002.active and senaV4Config.ButterflyAutoCraft and v3002.net and t111.canCraft() and v2691("craft") then
s7 = "craft"
end
t111.wantsCharacter = s7 ~= nil
local butterfly = s7 and t114.blocker("butterfly") or nil
local butterfly2 = s7 and not butterfly and t114.holder("butterfly") or nil
local active = t111.active
t111.active = s7 ~= nil and butterfly == nil and butterfly2 == nil
if s7 and not t111.active then
v2751()
if butterfly and v2767() then
t111.status = "Leaving the tree for " .. t114.TITLES[butterfly]
v2777()
end
t111.status = butterfly and "Yielding to " .. t114.TITLES[butterfly] or "Waiting for " .. t114.TITLES[butterfly2] .. " to hand over"
return
end
if not s7 then
if active then
v2801()
end
v2751()
t111.status = v3000(v3002)
return
end
if not active then
v2795()
end
if s7 == "net" then
local v3007, v3008 = t111.claimNet()
local status = v3007 and "Butterfly Net claimed"
if not status then
status = "Net: " .. tostring(v3008 or "refused")
end
t111.status = status
if not v3007 then
v2692("net")
end
elseif s7 == "catch" then
v2995(v3002)
elseif s7 == "trade" then
local status, v3011 = t111.tradeUp()
if status then
status = ("Traded up %d time(s)"):format(tonumber(v3011) or 0)
end
t111.status = status or "Trade: " .. tostring(v3011)
v2692("trade")
elseif s7 == "craft" then
local status, v3013 = t111.craft()
if status then
status = ("Crafted %d Enchanted Essence"):format(tonumber(v3013) or 0)
end
t111.status = status or "Craft: " .. tostring(v3013)
v2692("craft")
end
end
task.spawn(function()
while v16() do
local ok, result = pcall(v3001)
if not ok then
t111.active = false
t111.wantsCharacter = false
v2751()
t111.status = "Error: " .. tostring(result)
task.wait(1)
end
task.wait(0.2)
end
v2751()
v2855()
end)
genv.__SenaV4ButterflyRuntime = t111
end
v2666()
local function v3016()
local u3017
local function v3018()
if u3017 then
return u3017
end
local t128 = {}
pcall(function()
for _, child in ipairs(ReplicatedStorage.Data.Gears.Configs:GetChildren()) do
local ok, result = pcall(require, child)
if ok and type(result) == "table" and type(result.BatControllerData) == "table" then
for _, v in ipairs({
child.Name,
result._id,
result.DisplayName,
result.ToolModel
}) do
if type(v) == "string" then
t128[v:lower()] = true
end
end
end
end
end)
if next(t128) then
u3017 = t128
end
return t128
end
local function v3026(p753)
if not p753 or not p753:IsA("Tool") then
return false
end
if p753:GetAttribute("IsBat") == true then
return true
end
local attribute = p753:GetAttribute("ItemType")
if attribute ~= nil and attribute ~= "Gear" then
return false
end
local v3028 = v3018()
local v3029 = tostring(p753:GetAttribute("GearName") or ""):lower()
local v3030 = tostring(p753.Name or ""):gsub("%s*%[.-%]%s*$", ""):lower()
if v3028[v3029] or v3028[v3030] then
return true
end
return attribute == "Gear" and (v3029:find("bat", 1, true) ~= nil or v3030:find("bat", 1, true) ~= nil)
end
return v3026
end
genv.__SenaV4IsBatTool = v3016()
do
local Players2 = game:GetService("Players")
local RunService2 = game:GetService("RunService")
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local LocalPlayer2 = Players2.LocalPlayer
local t129 = {
pinConn = nil,
holding = false,
status = "Idle"
}
local function v3036()
local ok, result = pcall(require, ReplicatedStorage2.Client.EggState)
return ok and result or nil
end
local function v3039()
local ok, result = pcall(require, ReplicatedStorage2.Shared.Remotes)
return ok and result or nil
end
local function v3042()
local ok, result = pcall(require, ReplicatedStorage2.Shared.Types.AreaEggs)
return ok and result and result.States or nil
end
local function v3045()
local Character = LocalPlayer2.Character
return Character and Character:FindFirstChild("HumanoidRootPart")
end
local function v3047()
local Character = LocalPlayer2.Character
return Character and Character:FindFirstChildOfClass("Humanoid")
end
local function v3049()
return workspace:GetAttribute("Event_CaptureTheEggUid")
end
local function v3050(p754)
if not p754 then
return nil
end
local v3051 = v3036()
if not v3051 then
return nil
end
local ok, result = pcall(v3051.ReadFieldEgg, p754)
return ok and result or nil
end
local function v3054(p755, p756)
local v3055 = p756 or v3050(p755)
local v3056 = v3042()
if v3055 and v3056 then
return v3055.State == v3056.Carried and v3055.CarrierUserId == LocalPlayer2.UserId
end
return false
end
local function v3057(p757)
local v3058 = v3042()
if p757 and v3058 then
return p757.State == v3058.Slot or p757.State == v3058.Dropped
end
return false
end
local function v3059()
local SenaCapturePlatform = workspace:FindFirstChild("SenaCapturePlatform")
if SenaCapturePlatform then
pcall(function()
SenaCapturePlatform:Destroy()
end)
end
end
local function v3061(p758)
local v3062 = p758 or v3045()
if not v3062 then
return
end
local SenaCapturePlatform = workspace:FindFirstChild("SenaCapturePlatform")
if not SenaCapturePlatform then
SenaCapturePlatform = Instance.new("Part")
SenaCapturePlatform.Name = "SenaCapturePlatform"
SenaCapturePlatform.Anchored = true
SenaCapturePlatform.CanCollide = true
SenaCapturePlatform.Size = Vector3.new(30, 1, 30)
SenaCapturePlatform.Transparency = 0.5
SenaCapturePlatform.Material = Enum.Material.Neon
SenaCapturePlatform.Color = Color3.fromRGB(130, 90, 255)
SenaCapturePlatform.TopSurface = Enum.SurfaceType.Smooth
SenaCapturePlatform.BottomSurface = Enum.SurfaceType.Smooth
SenaCapturePlatform.Parent = workspace
end
SenaCapturePlatform.CFrame = cFrameNew(v3062.Position.X, v3062.Position.Y - 3.4, v3062.Position.Z)
end
local function v3064()
if t129.pinConn then
return
end
t129.pinConn = RunService2.PreSimulation:Connect(function()
if not senaV4Config.AutoStealCapture then
return
end
local v3065 = v3045()
if not v3065 then
return
end
if v3065.Position.Y < 89 then
v3065.CFrame = cFrameNew(v3065.Position.X, 90, v3065.Position.Z) * v3065.CFrame.Rotation
end
v3065.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
v3065.AssemblyAngularVelocity = Vector3.zero
v3061(v3065)
end)
end
local function v3066()
if t129.pinConn then
pcall(function()
t129.pinConn:Disconnect()
end)
t129.pinConn = nil
end
v3059()
end
local function v3067(p759, p760)
local v3068 = v3045()
local v3069 = v3047()
if not v3068 or not v3069 or not p760 or not p760.BottomCFrame then
return false
end
v3066()
local v3070 = p760.BottomCFrame.Position + Vector3.new(0, 3, 0)
t129.status = "Flying to capture egg"
pcall(v232, v3068, v3069, cFrameNew(v3070) * v3068.CFrame.Rotation, function()
return not senaV4Config.AutoStealCapture or v3049() ~= p759 or v3054(p759)
end)
local v3071 = v3045()
if not v3071 then
return false
end
pcall(function()
v3071.AssemblyLinearVelocity = Vector3.zero
v3071.AssemblyAngularVelocity = Vector3.zero
end)
local v3072 = v3039()
if not v3072 or not v3072.EggWorld or not v3072.EggWorld.AskFieldEggCarry then
return false
end
t129.status = "Grabbing capture egg"
local ok, result = pcall(function()
return v3072.EggWorld.AskFieldEggCarry:InvokeServer({
Uid = p759
})
end)
local v3075 = ok and result == true
return v3075
end
task.spawn(function()
while v16() do
if senaV4Config.AutoStealCapture then
if not pcall(function()
local v3076 = v3049()
local v3077 = v3050(v3076)
if v3076 and v3054(v3076, v3077) then
t129.holding = true
t129.status = "Holding capture egg"
v3064()
elseif v3076 and v3057(v3077) then
t129.holding = false
v3067(v3076, v3077)
elseif not v3076 then
t129.holding = false
if t129.pinConn or workspace:FindFirstChild("SenaCapturePlatform") then
v3066()
end
t129.status = "No capture event"
elseif t129.holding then
v3064()
t129.status = "Egg taken - holding position"
else
if t129.pinConn or workspace:FindFirstChild("SenaCapturePlatform") then
v3066()
end
t129.status = "Waiting for capture egg"
end
end) then
v3066()
end
task.wait(0.3)
else
if t129.pinConn or workspace:FindFirstChild("SenaCapturePlatform") then
v3066()
end
t129.holding = false
t129.status = "Idle"
task.wait(0.5)
end
end
end)
genv.__SenaV4AutoCapture = t129
end
do
local Players2 = game:GetService("Players")
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local LocalPlayer2 = Players2.LocalPlayer
local function v3081()
local ok, result = pcall(require, ReplicatedStorage2.Shared.Save)
return ok and result or nil
end
local function v3084()
local ok, result = pcall(require, ReplicatedStorage2.Data.Assets)
if ok then
return result.Directory or result
end
return nil
end
local function v3087(p761)
return "SENAVIS_" .. p761 .. "_" .. tostring(math.floor(os.clock() * 1000)) .. "_" .. tostring(math.random(1, 1000000))
end
local t130 = {
held = {},
categories = function(p762)
local v3089 = v3084()
local t131 = {}
if not v3089 then
return t131
end
for k, v in pairs(v3089) do
if type(k) == "string" and type(v) == "table" and (p762 == "Pet" or v.Egg ~= nil) then
t131[#t131 + 1] = k
end
end
table.sort(t131)
return t131
end,
spawnEgg = function(p763, p764)
local v3093 = v3081()
local v3094 = v3084()
if not v3093 or not v3094 or not v3094[p763] then
return nil
end
local v3095 = v3087("E")
pcall(function()
v3093.Amend("EggInventory", function(p765)
p765[v3095] = {
AssetCategory = p763,
AssetScale = tonumber(p764) or 50,
AssetColorIndex = 1,
AssetColorSeed = math.random(1, 2e9),
AssetEyeColor = "ffffff",
HasParasite = false,
Mutations = {}
}
end)
end)
return v3095
end,
spawnPet = function(p766, p767)
local v3096 = v3081()
local v3097 = v3084()
if not v3096 or not v3097 or not v3097[p766] then
return nil
end
local v3098 = v3087("P")
pcall(function()
v3096.Amend("Inventory", function(p768)
p768[v3098] = {
Category = p766,
Scale = tonumber(p767) or 50,
ColorIndex = 1,
ColorSeed = math.random(1, 2e9),
EyeColor = "ffffff",
Gender = "Male",
Personality = "Normal",
InFuse = false,
HasBeenFirstPlaced = false,
Mutations = {}
}
end)
end)
return v3098
end
}
local function v3099(p769)
local Assets = ReplicatedStorage2:FindFirstChild("Assets")
local Models = Assets and Assets:FindFirstChild("Models")
local Eggs = Models and Models:FindFirstChild("Eggs")
return Eggs and Eggs:FindFirstChild(p769)
end
local function v3103(p770)
local AssetModels = ReplicatedStorage2:FindFirstChild("AssetModels")
return AssetModels and AssetModels:FindFirstChild(p770)
end
local function v3105()
for _, v in ipairs(t130.held) do
pcall(function()
v:Destroy()
end)
end
t130.held = {}
for _, v in ipairs({
LocalPlayer2.Character,
LocalPlayer2:FindFirstChild("Backpack")
}) do
if v then
for _, child in ipairs(v:GetChildren()) do
if child:IsA("Tool") then
if child.Name:sub(1, 8) == "SENAVIS_" then
pcall(function()
child:Destroy()
end)
end
end
end
end
end
end
t130.hold = function(p771, p772, p773)
local Character = LocalPlayer2.Character
if not Character then
return false
end
local v3113 = p772 and v3099(p771) or v3103(p771)
if not v3113 then
return false
end
local ok, result = pcall(function()
return v3113:Clone()
end)
if not ok or not result or not result:IsA("Model") then
return false
end
local PrimaryPart = result.PrimaryPart or result:FindFirstChildWhichIsA("BasePart")
if not PrimaryPart then
pcall(function()
result:Destroy()
end)
return false
end
pcall(function()
if not result.PrimaryPart then
result.PrimaryPart = PrimaryPart
end
end)
local v3117 = math.clamp(1 + (tonumber(p773) or 50) / 70, 1, 2.4) * (0.85 + math.random() * 0.4)
pcall(function()
if result.ScaleTo then
result:ScaleTo(v3117)
end
end)
local vector32 = Vector3.new(3, 3, 3)
pcall(function()
vector32 = result:GetExtentsSize()
end)
local Tool = Instance.new("Tool")
Tool.Name = "SENAVIS_" .. p771
Tool.RequiresHandle = true
Tool.CanBeDropped = false
local v3120 = v3084()
local v3121 = v3120 and v3120[p771]
local Icon = v3121 and (p772 and v3121.Egg and v3121.Egg.Icon or v3121.Icon)
if type(Icon) == "string" then
pcall(function()
Tool.TextureId = Icon
end)
end
PrimaryPart.Name = "Handle"
for _, descendant in ipairs(result:GetDescendants()) do
if descendant:IsA("BasePart") then
descendant.Massless = true
descendant.CanCollide = false
descendant.Anchored = false
if descendant ~= PrimaryPart then
local WeldConstraint = Instance.new("WeldConstraint")
WeldConstraint.Part0 = PrimaryPart
WeldConstraint.Part1 = descendant
WeldConstraint.Parent = PrimaryPart
end
end
end
for _, child in ipairs(result:GetChildren()) do
child.Parent = Tool
end
PrimaryPart.Parent = Tool
pcall(function()
result:Destroy()
end)
pcall(function()
Tool.Grip = cFrameNew(0, -(vector32.Y * 0.55), math.max(vector32.X, vector32.Z) * 0.5 + 0.5)
end)
Tool.Parent = LocalPlayer2:FindFirstChild("Backpack") or Character
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
pcall(function()
Humanoid:EquipTool(Tool)
end)
end
t130.held[#t130.held + 1] = Tool
return true
end
t130.spawn = function(p774, p775, p776, p777)
if not p775 or p775 == "None" then
return
end
local v3129 = tonumber(p776) or 50
if p777 then
pcall(t130.hold, p775, p774 ~= "Pet", v3129)
elseif p774 == "Pet" then
t130.spawnPet(p775, math.clamp(1 + v3129 / 25, 1.2, 5) * (0.85 + math.random() * 0.4))
else
t130.spawnEgg(p775, v3129 * (0.85 + math.random() * 0.5))
end
end
t130.clear = function()
local v3130 = v3081()
if v3130 then
pcall(function()
v3130.Amend("EggInventory", function(p778)
for k in pairs(p778) do
if type(k) == "string" and k:sub(1, 8) == "SENAVIS_" then
p778[k] = nil
end
end
end)
end)
pcall(function()
v3130.Amend("Inventory", function(p779)
for k in pairs(p779) do
if type(k) == "string" and k:sub(1, 8) == "SENAVIS_" then
p779[k] = nil
end
end
end)
end)
pcall(function()
v3130.Amend("EquippedAssets", function(p780)
for i = #p780, 1, -1 do
local v3134 = p780[i]
if type(v3134) == "string" and v3134:sub(1, 8) == "SENAVIS_" then
table.remove(p780, i)
end
end
end)
end)
end
for _, v in ipairs(t130.held) do
pcall(function()
v:Destroy()
end)
end
t130.held = {}
for _, v in ipairs({
LocalPlayer2.Character,
LocalPlayer2:FindFirstChild("Backpack")
}) do
if v then
for _, child in ipairs(v:GetChildren()) do
if child:IsA("Tool") then
if child.Name:sub(1, 8) == "SENAVIS_" then
pcall(function()
child:Destroy()
end)
end
end
end
end
end
end
genv.__SenaV4VisualSAE = t130
end
do
local cameraMaxZoomDistance = (tonumber(game:GetService("StarterPlayer").CameraMaxZoomDistance) or 128) * 1.95
local function v3142()
if LocalPlayer.CameraMaxZoomDistance < cameraMaxZoomDistance then
LocalPlayer.CameraMaxZoomDistance = cameraMaxZoomDistance
end
end
pcall(v3142)
LocalPlayer:GetPropertyChangedSignal("CameraMaxZoomDistance"):Connect(function()
if v16() then
pcall(v3142)
end
end)
end
do
local function v3143()
local HttpService = game:GetService("HttpService")
local t132 = {
base = "http://56.10.112.179:8080/visual/",
manifest = nil,
status = "Idle",
spawned = {},
backs = {},
backRod = nil,
remote = {}
}
local Unit = Vector3.new(0.3, 0.75, 0.6).Unit
local t133 = {
RightShoulder = Angles(0.69813170079773179, 0, 0.17453292519943295),
RightElbow = Angles(1.7453292519943295, 0, 0),
RightWrist = cFrameNew(),
LeftShoulder = cFrameNew(),
LeftElbow = cFrameNew(),
LeftWrist = cFrameNew()
}
local v3148 = cFrameNew(0.5, 1.3, 1, -0.7071, -0.7071, 0, -0.7071, 0.7071, 0, 0, 0, -1):Inverse()
local function v3149(p781)
local s8 = ""
for match in string.gmatch(p781, "[^/]+") do
s8 = s8 == "" and match or s8 .. "/" .. match
if not isfolder(s8) then
makefolder(s8)
end
end
end
local function v3152(p782)
local ok, result = pcall(function()
return game:HttpGet(p782, true)
end)
if not ok or type(result) ~= "string" or result == "" then
return nil
end
return result
end
t132.loadManifest = function()
if t132.manifest then
return t132.manifest
end
v3149("SenaVisual/cache")
local json = v3152(t132.base .. "manifest.json")
if json then
pcall(writefile, "SenaVisual/cache/manifest.json", json)
elseif isfile("SenaVisual/cache/manifest.json") then
json = readfile("SenaVisual/cache/manifest.json")
end
local ok, manifest = pcall(function()
return HttpService:JSONDecode(json)
end)
if ok and type(manifest) == "table" then
t132.manifest = manifest
end
return t132.manifest
end
t132.names = function(p783)
local t134 = {}
local v3159 = t132.loadManifest()
local ipairs_ = ipairs
local v3161 = v3159 and v3159[p783] or {}
for _, v in ipairs_(v3161) do
local name = v.name
if v.tier then
name = v.name .. " [" .. v.tier .. "]"
end
table.insert(t134, name)
end
return t134
end
local function v3165(p784, p785)
local v3166 = t132.loadManifest()
local ipairs_ = ipairs
local v3168 = v3166 and v3166[p784] or {}
for _, v in ipairs_(v3168) do
if v.name == p785 or v.name .. " [" .. tostring(v.tier) .. "]" == p785 then
return v
end
end
return nil
end
local function v3171(p786, p787)
local v3172 = "SenaVisual/cache" .. "/" .. p786
v3149(v3172)
local v3173 = v3172 .. "/" .. p787.file
if not isfile(v3173) then
t132.status = "Downloading " .. p787.name .. "..."
local v3174 = v3152(t132.base .. p786 .. "/" .. p787.file)
if not v3174 then
return nil, "Download failed"
end
writefile(v3173, v3174)
end
local ok, result = pcall(function()
return game:GetObjects(getcustomasset(v3173))
end)
if not ok or not (type(result) == "table" and result[1]) then
pcall(delfile, v3173)
return nil, "Could not load model"
end
return result[1]
end
t132.rodScale = 1
t132.fishWeight = 0
local function v3177(p788, p789, p790)
local t135 = {}
for _, descendant in ipairs(p788:GetDescendants()) do
if descendant:IsA("JointInstance") or descendant:IsA("WeldConstraint") then
descendant:Destroy()
elseif descendant:IsA("BasePart") then
table.insert(t135, descendant)
elseif descendant:IsA("Script") or descendant:IsA("LocalScript") then
descendant:Destroy()
end
end
if #t135 == 0 then
return nil
end
local Handle = p788:FindFirstChild("Handle", true)
if not Handle or not Handle:IsA("BasePart") then
Handle = t135[1]
end
if p789 or p790 and p790 ~= 1 then
local boundingBox, v3183 = p788:GetBoundingBox()
local v3184 = p790 or p789 / math.max(v3183.X, v3183.Y, v3183.Z, 0.01)
if not p789 then
boundingBox = Handle.CFrame
end
for _, v in ipairs(t135) do
local v3187 = boundingBox:ToObjectSpace(v.CFrame)
v.Size *= v3184
v.CFrame = boundingBox * (cFrameNew(v3187.Position * v3184) * v3187.Rotation)
end
for _, descendant in ipairs(p788:GetDescendants()) do
if descendant:IsA("Attachment") then
if not descendant.Parent:IsA("Bone") then
descendant.Position *= v3184
end
end
end
end
for _, v in ipairs(t135) do
v.Anchored = false
v.CanCollide = false
v.CanQuery = false
v.CanTouch = false
v.Massless = true
if v ~= Handle then
local Weld = Instance.new("Weld")
Weld.Part0 = Handle
Weld.Part1 = v
Weld.C0 = Handle.CFrame:ToObjectSpace(v.CFrame)
Weld.Parent = Handle
end
end
Handle.Name = "Handle"
return Handle, t135
end
local function v3193(p791, p792)
local vector32 = Vector3.zero
local vector33 = Vector3.zero
for _, v in ipairs(p792) do
if v ~= p791 and v.Transparency < 0.95 then
local v3198 = v.Size / 2
for _, v2 in ipairs({
-1,
1
}) do
for _, v3 in ipairs({
-1,
1
}) do
for _, v4 in ipairs({
-1,
1
}) do
local v3205 = p791.CFrame:PointToObjectSpace(v.CFrame:PointToWorldSpace(Vector3.new(v3198.X * v2, v3198.Y * v3, v3198.Z * v4)))
vector32 = vector32:Min(v3205)
vector33 = vector33:Max(v3205)
end
end
end
end
end
local v3206 = vector33 - vector32
local vector34
if v3206.Y <= v3206.X and v3206.Z <= v3206.X then
vector34 = Vector3.new(vector33.X >= -vector32.X and 1 or -1, 0, 0)
elseif v3206.Z <= v3206.Y then
vector34 = Vector3.new(0, vector33.Y >= -vector32.Y and 1 or -1, 0)
else
vector34 = Vector3.new(0, 0, vector33.Z >= -vector32.Z and 1 or -1)
end
local vector35 = Vector3.xAxis
if math.abs(vector34.X) > 0.5 then
vector35 = v3206.Z >= v3206.Y and Vector3.zAxis or Vector3.yAxis
elseif math.abs(vector34.Z) > 0.5 then
vector35 = v3206.X >= v3206.Y and Vector3.xAxis or Vector3.yAxis
end
local v3209 = -math.min(vector32:Dot(vector34), vector33:Dot(vector34))
return fromMatrix(Vector3.zero, vector35, vector34), math.max(0, v3209 - 0.6)
end
t132.updateBack = function()
local Backpack = LocalPlayer:FindFirstChild("Backpack")
for k, back in pairs(t132.backs) do
back(k == t132.backRod and Backpack ~= nil and k.Parent == Backpack)
end
task.defer(t132.refreshQuality)
end
t132.refreshQuality = function()
local v3213 = false
local Character = LocalPlayer.Character
if Character then
for _, child in ipairs(Character:GetChildren()) do
if child:IsA("Tool") and child:GetAttribute("SenaVisual") or child.Name == "SenaVisualBack" then
v3213 = true
break
end
end
end
if next(t132.remote) ~= nil then
v3213 = true
end
pcall(function()
if v3213 then
settings().Rendering.QualityLevel = Enum.QualityLevel.Level10
elseif senaV4Config.StartupBoost then
settings().Rendering.QualityLevel = Enum.QualityLevel.Level01
end
end)
end
local function v3217(p793, p794, p795)
local v3218 = Vector3.one * 1e9
local v3219 = -Vector3.one * 1e9
local v3220, v3221, v3222 = ipairs(p795)
for _, v in v3220, v3221, v3222 do
local v3225 = v.Size / 2
for _, v2 in ipairs({
-1,
1
}) do
for _, v3 in ipairs({
-1,
1
}) do
for _, v4 in ipairs({
-1,
1
}) do
local v3232 = v.CFrame:PointToWorldSpace(Vector3.new(v3225.X * v2, v3225.Y * v3, v3225.Z * v4))
v3218 = v3218:Min(v3232)
v3219 = v3219:Max(v3232)
end
end
end
end
local v3233 = v3219 - v3218
local t136 = {}
local n57 = 0
local vector32 = Vector3.zero
local v3237, v3238, v3239 = ipairs(p795)
for _, v in v3237, v3238, v3239 do
if v.Transparency < 0.95 then
local v3242 = math.max(v.Size.X * v.Size.Y * v.Size.Z, 0.0001)
local v3243 = v.Size / 2
local huge = math.huge
for _, v2 in ipairs({
-1,
1
}) do
for _, v3 in ipairs({
-1,
1
}) do
for _, v4 in ipairs({
-1,
1
}) do
huge = math.min(huge, v.CFrame:PointToWorldSpace(Vector3.new(v3243.X * v2, v3243.Y * v3, v3243.Z * v4)).Y)
end
end
end
table.insert(t136, {
y = huge,
vol = v3242
})
n57 += v3242
vector32 += v.Position * v3242
end
end
local v3251 = (v3218 + v3219) / 2 - Vector3.new(0, v3233.Y / 2, 0)
if n57 > 0 then
table.sort(t136, function(p796, p797)
return p796.y < p797.y
end)
local n58 = 0
local y = t136[1].y
local v3254, v3255, v3256 = ipairs(t136)
local v3257 = geniter(v3254, v3255, v3256)
while true do
local v3258 = table.pack(v3257())
if v3258[1] then
local v3259 = v3258[3]
n58 += v3259.vol
y = v3259.y
if n57 * 0.1 <= n58 then
break
end
else
break
end
end
local v3260 = vector32 / n57
v3251 = Vector3.new(v3260.X, y, v3260.Z)
end
local function v3261(p798)
for _, v in ipairs(p795) do
if v.Transparency < 0.95 then
local v3264 = v.CFrame:PointToObjectSpace(p798)
local v3265 = v.Size / 2 + Vector3.new(0.6, 0.6, 0.6)
if math.abs(v3264.X) <= v3265.X and math.abs(v3264.Y) <= v3265.Y and math.abs(v3264.Z) <= v3265.Z then
return true
end
end
end
return false
end
local n59 = 0
while true do
if n59 < 150 then
local v3267 = v3251 - Vector3.new(0, 1.6 + n59, 0)
if v3261(v3267) or v3261(v3267 - Vector3.new(0, 1.8, 0)) then
n59 += 1
continue
end
break
end
break
end
local function v3268(p799)
local vector33 = Vector3.new(p799.X, 0, p799.Z)
return vector33.Magnitude > 0.05 and vector33.Unit or nil
end
local v3270
local v3271, v3272, v3273 = ipairs(p795)
local v3274 = geniter(v3271, v3272, v3273)
while true do
local v3275 = table.pack(v3274())
if v3275[1] then
local v3276 = v3275[3]
if string.find(string.lower(v3276.Name), "eye", 1, true) then
v3270 = v3268(v3276.Position - v3251)
break
end
else
break
end
end
if not v3270 then
local v3277, v3278, v3279 = ipairs(p793:GetDescendants())
for _, v in v3277, v3278, v3279 do
local v3282 = string.lower(v.Name)
if not v:IsA("Attachment") or not v3282:find("head") and not v3282:find("eye") and not v3282:find("jaw") and not v3282:find("mouth") then
continue
end
v3270 = v3268(v.WorldPosition - v3251)
if v3270 then
break
end
end
end
local vector33 = v3270 or v3268(p794.CFrame.LookVector) or Vector3.zAxis
local t137 = {
lift = n59,
rootRel = cFrameNew(v3251):ToObjectSpace(p794.CFrame),
turn = lookAt(Vector3.zero, vector33):Inverse()
}
return t137
end
local function v3285(p800, p801, p802, p803)
local v3286, v3287 = v3171(p800, p801)
if not v3286 then
return nil, v3287
end
local v3288, v3289
if p800 == "fish" then
local v3290 = tonumber(p801.minKg)
local v3291 = tonumber(p801.bigMaxKg) or tonumber(p801.maxKg)
local n60 = 1
if v3290 and v3290 > 0 and v3291 then
n60 = math.max(1, (v3290 + (v3291 - v3290) * (p802 or 0)) / v3290)
end
if (tonumber(p801.nativeLen) or 0) > 50 then
n60 *= 0.8
end
v3288, v3289 = v3177(v3286, nil, n60)
else
v3288, v3289 = v3177(v3286, nil, p803 or 1)
end
if not v3288 then
v3286:Destroy()
return nil, "Empty model"
end
v3288.Parent = v3286
local t138 = {
model = v3286,
handle = v3288,
kind = p800
}
if p800 == "fish" then
t138.overhead = v3217(v3286, v3288, v3289)
v3288.Name = "FishRoot"
else
local v3294, v3295 = v3193(v3288, v3289)
t138.rodAxis = v3294
t138.gripShift = v3295
v3288.Name = "RodRoot"
end
return t138
end
local function v3296(p804)
local clone = p804.model:Clone()
clone.Name = "SenaVisualBack"
for _, descendant in ipairs(clone:GetDescendants()) do
if descendant:IsA("BasePart") then
descendant.Size *= 0.8
elseif descendant:IsA("Weld") then
descendant.C0 = cFrameNew(descendant.C0.Position * 0.8) * descendant.C0.Rotation
elseif descendant:IsA("Attachment") then
if not descendant.Parent:IsA("Bone") then
descendant.Position *= 0.8
end
end
end
return clone, clone:FindFirstChild("RodRoot", true)
end
local function createWeld(p805, p806, p807, p808)
local UpperTorso = p805 and (p805:FindFirstChild("UpperTorso") or p805:FindFirstChild("Torso"))
if not UpperTorso or not p807 then
return nil
end
p806.Parent = p805
local Weld = Instance.new("Weld")
Weld.Part0 = UpperTorso
Weld.Part1 = p807
Weld.C0 = v3148 * cFrameNew(0, p808.gripShift * 0.8, 0) * p808.rodAxis:Inverse()
Weld.Parent = p807
return Weld
end
local function v3303(p809, p810, p811)
local RightHand = p809 and p809:FindFirstChild("RightHand")
local UpperTorso = p809 and p809:FindFirstChild("UpperTorso")
if not RightHand or not UpperTorso then
local function v3306()
end
return v3306
end
local t139 = {}
for k, v in pairs(t133) do
local v3310 = p809:FindFirstChild(k, true)
if v3310 and v3310:IsA("Motor6D") then
t139[v3310] = v
end
end
local u3311 = true
local Weld
local connection = RunService.PreSimulation:Connect(function()
for k, v in pairs(t139) do
k.Transform = v
end
end)
task.spawn(function()
RunService.PostSimulation:Wait()
RunService.PostSimulation:Wait()
if not u3311 or not p810.Parent then
return
end
local v3316 = UpperTorso.CFrame:PointToObjectSpace(RightHand.Position) + Vector3.new(0, 0, -0.1)
local Unit2 = (Vector3.xAxis - Unit * Vector3.xAxis:Dot(Unit)).Unit
Weld = Instance.new("Weld")
Weld.Part0 = UpperTorso
Weld.Part1 = p810
Weld.C0 = fromMatrix(v3316, Unit2, Unit) * cFrameNew(0, p811.gripShift, 0) * p811.rodAxis:Inverse()
Weld.Parent = p810
end)
local function v3318()
u3311 = false
connection:Disconnect()
if Weld then
Weld:Destroy()
end
end
return v3318
end
local function v3319(p812, p813, p814)
local Head = p812 and p812:FindFirstChild("Head")
if not Head then
local function v3321()
end
return v3321
end
local overhead = p814.overhead
local Weld = Instance.new("Weld")
Weld.Part0 = Head
Weld.Part1 = p813
Weld.C0 = cFrameNew(0, Head.Size.Y / 2 + 1 + overhead.lift, 0) * overhead.turn * overhead.rootRel
Weld.Parent = p813
local cFrame = Angles(3.1415926535897931, 0, 0)
local RightShoulder = p812:FindFirstChild("RightShoulder", true)
local LeftShoulder = p812:FindFirstChild("LeftShoulder", true)
local RightElbow = p812:FindFirstChild("RightElbow", true)
local LeftElbow = p812:FindFirstChild("LeftElbow", true)
local connection = RunService.PreSimulation:Connect(function()
if RightShoulder then
RightShoulder.Transform = cFrame * Angles(0, 0, -0.20943951023931956)
end
if LeftShoulder then
LeftShoulder.Transform = cFrame * Angles(0, 0, 0.20943951023931956)
end
if RightElbow then
RightElbow.Transform = cFrameNew()
end
if LeftElbow then
LeftElbow.Transform = cFrameNew()
end
end)
local function v3330()
connection:Disconnect()
Weld:Destroy()
end
return v3330
end
local function createTool(p815, p816)
local v3332, v3333 = v3285(p815, p816, t132.fishWeight, t132.rodScale)
if not v3332 then
return nil, v3333
end
local model = v3332.model
local handle = v3332.handle
local Tool = Instance.new("Tool")
Tool.Name = p816.name
Tool.CanBeDropped = false
Tool.RequiresHandle = false
Tool:SetAttribute("SenaVisual", p815)
if p815 == "fish" then
Tool:SetAttribute("ItemType", "Phone")
Tool.ToolTip = tostring(p816.tier or "Fish")
else
Tool.ToolTip = "Rod"
end
if p816.icon then
Tool.TextureId = p816.icon
end
local v3337
local v3338
if p815 == "rods" then
v3337, v3338 = v3296(v3332)
end
for _, child in ipairs(model:GetChildren()) do
child.Parent = Tool
end
model:Destroy()
Tool.Equipped:Connect(function()
task.defer(t132.refreshQuality)
end)
Tool.Unequipped:Connect(function()
task.defer(t132.refreshQuality)
end)
local u3341
if p815 == "rods" then
local u3342
t132.backs[Tool] = function(p817)
local Character = LocalPlayer.Character
if not p817 or not Character then
v3337.Parent = nil
elseif v3337.Parent ~= Character then
if u3342 then
u3342:Destroy()
end
u3342 = createWeld(Character, v3337, v3338, v3332)
end
end
Tool.Destroying:Connect(function()
t132.backs[Tool] = nil
v3337:Destroy()
end)
Tool.Equipped:Connect(function()
t132.backRod = Tool
t132.updateBack()
if u3341 then
u3341()
end
u3341 = v3303(Tool.Parent, handle, v3332)
end)
Tool.Unequipped:Connect(function()
if u3341 then
u3341()
u3341 = nil
end
t132.backRod = Tool
task.defer(t132.updateBack)
end)
else
Tool.Equipped:Connect(function()
if u3341 then
u3341()
end
u3341 = v3319(Tool.Parent, handle, v3332)
end)
Tool.Unequipped:Connect(function()
if u3341 then
u3341()
u3341 = nil
end
end)
end
return Tool
end
t132.spawn = function(p818, p819)
local v3344 = v3165(p818, p819)
if not v3344 then
t132.status = "Pick an item first"
return false
end
local Backpack = LocalPlayer:FindFirstChild("Backpack")
if not Backpack then
t132.status = "Backpack not ready"
return false
end
local v3346 = Backpack:FindFirstChild(v3344.name)
if v3346 and v3346:GetAttribute("SenaVisual") then
t132.status = v3344.name .. " is already in your backpack"
return true
end
t132.status = "Loading " .. v3344.name .. "..."
local v3347, v3348 = createTool(p818, v3344)
if not v3347 then
t132.status = v3344.name .. ": " .. tostring(v3348)
return false
end
v3347.Parent = Backpack
if p818 == "rods" then
t132.backRod = v3347
t132.updateBack()
end
t132.spawned[p818 .. "|" .. v3344.name] = {
kind = p818,
label = v3344.name
}
t132.status = v3344.name .. " added to your backpack"
return true
end
t132.respawn = function(p820)
local t140 = {}
for k, v in pairs(t132.spawned) do
if v.kind == p820 then
t140[k] = v
end
end
for _, v in pairs(t140) do
local ipairs_ = ipairs
local t141 = {
LocalPlayer:FindFirstChild("Backpack"),
LocalPlayer.Character
}
for _, v2 in ipairs_(t141) do
local VLabel = v2 and v2:FindFirstChild(v.label)
if VLabel and VLabel:IsA("Tool") and VLabel:GetAttribute("SenaVisual") then
VLabel:Destroy()
end
end
t132.spawn(v.kind, v.label)
end
end
t132.clear = function()
t132.spawned = {}
local ipairs_ = ipairs
local t142 = {
LocalPlayer:FindFirstChild("Backpack"),
LocalPlayer.Character
}
for _, v in ipairs_(t142) do
if v then
for _, child in ipairs(v:GetChildren()) do
if child:IsA("Tool") and child:GetAttribute("SenaVisual") then
child:Destroy()
end
end
end
end
t132.status = "Removed all visual items"
task.defer(t132.refreshQuality)
end
local function v3365(p821)
local v3366 = t132.remote[p821]
if not v3366 then
return
end
t132.remote[p821] = nil
for _, v in ipairs(v3366.cleanup) do
pcall(v)
end
end
local function v3369(p822)
local v3370, v3371, v3372 = string.match(p822 or "", "^(%a+)|([^|]+)|?(.*)$")
return v3370, v3371, tonumber(v3372)
end
local function v3373(p823, p824, p825)
local playerByUserId = Players:GetPlayerByUserId(tonumber(p823) or 0)
local Character = playerByUserId and playerByUserId.Character
if not Character then
v3365(p823)
return
end
local v3376 = p824 .. "#" .. p825
local v3377 = t132.remote[p823]
if v3377 and v3377.key == v3376 and v3377.char == Character then
return
end
v3365(p823)
local t143 = {
key = v3376,
char = Character,
cleanup = {}
}
t132.remote[p823] = t143
local v3379, v3380, v3381 = v3369(p824)
local v3382 = (v3379 == "rods" or v3379 == "fish") and v3165(v3379, v3380) or nil
if v3382 then
local v3383 = v3285(v3379, v3382, v3379 == "fish" and (v3381 or 0) or 0, v3379 == "rods" and (v3381 or 1) or 1)
if v3383 and t132.remote[p823] == t143 and Character.Parent then
v3383.model.Name = "SenaVisualRemote"
v3383.model.Parent = Character
table.insert(t143.cleanup, (v3379 == "rods" and v3303 or v3319)(Character, v3383.handle, v3383))
table.insert(t143.cleanup, function()
v3383.model:Destroy()
end)
elseif v3383 then
v3383.model:Destroy()
end
end
local v3384, v3385 = v3369(p825)
local v3386 = v3384 == "rods" and v3165("rods", v3385) or nil
if v3386 and t132.remote[p823] == t143 then
local v3387 = v3285("rods", v3386, 0, 1)
if v3387 and t132.remote[p823] == t143 and Character.Parent then
local v3388, v3389 = v3296(v3387)
v3387.model:Destroy()
createWeld(Character, v3388, v3389, v3387)
table.insert(t143.cleanup, function()
v3388:Destroy()
end)
elseif v3387 then
v3387.model:Destroy()
end
end
task.defer(t132.refreshQuality)
end
task.spawn(function()
while v16() do
local n61 = 6
pcall(function()
if #Players:GetPlayers() <= 1 then
for k in pairs(t132.remote) do
v3365(k)
end
return
end
local SenaBackend = genv.SenaBackend or {}
local Api = SenaBackend.Api or "http://56.10.112.179:8080"
local s9 = ""
local s10 = ""
local Character = LocalPlayer.Character
if Character then
for _, child in ipairs(Character:GetChildren()) do
local attribute = child:IsA("Tool") and child:GetAttribute("SenaVisual")
if attribute then
s9 = attribute .. "|" .. child.Name .. "|" .. tostring(attribute == "fish" and t132.fishWeight or t132.rodScale)
break
end
end
if Character:FindFirstChild("SenaVisualBack") and t132.backRod then
s10 = "rods|" .. t132.backRod.Name
end
end
local data = HttpService:JSONDecode(game:HttpGet(string.format("%s/vstate?key=%s&job=%s&uid=%d&held=%s&back=%s", Api, HttpService:UrlEncode(SenaBackend.Key or "sena_20VvixjHsd1OPPwgHYJAstpM"), HttpService:UrlEncode(game.JobId), LocalPlayer.UserId, HttpService:UrlEncode(s9), HttpService:UrlEncode(s10)), true))
if type(data) ~= "table" or data.ok ~= true then
return
end
n61 = tonumber(data.poll) or 4
local t144 = {}
local pairs_ = pairs
local players = data.players or {}
for k, player in pairs_(players) do
local v3406 = tostring(k)
t144[v3406] = true
v3373(v3406, tostring(player.held or ""), tostring(player.back or ""))
end
for k in pairs(t132.remote) do
if not t144[k] then
v3365(k)
end
end
end)
task.wait(n61)
end
for k in pairs(t132.remote) do
v3365(k)
end
end)
LocalPlayer.CharacterAdded:Connect(function()
if not v16() then
return
end
task.wait(1.5)
for _, v in pairs(t132.spawned) do
pcall(t132.spawn, v.kind, v.label)
end
end)
return t132
end
genv.__SenaV4Visual = v3143()
end
do
local HttpService = game:GetService("HttpService")
local t145 = {
hopFailed = false,
lastHopAt = 0
}
pcall(function()
TeleportService.TeleportInitFailed:Connect(function(p826)
if p826 == LocalPlayer then
t145.hopFailed = true
end
end)
end)
t145.collectServers = function(p827)
local t146 = {}
local s11 = ""
for i = 1, 3 do
local ok, result = pcall(function()
local v3418 = ("https://games.roblox.com/v1/games/%d/servers/Public?sortOrder=Asc&limit=100&excludeFullGames=true"):format(game.PlaceId)
if s11 ~= "" then
v3418 ..= "&cursor=" .. s11
end
return HttpService:JSONDecode(game:HttpGet(v3418))
end)
if ok and type(result) == "table" then
local ipairs_ = ipairs
local data = result.data or {}
for _, v in ipairs_(data) do
if tostring(v.id) ~= game.JobId and v.playing and v.maxPlayers and v.playing < v.maxPlayers and (not p827 or v.playing <= p827) then
t146[#t146 + 1] = {
id = tostring(v.id),
playing = v.playing
}
end
end
s11 = result.nextPageCursor or ""
if s11 ~= "" then
continue
end
end
break
end
table.sort(t146, function(p828, p829)
return p828.playing < p829.playing
end)
return t146
end
t145.hopToList = function(p830)
if type(p830) ~= "table" or #p830 == 0 then
return false
end
for _, v in ipairs(p830) do
t145.hopFailed = false
if pcall(function()
TeleportService:TeleportToPlaceInstance(game.PlaceId, v.id, LocalPlayer)
end) then
local now = os.clock()
while not t145.hopFailed and os.clock() - now < 6 do
task.wait(0.25)
end
if not t145.hopFailed then
return true
end
end
task.wait(0.3)
end
return false
end
t145.hopEmptiest = function()
return t145.hopToList(t145.collectServers(nil))
end
t145.privateStatus = "Pick a max player count, then Hop Server Now."
t145.privateMax = function()
return math.max(1, math.floor(tonumber(tostring(senaV4Config.PrivateServerMax or "2"):match("%d+")) or 2))
end
t145.findPrivateTargets = function()
local v3426 = t145.privateMax()
local v3427 = t145.collectServers(nil)
if #v3427 == 0 then
return nil
end
local t147 = {}
for _, v in ipairs(v3427) do
if v.playing + 1 <= v3426 then
t147[#t147 + 1] = v
end
end
local v3431 = t147
if #v3431 == 0 then
local playing = v3427[1].playing
for _, v in ipairs(v3427) do
if v.playing == playing then
v3431[#v3431 + 1] = v
end
end
end
local t148 = {}
while #v3431 > 0 and #t148 < 5 do
t148[#t148 + 1] = table.remove(v3431, math.random(1, #v3431))
end
return t148
end
t145.hopPrivateOnce = function()
local v3436 = t145.privateMax()
local v3437 = #Players:GetPlayers()
if v3437 <= v3436 then
t145.privateStatus = "This server is good (" .. v3437 .. " player(s), max " .. v3436 .. ")."
return false
end
if t145.hubBusy() then
t145.privateStatus = "Waiting until you finish stealing..."
return false
end
t145.privateStatus = "Searching for a quieter server..."
local v3438 = t145.findPrivateTargets()
if not v3438 or #v3438 == 0 then
t145.privateStatus = "Could not load the server list. Try again."
return false
end
t145.privateStatus = "Teleporting..."
t145.lastHopAt = os.clock()
if t145.hopToList(v3438) then
return true
end
t145.privateStatus = "Teleport failed. Trying again soon."
return false
end
t145.startPrivateAutoHop = function()
if t145.privateAutoRunning then
return
end
t145.privateAutoRunning = true
task.spawn(function()
while v16() and senaV4Config.PrivateServerAuto do
local v3439 = t145.privateMax()
if v3439 >= #Players:GetPlayers() then
t145.privateStatus = "Good server found. Waiting..."
task.wait(3)
else
t145.hopPrivateOnce()
task.wait(5)
end
end
t145.privateAutoRunning = false
if not senaV4Config.PrivateServerAuto then
t145.privateStatus = "Auto hop stopped."
end
end)
end
local function hubBusy()
if senaV4Config.IsStealing or senaV4Config.IsPlacing then
return true
end
local __SenaV4EggRuntime = genv.__SenaV4EggRuntime
if __SenaV4EggRuntime and (__SenaV4EggRuntime.running or __SenaV4EggRuntime.travelBusy or __SenaV4EggRuntime.carry and __SenaV4EggRuntime.carry.active) then
return true
end
local __SenaV4PlayerSteal = genv.__SenaV4PlayerSteal
if __SenaV4PlayerSteal and __SenaV4PlayerSteal.running then
return true
end
return false
end
t145.hubBusy = hubBusy
t145.startHopLoop = function()
if t145.hopLoopRunning then
return
end
t145.hopLoopRunning = true
task.spawn(function()
while v16() do
task.wait(2)
if senaV4Config.HopNoMatch and not t145.hubBusy() then
if (tonumber(senaV4Config.HopCooldown) or 5) < os.clock() - t145.lastHopAt then
local __SenaV4EggRuntime = genv.__SenaV4EggRuntime
if senaV4Config.AutoSteal and (__SenaV4EggRuntime and __SenaV4EggRuntime.stats and __SenaV4EggRuntime.stats.matching or 0) <= 0 and not v177() then
t145.lastHopAt = os.clock()
t145.hopEmptiest()
end
end
end
end
t145.hopLoopRunning = false
end)
end
t145.startAntiTreadmillLoop = function()
if t145.antiTreadmillRunning then
return
end
t145.antiTreadmillRunning = true
task.spawn(function()
while v16() do
if senaV4Config.AntiTreadmill then
local __SenaV4TreadmillManager = genv.__SenaV4TreadmillManager
pcall(function()
if __SenaV4TreadmillManager and __SenaV4TreadmillManager.activeTreadmill ~= nil then
__SenaV4TreadmillManager:_cancelIdle(true)
__SenaV4TreadmillManager:_requestUnequip()
end
end)
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
if HumanoidRootPart and HumanoidRootPart.Anchored then
pcall(function()
HumanoidRootPart.Anchored = false
end)
end
end
task.wait(0.3)
end
t145.antiTreadmillRunning = false
end)
end
t145.setBackpackRates = function(p831)
senaV4Config.BackpackRateEsp = p831 == true
if not t145.backpackRatesRunning then
t145.backpackRatesRunning = true
task.spawn(function()
local EggRecords
local Save
pcall(function()
EggRecords = require(ReplicatedStorage.Shared.Util.EggRecords)
Save = require(ReplicatedStorage.Shared.Save)
end)
while v16() do
local ScrollingFrame
pcall(function()
ScrollingFrame = LocalPlayer.PlayerGui.BackpackGui.Backpack.Main.Inventory.ScrollingFrame
end)
local __SenaV4Webhook = genv.__SenaV4Webhook
local SenaDiscord = ScrollingFrame and ScrollingFrame.Parent:FindFirstChild("SenaDiscord")
if ScrollingFrame and senaV4Config.BackpackRateEsp and not SenaDiscord then
local TextLabel = Instance.new("TextLabel")
TextLabel.Name = "SenaDiscord"
TextLabel.BackgroundTransparency = 1
TextLabel.Position = UDim2.new(0.34, 0, 0.017, 0)
TextLabel.Size = UDim2.new(0.3, 0, 0.09, 0)
TextLabel.Font = Enum.Font.GothamBlack
TextLabel.Text = "discord.gg/senahub"
TextLabel.TextScaled = true
TextLabel.TextXAlignment = Enum.TextXAlignment.Left
TextLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel.TextStrokeTransparency = 0
TextLabel.ZIndex = 40
TextLabel.Parent = ScrollingFrame.Parent
elseif SenaDiscord and not senaV4Config.BackpackRateEsp then
SenaDiscord:Destroy()
end
if ScrollingFrame then
local t149 = {}
if senaV4Config.BackpackRateEsp and EggRecords and Save and __SenaV4Webhook then
local v3454 = (Save.Peek or Save.Get)()
local pairs_ = pairs
local EggInventory = v3454 and v3454.EggInventory or {}
for _, v in pairs_(EggInventory) do
local ok, result = pcall(EggRecords.DisplayNameWithWeight, v)
if ok and type(result) == "string" then
t149[result] = t149[result] or {}
table.insert(t149[result], v)
end
end
end
local t150 = {}
for _, child in ipairs(ScrollingFrame:GetChildren()) do
local ToolName = child:IsA("GuiButton") and child:FindFirstChild("ToolName")
if ToolName then
local Text = ToolName.Text
local v3466 = (t150[Text] or 0) + 1
local v3467 = t149[Text] and t149[Text][v3466]
local SenaRate = child:FindFirstChild("SenaRate")
if v3467 then
t150[Text] = v3466
if not SenaRate then
SenaRate = Instance.new("TextLabel")
SenaRate.Name = "SenaRate"
SenaRate.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
SenaRate.BackgroundTransparency = 0.35
SenaRate.BorderSizePixel = 0
SenaRate.Position = UDim2.new(0.04, 0, 0, 3)
SenaRate.Size = UDim2.new(0.92, 0, 0.24, 0)
SenaRate.Font = Enum.Font.GothamBlack
SenaRate.TextScaled = true
SenaRate.TextColor3 = Color3.fromRGB(73, 211, 31)
SenaRate.TextStrokeTransparency = 0
SenaRate.ZIndex = 40
local UICorner = Instance.new("UICorner")
UICorner.CornerRadius = UDim.new(0, 6)
UICorner.Parent = SenaRate
local UITextSizeConstraint = Instance.new("UITextSizeConstraint")
UITextSizeConstraint.MaxTextSize = 20
UITextSizeConstraint.Parent = SenaRate
SenaRate.Parent = child
end
SenaRate.Text = __SenaV4Webhook.compact(__SenaV4Webhook.rateOf(v3467)) .. "/s"
elseif SenaRate then
SenaRate:Destroy()
end
end
end
end
if not senaV4Config.BackpackRateEsp then
break
end
task.wait(1)
end
t145.backpackRatesRunning = false
end)
return
end
end
local function v3471()
local t151 = {
status = "Disabled",
banner = "Unknown",
rotation = 0,
pity = 0,
pityMax = 100,
free = 0,
trades = 0,
demands = "-",
stock = "-",
ready = 0,
total = 3,
missing = "None",
cache = nil,
cacheAt = 0,
lastReroll = 0
}
local Directory
local AssetItems
local AssetEarnings
local Save
pcall(function()
Directory = require(ReplicatedStorage.Data.Assets).Directory
end)
pcall(function()
AssetItems = require(ReplicatedStorage.Shared.Util.AssetItems)
end)
pcall(function()
AssetEarnings = require(ReplicatedStorage.Shared.Util.AssetEarnings)
end)
pcall(function()
Save = require(ReplicatedStorage.Shared.Save)
end)
local function v3477()
local ok, result = pcall(function()
return require(ReplicatedStorage.Shared.Remotes).ScrambleTradeIn
end)
local v3480 = ok and result or nil
return v3480
end
local function v3481()
return senaV4Config.ScrambleTradeInTrade or senaV4Config.ScrambleTradeInReroll
end
local function v3482(p832)
return ((tostring(p832 or ""):lower():match("^%s*(.-)%s*$") or ""):gsub("%s*egg$", ""))
end
local function matches(p833, p834)
local v3484 = v3482(p833)
local v3485 = v3482(p834)
if v3484 == "" or v3485 == "" then
return false
end
if v3484 == v3485 then
return true
end
if not Directory or Directory[p833] then
return false
end
local v3486 = Directory[p834]
return type(v3486) == "table" and type(v3486.DisplayName) == "string" and v3482(v3486.DisplayName) == v3484
end
t151.matches = matches
local function v3487(p835)
local v3488 = Directory and Directory[p835]
local DisplayName = type(v3488) == "table" and v3488.DisplayName
return type(DisplayName) == "string" and DisplayName ~= "" and DisplayName or tostring(p835)
end
local function v3490(p836, p837)
local t152 = {}
for i, v in ipairs(p836) do
t152[i] = v3487(v)
end
return table.concat(t152, p837)
end
t151.state = function(p838)
local now = os.clock()
if not p838 and t151.cache and now - t151.cacheAt < 2.5 then
return t151.cache
end
local v3495 = v3477()
if not v3495 or not v3495.AskState then
return t151.cache
end
local ok, cache = pcall(function()
return v3495.AskState:InvokeServer()
end)
if ok and type(cache) == "table" then
t151.cache = cache
t151.cacheAt = now
end
return t151.cache
end
local function v3498(p839)
local ScrambleTradeInBanners = senaV4Config.ScrambleTradeInBanners
if type(ScrambleTradeInBanners) ~= "table" or #ScrambleTradeInBanners == 0 then
return true
end
if not p839 or not p839.BannerId then
return true
end
local v3500 = v3482(p839.BannerId)
local v3501 = v3482(p839.BannerDisplayName)
for _, ScrambleTradeInBanner in ipairs(ScrambleTradeInBanners) do
local v3504 = v3482(ScrambleTradeInBanner)
if v3504 == v3500 or v3501 ~= "" and v3504 == v3501 then
return true
end
end
return false
end
local function v3505(p840)
return p840 and type(p840.Requirements) == "table" and p840.Requirements or {}
end
local function v3506()
local u3507
if Save then
pcall(function()
u3507 = (Save.Peek or Save.Get)()
end)
end
return u3507
end
local function v3508(p841)
local t153 = {}
if not p841 or not AssetItems then
return t153
end
local t154 = {}
local ipairs_ = ipairs
local EquippedAssets = p841.EquippedAssets or {}
for _, EquippedAsset in ipairs_(EquippedAssets) do
t154[EquippedAsset] = true
end
local t155 = {}
pcall(function()
for k in pairs(require(ReplicatedStorage.Client.AssetRoster).ReadOwnerPen(LocalPlayer.UserId)) do
t155[k] = true
end
end)
local pairs_ = pairs
local Inventory = p841.Inventory or {}
for k, v in pairs_(Inventory) do
local ok, result = pcall(AssetItems.Decode, v)
if ok and type(result) == "table" and result.Category and not result.IsFavorite and not result.InFuse and not t154[k] and not t155[k] then
local huge = math.huge
if AssetEarnings then
local ok2, result2 = pcall(AssetEarnings.LiveRatePerSecond, {
Category = result.Category,
Scale = math.max(tonumber(result.Scale) or 1, 0.01),
Mutations = type(result.Mutations) == "table" and result.Mutations or {}
}, p841.Gamepasses, p841.Products)
if ok2 and type(result2) == "number" then
huge = result2
end
end
t153[#t153 + 1] = {
uid = k,
category = result.Category,
rate = huge
}
end
end
table.sort(t153, function(p842, p843)
if p842.rate == p843.rate then
return tostring(p842.uid) < tostring(p843.uid)
end
return p842.rate < p843.rate
end)
return t153
end
local function selectPets(p844, p845)
local v3527 = v3508(p845)
local t156 = {}
local t157 = {}
local t158 = {}
for i, v in ipairs(p844) do
local v3533
for _, v2 in ipairs(v3527) do
if not t156[v2.uid] and matches(v2.category, v) then
v3533 = v2
break
end
end
if v3533 then
t156[v3533.uid] = true
t157[i] = v3533
else
t158[#t158 + 1] = v
end
end
return t157, t158, v3527
end
t151.selectPets = selectPets
local function v3536(p846, p847, p848)
local t159 = {}
local t160 = {}
for _, v in ipairs(p846) do
if not t159[v] then
t160[#t160 + 1] = v
end
t159[v] = (t159[v] or 0) + 1
end
local t161 = {}
for _, v in ipairs(t160) do
local n62 = 0
for _, v2 in ipairs(p848) do
if matches(v2.category, v) then
n62 += 1
end
end
local pairs_ = pairs
local EggInventory = p847 and p847.EggInventory or {}
for _, v2 in pairs_(EggInventory) do
if type(v2) == "table" and matches(v2.AssetCategory, v) then
n62 += 1
end
end
t161[#t161 + 1] = string.format("%s %d/%d", v3487(v), math.min(n62, t159[v]), t159[v])
end
return table.concat(t161, " ")
end
local function teleport()
local HumanoidRootPart = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
if not HumanoidRootPart then
return false
end
local v3553 = v14()
local Machines = v3553 and v3553:FindFirstChild("Machines")
local RiftMachine = Machines and Machines:FindFirstChild("RiftMachine")
local Machine = RiftMachine and RiftMachine:FindFirstChild("Machine")
HumanoidRootPart.CFrame = Machine and Machine:IsA("BasePart") and Machine.CFrame * cFrameNew(0, Machine.Size.Y * 0.5 + 3, 4) or cFrameNew(533.4, 72, -330)
HumanoidRootPart.AssemblyLinearVelocity = Vector3.zero
return true
end
t151.teleport = teleport
t151.openUI = function()
return (pcall(function()
require(ReplicatedStorage.Client.Tabs).Activate("DrScrambleTradeIn")
end))
end
local function v3557(p849, p850)
local v3558 = v3477()
if not v3558 or not v3558.AskTradeIn then
return false, "Trade remote unavailable"
end
local t162 = {}
for i = 1, #p849 do
local v3561 = p850[i]
if v3561 then
t162[#t162 + 1] = v3561.uid
continue
end
return false, "Requirements incomplete"
end
t151.status = "Trading pets into Dr Scramble"
local ok, result = pcall(function()
return v3558.AskTradeIn:InvokeServer(t162)
end)
if (not ok or result == false) and teleport() then
task.wait(0.3)
ok, result = pcall(function()
return v3558.AskTradeIn:InvokeServer(t162)
end)
end
if not ok or result == false then
local v3564 = false
local tostring_ = tostring
local v3566 = result or "Trade rejected"
return v3564, tostring_(v3566)
end
pcall(function()
if v3558.AskFinishReveal then
v3558.AskFinishReveal:InvokeServer()
end
end)
t151.trades += 1
t151.state(true)
return true
end
t151.tradeOnce = function()
local v3567 = v3505(t151.state(true))
if #v3567 < 3 then
return false, "Cannot read the recipe"
end
local v3568, v3569 = selectPets(v3567, v3506())
if #v3569 > 0 then
return false, "Missing: " .. v3490(v3569, ", ")
end
return v3557(v3567, v3568)
end
t151.reroll = function()
local v3570 = t151.state(false)
if (tonumber(v3570 and v3570.FreeRefreshesRemaining) or 0) <= 0 then
return false, "No free rerolls left"
end
local v3571 = v3477()
if not v3571 or not v3571.AskRefresh then
return false, "Refresh remote unavailable"
end
if not pcall(function()
return v3571.AskRefresh:InvokeServer()
end) then
return false, "Reroll failed"
end
t151.state(true)
return true
end
t151.tick = function()
local v3572 = t151.state(false)
if not v3572 then
t151.status = "Trade-In state unavailable"
return
end
if v3572.Unlocked == false then
t151.status = "Dr Scramble Trade-In is locked"
return
end
t151.banner = tostring(v3572.BannerDisplayName or v3572.BannerId or "Unknown")
t151.rotation = math.max(0, math.floor(tonumber(v3572.SecondsUntilRotation) or 0))
t151.pity = tonumber(v3572.PityCount) or 0
t151.pityMax = tonumber(v3572.PityThreshold) or 100
t151.free = tonumber(v3572.FreeRefreshesRemaining) or 0
if v3572.PendingReward then
t151.status = "Finishing reward"
local v3573 = v3477()
pcall(function()
if v3573 and v3573.AskFinishReveal then
v3573.AskFinishReveal:InvokeServer()
end
end)
t151.cache = nil
return
end
if not v3498(v3572) then
t151.status = "Waiting for banner (now: " .. t151.banner .. ")"
t151.demands = "-"
t151.stock = "-"
t151.ready = 0
t151.missing = "None"
return
end
local v3574 = v3505(v3572)
t151.total = #v3574
t151.demands = #v3574 > 0 and v3490(v3574, " / ") or "-"
if #v3574 < 3 then
t151.status = "Waiting for requirements"
return
end
local v3575 = v3506()
local v3576, v3577, v3578 = selectPets(v3574, v3575)
t151.stock = v3536(v3574, v3575, v3578)
t151.ready = #v3574 - #v3577
t151.missing = #v3577 > 0 and v3490(v3577, ", ") or "None"
if #v3577 == 0 then
if senaV4Config.ScrambleTradeInTrade then
t151.status = "Requirements complete, submitting"
local v3579, v3580 = v3557(v3574, v3576)
t151.status = v3579 and "Trade complete" or "Trade: " .. tostring(v3580)
else
t151.status = "Ready to trade (Auto Trade-In is off)"
end
return
end
if senaV4Config.ScrambleTradeInReroll and t151.free > 0 and os.clock() - t151.lastReroll > 3 then
t151.lastReroll = os.clock()
t151.status = "Rerolling the recipe"
t151.reroll()
return
end
t151.status = #v3577 > 0 and "Waiting for " .. t151.missing or t151.status
end
task.spawn(function()
while v16() do
if v3481() then
local ok, result = pcall(t151.tick)
if not ok then
t151.status = "Trade-In error: " .. tostring(result)
end
elseif t151.status ~= "Disabled" then
t151.status = "Disabled"
end
task.wait(1)
end
end)
genv.__SenaV4ScrambleTradeIn = t151
end
v3471()
local function v3583()
local LocalPlayer2 = game:GetService("Players").LocalPlayer
local t163 = {
status = "Disabled",
inArena = false,
joins = 0,
hits = 0,
dodges = 0
}
local ScrambleBossHazards
pcall(function()
ScrambleBossHazards = require(ReplicatedStorage.Shared.Util.ScrambleBossHazards)
end)
local function v3587()
local ok, result = pcall(function()
return require(ReplicatedStorage.Shared.Remotes)
end)
local v3590 = ok and result or nil
return v3590
end
local function v3591()
return workspace:FindFirstChild("ScrambleArena")
end
local function v3592()
return workspace:FindFirstChild("ScrambleArenaPortal")
end
local function v3593()
local Character = LocalPlayer2.Character
if Character then
return Character:FindFirstChild("HumanoidRootPart"), Character:FindFirstChildOfClass("Humanoid"), Character
end
return nil
end
local function amInArena()
local v3596 = v3591()
if not v3596 then
return false
end
local v3597 = v3593()
if not v3597 then
return false
end
local attribute = v3596:GetAttribute("Center")
if typeof(attribute) == "Vector3" then
return (v3597.Position - attribute).Magnitude < (tonumber(v3596:GetAttribute("Radius")) or 500) + 80
end
return false
end
t163.amInArena = amInArena
local function v3599()
local __SenaV4StealWantsCharacter = genv.__SenaV4StealWantsCharacter
return senaV4Config.AutoSteal == true and __SenaV4StealWantsCharacter ~= nil and __SenaV4StealWantsCharacter() == true
end
local t164 = {}
pcall(function()
local v3602 = v3587()
if v3602 and v3602.ScrambleBoss and v3602.ScrambleBoss.Hazard then
v3602.ScrambleBoss.Hazard.OnClientEvent:Connect(function(p851)
if type(p851) == "table" and p851.Id then
t164[p851.Id] = p851
task.delay((p851.Warn or 0) + (ScrambleBossHazards and ScrambleBossHazards.ActiveSeconds(p851) or 0.25) + 1.5, function()
if t164[p851.Id] == p851 then
t164[p851.Id] = nil
end
end)
end
end)
end
end)
local function v3603(p852, p853, p854)
if not ScrambleBossHazards then
return false
end
local v3604 = p854 - (p852.At or p854)
local v3605 = ScrambleBossHazards.ActiveSeconds(p852)
if not (v3604 >= 0) or not (v3604 <= v3605) then
if v3604 < 0 and v3604 > -2.2 then
for i = 0, 5 do
if ScrambleBossHazards.Contains(p852, i / 5 * v3605, p853, false, 3.5) then
return true
end
end
end
elseif ScrambleBossHazards.Contains(p852, v3604, p853, false, 3.5) then
return true
end
return false
end
local function v3607(p855, p856)
for _, v in pairs(t164) do
if v3603(v, p855, p856) then
return false
end
end
return true
end
local function v3610(p857)
local v3611 = v3593()
if v3611 then
return not v3607(v3611.Position, p857)
end
return false
end
local function v3612(p858)
local v3613 = v3593()
local v3614 = v3591()
if not v3613 or not v3614 then
return nil
end
local attribute = v3614:GetAttribute("Center")
local v3616 = tonumber(v3614:GetAttribute("HubRadius")) or 88
local Y = tonumber(v3614:GetAttribute("FloorY")) or v3613.Position.Y
local Position = v3613.Position
for _, v in ipairs({
9,
15,
23,
33,
45
}) do
local v3621
local v3622
for i = 0, 11 do
local v3624 = i / 12 * 3.1415926535897931 * 2
local vector32 = Vector3.new(Position.X + math.cos(v3624) * v, Y + 3, Position.Z + math.sin(v3624) * v)
if (typeof(attribute) ~= "Vector3" or Vector3.new(vector32.X - attribute.X, 0, vector32.Z - attribute.Z).Magnitude <= v3616 + 8) and v3607(vector32, p858) then
local Magnitude = (vector32 - Position).Magnitude
if not v3622 or Magnitude < v3622 then
v3621 = vector32
v3622 = Magnitude
end
end
end
if v3621 then
return v3621
end
end
return nil
end
local function v3627(p859)
if not v3610(p859) then
return false
end
local v3628 = v3612(p859)
if not v3628 then
return false
end
local v3629 = v3593()
if v3629 then
v3629.CFrame = cFrameNew(v3628)
v3629.AssemblyLinearVelocity = Vector3.zero
t163.dodges += 1
end
return true
end
local n63 = 0
local function v3631()
local _, v3633, v3634 = v3593()
if not v3634 then
return nil
end
local __SenaV4IsBatTool = genv.__SenaV4IsBatTool or function(p860)
return p860:IsA("Tool") and p860:GetAttribute("IsBat") == true
end
for _, child in ipairs(v3634:GetChildren()) do
if not __SenaV4IsBatTool(child) then
continue
end
return child
end
local Backpack = LocalPlayer2:FindFirstChild("Backpack")
if Backpack and v3633 then
for _, child in ipairs(Backpack:GetChildren()) do
if not __SenaV4IsBatTool(child) then
continue
end
pcall(function()
v3633:EquipTool(child)
end)
return child
end
end
return nil
end
local function v3641(p861)
local v3642 = v3631()
if not v3642 then
return
end
local serverTimeNow = workspace:GetServerTimeNow()
if serverTimeNow - n63 < 0.22 then
return
end
n63 = serverTimeNow
pcall(function()
v3642:Activate()
end)
local Handle = v3642:FindFirstChild("Handle") or v3642:FindFirstChildWhichIsA("BasePart", true)
if Handle and p861 and type(firetouchinterest) == "function" then
pcall(function()
firetouchinterest(Handle, p861, 0)
task.wait(0.02)
firetouchinterest(Handle, p861, 1)
end)
end
t163.hits += 1
pcall(function()
local v3645 = v3587()
if v3645 and v3645.BatSwing then
v3645.BatSwing.Trigger:FireServer(nil, string.format("%d:%d:%d", LocalPlayer2.UserId, t163.hits, math.floor(serverTimeNow * 1000)))
end
end)
end
local t165 = {
Floor = true,
Structure = true,
Collision = true,
Windows = true,
BackgroundCrates = true,
Crates = true,
Cranes = true,
VFX = true,
Coils = true,
Center = true,
BossSpawn = true,
PlayerSpawn = true,
LeaveTeleport = true,
HubBlocker = true,
FloorSlime = true,
Drones = true,
ScrambleHazards = true
}
local function v3647(p862)
if p862:IsA("BasePart") then
return p862
end
return p862.PrimaryPart or p862:FindFirstChild("Core") or p862:FindFirstChild("Hitbox") or p862:FindFirstChild("HumanoidRootPart") or p862:FindFirstChildWhichIsA("BasePart", true)
end
local function v3648(p863)
local v3649 = v3593()
if not v3649 then
return nil
end
local u3650
local u3651
local u3652
local function v3653(p864, p865)
local v3654 = v3647(p864)
if not v3654 then
return
end
local Magnitude = (v3654.Position - v3649.Position).Magnitude
if not u3651 or p865 < u3651 or p865 == u3651 and Magnitude < u3652 then
u3650 = v3654
u3651 = p865
u3652 = Magnitude
end
end
for _, v in ipairs({
"Mech",
"Ball",
"Croc",
"Human",
"DrScramble",
"Pilot"
}) do
local v3658 = p863:FindFirstChild(v)
if v3658 then
v3653(v3658, 1)
end
end
for _, child in ipairs(p863:GetChildren()) do
if not t165[child.Name] and child:IsA("Model") and child.Name ~= "Mech" and child:FindFirstChildOfClass("Humanoid") then
v3653(child, 1)
end
end
local Drones = p863:FindFirstChild("Drones")
if Drones then
for _, child in ipairs(Drones:GetChildren()) do
if child:IsA("Model") then
local Hitbox = child:FindFirstChild("Hitbox") or child.PrimaryPart
if Hitbox then
v3653(Hitbox, 2)
end
end
end
end
return u3650
end
local function v3665()
if LocalPlayer2:GetAttribute("ScrambleGrabbed") == true then
pcall(function()
local v3666 = v3587()
if v3666 and v3666.ScrambleBoss then
v3666.ScrambleBoss.HazardHit:FireServer(-2)
end
end)
return true
end
return false
end
local function v3667(p866, p867)
local v3668 = v3593()
if not v3668 then
return
end
local v3669 = p866 - v3668.Position
local Magnitude = v3669.Magnitude
if Magnitude < 0.5 then
return
end
v3668.CFrame = cFrameNew(v3668.Position + v3669.Unit * math.min(Magnitude, p867 or 40))
v3668.AssemblyLinearVelocity = Vector3.zero
end
local function v3671(p868)
local v3672 = v3593()
if not v3672 then
return
end
local Position = v3672.Position
local v3674 = math.max(1, math.ceil((p868 - Position).Magnitude / 140))
for i = 1, v3674 do
local v3676 = v3593()
if not v3676 then
return
end
v3676.CFrame = cFrameNew(Position:Lerp(p868, i / v3674))
v3676.AssemblyLinearVelocity = Vector3.zero
task.wait(0.08)
end
end
local function leaveArena()
local v3678 = v3591()
if not v3678 then
return false
end
local v3679 = v3593()
if not v3679 then
return false
end
local LeaveTeleport = v3678:FindFirstChild("LeaveTeleport")
local isBasePart = LeaveTeleport and (LeaveTeleport:IsA("BasePart") and LeaveTeleport or LeaveTeleport:FindFirstChildWhichIsA("BasePart", true))
if not isBasePart then
return false
end
v3679.CFrame = cFrameNew(isBasePart.Position + Vector3.new(0, 3, 0))
v3679.AssemblyLinearVelocity = Vector3.zero
return true
end
t163.leaveArena = leaveArena
local n64 = 0
task.spawn(function()
while v16() do
if not senaV4Config.ScrambleBossAuto or v3599() then
if senaV4Config.ScrambleBossAuto and v3599() then
t163.status = "Yielding to Auto Steal"
if amInArena() and os.clock() - n64 > 3 then
n64 = os.clock()
leaveArena()
end
elseif t163.status ~= "Disabled" then
t163.status = "Disabled"
end
task.wait(0.3)
else
local v3683 = v3591()
if amInArena() then
t163.inArena = true
local serverTimeNow = workspace:GetServerTimeNow()
if v3627(serverTimeNow) then
t163.status = "Dodging"
elseif v3665() then
t163.status = "Breaking free"
else
v3631()
local v3685 = v3648(v3683)
if v3685 then
local v3686 = v3593()
if v3686 and (v3686.Position - v3685.Position).Magnitude > 12 then
v3667(v3685.Position + Vector3.new(0, 2, 0), 42)
end
v3641(v3685)
t163.status = "Fighting (" .. tostring(v3683:GetAttribute("Phase")) .. ")"
else
t163.status = "In arena (" .. tostring(v3683:GetAttribute("Phase")) .. ")"
end
end
task.wait(0.06)
elseif v3592() then
t163.status = "Boss up - joining"
local v3687 = v3592()
local Position = v3687 and (v3687:IsA("Model") and select(1, v3687:GetPivot()).Position or v3687.Position)
if Position then
local v3689 = v3593()
if v3689 and v612 and (v3689.Position - Position).Magnitude > 600 and not v612:_isInSafeArea(v3689) then
local v3690 = v612:_resolveSafeCFrame(v3689)
if v3690 then
t163.status = "Heading to the safe zone first"
v3671(v3690.Position)
end
end
v3671(Position + Vector3.new(0, 3, 0))
t163.joins += 1
end
task.wait(1.2)
else
t163.inArena = false
t163.status = "Waiting for boss"
task.wait(0.4)
end
end
end
end)
task.spawn(function()
while v16() do
if senaV4Config.AutoSteal and not senaV4Config.ScrambleBossAuto and amInArena() then
leaveArena()
task.wait(0.5)
end
task.wait(0.25)
end
end)
genv.__SenaV4ScrambleBoss = t163
end
v3583()
local senaPanels = {}
local function v3692()
game:GetService("UserInputService")
local Assets = require(ReplicatedStorage.Data.Assets)
local EggState2 = require(ReplicatedStorage.Client.EggState)
local Save = require(ReplicatedStorage.Shared.Save)
local t166 = {
strokeCol = Color3.fromRGB(36, 36, 42),
accent = Color3.fromRGB(26, 147, 250),
accentA = Color3.fromRGB(19, 96, 250),
accentB = Color3.fromRGB(33, 198, 250),
surface = Color3.fromRGB(22, 22, 27),
surfaceHi = Color3.fromRGB(28, 28, 34),
text = Color3.fromRGB(235, 236, 245),
btnText = Color3.fromRGB(186, 184, 198),
muted = Color3.fromRGB(156, 154, 170),
shadow = Color3.fromRGB(4, 4, 8),
obsTop = Color3.fromRGB(18, 18, 24),
obsMid = Color3.fromRGB(12, 12, 16),
obsLow = Color3.fromRGB(10, 14, 26),
btnBg = Color3.fromRGB(30, 30, 36),
btnHover = Color3.fromRGB(44, 44, 52),
inputBg = Color3.fromRGB(14, 14, 18),
switchOff = Color3.fromRGB(42, 42, 48),
good = Color3.fromRGB(163, 230, 53)
}
local v3697 = t166
local function v3698()
pcall(function()
if type(setthreadidentity) == "function" then
setthreadidentity(8)
elseif genv and type(genv.__SenaV4IdentitySetter) == "function" then
genv.__SenaV4IdentitySetter(8)
end
end)
end
local function v3699()
local PlayerGui = LocalPlayer and LocalPlayer:FindFirstChild("PlayerGui")
if PlayerGui then
return PlayerGui
end
local ok, result = pcall(function()
return game:GetService("CoreGui")
end)
if not ok or not result then
return game:GetService("CoreGui")
end
return result
end
local function v3703(p869)
local v3704 = tonumber(p869) or 0
if v3704 >= 1e12 then
return string.format("%.2fT", v3704 / 1e12)
end
if v3704 >= 1e9 then
return string.format("%.2fB", v3704 / 1e9)
end
if v3704 >= 1000000 then
return string.format("%.2fM", v3704 / 1000000)
end
if v3704 >= 1000 then
return string.format("%.2fK", v3704 / 1000)
end
return string.format("%d", v3704)
end
local function v3705(p870)
return v3703(p870)
end
local function v3706(p871)
if typeof(p871) == "Color3" then
return string.format("#%02x%02x%02x", math.floor(p871.R * 255), math.floor(p871.G * 255), math.floor(p871.B * 255))
end
return "#ffffff"
end
local function v3707(p872)
local Directory = Assets.Directory and Assets.Directory[p872]
if not Directory or not Directory.Rarity then
return 0, "?", nil
end
local DisplayName = Directory.Rarity.DisplayName or Directory.Rarity._id or "?"
return v611.rarityRank(DisplayName), DisplayName, Directory.Rarity.Color
end
local function v3710(p873)
local Directory = Assets.Directory and Assets.Directory[p873]
if type(Directory) ~= "table" then
return nil
end
local function v3712(p874)
if type(p874) == "string" and p874 ~= "" then
if p874:find("rbxassetid") or p874:find("rbxthumb") then
return p874
end
if p874:match("^%d+$") then
return "rbxassetid://" .. p874
end
elseif type(p874) == "number" and p874 > 0 then
return "rbxassetid://" .. tostring(p874)
end
return nil
end
local t167 = {
"Image",
"Icon",
"Thumbnail",
"ImageId",
"IconId",
"Texture",
"Asset",
"DisplayImage"
}
for _, v in ipairs(t167) do
local v3716 = v3712(Directory[v])
if not v3716 then
continue
end
return v3716
end
if type(Directory.Egg) == "table" then
for _, v in ipairs(t167) do
local v3719 = v3712(Directory.Egg[v])
if not v3719 then
continue
end
return v3719
end
end
return nil
end
local t168 = {}
local t169 = {}
local pairs_ = pairs
local Directory = Assets.Directory or {}
for k, v in pairs_(Directory) do
if type(v) == "table" and v.Rarity then
local DisplayName = v.Rarity.DisplayName or v.Rarity._id or "?"
local v3727 = v611.rarityRank(DisplayName)
t169[DisplayName] = v3727
table.insert(t168, {
cat = k,
rnum = v3727,
rname = DisplayName
})
end
end
table.sort(t168, function(p875, p876)
if p875.rnum == p876.rnum then
return p875.cat < p876.cat
end
return p875.rnum > p876.rnum
end)
local function v3728()
local t170 = {}
local t171 = {}
for _, v in ipairs(t168) do
if not t170[v.rname] then
t170[v.rname] = true
table.insert(t171, {
v.rname,
v.rnum
})
end
end
table.sort(t171, function(p877, p878)
return p877[2] > p878[2]
end)
local t172 = { "Any" }
for _, v in ipairs(t171) do
table.insert(t172, v[1])
end
return t172
end
local function v3736()
local t173 = {}
for _, v in ipairs(v3728()) do
if v ~= "Any" then
table.insert(t173, v)
end
end
return t173
end
local function v3740(p879)
local n65 = 0
pcall(function()
n65 = senaV4Config:getAreaEggValue(p879) or 0
end)
if n65 > 0 then
return n65
end
pcall(function()
local AssetEarnings = require(ReplicatedStorage.Shared.Util.AssetEarnings)
if AssetEarnings and type(AssetEarnings.LiveRatePerSecond) == "function" then
n65 = AssetEarnings.LiveRatePerSecond(p879) or 0
end
end)
local v3743 = n65 or 0
return v3743
end
local function v3744(p880)
local n66 = 0
pcall(function()
local EggRecords = require(ReplicatedStorage.Shared.Util.EggRecords)
local AssetCategory = p880.AssetCategory or p880.Category
n66 = EggRecords.WeightKgForScale(AssetCategory, p880.AssetScale or p880.Scale or 1)
end)
local v3748 = n66 or 0
return v3748
end
local function v3749()
local n67 = 0
local n68 = 0
pcall(function()
local pairs_2 = pairs
local v3753 = EggState2.ReadOwnerEggs(LocalPlayer.UserId) or {}
for _, v in pairs_2(v3753) do
if v.Placement == nil then
n68 += 1
else
n67 += 1
end
end
end)
return n67, math.max(0, 50 - n67), n68
end
local t174 = {}
local function v3757(p881)
local AssetCategory = p881 and (p881.AssetCategory or p881.Category)
if not AssetCategory then
return
end
local v3759 = t174[AssetCategory]
if not v3759 then
local v3760, v3761, v3762 = v3707(AssetCategory)
v3759 = {
name = AssetCategory,
rarity = v3761,
rnum = v3760,
color = v3762,
count = 0,
last = 0,
image = v3710(AssetCategory)
}
t174[AssetCategory] = v3759
end
v3759.count += 1
v3759.last = os.clock()
end
local windows = {}
local function v3764(p882)
local v3765 = windows[p882]
return v3765 ~= nil and v3765.gui ~= nil and v3765.gui.Parent ~= nil and v3765.gui.Enabled or false
end
local v3766
local v3767
local v3768
local t175 = {
list = nil,
headLbl = nil,
countLbl = nil,
statusBtn = nil,
sel = nil,
rows = {},
picked = {},
chips = {},
sortBtns = {},
modeBtns = {}
}
local t176 = {
history = {},
reportedUids = {},
knownFieldUids = {},
lastAlert = nil,
lastReportTime = 0,
lastSync = 0,
onlineCount = 1,
category = "targets",
filter = "All"
}
local function v3771(p883)
v3698()
if p883 == "logs" then
if v3766 then
v3766()
end
elseif p883 == "eggs" then
if v3767 then
v3767()
end
elseif p883 == "inventory" then
if v3768 then
v3768()
end
elseif p883 == "checker" then
if t175 and t175.refresh then
t175.refresh()
end
elseif p883 == "eggdata" and t176 and t176.refresh then
t176.refresh()
end
end
local u3772
local TextLabel
local s12 = "rarity"
local t177 = {}
local function v3776()
v3698()
for k, v in pairs(t177) do
local v3779 = k == s12
v.BackgroundColor3 = v3779 and v3697.accent or Color3.fromRGB(255, 255, 255)
v.BackgroundTransparency = v3779 and 0.15 or 0.88
v.TextColor3 = v3779 and Color3.fromRGB(255, 255, 255) or v3697.btnText
local UIStroke = v:FindFirstChildOfClass("UIStroke")
if UIStroke then
UIStroke.Transparency = v3779 and 0 or 1
end
end
end
v3766 = function()
v3698()
if not u3772 then
return
end
for _, child in ipairs(u3772:GetChildren()) do
if child:IsA("Frame") then
child:Destroy()
end
end
local t178 = {}
local n69 = 0
for _, v in pairs(t174) do
table.insert(t178, v)
n69 += v.count
end
if s12 == "count" then
table.sort(t178, function(p884, p885)
if p884.count == p885.count then
return (p884.rnum or 0) > (p885.rnum or 0)
end
return p884.count > p885.count
end)
elseif s12 == "name" then
table.sort(t178, function(p886, p887)
return tostring(p886.name) < tostring(p887.name)
end)
else
table.sort(t178, function(p888, p889)
if p888.rnum == p889.rnum then
return p888.count > p889.count
end
return (p888.rnum or 0) > (p889.rnum or 0)
end)
end
for i, v in ipairs(t178) do
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(1, -6, 0, 34)
Frame.BackgroundColor3 = v3697.surface
Frame.BackgroundTransparency = 0.12
Frame.BorderSizePixel = 0
Frame.LayoutOrder = i
Frame.Parent = u3772
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 4)
local UIStroke = Instance.new("UIStroke", Frame)
UIStroke.Color = v3697.strokeCol
UIStroke.Thickness = 1
UIStroke.Transparency = 0.72
local Frame2 = Instance.new("Frame")
Frame2.Size = UDim2.new(0, 3, 1, -10)
Frame2.Position = UDim2.fromOffset(0, 5)
Frame2.BorderSizePixel = 0
Frame2.BackgroundColor3 = v.color or v3697.accent
Frame2.Parent = Frame
Instance.new("UICorner", Frame2).CornerRadius = UDim.new(1, 0)
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Position = UDim2.fromOffset(10, 5)
ImageLabel.Size = UDim2.fromOffset(24, 24)
ImageLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ImageLabel.BackgroundTransparency = v.image and 0.9 or 0.94
ImageLabel.BorderSizePixel = 0
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Image = v.image or ""
ImageLabel.Parent = Frame
Instance.new("UICorner", ImageLabel).CornerRadius = UDim.new(0, 4)
if not v.image then
local Frame3 = Instance.new("Frame")
Frame3.AnchorPoint = Vector2.new(0.5, 0.5)
Frame3.Position = UDim2.fromScale(0.5, 0.5)
Frame3.Size = UDim2.fromOffset(9, 9)
Frame3.BackgroundColor3 = v.color or v3697.accent
Frame3.BorderSizePixel = 0
Frame3.Parent = ImageLabel
Instance.new("UICorner", Frame3).CornerRadius = UDim.new(1, 0)
end
local TextLabel2 = Instance.new("TextLabel")
TextLabel2.BackgroundTransparency = 1
TextLabel2.Position = UDim2.fromOffset(42, 0)
TextLabel2.Size = UDim2.new(0.5, -42, 1, 0)
TextLabel2.Font = Enum.Font.GothamBold
TextLabel2.TextSize = 13
TextLabel2.TextXAlignment = Enum.TextXAlignment.Left
TextLabel2.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel2.TextColor3 = v3697.text
TextLabel2.Text = tostring(v.name)
TextLabel2.Parent = Frame
local TextLabel3 = Instance.new("TextLabel")
TextLabel3.BackgroundTransparency = 1
TextLabel3.Position = UDim2.new(0.5, 0, 0, 0)
TextLabel3.Size = UDim2.new(0.3, 0, 1, 0)
TextLabel3.Font = Enum.Font.GothamBold
TextLabel3.TextSize = 12
TextLabel3.TextXAlignment = Enum.TextXAlignment.Left
TextLabel3.TextColor3 = v.color or v3697.muted
TextLabel3.Text = tostring(v.rarity)
TextLabel3.Parent = Frame
local TextLabel4 = Instance.new("TextLabel")
TextLabel4.BackgroundTransparency = 1
TextLabel4.Position = UDim2.new(0.8, 0, 0, 0)
TextLabel4.Size = UDim2.new(0.2, -12, 1, 0)
TextLabel4.Font = Enum.Font.GothamBold
TextLabel4.TextSize = 13
TextLabel4.TextXAlignment = Enum.TextXAlignment.Right
TextLabel4.TextColor3 = v3697.accent
TextLabel4.Text = "x" .. tostring(v.count)
TextLabel4.Parent = Frame
end
u3772.CanvasSize = UDim2.new(0, 0, 0, #t178 * 38 + 6)
if TextLabel then
TextLabel.Text = "Total: " .. tostring(n69)
end
end
local function v3797(p890)
TextLabel = Instance.new("TextLabel")
TextLabel.BackgroundTransparency = 1
TextLabel.Position = UDim2.new(1, -150, 0, 4)
TextLabel.Size = UDim2.fromOffset(110, 22)
TextLabel.Font = Enum.Font.GothamBold
TextLabel.TextSize = 12
TextLabel.TextXAlignment = Enum.TextXAlignment.Right
TextLabel.TextColor3 = v3697.muted
TextLabel.Text = "Total: 0"
TextLabel.Parent = p890
local Frame = Instance.new("Frame")
Frame.Position = UDim2.fromOffset(14, 4)
Frame.Size = UDim2.new(1, -28, 0, 28)
Frame.BackgroundTransparency = 1
Frame.Parent = p890
local UIListLayout = Instance.new("UIListLayout", Frame)
UIListLayout.FillDirection = Enum.FillDirection.Horizontal
UIListLayout.Padding = UDim.new(0, 6)
UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
local function v3800(p891, p892, p893)
local TextButton = Instance.new("TextButton")
TextButton.Size = UDim2.fromOffset(p893, 26)
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BackgroundTransparency = 0.88
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = v3697.btnText
TextButton.Text = p891
TextButton.Parent = Frame
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 4)
local UIStroke = Instance.new("UIStroke", TextButton)
UIStroke.Color = v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 1
TextButton.MouseButton1Click:Connect(function()
s12 = p892
v3776()
v3766()
end)
t177[p892] = TextButton
end
v3800("Rarity", "rarity", 66)
v3800("Amount", "count", 66)
v3800("Name", "name", 58)
local TextButton = Instance.new("TextButton")
TextButton.Size = UDim2.fromOffset(54, 26)
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BackgroundTransparency = 0.88
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = v3697.btnText
TextButton.Text = "Clear"
TextButton.Parent = Frame
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 4)
local UIStroke = Instance.new("UIStroke", TextButton)
UIStroke.Color = v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 1
TextButton.MouseButton1Click:Connect(function()
t174 = {}
v3766()
end)
local Frame2 = Instance.new("Frame")
Frame2.Position = UDim2.fromOffset(16, 38)
Frame2.Size = UDim2.new(1, -32, 0, 18)
Frame2.BackgroundTransparency = 1
Frame2.Parent = p890
local function v3806(p894, p895, p896, p897)
local TextLabel2 = Instance.new("TextLabel")
TextLabel2.BackgroundTransparency = 1
TextLabel2.Position = p895
TextLabel2.Size = p896
TextLabel2.Font = Enum.Font.GothamBold
TextLabel2.TextSize = 11
TextLabel2.TextColor3 = v3697.muted
TextLabel2.TextXAlignment = p897
TextLabel2.Text = p894
TextLabel2.Parent = Frame2
end
v3806("EGG", UDim2.fromOffset(26, 0), UDim2.new(0.5, -26, 1, 0), Enum.TextXAlignment.Left)
v3806("RARITY", UDim2.new(0.5, 0, 0, 0), UDim2.new(0.3, 0, 1, 0), Enum.TextXAlignment.Left)
v3806("AMOUNT", UDim2.new(0.8, 0, 0, 0), UDim2.new(0.2, -12, 1, 0), Enum.TextXAlignment.Right)
local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.Position = UDim2.fromOffset(14, 60)
ScrollingFrame.Size = UDim2.new(1, -28, 1, -68)
ScrollingFrame.BackgroundTransparency = 1
ScrollingFrame.BorderSizePixel = 0
ScrollingFrame.ScrollBarThickness = 3
ScrollingFrame.ScrollBarImageColor3 = v3697.accent
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame.Parent = p890
local UIListLayout2 = Instance.new("UIListLayout", ScrollingFrame)
UIListLayout2.Padding = UDim.new(0, 4)
UIListLayout2.SortOrder = Enum.SortOrder.LayoutOrder
u3772 = ScrollingFrame
v3776()
v3766()
end
local u3810
local TextLabel2
local startPlacing
local TextLabel3
local s13 = "All"
local t179 = {}
local t180 = {}
local function v3817()
v3698()
for k, v in pairs(t179) do
local v3820 = k == s13
v.BackgroundColor3 = v3820 and v3697.accent or Color3.fromRGB(255, 255, 255)
v.BackgroundTransparency = v3820 and 0.15 or 0.88
v.TextColor3 = v3820 and Color3.fromRGB(255, 255, 255) or v3697.btnText
local UIStroke = v:FindFirstChildOfClass("UIStroke")
if UIStroke then
UIStroke.Transparency = v3820 and 0 or 1
end
end
end
v3767 = function()
v3698()
if not u3810 then
return
end
for _, child in ipairs(u3810:GetChildren()) do
if child:IsA("Frame") then
child:Destroy()
end
end
local ok, result = pcall(function()
return EggState2.ReadOwnerEggs(LocalPlayer.UserId)
end)
if not ok or type(result) ~= "table" then
if TextLabel3 then
TextLabel3.Text = "Total: 0 ON: 0"
end
return
end
local t181 = {}
local n70 = 0
for k, v in pairs(result) do
if v.Placement == nil then
local v3830, v3831, v3832 = v3707(v.AssetCategory)
if s13 == "All" or v3831 == s13 then
local v3833 = t180[k] ~= false
if v3833 then
n70 += 1
end
local Directory2 = Assets.Directory and Assets.Directory[v.AssetCategory]
table.insert(t181, {
uid = k,
name = Directory2 and Directory2.DisplayName or v.AssetCategory or tostring(k):sub(1, 8),
rarity = v3831,
rnum = v3830,
color = v3832,
image = v3710(v.AssetCategory),
enabled = v3833
})
end
end
end
table.sort(t181, function(p898, p899)
if p898.rnum == p899.rnum then
return p898.name < p899.name
end
return (p898.rnum or 0) > (p899.rnum or 0)
end)
for i, v in ipairs(t181) do
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(1, -6, 0, 34)
Frame.BackgroundColor3 = v3697.surface
Frame.BackgroundTransparency = 0.12
Frame.BorderSizePixel = 0
Frame.LayoutOrder = i
Frame.Parent = u3810
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 4)
local UIStroke = Instance.new("UIStroke", Frame)
UIStroke.Color = v3697.strokeCol
UIStroke.Thickness = 1
UIStroke.Transparency = 0.72
local Frame2 = Instance.new("Frame")
Frame2.Size = UDim2.new(0, 3, 1, -10)
Frame2.Position = UDim2.fromOffset(0, 5)
Frame2.BorderSizePixel = 0
Frame2.BackgroundColor3 = v.color or v3697.accent
Frame2.Parent = Frame
Instance.new("UICorner", Frame2).CornerRadius = UDim.new(1, 0)
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Position = UDim2.fromOffset(10, 5)
ImageLabel.Size = UDim2.fromOffset(24, 24)
ImageLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ImageLabel.BackgroundTransparency = 1
ImageLabel.BorderSizePixel = 0
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Image = v.image or ""
ImageLabel.Parent = Frame
Instance.new("UICorner", ImageLabel).CornerRadius = UDim.new(0, 4)
if not v.image then
local Frame3 = Instance.new("Frame")
Frame3.AnchorPoint = Vector2.new(0.5, 0.5)
Frame3.Position = UDim2.fromScale(0.5, 0.5)
Frame3.Size = UDim2.fromOffset(9, 9)
Frame3.BackgroundColor3 = v.color or v3697.accent
Frame3.BorderSizePixel = 0
Frame3.Parent = ImageLabel
Instance.new("UICorner", Frame3).CornerRadius = UDim.new(1, 0)
end
local TextLabel4 = Instance.new("TextLabel")
TextLabel4.BackgroundTransparency = 1
TextLabel4.Position = UDim2.fromOffset(42, 0)
TextLabel4.Size = UDim2.new(0.55, -42, 1, 0)
TextLabel4.Font = Enum.Font.GothamBold
TextLabel4.TextSize = 12
TextLabel4.TextXAlignment = Enum.TextXAlignment.Left
TextLabel4.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel4.TextColor3 = v3697.text
TextLabel4.Text = tostring(v.name)
TextLabel4.Parent = Frame
local TextLabel5 = Instance.new("TextLabel")
TextLabel5.BackgroundTransparency = 1
TextLabel5.Position = UDim2.new(0.55, 0, 0, 0)
TextLabel5.Size = UDim2.new(0.23, 0, 1, 0)
TextLabel5.Font = Enum.Font.GothamBold
TextLabel5.TextSize = 11
TextLabel5.TextXAlignment = Enum.TextXAlignment.Left
TextLabel5.TextColor3 = v.color or v3697.muted
TextLabel5.Text = tostring(v.rarity)
TextLabel5.Parent = Frame
local TextButton = Instance.new("TextButton")
TextButton.Position = UDim2.new(1, -62, 0, 5)
TextButton.Size = UDim2.fromOffset(56, 24)
TextButton.BackgroundColor3 = v.enabled and v3697.accent or Color3.fromRGB(78, 78, 96)
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 11
TextButton.TextColor3 = Color3.fromRGB(255, 255, 255)
TextButton.Text = v.enabled and "ON" or "OFF"
TextButton.Parent = Frame
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 5)
local UIStroke2 = Instance.new("UIStroke", TextButton)
UIStroke2.Color = v3697.strokeCol
UIStroke2.Thickness = 1
UIStroke2.Transparency = 0.6
TextButton.MouseButton1Click:Connect(function()
if t180[v.uid] == false then
t180[v.uid] = nil
else
t180[v.uid] = false
end
v3767()
end)
end
u3810.CanvasSize = UDim2.new(0, 0, 0, #t181 * 38 + 6)
if TextLabel3 then
TextLabel3.Text = string.format("Total: %d ON: %d", #t181, n70)
end
if TextLabel2 then
local v3846, v3847, v3848 = v3749()
if v3847 <= 0 then
TextLabel2.Text = string.format("Plot FULL - %d/50 placed, %d waiting", v3846, v3848)
else
TextLabel2.Text = string.format("Plot %d/50 - room for %d more, %d waiting", v3846, v3847, v3848)
end
end
end
local function v3849(p900)
local Frame = Instance.new("Frame")
Frame.Size = UDim2.fromScale(1, 1)
Frame.BackgroundTransparency = 1
Frame.BorderSizePixel = 0
Frame.Parent = p900
TextLabel3 = Instance.new("TextLabel")
TextLabel3.BackgroundTransparency = 1
TextLabel3.Position = UDim2.new(0, 236, 1, -60)
TextLabel3.Size = UDim2.new(1, -250, 0, 26)
TextLabel3.Font = Enum.Font.GothamBold
TextLabel3.TextSize = 12
TextLabel3.TextXAlignment = Enum.TextXAlignment.Right
TextLabel3.TextColor3 = v3697.muted
TextLabel3.Text = "Total: 0 ON: 0"
TextLabel3.Parent = Frame
local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.Position = UDim2.fromOffset(14, 4)
ScrollingFrame.Size = UDim2.new(1, -28, 0, 28)
ScrollingFrame.BackgroundTransparency = 1
ScrollingFrame.BorderSizePixel = 0
ScrollingFrame.ScrollBarThickness = 3
ScrollingFrame.ScrollBarImageColor3 = v3697.accent
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame.Parent = Frame
local UIListLayout = Instance.new("UIListLayout", ScrollingFrame)
UIListLayout.FillDirection = Enum.FillDirection.Horizontal
UIListLayout.Padding = UDim.new(0, 6)
UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
t179 = {}
local n71 = 0
local function v3854(p901)
local TextButton = Instance.new("TextButton")
local v3856 = math.max(42, #p901 * 6 + 12)
TextButton.Size = UDim2.fromOffset(v3856, 24)
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BackgroundTransparency = 0.88
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = v3697.btnText
TextButton.Text = p901
TextButton.Parent = ScrollingFrame
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 4)
local UIStroke = Instance.new("UIStroke", TextButton)
UIStroke.Color = v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 1
TextButton.MouseButton1Click:Connect(function()
s13 = p901
v3817()
v3767()
end)
t179[p901] = TextButton
n71 = n71 + v3856 + 6
end
v3854("All")
for _, v in ipairs(v3736()) do
v3854(v)
end
ScrollingFrame.CanvasSize = UDim2.new(0, n71 + 4, 0, 0)
v3817()
local Frame2 = Instance.new("Frame")
Frame2.Position = UDim2.fromOffset(16, 38)
Frame2.Size = UDim2.new(1, -32, 0, 18)
Frame2.BackgroundTransparency = 1
Frame2.Parent = Frame
local function v3861(p902, p903, p904, p905)
local TextLabel4 = Instance.new("TextLabel")
TextLabel4.BackgroundTransparency = 1
TextLabel4.Position = p903
TextLabel4.Size = p904
TextLabel4.Font = Enum.Font.GothamBold
TextLabel4.TextSize = 11
TextLabel4.TextColor3 = v3697.muted
TextLabel4.TextXAlignment = p905
TextLabel4.Text = p902
TextLabel4.Parent = Frame2
end
v3861("EGG", UDim2.fromOffset(26, 0), UDim2.new(0.55, -26, 1, 0), Enum.TextXAlignment.Left)
v3861("RARITY", UDim2.new(0.55, 0, 0, 0), UDim2.new(0.23, 0, 1, 0), Enum.TextXAlignment.Left)
v3861("PLACE", UDim2.new(1, -62, 0, 0), UDim2.fromOffset(56, 18), Enum.TextXAlignment.Center)
local ScrollingFrame2 = Instance.new("ScrollingFrame")
ScrollingFrame2.Position = UDim2.fromOffset(14, 60)
ScrollingFrame2.Size = UDim2.new(1, -28, 1, -126)
ScrollingFrame2.BackgroundTransparency = 1
ScrollingFrame2.BorderSizePixel = 0
ScrollingFrame2.ScrollBarThickness = 3
ScrollingFrame2.ScrollBarImageColor3 = v3697.accent
ScrollingFrame2.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame2.Parent = Frame
local UIListLayout2 = Instance.new("UIListLayout", ScrollingFrame2)
UIListLayout2.Padding = UDim.new(0, 4)
UIListLayout2.SortOrder = Enum.SortOrder.LayoutOrder
u3810 = ScrollingFrame2
local function createTextButton(p906, p907, p908, p909)
local TextButton = Instance.new("TextButton")
TextButton.Size = UDim2.fromOffset(p907, 28)
TextButton.BackgroundColor3 = p908 or v3697.accent
TextButton.BackgroundTransparency = 0.15
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = Color3.fromRGB(255, 255, 255)
TextButton.Text = p906
TextButton.LayoutOrder = p909 or 1
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 4)
local UIStroke = Instance.new("UIStroke", TextButton)
UIStroke.Color = v3697.strokeCol
UIStroke.Thickness = 1
UIStroke.Transparency = 0.6
return TextButton
end
local Frame3 = Instance.new("Frame")
Frame3.Position = UDim2.new(0, 14, 1, -60)
Frame3.Size = UDim2.new(0, 220, 0, 28)
Frame3.BackgroundTransparency = 1
Frame3.Parent = Frame
local UIListLayout3 = Instance.new("UIListLayout", Frame3)
UIListLayout3.FillDirection = Enum.FillDirection.Horizontal
UIListLayout3.Padding = UDim.new(0, 6)
UIListLayout3.VerticalAlignment = Enum.VerticalAlignment.Center
local toggleAll = createTextButton("Toggle All", 80, Color3.fromRGB(60, 70, 95), 1)
toggleAll.Parent = Frame3
toggleAll.MouseButton1Click:Connect(function()
local ok, result = pcall(function()
return EggState2.ReadOwnerEggs(LocalPlayer.UserId)
end)
if not ok or type(result) ~= "table" then
return
end
local v3873 = false
local v3874, v3875, v3876 = pairs(result)
local v3877 = geniter(v3874, v3875, v3876)
while true do
local v3878 = table.pack(v3877())
if v3878[1] then
if (v3878[3]).Placement == nil and t180[v3878[2]] == false then
v3873 = true
break
end
else
break
end
end
local v3879, v3880, v3881 = pairs(result)
for k, v in v3879, v3880, v3881 do
if v.Placement == nil then
if v3873 then
t180[k] = nil
else
t180[k] = false
end
end
end
v3767()
end)
startPlacing = createTextButton("Start Placing", 120, v3697.accent, 2)
startPlacing.Parent = Frame3
startPlacing.MouseButton1Click:Connect(function()
pcall(function()
if type(applyAutoPlace) == "function" then
applyAutoPlace(true)
elseif type(t24) == "table" and type(t24.AutoPlaceLoop) == "function" then
senaV4Config.AutoPlace = true
task.spawn(t24.AutoPlaceLoop)
end
end)
end)
TextLabel2 = Instance.new("TextLabel")
TextLabel2.BackgroundTransparency = 1
TextLabel2.Position = UDim2.new(0, 16, 1, -26)
TextLabel2.Size = UDim2.new(1, -32, 0, 18)
TextLabel2.Font = Enum.Font.GothamMedium
TextLabel2.TextSize = 11
TextLabel2.TextXAlignment = Enum.TextXAlignment.Left
TextLabel2.TextColor3 = v3697.muted
TextLabel2.Text = ""
TextLabel2.Parent = Frame
v3767()
end
local u3884
local TextLabel4
local s14 = "backpack"
local s15 = "moneys"
local u3888 = false
local t182 = {}
local t183 = {}
local function v3891()
v3698()
for k, v in pairs(t183) do
local v3894 = k == s14
v.BackgroundColor3 = v3894 and v3697.accent or Color3.fromRGB(255, 255, 255)
v.BackgroundTransparency = v3894 and 0.15 or 0.88
v.TextColor3 = v3894 and Color3.fromRGB(255, 255, 255) or v3697.btnText
local UIStroke = v:FindFirstChildOfClass("UIStroke")
if UIStroke then
UIStroke.Transparency = v3894 and 0 or 1
end
end
end
local function v3896()
v3698()
for k, v in pairs(t182) do
local v3899 = k == s15
v.BackgroundColor3 = v3899 and v3697.accent or Color3.fromRGB(255, 255, 255)
v.BackgroundTransparency = v3899 and 0.15 or 0.88
v.TextColor3 = v3899 and Color3.fromRGB(255, 255, 255) or v3697.btnText
local UIStroke = v:FindFirstChildOfClass("UIStroke")
if UIStroke then
UIStroke.Transparency = v3899 and 0 or 1
end
end
end
v3768 = function()
v3698()
if not u3884 then
return
end
for _, child in ipairs(u3884:GetChildren()) do
if child:IsA("Frame") then
child:Destroy()
end
end
local v3903 = (Save.Peek or Save.Get)() or {}
local t184 = {}
local n72 = 0
local function v3906(p910)
local AssetCategory = p910.AssetCategory or p910.Category
local Directory2 = Assets.Directory and Assets.Directory[AssetCategory]
local v3909, v3910, v3911 = v3707(AssetCategory)
local v3912 = v3740({
AssetCategory = AssetCategory,
AssetScale = p910.Scale or p910.AssetScale or 1,
Mutations = p910.Mutations or {}
})
local v3913 = v3744(p910)
n72 += v3912
table.insert(t184, {
name = Directory2 and Directory2.DisplayName or tostring(AssetCategory),
icon = v3710(AssetCategory),
kg = v3913,
kgS = string.format("%.1fKg", v3913),
moneys = v3912,
rnum = v3909,
rarity = v3910,
color = v3911
})
end
if s14 == "inplot" then
local ipairs_ = ipairs
local EquippedAssets = v3903.EquippedAssets or {}
for _, EquippedAsset in ipairs_(EquippedAssets) do
local Inventory = v3903.Inventory and v3903.Inventory[EquippedAsset]
if Inventory then
v3906(Inventory)
end
end
else
local pairs_2 = pairs
local Inventory = v3903.Inventory or {}
for _, v in pairs_2(Inventory) do
if type(v) == "table" and (v.AssetCategory or v.Category) then
v3906(v)
end
end
end
local v3923 = s15 == "rarity" and "rnum" or s15
table.sort(t184, function(p911, p912)
if p911[v3923] == p912[v3923] then
return p911.name < p912.name
end
if u3888 then
return (p911[v3923] or 0) < (p912[v3923] or 0)
end
return (p911[v3923] or 0) > (p912[v3923] or 0)
end)
for i, v in ipairs(t184) do
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(1, -6, 0, 34)
Frame.BackgroundColor3 = v3697.surface
Frame.BackgroundTransparency = 0.12
Frame.BorderSizePixel = 0
Frame.LayoutOrder = i
Frame.Parent = u3884
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 4)
local UIStroke = Instance.new("UIStroke", Frame)
UIStroke.Color = v3697.strokeCol
UIStroke.Thickness = 1
UIStroke.Transparency = 0.72
local Frame2 = Instance.new("Frame")
Frame2.Size = UDim2.new(0, 3, 1, -10)
Frame2.Position = UDim2.fromOffset(0, 5)
Frame2.BorderSizePixel = 0
Frame2.BackgroundColor3 = v.color or v3697.accent
Frame2.Parent = Frame
Instance.new("UICorner", Frame2).CornerRadius = UDim.new(1, 0)
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Position = UDim2.fromOffset(10, 5)
ImageLabel.Size = UDim2.fromOffset(24, 24)
ImageLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ImageLabel.BackgroundTransparency = 1
ImageLabel.BorderSizePixel = 0
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Image = v.icon or ""
ImageLabel.Parent = Frame
Instance.new("UICorner", ImageLabel).CornerRadius = UDim.new(0, 4)
if not v.icon then
local Frame3 = Instance.new("Frame")
Frame3.AnchorPoint = Vector2.new(0.5, 0.5)
Frame3.Position = UDim2.fromScale(0.5, 0.5)
Frame3.Size = UDim2.fromOffset(9, 9)
Frame3.BackgroundColor3 = v.color or v3697.accent
Frame3.BorderSizePixel = 0
Frame3.Parent = ImageLabel
Instance.new("UICorner", Frame3).CornerRadius = UDim.new(1, 0)
end
local TextLabel5 = Instance.new("TextLabel")
TextLabel5.BackgroundTransparency = 1
TextLabel5.Position = UDim2.fromOffset(42, 0)
TextLabel5.Size = UDim2.new(0.42, -42, 1, 0)
TextLabel5.Font = Enum.Font.GothamBold
TextLabel5.TextSize = 12
TextLabel5.TextXAlignment = Enum.TextXAlignment.Left
TextLabel5.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel5.TextColor3 = v3697.text
TextLabel5.Text = tostring(v.name)
TextLabel5.Parent = Frame
local TextLabel6 = Instance.new("TextLabel")
TextLabel6.BackgroundTransparency = 1
TextLabel6.Position = UDim2.new(0.42, 0, 0, 0)
TextLabel6.Size = UDim2.new(0.18, 0, 1, 0)
TextLabel6.Font = Enum.Font.GothamBold
TextLabel6.TextSize = 11
TextLabel6.TextXAlignment = Enum.TextXAlignment.Left
TextLabel6.TextColor3 = v.color or v3697.muted
TextLabel6.Text = tostring(v.rarity)
TextLabel6.Parent = Frame
local TextLabel7 = Instance.new("TextLabel")
TextLabel7.BackgroundTransparency = 1
TextLabel7.Position = UDim2.new(0.6, 0, 0, 0)
TextLabel7.Size = UDim2.new(0.18, 0, 1, 0)
TextLabel7.Font = Enum.Font.GothamBold
TextLabel7.TextSize = 11
TextLabel7.TextXAlignment = Enum.TextXAlignment.Right
TextLabel7.TextColor3 = v3697.btnText
TextLabel7.Text = tostring(v.kgS)
TextLabel7.Parent = Frame
local TextLabel8 = Instance.new("TextLabel")
TextLabel8.BackgroundTransparency = 1
TextLabel8.Position = UDim2.new(0.78, 0, 0, 0)
TextLabel8.Size = UDim2.new(0.22, -12, 1, 0)
TextLabel8.Font = Enum.Font.GothamBold
TextLabel8.TextSize = 11
TextLabel8.TextXAlignment = Enum.TextXAlignment.Right
TextLabel8.TextColor3 = v.moneys > 0 and v3697.text or v3697.muted
TextLabel8.Text = v3705(v.moneys) .. "/s"
TextLabel8.Parent = Frame
end
u3884.CanvasSize = UDim2.new(0, 0, 0, #t184 * 38 + 6)
if TextLabel4 then
if s14 == "inplot" then
TextLabel4.Text = string.format("%d equipped | %s/s", #t184, v3705(n72))
else
TextLabel4.Text = string.format("%d pets", #t184)
end
end
end
local function v3935(p913)
TextLabel4 = Instance.new("TextLabel")
TextLabel4.BackgroundTransparency = 1
TextLabel4.Position = UDim2.new(1, -190, 0, 4)
TextLabel4.Size = UDim2.fromOffset(180, 22)
TextLabel4.Font = Enum.Font.GothamBold
TextLabel4.TextSize = 12
TextLabel4.TextXAlignment = Enum.TextXAlignment.Right
TextLabel4.TextColor3 = v3697.muted
TextLabel4.Text = "0 pets"
TextLabel4.Parent = p913
local Frame = Instance.new("Frame")
Frame.Position = UDim2.fromOffset(14, 4)
Frame.Size = UDim2.new(0, 180, 0, 28)
Frame.BackgroundTransparency = 1
Frame.Parent = p913
local UIListLayout = Instance.new("UIListLayout", Frame)
UIListLayout.FillDirection = Enum.FillDirection.Horizontal
UIListLayout.Padding = UDim.new(0, 6)
UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
t183 = {}
local function v3938(p914, p915, p916)
local TextButton = Instance.new("TextButton")
TextButton.Size = UDim2.fromOffset(p916, 26)
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BackgroundTransparency = 0.88
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = v3697.btnText
TextButton.Text = p914
TextButton.Parent = Frame
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 4)
local UIStroke = Instance.new("UIStroke", TextButton)
UIStroke.Color = v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 1
TextButton.MouseButton1Click:Connect(function()
s14 = p915
v3891()
v3768()
end)
t183[p915] = TextButton
end
v3938("Backpack", "backpack", 78)
v3938("Base", "inplot", 54)
local Frame2 = Instance.new("Frame")
Frame2.Position = UDim2.fromOffset(14, 36)
Frame2.Size = UDim2.new(1, -28, 0, 28)
Frame2.BackgroundTransparency = 1
Frame2.Parent = p913
local UIListLayout2 = Instance.new("UIListLayout", Frame2)
UIListLayout2.FillDirection = Enum.FillDirection.Horizontal
UIListLayout2.Padding = UDim.new(0, 6)
UIListLayout2.VerticalAlignment = Enum.VerticalAlignment.Center
t182 = {}
local function v3943(p917, p918, p919)
local TextButton = Instance.new("TextButton")
TextButton.Size = UDim2.fromOffset(p919, 26)
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BackgroundTransparency = 0.88
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = v3697.btnText
TextButton.Text = p917
TextButton.Parent = Frame2
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 4)
local UIStroke = Instance.new("UIStroke", TextButton)
UIStroke.Color = v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 1
TextButton.MouseButton1Click:Connect(function()
if s15 == p918 then
u3888 = not u3888
else
s15 = p918
u3888 = false
end
v3896()
v3768()
end)
t182[p918] = TextButton
end
v3943("Money/s", "moneys", 86)
v3943("Kg", "kg", 56)
v3943("Rarity", "rarity", 76)
v3943("Name", "name", 66)
local Frame3 = Instance.new("Frame")
Frame3.Position = UDim2.fromOffset(16, 66)
Frame3.Size = UDim2.new(1, -32, 0, 18)
Frame3.BackgroundTransparency = 1
Frame3.Parent = p913
local function v3947(p920, p921, p922, p923)
local TextLabel5 = Instance.new("TextLabel")
TextLabel5.BackgroundTransparency = 1
TextLabel5.Position = p921
TextLabel5.Size = p922
TextLabel5.Font = Enum.Font.GothamBold
TextLabel5.TextSize = 11
TextLabel5.TextColor3 = v3697.muted
TextLabel5.TextXAlignment = p923
TextLabel5.Text = p920
TextLabel5.Parent = Frame3
end
v3947("PET", UDim2.fromOffset(26, 0), UDim2.new(0.42, -26, 1, 0), Enum.TextXAlignment.Left)
v3947("RARITY", UDim2.new(0.42, 0, 0, 0), UDim2.new(0.18, 0, 1, 0), Enum.TextXAlignment.Left)
v3947("KG", UDim2.new(0.6, 0, 0, 0), UDim2.new(0.18, 0, 1, 0), Enum.TextXAlignment.Right)
v3947("MONEY/S", UDim2.new(0.78, 0, 0, 0), UDim2.new(0.22, -12, 1, 0), Enum.TextXAlignment.Right)
local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.Position = UDim2.fromOffset(14, 88)
ScrollingFrame.Size = UDim2.new(1, -28, 1, -96)
ScrollingFrame.BackgroundTransparency = 1
ScrollingFrame.BorderSizePixel = 0
ScrollingFrame.ScrollBarThickness = 3
ScrollingFrame.ScrollBarImageColor3 = v3697.accent
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame.Parent = p913
local UIListLayout3 = Instance.new("UIListLayout", ScrollingFrame)
UIListLayout3.Padding = UDim.new(0, 4)
UIListLayout3.SortOrder = Enum.SortOrder.LayoutOrder
u3884 = ScrollingFrame
v3891()
v3896()
v3768()
end
t175.sort = "value"
t175.rarity = "All"
t175.picked = {}
t175.chips = {}
t175.sortBtns = {}
t175.modeBtns = {}
t175.rows = {}
t175.scan = function()
local u3951
pcall(function()
u3951 = EggState2.ReadFieldEggs()
end)
local t185 = {}
local ipairs_ = ipairs
local Records = u3951 and u3951.Records or {}
for _, Record in ipairs_(Records) do
if Record.State ~= "Claimed" and Record.State ~= "Carried" and not Record.CarrierUserId and Record.BottomCFrame then
if not tostring(Record.Uid):find("FirstAreaEgg") then
local AssetCategory = Record.AssetCategory
local Directory2 = AssetCategory and Assets.Directory and Assets.Directory[AssetCategory]
local v3959, v3960, v3961 = v3707(AssetCategory)
local v3962 = v3740({
AssetCategory = AssetCategory,
Category = AssetCategory,
AssetScale = Record.AssetScale or Record.Scale or 1,
Scale = Record.AssetScale or Record.Scale or 1,
Mutations = Record.Mutations or {}
})
local v3963 = v3744(Record)
local v3964 = #t185 + 1
local t186 = {
rec = Record,
uid = Record.Uid
}
local DisplayName = Directory2 and Directory2.DisplayName
if not DisplayName then
DisplayName = tostring(AssetCategory or "Egg")
end
t186.name = DisplayName
t186.rarity = v3960
t186.rnum = v3959
t186.color = v3961
t186.area = tostring(Record.AreaId or "?")
t186.rate = v3962
t186.kg = v3963
t186.icon = v3710(AssetCategory)
t185[v3964] = t186
end
end
end
if t175.rarity ~= "All" then
local t187 = {}
for _, v in ipairs(t185) do
if v.rarity == t175.rarity then
t187[#t187 + 1] = v
end
end
t185 = t187
end
table.sort(t185, function(p924, p925)
if t175.sort == "rarity" then
if p924.rnum == p925.rnum then
return (p924.rate or 0) > (p925.rate or 0)
end
return (p924.rnum or 0) > (p925.rnum or 0)
end
if p924.rate == p925.rate then
return (p924.rnum or 0) > (p925.rnum or 0)
end
return (p924.rate or 0) > (p925.rate or 0)
end)
return t185
end
t175.paintChips = function()
for k, chip in pairs(t175.chips) do
local v3972 = k == t175.rarity
chip.BackgroundTransparency = v3972 and 0.1 or 0.9
chip.TextColor3 = v3972 and Color3.fromRGB(255, 255, 255) or chip:GetAttribute("chipColor") and Color3.fromHex(chip:GetAttribute("chipColor")) or v3697.btnText
local UIStroke = chip:FindFirstChildOfClass("UIStroke")
if UIStroke then
UIStroke.Transparency = v3972 and 0 or 0.65
end
end
for k, sortBtn in pairs(t175.sortBtns) do
local v3976 = k == t175.sort
sortBtn.BackgroundColor3 = v3976 and v3697.accent or Color3.fromRGB(255, 255, 255)
sortBtn.BackgroundTransparency = v3976 and 0.12 or 0.9
sortBtn.TextColor3 = v3976 and Color3.fromRGB(255, 255, 255) or v3697.btnText
end
local __SenaV4StealMode = genv.__SenaV4StealMode or "Fly"
local pairs_2 = pairs
local modeBtns = t175.modeBtns or {}
for k, modeBtn in pairs_2(modeBtns) do
local v3982 = __SenaV4StealMode == k
modeBtn.BackgroundColor3 = v3982 and v3697.accent or Color3.fromRGB(255, 255, 255)
modeBtn.BackgroundTransparency = v3982 and 0.12 or 0.9
modeBtn.TextColor3 = v3982 and Color3.fromRGB(255, 255, 255) or v3697.btnText
local UIStroke = modeBtn:FindFirstChildOfClass("UIStroke")
if UIStroke then
UIStroke.Transparency = v3982 and 0 or 0.7
end
end
end
t175.paintRows = function()
local n73 = 0
for _, row in ipairs(t175.rows) do
local v3987 = t175.picked[tostring(row.uid)] == true
if v3987 then
n73 += 1
end
row.frame.BackgroundTransparency = v3987 and 0.02 or 0.14
local UIStroke = row.frame:FindFirstChildOfClass("UIStroke")
if UIStroke then
UIStroke.Transparency = v3987 and 0 or 0.78
end
if row.tick then
row.tick.BackgroundTransparency = v3987 and 0.05 or 0.86
row.tick.Text = v3987 and "OK" or ""
end
end
if t175.statusBtn and not t175.running then
t175.statusBtn.Text = n73 > 0 and "Steal Selected (" .. n73 .. ")" or "Steal Selected"
end
if t175.headLbl then
t175.headLbl.Text = n73 > 0 and n73 .. " picked" or "Tap eggs to pick them"
end
end
t175.refresh = function()
v3698()
if not t175.list then
return
end
for _, child in ipairs(t175.list:GetChildren()) do
if child:IsA("Frame") then
child:Destroy()
end
end
t175.rows = {}
local v3991 = t175.scan()
local t188 = {}
for _, v in ipairs(v3991) do
t188[tostring(v.uid)] = true
end
for k in pairs(t175.picked) do
if not t188[k] then
t175.picked[k] = nil
end
end
for i, v in ipairs(v3991) do
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(1, -6, 0, 46)
Frame.BackgroundColor3 = v3697.surface
Frame.BackgroundTransparency = 0.14
Frame.BorderSizePixel = 0
Frame.LayoutOrder = i
Frame.Parent = t175.list
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 7)
local UIStroke = Instance.new("UIStroke", Frame)
UIStroke.Color = v.color or v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 0.78
local Frame2 = Instance.new("Frame")
Frame2.Size = UDim2.new(0, 3, 1, -12)
Frame2.Position = UDim2.fromOffset(0, 6)
Frame2.BorderSizePixel = 0
Frame2.BackgroundColor3 = v.color or v3697.accent
Frame2.Parent = Frame
Instance.new("UICorner", Frame2).CornerRadius = UDim.new(1, 0)
local TextLabel5 = Instance.new("TextLabel")
TextLabel5.Position = UDim2.fromOffset(10, 11)
TextLabel5.Size = UDim2.fromOffset(24, 24)
TextLabel5.BackgroundColor3 = v3697.accent
TextLabel5.BackgroundTransparency = 0.86
TextLabel5.Font = Enum.Font.GothamBold
TextLabel5.TextSize = 11
TextLabel5.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel5.Text = ""
TextLabel5.Parent = Frame
Instance.new("UICorner", TextLabel5).CornerRadius = UDim.new(0, 5)
local UIStroke2 = Instance.new("UIStroke", TextLabel5)
UIStroke2.Color = v3697.accent
UIStroke2.Thickness = 1
UIStroke2.Transparency = 0.6
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Position = UDim2.fromOffset(42, 7)
ImageLabel.Size = UDim2.fromOffset(30, 30)
ImageLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
ImageLabel.BackgroundTransparency = 1
ImageLabel.BorderSizePixel = 0
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Image = v.icon or ""
ImageLabel.Parent = Frame
Instance.new("UICorner", ImageLabel).CornerRadius = UDim.new(0, 4)
if not v.icon then
local Frame3 = Instance.new("Frame")
Frame3.AnchorPoint = Vector2.new(0.5, 0.5)
Frame3.Position = UDim2.fromScale(0.5, 0.5)
Frame3.Size = UDim2.fromOffset(10, 10)
Frame3.BackgroundColor3 = v.color or v3697.accent
Frame3.BorderSizePixel = 0
Frame3.Parent = ImageLabel
Instance.new("UICorner", Frame3).CornerRadius = UDim.new(1, 0)
end
local TextLabel6 = Instance.new("TextLabel")
TextLabel6.BackgroundTransparency = 1
TextLabel6.Position = UDim2.fromOffset(78, 6)
TextLabel6.Size = UDim2.new(1, -184, 0, 17)
TextLabel6.Font = Enum.Font.GothamBold
TextLabel6.TextSize = 13
TextLabel6.TextXAlignment = Enum.TextXAlignment.Left
TextLabel6.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel6.TextColor3 = v3697.text
TextLabel6.Text = tostring(v.name)
TextLabel6.Parent = Frame
local TextLabel7 = Instance.new("TextLabel")
TextLabel7.BackgroundTransparency = 1
TextLabel7.Position = UDim2.fromOffset(78, 24)
TextLabel7.Size = UDim2.new(1, -184, 0, 17)
TextLabel7.Font = Enum.Font.GothamBold
TextLabel7.TextSize = 11
TextLabel7.TextXAlignment = Enum.TextXAlignment.Left
TextLabel7.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel7.TextColor3 = v.color or v3697.muted
TextLabel7.Text = string.format("%s - %s%s", tostring(v.rarity or "?"), tostring(v.area), v.kg and string.format(" - %.1fkg", v.kg) or "")
TextLabel7.Parent = Frame
local TextLabel8 = Instance.new("TextLabel")
TextLabel8.BackgroundTransparency = 1
TextLabel8.AnchorPoint = Vector2.new(1, 0.5)
TextLabel8.Position = UDim2.new(1, -12, 0.5, 0)
TextLabel8.Size = UDim2.fromOffset(96, 20)
TextLabel8.Font = Enum.Font.GothamBold
TextLabel8.TextSize = 13
TextLabel8.TextXAlignment = Enum.TextXAlignment.Right
TextLabel8.TextColor3 = Color3.fromRGB(126, 224, 151)
TextLabel8.Text = v3703(v.rate) .. "/s"
TextLabel8.Parent = Frame
local TextButton = Instance.new("TextButton")
TextButton.Size = UDim2.fromScale(1, 1)
TextButton.BackgroundTransparency = 1
TextButton.Text = ""
TextButton.AutoButtonColor = false
TextButton.Parent = Frame
local v4009 = tostring(v.uid)
TextButton.MouseButton1Click:Connect(function()
t175.picked[v4009] = not t175.picked[v4009] or nil
t175.paintRows()
end)
t175.rows[#t175.rows + 1] = {
uid = v.uid,
frame = Frame,
tick = TextLabel5
}
end
if t175.countLbl then
pcall(function()
t175.countLbl.Text = #v3991 .. " eggs"
end)
end
pcall(function()
t175.list.CanvasSize = UDim2.new(0, 0, 0, #v3991 * 50 + 8)
end)
pcall(t175.paintChips)
pcall(t175.paintRows)
end
t175.build = function(p926)
local Frame = Instance.new("Frame")
Frame.Size = UDim2.fromScale(1, 1)
Frame.BackgroundTransparency = 1
Frame.BorderSizePixel = 0
Frame.Parent = p926
t175.countLbl = Instance.new("TextLabel")
t175.countLbl.BackgroundTransparency = 1
t175.countLbl.AnchorPoint = Vector2.new(1, 0)
t175.countLbl.Position = UDim2.new(1, -16, 0, 2)
t175.countLbl.Size = UDim2.fromOffset(110, 18)
t175.countLbl.Font = Enum.Font.GothamBold
t175.countLbl.TextSize = 12
t175.countLbl.TextXAlignment = Enum.TextXAlignment.Right
t175.countLbl.TextColor3 = v3697.muted
t175.countLbl.Text = "0 eggs"
t175.countLbl.Parent = Frame
t175.headLbl = Instance.new("TextLabel")
t175.headLbl.BackgroundTransparency = 1
t175.headLbl.Position = UDim2.fromOffset(14, 2)
t175.headLbl.Size = UDim2.new(1, -135, 0, 18)
t175.headLbl.Font = Enum.Font.GothamBold
t175.headLbl.TextSize = 12
t175.headLbl.TextXAlignment = Enum.TextXAlignment.Left
t175.headLbl.TextTruncate = Enum.TextTruncate.AtEnd
t175.headLbl.TextColor3 = v3697.muted
t175.headLbl.Text = "Tap eggs to pick them"
t175.headLbl.Parent = Frame
local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.Position = UDim2.fromOffset(14, 24)
ScrollingFrame.Size = UDim2.new(1, -28, 0, 36)
ScrollingFrame.BackgroundTransparency = 1
ScrollingFrame.BorderSizePixel = 0
ScrollingFrame.ScrollBarThickness = 3
ScrollingFrame.ScrollBarImageColor3 = v3697.accent
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame.Parent = Frame
local UIListLayout = Instance.new("UIListLayout", ScrollingFrame)
UIListLayout.FillDirection = Enum.FillDirection.Horizontal
UIListLayout.Padding = UDim.new(0, 6)
UIListLayout.VerticalAlignment = Enum.VerticalAlignment.Center
local n74 = 0
t175.chips = {}
local function v4014(p927, p928)
local TextButton = Instance.new("TextButton")
local v4016 = math.max(48, #p927 * 7 + 16)
TextButton.Size = UDim2.fromOffset(v4016, 24)
TextButton.BackgroundColor3 = p928 or v3697.accent
TextButton.BackgroundTransparency = 0.9
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = p928 or v3697.btnText
TextButton.Text = p927
if p928 then
TextButton:SetAttribute("chipColor", p928:ToHex())
end
local UIStroke = Instance.new("UIStroke", TextButton)
UIStroke.Color = p928 or v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 0.65
TextButton.Parent = ScrollingFrame
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(1, 0)
TextButton.MouseButton1Click:Connect(function()
t175.rarity = p927
t175.paintChips()
t175.refresh()
end)
t175.chips[p927] = TextButton
n74 = n74 + v4016 + 6
end
v4014("All", nil)
for _, v in ipairs(v3736()) do
local v4020
for _, v2 in ipairs(t168) do
if v2.rname == v then
local _, _, v4025 = v3707(v2.cat)
v4020 = v4025
break
end
end
v4014(v, v4020)
end
ScrollingFrame.CanvasSize = UDim2.new(0, n74 + 6, 0, 0)
local Frame2 = Instance.new("Frame")
Frame2.Position = UDim2.fromOffset(14, 66)
Frame2.Size = UDim2.new(1, -28, 0, 26)
Frame2.BackgroundTransparency = 1
Frame2.Parent = Frame
local UIListLayout2 = Instance.new("UIListLayout", Frame2)
UIListLayout2.FillDirection = Enum.FillDirection.Horizontal
UIListLayout2.Padding = UDim.new(0, 6)
UIListLayout2.VerticalAlignment = Enum.VerticalAlignment.Center
t175.sortBtns = {}
local function v4028(p929, p930)
local TextButton = Instance.new("TextButton")
TextButton.Size = UDim2.fromOffset(96, 24)
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BackgroundTransparency = 0.9
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = v3697.btnText
TextButton.Text = p930
TextButton.Parent = Frame2
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 5)
TextButton.MouseButton1Click:Connect(function()
t175.sort = p929
t175.paintChips()
t175.refresh()
end)
t175.sortBtns[p929] = TextButton
end
v4028("value", "Best Value")
v4028("rarity", "Rarity")
local TextButton = Instance.new("TextButton")
TextButton.Size = UDim2.fromOffset(76, 24)
TextButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton.BackgroundTransparency = 0.9
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = v3697.btnText
TextButton.Text = "Clear"
TextButton.Parent = Frame2
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 5)
TextButton.MouseButton1Click:Connect(function()
t175.picked = {}
t175.paintRows()
end)
local Frame3 = Instance.new("Frame")
Frame3.Position = UDim2.fromOffset(14, 96)
Frame3.Size = UDim2.new(1, -28, 0, 26)
Frame3.BackgroundTransparency = 1
Frame3.Parent = Frame
local UIListLayout3 = Instance.new("UIListLayout", Frame3)
UIListLayout3.FillDirection = Enum.FillDirection.Horizontal
UIListLayout3.Padding = UDim.new(0, 4)
UIListLayout3.VerticalAlignment = Enum.VerticalAlignment.Center
local TextLabel5 = Instance.new("TextLabel")
TextLabel5.Size = UDim2.fromOffset(38, 24)
TextLabel5.BackgroundTransparency = 1
TextLabel5.Font = Enum.Font.GothamBold
TextLabel5.TextSize = 11
TextLabel5.TextXAlignment = Enum.TextXAlignment.Left
TextLabel5.TextColor3 = v3697.muted
TextLabel5.Text = "MOVE"
TextLabel5.Parent = Frame3
t175.modeBtns = {}
local function v4034(p931, p932)
local TextButton2 = Instance.new("TextButton")
TextButton2.Size = UDim2.fromOffset(68, 24)
TextButton2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
TextButton2.BackgroundTransparency = 0.9
TextButton2.AutoButtonColor = false
TextButton2.Font = Enum.Font.GothamBold
TextButton2.TextSize = 12
TextButton2.TextColor3 = v3697.btnText
TextButton2.Text = p931
TextButton2.Parent = Frame3
Instance.new("UICorner", TextButton2).CornerRadius = UDim.new(0, 5)
local UIStroke = Instance.new("UIStroke", TextButton2)
UIStroke.Color = v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 0.7
TextButton2.MouseButton1Click:Connect(function()
v3698()
genv.__SenaV4StealMode = p932
pcall(function()
if type(applyStealMode) == "function" then
applyStealMode(p932)
end
end)
t175.paintChips()
end)
t175.modeBtns[p932] = TextButton2
end
v4034("Low Speed User", "Instant")
v4034("High Speed User", "Fly")
local ScrollingFrame2 = Instance.new("ScrollingFrame")
ScrollingFrame2.Position = UDim2.fromOffset(14, 128)
ScrollingFrame2.Size = UDim2.new(1, -28, 1, -188)
ScrollingFrame2.BackgroundTransparency = 1
ScrollingFrame2.BorderSizePixel = 0
ScrollingFrame2.ScrollBarThickness = 3
ScrollingFrame2.ScrollBarImageColor3 = v3697.accent
ScrollingFrame2.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame2.Parent = Frame
local UIListLayout4 = Instance.new("UIListLayout", ScrollingFrame2)
UIListLayout4.Padding = UDim.new(0, 4)
UIListLayout4.SortOrder = Enum.SortOrder.LayoutOrder
t175.list = ScrollingFrame2
local Frame4 = Instance.new("Frame")
Frame4.Position = UDim2.new(0, 14, 1, -52)
Frame4.Size = UDim2.new(1, -28, 0, 38)
Frame4.BackgroundTransparency = 1
Frame4.Parent = Frame
local TextButton2 = Instance.new("TextButton")
TextButton2.Size = UDim2.new(0.3, -4, 1, 0)
TextButton2.BackgroundColor3 = Color3.fromRGB(90, 100, 140)
TextButton2.BackgroundTransparency = 0.15
TextButton2.AutoButtonColor = false
TextButton2.Font = Enum.Font.GothamBold
TextButton2.TextSize = 13
TextButton2.TextColor3 = Color3.fromRGB(255, 255, 255)
TextButton2.Text = "Refresh"
TextButton2.Parent = Frame4
Instance.new("UICorner", TextButton2).CornerRadius = UDim.new(0, 6)
TextButton2.MouseButton1Click:Connect(function()
pcall(function()
EggState2.SyncFieldEggs()
end)
t175.refresh()
end)
t175.statusBtn = Instance.new("TextButton")
t175.statusBtn.AnchorPoint = Vector2.new(1, 0)
t175.statusBtn.Position = UDim2.fromScale(1, 0)
t175.statusBtn.Size = UDim2.new(0.69, -4, 1, 0)
t175.statusBtn.BackgroundColor3 = v3697.accent
t175.statusBtn.BackgroundTransparency = 0.12
t175.statusBtn.AutoButtonColor = false
t175.statusBtn.Font = Enum.Font.GothamBold
t175.statusBtn.TextSize = 13
t175.statusBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
t175.statusBtn.Text = "Steal Selected"
t175.statusBtn.Parent = Frame4
Instance.new("UICorner", t175.statusBtn).CornerRadius = UDim.new(0, 6)
t175.statusBtn.MouseButton1Click:Connect(function()
if t175.running then
return
end
local t189 = {}
for k in pairs(t175.picked) do
table.insert(t189, k)
end
if #t189 == 0 then
t175.statusBtn.Text = "Pick an egg first"
task.delay(1.5, function()
if t175.statusBtn and not t175.running then
t175.paintRows()
end
end)
return
end
local __SenaV4EggRuntime = genv.__SenaV4EggRuntime
if __SenaV4EggRuntime and type(__SenaV4EggRuntime.queueManual) == "function" then
local v4044 = __SenaV4EggRuntime:queueManual(t189)
t175.picked = {}
t175.statusBtn.Text = "Queued " .. v4044
task.delay(1.5, function()
if t175.statusBtn and not t175.running then
t175.paintRows()
end
end)
t175.refresh()
else
t175.statusBtn.Text = "Runtime not ready"
task.delay(1.5, function()
if t175.statusBtn and not t175.running then
t175.paintRows()
end
end)
end
end)
t175.paintChips()
t175.refresh()
end
local function v4045(p933)
if not p933 or type(p933) ~= "string" then
return "unknown"
end
local v4046 = p933:lower()
if v4046:find("kong") or v4046:find("gorilla") then
return "gorillaking"
end
if v4046:find("phoenix") then
return "phoenix"
end
if v4046:find("lunar") or v4046:find("dragon.-lunar") then
return "lunardragon"
end
if v4046:find("mosa") then
return "mosasaurus"
end
if v4046:find("tiger") or v4046:find("oni") then
return "onitiger"
end
if v4046:find("kitsune") then
return "kitsune"
end
if v4046:find("unicorn") then
return "unicorn"
end
if v4046:find("godzilla") then
return "godzilla"
end
if v4046:find("pegasus") then
return "pegasus"
end
if v4046:find("archangel") then
return "archangel"
end
if v4046:find("ice.-dragon") then
return "icedragon"
end
if v4046:find("lava.-dragon") or v4046:find("dragon") then
return "lavadragon"
end
if v4046:find("cosmic.-dragon") or v4046:find("ember") then
return "cosmicdragon"
end
if v4046:find("trex") or v4046:find("tyranno") or v4046:find("t%-rex") then
return "trex"
end
if v4046:find("gargoyle") then
return "gargoyle"
end
if v4046:find("cerberus") then
return "cerberus"
end
if v4046:find("yeti") then
return "yeti"
end
if v4046:find("dreadscale") then
return "dreadscale"
end
if v4046:find("el.-maja") then
return "elmaja"
end
return (v4046:gsub("eternal", ""):gsub("ascended", ""):gsub("vermilion", ""):gsub("divine", ""):gsub("secret", ""):gsub("egg", ""):gsub("[^%a%d]", ""))
end
local function v4047(p934)
if not p934 or p934 <= 0 then
return 0
end
return math.floor((p934 + 150) / 300) * 300
end
local function v4048(p935, p936)
if not p935 or p935 <= 0 then
return "--:--"
end
local now = os.time()
local v4050 = os.date("*t", now)
local v4051 = os.date("*t", p935)
local s16
if v4051.year == v4050.year and v4051.yday == v4050.yday then
s16 = "Today"
elseif v4051.year == v4050.year and v4051.yday == v4050.yday - 1 then
s16 = "Yesterday"
elseif v4051.year == v4050.year and v4051.yday == v4050.yday + 1 then
s16 = "Tomorrow"
else
s16 = string.format("%02d/%02d", v4051.month, v4051.day)
end
if p936 then
return string.format("%s %02d:%02d:%02d", s16, v4051.hour, v4051.min, v4051.sec)
end
return string.format("%s %02d:%02d", s16, v4051.hour, v4051.min)
end
local function v4053(p937)
if not p937 or p937 <= 0 then
return ""
end
local v4054 = os.time() - p937
if v4054 < 0 then
local v4055 = -v4054
if v4055 < 60 then
return "in <1m"
end
if v4055 < 3600 then
return string.format("in %dm", math.floor(v4055 / 60))
end
return string.format("in %.1fh", v4055 / 3600)
end
if v4054 < 60 then
return "Just now"
end
if v4054 < 3600 then
return string.format("%dm ago", math.floor(v4054 / 60))
end
if v4054 < 86400 then
return string.format("%.1fh ago", v4054 / 3600)
end
return string.format("%.1fd ago", v4054 / 86400)
end
local function v4056(p938, p939)
local v4057 = v4047(p938)
local v4058 = v4047(p939)
local now = os.time()
local v4060 = os.date("*t", now)
local v4061 = os.date("*t", v4057)
local v4062 = os.date("*t", v4058)
local function v4063(p940)
if p940.year == v4060.year and p940.yday == v4060.yday then
return "Today"
end
if p940.year == v4060.year and p940.yday == v4060.yday + 1 then
return "Tomorrow"
end
if p940.year == v4060.year and p940.yday == v4060.yday - 1 then
return "Yesterday"
end
return string.format("%02d/%02d", p940.month, p940.day)
end
local v4064 = v4063(v4061)
local v4065 = v4063(v4062)
if v4064 == v4065 then
return string.format("%s %02d:%02d - %02d:%02d", v4064, v4061.hour, v4061.min, v4062.hour, v4062.min)
end
return string.format("%s %02d:%02d - %s %02d:%02d", v4064, v4061.hour, v4061.min, v4065, v4062.hour, v4062.min)
end
local t190 = {
Mosasaurus = "rbxassetid://124293259998827",
["Oni Tiger"] = "rbxassetid://109908891899435",
["Eternal Lunar Dragon"] = "rbxassetid://93762296316916",
["Lunar Dragon"] = "rbxassetid://93762296316916",
["King Kong"] = "rbxassetid://135650224014044",
["Gorilla King"] = "rbxassetid://135650224014044",
["Ice Dragon"] = "rbxassetid://101397684798718",
Phoenix = "rbxassetid://118067990008425",
["Ascended Vermilion Phoenix"] = "rbxassetid://118067990008425",
Dragon = "rbxassetid://78935088838538",
["Lava Dragon"] = "rbxassetid://78935088838538",
["Dragon (Lava)"] = "rbxassetid://78935088838538",
Pegasus = "rbxassetid://112830316982322",
["El Maja"] = "rbxassetid://77518688092604",
Kitsune = "rbxassetid://107842067813602",
Unicorn = "rbxassetid://70463817382627",
Godzilla = "rbxassetid://102979882140882",
ArchAngel = "rbxassetid://113289118499426",
["Cosmic Dragon"] = "rbxassetid://107923370723949",
TRex = "rbxassetid://124293259998827",
Gargoyle = "rbxassetid://137949993315884",
["King Snake"] = "rbxassetid://77518688092604"
}
local t191 = {}
local function v4068(p941)
if not p941 then
return ""
end
if t190[p941] then
return t190[p941]
end
if t191[p941] ~= nil then
return t191[p941]
end
t191[p941] = v3710(p941) or ""
return t191[p941]
end
local function v4069(p942)
local request_ = syn and syn.request or http and http.request or request or http_request
if request_ then
local u4071
if pcall(function()
u4071 = request_(p942)
end) and u4071 then
return u4071
end
end
if p942.Method == "GET" and game and game.HttpGet then
local response
if pcall(function()
response = game:HttpGet(p942.Url, true)
end) and response then
return {
StatusCode = 200,
Body = response
}
end
end
return nil
end
local t192 = {
{
id = "eternal_fast",
title = "Eternal",
cycleLabel = "45 - 90m",
rarity = "Eternal",
windowMin = 45,
windowMax = 90,
priority = 1,
color = Color3.fromRGB(255, 215, 0),
candidates = {
{
name = "Mosasaurus",
area = "Prehistoric",
chance = "10.85%",
icon = "rbxassetid://124293259998827"
},
{
name = "Oni Tiger",
area = "Cherry Blossom",
chance = "10.85%",
icon = "rbxassetid://109908891899435"
},
{
name = "Lunar Dragon",
area = "Cosmic",
chance = "10.85%",
icon = "rbxassetid://93762296316916"
},
{
name = "Gorilla King",
area = "Titan Temple",
chance = "10.85%",
icon = "rbxassetid://135650224014044"
},
{
name = "Ice Dragon",
area = "Snow",
chance = "10.85%",
icon = "rbxassetid://101397684798718"
},
{
name = "Phoenix",
area = "Volcano",
chance = "10.85%",
icon = "rbxassetid://118067990008425"
}
}
},
{
id = "divine_fast",
title = "Divine",
cycleLabel = "1.5 - 3h",
rarity = "Divine",
windowMinH = 1.5,
windowMaxH = 3,
priority = 2,
color = Color3.fromRGB(255, 255, 255),
candidates = {
{
name = "Kitsune",
area = "Cherry Blossom",
chance = "20%",
icon = "rbxassetid://107842067813602"
},
{
name = "ArchAngel",
area = "Heaven",
chance = "20%",
icon = "rbxassetid://113289118499426"
},
{
name = "Godzilla",
area = "Prehistoric",
chance = "20%",
icon = "rbxassetid://102979882140882"
},
{
name = "Pegasus",
area = "Fantasy",
chance = "20%",
icon = "rbxassetid://112830316982322"
},
{
name = "Unicorn",
area = "Magical Forest",
chance = "20%",
icon = "rbxassetid://70463817382627"
}
}
}
}
local function v4074(p943)
if not p943 or not p943.name then
return false
end
local now = tonumber(p943.ts) or os.time()
p943.ts = now
local v4076 = (p943.rarity or ""):lower()
if v4076 ~= "eternal" and v4076 ~= "divine" then
return false
end
local v4077 = v4045(p943.name)
for _, v in ipairs(t176.history) do
if v.uid and p943.uid and v.uid == p943.uid then
return false
end
if v4045(v.name) ~= v4077 then
continue
end
if not (math.abs((v.ts or 0) - now) < 600) then
continue
end
return false
end
table.insert(t176.history, p943)
table.sort(t176.history, function(p944, p945)
return (p944.ts or 0) > (p945.ts or 0)
end)
if v4076 == "eternal" then
if not t176.lastEternal then
t176.lastEternal = p943
elseif (t176.lastEternal.ts or 0) <= now then
t176.lastEternal = p943
return true
end
elseif v4076 == "divine" then
if not t176.lastDivine then
t176.lastDivine = p943
elseif (t176.lastDivine.ts or 0) <= now then
t176.lastDivine = p943
return true
end
end
return true
end
t176.getLatestSpawn = function(p946, p947)
for _, v in ipairs(t176.history) do
if p946 and (not v.rarity or v.rarity:lower() ~= p946:lower()) then
continue
end
if not p947 or not (#p947 > 0) then
return v
end
local v4082 = v4045(v.name)
for _, v2 in ipairs(p947) do
if v4045(v2.name) == v4082 then
return v
end
end
end
return nil
end
for _, v in ipairs({
{
uid = "afad935fc39f4ad0a28d83d74dad60f8",
name = "Ice Dragon",
area = "Snow",
rarity = "Eternal",
ts = 1789738200,
reporter = "Server Alert"
},
{
uid = "aac1107e3c3a428c93ecc8d5c4c03296",
name = "Mosasaurus",
area = "Prehistoric",
rarity = "Eternal",
ts = 1789735200,
reporter = "Server Alert"
},
{
uid = "2f08670c03054614b5c088092e0eab9e",
name = "Eternal Lunar Dragon",
area = "Cosmic",
rarity = "Eternal",
ts = 1789733400,
reporter = "Server Alert"
},
{
uid = "d2c1c02c35224ca78eddeda7128643a6",
name = "Skeleton Horse",
area = "Light Dark",
rarity = "Eternal",
ts = 1789731600,
reporter = "Server Alert"
},
{
uid = "a9f84b4645bd4d23a2a8887923febe6e",
name = "Gorilla King",
area = "Titan Temple",
rarity = "Eternal",
ts = 1789729800,
reporter = "Server Alert"
},
{
uid = "seed_divine_1",
name = "Kitsune",
area = "Cherry Blossom",
rarity = "Divine",
ts = 1789678800,
reporter = "Server Alert"
}
}) do
v4074(v)
end
local function v4087(p948)
if not p948 or type(p948) ~= "string" then
return nil
end
if not p948:find("spawned in") then
return nil
end
local v4088 = p948:gsub("<[^>]+>", ""):gsub("[%c]", "")
local match, match2, v4091 = v4088:match("A%s+(%a+)%s+(.-)%s+Egg%s+spawned%s+in%s+([^!]+)")
if not match or not match2 or not v4091 then
match2, match, v4091 = v4088:match("([%w%s]+)%s*%((%a+)%)%s+has%s+spawned%s+in%s+([^!]+)")
end
if not match or not match2 or not v4091 then
return nil
end
local v4092 = v4091:gsub("%s+$", ""):gsub("^%s+", "")
local v4093 = match2:gsub("%s+$", ""):gsub("^%s+", "")
return match:gsub("%s+$", ""):gsub("^%s+", ""), v4093, v4092
end
local function v4094(p949)
local v4095, v4096, v4097 = v4087(p949)
if not v4095 or not v4096 or not v4097 then
return
end
local now = os.time()
local v4099 = v4045(v4096)
local v4100 = math.floor(now / 300)
local v4101 = string.format("alert_%s_%s_%d", v4099, v4097:lower(), v4100)
if t176.reportedUids[v4101] then
return
end
t176.reportedUids[v4101] = now
t176.lastAlert = {
pet = v4096,
area = v4097,
rarity = v4095,
ts = now,
norm = v4099
}
if v4074({
uid = v4101,
name = v4096,
area = v4097,
rarity = v4095,
ts = now,
reporter = "Server Alert"
}) then
pcall(t176.paint)
end
end
t176.reportSpawn = function(p950, p951, p952, p953, p954)
if not p950 or t176.reportedUids[p950] then
return
end
local now = os.time()
local v4103 = tonumber(p954) or now
if now - t176.lastReportTime < 3 then
return
end
t176.reportedUids[p950] = v4103
t176.lastReportTime = now
local Name = LocalPlayer and LocalPlayer.Name or "Player"
if v4074({
uid = tostring(p950),
name = p951,
area = p952,
rarity = p953,
ts = v4103,
reporter = Name
}) then
pcall(t176.paint)
end
end
t176.syncBackend = function()
local now = os.time()
if now - t176.lastSync < 10 then
return
end
t176.lastSync = now
task.spawn(function()
local SenaBackend = getgenv and getgenv().SenaBackend or {}
local Api = SenaBackend.Api or "http://56.10.112.179:8080"
local Key = SenaBackend.Key or ""
local v4109 = LocalPlayer and tostring(LocalPlayer.UserId) or "0"
local v4110 = v4069({
Url = Api .. "/egg/latest?key=" .. tostring(Key) .. "&uid=" .. tostring(v4109) .. "&t=" .. tostring(now),
Method = "GET"
})
if v4110 and (v4110.StatusCode == 200 or v4110.Status == 200) and v4110.Body then
local HttpService2 = game:GetService("HttpService")
local ok, result = pcall(function()
return HttpService2:JSONDecode(v4110.Body)
end)
if ok and type(result) == "table" and result.ok then
if result.last_eternal and type(result.last_eternal) == "table" and result.last_eternal.name then
v4074(result.last_eternal)
end
if result.last_divine and type(result.last_divine) == "table" and result.last_divine.name then
v4074(result.last_divine)
end
if type(result.recent_spawns) == "table" then
for _, recentSpawn in ipairs(result.recent_spawns) do
v4074(recentSpawn)
end
end
pcall(t176.paint)
end
end
end)
end
t176.scanField = function()
local u4116
pcall(function()
u4116 = EggState2.ReadFieldEggs()
end)
if not u4116 or not u4116.Records then
return
end
local now = os.time()
if not t176._fieldInitialized then
t176._fieldInitialized = true
for _, record in ipairs(u4116.Records) do
if record.Uid then
t176.knownFieldUids[record.Uid] = true
end
end
return
end
for _, record in ipairs(u4116.Records) do
if record.Uid and not t176.knownFieldUids[record.Uid] then
t176.knownFieldUids[record.Uid] = true
if record.State ~= "Claimed" and record.BottomCFrame then
local AssetCategory = record.AssetCategory
local _, v4124 = v3707(AssetCategory)
if v4124 == "Divine" or v4124 == "Eternal" then
local v4125 = AssetCategory == "King Kong" and "Gorilla King" or AssetCategory == "Ascended Vermilion Phoenix" and "Phoenix" or AssetCategory
local ts = now
if t176.lastAlert then
if now - (t176.lastAlert.ts or 0) <= 60 and v4045(t176.lastAlert.pet) == v4045(v4125) then
if t176.lastAlert.area:lower() == (record.AreaId or ""):lower() then
ts = t176.lastAlert.ts
end
end
end
t176.reportSpawn(record.Uid, v4125, record.AreaId or "Field", v4124, ts)
end
end
end
end
end
t176.paint = function()
v3698()
if not t176.list or not t176.list.Parent then
return
end
for _, child in ipairs(t176.list:GetChildren()) do
if child:IsA("Frame") then
child:Destroy()
end
end
local now = os.time()
local eternal = t176.getLatestSpawn("eternal")
local divine = t176.getLatestSpawn("divine")
local ts = eternal and eternal.ts or 1789738200
local ts2 = divine and divine.ts or 1789678800
if t176.catBtnTargets and t176.catBtnHistory then
local v4134 = t176.category == "targets"
t176.catBtnTargets.BackgroundColor3 = v4134 and v3697.accent or Color3.fromRGB(24, 26, 36)
t176.catBtnTargets.TextColor3 = v4134 and Color3.fromRGB(255, 255, 255) or v3697.btnText
local UIStroke = t176.catBtnTargets:FindFirstChildOfClass("UIStroke")
if UIStroke then
UIStroke.Color = v4134 and v3697.accent or v3697.strokeCol
end
t176.catBtnHistory.BackgroundColor3 = not v4134 and v3697.accent or Color3.fromRGB(24, 26, 36)
t176.catBtnHistory.TextColor3 = not v4134 and Color3.fromRGB(255, 255, 255) or v3697.btnText
local UIStroke2 = t176.catBtnHistory:FindFirstChildOfClass("UIStroke")
if UIStroke2 then
UIStroke2.Color = not v4134 and v3697.accent or v3697.strokeCol
end
end
if t176.noticeBox then
t176.noticeBox.Visible = t176.category == "targets"
end
if t176.summaryBox then
t176.summaryBox.Visible = t176.category == "history"
if t176.summaryText and t176.category == "history" then
local v4137 = eternal
local name = v4137 and v4137.name or "Phoenix"
local area = v4137 and v4137.area or "Volcano"
local ts3 = v4137 and v4137.ts or ts
local v4141 = v4048(ts3, true)
local v4142 = v4053(ts3)
local v4143 = divine
local name2 = v4143 and v4143.name or "Kitsune"
local area2 = v4143 and v4143.area or "Cherry Blossom"
local ts4 = v4143 and v4143.ts or ts2
local v4147 = v4048(ts4, true)
local v4148 = v4053(ts4)
t176.summaryText.Text = string.format("LAST ETERNAL: %s (%s) - %s (%s)\nLAST DIVINE: %s (%s) - %s (%s)", name, area, v4141, v4142, name2, area2, v4147, v4148)
end
end
if t176.refreshBtn then
t176.refreshBtn.Text = t176.category == "targets" and "Refresh Targets" or "Refresh History"
end
if t176.category == "targets" then
local n75 = 0
for i, v in ipairs(t192) do
if t176.filter == "All" or t176.filter == v.rarity then
n75 += 1
local divine2 = t176.getLatestSpawn(v.rarity, v.candidates) or eternal
if v.rarity == "Divine" then
divine2 = t176.getLatestSpawn("divine") or divine
end
local ts3 = divine2 and divine2.ts or v.rarity == "Divine" and ts2 or ts
local v4154 = v.windowMinH and v.windowMinH * 3600
if not v4154 then
v4154 = (v.windowMin or 45) * 60
end
local v4155 = v.windowMaxH and v.windowMaxH * 3600
if not v4155 then
v4155 = (v.windowMax or 90) * 60
end
local v4156 = v4155 - v4154
local v4157 = ts3 + v4154
local v4158 = ts3 + v4155
if v.rarity == "Eternal" and v4154 * 0.75 < now - v4158 then
while v4154 * 0.75 < now - v4158 do
v4157 = v4158 + v4154
v4158 = v4157 + v4156
end
end
local v4159 = v4047(v4157)
local v4160 = v4047(v4158)
local text = "UPCOMING"
local color3 = Color3.fromRGB(100, 200, 255)
if v4160 < now then
local v4163 = math.ceil((now - v4160) / 60)
text = v4163 >= 60 and string.format("OVERDUE +%.1fh", v4163 / 60) or string.format("OVERDUE +%dm", v4163)
color3 = Color3.fromRGB(255, 0, 128)
elseif v4159 <= now and now <= v4160 then
text = "IN WINDOW"
color3 = Color3.fromRGB(0, 255, 136)
else
local v4164 = math.ceil((v4159 - now) / 60)
if v4164 > 0 and v4164 < 60 then
text = string.format("IN %dm", v4164)
color3 = Color3.fromRGB(80, 210, 255)
elseif v4164 >= 60 then
text = string.format("IN %.1fh", v4164 / 60)
color3 = Color3.fromRGB(80, 210, 255)
end
end
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(1, -6, 0, 122)
Frame.BackgroundColor3 = v3697.surface
Frame.BackgroundTransparency = 0.15
Frame.BorderSizePixel = 0
Frame.LayoutOrder = i
Frame.Parent = t176.list
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 8)
local UIStroke = Instance.new("UIStroke", Frame)
UIStroke.Color = v.color or v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 0.78
local Frame2 = Instance.new("Frame")
Frame2.Size = UDim2.new(0, 4, 1, -12)
Frame2.Position = UDim2.fromOffset(0, 6)
Frame2.BorderSizePixel = 0
Frame2.BackgroundColor3 = v.color or v3697.accent
Frame2.Parent = Frame
Instance.new("UICorner", Frame2).CornerRadius = UDim.new(1, 0)
local TextLabel5 = Instance.new("TextLabel")
TextLabel5.BackgroundTransparency = 1
TextLabel5.Position = UDim2.fromOffset(12, 6)
TextLabel5.Size = UDim2.new(0.5, 0, 0, 16)
TextLabel5.Font = Enum.Font.GothamBold
TextLabel5.TextSize = 13
TextLabel5.TextXAlignment = Enum.TextXAlignment.Left
TextLabel5.TextColor3 = v.color or Color3.fromRGB(255, 255, 255)
TextLabel5.Text = string.format("%s Window (%s)", v.title, v.cycleLabel)
TextLabel5.Parent = Frame
local TextLabel6 = Instance.new("TextLabel")
TextLabel6.Position = UDim2.new(1, -12, 0, 6)
TextLabel6.AnchorPoint = Vector2.new(1, 0)
TextLabel6.Size = UDim2.fromOffset(math.max(76, #text * 7 + 14), 18)
TextLabel6.BackgroundColor3 = color3
TextLabel6.BackgroundTransparency = 0.2
TextLabel6.Font = Enum.Font.GothamBold
TextLabel6.TextSize = 10
TextLabel6.TextColor3 = Color3.fromRGB(255, 255, 255)
TextLabel6.Text = text
TextLabel6.Parent = Frame
Instance.new("UICorner", TextLabel6).CornerRadius = UDim.new(0, 4)
local TextLabel7 = Instance.new("TextLabel")
TextLabel7.BackgroundTransparency = 1
TextLabel7.Position = UDim2.fromOffset(12, 24)
TextLabel7.Size = UDim2.new(1, -24, 0, 14)
TextLabel7.Font = Enum.Font.GothamMedium
TextLabel7.TextSize = 10
TextLabel7.TextXAlignment = Enum.TextXAlignment.Left
TextLabel7.TextColor3 = Color3.fromRGB(150, 180, 220)
TextLabel7.Text = string.format("Window: %s", v4056(v4159, v4160))
TextLabel7.Parent = Frame
local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.Position = UDim2.fromOffset(12, 42)
ScrollingFrame.Size = UDim2.new(1, -24, 0, 72)
ScrollingFrame.BackgroundTransparency = 1
ScrollingFrame.BorderSizePixel = 0
ScrollingFrame.ScrollBarThickness = 2
ScrollingFrame.ScrollBarImageColor3 = v.color or v3697.accent
ScrollingFrame.ScrollingDirection = Enum.ScrollingDirection.X
ScrollingFrame.CanvasSize = UDim2.new(0, #v.candidates * 64 + 4, 0, 0)
ScrollingFrame.Parent = Frame
local UIListLayout = Instance.new("UIListLayout", ScrollingFrame)
UIListLayout.FillDirection = Enum.FillDirection.Horizontal
UIListLayout.Padding = UDim.new(0, 6)
for _, candidate in ipairs(v.candidates) do
local Frame3 = Instance.new("Frame")
Frame3.Size = UDim2.fromOffset(58, 68)
Frame3.BackgroundColor3 = Color3.fromRGB(22, 26, 36)
Frame3.BackgroundTransparency = 0.3
Frame3.BorderSizePixel = 0
Frame3.Parent = ScrollingFrame
Instance.new("UICorner", Frame3).CornerRadius = UDim.new(0, 6)
local UIStroke2 = Instance.new("UIStroke", Frame3)
UIStroke2.Color = v.color or v3697.strokeCol
UIStroke2.Thickness = 1
UIStroke2.Transparency = 0.75
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Position = UDim2.fromOffset(15, 4)
ImageLabel.Size = UDim2.fromOffset(28, 28)
ImageLabel.BackgroundColor3 = Color3.fromRGB(30, 34, 46)
ImageLabel.BackgroundTransparency = 0.4
ImageLabel.BorderSizePixel = 0
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Image = candidate.icon or v4068(candidate.name)
ImageLabel.Parent = Frame3
Instance.new("UICorner", ImageLabel).CornerRadius = UDim.new(0, 4)
local TextLabel8 = Instance.new("TextLabel")
TextLabel8.Position = UDim2.new(0, 1, 0, 34)
TextLabel8.Size = UDim2.new(1, -2, 0, 12)
TextLabel8.BackgroundTransparency = 1
TextLabel8.Font = Enum.Font.GothamBold
TextLabel8.TextSize = 8
TextLabel8.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel8.TextColor3 = Color3.fromRGB(230, 235, 245)
TextLabel8.TextXAlignment = Enum.TextXAlignment.Center
TextLabel8.Text = candidate.name
TextLabel8.Parent = Frame3
local TextLabel9 = Instance.new("TextLabel")
TextLabel9.Position = UDim2.new(0, 1, 0, 46)
TextLabel9.Size = UDim2.new(1, -2, 0, 11)
TextLabel9.BackgroundTransparency = 1
TextLabel9.Font = Enum.Font.GothamMedium
TextLabel9.TextSize = 7
TextLabel9.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel9.TextColor3 = v3697.muted
TextLabel9.TextXAlignment = Enum.TextXAlignment.Center
TextLabel9.Text = candidate.area
TextLabel9.Parent = Frame3
local TextLabel10 = Instance.new("TextLabel")
TextLabel10.Position = UDim2.new(0, 1, 0, 58)
TextLabel10.Size = UDim2.new(1, -2, 0, 11)
TextLabel10.BackgroundTransparency = 1
TextLabel10.Font = Enum.Font.GothamBold
TextLabel10.TextSize = 8
TextLabel10.TextColor3 = Color3.fromRGB(255, 185, 0)
TextLabel10.TextXAlignment = Enum.TextXAlignment.Center
TextLabel10.Text = candidate.chance
TextLabel10.Parent = Frame3
end
end
end
t176.list.CanvasSize = UDim2.new(0, 0, 0, n75 * 128 + 10)
else
local t193 = {}
for _, v in ipairs(t176.history) do
if t176.filter == "All" or t176.filter == v.rarity then
local _, _, v4186 = v3707(v.name)
table.insert(t193, {
name = v.name,
area = v.area,
rarity = v.rarity,
subText1 = string.format("[%s] - %s", (v.rarity or "Eternal"):upper(), v.area or "Field"),
subText2 = string.format("Source: %s", v.reporter or "Server Alert"),
rateText = v4048(v.ts, false),
badge = v4053(v.ts),
badgeColor = Color3.fromRGB(0, 255, 136),
color = v4186 or v.rarity == "Divine" and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(255, 215, 0),
icon = v4068(v.name),
order = 1e10 - (v.ts or 0)
})
end
end
for i, v in ipairs(t193) do
local Frame = Instance.new("Frame")
Frame.Size = UDim2.new(1, -6, 0, 54)
Frame.BackgroundColor3 = v3697.surface
Frame.BackgroundTransparency = 0.15
Frame.BorderSizePixel = 0
Frame.LayoutOrder = i
Frame.Parent = t176.list
Instance.new("UICorner", Frame).CornerRadius = UDim.new(0, 8)
local UIStroke = Instance.new("UIStroke", Frame)
UIStroke.Color = v.color or v3697.accent
UIStroke.Thickness = 1
UIStroke.Transparency = 0.78
local Frame2 = Instance.new("Frame")
Frame2.Size = UDim2.new(0, 4, 1, -12)
Frame2.Position = UDim2.fromOffset(0, 6)
Frame2.BorderSizePixel = 0
Frame2.BackgroundColor3 = v.color or v3697.accent
Frame2.Parent = Frame
Instance.new("UICorner", Frame2).CornerRadius = UDim.new(1, 0)
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Position = UDim2.fromOffset(10, 8)
ImageLabel.Size = UDim2.fromOffset(38, 38)
ImageLabel.BackgroundColor3 = Color3.fromRGB(25, 28, 38)
ImageLabel.BackgroundTransparency = 0.4
ImageLabel.BorderSizePixel = 0
ImageLabel.ScaleType = Enum.ScaleType.Fit
ImageLabel.Image = v.icon or ""
ImageLabel.Parent = Frame
Instance.new("UICorner", ImageLabel).CornerRadius = UDim.new(0, 6)
local TextLabel5 = Instance.new("TextLabel")
TextLabel5.BackgroundTransparency = 1
TextLabel5.Position = UDim2.fromOffset(56, 6)
TextLabel5.Size = UDim2.new(1, -165, 0, 16)
TextLabel5.Font = Enum.Font.GothamBold
TextLabel5.TextSize = 12
TextLabel5.TextXAlignment = Enum.TextXAlignment.Left
TextLabel5.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel5.TextColor3 = v3697.text
TextLabel5.Text = v.name
TextLabel5.Parent = Frame
local TextLabel6 = Instance.new("TextLabel")
TextLabel6.BackgroundTransparency = 1
TextLabel6.Position = UDim2.fromOffset(56, 22)
TextLabel6.Size = UDim2.new(1, -165, 0, 14)
TextLabel6.Font = Enum.Font.GothamMedium
TextLabel6.TextSize = 10
TextLabel6.TextXAlignment = Enum.TextXAlignment.Left
TextLabel6.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel6.TextColor3 = v3697.muted
TextLabel6.Text = v.subText1
TextLabel6.Parent = Frame
local TextLabel7 = Instance.new("TextLabel")
TextLabel7.BackgroundTransparency = 1
TextLabel7.Position = UDim2.fromOffset(56, 36)
TextLabel7.Size = UDim2.new(1, -165, 0, 13)
TextLabel7.Font = Enum.Font.GothamMedium
TextLabel7.TextSize = 9
TextLabel7.TextXAlignment = Enum.TextXAlignment.Left
TextLabel7.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel7.TextColor3 = Color3.fromRGB(150, 180, 220)
TextLabel7.Text = v.subText2
TextLabel7.Parent = Frame
local Frame3 = Instance.new("Frame")
Frame3.BackgroundTransparency = 1
Frame3.AnchorPoint = Vector2.new(1, 0.5)
Frame3.Position = UDim2.new(1, -8, 0.5, 0)
Frame3.Size = UDim2.fromOffset(105, 38)
Frame3.Parent = Frame
local TextLabel8 = Instance.new("TextLabel")
TextLabel8.BackgroundTransparency = 1
TextLabel8.Size = UDim2.new(1, 0, 0, 18)
TextLabel8.Font = Enum.Font.GothamBold
TextLabel8.TextSize = 11
TextLabel8.TextXAlignment = Enum.TextXAlignment.Right
TextLabel8.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel8.TextColor3 = v.badgeColor
TextLabel8.Text = string.format("[%s]", v.badge)
TextLabel8.Parent = Frame3
local TextLabel9 = Instance.new("TextLabel")
TextLabel9.BackgroundTransparency = 1
TextLabel9.Position = UDim2.new(0, 0, 0, 18)
TextLabel9.Size = UDim2.new(1, 0, 0, 16)
TextLabel9.Font = Enum.Font.GothamBold
TextLabel9.TextSize = 10
TextLabel9.TextXAlignment = Enum.TextXAlignment.Right
TextLabel9.TextTruncate = Enum.TextTruncate.AtEnd
TextLabel9.TextColor3 = Color3.fromRGB(170, 185, 210)
TextLabel9.Text = v.rateText
TextLabel9.Parent = Frame3
end
t176.list.CanvasSize = UDim2.new(0, 0, 0, #t193 * 58 + 10)
end
end
t176.build = function(p955)
local Frame = Instance.new("Frame")
Frame.Size = UDim2.fromScale(1, 1)
Frame.BackgroundTransparency = 1
Frame.BorderSizePixel = 0
Frame.Parent = p955
t176.headLbl = Instance.new("TextLabel")
t176.headLbl.BackgroundTransparency = 1
t176.headLbl.Position = UDim2.fromOffset(14, 2)
t176.headLbl.Size = UDim2.new(1, -28, 0, 18)
t176.headLbl.Font = Enum.Font.GothamBold
t176.headLbl.TextSize = 12
t176.headLbl.TextXAlignment = Enum.TextXAlignment.Left
t176.headLbl.TextTruncate = Enum.TextTruncate.AtEnd
t176.headLbl.TextColor3 = v3697.accent
t176.headLbl.Text = "Global Egg Data & History"
t176.headLbl.Parent = Frame
local Frame2 = Instance.new("Frame")
Frame2.Position = UDim2.fromOffset(14, 22)
Frame2.Size = UDim2.new(1, -28, 0, 32)
Frame2.BackgroundTransparency = 1
Frame2.Parent = Frame
local UIListLayout = Instance.new("UIListLayout", Frame2)
UIListLayout.FillDirection = Enum.FillDirection.Horizontal
UIListLayout.Padding = UDim.new(0, 8)
local TextButton = Instance.new("TextButton")
TextButton.Size = UDim2.new(0.5, -4, 1, 0)
TextButton.BackgroundColor3 = v3697.accent
TextButton.AutoButtonColor = false
TextButton.Font = Enum.Font.GothamBold
TextButton.TextSize = 12
TextButton.TextColor3 = Color3.fromRGB(255, 255, 255)
TextButton.Text = "Egg Data (Targets)"
TextButton.Parent = Frame2
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(0, 6)
local UIStroke = Instance.new("UIStroke", TextButton)
UIStroke.Color = v3697.accent
UIStroke.Thickness = 1
t176.catBtnTargets = TextButton
local TextButton2 = Instance.new("TextButton")
TextButton2.Size = UDim2.new(0.5, -4, 1, 0)
TextButton2.BackgroundColor3 = Color3.fromRGB(24, 26, 36)
TextButton2.AutoButtonColor = false
TextButton2.Font = Enum.Font.GothamBold
TextButton2.TextSize = 12
TextButton2.TextColor3 = v3697.btnText
TextButton2.Text = "Egg History"
TextButton2.Parent = Frame2
Instance.new("UICorner", TextButton2).CornerRadius = UDim.new(0, 6)
local UIStroke2 = Instance.new("UIStroke", TextButton2)
UIStroke2.Color = v3697.strokeCol
UIStroke2.Thickness = 1
t176.catBtnHistory = TextButton2
TextButton.MouseButton1Click:Connect(function()
t176.category = "targets"
t176.filter = "All"
for k, chip in pairs(t176.chips) do
local v4208 = k == "All"
chip.BackgroundColor3 = v4208 and v3697.accent or Color3.fromRGB(255, 255, 255)
chip.BackgroundTransparency = v4208 and 0.15 or 0.9
chip.TextColor3 = v4208 and Color3.fromRGB(255, 255, 255) or v3697.btnText
end
t176.paint()
end)
TextButton2.MouseButton1Click:Connect(function()
t176.category = "history"
t176.filter = "All"
for k, chip in pairs(t176.chips) do
local v4211 = k == "All"
chip.BackgroundColor3 = v4211 and v3697.accent or Color3.fromRGB(255, 255, 255)
chip.BackgroundTransparency = v4211 and 0.15 or 0.9
chip.TextColor3 = v4211 and Color3.fromRGB(255, 255, 255) or v3697.btnText
end
t176.paint()
end)
local Frame3 = Instance.new("Frame")
Frame3.Position = UDim2.fromOffset(14, 58)
Frame3.Size = UDim2.new(1, -28, 0, 44)
Frame3.BackgroundColor3 = Color3.fromRGB(16, 20, 32)
Frame3.BorderSizePixel = 0
Frame3.Parent = Frame
Instance.new("UICorner", Frame3).CornerRadius = UDim.new(0, 6)
local UIStroke3 = Instance.new("UIStroke", Frame3)
UIStroke3.Color = Color3.fromRGB(50, 80, 130)
UIStroke3.Thickness = 1
t176.noticeBox = Frame3
local TextLabel5 = Instance.new("TextLabel")
TextLabel5.Position = UDim2.new(0, 8, 0, 4)
TextLabel5.Size = UDim2.new(1, -16, 1, -8)
TextLabel5.BackgroundTransparency = 1
TextLabel5.Font = Enum.Font.GothamMedium
TextLabel5.TextSize = 10
TextLabel5.TextColor3 = Color3.fromRGB(180, 205, 235)
TextLabel5.TextXAlignment = Enum.TextXAlignment.Left
TextLabel5.TextWrapped = true
TextLabel5.RichText = true
TextLabel5.Text = "Note: These are estimated spawn targets based on cycle timing, not 100% guaranteed predictions."
TextLabel5.Parent = Frame3
t176.noticeText = TextLabel5
local Frame4 = Instance.new("Frame")
Frame4.Position = UDim2.fromOffset(14, 58)
Frame4.Size = UDim2.new(1, -28, 0, 44)
Frame4.BackgroundColor3 = Color3.fromRGB(22, 18, 28)
Frame4.BorderSizePixel = 0
Frame4.Visible = false
Frame4.Parent = Frame
Instance.new("UICorner", Frame4).CornerRadius = UDim.new(0, 6)
local UIStroke4 = Instance.new("UIStroke", Frame4)
UIStroke4.Color = Color3.fromRGB(130, 80, 40)
UIStroke4.Thickness = 1
t176.summaryBox = Frame4
local TextLabel6 = Instance.new("TextLabel")
TextLabel6.Position = UDim2.new(0, 8, 0, 4)
TextLabel6.Size = UDim2.new(1, -16, 1, -8)
TextLabel6.BackgroundTransparency = 1
TextLabel6.Font = Enum.Font.GothamMedium
TextLabel6.TextSize = 10
TextLabel6.TextColor3 = Color3.fromRGB(240, 220, 200)
TextLabel6.TextXAlignment = Enum.TextXAlignment.Left
TextLabel6.TextWrapped = true
TextLabel6.RichText = true
TextLabel6.Text = ""
TextLabel6.Parent = Frame4
t176.summaryText = TextLabel6
local ScrollingFrame = Instance.new("ScrollingFrame")
ScrollingFrame.Position = UDim2.fromOffset(14, 106)
ScrollingFrame.Size = UDim2.new(1, -28, 0, 26)
ScrollingFrame.BackgroundTransparency = 1
ScrollingFrame.BorderSizePixel = 0
ScrollingFrame.ScrollBarThickness = 2
ScrollingFrame.ScrollBarImageColor3 = v3697.accent
ScrollingFrame.ScrollingDirection = Enum.ScrollingDirection.X
ScrollingFrame.CanvasSize = UDim2.new(0, 220, 0, 0)
ScrollingFrame.Parent = Frame
t176.chipBar = ScrollingFrame
local UIListLayout2 = Instance.new("UIListLayout", ScrollingFrame)
UIListLayout2.FillDirection = Enum.FillDirection.Horizontal
UIListLayout2.Padding = UDim.new(0, 6)
UIListLayout2.VerticalAlignment = Enum.VerticalAlignment.Center
t176.chips = {}
for _, v in ipairs({
"All",
"Eternal",
"Divine"
}) do
local TextButton3 = Instance.new("TextButton")
TextButton3.Size = UDim2.fromOffset(60, 24)
TextButton3.BackgroundColor3 = t176.filter == v and v3697.accent or Color3.fromRGB(255, 255, 255)
TextButton3.BackgroundTransparency = t176.filter == v and 0.15 or 0.9
TextButton3.AutoButtonColor = false
TextButton3.Font = Enum.Font.GothamBold
TextButton3.TextSize = 11
TextButton3.TextColor3 = t176.filter == v and Color3.fromRGB(255, 255, 255) or v3697.btnText
TextButton3.Text = v
TextButton3.Parent = ScrollingFrame
Instance.new("UICorner", TextButton3).CornerRadius = UDim.new(1, 0)
local UIStroke5 = Instance.new("UIStroke", TextButton3)
UIStroke5.Color = v3697.accent
UIStroke5.Thickness = 1
UIStroke5.Transparency = 0.65
TextButton3.MouseButton1Click:Connect(function()
t176.filter = v
for k, chip in pairs(t176.chips) do
local v4226 = k == v
chip.BackgroundColor3 = v4226 and v3697.accent or Color3.fromRGB(255, 255, 255)
chip.BackgroundTransparency = v4226 and 0.15 or 0.9
chip.TextColor3 = v4226 and Color3.fromRGB(255, 255, 255) or v3697.btnText
end
t176.paint()
end)
t176.chips[v] = TextButton3
end
local ScrollingFrame2 = Instance.new("ScrollingFrame")
ScrollingFrame2.Position = UDim2.fromOffset(14, 136)
ScrollingFrame2.Size = UDim2.new(1, -28, 1, -180)
ScrollingFrame2.BackgroundTransparency = 1
ScrollingFrame2.BorderSizePixel = 0
ScrollingFrame2.ScrollBarThickness = 4
ScrollingFrame2.ScrollBarImageColor3 = v3697.accent
ScrollingFrame2.ScrollingDirection = Enum.ScrollingDirection.Y
ScrollingFrame2.CanvasSize = UDim2.new(0, 0, 0, 0)
ScrollingFrame2.Parent = Frame
local UIListLayout3 = Instance.new("UIListLayout", ScrollingFrame2)
UIListLayout3.Padding = UDim.new(0, 6)
UIListLayout3.SortOrder = Enum.SortOrder.LayoutOrder
t176.list = ScrollingFrame2
local Frame5 = Instance.new("Frame")
Frame5.Position = UDim2.new(0, 14, 1, -40)
Frame5.Size = UDim2.new(1, -28, 0, 32)
Frame5.BackgroundTransparency = 1
Frame5.Parent = Frame
local TextButton3 = Instance.new("TextButton")
TextButton3.Size = UDim2.new(0.48, -4, 1, 0)
TextButton3.BackgroundColor3 = Color3.fromRGB(60, 70, 95)
TextButton3.BackgroundTransparency = 0.15
TextButton3.AutoButtonColor = false
TextButton3.Font = Enum.Font.GothamBold
TextButton3.TextSize = 11
TextButton3.TextColor3 = Color3.fromRGB(255, 255, 255)
TextButton3.Text = "Refresh Targets"
TextButton3.Parent = Frame5
Instance.new("UICorner", TextButton3).CornerRadius = UDim.new(0, 6)
TextButton3.MouseButton1Click:Connect(function()
t176.scanField()
t176.syncBackend()
t176.paint()
end)
t176.refreshBtn = TextButton3
local TextLabel7 = Instance.new("TextLabel")
TextLabel7.AnchorPoint = Vector2.new(1, 0)
TextLabel7.Position = UDim2.fromScale(1, 0)
TextLabel7.Size = UDim2.new(0.5, -4, 1, 0)
TextLabel7.BackgroundColor3 = Color3.fromRGB(20, 24, 34)
TextLabel7.BackgroundTransparency = 0.2
TextLabel7.Font = Enum.Font.GothamBold
TextLabel7.TextSize = 11
TextLabel7.TextColor3 = Color3.fromRGB(0, 255, 136)
TextLabel7.Text = "Online Synced"
TextLabel7.Parent = Frame5
Instance.new("UICorner", TextLabel7).CornerRadius = UDim.new(0, 6)
t176.statusLbl = TextLabel7
if not t176.bound then
t176.bound = true
pcall(function()
local ExperienceChat = game:GetService("CoreGui"):FindFirstChild("ExperienceChat")
if ExperienceChat then
for _, descendant in ipairs(ExperienceChat:GetDescendants()) do
if descendant:IsA("TextLabel") then
if descendant.Text:find("spawned in") then
local v4235, v4236, v4237 = v4087(descendant.Text)
if v4235 and v4236 and v4237 then
local v4238 = string.format("init_%s_%s", v4045(v4236), v4237:lower())
if not t176.reportedUids[v4238] then
t176.reportedUids[v4238] = os.time()
v4074({
uid = v4238,
name = v4236,
area = v4237,
rarity = v4235,
ts = os.time() - 120,
reporter = "Server Alert"
})
end
end
end
end
end
ExperienceChat.DescendantAdded:Connect(function(descendant)
if descendant:IsA("TextLabel") then
if descendant.Text:find("spawned in") then
task.wait(0.05)
v4094(descendant.Text)
end
end
end)
end
end)
pcall(function()
game:GetService("TextChatService").MessageReceived:Connect(function(p956)
if p956 and p956.Text then
if p956.Text:find("spawned in") then
v4094(p956.Text)
end
end
end)
end)
end
t176.scanField()
t176.syncBackend()
t176.paint()
end
t176.refresh = function()
t176.scanField()
t176.syncBackend()
t176.paint()
end
local t194 = {
"logs",
"eggs",
"inventory",
"checker",
"eggdata"
}
local t195 = {
logs = {
name = "Egg Logs",
w = 420,
h = 500,
build = function(p957)
return v3797(p957)
end
},
eggs = {
name = "Egg Board",
w = 420,
h = 500,
build = function(p958)
return v3849(p958)
end
},
inventory = {
name = "Inventory & Base",
w = 440,
h = 510,
build = function(p959)
return v3935(p959)
end
},
checker = {
name = "Egg Checker",
w = 420,
h = 500,
build = function(p960)
return t175.build(p960)
end
},
eggdata = {
name = "Egg Data & History",
w = 380,
h = 570,
build = function(p961)
return t176.build(p961)
end
}
}
local function v4241(p962)
v3698()
local v4242 = t195[p962]
if not v4242 then
return
end
local name = "__SNE_Panel_" .. p962
local function v4244()
local ok, result = pcall(function()
return LocalPlayer:FindFirstChild("PlayerGui")
end)
local v4247 = ok and result or nil
return v4247
end
for _, v in ipairs({
game:GetService("CoreGui"),
v4244()
}) do
if v then
pcall(function()
for _, descendant in ipairs(v:GetDescendants()) do
if descendant.Name == name and descendant:IsA("ScreenGui") then
pcall(function()
descendant:Destroy()
end)
end
end
end)
end
end
local v4252 = v3699()
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = name
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.DisplayOrder = 99999
ScreenGui.Parent = v4252
local n76 = 0
for i, v in ipairs(t194) do
if v == p962 then
n76 = i - 1
end
end
local Frame = Instance.new("Frame")
Frame.AnchorPoint = Vector2.new(0.5, 0.5)
Frame.Size = UDim2.fromOffset(v4242.w, v4242.h)
Frame.BackgroundTransparency = 1
Frame.Active = true
Frame.Parent = ScreenGui
local UIScale = Instance.new("UIScale")
UIScale.Name = "WindowScale"
UIScale.Scale = 1
UIScale.Parent = Frame
local UserInputService = game:GetService("UserInputService")
local function v4260(p963)
local CurrentCamera = workspace.CurrentCamera
local ViewportSize = CurrentCamera and CurrentCamera.ViewportSize or Vector2.new(1024, 768)
if ViewportSize.X <= 0 or ViewportSize.Y <= 0 then
return
end
local v4263 = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled or ViewportSize.Y < 550
local v4264 = math.min(1, ViewportSize.X * (v4263 and 0.86 or 0.94) / v4242.w, ViewportSize.Y * (v4263 and 0.88 or 0.92) / v4242.h)
if v4263 and v4264 > 0.82 then
v4264 = 0.82
end
UIScale.Scale = math.clamp(v4264, 0.48, 1)
local Scale = UIScale.Scale
local v4266 = v4242.w * Scale
local v4267 = v4242.h * Scale
if p963 then
if v4263 then
local v4268 = ViewportSize.X - math.floor(v4266 / 2) - 14
local v4269 = math.floor(ViewportSize.Y / 2)
Frame.Position = UDim2.fromOffset(v4268, v4269)
else
local v4270 = n76 * 20
Frame.Position = UDim2.fromOffset(math.floor(ViewportSize.X / 2 + n76 * 24), math.floor(ViewportSize.Y / 2 + v4270))
end
end
local v4271 = v4266 / 2
local v4272 = v4267 / 2
local v4273 = math.min(v4271 + 8, ViewportSize.X / 2)
local v4274 = math.max(ViewportSize.X - v4271 - 8, ViewportSize.X / 2)
local v4275 = math.min(v4272 + 8, ViewportSize.Y / 2)
local v4276 = math.max(ViewportSize.Y - v4272 - 8, ViewportSize.Y / 2)
local v4277 = Frame.Position.Y.Scale * ViewportSize.Y + Frame.Position.Y.Offset
local floor = math.floor
Frame.Position = UDim2.fromOffset(math.floor(math.clamp(Frame.Position.X.Scale * ViewportSize.X + Frame.Position.X.Offset, v4273, v4274)), floor(math.clamp(v4277, v4275, v4276)))
end
local ImageLabel = Instance.new("ImageLabel")
ImageLabel.AnchorPoint = Vector2.new(0.5, 0.5)
ImageLabel.Position = UDim2.fromScale(0.5, 0.5)
ImageLabel.Size = UDim2.new(1, 40, 1, 40)
ImageLabel.BackgroundTransparency = 1
ImageLabel.Image = "rbxassetid://6015897843"
ImageLabel.ImageColor3 = t166.shadow
ImageLabel.ImageTransparency = 0.52
ImageLabel.ScaleType = Enum.ScaleType.Slice
ImageLabel.SliceCenter = Rect.new(49, 49, 450, 450)
ImageLabel.ZIndex = 0
ImageLabel.Parent = Frame
local Frame2 = Instance.new("Frame")
Frame2.Size = UDim2.fromScale(1, 1)
Frame2.Position = UDim2.fromScale(0, 0)
Frame2.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Frame2.BackgroundTransparency = 0
Frame2.BorderSizePixel = 0
Frame2.ZIndex = 1
Frame2.Parent = Frame
Instance.new("UICorner", Frame2).CornerRadius = UDim.new(0, 8)
local UIGradient = Instance.new("UIGradient", Frame2)
UIGradient.Rotation = 16
UIGradient.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, t166.obsTop),
ColorSequenceKeypoint.new(0.52, t166.obsMid),
ColorSequenceKeypoint.new(1, t166.obsLow)
})
local UIStroke = Instance.new("UIStroke", Frame2)
UIStroke.Color = t166.strokeCol
UIStroke.Thickness = 1
UIStroke.Transparency = 0.72
local TextLabel5 = Instance.new("TextLabel")
TextLabel5.BackgroundTransparency = 1
TextLabel5.Position = UDim2.fromOffset(42, 12)
TextLabel5.Size = UDim2.fromOffset(200, 22)
TextLabel5.Font = Enum.Font.GothamBold
TextLabel5.TextSize = 16
TextLabel5.TextXAlignment = Enum.TextXAlignment.Left
TextLabel5.TextColor3 = t166.text
TextLabel5.Text = "Sena"
TextLabel5.Parent = Frame2
local ImageLabel2 = Instance.new("ImageLabel")
ImageLabel2.AnchorPoint = Vector2.new(0, 0.5)
ImageLabel2.Position = UDim2.fromOffset(11, 23)
ImageLabel2.Size = UDim2.fromOffset(20, 20)
ImageLabel2.BackgroundTransparency = 1
ImageLabel2.Image = "rbxassetid://96240498384290"
ImageLabel2.ScaleType = Enum.ScaleType.Fit
ImageLabel2.Parent = Frame2
local Frame3 = Instance.new("Frame")
Frame3.Position = UDim2.fromOffset(14, 44)
Frame3.Size = UDim2.fromOffset(math.max(90, #v4242.name * 8 + 26), 24)
Frame3.BackgroundColor3 = t166.accent
Frame3.BackgroundTransparency = 0.82
Frame3.BorderSizePixel = 0
Frame3.Parent = Frame2
Instance.new("UICorner", Frame3).CornerRadius = UDim.new(0, 6)
local UIStroke2 = Instance.new("UIStroke", Frame3)
UIStroke2.Color = t166.accent
UIStroke2.Thickness = 1
UIStroke2.Transparency = 0.45
local TextLabel6 = Instance.new("TextLabel")
TextLabel6.BackgroundTransparency = 1
TextLabel6.Size = UDim2.fromScale(1, 1)
TextLabel6.Font = Enum.Font.GothamBold
TextLabel6.TextSize = 12
TextLabel6.TextColor3 = t166.text
TextLabel6.Text = v4242.name
TextLabel6.Parent = Frame3
local TextButton = Instance.new("TextButton")
TextButton.AnchorPoint = Vector2.new(0.5, 0.5)
TextButton.Position = UDim2.new(0.5, 0, 1, -36)
TextButton.Size = UDim2.fromOffset(176, 22)
TextButton.BackgroundColor3 = t166.btnBg
TextButton.BackgroundTransparency = 0.15
TextButton.AutoButtonColor = false
TextButton.Text = ""
TextButton.Parent = Frame2
Instance.new("UICorner", TextButton).CornerRadius = UDim.new(1, 6)
local UIStroke3 = Instance.new("UIStroke", TextButton)
UIStroke3.Color = t166.strokeCol
UIStroke3.Thickness = 1
UIStroke3.Transparency = 0.6
local ImageLabel3 = Instance.new("ImageLabel")
ImageLabel3.AnchorPoint = Vector2.new(0.5, 0.5)
ImageLabel3.Position = UDim2.new(0, 12, 0.5, 0)
ImageLabel3.Size = UDim2.fromOffset(12, 12)
ImageLabel3.BackgroundTransparency = 1
ImageLabel3.Image = "rbxassetid://94434236999817"
ImageLabel3.ScaleType = Enum.ScaleType.Fit
ImageLabel3.Parent = TextButton
local TextLabel7 = Instance.new("TextLabel")
TextLabel7.BackgroundTransparency = 1
TextLabel7.Position = UDim2.fromOffset(24, 0)
TextLabel7.Size = UDim2.new(1, -28, 1, 0)
TextLabel7.Font = Enum.Font.GothamBold
TextLabel7.TextSize = 12
TextLabel7.TextXAlignment = Enum.TextXAlignment.Center
TextLabel7.TextColor3 = t166.text
TextLabel7.Text = "discord.gg/senahub"
TextLabel7.Parent = TextButton
TextButton.MouseButton1Click:Connect(function()
pcall(function()
setclipboard("https://discord.gg/senahub")
end)
end)
local TextButton2 = Instance.new("TextButton")
TextButton2.Position = UDim2.new(1, -36, 0, 8)
TextButton2.Size = UDim2.fromOffset(26, 26)
TextButton2.BackgroundColor3 = t166.btnBg
TextButton2.BackgroundTransparency = 0.15
TextButton2.AutoButtonColor = false
TextButton2.Font = Enum.Font.GothamBold
TextButton2.TextSize = 13
TextButton2.TextColor3 = t166.btnText
TextButton2.Text = "X"
TextButton2.ZIndex = 5
TextButton2.Parent = Frame2
Instance.new("UICorner", TextButton2).CornerRadius = UDim.new(0, 4)
local UIStroke4 = Instance.new("UIStroke", TextButton2)
UIStroke4.Color = t166.strokeCol
UIStroke4.Thickness = 1
UIStroke4.Transparency = 0.6
TextButton2.MouseButton1Click:Connect(function()
v3698()
ScreenGui.Enabled = false
end)
local Frame4 = Instance.new("Frame")
Frame4.Position = UDim2.fromOffset(0, 72)
Frame4.Size = UDim2.new(1, 0, 1, -120)
Frame4.BackgroundTransparency = 1
Frame4.BorderSizePixel = 0
Frame4.Parent = Frame2
local u4295 = false
local Position
local Position2
local function v4298(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
u4295 = true
Position = input.Position
Position2 = Frame.Position
end
end
TextLabel5.InputBegan:Connect(v4298)
Frame3.InputBegan:Connect(v4298)
Frame2.InputBegan:Connect(function(input)
if input.Position.Y - Frame.AbsolutePosition.Y <= 44 * (UIScale and UIScale.Scale or 1) then
v4298(input)
end
end)
UserInputService.InputChanged:Connect(function(input)
if u4295 and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local v4299 = input.Position - Position
Frame.Position = UDim2.new(Position2.X.Scale, Position2.X.Offset + v4299.X, Position2.Y.Scale, Position2.Y.Offset + v4299.Y)
end
end)
UserInputService.InputEnded:Connect(function(input)
if (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) and u4295 then
u4295 = false
pcall(v4260, false)
end
end)
v4260(true)
local CurrentCamera = workspace.CurrentCamera
if CurrentCamera then
CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function()
if ScreenGui and ScreenGui.Parent and ScreenGui.Enabled then
pcall(v4260, false)
end
end)
end
windows[p962] = {
gui = ScreenGui,
page = Frame4,
holder = Frame,
fitScale = v4260
}
pcall(function()
v4242.build(Frame4)
end)
pcall(function()
v3771(p962)
end)
end
local function v4301(p964)
v3698()
local v4302 = p964 or "logs"
local v4303 = windows[v4302]
if not v4303 or not v4303.gui or not v4303.gui.Parent then
v4241(v4302)
return
end
v4303.gui.Enabled = true
if v4303.fitScale then
pcall(v4303.fitScale, false)
end
pcall(function()
v3771(v4302)
end)
end
local function v4304()
for _, v in ipairs(t194) do
v4301(v)
end
end
local function v4307()
for _, window in pairs(windows) do
if window and window.gui then
window.gui.Enabled = false
end
end
end
task.spawn(function()
while v16() do
pcall(function()
local v4310 = EggState2.ReadFieldEggs()
if v4310 and v4310.Records then
for _, record in ipairs(v4310.Records) do
v3757(record)
end
end
end)
pcall(function()
if t176 and type(t176.scanField) == "function" then
t176.scanField()
end
end)
for _, v in ipairs({
"logs",
"eggs",
"inventory",
"checker",
"eggdata"
}) do
if v3764(v) then
pcall(v3771, v)
end
end
task.wait(2)
end
end)
senaPanels.windows = windows
senaPanels.openLogs = function()
v4301("logs")
end
senaPanels.openBoard = function()
v4301("eggs")
end
senaPanels.openInventory = function()
v4301("inventory")
end
senaPanels.openChecker = function()
v4301("checker")
end
senaPanels.openAnalyst = function()
v4301("eggdata")
end
senaPanels.openAll = function()
v4304()
end
senaPanels.closeAll = function()
v4307()
end
pcall(function()
getgenv().SenaPanels = senaPanels
end)
end
v3692()
local function v4315()
pcall(function()
local ChloeX_Instance = genv.ChloeX_Instance
if type(ChloeX_Instance) == "table" and type(ChloeX_Instance.DestroyGui) == "function" then
ChloeX_Instance:DestroyGui()
end
end)
genv.ChloeX_Running = nil
genv.ChloeX_ReopenPrompt = nil
genv.ChloeX_Instance = nil
local SenaLibOverride = genv.SenaLibOverride
do
if type(SenaLibOverride) ~= "table" then
local ok, result = pcall(function()
return loadstring(game:HttpGet("https://senahub.xyz/raw/libsenuy"))()
end)
SenaLibOverride = ok and type(result) == "table" and result or nil
end
end
if not SenaLibOverride then
warn("[Sena] UI library failed to load")
return
end
local function v4320(p965)
local t196 = {}
local ipairs_ = ipairs
local v4323 = type(p965) == "table" and p965 or {}
for _, v in ipairs_(v4323) do
if v ~= "None" and v ~= "" then
t196[#t196 + 1] = v
end
end
return t196
end
local function v4326()
local t197 = {}
pcall(function()
for _, v in ipairs(v611.getRarities()) do
t197[#t197 + 1] = v
end
end)
if #t197 == 0 then
t197 = {
"Common",
"Uncommon",
"Rare",
"Epic",
"Legendary",
"Mythic",
"Cosmic",
"Secret",
"Eternal",
"Divine"
}
end
return t197
end
local function v4330(p966)
local t198 = { "All" }
for _, v in ipairs(p966) do
if v ~= "All" then
t198[#t198 + 1] = v
end
end
return t198
end
local t199 = {}
pcall(function()
for _, v in ipairs(v611.getMutations()) do
t199[#t199 + 1] = v
end
end)
if #t199 == 0 then
t199 = {
"Golden",
"Rainbow",
"Shocked",
"Frozen",
"Burnt",
"Boss"
}
end
local t200 = { "None" }
if not pcall(function()
local Directory = require(game:GetService("ReplicatedStorage").Data.Areas).Directory
local ok, result = pcall(function()
return require(game:GetService("ReplicatedStorage").Data.Assets)
end)
if ok and result and result.Directory then
local Directory2 = result.Directory
local t201 = {}
for _, v in pairs(Directory) do
if type(v) == "table" and type(v.DropTable) == "table" then
for _, v2 in ipairs(v.DropTable) do
local v4347 = v2[1]
if type(v4347) == "string" and not t201[v4347] then
t201[v4347] = true
local v4348 = Directory2[v4347]
t200[#t200 + 1] = v4348 and v4348.DisplayName or v4347
end
end
end
end
end
end) or #t200 <= 1 then
t200 = { "None" }
end
table.sort(t200, function(p967, p968)
if p967 == "None" then
return true
end
if p968 == "None" then
return false
end
return p967 < p968
end)
local t202 = { "None" }
do
local t203 = {
"Lake",
"Jungle",
"Desert",
"Snow",
"Volcano",
"Abyss Ocean",
"Prehistoric",
"Cosmic",
"Cherry Blossom",
"Titan Temple"
}
local t204 = {}
if not pcall(function()
for k, v in pairs(require(game:GetService("ReplicatedStorage").Data.Areas).Directory) do
if type(v) == "table" and type(v.DropTable) == "table" then
t204[k] = true
end
end
end) or next(t204) == nil then
for _, v in ipairs(t203) do
t204[v] = true
end
end
local t205 = {
None = true,
Forest = true,
["Titan Temple"] = true
}
for _, v in ipairs(t203) do
if v ~= "Titan Temple" and t204[v] then
table.insert(t202, v)
t205[v] = true
end
end
local t206 = {}
for k in pairs(t204) do
if not t205[k] then
table.insert(t206, k)
end
end
table.sort(t206)
for _, v in ipairs(t206) do
table.insert(t202, v)
end
if t204["Titan Temple"] then
table.insert(t202, "Titan Temple")
end
end
t24.AutoPlaceLoop = function()
if senaV4Config.IsAutoPlaceWorkerRunning then
return
end
senaV4Config.IsAutoPlaceWorkerRunning = true
while senaV4Config.AutoPlace and v16() do
task.wait(1.5)
local ok, result = pcall(function()
if senaV4Config.IsStealing then
return
end
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
game:GetService("HttpService")
local EggState2 = require(ReplicatedStorage2.Client.EggState)
local Assets = require(ReplicatedStorage2.Data.Assets)
local v4368
local Plots = workspace:FindFirstChild("Plots")
if Plots then
local v4370, v4371, v4372 = ipairs(Plots:GetChildren())
local v4373 = geniter(v4370, v4371, v4372)
while true do
local v4374 = table.pack(v4373())
if not v4374[1] then
break
end
local v4375 = v4374[3]
local PlotSign = v4375:FindFirstChild("PlotSign")
if PlotSign then
local PlayerPlotSign = PlotSign:FindFirstChild("PlayerPlotSign")
if PlayerPlotSign and PlayerPlotSign:FindFirstChild("Frame") then
if PlayerPlotSign.Frame:FindFirstChild("PlayerName") then
local v4378 = string.gsub(PlayerPlotSign.Frame.PlayerName.Text, "<[^>]+>", "")
if string.find(string.lower(v4378), string.lower(LocalPlayer.Name)) or string.find(string.lower(v4378), string.lower(LocalPlayer.DisplayName)) then
v4368 = v4375
break
end
end
end
end
end
end
if not v4368 then
return
end
local ToUpdate = v4368:FindFirstChild("ToUpdate")
local PetArea = ToUpdate and ToUpdate:FindFirstChild("PetArea")
local CenterPoint = v4368:FindFirstChild("CenterPoint") or PetArea
if not PetArea then
return
end
local t207 = {}
local v4383 = EggState2.GetOwnerRuntimeRecords(LocalPlayer.UserId)
local n77 = 0
if type(v4383) == "table" then
local v4385, v4386, v4387 = pairs(v4383)
for k, v in v4385, v4386, v4387 do
if v.Placement == nil then
local AssetCategory = v.AssetCategory
local v4391 = AssetCategory and Assets.Directory[AssetCategory]
local s17 = "Unknown"
if v4391 and v4391.Rarity then
local Rarity = v4391.Rarity
s17 = Rarity.DisplayName or Rarity._id or Rarity.Name or "Unknown"
end
local v4394
if #senaV4Config.PlaceRarities == 0 or table.find(senaV4Config.PlaceRarities, "None") or table.find(senaV4Config.PlaceRarities, "All") then
v4394 = true
else
v4394 = table.find(senaV4Config.PlaceRarities, s17) ~= nil
end
local v4395 = tonumber(v.Kg) or tonumber(v.Weight) or tonumber(v.kg)
if not v4395 and v4391 then
v4395 = tonumber(v4391.Kg) or tonumber(v4391.Weight) or tonumber(v4391.kg)
end
local v4396 = v4395 or 0
if v4394 then
table.insert(t207, {
Uid = k,
Rarity = s17,
Kg = v4396
})
end
else
n77 += 1
end
end
end
table.sort(t207, function(p969, p970)
return p969.Kg > p970.Kg
end)
local Character = LocalPlayer.Character
if Character then
Character:FindFirstChild("HumanoidRootPart")
end
if Character then
Character:FindFirstChildOfClass("Humanoid")
end
local CFrame_2
if #t207 == 0 or n77 >= 30 then
return
end
local function v4399()
local __SenaV4StealWantsCharacter = genv.__SenaV4StealWantsCharacter
if __SenaV4StealWantsCharacter and __SenaV4StealWantsCharacter() then
return true
end
local __SenaV4DronesWantCharacter = genv.__SenaV4DronesWantCharacter
return __SenaV4DronesWantCharacter ~= nil and __SenaV4DronesWantCharacter() == true
end
if senaV4Config.IsStealing or v4399() then
return
end
senaV4Config.IsPlacing = true
local __SenaV4TreadmillManager = genv.__SenaV4TreadmillManager
if __SenaV4TreadmillManager and __SenaV4TreadmillManager.activeTreadmill ~= nil then
local v4403 = os.clock() + 5
while __SenaV4TreadmillManager.activeTreadmill ~= nil and os.clock() < v4403 do
pcall(function()
__SenaV4TreadmillManager:_requestUnequip()
end)
task.wait(0.3)
end
end
local Character2 = LocalPlayer.Character
local HumanoidRootPart = Character2 and Character2:FindFirstChild("HumanoidRootPart")
local Humanoid = Character2 and Character2:FindFirstChildOfClass("Humanoid")
if HumanoidRootPart and HumanoidRootPart.Anchored then
pcall(function()
HumanoidRootPart.Anchored = false
end)
end
if Humanoid then
pcall(function()
Humanoid:UnequipTools()
end)
end
if HumanoidRootPart then
CFrame_2 = HumanoidRootPart.CFrame
end
local function v4407()
return not senaV4Config.AutoPlace or senaV4Config.IsStealing or v4399()
end
if HumanoidRootPart then
local v4408 = PetArea.CFrame * cFrameNew(0, 3, 0)
if not v588(HumanoidRootPart.Position + Vector3.new(0, 2, 0), v4408.Position + Vector3.new(0, 2, 0), Character2) then
v232(HumanoidRootPart, Humanoid, cFrameNew(518.66, 70.57, -364.73) * Angles(3.1415926535897931, -1.5676547341413067, 3.1415926535897931), v4407)
if v4407() then
return
end
end
v232(HumanoidRootPart, Humanoid, v4408, v4407)
if v4407() then
return
end
local n78 = 0
while n78 < 0.5 and not v4407() do
task.wait(0.05)
n78 += 0.05
end
if v4407() then
return
end
end
local v4410 = false
local t208 = {}
local v4412, v4413, v4414 = pairs(v4383)
for _, v in v4412, v4413, v4414 do
if v.Placement then
local Position
if typeof(v.Placement) == "CFrame" then
Position = v.Placement.Position
elseif typeof(v.Placement) == "Vector3" then
Position = v.Placement
else
Position = v.Placement.Position or Position
end
if Position then
table.insert(t208, Position)
end
end
end
local n79 = 0
local v4419, v4420, v4421 = ipairs(t207)
for _, v in v4419, v4420, v4421 do
if not senaV4Config.AutoPlace or v4410 then
break
end
if n77 >= 30 then
break
end
if v4407() then
return
end
local Uid = v.Uid
local v4425 = EggState2.GetOwnerRuntimeRecords(LocalPlayer.UserId)[Uid]
local v4426 = EggState2.RequestEquipTool(Uid)
if not v4426 then
continue
end
if v4407() then
return
end
task.wait(0.15)
local v4428 = false
while n79 < 30 and not v4428 do
local v4429
if CenterPoint then
while n79 < 30 do
local v4430 = PetArea.Size.X - 6
local v4431 = v4430 / 10
local v4432 = CenterPoint.CFrame:PointToObjectSpace(PetArea.CFrame * Vector3.new(-(v4430 / 2) + v4431 / 2 + n79 % 10 * v4431, 0, -((PetArea.Size.Z - 6) / 2) + 3 + math.floor(n79 / 10) * 6))
local cFrame = cFrameNew(v4432.X, -0.5, v4432.Z)
local v4434 = false
for _, v2 in ipairs(t208) do
if (v2 - cFrame.Position).Magnitude < 1 then
v4434 = true
break
end
end
if not v4434 then
v4429 = cFrame
break
end
n79 += 1
end
end
if not v4429 then
v4410 = true
break
end
if v4407() then
return
end
local v4437, v4438 = EggState2.RequestPlaceEgg(Uid, v4429)
if v4437 then
table.insert(t208, v4429.Position)
n77 += 1
v4428 = true
task.wait(0.15)
continue
end
local v4439 = v4438 and string.lower(tostring(v4438)) or ""
if not string.find(v4439, "full") and not string.find(v4439, "limit") and not string.find(v4439, "capacity") and not string.find(v4439, "maximum") then
table.insert(t208, v4429.Position)
n79 += 1
task.wait(0.1)
continue
end
if senaV4Config.AutoPlace then
senaV4Config.AutoPlace = false
end
v4410 = true
break
end
end
if CFrame_2 and HumanoidRootPart and not v4407() then
if not v588(HumanoidRootPart.Position + Vector3.new(0, 2, 0), CFrame_2.Position + Vector3.new(0, 2, 0), Character2) then
v232(HumanoidRootPart, Humanoid, cFrameNew(518.66, 70.57, -364.73) * Angles(3.1415926535897931, -1.5676547341413067, 3.1415926535897931), v4407)
end
if v4407() then
return
end
v232(HumanoidRootPart, Humanoid, CFrame_2, v4407)
task.wait(0.2)
end
end)
senaV4Config.IsPlacing = false
if not ok then
warn("Auto Place Error: " .. tostring(result))
end
end
senaV4Config.IsAutoPlaceWorkerRunning = false
end
do
t24.AutoHatchLoop = function()
if senaV4Config.IsAutoHatchWorkerRunning then
return
end
senaV4Config.IsAutoHatchWorkerRunning = true
task.spawn(function()
local t209 = {}
while senaV4Config.AutoHatch and v16() do
task.wait(1.5)
pcall(function()
local EggState2 = require(game:GetService("ReplicatedStorage").Client.EggState)
local v4442 = EggState2.GetOwnerRuntimeRecords(LocalPlayer.UserId)
if not v4442 then
return
end
local t210 = {}
for k, v in pairs(v4442) do
if v.Placement ~= nil then
table.insert(t210, k)
end
end
local now = os.time()
for _, v in ipairs(t210) do
if not senaV4Config.AutoHatch then
break
end
if not t209[v] or not (now < t209[v]) then
local v4449 = v4442[v]
local v4450 = false
if type(EggState2.IsReadyToHatch) == "function" then
local ok, result = pcall(EggState2.IsReadyToHatch, v)
v4450 = ok and result == true
end
if v4450 or v4449.Ready == true or not t209[v] then
if EggState2.RequestHatchEgg(v) then
EggState2.RequestCompleteHatchEgg(v)
t209[v] = nil
task.wait(0.1)
else
t209[v] = now + 10
end
end
end
end
end)
end
senaV4Config.IsAutoHatchWorkerRunning = false
end)
end
end
do
local u4453 = false
t24.mutationSweep = function()
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local EggState2 = require(ReplicatedStorage2.Client.EggState)
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
local Directory
pcall(function()
local Assets = require(ReplicatedStorage2.Data.Assets)
Directory = Assets.Directory or Assets
end)
local function v4459(p971)
local Category = p971.Category or p971.AssetCategory
local v4461 = Directory and Category and Directory[Category]
return v4461 and v4461.DisplayName or Category
end
local function v4462(p972)
local Category = p972.Category or p972.AssetCategory
local v4464 = Directory and Category and Directory[Category]
local Rarity = v4464 and v4464.Rarity
return Rarity and (Rarity.DisplayName or Rarity._id) or nil
end
local function v4466()
if senaV4Config.IsStealing == true or senaV4Config.IsPlacing == true then
return true
end
local __SenaV4StealWantsCharacter = genv.__SenaV4StealWantsCharacter
if __SenaV4StealWantsCharacter and __SenaV4StealWantsCharacter() then
return true
end
local __SenaV4DronesWantCharacter = genv.__SenaV4DronesWantCharacter
if __SenaV4DronesWantCharacter ~= nil and __SenaV4DronesWantCharacter() == true then
return true
end
return false
end
local v4469 = senaV4Config.MutationChoice == "Fractured" and "Boss" or "Scrambled"
local function v4470()
for _, v in ipairs({
LocalPlayer.Character,
LocalPlayer:FindFirstChildOfClass("Backpack")
}) do
if not v then
continue
end
for _, child in ipairs(v:GetChildren()) do
if child:IsA("Tool") and child:GetAttribute("ItemType") == "MutationConsumable" and child:GetAttribute("MutationId") == v4469 then
return child
end
end
end
return nil
end
local function v4475(p973)
local Mutations = p973 and p973.Mutations
if Mutations == nil then
return false
end
if type(Mutations) ~= "table" then
return tostring(Mutations):find(v4469) ~= nil
end
for _, Mutation in ipairs(Mutations) do
if Mutation == v4469 then
return true
end
end
for k, Mutation in pairs(Mutations) do
if k == v4469 or Mutation == v4469 then
return true
end
end
return false
end
if v4466() then
return
end
local v4481 = v4470()
if not v4481 then
if not u4453 then
warn("[AutoMutation] " .. tostring(senaV4Config.MutationChoice or "Scrambled") .. " consumable habis / gak ada di inventory - ronde di-skip.")
u4453 = true
end
return
end
u4453 = false
local Character = LocalPlayer.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not Humanoid then
return
end
if not Character:FindFirstChild(v4481.Name) then
pcall(function()
Humanoid:EquipTool(v4481)
end)
task.wait(0.15)
end
local v4484 = EggState2.GetOwnerRuntimeRecords(LocalPlayer.UserId)
if type(v4484) ~= "table" then
return
end
local MutationSpecies = senaV4Config.MutationSpecies
local v4486 = type(MutationSpecies) == "table" and #MutationSpecies > 0
local MutationRarities = senaV4Config.MutationRarities
local v4488 = type(MutationRarities) == "table" and #MutationRarities > 0
for k, v in pairs(v4484) do
if not v4466() then
if type(v) ~= "table" or v.Placement == nil or v4475(v) then
continue
end
local Category = v.Category or v.AssetCategory
local v4492 = v4459(v)
local v4493 = true
if v4486 then
v4493 = false
local v4494, v4495, v4496 = ipairs(MutationSpecies)
local v4497 = geniter(v4494, v4495, v4496)
while true do
local v4498 = table.pack(v4497())
if v4498[1] then
local v4499 = v4498[3]
if v4499 == v4492 or v4499 == Category then
v4493 = true
break
end
else
break
end
end
end
if v4493 and v4488 then
local v4500 = v4462(v)
v4493 = false
local v4501, v4502, v4503 = ipairs(MutationRarities)
local v4504 = geniter(v4501, v4502, v4503)
while true do
local v4505 = table.pack(v4504())
if v4505[1] then
if v4505[3] == v4500 then
v4493 = true
break
end
else
break
end
end
end
if not v4493 then
continue
end
local v4506 = v4470()
if v4506 then
if not Character:FindFirstChild(v4506.Name) then
pcall(function()
Humanoid:EquipTool(v4506)
end)
task.wait(0.1)
end
local n80 = 0
local v4508 = false
while not v4466() and v4470() ~= nil do
local ok, result = pcall(function()
return Remotes.BossMastery.AskUseMutationConsumable:InvokeServer(k)
end)
n80 += 1
if ok and type(result) == "table" then
if result.Mutated == true then
v4508 = true
end
if result.Success == true then
task.wait(0.25)
if not v4508 and senaV4Config.MutationRetry and not (n80 >= 40) then
continue
end
end
end
break
end
continue
end
end
break
end
end
end
do
t24.AutoMutationLoop = function()
if senaV4Config.IsAutoMutationWorkerRunning then
return
end
senaV4Config.IsAutoMutationWorkerRunning = true
task.spawn(function()
while senaV4Config.AutoMutation and v16() do
task.wait(1)
pcall(t24.mutationSweep)
end
senaV4Config.IsAutoMutationWorkerRunning = false
end)
end
end
do
t24.RingEventLoop = function()
if not senaV4Config.IsRingEventRunning then
senaV4Config.IsRingEventRunning = true
task.spawn(function()
local cFrame = cFrameNew(544.76, 71.5, -416.48)
local cFrame2 = cFrameNew(602, 70.78, -372)
local cFrame3 = cFrameNew(5573, 70.77, -363)
local function v4514()
return not senaV4Config.AutoRingEvent or not v16()
end
local function v4515(p974)
if v4514() then
return false
end
local Character = LocalPlayer.Character
local HumanoidRootPart = Character and Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if not HumanoidRootPart or not Humanoid then
task.wait(0.3)
return not v4514()
end
v232(HumanoidRootPart, Humanoid, p974, v4514, false, nil, true)
return not v4514()
end
while true do
if not v4514() and v4515(cFrame) then
if not v4515(cFrame2) then
break
elseif v4515(cFrame3) and v4515(cFrame2) then
continue
end
break
end
break
end
senaV4Config.IsRingEventRunning = false
end)
return
end
end
end
local v4519
local v4520
local v4521
local v4522, v4523, v4524, v4525, v4526, v4527, v4528, v4529, v4530, v4531
local v4532, v4533, v4534, v4535, v4536, v4537, v4538, v4539, v4540, v4541
local v4542, v4543, v4544, v4545, v4546, v4547, v4548, v4549, v4550, v4551
local v4552, v4553, v4554, v4555, v4556, v4557, v4558, v4559, v4560, v4561
local v4562, runOnce, v4564, v4565, v4566, v4567, v4568, v4569, v4570, v4571
local v4572, v4573, v4574, v4575, v4576, v4577
do
local AssetEarnings
local function v4579(p975)
if AssetEarnings == nil then
pcall(function()
AssetEarnings = require(game:GetService("ReplicatedStorage").Shared.Util.AssetEarnings)
end)
end
if not AssetEarnings then
return 0
end
for _, v in ipairs({
AssetEarnings.LiveRatePerSecond,
AssetEarnings.RatePerSecond,
AssetEarnings.CatalogRatePerSecond
}) do
if type(v) == "function" then
local ok, result = pcall(v, p975)
if not ok or not (type(result) == "number" and result > 0) then
continue
end
return result
end
end
return 0
end
local function v4584(p976)
local v4585 = string.lower(tostring(p976 or "")):gsub("[%s,]", "")
if v4585 == "" then
return 0
end
local v4586, v4587 = string.match(v4585, "^([%d]+%.?[%d]*)([kmb]?)$")
local v4588 = tonumber(v4586)
if not v4588 then
return 0
end
local n81 = 1
if v4587 == "k" then
n81 = 1000
elseif v4587 == "m" then
n81 = 1000000
elseif v4587 == "b" then
n81 = 1e9
end
return v4588 * n81
end
local u4590 = false
t24.startAutoSellLoop = function()
if u4590 then
return
end
u4590 = true
task.spawn(function()
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local Assets = require(ReplicatedStorage2.Data.Assets)
local Save = require(ReplicatedStorage2.Shared.Save)
local AssetRoster = require(ReplicatedStorage2.Client.AssetRoster)
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
local LocalPlayer2 = game:GetService("Players").LocalPlayer
local function v4597()
local ok, result = pcall(function()
return AssetRoster.ReadOwnerPen(LocalPlayer2.UserId)
end)
if not ok or type(result) ~= "table" then
return nil
end
local t211 = {}
for k, v in pairs(result) do
if type(k) == "string" then
t211[k] = true
end
if type(v) == "table" and v.UID then
t211[v.UID] = true
end
end
return t211
end
local function v4603(p977, p978)
if not senaV4Config.AutoSell then
return false, "toggle Auto Sell Pet udah OFF", "global"
end
if not v198() then
return false, "Auto Steal lagi megang kendali", "global"
end
local v4604 = v205(v4519)
local v4605 = v205(v4520)
if not v4604 or not v4605 then
return false, "filter dropdown gak bisa dibaca", "global"
end
if type(p978) ~= "table" then
return false, "status pet dipajang gak bisa diverifikasi", "global"
end
if p978[p977.uid] then
return false, "pet ini dipajang di plot", "pet"
end
if not v211(p977.petName, p977.rarity, v4604, v4605) then
return false, "pet ini udah gak match filter yang sekarang", "pet"
end
local v4606 = (Save.Peek or Save.Get)()
local Inventory = v4606 and v4606.Inventory and v4606.Inventory[p977.uid]
if Inventory == nil then
return false, "pet ini udah gak ada di inventory", "pet"
end
local SellPetMaxRate = senaV4Config.SellPetMaxRate or 0
if SellPetMaxRate > 0 then
if SellPetMaxRate < v4579({
Category = Inventory.Category or Inventory.AssetCategory,
Scale = Inventory.Scale or Inventory.AssetScale or 1,
Mutations = Inventory.Mutations or {}
}) then
return false, "money/s pet ini di atas batas value", "pet"
end
end
if Inventory.IsFavorite == true then
return false, "pet ini di-favorite", "pet"
end
if Inventory.InFuse == true then
return false, "pet ini sedang di-fuse", "pet"
end
if table.find(v4606.EquippedAssets or {}, p977.uid) == nil then
return true
end
return false, "pet ini sedang dipasang", "pet"
end
while senaV4Config.AutoSell and v16() do
local ok, result = pcall(function()
if not v198() then
return
end
local v4611 = v205(v4519)
local v4612 = v205(v4520)
if not v4611 or not v4612 then
warn("[AutoSell] Filter dropdown gak bisa dibaca - ronde ini di-SKIP, gak ada yang dijual. Kalau ini terus-terusan, matiin Auto Sell Pet dan lapor.")
return
end
local v4613 = (Save.Peek or Save.Get)()
local Inventory = v4613 and v4613.Inventory or {}
local v4615 = v4597()
if not v4615 then
warn("[AutoSell] Status pet yang dipajang gak bisa diverifikasi - ronde ini di-SKIP, gak ada yang dijual.")
return
end
local t212 = {}
local n82 = 0
if type(Inventory) == "table" then
for k, v in pairs(Inventory) do
n82 += 1
if n82 % 250 == 0 then
RunService.Heartbeat:Wait()
if not senaV4Config.AutoSell then
return
end
end
if type(v) == "table" then
local v4620 = v4615[k] == true
local v4621 = v.IsFavorite == true or v["Jadikan Favorit"] == true or v.Favorite == true
local v4622 = table.find(v4613.EquippedAssets or {}, k) ~= nil
local v4623 = v.InFuse == true
local Category = v.Category or v.id or v.AssetCategory or v.ItemId
local v4625 = Category and Assets.Directory[Category]
local DisplayName = v4625 and (v4625.DisplayName or v4625._id or v4625.Name) or "Unknown"
local Rarity = v4625 and v4625.Rarity
local DisplayName2 = Rarity and (Rarity.DisplayName or Rarity._id or Rarity.Name) or "Unknown"
local v4629 = v211(DisplayName, DisplayName2, v4611, v4612)
local v4630 = true
local SellPetMaxRate = senaV4Config.SellPetMaxRate or 0
if SellPetMaxRate > 0 then
v4630 = v4579({
Category = Category,
Scale = v.Scale or v.AssetScale or 1,
Mutations = v.Mutations or {}
}) <= SellPetMaxRate
end
if v4629 and v4630 and not v4621 and not v4620 and not v4622 and not v4623 then
table.insert(t212, {
uid = k,
petName = DisplayName,
rarity = DisplayName2
})
end
end
end
end
if #t212 > 0 then
for _, v in ipairs(t212) do
local v4634 = v4597()
local v4635, v4636, v4637 = v4603(v, v4634)
if not v4635 then
warn("[AutoSell] Gak jual " .. tostring(v.petName) .. " - " .. tostring(v4636))
if v4637 ~= "global" then
continue
end
elseif v198() then
local Character = LocalPlayer2.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
local v4640
for _, v2 in ipairs({
LocalPlayer2.Backpack,
Character
}) do
if v2 then
for _, child in ipairs(v2:GetChildren()) do
if child:IsA("Tool") and child:GetAttribute("UID") == v.uid then
v4640 = child
break
end
end
end
if v4640 then
break
end
end
if not v4640 or not Humanoid then
continue
end
Humanoid:EquipTool(v4640)
task.wait(0.2)
if v198() then
local v4645 = v4597()
local v4646, v4647, v4648 = v4603(v, v4645)
if v4646 then
Remotes.PetSatchel.SellPet:FireServer({ v.uid })
task.wait(0.05)
continue
else
warn("[AutoSell] Batal di detik terakhir, gak jual " .. tostring(v.petName) .. " - " .. tostring(v4647))
if v4648 ~= "global" then
continue
end
end
end
end
break
end
end
end)
if not ok then
warn("Auto Sell Error:", result)
end
task.wait(1.5)
end
u4590 = false
end)
end
local u4649 = false
local u4650 = false
local function v4651()
if not senaV4Config.AutoSellEgg then
return false
end
local v4652 = v205(v4521)
if not v4652 or #v4652 == 0 or table.find(v4652, "None") then
return false
end
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local ok, result = pcall(function()
return require(ReplicatedStorage2.Shared.Save)
end)
if not ok or not result then
return false
end
local v4656 = (result.Peek or result.Get)()
local EggInventory = v4656 and v4656.EggInventory
if type(EggInventory) ~= "table" then
return false
end
local ok2, result2 = pcall(function()
return require(ReplicatedStorage2.Data.Assets)
end)
local Directory = ok2 and result2 and result2.Directory
if not Directory then
return false
end
for _, v in pairs(EggInventory) do
local v4663 = type(v) == "table" and Directory[v.AssetCategory]
local DisplayName = v4663 and v4663.Rarity and (v4663.Rarity.DisplayName or v4663.Rarity._id)
local v4665 = true
local SellEggMaxRate = senaV4Config.SellEggMaxRate or 0
if SellEggMaxRate > 0 and type(v) == "table" then
v4665 = v4579({
Category = v.AssetCategory,
Scale = v.AssetScale or 1,
Mutations = v.Mutations or {}
}) <= SellEggMaxRate
end
if v.Placement == nil and v4665 then
if not v214(DisplayName or "Unknown", v4652) then
continue
end
return true
end
end
return false
end
genv.__SenaV4IsAutoSellEggBusy = function()
return u4650 or v4651()
end
t24.startAutoSellEggLoop = function()
if not u4649 then
u4649 = true
task.spawn(function()
local ReplicatedStorage2 = game:GetService("ReplicatedStorage")
local Directory = require(ReplicatedStorage2.Data.Assets).Directory
local EggState2 = require(ReplicatedStorage2.Client.EggState)
local Remotes = require(ReplicatedStorage2.Shared.Remotes)
local Save = require(ReplicatedStorage2.Shared.Save)
while senaV4Config.AutoSellEgg and v16() do
local v4672 = v205(v4521)
local v4673 = (Save.Peek or Save.Get)()
local EggInventory = v4673 and v4673.EggInventory
if v4672 and type(EggInventory) == "table" and v198() then
for k, v in pairs(EggInventory) do
if senaV4Config.AutoSellEgg and v198() then
local v4677 = type(v) == "table" and Directory[v.AssetCategory]
local DisplayName = v4677 and v4677.Rarity and (v4677.Rarity.DisplayName or v4677.Rarity._id)
local v4679 = true
local SellEggMaxRate = senaV4Config.SellEggMaxRate or 0
if SellEggMaxRate > 0 and type(v) == "table" then
v4679 = v4579({
Category = v.AssetCategory,
Scale = v.AssetScale or 1,
Mutations = v.Mutations or {}
}) <= SellEggMaxRate
end
if not (v.Placement == nil and v4679) then
continue
end
if not v214(DisplayName or "Unknown", v4672) then
continue
end
if v198() then
u4650 = true
if genv.__SenaV4TreadmillManager and genv.__SenaV4TreadmillManager.activeTreadmill ~= nil then
genv.__SenaV4TreadmillManager:_cancelIdle(true)
task.wait(0.25)
end
if not EggState2.WearEggTool(k) then
continue
end
task.wait(0.2)
if v198() then
local v4681 = (Save.Peek or Save.Get)()
local EggInventory2 = v4681 and v4681.EggInventory and v4681.EggInventory[k]
if EggInventory2 and EggInventory2.Placement == nil then
Remotes.PetSatchel.SellPet:FireServer({ k })
task.wait(0.25)
end
continue
end
end
end
break
end
end
u4650 = false
task.wait(0.5)
end
u4650 = false
u4649 = false
end)
return
end
end
local t213 = {
"None",
"All"
}
pcall(function()
local t214 = {}
for _, v in pairs(require(game:GetService("ReplicatedStorage").Data.Assets).Directory) do
if type(v) == "table" and (v.DisplayName or v._id or v.Name) then
local DisplayName = v.DisplayName or v._id or v.Name
if not t214[DisplayName] then
t214[DisplayName] = true
table.insert(t213, DisplayName)
end
end
end
table.sort(t213, function(p979, p980)
if p979 == "None" then
return true
end
if p980 == "None" then
return false
end
if p979 == "All" then
return true
end
if p980 == "All" then
return false
end
return p979 < p980
end)
end)
v4522 = v4320(t200)
v4523 = v4320(t202)
v4524 = v4326()
v4525 = v4330(v4320(t213))
v4526 = function(p981)
senaV4Config.AutoSteal = p981 == true
if v612 then
v612:setEnabled(senaV4Config.AutoSteal)
end
if type(genv.__SenaV4SetStealDeclutter) == "function" then
pcall(genv.__SenaV4SetStealDeclutter, senaV4Config.AutoSteal)
end
end
v4527 = function(p982)
senaV4Config.StealHoldSeconds = math.clamp(math.floor((tonumber(p982) or 5) + 0.5), 1, 10)
end
v4528 = function(p983)
senaV4Config.GodMode = p983 == true
if v615 then
v615:setEnabled(senaV4Config.GodMode)
end
end
local function v4688()
return genv.__SenaV4TreadmillManager
end
v4529 = function(p984)
senaV4Config.AutoTreadmillIdle = p984 == true
local v4689 = v4688()
if v4689 then
v4689:setIdleFarm(senaV4Config.AutoTreadmillIdle and not senaV4Config.AntiTreadmill)
end
end
v4530 = function(p985)
senaV4Config.AntiTreadmill = p985 == true
local v4690 = v4688()
if senaV4Config.AntiTreadmill then
if v4690 then
v4690:setIdleFarm(false)
end
t145.startAntiTreadmillLoop()
elseif v4690 then
v4690:setIdleFarm(senaV4Config.AutoTreadmillIdle)
end
end
v4531 = function(p986)
senaV4Config.HopNoMatch = p986 == true
if senaV4Config.HopNoMatch then
t145.startHopLoop()
end
end
v4532 = function(p987)
if type(p987) == "table" then
p987 = p987[1]
end
senaV4Config.PrivateServerMax = tostring(p987 or "2")
end
v4533 = function(p988)
senaV4Config.PrivateServerAuto = p988 == true
if senaV4Config.PrivateServerAuto then
t145.startPrivateAutoHop()
end
end
v4534 = function(p989)
senaV4Config.HopCooldown = math.max(1, math.floor(tonumber(p989) or 5))
end
v4535 = function(p990)
senaV4Config.AutoTreadmillUpgrade = p990 == true
local v4691 = v4688()
if v4691 then
v4691:setAutoUpgrade(senaV4Config.AutoTreadmillUpgrade)
end
end
v4536 = function(p991)
local v4692 = type(p991) == "string" and p991 or ""
local stealMode = (v4692:find("Fly") or v4692:find("High")) and "Fly" or "Instant"
local flyAerial = stealMode == "Fly" and (v4692:find("%(Fly%)") ~= nil or v4692:lower():find("aerial") ~= nil)
senaV4Config.StealMode = stealMode
senaV4Config.FlyAerial = flyAerial
if v612 then
v612:setStealMode(stealMode, flyAerial)
end
end
v4537 = function(p992)
local v4695 = math.floor(math.clamp(math.floor((tonumber(p992) or 600) + 0.5), 500, 1000) / 10 + 0.5)
v223(v4695)
if v612 then
v612:setSpeed(v4695)
end
end
v4538 = function(p993, p994, p995)
local v4696 = v4320(p995)
if p993 == "names" then
senaV4Config.StealNamesFilter = v4696
elseif p993 == "areas" then
senaV4Config.StealAreas = v4696
elseif p993 == "rarities" then
senaV4Config.StealRarities = v4696
end
if v612 then
v612:setFilter(p993, v4696)
v612:setFilterEnabled(p994, #v4696 > 0)
end
end
v4539 = function(p996)
senaV4Config:applyStealValueInput(p996)
if v612 then
v612:setMinValuePerSec(senaV4Config.StealMinValue or 0)
end
end
v4540 = function(p997)
local v4697 = v4320(p997)
senaV4Config.StealMutations = v4697
if v612 then
v612:setFilter("mutations", v4697)
v612:setFilterEnabled("mutation", #v4697 > 0)
end
end
v4541 = function(p998)
local tonumber_ = tonumber
local v4699 = tostring(p998 or ""):gsub("[^%d%.]", "")
local stealMinWeight = tonumber_(v4699) or 0
senaV4Config.StealMinWeight = stealMinWeight
if v612 then
v612:setMinWeightKg(stealMinWeight)
end
end
v4542 = function(p999)
senaV4Config.StealPriority = tostring(p999 or "Rarity")
if v612 then
v612:setHighestValueFirst(senaV4Config.StealPriority == "Highest Value")
v612:setHeaviestFirst(senaV4Config.StealPriority == "Heaviest")
end
end
v4543 = function(p1000)
senaV4Config.EggESP = p1000 == true
if v612 then
v612:setEggEsp(senaV4Config.EggESP)
end
end
v4544 = function(p1001)
local v4701 = v4320(p1001)
senaV4Config.EspDetails = v4701
if not v612 then
return
end
local t215 = {}
for _, v in ipairs(v4701) do
t215[v] = true
end
v612:setEspOption("name", t215.Name == true)
v612:setEspOption("rarity", t215.Rarity == true)
v612:setEspOption("value", t215.Value == true)
v612:setEspOption("kg", t215.Weight == true)
v612:setEspOption("mutation", t215.Mutation == true)
v612:setEspOption("placed", t215["Placed Eggs"] == true)
end
v4545 = function(p1002)
senaV4Config.ScrambleTradeInBanners = v4320(p1002)
end
v4546 = function(p1003)
t145.setBackpackRates(p1003 == true)
end
v4547 = function(p1004)
senaV4Config.AntiGuardKnockback = p1004 == true
local __SenaV4AntiGuard = genv.__SenaV4AntiGuard
if __SenaV4AntiGuard and type(__SenaV4AntiGuard.setEnabled) == "function" then
pcall(__SenaV4AntiGuard.setEnabled, __SenaV4AntiGuard, senaV4Config.AntiGuardKnockback)
end
end
v4548 = function(p1005)
senaV4Config.AutoFavorite = p1005 == true
end
v4549 = function(p1006)
senaV4Config.FavMode = p1006 == "Species" and "Species" or "Rarity"
end
v4550 = function(p1007)
senaV4Config.FavRarities = v4320(p1007)
end
v4551 = function(p1008)
senaV4Config.FavSpecies = v4320(p1008)
end
v4552 = function(p1009)
senaV4Config.AutoEquipBest = p1009 == true
end
v4553 = function(p1010)
senaV4Config.AutoClaimOffline = p1010 == true
end
v4554 = function(p1011)
senaV4Config.AutoBaseUpgrade = p1011 == true
end
v4555 = function(p1012)
senaV4Config.AutoClaimAlmanac = p1012 == true
end
v4556 = function(p1013)
senaV4Config.AutoFusePets = p1013 == true
end
v4557 = function(p1014)
senaV4Config.FuseSelectedOnly = p1014 == "Selected Species"
end
v4558 = function(p1015)
senaV4Config.FuseRarities = v4320(p1015)
end
v4559 = function(p1016)
senaV4Config.FuseSpecies = v4320(p1016)
end
v4560 = function(p1017)
local __SenaV4Roaming = genv.__SenaV4Roaming
if __SenaV4Roaming and type(__SenaV4Roaming.setNoclip) == "function" then
pcall(__SenaV4Roaming.setNoclip, p1017 == true)
end
end
v4561 = function(p1018)
local __SenaV4Roaming = genv.__SenaV4Roaming
if __SenaV4Roaming and type(__SenaV4Roaming.setBottingMode) == "function" then
pcall(__SenaV4Roaming.setBottingMode, p1018 == true)
end
end
v4562 = function(p1019)
senaV4Config.AntiCutscene = p1019 == true
end
runOnce = function(p1020, p1021, p1022)
local v4708 = senaV4Config[p1020]
senaV4Config[p1020] = true
task.spawn(p1021)
task.delay(2.4, function()
local v4709 = os.clock() + 30
while senaV4Config.IsPlacing and os.clock() < v4709 do
task.wait(0.25)
end
senaV4Config[p1020] = v4708
if p1022 then
pcall(p1022)
end
end)
end
t24.runOnce = runOnce
local function v4710(p1023)
senaV4Config.ScrambleFarmDrones = p1023 == true
end
local function v4711(p1024)
senaV4Config.ScrambleLostParts = p1024 == true
end
local function v4712(p1025)
senaV4Config.ScrambleCollectSamples = p1025 == true
end
local function v4713(p1026)
senaV4Config.ScrambleAutoVault = p1026 == true
end
v4564 = function(p1027)
senaV4Config.ScrambleAutoBuy = p1027 == true
end
local function v4714(p1028)
senaV4Config.ScrambleAreas = v4320(p1028)
end
local function v4715(p1029)
senaV4Config.ScrambleDroneTypes = v4320(p1029)
end
v4565 = function(p1030)
senaV4Config.ScrambleBuyList = v4320(p1030)
end
v4566 = function(p1031)
senaV4Config.AutoPlace = p1031 == true
if senaV4Config.AutoPlace then
task.spawn(t24.AutoPlaceLoop)
end
end
v4567 = function(p1032)
senaV4Config.AutoHatch = p1032 == true
if senaV4Config.AutoHatch then
task.spawn(t24.AutoHatchLoop)
end
end
v4568 = function(p1033)
senaV4Config.AutoMutation = p1033 == true
if senaV4Config.AutoMutation then
task.spawn(t24.AutoMutationLoop)
end
end
v4569 = function(p1034)
senaV4Config.AutoRingEvent = p1034 == true
if senaV4Config.AutoRingEvent then
t24.RingEventLoop()
end
end
v4570 = function(p1035)
senaV4Config.MutationChoice = p1035 == "Fractured" and "Fractured" or "Scrambled"
end
v4571 = function(p1036)
senaV4Config.MutationSpecies = v4320(p1036)
end
v4572 = function(p1037)
senaV4Config.MutationRarities = v4320(p1037)
end
v4573 = function(p1038)
senaV4Config.MutationRetry = p1038 == true
end
v4574 = function(p1039)
senaV4Config.AutoSell = p1039 == true
if senaV4Config.AutoSell then
t24.startAutoSellLoop()
end
end
v4575 = function(p1040)
senaV4Config.AutoSellEgg = p1040 == true
if senaV4Config.AutoSellEgg then
t24.startAutoSellEggLoop()
end
end
v4576 = function(p1041)
senaV4Config.SellPetMaxRate = v4584(p1041)
end
v4577 = function(p1042)
senaV4Config.SellEggMaxRate = v4584(p1042)
end
end
local u4716 = false
local function v4717(p1043)
local v4718 = senaV4Config.StartupBoost == true
senaV4Config.StartupBoost = p1043 == true
if not senaV4Config.StartupBoost then
u4716 = false
if v4718 or t15.snapshot then
task.spawn(t15.revert)
end
return
end
if senaV4Config.StartupBoost and not u4716 then
u4716 = true
task.spawn(function()
task.wait(1.5)
if v16() and senaV4Config.StartupBoost then
v390()
end
task.wait(4)
if v16() and senaV4Config.StartupBoost then
v390()
end
end)
end
end
local function v4719(p1044)
if p1044 == true then
task.spawn(v391)
end
end
local function v4720(p1045)
local __SenaV4SetCapFps = genv.__SenaV4SetCapFps
if type(__SenaV4SetCapFps) == "function" then
__SenaV4SetCapFps(p1045 == true and 240 or 60)
end
end
local v4722, v4723, v4724, v4725, v4726, v4727, v4728, v4729, v4730, v4731
local v4732, __SenaV4PlayerSteal, v4734, v4735, v4736, v4737, v4738, v4739, v4740, v4741
local v4742, t216, t217, u4745, t218
do
local function v4747()
return genv.__SenaV4MovementExtras
end
v4722 = function(p1046)
senaV4Config.FlyForCapture = p1046 == true
local v4748 = v4747()
if v4748 then
v4748:setFlyForCapture(senaV4Config.FlyForCapture)
end
end
v4723 = function(p1047)
senaV4Config.InstantGrab = p1047 == true
local v4749 = v4747()
if v4749 then
v4749:setInstantGrab(senaV4Config.InstantGrab)
end
end
local function v4750(p1048)
genv.__SenaV4AdminBoost = p1048 == true
if v612 then
v612:setSpeed(senaV4Config.TweenSpeedMultiplier or 60)
end
genv.__SenaV4AdminBoostSpeedGen = (genv.__SenaV4AdminBoostSpeedGen or 0) + 1
local __SenaV4AdminBoostSpeedGen = genv.__SenaV4AdminBoostSpeedGen
if p1048 == true then
task.spawn(function()
local RunService2 = game:GetService("RunService")
local v4753
local v4754
while genv.__SenaV4AdminBoostSpeedGen == __SenaV4AdminBoostSpeedGen and v16() do
local Character = LocalPlayer.Character
local Humanoid = Character and Character:FindFirstChildOfClass("Humanoid")
if Humanoid then
local WalkSpeed = Humanoid.WalkSpeed
if v4753 == nil or v4754 == nil or math.abs(WalkSpeed - v4754) > 0.5 then
v4753 = WalkSpeed > 900 and WalkSpeed / 10 or WalkSpeed
end
if v4753 and v4753 > 0 then
local walkSpeed = v4753 * 10
Humanoid.WalkSpeed = walkSpeed
v4754 = walkSpeed
end
else
v4753 = nil
v4754 = nil
end
RunService2.Heartbeat:Wait()
end
end)
end
end
v4724 = function(p1049)
senaV4Config.AutoStealCapture = p1049 == true
end
v4725 = function(p1050)
senaV4Config.InfiniteJump = p1050 == true
local v4759 = v4747()
if v4759 then
v4759:setInfiniteJump(senaV4Config.InfiniteJump)
end
end
local function v4760(p1051)
senaV4Config.WalkSpeedMultiplier = math.clamp(tonumber(p1051) or 1, 1, 2.1)
local v4761 = v4747()
if v4761 then
v4761:setSpeedMultiplier(senaV4Config.WalkSpeedMultiplier)
end
end
v4726 = function(p1052)
senaV4Config.AntiHitGuard = p1052 == true
local __SenaV4AntiHitGuard = genv.__SenaV4AntiHitGuard
if __SenaV4AntiHitGuard then
__SenaV4AntiHitGuard:setEnabled(senaV4Config.AntiHitGuard)
end
end
v4727 = function(p1053)
senaV4Config.AntiAFK = p1053 == true
genv.__SenaV4AntiAfkEnabled = senaV4Config.AntiAFK
if type(genv.__SenaV4SetAntiAfkEnabled) == "function" then
genv.__SenaV4SetAntiAfkEnabled(senaV4Config.AntiAFK)
end
end
v4728 = function(p1054)
senaV4Config.AutoReconnect = p1054 == true
v2526.autoReconnect = senaV4Config.AutoReconnect
if getgenv then
getgenv().SNE_AutoReconnect = senaV4Config.AutoReconnect
end
end
v4729 = function(p1055)
senaV4Config.AutoExecute = p1055 == true
v2526.autoExecute = senaV4Config.AutoExecute
if getgenv then
getgenv().SNE_AutoExecute = senaV4Config.AutoExecute
end
if p1055 then
pcall(v2528)
else
pcall(v2530)
end
end
local function v4763()
local __SenaV4IdentitySetter = genv.__SenaV4IdentitySetter or type(setthreadidentity) == "function" and setthreadidentity or type(set_thread_identity) == "function" and set_thread_identity or type(setidentity) == "function" and setidentity or type(syn) == "table" and type(syn.set_thread_identity) == "function" and syn.set_thread_identity
local __SenaV4UICapabilityIdentity = genv.__SenaV4UICapabilityIdentity or 8
local function v4766()
if type(__SenaV4IdentitySetter) == "function" then
pcall(__SenaV4IdentitySetter, __SenaV4UICapabilityIdentity)
end
end
return v4766
end
v4730 = v4763()
v4731 = true
v4732 = function(p1056)
local function v4767(p1057)
if type(v4730) == "function" then
v4730()
end
if v4731 then
return
end
if type(p1056) == "function" then
p1056(p1057)
end
end
return v4767
end
__SenaV4PlayerSteal = genv.__SenaV4PlayerSteal
v4734 = function(p1058)
senaV4Config.StealPlayers = p1058 == true
if __SenaV4PlayerSteal then
__SenaV4PlayerSteal:setEnabled(senaV4Config.StealPlayers)
end
end
v4735 = function(p1059)
senaV4Config.StealPlayerRarities = v4320(p1059)
end
local function v4768(p1060)
local v4769 = string.lower(tostring(p1060 or "")):gsub("[%s,]", "")
if v4769 == "" then
return 0
end
local v4770, v4771 = string.match(v4769, "^([%d]+%.?[%d]*)([kmb]?)$")
local v4772 = tonumber(v4770)
if not v4772 then
return 0
end
if v4771 == "k" then
return v4772 * 1000
end
if v4771 == "m" then
return v4772 * 1000000
end
if v4771 == "b" then
return v4772 * 1e9
end
return v4772
end
v4736 = function(p1061)
senaV4Config.StealPlayerMinValue = v4768(p1061)
end
v4737 = function(p1062)
senaV4Config.AutoIndex = p1062 == true
if v612 then
v612:setIndexObjective(senaV4Config.AutoIndex)
end
end
v4738 = function(p1063)
senaV4Config.WebhookEnabled = p1063 == true
end
v4739 = function(p1064)
senaV4Config.WebhookURL = type(p1064) == "string" and p1064 or ""
end
v4740 = function(p1065)
senaV4Config.WebhookRarities = v4320(p1065)
end
v4741 = function(p1066)
senaV4Config.WebhookMinValue = v4768(p1066)
end
local t219 = {
"Set",
"SetValue",
"LoadValue",
"ResetValue",
"SetContent",
"SetTitle",
"SetOptions",
"Update",
"Refresh",
"Lock",
"Unlock",
"SetVisible"
}
local function v4774(p1067)
if type(p1067) ~= "table" then
return p1067
end
if rawget(p1067, "__senaElevated") then
return p1067
end
for _, v in ipairs(t219) do
local value = rawget(p1067, v)
if type(value) == "function" then
rawset(p1067, v, function(...)
v4730()
return value(...)
end)
end
end
rawset(p1067, "__senaElevated", true)
return p1067
end
local t220 = {
"AddToggle",
"AddSlider",
"AddDropdown",
"AddInput",
"AddButton",
"AddParagraph",
"AddKeybind",
"AddColorPicker",
"AddActionList",
"AddLiveChat",
"AddSupportCard",
"AddSubSection",
"AddSection",
"AddTab",
"AddForum"
}
local function v4779(p1068)
if type(p1068) ~= "table" then
return p1068
end
v4774(p1068)
if rawget(p1068, "__senaFactoryGuarded") then
return p1068
end
for _, v in ipairs(t220) do
local value = rawget(p1068, v)
if type(value) == "function" then
rawset(p1068, v, function(...)
v4730()
local v4783 = table.pack(value(...))
if v4783.n > 0 then
v4783[1] = v4779(v4783[1])
end
return table.unpack(v4783, 1, v4783.n)
end)
end
end
rawset(p1068, "__senaFactoryGuarded", true)
return p1068
end
v4730()
v4742 = SenaLibOverride:Window({
Title = "Sena BETA |",
Footer = "Steal An Egg",
Folder = "SenaSAEv4",
Version = 1,
Color = Color3.fromRGB(232, 232, 238),
Image = "http://56.10.112.179:8080/visual/sena_bg.jpg"
})
v4779(v4742)
t216 = {}
t217 = { "Respawn Point" }
local __SenaV4Roaming = genv.__SenaV4Roaming
if __SenaV4Roaming and type(__SenaV4Roaming.waypointList) == "function" then
local ok, result = pcall(__SenaV4Roaming.waypointList)
if ok and type(result) == "table" and #result > 0 then
t217 = result
end
end
u4745 = t217[1]
t218 = {}
local __SenaV4ScrambleRuntime = genv.__SenaV4ScrambleRuntime
if __SenaV4ScrambleRuntime and type(__SenaV4ScrambleRuntime.snapshot) == "function" then
pcall(function()
local v4788 = __SenaV4ScrambleRuntime.snapshot()
if v4788 and type(v4788.Shop) == "table" then
for _, v in pairs(v4788.Shop) do
if v and v.Label then
t218[#t218 + 1] = tostring(v.Label)
end
end
end
end)
end
local v4791 = v4742:AddTab({
Name = "Admin Abuse",
Icon = "flame"
})
t216.autoStealCapture = v4791:AddSection("Capture The Egg"):AddToggle({
Title = "Auto Steal Capture",
Content = "For the Capture The Egg event. Grabs the event egg for you and keeps you holding it in a safe spot so your time keeps going. Turn off normal Auto Steal while using this.",
Default = false,
Callback = v4732(v4724)
})
local Movement = v4791:AddSection("Movement")
t216.adminBoost = Movement:AddToggle({
Title = "Admin Abuse Boost",
Content = "Only works during Admin Abuse. Do not use it when there is no Admin Abuse.",
Default = false,
Callback = v4732(v4750)
})
t216.flyForCapture = Movement:AddToggle({
Title = "Fly For Capture",
Content = "For the Capture The Egg event. After you pick up an egg, you fly up and stay still in the air so nobody can take it.",
Default = false,
Callback = v4732(v4722)
})
t216.instantGrab = Movement:AddToggle({
Title = "Instant Grab",
Content = "Picking up an egg only needs a quick tap instead of a long hold.",
Default = false,
Callback = v4732(v4723)
})
t216.infiniteJump = Movement:AddToggle({
Title = "Infinite Jump",
Content = "Jump again in mid-air, as often as you like.",
Default = false,
Callback = v4732(v4725)
})
t216.noclip = Movement:AddToggle({
Title = "Noclip",
Content = "Walk through walls and doors.",
Default = false,
Callback = v4732(v4560)
})
t216.autoRingEvent = v4791:AddSection("Ring Event"):AddToggle({
Title = "Auto Ring Event",
Content = "Starts at the safe zone, then glides Forest -> Angels & Demons -> back to Forest on a loop. Turn off Auto Steal while using this.",
Default = false,
Callback = v4732(v4569)
})
end
do
local v4793 = v4742:AddTab({
Name = "Main",
Icon = "home"
})
local v4794 = v4793:AddSection("Auto Steal")
t216.autoSteal = v4794:AddToggle({
Title = "Auto Steal",
Content = "Steals eggs that match your filters and brings them home.",
Default = false,
Callback = v4732(v4526)
})
t216.helpFriend = v4794:AddToggle({
Title = "Help Friend",
Content = "Instead of banking a stolen egg, drops it just before the safe zone line so a friend can pick it up.",
Default = false,
Callback = v4732(function(p1069)
senaV4Config.HelpFriend = p1069 == true
end)
})
v4794:AddButton({
Title = "Egg Checker",
Content = "Every egg on the field right now, best money first. Pick one and steal it.",
Callback = v4732(function()
senaPanels.openChecker()
end)
})
v4794:AddButton({
Title = "Egg Spawn Analyst",
Content = "Live global spawn tracker, timeline & forecast synced across active online players.",
Callback = v4732(function()
senaPanels.openAnalyst()
end)
})
t216.godMode = v4794:AddToggle({
Title = "Aura Bat",
Content = "",
Default = false,
Callback = v4732(v4528)
})
t216.stealMode = v4794:AddDropdown({
Title = "Steal Mode",
Content = "If you have good speed better use High Speed User, but if you are newbie, use Low Speed User",
Options = {
"Low Speed User",
"High Speed User",
"High Speed User (Fly)"
},
MaxVisible = 3,
Default = "High Speed User",
Multi = false,
Callback = v4732(v4536)
})
if (tonumber(senaV4Config.StealHoldSeconds) or 5) > 10 then
senaV4Config.StealHoldSeconds = 5
end
t216.stealHold = v4794:AddSlider({
Title = "Low Speed Multiplier",
Content = "For Low Speed User. Higher = faster grab, lower = safer. Lower it if steals keep failing.",
Min = 1,
Max = 10,
Default = 5,
Increment = 1,
Callback = v4732(v4527)
})
local v4795 = v4793:AddSection("Egg Filter")
v4795:AddSubSection("Egg")
t216.names = v4795:AddDropdown({
Title = "Filter By Egg Name",
Content = "Only steal these eggs. Leave empty for any egg.",
Options = v4522,
Multi = true,
Default = {},
Callback = v4732(function(p1070)
v4538("names", "name", p1070)
end)
})
t216.rarities = v4795:AddDropdown({
Title = "Filter By Rarity",
Content = "Only steal these rarities. Leave empty for any rarity.",
Options = v4524,
Multi = true,
Default = {},
Callback = v4732(function(p1071)
v4538("rarities", "rarity", p1071)
end)
})
v4795:AddSubSection("Area & Value")
t216.areas = v4795:AddDropdown({
Title = "Select Area",
Content = "Only steal from these areas. Leave empty for every area.",
Options = v4523,
Multi = true,
Default = {},
Callback = v4732(function(p1072)
v4538("areas", "area", p1072)
end)
})
t216.value = v4795:AddInput({
Title = "Steal By Value",
Content = "Minimum money per second. Supports k, m and b.",
Placeholder = "e.g. 500k, 2m, 1b",
Default = "",
Callback = v4732(v4539)
})
t216.mutations = v4795:AddDropdown({
Title = "Filter By Mutation",
Content = "Only steal eggs carrying one of these mutations. Leave empty for any egg.",
Options = t199,
Multi = true,
Default = {},
Callback = v4732(v4540)
})
t216.weight = v4795:AddInput({
Title = "Steal By Weight",
Content = "Minimum egg weight in kilograms. 0 accepts any weight.",
Placeholder = "e.g. 12000",
Default = "",
Callback = v4732(v4541)
})
t216.priority = v4795:AddDropdown({
Title = "Steal Priority",
Content = "Which egg to go for first when more than one passes the filters.",
Options = {
"Rarity",
"Highest Value",
"Heaviest"
},
Default = "Rarity",
Callback = v4732(v4542)
})
t216.autoIndex = v4795:AddToggle({
Title = "Auto Index",
Content = "Also steal eggs whose pet is still missing from your Pet Index, in any area, on top of the filters above. An egg you already hold counts as covered until it hatches.",
Default = false,
Callback = v4732(v4737)
})
local v4796 = v4793:AddSection("Egg ESP")
t216.eggEsp = v4796:AddToggle({
Title = "Egg ESP",
Content = "Draws a label over every egg on the field so you can read it from across the map.",
Default = false,
Callback = v4732(v4543)
})
t216.espDetails = v4796:AddDropdown({
Title = "ESP Details",
Content = "What each label shows. Placed Eggs also labels the eggs sitting on plots.",
Options = {
"Name",
"Rarity",
"Value",
"Weight",
"Mutation",
"Placed Eggs"
},
Multi = true,
Default = {
"Name",
"Rarity",
"Value"
},
Callback = v4732(v4544)
})
t216.backpackRates = v4796:AddToggle({
Title = "Backpack Value/s",
Content = "Shows how much money per second each egg in your backpack makes, right on its slot.",
Default = false,
Callback = v4732(v4546)
})
local v4797 = v4793:AddSection("Steal Webhook")
t216.webhookEnabled = v4797:AddToggle({
Title = "Steal Webhook",
Content = "Posts a Discord embed the moment a stolen egg is banked, with its rarity, size, weight and cash per second.",
Default = false,
Callback = v4732(v4738)
})
t216.webhookUrl = v4797:AddInput({
Title = "Webhook URL",
Content = "Paste the Discord webhook URL for the channel you want.",
Placeholder = "https://discord.com/api/webhooks/...",
Default = "",
Callback = v4732(v4739)
})
v4797:AddSubSection("Filter")
t216.webhookRarities = v4797:AddDropdown({
Title = "Notify Rarities",
Content = "Only post these rarities. Empty = every egg you steal.",
Options = v4524,
Multi = true,
Default = {},
Callback = v4732(v4740)
})
t216.webhookValue = v4797:AddInput({
Title = "Notify Minimum Value",
Content = "Only post eggs worth at least this per second. Supports k, m and b.",
Placeholder = "e.g. 500k, 2m, 1b",
Default = "",
Callback = v4732(v4741)
})
v4797:AddButton({
Title = "Test Webhook",
Content = "Sends one test embed so you can confirm the URL works.",
Callback = v4732(function()
local __SenaV4Webhook = genv.__SenaV4Webhook
if not __SenaV4Webhook or not __SenaV4Webhook.test() then
SenaLibOverride:Notify({
Title = "Steal Webhook",
Content = "Enter a webhook URL first",
Duration = 3
})
return
end
SenaLibOverride:Notify({
Title = "Steal Webhook",
Content = "Test embed sent",
Duration = 3
})
end)
})
end
do
local v4799 = v4742:AddTab({
Name = "Auto",
Icon = "repeat"
})
t216.privateTab = v4742:AddTab({
Name = "Private Server",
Icon = "users"
})
local v4800 = v4799:AddSection("Egg Automation")
v4800:AddSubSection("Place")
t216.autoPlace = v4800:AddToggle({
Title = "Auto Place Egg",
Content = "Places eggs from your inventory on your plot.",
Default = false,
Callback = v4732(v4566)
})
t216.placeRarity = v4800:AddDropdown({
Title = "Place Egg Rarity",
Content = "Only place these rarities. Leave empty for all.",
Options = v4524,
Multi = true,
Default = {},
Callback = v4732(function(p1073)
senaV4Config.PlaceRarities = v4320(p1073)
end)
})
v4800:AddSubSection("Hatch")
t216.autoHatch = v4800:AddToggle({
Title = "Auto Hatch Egg",
Content = "Hatches your placed eggs when they are ready.",
Default = false,
Callback = v4732(v4567)
})
v4800:AddSubSection("Mutate")
t216.mutationChoice = v4800:AddDropdown({
Title = "Select Mutation",
Content = "Which mutation to apply to your placed eggs.",
Options = {
"Scrambled",
"Fractured"
},
Multi = false,
Default = "Scrambled",
Callback = v4732(v4570)
})
t216.mutationSpecies = v4800:AddDropdown({
Title = "Mutate Egg Name",
Content = "Only mutate these eggs by name. Leave empty for every placed egg.",
Options = v4522,
Multi = true,
Default = {},
Callback = v4732(v4571)
})
t216.mutationRarity = v4800:AddDropdown({
Title = "Mutate Egg Rarity",
Content = "Only mutate placed eggs of these rarities. Leave empty for every rarity.",
Options = v4524,
Multi = true,
Default = {},
Callback = v4732(v4572)
})
t216.mutationRetry = v4800:AddToggle({
Title = "Retry Until Mutated",
Content = "Keep applying to one egg until it mutates or charges run out (10% per use).",
Default = true,
Callback = v4732(v4573)
})
t216.autoMutation = v4800:AddToggle({
Title = "Auto Apply Mutation",
Content = "Equips the selected mutation consumable and applies it to your placed eggs.",
Default = false,
Callback = v4732(v4568)
})
v4800:AddButton({
Title = "Apply Mutation Now",
Content = "Run one mutation pass over your placed eggs right now.",
Callback = v4732(function()
task.spawn(function()
pcall(t24.mutationSweep)
end)
end)
})
local v4801 = v4742:AddTab({
Name = "Pets",
Icon = "sparkles"
})
local v4802 = v4801:AddSection("Pet Selling")
t216.autoSell = v4802:AddToggle({
Title = "Auto Sell Pet",
Content = "Sells pets that match a filter below. Favorite, placed and equipped pets are kept.",
Default = false,
Callback = v4732(v4574)
})
v4802:AddSubSection("Filter")
v4519 = v4802:AddDropdown({
Title = "Pet Name Filter",
Content = "Pets to sell by name. Pick All for every name.",
Options = v4525,
Multi = true,
Default = {},
Callback = v4732(function(p1074)
senaV4Config.SellNames = v4320(p1074)
end)
})
v4520 = v4802:AddDropdown({
Title = "Pet Rarity Filter",
Content = "Pets to sell by rarity. Pick All for every rarity.",
Options = v4330(v4524),
Multi = true,
Default = {},
Callback = v4732(function(p1075)
senaV4Config.SellRarities = v4320(p1075)
end)
})
t216.sellPetValue = v4802:AddInput({
Flag = "sellPetValue",
Title = "Sell By Value (max money/s)",
Content = "Only sell pets whose money per second is this or lower. Blank = no value limit. Supports k, m, b.",
Placeholder = "e.g. 100k, 2m",
Default = "",
Callback = v4732(v4576)
})
local v4803 = v4801:AddSection("Egg Selling")
t216.autoSellEgg = v4803:AddToggle({
Title = "Auto Sell Egg",
Content = "Sells unplaced eggs of the rarities below.",
Default = false,
Callback = v4732(v4575)
})
v4521 = v4803:AddDropdown({
Title = "Egg Rarity Filter",
Content = "Egg rarities to sell. Pick All for every rarity.",
Options = v4330(v4524),
Multi = true,
Default = {},
Callback = v4732(function(p1076)
senaV4Config.SellEggRarities = v4320(p1076)
end)
})
t216.sellEggValue = v4803:AddInput({
Flag = "sellEggValue",
Title = "Sell By Value (max money/s)",
Content = "Only sell eggs whose money per second is this or lower. Blank = no value limit. Supports k, m, b.",
Placeholder = "e.g. 100k, 2m",
Default = "",
Callback = v4732(v4577)
})
local v4804 = v4742:AddTab({
Name = "Events",
Icon = "flame"
})
local v4805 = v4801:AddSection("Pet Favorite")
t216.autoFavorite = v4805:AddToggle({
Title = "Auto Favorite",
Content = "Marks every pet that matches the rule below as a favorite, so Auto Sell and Auto Fuse leave it alone.",
Default = false,
Callback = v4732(v4548)
})
t216.favoriteRule = v4805:AddDropdown({
Title = "Favorite Rule",
Content = "Match pets by rarity or by species.",
Options = {
"Rarity",
"Species"
},
Default = "Rarity",
Callback = v4732(v4549)
})
v4805:AddSubSection("Only when Rule = Rarity")
t216.favoriteRarities = v4805:AddDropdown({
Title = "Rarities to Keep",
Content = "Pets of these rarities get favorited.",
Options = v4524,
Multi = true,
Default = {},
Callback = v4732(v4550)
})
v4805:AddSubSection("Only when Rule = Species")
t216.favoriteSpecies = v4805:AddDropdown({
Title = "Species to Keep",
Content = "Pets of these species get favorited.",
Options = v4522,
Multi = true,
Default = {},
Callback = v4732(v4551)
})
t216.unfavoriteAll = v4805:AddButton({
Title = "Unfavorite Everything",
Content = "Clears the favorite flag on every pet you own.",
Callback = v4732(function()
local __SenaV4PetBarn = genv.__SenaV4PetBarn
local n83 = 0
if __SenaV4PetBarn and type(__SenaV4PetBarn.unfavoriteAll) == "function" then
n83 = __SenaV4PetBarn.unfavoriteAll() or 0
end
SenaLibOverride:Notify({
Title = "Pet Favorite",
Content = n83 .. " pets unfavorited",
Duration = 3
})
end)
})
local v4808 = v4801:AddSection("Pet Fusion")
t216.autoFuse = v4808:AddToggle({
Title = "Auto Fuse",
Content = "Feeds three matching pets into the Fusion machine over and over. Favorited and equipped pets are never used.",
Default = false,
Callback = v4732(v4556)
})
t216.fuseRule = v4808:AddDropdown({
Title = "Fusion Rule",
Content = "Fuse anything that passes the rarity filter, or only the species you pick below.",
Options = {
"Any Species",
"Selected Species"
},
Default = "Any Species",
Callback = v4732(v4557)
})
t216.fuseRarities = v4808:AddDropdown({
Title = "Rarities to Fuse",
Content = "Only fuse pets of these rarities. Leave empty for any rarity.",
Options = v4524,
Multi = true,
Default = {},
Callback = v4732(v4558)
})
v4808:AddSubSection("Only when Rule = Selected Species")
t216.fuseSpecies = v4808:AddDropdown({
Title = "Species to Fuse",
Content = "Only these species go into the machine.",
Options = v4522,
Multi = true,
Default = {},
Callback = v4732(v4559)
})
local v4809 = v4799:AddSection("Equip & Collect")
t216.autoEquipBest = v4809:AddToggle({
Title = "Auto Equip Best",
Content = "Keeps your strongest pets equipped as better ones hatch.",
Default = false,
Callback = v4732(v4552)
})
t216.autoClaimOffline = v4809:AddToggle({
Title = "Collect Offline Income",
Content = "Claims the money your base earned while you were away, as soon as there is any.",
Default = false,
Callback = v4732(v4553)
})
t216.autoBaseUpgrade = v4809:AddToggle({
Title = "Auto Upgrade Base",
Content = "Buys the next base tier the moment you can afford it.",
Default = false,
Callback = v4732(v4554)
})
t216.autoClaimAlmanac = v4809:AddToggle({
Title = "Auto Claim Almanac",
Content = "Redeems every Pet Index reward that is ready. This is the reward claim, not the steal objective.",
Default = false,
Callback = v4732(v4555)
})
t216.upgradeBaseOnce = v4809:AddButton({
Title = "Upgrade Base Now",
Content = "Buys one base tier right away.",
Callback = v4732(function()
local __SenaV4Upgrades = genv.__SenaV4Upgrades
local v4811 = false
local s18 = "Upgrades not ready"
if __SenaV4Upgrades and type(__SenaV4Upgrades.upgradeBase) == "function" then
v4811, s18 = __SenaV4Upgrades.upgradeBase()
end
local v4813 = SenaLibOverride
local Notify = SenaLibOverride.Notify
local t221 = {
Title = "Base"
}
local content = v4811 and "Base upgraded"
if not content then
content = tostring(s18 or "Could not upgrade")
end
t221.Content = content
t221.Duration = 3
Notify(v4813, t221)
end)
})
local __SenaV4ButterflyRuntime = genv.__SenaV4ButterflyRuntime
local v4818 = v4804:AddSection("Butterfly Bloom")
local v4819 = v4818:AddParagraph({
Title = "Bloom Status",
Content = "Reading the Bloom schedule..."
})
t216.bloomAutoNet = v4818:AddToggle({
Title = "Auto Claim Net",
Content = "Goes into the Enchanted Tree and claims your free Butterfly Net once.",
Default = false,
Callback = v4732(function(p1077)
senaV4Config.ButterflyAutoNet = p1077 == true
end)
})
t216.bloomAutoCatch = v4818:AddToggle({
Title = "Auto Catch",
Content = "During every Bloom (every 30 min, 5 min long) flies to the Enchanted Forest, equips the net and catches with the Catch Mode below.",
Default = false,
Callback = v4732(function(p1078)
senaV4Config.ButterflyAutoCatch = p1078 == true
end)
})
local v4820 = __SenaV4ButterflyRuntime and __SenaV4ButterflyRuntime.modeOptions() or { "Tween to Butterfly" }
t216.bloomMode = v4818:AddDropdown({
Title = "Catch Mode",
Content = "Tween to Butterfly chases one butterfly at a time. Stand waits in the thickest part of the swarm, Zigzag sweeps back and forth across the forest, Circle loops around the swarm.",
Options = v4820,
Multi = false,
Default = v4820[1],
Callback = v4732(function(p1079)
if __SenaV4ButterflyRuntime then
__SenaV4ButterflyRuntime.setMode(p1079)
end
end)
})
t216.bloomTiers = v4818:AddDropdown({
Title = "Catch Tiers",
Content = "Only swing at these butterflies. Leave empty to catch every tier.",
Options = __SenaV4ButterflyRuntime and __SenaV4ButterflyRuntime.tierOptions() or {
"Radiant",
"Amethyst",
"Sapphire",
"Emerald"
},
Multi = true,
Default = {},
Callback = v4732(function(p1080)
if __SenaV4ButterflyRuntime then
__SenaV4ButterflyRuntime.setTiers(v4320(p1080))
end
end)
})
t216.bloomEsp = v4818:AddToggle({
Title = "Butterfly ESP",
Content = "Shows every butterfly's tier and distance while a Bloom is live.",
Default = false,
Callback = v4732(function(p1081)
senaV4Config.ButterflyEsp = p1081 == true
end)
})
v4818:AddSubSection("Trade & Craft")
t216.bloomAutoTrade = v4818:AddToggle({
Title = "Auto Trade Up",
Content = "After each Bloom, trades your butterflies up at the machine inside the Enchanted Tree.",
Default = false,
Callback = v4732(function(p1082)
senaV4Config.ButterflyAutoTrade = p1082 == true
end)
})
local v4821 = __SenaV4ButterflyRuntime and __SenaV4ButterflyRuntime.recipeOptions() or { "All Recipes" }
t216.bloomRecipe = v4818:AddDropdown({
Title = "Trade Recipe",
Content = "Which trade Auto Trade Up runs. For Essence only trades up what the essence recipe is still short of.",
Options = v4821,
Multi = false,
Default = v4821[1],
Callback = v4732(function(p1083)
if __SenaV4ButterflyRuntime then
__SenaV4ButterflyRuntime.setRecipe(p1083)
end
end)
})
t216.bloomAutoCraft = v4818:AddToggle({
Title = "Auto Craft Essence",
Content = "After each Bloom, crafts Enchanted Essence at the shrine once you hold the full recipe.",
Default = false,
Callback = v4732(function(p1084)
senaV4Config.ButterflyAutoCraft = p1084 == true
end)
})
local function v4822(p1085, p1086, p1087, p1088)
v4818:AddButton({
Title = p1085,
Content = p1086,
Callback = v4732(function()
if not __SenaV4ButterflyRuntime then
return
end
task.spawn(function()
__SenaV4ButterflyRuntime.manual = true
local ok, result, result2 = pcall(p1087)
__SenaV4ButterflyRuntime.manual = false
if not ok then
local v4826 = result
result = false
result2 = v4826
end
local v4827 = SenaLibOverride
local Notify = SenaLibOverride.Notify
local t222 = {
Title = "Butterfly Bloom"
}
local content = result and p1088(result2)
if not content then
content = tostring(result2 or "Could not do that")
end
t222.Content = content
t222.Duration = 4
Notify(v4827, t222)
end)
end)
})
end
v4822("Claim Net Now", "Claims the Butterfly Net right now.", function()
return __SenaV4ButterflyRuntime.claimNet()
end, function()
return "Butterfly Net claimed"
end)
v4822("Trade Up Now", "Runs the trade recipe once, even with Auto Trade Up off.", function()
return __SenaV4ButterflyRuntime.tradeUp()
end, function(p1089)
return ("Traded up %d time(s)"):format(tonumber(p1089) or 0)
end)
v4822("Craft Essence Now", "Crafts Enchanted Essence right now if you hold the full recipe.", function()
return __SenaV4ButterflyRuntime.craft()
end, function(p1090)
return ("Crafted %d Enchanted Essence"):format(tonumber(p1090) or 0)
end)
task.spawn(function()
while v16() do
if __SenaV4ButterflyRuntime then
pcall(function()
local snap = __SenaV4ButterflyRuntime.snap
local v4832 = __SenaV4ButterflyRuntime.tiers() or {}
local v4833
if snap.active then
local v4834 = math.floor(snap.left or 0)
v4833 = ("LIVE - ends in %dm %02ds"):format(math.floor(v4834 / 60), v4834 % 60)
elseif snap.enabled == false then
v4833 = "Disabled on this server"
elseif snap.nextIn then
local v4835 = math.floor(snap.nextIn)
v4833 = ("Next in %dm %02ds"):format(math.floor(v4835 / 60), v4835 % 60)
else
v4833 = "Not running"
end
local t223 = {}
for _, v in ipairs({
"Golden",
"Purple",
"Blue",
"Green"
}) do
t223[#t223 + 1] = ("%s %d"):format(v4832[v] and v4832[v].name or v, snap.counts and snap.counts[v] or 0)
end
v4819:SetContent(("%s\n%s · Essence %d · Caught %d\n%s\n%s"):format(v4833, snap.net and (snap.holding and "Net equipped" or "Net owned") or "No Butterfly Net", snap.essence or 0, snap.caught or 0, table.concat(t223, " · "), tostring(__SenaV4ButterflyRuntime.status or "Idle")))
end)
end
task.wait(1)
end
end)
local v4839 = v4804:AddSection("Dr Scramble Event")
v4839:AddParagraph({
Title = "About This Event",
Content = "Dr Scramble's shop, trade-in and boss still run while the event is live. The drones, lost parts and vault are gone from the game."
})
t216.scrambleBuy = v4839:AddToggle({
Title = "Auto Buy Shop",
Content = "Spends samples on the shop items you pick below, as soon as you can afford them.",
Default = false,
Callback = v4732(v4564)
})
t216.scrambleBuyList = v4839:AddDropdown({
Title = "Shop Buy List",
Content = "Which shop items Auto Buy should purchase. This list fills in once the event shop is open.",
Options = t218,
Multi = true,
Default = {},
Callback = v4732(v4565)
})
v4839:AddSubSection("Trade-In (Experimental Pets)")
t216.scrambleTradeInTrade = v4839:AddToggle({
Title = "Auto Trade-In",
Content = "When the recipe's three requirements are covered, sacrifices the cheapest pet that fits each slot. Favorited, equipped, placed and fusing pets are never spent.",
Default = false,
Callback = v4732(function(p1091)
senaV4Config.ScrambleTradeInTrade = p1091 == true
end)
})
t216.scrambleTradeInReroll = v4839:AddToggle({
Title = "Auto Free Reroll",
Content = "When pets are missing and a free reroll is left, rerolls the recipe instead of waiting.",
Default = false,
Callback = v4732(function(p1092)
senaV4Config.ScrambleTradeInReroll = p1092 == true
end)
})
t216.scrambleTradeInBanners = v4839:AddDropdown({
Title = "Target Banners",
Content = "Only work the trade-in while one of these banners is up. Leave empty to accept any banner.",
Options = {
"Biohazard Pets",
"Experimental Pets",
"Unstable DNA"
},
Multi = true,
Default = {},
Callback = v4732(v4545)
})
v4839:AddButton({
Title = "Trade-In Once",
Content = "Runs one sacrifice right now, even with Auto Trade-In off.",
Callback = v4732(function()
local __SenaV4ScrambleTradeIn = genv.__SenaV4ScrambleTradeIn
local v4841 = false
local s19 = "Trade-In not ready"
if __SenaV4ScrambleTradeIn then
v4841, s19 = __SenaV4ScrambleTradeIn.tradeOnce()
end
SenaLibOverride:Notify({
Title = "Dr Scramble",
Content = v4841 and "Sacrifice complete" or tostring(s19),
Duration = 4
})
end)
})
v4839:AddButton({
Title = "Use Free Reroll",
Content = "Spends one of today's free rerolls on a new recipe.",
Callback = v4732(function()
local __SenaV4ScrambleTradeIn = genv.__SenaV4ScrambleTradeIn
local v4844 = false
local s20 = "Trade-In not ready"
if __SenaV4ScrambleTradeIn then
v4844, s20 = __SenaV4ScrambleTradeIn.reroll()
end
SenaLibOverride:Notify({
Title = "Dr Scramble",
Content = v4844 and "Recipe rerolled" or tostring(s20),
Duration = 4
})
end)
})
v4839:AddButton({
Title = "Open Trade-In UI",
Content = "Opens Dr Scramble's Lab window so you can pick pets by hand.",
Callback = v4732(function()
if not pcall(function()
require(ReplicatedStorage.Client.Tabs).Activate("DrScrambleTradeIn")
end) then
SenaLibOverride:Notify({
Title = "Dr Scramble",
Content = "Could not open the trade-in window",
Duration = 3
})
end
end)
})
local v4846 = v4839:AddParagraph({
Title = "Trade-In Status",
Content = "Turn a trade-in toggle on to start reading the recipe."
})
task.spawn(function()
while v16() do
local __SenaV4ScrambleTradeIn = genv.__SenaV4ScrambleTradeIn
if __SenaV4ScrambleTradeIn then
pcall(function()
v4846:SetContent(string.format([[%s · %s
Rotates in %02d:%02d · Pity %d/%d · Free rerolls %d · Traded %d
Recipe (%d/%d): %s
Held: %s
Missing: %s]], __SenaV4ScrambleTradeIn.banner, __SenaV4ScrambleTradeIn.status, math.floor(__SenaV4ScrambleTradeIn.rotation / 60), __SenaV4ScrambleTradeIn.rotation % 60, __SenaV4ScrambleTradeIn.pity, __SenaV4ScrambleTradeIn.pityMax, __SenaV4ScrambleTradeIn.free, __SenaV4ScrambleTradeIn.trades, __SenaV4ScrambleTradeIn.ready, __SenaV4ScrambleTradeIn.total, __SenaV4ScrambleTradeIn.demands, __SenaV4ScrambleTradeIn.stock, __SenaV4ScrambleTradeIn.missing))
end)
end
task.wait(1)
end
end)
v4839:AddSubSection("Boss Fight")
t216.scrambleBossAuto = v4839:AddToggle({
Title = "Auto Boss",
Content = "When Dr Scramble's boss is live, walks into the arena portal, joins the fight, hits the nearest target with your bat and breaks free from grabs. The clear reward lands automatically. While Auto Steal is on and this is off, an accidental touch on the arena portal is bounced back out so your steal is never hijacked.",
Default = false,
Callback = v4732(function(p1093)
senaV4Config.ScrambleBossAuto = p1093 == true
if v612 and type(v612._reconcileScramblePortal) == "function" then
pcall(v612._reconcileScramblePortal, v612)
end
end)
})
local v4848 = v4839:AddParagraph({
Title = "Boss Status",
Content = "Turn Auto Boss on. It sits idle until the boss event goes live."
})
task.spawn(function()
while v16() do
local __SenaV4ScrambleBoss = genv.__SenaV4ScrambleBoss
if __SenaV4ScrambleBoss then
pcall(function()
v4848:SetContent(string.format("%s · joins %d · hits %d", tostring(__SenaV4ScrambleBoss.status), __SenaV4ScrambleBoss.joins or 0, __SenaV4ScrambleBoss.hits or 0))
end)
end
task.wait(1)
end
end)
local Treadmill = v4799:AddSection("Treadmill")
t216.autoTreadmill = Treadmill:AddToggle({
Title = "Auto Treadmill",
Content = "Walks to your treadmill and farms speed whenever nothing else is running.",
Default = false,
Callback = v4732(v4529)
})
t216.treadmillUpgrade = Treadmill:AddToggle({
Title = "Auto Upgrade Treadmill",
Content = "Buys the next treadmill tier with cash as soon as you can afford it.",
Default = false,
Callback = v4732(v4535)
})
end
do
local v4851 = v4742:AddTab({
Name = "Misc",
Icon = "settings"
})
local Performance = v4851:AddSection("Performance")
t216.startupBoost = Performance:AddToggle({
Title = "Startup Boost",
Content = "Lowers graphics when the script starts. Turn it off to get the graphics back; hidden pets and eggs return after a rejoin.",
Default = true,
Callback = v4732(v4717)
})
t216.boostFps = Performance:AddToggle({
Title = "Boost FPS",
Content = "Removes extra map details and other players' plots for more FPS.",
Default = false,
Callback = v4732(v4719)
})
t216.uncapFps = Performance:AddToggle({
Title = "Uncap FPS",
Content = "Raises the FPS cap to 240.",
Default = true,
Callback = v4732(v4720)
})
local Guard = v4851:AddSection("Guard")
t216.antiGuardKnockback = Guard:AddToggle({
Title = "Anti Guard Knockback",
Content = "Cancels the knockback the Forest guard puts on you, so a hit never throws you off the lane.",
Default = true,
Callback = v4732(v4547)
})
t216.antiHitGuard = Guard:AddToggle({
Title = "Anti Hit Guard",
Content = "For eggs you pick up by hand. Pins you in the safe zone behind a look-alike clone until the guard goes back to sleep. Auto Steal has its own guard handling and always wins.",
Default = false,
Callback = v4732(v4726)
})
local Windows = v4851:AddSection("Windows")
Windows:AddButton({
Title = "Egg Logs",
Content = "Live feed of every egg that spawns on the server.",
Callback = v4732(function()
senaPanels.openLogs()
end)
})
Windows:AddButton({
Title = "Egg Board",
Content = "Sortable list of the eggs currently up for grabs.",
Callback = v4732(function()
senaPanels.openBoard()
end)
})
Windows:AddButton({
Title = "Inventory & Base",
Content = "Your pets, eggs and plot status in one window.",
Callback = v4732(function()
senaPanels.openInventory()
end)
})
Windows:AddButton({
Title = "Egg Checker",
Content = "Pick eggs off the field by hand, then send them all to the steal queue.",
Callback = v4732(function()
senaPanels.openChecker()
end)
})
Windows:AddButton({
Title = "Egg Data & History",
Content = "Drop-table values per area, plus what has actually spawned this session.",
Callback = v4732(function()
senaPanels.openAnalyst()
end)
})
Windows:AddButton({
Title = "Open All Windows",
SubTitle = "Close All Windows",
Content = "Opens every window at once, or hides them again.",
Callback = v4732(function()
senaPanels.openAll()
end),
SubCallback = v4732(function()
senaPanels.closeAll()
end)
})
t216.antiTreadmill = v4851:AddSection("Blocker"):AddToggle({
Title = "Anti Treadmill",
Content = "Never stay on a treadmill: any mount is dropped right away, and Auto Treadmill is held off while this is on.",
Default = false,
Callback = v4732(v4530)
})
local v4855 = v4851:AddSection("Server Hop")
t216.hopNoMatch = v4855:AddToggle({
Title = "Hop When Nothing Matches",
Content = "Hop to the emptiest server when no egg matches your filters.",
Default = false,
Callback = v4732(v4531)
})
v4855:AddSubSection("Limits")
t216.hopCooldown = v4855:AddSlider({
Title = "Hop Cooldown",
Content = "Seconds between auto hops and wait after rejoining.",
Min = 1,
Max = 60,
Default = 5,
Increment = 1,
Callback = v4732(v4534)
})
local v4856 = t216.privateTab:AddSection("Find Private Server", true)
local v4857 = v4856:AddParagraph({
Title = "Current Server",
Content = "Checking..."
})
t216.privateServerMax = v4856:AddDropdown({
Title = "Max Players",
Content = "The most players you want in your server, you included. 2 (you + 1) is the easiest to find.",
Options = {
"1",
"2",
"3",
"4",
"5"
},
Default = "2",
Multi = false,
Callback = v4732(v4532)
})
v4856:AddButton({
Title = "Hop Server Now",
Content = "Moves you to a quieter server right away.",
Callback = v4732(function()
task.spawn(function()
t145.hopPrivateOnce()
end)
end)
})
t216.privateServerAuto = v4856:AddToggle({
Title = "Auto Hop",
Content = "Keeps moving you to quieter servers until the player count is at or under your max.",
Default = false,
Callback = v4732(v4533)
})
task.spawn(function()
local v4858
while v16() do
local v4859 = "Now: " .. #Players:GetPlayers() .. " player(s) · Max: " .. t145.privateMax() .. "\n" .. tostring(t145.privateStatus or "")
if v4859 ~= v4858 then
v4858 = v4859
pcall(function()
v4857:SetContent(v4859)
end)
end
task.wait(1)
end
end)
local Roaming = v4851:AddSection("Roaming")
t216.waypoint = Roaming:AddDropdown({
Title = "Waypoint",
Content = "Pick a place, then hit Teleport below.",
Options = t217,
Default = t217[1],
Callback = v4732(function(p1094)
u4745 = p1094
end)
})
Roaming:AddButton({
Title = "Teleport To Waypoint",
Content = "Moves you straight to the waypoint you picked.",
Callback = v4732(function()
local __SenaV4Roaming = genv.__SenaV4Roaming
local v4862 = false
if __SenaV4Roaming and type(__SenaV4Roaming.teleportWaypoint) == "function" then
v4862 = __SenaV4Roaming.teleportWaypoint(u4745) == true
end
SenaLibOverride:Notify({
Title = "Waypoint",
Content = v4862 and "Moved to " .. tostring(u4745) or "That waypoint is not in this server",
Duration = 3
})
end)
})
local v4863 = v4851:AddSection("Run Once")
v4863:AddButton({
Title = "Place Everything Now",
Content = "Runs one pass of Auto Place, even while the toggle is off.",
Callback = v4732(function()
runOnce("AutoPlace", t24.AutoPlaceLoop)
end)
})
v4863:AddButton({
Title = "Hatch Everything Ready",
Content = "Runs one pass of Auto Hatch, even while the toggle is off.",
Callback = v4732(function()
runOnce("AutoHatch", t24.AutoHatchLoop)
end)
})
v4863:AddButton({
Title = "Sell Pets Now",
Content = "Runs one pass of Auto Sell Pet using the filters above.",
Callback = v4732(function()
runOnce("AutoSell", t24.startAutoSellLoop)
end)
})
v4863:AddButton({
Title = "Sell Eggs Now",
Content = "Runs one pass of Auto Sell Egg using the filters above.",
Callback = v4732(function()
runOnce("AutoSellEgg", t24.startAutoSellEggLoop)
end)
})
local Session = v4851:AddSection("Session")
t216.bottingMode = Session:AddToggle({
Title = "Botting Mode",
Content = "Turns off 3D rendering and covers the screen in black. Everything keeps running, your GPU does not.",
Default = false,
Callback = v4732(v4561)
})
t216.antiCutscene = Session:AddToggle({
Title = "Anti Cutscene",
Content = "Closes event cutscenes and the intro as soon as the game opens them, so nothing locks your camera.",
Default = false,
Callback = v4732(v4562)
})
Session:AddButton({
Title = "Rejoin This Server",
Content = "Teleports you back into the exact server you are in now.",
Callback = v4732(function()
pcall(function()
game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, game.JobId, LocalPlayer)
end)
end)
})
Session:AddButton({
Title = "Stop & Unload",
Content = "Turns every loop off and closes the hub. Run the script again to bring it back.",
Callback = v4732(function()
for _, v in ipairs({
"AutoSteal",
"AutoPlace",
"AutoHatch",
"AutoSell",
"AutoSellEgg",
"StealPlayers",
"AutoFavorite",
"AutoFusePets",
"AutoEquipBest",
"AutoClaimOffline",
"AutoBaseUpgrade",
"AutoClaimAlmanac",
"Noclip",
"BottingMode",
"AntiCutscene"
}) do
senaV4Config[v] = false
end
v4560(false)
v4561(false)
if v612 then
pcall(v612.setEnabled, v612, false)
end
local __SenaV4HubShutdown = genv.__SenaV4HubShutdown
if type(__SenaV4HubShutdown) == "function" then
task.delay(0.2, function()
pcall(__SenaV4HubShutdown)
end)
end
end)
})
local Player = v4851:AddSection("Player")
t216.antiAfk = Player:AddToggle({
Title = "Anti AFK",
Content = "Blocks the game's idle kick while the script runs.",
Default = true,
Callback = v4732(v4727)
})
t216.autoReconnect = Player:AddToggle({
Title = "Auto Reconnect",
Content = "Automatically reconnects you back to the server upon kick or disconnect.",
Default = true,
Callback = v4732(v4728)
})
t216.autoExecute = Player:AddToggle({
Title = "Auto Execute (Rejoin)",
Content = "Prepares the bootstrapper so the script runs automatically after teleport or reconnect.",
Default = false,
Callback = v4732(v4729)
})
end
do
local v4869 = v4742:AddTab({
Name = "Steal Players",
Icon = "swords"
})
local v4870 = v4869:AddSection("Auto Steal")
t216.stealPlayers = v4870:AddToggle({
Title = "Auto Steal From Players",
Content = "Chases anyone carrying an egg in the field, bats them until the egg drops, grabs it and banks it. A carrier is only chased when the egg clears the filters below.",
Default = false,
Callback = v4732(v4734)
})
t216.stealPlayerRarities = v4870:AddDropdown({
Title = "Rarity Filter",
Content = "Only chase eggs of these rarities. Empty = uses the Auto Steal rarity filter.",
Options = v4524,
Multi = true,
Default = {},
Callback = v4732(v4735)
})
t216.stealPlayerValue = v4870:AddInput({
Title = "Minimum Value",
Content = "Skip carriers holding less than this per second. Supports k, m and b.",
Placeholder = "e.g. 500k, 2m, 1b",
Default = "",
Callback = v4732(v4736)
})
local v4871 = v4869:AddSection("Steal From Specific Player", true)
local v4872 = v4869:AddSection("Steal History", true)
local v4873
local v4874
if v4871.AddActionList then
v4873 = v4871:AddActionList({
Title = "Players in this server",
EmptyText = "Nobody else is in this server.",
VisibleRows = 6,
ButtonWidth = 76
})
v4874 = v4872:AddActionList({
Title = "History of stolen eggs from players",
EmptyText = "No player steals yet.",
VisibleRows = 5,
ButtonWidth = 72
})
else
v4871:AddParagraph({
Title = "Update required",
Content = "This Sena UI build has no player list yet. Rejoin to pull the latest version."
})
end
v4872:AddButton({
Title = "Clear History",
Content = "Wipe the list above.",
Callback = v4732(function()
if __SenaV4PlayerSteal then
__SenaV4PlayerSteal:clearHistory()
end
end)
})
if __SenaV4PlayerSteal and v4873 then
local __SenaV4IdentitySetter = genv.__SenaV4IdentitySetter
local __SenaV4UICapabilityIdentity = genv.__SenaV4UICapabilityIdentity or 8
local function v4877(p1095)
if __SenaV4IdentitySetter then
pcall(__SenaV4IdentitySetter, __SenaV4UICapabilityIdentity)
end
if not v4874 or not v4874:Alive() then
return
end
local t224 = {}
for i, v in ipairs(p1095.history) do
t224[i] = {
id = tostring(i),
name = v.player,
sub = string.format("%s", os.date("!%H:%M:%S", v.at)),
status = v.egg,
statusSub = v.outcome,
button = false
}
end
v4874:Update(t224)
end
__SenaV4PlayerSteal:onChanged(v4877)
v4877(__SenaV4PlayerSteal)
task.spawn(function()
while genv.__SenaV4PlayerSteal == __SenaV4PlayerSteal do
local ok, result = pcall(function()
local v4883 = __SenaV4PlayerSteal:listEntries()
if __SenaV4IdentitySetter then
pcall(__SenaV4IdentitySetter, __SenaV4UICapabilityIdentity)
end
if v4873:Alive() then
v4873:Update(v4883)
end
end)
if not ok then
warn("[Sena Steal] Player list update loop error:", result)
end
task.wait(1)
end
end)
end
end
v4742:AddTab({
Name = "Live Chat",
Icon = "chat"
}):AddSection("Global Chat", true):AddLiveChat({
Title = "Live Chat",
Height = 300
})
if type(v4742.AddForum) == "function" then
v4742:AddForum({
Name = "Forum",
Icon = "forum",
Section = "Config Forum"
})
end
do
local __SenaV4Visual = genv.__SenaV4Visual
local v4885 = v4742:AddTab({
Name = "Visual",
Icon = "eye"
})
local t225 = {
rods = nil,
fish = nil
}
local v4887
local function v4888()
if v4887 and __SenaV4Visual then
pcall(function()
v4887:SetContent(__SenaV4Visual.status)
end)
end
end
local function v4889(p1096)
if not __SenaV4Visual then
return
end
task.spawn(function()
__SenaV4Visual.spawn(p1096, t225[p1096])
v4888()
SenaLibOverride:Notify({
Title = "Visual",
Content = __SenaV4Visual.status,
Duration = 3
})
end)
task.delay(0.1, v4888)
end
local v4890 = v4885:AddSection("Fish It")
v4890:AddSubSection("Rods")
local v4891 = v4890:AddDropdown({
Title = "Select Rod",
Content = "Rods and skins from Fish It. Loading list...",
Options = {},
Multi = false,
Default = nil,
Callback = v4732(function(p1097)
t225.rods = p1097
end)
})
v4890:AddButton({
Title = "Spawn Rod",
Content = "Downloads the rod and puts it in your backpack. Equip it like a bat. Only you can see it.",
Callback = v4732(function()
v4889("rods")
end)
})
v4890:AddSlider({
Title = "Rod Size",
Content = "1 = the size it has in Fish It. Spawned rods update right away.",
Min = 0.5,
Max = 2,
Default = 1,
Increment = 0.1,
Callback = v4732(function(p1098)
if not __SenaV4Visual or __SenaV4Visual.rodScale == p1098 then
return
end
__SenaV4Visual.rodScale = p1098
task.spawn(__SenaV4Visual.respawn, "rods")
end)
})
v4890:AddSubSection("Fish")
local v4892 = v4890:AddDropdown({
Title = "Select Fish",
Content = "Secret and Forgotten fish from Fish It. Loading list...",
Options = {},
Multi = false,
Default = nil,
Callback = v4732(function(p1099)
t225.fish = p1099
end)
})
v4890:AddButton({
Title = "Spawn Fish",
Content = "Downloads the fish and puts it in your backpack under Pets. Only you can see it.",
Callback = v4732(function()
v4889("fish")
end)
})
v4890:AddSlider({
Title = "Fish Weight",
Content = "0% = lightest catch, 100% = heaviest Big catch. Size follows Fish It: weight / min weight.",
Min = 0,
Max = 100,
Default = 0,
Increment = 5,
Callback = v4732(function(p1100)
local fishWeight = (tonumber(p1100) or 0) / 100
if not __SenaV4Visual or __SenaV4Visual.fishWeight == fishWeight then
return
end
__SenaV4Visual.fishWeight = fishWeight
task.spawn(__SenaV4Visual.respawn, "fish")
end)
})
v4890:AddSubSection("Manage")
v4887 = v4890:AddParagraph({
Title = "Status",
Content = "Idle"
})
v4890:AddButton({
Title = "Remove All Visual Items",
Content = "Takes every spawned rod and fish out of your backpack.",
Callback = v4732(function()
if __SenaV4Visual then
__SenaV4Visual.clear()
end
v4888()
end)
})
task.spawn(function()
if not __SenaV4Visual then
return
end
local rods = __SenaV4Visual.names("rods")
local fish = __SenaV4Visual.names("fish")
pcall(function()
v4891:Refresh(rods)
end)
pcall(function()
v4892:Refresh(fish)
end)
__SenaV4Visual.status = #rods > 0 and string.format("%d rods and %d fish available", #rods, #fish) or "Could not load the item list. Try again later."
v4888()
end)
local v4896 = v4885:AddSection("Steal an Egg")
local s21 = "Egg"
local n84 = 50
local Egg = genv.__SenaV4VisualSAE and genv.__SenaV4VisualSAE.categories("Egg") or {}
local u4900 = Egg[1]
v4896:AddDropdown({
Title = "Type",
Content = "Egg shows in the Eggs tab, Pet under Pets. Both are fake and local-only.",
Options = {
"Egg",
"Pet"
},
Multi = false,
Default = "Egg",
Callback = v4732(function(p1101)
s21 = p1101 or "Egg"
end)
})
v4896:AddDropdown({
Title = "Select Egg / Pet",
Content = "Which egg or pet to spawn.",
Options = Egg,
Multi = false,
Default = Egg[1],
MaxVisible = 8,
Callback = v4732(function(p1102)
u4900 = p1102
end)
})
v4896:AddSlider({
Title = "Size / Flex",
Content = "Bigger = heavier Kg & higher value (Kg = base weight x scale^3) AND a bigger egg in your hand. 50 hits the billions.",
Min = 1,
Max = 100,
Default = 50,
Increment = 1,
Callback = v4732(function(p1103)
n84 = tonumber(p1103) or 50
end)
})
v4896:AddButton({
Title = "Hold in Hand",
Content = "Spawns a model of it in your hand. Press again for more. (In-hand only - use the other button to also add it to All Items.)",
Callback = v4732(function()
local __SenaV4VisualSAE = genv.__SenaV4VisualSAE
if __SenaV4VisualSAE then
__SenaV4VisualSAE.spawn(s21, u4900, n84, true)
end
end)
})
v4896:AddButton({
Title = "Add to Backpack (Kg)",
Content = "Drops it in All Items (eggs) or Pets with a huge Kg for the inventory flex. Press again for more.",
Callback = v4732(function()
local __SenaV4VisualSAE = genv.__SenaV4VisualSAE
if __SenaV4VisualSAE then
__SenaV4VisualSAE.spawn(s21, u4900, n84, false)
end
end)
})
v4896:AddButton({
Title = "Remove Egg / Pet Visuals",
Content = "Takes every spawned fake egg/pet and held model out.",
Callback = v4732(function()
local __SenaV4VisualSAE = genv.__SenaV4VisualSAE
if __SenaV4VisualSAE then
__SenaV4VisualSAE.clear()
end
end)
})
end
v4742:AddTab({
Name = "Donate",
Icon = "donator"
}):AddSection("Support Sena", true):AddSupportCard({})
do
local function v4904(p1104, p1105)
v4730()
if type(p1104) == "table" and p1104.Value ~= nil then
pcall(p1105, p1104.Value)
end
end
v4731 = false
v4904(t216.speed, v4537)
v4904(t216.stealMode, v4536)
v4904(t216.stealHold, v4527)
v4904(t216.antiTreadmill, v4530)
v4904(t216.autoTreadmill, v4529)
v4904(t216.treadmillUpgrade, v4535)
v4904(t216.hopCooldown, v4534)
v4904(t216.hopNoMatch, v4531)
v4904(t216.privateServerMax, v4532)
v4904(t216.privateServerAuto, v4533)
v4904(t216.names, function(p1106)
v4538("names", "name", p1106)
end)
v4904(t216.areas, function(p1107)
v4538("areas", "area", p1107)
end)
v4904(t216.rarities, function(p1108)
v4538("rarities", "rarity", p1108)
end)
v4904(t216.value, v4539)
v4904(t216.autoIndex, v4737)
v4904(t216.scrambleBuy, v4564)
v4904(t216.scrambleBuyList, v4565)
v4904(t216.bloomAutoNet, function(p1109)
senaV4Config.ButterflyAutoNet = p1109 == true
end)
v4904(t216.bloomAutoCatch, function(p1110)
senaV4Config.ButterflyAutoCatch = p1110 == true
end)
v4904(t216.bloomEsp, function(p1111)
senaV4Config.ButterflyEsp = p1111 == true
end)
v4904(t216.bloomAutoTrade, function(p1112)
senaV4Config.ButterflyAutoTrade = p1112 == true
end)
v4904(t216.bloomAutoCraft, function(p1113)
senaV4Config.ButterflyAutoCraft = p1113 == true
end)
v4904(t216.bloomTiers, function(p1114)
local __SenaV4ButterflyRuntime = genv.__SenaV4ButterflyRuntime
if __SenaV4ButterflyRuntime then
__SenaV4ButterflyRuntime.setTiers(v4320(p1114))
end
end)
v4904(t216.bloomRecipe, function(p1115)
local __SenaV4ButterflyRuntime = genv.__SenaV4ButterflyRuntime
if __SenaV4ButterflyRuntime then
__SenaV4ButterflyRuntime.setRecipe(p1115)
end
end)
v4904(t216.bloomMode, function(p1116)
local __SenaV4ButterflyRuntime = genv.__SenaV4ButterflyRuntime
if __SenaV4ButterflyRuntime then
__SenaV4ButterflyRuntime.setMode(p1116)
end
end)
v4904(t216.noclip, v4560)
v4904(t216.bottingMode, v4561)
v4904(t216.antiCutscene, v4562)
v4904(t216.waypoint, function(p1117)
u4745 = p1117
end)
v4904(t216.autoFavorite, v4548)
v4904(t216.favoriteRule, v4549)
v4904(t216.favoriteRarities, v4550)
v4904(t216.favoriteSpecies, v4551)
v4904(t216.autoFuse, v4556)
v4904(t216.fuseRule, v4557)
v4904(t216.fuseRarities, v4558)
v4904(t216.fuseSpecies, v4559)
v4904(t216.autoEquipBest, v4552)
v4904(t216.autoClaimOffline, v4553)
v4904(t216.autoBaseUpgrade, v4554)
v4904(t216.autoClaimAlmanac, v4555)
v4904(t216.mutations, v4540)
v4904(t216.weight, v4541)
v4904(t216.priority, v4542)
v4904(t216.eggEsp, v4543)
v4904(t216.espDetails, v4544)
v4904(t216.backpackRates, v4546)
v4904(t216.antiGuardKnockback, v4547)
v4904(t216.placeRarity, function(p1118)
senaV4Config.PlaceRarities = v4320(p1118)
end)
v4904(v4519, function(p1119)
senaV4Config.SellNames = v4320(p1119)
end)
v4904(v4520, function(p1120)
senaV4Config.SellRarities = v4320(p1120)
end)
v4904(v4521, function(p1121)
senaV4Config.SellEggRarities = v4320(p1121)
end)
v4904(t216.sellPetValue, v4576)
v4904(t216.sellEggValue, v4577)
v4904(t216.godMode, v4528)
v4904(t216.antiAfk, v4727)
v4904(t216.autoReconnect, v4728)
v4904(t216.autoExecute, v4729)
v4904(t216.antiHitGuard, v4726)
v4904(t216.flyForCapture, v4722)
v4904(t216.autoStealCapture, v4724)
v4904(t216.instantGrab, v4723)
v4904(t216.infiniteJump, v4725)
v4904(t216.uncapFps, v4720)
v4904(t216.startupBoost, v4717)
v4904(t216.autoPlace, v4566)
v4904(t216.autoHatch, v4567)
v4904(t216.mutationChoice, v4570)
v4904(t216.mutationSpecies, v4571)
v4904(t216.mutationRarity, v4572)
v4904(t216.mutationRetry, v4573)
v4904(t216.autoMutation, v4568)
v4904(t216.autoRingEvent, v4569)
v4904(t216.autoSell, v4574)
v4904(t216.autoSellEgg, v4575)
v4904(t216.stealPlayerRarities, v4735)
v4904(t216.stealPlayerValue, v4736)
v4904(t216.webhookUrl, v4739)
v4904(t216.webhookRarities, v4740)
v4904(t216.webhookValue, v4741)
v4904(t216.webhookEnabled, v4738)
v4904(t216.helpFriend, function(p1122)
senaV4Config.HelpFriend = p1122 == true
end)
v4904(t216.autoSteal, v4526)
v4904(t216.stealPlayers, v4734)
end
do
genv.__SenaV4HubShutdown = function()
if __SenaV4PlayerSteal then
pcall(__SenaV4PlayerSteal.setEnabled, __SenaV4PlayerSteal, false)
end
for _, v in ipairs({
"AutoSteal",
"AutoPlace",
"AutoHatch",
"AutoMutation",
"AutoRingEvent",
"AutoSell",
"AutoSellEgg",
"StealPlayers",
"ScrambleBossAuto",
"ButterflyAutoCatch",
"ButterflyAutoNet",
"ButterflyAutoTrade",
"ButterflyAutoCraft"
}) do
senaV4Config[v] = false
end
if v612 then
pcall(v612.setEnabled, v612, false)
end
end
end
end
v4315()
end