For all support questions, ask in our Discord support chat. Do not create issues on GitHub if you need help. Issues are for bug reporting and new features only.
- Download ZIP
- Drag and drop resource into your server files
- Start resource through server.cfg
- Restart your server.
- Check exports below.
- Each interface lua has all the details you need.
Start a Number Maze game with a callback for success or failure.
exports['ps-ui']:Maze(function(success)
if success then
print("success")
else
print("fail")
end
end, timeLimit) -- Hack Time Limit in seconds
![Number Maze](https://private-user-images.githubusercontent.com/82112471/361937419-c75772bf-a4c9-4b0e-9678-a916bcdb5f3a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5Mzc0MTktYzc1NzcyYmYtYTRjOS00YjBlLTk2NzgtYTkxNmJjZGI1ZjNhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY1Y2VkMjBlNTY3MGU2OWZlOWM2NGY1YjVlNzM3OTZkNmNlNmI3NzM1NGYwMTA2YmJlZDk1NDA5ZTg1N2I0NjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.8sv8KGbGOfQNARQb4qiY6kPQ3v761FgRyy9V1kVh9nc)
Display a notification with text, type, and duration.
exports['ps-ui']:Notify('Your message', 'notification-type', duration)
![Number Maze](https://private-user-images.githubusercontent.com/82112471/361937906-e8bfeb42-0459-4630-88db-938a83f14db9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5Mzc5MDYtZThiZmViNDItMDQ1OS00NjMwLTg4ZGItOTM4YTgzZjE0ZGI5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlhODEyZDk4NDA5Nzc0ZmZjNDgxZjYzOWU2Njk0NGNmOWEzYzYzMTJkYzk0NjZhZmJlMDE3YjMwMzYxOWVmMTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.OoIYA1q132Bs7iZ9Qax50be1B36eLWjeMXd4Z_bWnZM)
Start a Circle game with a callback for success or failure.
exports['ps-ui']:Circle(function(success)
if success then
print("success")
else
print("fail")
end
end, numCircles, time) -- Number of Circles, Time in milliseconds
![Number Maze](https://private-user-images.githubusercontent.com/82112471/361937984-a22280ce-d0d8-4b52-b24e-84e27dfac65e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5Mzc5ODQtYTIyMjgwY2UtZDBkOC00YjUyLWIyNGUtODRlMjdkZmFjNjVlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUyMWY3OWI3NTU5MjZhOGNjNDZmYTczZTk4ZjI4YmRiNGM4ZThmNmQyMWZiZmQ3YjRjMTQzNmE2ZjU2NTU2NDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Vi3QQqqMCFAkHMnaNdsc6FbNbwl-658BUfFpO_bPBFs)
Start a Scrambler game with a callback for success or failure.
exports['ps-ui']:Scrambler(function(success)
if success then
print("success")
else
print("fail")
end
end, type, time, mirrored) -- Type options: alphabet, numeric, alphanumeric, greek, braille, runes; Time in seconds; Mirrored options: 0, 1, 2
![Scrambler](https://private-user-images.githubusercontent.com/82112471/361938055-b667785f-3901-46bd-883b-6de8473175c7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5MzgwNTUtYjY2Nzc4NWYtMzkwMS00NmJkLTg4M2ItNmRlODQ3MzE3NWM3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMzMjVmYWE3NDgyODdkMzg4ZDdiNWM5MmQyZWY5MmI2MjE1Y2RlMDcxOTM4NmYzMDA4MWVmMGE2ZDc3NTJiNTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.oImoGpvSAI-HHu6eJdEmcWJKK1OKdKB1wkFFEbB4m4U)
Start a VAR Hack game with a callback for success or failure.
exports['ps-ui']:VarHack(function(success)
if success then
print("success")
else
print("fail")
end
end, numBlocks, time) -- Number of Blocks, Time in seconds
![Var](https://private-user-images.githubusercontent.com/82112471/361938140-5f914e19-28cf-44f0-a675-24551c564259.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5MzgxNDAtNWY5MTRlMTktMjhjZi00NGYwLWE2NzUtMjQ1NTFjNTY0MjU5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE1ZWQ0ZmYwYTIxZTI2ZDAxZDgzMWQ1ZDhiNWE5ZWRhYTEwMjY4NWRlZmFmYzg1NmQ5MDIxZGQ0YmYwMzhiZGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XxvBiSnDcE3yWWp2tfOKcy-AH22FF8XkG1DA1fkoTLs)
Start a Thermite game with a callback for success or failure.
exports['ps-ui']:Thermite(function(success)
if success then
print("success")
else
print("fail")
end
end, time, gridSize, incorrectBlocks) -- Time in seconds, Grid Size (5-10), Incorrect Blocks
![Thermite](https://private-user-images.githubusercontent.com/82112471/361938195-57ab24fc-fd64-4286-9f0e-b7b4685bd45b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5MzgxOTUtNTdhYjI0ZmMtZmQ2NC00Mjg2LTlmMGUtYjdiNDY4NWJkNDViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgyNTZmYTZjODhlYWJlYmNkYTlkMzc5NzRjOWJjYTQxYjc1NzY4NzcyZTY2ZDllMjVjMmFkYWQxNzFmZmYzNWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.CtREQiBalqAsoMU2muBF-79bQ4RzFj3amr-jS1DOIOo)
Create a menu with submenus and events.
exports['ps-ui']:CreateMenu({
{
id = "examplemenu", -- has to be unique
header = "Menu Header",
text = "Menu Text",
icon = "icon-class",
color = "color",
event = "event-name",
args = {arg1, arg2},
server = false,
subMenu = {
{
id = "examplesubmenu", -- has to be unique
header = 'Submenu Header',
icon = 'icon-class',
color = 'color',
event = "event-name",
args = {arg1, arg2},
},
},
},
})
Hide the currently displayed menu
exports['ps-ui']:HideMenu()
![Context Menu](https://private-user-images.githubusercontent.com/82112471/361938261-a0c09553-599b-4a1a-bdf2-cc5216c2f06b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5MzgyNjEtYTBjMDk1NTMtNTk5Yi00YTFhLWJkZjItY2M1MjE2YzJmMDZiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFiNmJkNWQyM2Y4MTc1NjQyOTgxNGZlZjhlNjU1YmQ1Yjg0ZGIyZGYwNzRlODU2YjU4ZGM4NWU1ZjI0ZjllZWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.lRcHL-9_KEZss3gKaxqBUzsL_ni8TEv2uUjMhh_OQJc)
exports['ps-ui']:StatusShow("Title", "Description", "icon",
{
{key = "Key1", value = "Value1"},
{key = "Key2", value = "Value2"},
{key = "Key3", value = "Value3"}
})
![Status](https://private-user-images.githubusercontent.com/82112471/361938338-12cd55f8-33e9-4f5f-975d-66a4881ce7fd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5MzgzMzgtMTJjZDU1ZjgtMzNlOS00ZjVmLTk3NWQtNjZhNDg4MWNlN2ZkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ1YmY2ZDg1NjBiNGU5MmQ2YWZjZGExZmVlZDUyZjNjN2U3YTMzYWFhYTM0YjVhNmEwNmQzNzc3NmU4Y2QwNGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.k-p3AsQ2DDzsW_v2iKexh5Biv0s3iRU4pf4ZPlEHXi4)
Display text with a specified color
exports['ps-ui']:DisplayText("Your text", "color")
Hide the currently displayed text
exports['ps-ui']:HideText()
![Show Text](https://private-user-images.githubusercontent.com/82112471/361938811-64690b39-3d86-4056-96ec-0e325b545575.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5Mzg4MTEtNjQ2OTBiMzktM2Q4Ni00MDU2LTk2ZWMtMGUzMjViNTQ1NTc1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjODM4ZDdjMTRjZDhmOWFkNTk4MDU3OWVjMThmN2ZhYTkzMDhiOWU3MDY5MWFhODI3ZmI4NDJlODI4Yzc1YTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.txVGqwH7cIx6TQXY5xw4kBcLaPBIKYALRA0tZS9r8UU)
Display an input form and print the input values.
local input = exports['ps-ui']:Input({
{
id = '1',
label = 'Label',
type = "input-type",
icon = "icon-class"
},
-- Add more inputs as needed
})
for k, v in pairs(input) do
print(k, v.id, v.value)
end
![Input](https://private-user-images.githubusercontent.com/82112471/361938514-c0dce6ca-c025-4c19-99b2-7ad137e61273.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5Mzg1MTQtYzBkY2U2Y2EtYzAyNS00YzE5LTk5YjItN2FkMTM3ZTYxMjczLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTExNTg4NjkxMDRiZTVkOGY5MDQxYjJlNjY5NzhjZGFkMjc2ZWMwNzM2ZjkyYzMyMDAzOTliNmJjNTE5MjBiNDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-LVwLR_iifn5nP-fyOajtOgJfmnEWrFjZg-x_7FOuSA)
Displays an image from a URL.
exports['ps-ui']:ShowImage("imageURL")
![Show Image](https://private-user-images.githubusercontent.com/82112471/361938598-646d2f48-3e36-414c-8cd4-3323832c30f0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NzE0NzgsIm5iZiI6MTczODg3MTE3OCwicGF0aCI6Ii84MjExMjQ3MS8zNjE5Mzg1OTgtNjQ2ZDJmNDgtM2UzNi00MTRjLThjZDQtMzMyMzgzMmMzMGYwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDE5NDYxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJhNmYwNGIxNzc2NDhlMTY1ZTBkOGMwYmI1YTc1OTlkZDM5Nzg2Zjg2NjQ2MTViMTVkYzM5OWM0YWJkODQ1M2QmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.G9RJeS7a4VnBS6ZtDS-ppXycoaqelh1AxS8KAi6Fve4)
- complexza
- MonkeyWhisper
- Snipe
- Skeleton Networks
- Project Sloth Team