Skip to content

Permissions

Info Hub permissions are split between hardcoded ks.info.* nodes (commands) and config-driven nodes that admins choose freely (sections, categories, filter bypass).

PermissionCommandDefault
ks.info.user.use/ksinfo, /ksinfoitem✅ allowed
ks.info.admin/ksinfoadmin (panel + reload + every admin subcommand)❌ staff only

ks.info.admin covers every /ksinfoadmin subcommand — canGeneratePermission() = false on the parent collection means each subcommand doesn’t register its own node.


Admins can gate sections and categories by specifying arbitrary permission strings in config.json / categories.json. These are not hardcoded — the mod just calls hasPermission() with whatever value you set. Historical convention uses infohub.* prefixes, but any node name works.

"sections": {
"commands": { "permission": null, "enabled": true },
"admin-tools": { "permission": "infohub.section.admin", "enabled": true }
}
SettingEffect
nullPublic — every player sees the section
"<permission>"Only players with this node see it

Command Categories (commands/categories.json)

Section titled “Command Categories (commands/categories.json)”
{
"id": "admin",
"name": "Administration",
"permission": "infohub.category.admin",
"commands": ["ban", "kick", "mute"]
}

Players without the permission don’t see the category or its commands in the browser.

Any player with the permission string you set in config.commandFilterBypassPermission (default: infohub.bypass.commandfilter) can execute commands that the filter would normally hide. Rename it to anything — e.g. staff.bypass.info — and grant only to trusted roles.


"sections": {
"staff-tools": {
"icon": "Deco_CommandBlock",
"priority": 10,
"permission": "infohub.staff",
"enabled": true
}
}
{
"id": "vip-info",
"name": "VIP Information",
"icon": "Ore_Diamond",
"permission": "infohub.vip",
"questions": [...]
}
{
"id": "admin",
"name": "Admin Commands",
"permission": "infohub.admin",
"commands": ["ban", "kick", "mute", "warn", "jail"]
}

Terminal window
# Core admin access
/lp user Steve permission set ks.info.admin true
# Section/category access for a staff group
/lp group staff permission set infohub.section.staff true
/lp group staff permission set infohub.category.moderation true
# Grant filter bypass
/lp user Steve permission set infohub.bypass.commandfilter true
# Revoke default /ksinfo from a group (rarely useful)
/lp group default permission set ks.info.user.use false

Owner
└── ks.info.admin
└── infohub.bypass.commandfilter
Admin
└── ks.info.admin
└── infohub.section.admin
Moderator
└── infohub.category.moderation
Default
└── ks.info.user.use (default-allowed — no setup needed)

The old infohub.admin and infohub.admin.reload permissions are no longer checked by command gates. Grant ks.info.admin instead. Section and category permission strings are untouched (user-authored).