STG ScriptsDocumentation
Pause Menu V2

Configuration

Every option in STG Pause Menu V2, from the character preview and HUD hooks to ticket rules, announcements, social links, webhooks and exports.

Most settings live in stg-pausemenuv2/shared/config.lua, the Discord webhooks live in stg-pausemenuv2/webhook.lua. Both files stay editable in the escrow version. Restart the resource after a change.

Language

STG.Locale = 'en'

Available: en, de, fr, es, pt, it, nl, pl, sv, no, fi, ar, he, jp, zh. To change a text, edit the matching file in stg-pausemenuv2/locales/. The kick message shown after LOGOUT is the logoutKickMessage line.

Character preview

STG.EnablePointing = true
STG.ResetRotationOnPoint = true
STG.EnableMapAnimation = true

Prop

Type

HUD

STG.HideHud = function()
    if GetResourceState('stg-hud') == 'started' then
        exports['stg-hud']:hideHud()
    elseif GetResourceState('jg-hud') == 'started' then
        exports['jg-hud']:toggleHud(false)
    end
end

STG.ShowHud = function()
    if GetResourceState('stg-hud') == 'started' then
        exports['stg-hud']:showHud()
    elseif GetResourceState('jg-hud') == 'started' then
        exports['jg-hud']:toggleHud(true)
    end
end

HideHud runs when the menu opens and ShowHud when it closes. stg-hud and jg-hud work out of the box. For another HUD, add a branch that calls its own hide and show export.

Tickets

STG.TicketCooldown = 60
STG.TicketNotify = true

STG.TicketCategories = {
    "Bug Report",
    "Player Report",
    "Suggestion",
    "Other",
}

STG.AdminPermissions = { "admin", "superadmin" }

Prop

Type

How tickets work:

  • The TICKET button opens the new ticket form with a category, a message and an optional screenshot. If the player already has an open ticket, it opens their ticket list instead.
  • Every online admin gets a notification for a new ticket, and it is posted to TicketWebhook.
  • /tickets opens the ticket list. Admins see every ticket, players see the tickets they opened or were invited to. The list can be filtered by ALL, OPEN and CLOSED.
  • Admins can reply, INVITE PLAYER to add any online player to the conversation, and CLOSE TICKET. An admin who replies is added to the participants automatically.
  • To attach a screenshot, the player clicks the screenshot box, the phone camera opens, Enter takes the picture and Backspace cancels.

Tickets are kept in server memory. Restarting the resource or the server clears every ticket, so use TicketWebhook if you need a permanent record.

Notifications

STG.Notify = function(type, title, message)
    lib.notify({ type = type, title = title, description = message })
end

Replace the body to use your own notification system. type is inform, success, error or warning, and title is empty on most notifications. For example: exports['okokNotify']:Alert(title or 'Notice', message, 5000, type).

STG.Links = {
    { icon = "icon-media-discord.svg", url = "https://discord.gg/stg" },
    { icon = "icon-media-tiktok.svg",  url = "https://tiktok.com/@stg" },
    { icon = "icon-media-insta.svg",   url = "https://instagram.com/stgscripts" },
    { icon = "icon-media-x.svg",       url = "https://x.com/" },
    { icon = "icon-media-world.svg",   url = "https://stgscripts.com" },
}

Prop

Type

Icons appear in the order of the list. Add, remove or reorder entries freely.

Announcements

STG.Announcements = {
    {
        date  = '2026.03.27',
        title = 'WELCOME TO THE SERVER',
        text  = 'Welcome to STG Roleplay! We are glad to have you here. ...',
    },
    -- ...
}

Prop

Type

Announcements are shown in the order of the list, so put the newest one first.

Webhooks

ServerSettings = {
    TicketWebhook = "",
    ScreenshotWebhook = "",
}

This table lives in stg-pausemenuv2/webhook.lua, which only runs on the server.

Prop

Type

To upload a screenshot, the player's game needs the ScreenshotWebhook URL, so it is sent to the client. Use a separate webhook in a private channel for it, not the same one as TicketWebhook.

Logo and background

The menu uses two images you can replace with your own:

  • stg-pausemenuv2/shared/logo.png: the logo at the top of the menu.
  • stg-pausemenuv2/web/images/bg.png: the background behind the character preview, 1920 x 1080.

Keep the file names the same and restart the resource.

Exports

Client side exports for other resources:

exports['stg-pausemenuv2']:openPauseMenu()
exports['stg-pausemenuv2']:closePauseMenu()
local open = exports['stg-pausemenuv2']:isMenuOpen()
  • openPauseMenu: opens the menu, the same as pressing the key.
  • closePauseMenu: closes the menu if it is open.
  • isMenuOpen: returns true while the menu is open, for example to block your own keys.

Still having trouble?

Open a ticket on our Discord. Our team answers around 15 hours a day.

Get help on Discord

On this page