-- Compiled with roblox-ts v3.0.0 -- this is 100% not copied from gamejoy local keyCodeAliases = { ["0"] = "Zero", ["1"] = "One", ["2"] = "Two", ["3"] = "Three", ["4"] = "Four", ["5"] = "Five", ["6"] = "Six", ["7"] = "Seven", ["8"] = "Eight", ["9"] = "Nine", a = "A", b = "B", c = "C", d = "D", e = "E", f = "F", g = "G", h = "H", i = "I", j = "J", k = "K", l = "L", m = "M", n = "N", o = "O", p = "P", q = "Q", r = "R", s = "S", t = "T", u = "U", v = "V", w = "W", x = "X", y = "Y", z = "Z", Numpad0 = "KeypadZero", Numpad1 = "KeypadOne", Numpad2 = "KeypadTwo", Numpad3 = "KeypadThree", Numpad4 = "KeypadFour", Numpad5 = "KeypadFive", Numpad6 = "KeypadSix", Numpad7 = "KeypadSeven", Numpad8 = "KeypadEight", Numpad9 = "KeypadNine", L1 = "ButtonL1", R1 = "ButtonR1", L2 = "ButtonL2", R2 = "ButtonR2", L3 = "ButtonL3", R3 = "ButtonR3", LeftCtrl = "LeftControl", RightCtrl = "RightControl", } local gamepadInputs = { Enum.UserInputType.Gamepad1, Enum.UserInputType.Gamepad2, Enum.UserInputType.Gamepad3, Enum.UserInputType.Gamepad4, Enum.UserInputType.Gamepad5, Enum.UserInputType.Gamepad6, Enum.UserInputType.Gamepad7, Enum.UserInputType.Gamepad8 } local function getInputEnum(rawInput) local unaliased = keyCodeAliases[rawInput] or rawInput local keyCodes = Enum.KeyCode:GetEnumItems() -- ▼ ReadonlyArray.some ▼ local _result = false local _callback = function(keyCode) return keyCode.Name == unaliased end for _k, _v in keyCodes do if _callback(_v, _k - 1, keyCodes) then _result = true break end end -- ▲ ReadonlyArray.some ▲ return if _result then Enum.KeyCode[unaliased] else Enum.UserInputType[unaliased] end local function getRawInputFromEnum(inputEnum) return inputEnum.Name end local function getRawInput(input) local _array = { Enum.UserInputType.Keyboard } local _length = #_array table.move(gamepadInputs, 1, #gamepadInputs, _length + 1, _array) local keyCodeInputTypes = _array local _userInputType = input.UserInputType return if table.find(keyCodeInputTypes, _userInputType) ~= nil then getRawInputFromEnum(input.KeyCode) else getRawInputFromEnum(input.UserInputType) end return { getInputEnum = getInputEnum, getRawInputFromEnum = getRawInputFromEnum, getRawInput = getRawInput, keyCodeAliases = keyCodeAliases, gamepadInputs = gamepadInputs, }