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 = trueProp
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
endHideHud 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. /ticketsopens 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 })
endReplace 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).
Social links
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: returnstruewhile 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.