-- Compiled with roblox-ts v3.0.0 local TS = _G[script] local UserInputService = TS.import(script, TS.getModule(script, "@rbxts", "services")).UserInputService local _vide = TS.import(script, TS.getModule(script, "@rbxts", "vide").src) local Vide = _vide local derive = _vide.derive local _components = TS.import(script, script.Parent.Parent, "components") local Suggestions = _components.Suggestions local Terminal = _components.Terminal local Group = TS.import(script, script.Parent.Parent, "components", "ui", "group").Group local Layer = TS.import(script, script.Parent.Parent, "components", "ui", "layer").Layer local useClient = TS.import(script, script.Parent.Parent, "hooks", "use-client").useClient local useEvent = TS.import(script, script.Parent.Parent, "hooks", "use-event").useEvent local _use_px = TS.import(script, script.Parent.Parent, "hooks", "use-px") local px = _use_px.px local usePx = _use_px.usePx local _store = TS.import(script, script.Parent.Parent, "store") local mouseOverInterface = _store.mouseOverInterface local options = _store.options local visible = _store.visible local MOUSE_INPUT_TYPES = { [Enum.UserInputType.MouseButton1] = true, [Enum.UserInputType.MouseButton2] = true, [Enum.UserInputType.Touch] = true, } local function CenturionApp(client) useClient(client) usePx() local validKeys = derive(function() local _set = {} for _, _v in options().activationKeys do _set[_v] = true end return _set end) useEvent(UserInputService.InputBegan, function(input, gameProcessed) local _exp = validKeys() local _keyCode = input.KeyCode local _condition = _exp[_keyCode] ~= nil if _condition then _condition = not gameProcessed end if _condition then visible(not visible()) else local _condition_1 = options().hideOnLostFocus if _condition_1 then local _userInputType = input.UserInputType _condition_1 = MOUSE_INPUT_TYPES[_userInputType] ~= nil if _condition_1 then _condition_1 = not mouseOverInterface() end end if _condition_1 then visible(false) end end end) return Vide.jsx(Layer, { name = "Centurion", displayOrder = function() return options().displayOrder end, visible = visible, }, Vide.jsx(Group, { anchor = function() return options().anchor end, size = function() local size = options().size return if typeof(size) == "UDim2" then size else size(px) end, position = function() local position = options().position return if typeof(position) == "UDim2" then position else position(px) end, }, Vide.jsx(Terminal), Vide.jsx(Suggestions), Vide.jsx("uilistlayout", { Padding = function() return UDim.new(0, px(8)) end, SortOrder = "LayoutOrder", }))) end return { CenturionApp = CenturionApp, }