-- ModuleScript State (via bytefall decompiler) -- Decompiled using ByteFall -- discord.gg/pHTnqmmWzk state = {} function state.get(p1) return p1.value end function state.set(p2, p3, ...) if p2.inc then return end if p2.paused then return end local value = p2.value p2.value = p3 if p3 == value then return end for _, v in pairs(p2.hooks) do task.spawn(v.func, p3, value, ...) end end function state.set_instant(p4, p5, ...) if p4.inc then return end if p4.paused then return end local value = p4.value p4.value = p5 if p5 == value then return end for _, v in pairs(p4.hooks) do v.func(p5, value, ...) end end function state.set_record(p6, p7, ...) local value = p6.value p6.value = p7 if p6.cached_value == nil then p6.cached_value = if value == nil then "nil" else value end if value == p7 then return end for _, v in pairs(p6.hooks) do if not v.dont_replicate then task.spawn(v.func, p7, value, ...) end end end function state.set_no_replication(p8, p9, ...) if p8.rec then return end if p8.paused then p8.cached_value = if p9 == nil then "nil" else p9 return end local value = p8.value p8.value = p9 if p9 == value then return end for _, v in pairs(p8.hooks) do if not v.dont_replicate then task.spawn(v.func, p9, value, ...) end end end function state.update(p10, p11, ...) if p10.inc and p11 then return end if p10.paused then return end local value = p10.value local v25 = value if p11 then v25 = p11(p10.value) if v25 == nil then return end p10.value = v25 if value == v25 and typeof(v25) ~= "table" then return end end for _, v in pairs(p10.hooks) do if not v.dont_replicate or p11 ~= nil then task.spawn(v.func, v25, value, ...) end end end function state.hook(p12, p13, p14) local u31 = nil u31 = { state = p12, func = p13, dont_replicate = p14, unhook = function() local v63 = table.find(p12.hooks, u31) if v63 then table.remove(p12.hooks, v63) end end } table.insert(p12.hooks, u31) if not p14 then local v32 = p12:get() task.spawn(p13, v32, v32) end return u31 end function state.wait(p15, p16) local v35 = p16 or 30 local value = p15.value repeat if value ~= p15.value then break end local v37 = task.wait() v35 -= v37 until v35 <= 0 end function state.set_paused(p17, p18) local paused = p17.paused p17.paused = p18 if paused and not p18 and p17.cached_value ~= nil then if p17.cached_value == "nil" then p17:set_record() else p17:set_record(p17.cached_value) end p17.cached_value = nil end end dependency = {} function dependency.get(p20) return p20.value end function dependency.hook(p21, p22, p23) local u45 = nil u45 = { func = p22, dont_replicate = p23, unhook = function() local v64 = table.find(p21.hooks, u45) if v64 then table.remove(p21.hooks, v64) end end } table.insert(p21.hooks, u45) if not p23 then local v46 = p21:get() task.spawn(p22, v46, v46) end return u45 end function dependency.wait(p24, p25) local v49 = p25 or 30 local value = p24.value repeat if value ~= p24.value then break end local v51 = task.wait() v49 -= v51 until v49 <= 0 end function unpack_states(p26) local t1: {[any]: any} = {} for iterFirst, iterSecond in p26 do t1[iterFirst] = iterSecond:get() end return table.unpack(t1, 1, #p26) end return { new = function(p19) return (setmetatable({ value = p19, hooks = {}, cached_value = nil, paused = false }, { __index = state })) end, state = state, dependency = function(p27, p28) local t2: {[any]: any} = {} local t3: {[any]: any} = { value = p28(unpack_states(p27)), func = p28, hooks = {}, unhook = function() for key, value in t2 do value.unhook() end end } for iterFirst, iterSecond in p27 do table.insert(t2, iterSecond:hook(function(p29, p30) if not iterSecond.fire and p29 == p30 then return end local value = t3.value t3.value = p28(unpack_states(p27)) if t3.value == value then return end for _, v in pairs(t3.hooks) do task.spawn(v.func, t3.value, value) end end)) end return (setmetatable(t3, { __index = dependency })) end }