Requirements: NamelessMC 2.2.x (PHP 8.2+).
Voltage folder to custom/templates/ of your NamelessMC installation
(final path: custom/templates/Voltage/template.php).cache/ is writable (NamelessMC requirement) and clear cache/templates_c/ after updating files.Replace the Voltage folder, keep your settings (they live in the database). Clear cache/templates_c/.
Everything is edited in StaffCP → Customisation → Templates → Voltage → Settings. No code needed.
| Tab | What you can change |
|---|---|
| Design | Colour palette (6 included) or your own primary/accent colours, default light/dark mode, font, corner style, content width, navbar style (glass, solid, floating pill, transparent), page title banner |
| Brand | Logo text or image, server IP, fallback player count, Discord and store URLs |
| Home modules | Enable, reorder, duplicate and edit every section of the home page |
| Footer | Brand block, description, copyright text, “Powered by” line |
| Advanced | Disable animations, add custom CSS |
| Import / Export | Back up your configuration as JSON or copy it to another site |
Visitors can switch with the navbar toggle (remembered in their browser). The default for first-time visitors is set in Design → Default colour mode.
--vt-primary, --vt-primary-600, --vt-primary-300, --vt-accent, --vt-bg, --vt-surface, --vt-surface-2,
--vt-border, --vt-text, --vt-muted, --vt-radius, --vt-radius-sm, --vt-font, --vt-container.
/* example: make the hero title bigger */
.vt-hero__title { font-size: 5rem; }
The hero chip and the Server status module use the default Minecraft server configured in StaffCP → Integrations → Minecraft. When the server cannot be queried they fall back to the numbers in Brand.
The images in the live demo are not part of the download. Add your own in the Hero, Game modes, Features, Countdown and Final CTA modules
(paste the image URL, or upload to uploads/ via StaffCP and use /uploads/...).
Each section of the home page is a module: a folder in modules/<id>/. Drop a new folder in and it
appears automatically in the editor (Home modules → Add section) — no registration needed.
modules/my_module/
module.json manifest + settings schema (what the editor shows)
view.tpl Smarty markup
module.php optional: returns function (array $settings, array $ctx): array → available as {$d} in the view
{
"id": "my_module", "name": "My module", "description": "Shown in the editor",
"icon": "fas fa-star", "order": 50, "multiple": true,
"fields": [
{"key": "title", "type": "text", "label": "Title", "default": "Hello"},
{"key": "items", "type": "repeater", "label": "Items", "item_label": "name",
"fields": [{"key": "name", "type": "text", "label": "Name", "default": ""}], "default": []}
]
}
Field types: text, textarea, url, image, icon, number, toggle, select (with options), color, repeater, heading.
Unless "no_common": true, the Section background and Anchor ID options are added automatically.
Settings are available as {$s.key} and provider data as {$d.key}. Escape user text with |escape.
<div class="vt-container">
{include file="{$VOLTAGE_PATH}partials/section_head.tpl"} {* optional eyebrow/title/subtitle header *}
<h2>{$s.title|escape}</h2>
</div>
<?php
return static function (array $s, array $ctx): array {
// $ctx: config, language, user, resolve($url), server[ip,online,players,max], forum_url
return ['count' => DB::getInstance()->query('SELECT COUNT(*) c FROM nl2_users')->first()->c];
};
Announcement bar · Hero · Marquee band · Server status · Game modes · Features · How to join · Season countdown · Store packages · News · Stats · Staff · Top members · Gallery · FAQ · Discord · Partners · Final call to action · Custom HTML.