local Result = nil local NUI_status = false local DefaultSettings = { settings = { handleEnd = true; --Send a result message if true and callback when message closed or callback immediately without showing the message speed = 10; --pixels / second scoreWin = 1000; --Score to win scoreLose = -150; --Lose if this score is reached maxTime = 60000; --sec maxMistake = 5; --How many missed keys can there be before losing speedIncrement = 1; --How much should the speed increase when a key hit was successful }, keys = {"a", "w", "d", "s", "g"}; --You can hash this out if you want to use default keys in the java side. } function StartKeyMaster(settings) Result = nil if settings == nil then settings = DefaultSettings end NUI_status = true SendNUIMessage({ action = 'start', settings = settings.settings, keys = settings.keys, }) while NUI_status do Wait(5) SetNuiFocus(NUI_status, NUI_status) end Wait(100) SetNuiFocus(false, false) return Result end RegisterNUICallback('success', function() Result = true Wait(100) NUI_status = false end) RegisterNUICallback('fail', function() Result = false Wait(100) NUI_status = false end) RegisterCommand('keymaster', function() --TEST COMMAND local CustomSettings = { settings = { handleEnd = true; --Send a result message if true and callback when message closed or callback immediately without showing the message speed = 10; --pixels / second scoreWin = 1000; --Score to win scoreLose = -150; --Lose if this score is reached maxTime = 60000; --sec maxMistake = 5; --How many missed keys can there be before losing speedIncrement = 1; --How much should the speed increase when a key hit was successful }, --keys = {"a", "w", "d", "s", "g"}; --You can keep this hashed out if you want to use default keys in the java side. } StartKeyMaster(CustomSettings) end)