Skip to content
shmitzas edited this page Nov 12, 2026 · 2 revisions

Menus

Everything is in one menu: !vip. !vip_manage and !gunmenu open a page of it.


Tree

VIP                        !vip
├─ Perks                     your features, each with what it gives       (VIPs)
├─ Customize                 the choices features offer                   (VIPs, with VIP_Fov or VIP_Tag)
├─ Gun menu                  a free loadout                               !gunmenu      (VIP_GunMenu)
├─ VIP users (N)             every VIP this server sees                   !vip_manage   (vipcore.manage)
│  ├─ All (N)
│  └─ <group> (N)            the VIPs holding that group
└─ Grant VIP                 player, then group, length and scope         (vipcore.manage)

A row appears only for players who can use it. Module pages sit after Customize.


Perks

The features the player's group grants, in the order its Values names them — VIP Groups.

Row Shows
A feature that switches Name, a line on what it gives, and on or off. Select to switch
A feature with choices Name and the choice in use, such as Field of View [110]. Select to open its choices

Choices are kept with Cookies, so they survive a rejoin.


Customize

Row Shows
A feature's name Heading over its choices
A choice The choice and a line on it. The one in use ends in *

VIP users

All (N) lists every VIP; <group> (N) the VIPs holding that group. A page leads with the selected VIP's grants — the first VIP's when it opens — then lists the VIPs.

Row Shows
<group> (<scope>) - until <date> One of the selected VIP's grants, or Permanent. Select to show its controls
+1 day, +1 week, +1 month, +3 months, +1 year Extend that grant. Off for a permanent grant
Make permanent
Remove Remove that grant
Add group Open Grant VIP for this player, at the group step
Remove all Remove all the player's grants
<name> - <groups>, <expiry> A VIP. Select to show their grants

A month is 30 days, a year 365. Every action is checked against vipcore.manage again.


Grant VIP

One choice a page. Selecting a row opens the next page; Back returns to the one before.

Page Title Rows
Player Grant VIP The players online, by name. Bots are left out
Group Group for <player> The configured groups, lightest first
Length <group> for <player> The lengths, then Permanent
Scope <group> for <player>, <length> This server, All servers. Selecting one grants the VIP — Database

After a grant, the menu returns to the player list, or to VIP users when it started from Add group. An offline player who already holds VIP is reached through Add group on VIP users; anyone else offline, with !vip_adduser or !vip_addglobal.

The lengths follow TimeMode:

TimeMode Lengths
0 1 hour, 1 day, 1 week, 1 month, 3 months, 1 year
1 30 minutes, 1 hour, 2 hours, 1 day, 1 week, 1 month
2 1 hour, 2 hours, 6 hours, 12 hours, 1 day, 1 week, 1 month
3 1 day, 1 week, 2 weeks, 1 month, 3 months, 1 year

Keys

Defaults: Shift up, F down, E select, Tab close.

Change them in SwiftlyS2's configs/menus/menus.jsonc (template: menus.example.jsonc), not in any VIPCore file:

Block Applies to
"core.menu" Every menu
A menu id, such as "vipcore.perks" That menu

VIPCore's ids: vipcore.hub, vipcore.perks, vipcore.customize, vipcore.users, vipcore.users.list, vipcore.users.list.<group>, vipcore.grant, vipcore.grant.group, vipcore.grant.length, vipcore.grant.scope. VIP_GunMenu's page is vipcore.gun-menu.

Keys work with the Buttons input method. With Chat, players type !1, !2, …


Freezing

FreezeMenu freezes a player on the VIP menu, Perks and Customize; FreezeAdminMenu on VIP users and Grant VIP. Module pages don't freeze.


For module authors

Add choices to Customize with RegisterFeatureOptions, or a page of your own with RegisterMenuPage — see API Integration.

Clone this wiki locally