Custom Pages
The Custom Pages System allows server admins to create their own pages via JSON - no Java code required.
File: custom/pages.json
Supported Page Types
| Type | Description | Use Case |
|---|---|---|
TEXT | Simple text with color codes | Donation page, welcome text, announcements |
LIST | List with expandable entries | Changelog, news, updates |
FAQ_STYLE | Expandable questions & answers | Tips & tricks, extended FAQ |
GRID | Button grid (planned) | Quick links, categories |
Complete Example
{
"pages": [
{
"id": "changelog",
"title": "Server Changelog",
"icon": "Ore_Prisma",
"type": "LIST",
"showInHub": true,
"quickAccess": false,
"command": "changelog",
"commandAliases": ["updates", "news"],
"permission": "",
"priority": 10,
"entries": [
{
"title": "v1.2.0 - Big Update",
"subtitle": "2026-02-01",
"content": "&aAdded:&r New spawn area\n&eChanged:&r Economy balancing\n&cFixed:&r Login issues"
},
{
"title": "v1.1.0 - Quality of Life",
"subtitle": "2026-01-15",
"content": "&aAdded:&r /home command\n&cFixed:&r Various bugs"
}
]
},
{
"id": "donate",
"title": "Support Us",
"icon": "Ore_Gold",
"type": "TEXT",
"showInHub": true,
"quickAccess": true,
"priority": 20,
"content": "&6Thank you for supporting our server!&r\n\nYour donations help us:\n- Keep the server running 24/7\n- Add new features\n\n&bHow to donate:&r\nVisit &6store.example.com&r"
},
{
"id": "tips",
"title": "Tips & Tricks",
"icon": "Tool_Torch",
"type": "FAQ_STYLE",
"showInHub": true,
"command": "tips",
"priority": 30,
"entries": [
{
"title": "How do I get started?",
"content": "Visit &6/spawn&r and follow the tutorial path.",
"tags": ["beginner", "tutorial"]
},
{
"title": "How do I claim land?",
"content": "Use a &eGolden Shovel&r to create claims!",
"tags": ["claims", "protection"]
}
]
}
]
}
Configuration Fields
Page Object
| Field | Type | Required | Description |
|---|---|---|---|
id | String | Yes | Unique page identifier |
title | String | Yes | Display title |
icon | String | No | Item icon (e.g., Ore_Gold, Tool_Torch) |
type | Enum | Yes | TEXT, LIST, FAQ_STYLE, GRID |
showInHub | Boolean | No | Show on main page (default: true) |
quickAccess | Boolean | No | Show in Quick Access sidebar |
command | String | No | Register command (e.g., "changelog" → /changelog) |
commandAliases | String[] | No | Alternative commands |
permission | String | No | Permission required to view |
priority | Integer | No | Sort order (lower = higher up, default: 99) |
content | String | TEXT only | Text content with color codes |
entries | Array | LIST/FAQ | List of entries |
Entry Object (for LIST and FAQ_STYLE)
| Field | Type | Required | Description |
|---|---|---|---|
title | String | Yes | Entry title |
subtitle | String | No | Subtitle (e.g., date) |
content | String | Yes | Content with color codes |
icon | String | No | Item icon |
tags | String[] | No | Search keywords (FAQ_STYLE only) |
Page Types
TEXT Type
Simple text display with color code support. Perfect for static information.
{
"id": "welcome",
"title": "Welcome",
"icon": "Deco_Book",
"type": "TEXT",
"showInHub": true,
"content": "&6Welcome to our server!&r\n\nWe're glad you're here.\n\n&aEnjoy your stay!&r"
}
LIST Type
Expandable list with entries. Each entry has a title, optional subtitle, and collapsible content.
{
"id": "changelog",
"title": "Changelog",
"icon": "Ore_Prisma",
"type": "LIST",
"command": "changelog",
"entries": [
{
"title": "v1.2.0 - Major Update",
"subtitle": "2026-02-01",
"content": "&aNew features:&r\n- Feature 1\n- Feature 2"
}
]
}
FAQ_STYLE Type
Question and answer format with expandable answers. Supports tags for search filtering.
{
"id": "tips",
"title": "Tips & Tricks",
"icon": "Tool_Torch",
"type": "FAQ_STYLE",
"entries": [
{
"title": "How do I get started?",
"content": "Visit &6/spawn&r and follow the tutorial.",
"tags": ["beginner", "start"]
}
]
}
Color Codes
Minecraft-style color codes are supported in all text fields:
| Code | Color | Code | Color |
|---|---|---|---|
&0 | Black | &8 | Dark Gray |
&1 | Dark Blue | &9 | Blue |
&2 | Dark Green | &a | Green |
&3 | Dark Cyan | &b | Cyan |
&4 | Dark Red | &c | Red |
&5 | Purple | &d | Pink |
&6 | Gold | &e | Yellow |
&7 | Gray | &f | White |
&r | Reset (default color) |
Example: "&aAdded:&r New feature" → "Added:" in Green, "New feature" in default color
Main Page Display
Pages with showInHub: true are displayed as buttons on the Info Hub main page:
- Up to 3 Custom Page buttons are shown
- Sorted by
priority(lower values appear first) - Button displays icon, title, and automatic description
Command Registration
When command is set, a command is automatically registered:
{
"command": "changelog",
"commandAliases": ["updates", "news"]
}
This registers: /changelog, /updates, /news
All commands open the corresponding custom page directly.
Permissions
Optionally set a permission to restrict page visibility:
{
"permission": "infohub.page.vip"
}
Only players with this permission can see the page. The page will be hidden from the hub and commands will deny access for players without permission.
After Changes
After editing pages.json, reload the configuration:
/infohub reload
Changes to custom pages are applied immediately after reload - no server restart required.