Roblox Hypersuite Logo Roblox Hypersuite (official page)

Roblox Hypersuite Logo

Custom Script System

Create and import your own custom macros using Lua scripts.

Introduction


Roblox Hypersuite allows you to create custom macros using Lua scripts (.hss files). These scripts can automate keyboard inputs, mouse movements, control Roblox process state, and even manipulate network conditions.

Scripts are saved and persist across program restarts. You can assign keybinds to trigger them and enable/disable them just like built-in macros.

Warning: Only import scripts from sources you trust! Scripts have access to keyboard/mouse simulation, process control, and network manipulation.

Creating Scripts


Scripts are plain text files with the .hss extension. They use standard Lua syntax with additional Hypersuite-specific functions.

Every script must have an onExecute() function. This is called when the script's keybind is pressed or when executed manually.

-- @name: My Custom Macro
-- @desc: A simple example script
-- @author: YourName
-- @version: 1.0
-- @keybind: F5

function onExecute()
    log("Script executed!")
    pressKey("Space")
    sleep(100)
end

Script Metadata


Add metadata at the top of your script using special comments. These are displayed in the UI and provide information about your script.

Tag Description
-- @name: Display name shown in the macro list
-- @desc: or -- @description: Description shown in the right panel
-- @author: Script creator's name
-- @version: Version number
-- @keybind: Default keybind (e.g., "F5" or "LCtrl+K")

Importing Scripts


Method 1: Import Button

Click the + Import script button at the bottom of the macro list. Select your .hss file from the file browser.

Method 2: Scripts Folder

Place your .hss files in the scripts/ folder in the same directory as the executable. They will be automatically loaded on startup.

Managing Scripts

Lua API Reference


Keyboard Functions

Function Description
pressKey(key, delay) Press and release a key. Optional delay in milliseconds (default: 50ms)
holdKey(key) Press and hold a key down
releaseKey(key) Release a held key
isKeyPressed(key) Returns true if the key is currently pressed
typeText(text, delay) Type a string of text. Optional delay between chars (default: 30ms)
waitForKey(timeout) Wait for any key press. Returns key name or nil on timeout (ms)
getKeyName(key) Get the display name of a key

Mouse Functions

Function Description
moveMouse(dx, dy) Move mouse relative to current position

Process Control

Function Description
robloxFreeze(enable) Freeze or unfreeze the Roblox process. Pass true to freeze, false to unfreeze

Network Control (Advanced)

Function Description
lagSwitchMan(enable, packet_loss, ping_lag) Control network lag simulation. Parameters:
enable (boolean) - Enable or disable lag
packet_loss (number) - Packet loss percentage (0-100)
ping_lag (number) - Additional ping in milliseconds

Utility Functions

Function Description
sleep(ms) Pause script execution for specified milliseconds
log(message) Print a message to the console (prefixed with [HSS])
clear() Clear the console screen

Global Variables

Variable Description
HSPlayerName Current Roblox username
HSPlayerDisplayName Current Roblox display name

Supported Key Names

Letters: A-Z | Numbers: 0-9 | Function: F1-F12

Special: Space, Enter, Tab, Escape, Backspace, Delete, Insert

Arrows: Left, Right, Up, Down

Modifiers: LShift, RShift, LCtrl, RCtrl, LAlt, RAlt

Mouse: LMB, RMB, MMB, Mouse4, Mouse5

Navigation: Home, End, PageUp, PageDown

Numpad: Numpad0-Numpad9

Symbols: [, ], /, ;, -, =, \, ', ,, ., `

Examples


Simple Jump Spam

-- @name: Jump Spam
-- @desc: Rapidly presses space bar 10 times
-- @author: Example
-- @version: 1.0
-- @keybind: F6

function onExecute()
    for i = 1, 10 do
        pressKey("Space", 50)
        sleep(50)
    end
    log("Jump spam complete!")
end

Auto Chat Message

-- @name: Quick Chat
-- @desc: Types a predefined message in chat
-- @author: Example
-- @version: 1.0
-- @keybind: F7

function onExecute()
    pressKey("Slash")
    sleep(100)
    typeText("Hello everyone from " .. HSPlayerDisplayName .. "!")
    sleep(50)
    pressKey("Enter")
end

Freeze Glitch Helper

-- @name: Quick Freeze
-- @desc: Freezes Roblox for 200ms then unfreezes
-- @author: Example
-- @version: 1.0
-- @keybind: F8

function onExecute()
    log("Freezing...")
    robloxFreeze(true)
    sleep(200)
    robloxFreeze(false)
    log("Unfreezed!")
end

Lag Switch

-- @name: Lag Toggle
-- @desc: Toggle network lag simulation
-- @author: Example
-- @version: 1.0
-- @keybind: F9

local lagEnabled = false

function onExecute()
    lagEnabled = not lagEnabled

    if lagEnabled then
        lagSwitchMan(true, 30, 200)  -- 30% packet loss, +200ms ping
        log("Lag enabled!")
    else
        lagSwitchMan(false, 0, 0)
        log("Lag disabled!")
    end
end

Advanced: Combo Sequence

-- @name: Combat Combo
-- @desc: Executes a combat combo with precise timing
-- @author: Example
-- @version: 1.0
-- @keybind: LCtrl+Q

function onExecute()
    log("Starting combo...")

    -- Attack 1
    pressKey("LMB", 50)
    sleep(150)

    -- Jump cancel
    pressKey("Space", 50)
    sleep(100)

    -- Attack 2
    pressKey("LMB", 50)
    sleep(150)

    -- Special move
    pressKey("E", 50)

    log("Combo complete!")
end

Interactive Script

-- @name: Key Tester
-- @desc: Wait for a key press and display its name
-- @author: Example
-- @version: 1.0

function onExecute()
    log("Press any key within 5 seconds...")

    local key = waitForKey(5000)  -- 5 second timeout

    if key then
        log("You pressed: " .. key)
    else
        log("Timeout - no key pressed")
    end
end

Need help? Join the community or check the GitHub repository for more examples and support.