added legacy server info
This commit is contained in:
parent
ea63b30422
commit
a49371c3dd
15 changed files with 218 additions and 53 deletions
|
|
@ -40,6 +40,7 @@ Panel/modules/website/
|
|||
support.php
|
||||
config/
|
||||
config.example.php
|
||||
pricing.php
|
||||
```
|
||||
|
||||
## URL helpers
|
||||
|
|
@ -125,6 +126,44 @@ Alternate front-controller approach:
|
|||
- support links
|
||||
3. Keep any environment-specific config out of Git
|
||||
|
||||
## Pricing and Platform Reference
|
||||
|
||||
Internal pricing planning remains in:
|
||||
|
||||
- `pricing/gameservers_world_pricing_catalog.xlsx`
|
||||
|
||||
Public website summary values are centralized in:
|
||||
|
||||
- `Panel/modules/website/config/pricing.php`
|
||||
|
||||
Optional environment-specific overrides can be placed in:
|
||||
|
||||
- `Panel/modules/website/config/config.php`
|
||||
- `Panel/modules/website/config/config.local.php`
|
||||
|
||||
Public pricing guidance currently exposes:
|
||||
|
||||
- standard hosting starts at `$0.50` per slot
|
||||
- selected lightweight legacy servers can start around `$4` per month
|
||||
- most standard plans use a `16`-slot minimum
|
||||
- fixed-cap or small co-op games may use different slot limits
|
||||
- custom development and complex integration work are quoted separately
|
||||
|
||||
Platform wording is also centralized in `config/pricing.php` so hardware references stay secondary and easy to update. The website should keep customization, legacy-game support, fair pricing, backups, and monitored capacity as the primary sales message. Hardware copy should remain a small platform note rather than a headline feature.
|
||||
|
||||
Pages currently displaying pricing or platform summary copy:
|
||||
|
||||
- `index.php`
|
||||
- `serverlist.php`
|
||||
- `pricing.php`
|
||||
|
||||
If pricing or example host details change later:
|
||||
|
||||
1. Update the workbook if it is the internal reference source
|
||||
2. Update `config/pricing.php` with the approved public summary
|
||||
3. Override values in `config.php` or `config.local.php` only when deployment-specific differences are required
|
||||
4. Recheck homepage, server catalog, and pricing page copy for consistency
|
||||
|
||||
## Manual link checks
|
||||
|
||||
Verify:
|
||||
|
|
@ -149,4 +188,3 @@ Verify:
|
|||
- No repeated `../../../` path climbing
|
||||
- Internal page links and assets route through helpers
|
||||
- Database config is optional for non-catalog pages
|
||||
|
||||
|
|
|
|||
|
|
@ -421,6 +421,16 @@ textarea {
|
|||
background: linear-gradient(90deg, rgba(84, 166, 255, 0) 0%, rgba(84, 166, 255, 0.35) 50%, rgba(84, 166, 255, 0) 100%);
|
||||
}
|
||||
|
||||
.list-clean {
|
||||
margin: 14px 0 0;
|
||||
padding-left: 18px;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
.list-clean li + li {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.location-card small,
|
||||
.service-meta,
|
||||
.doc-meta {
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
return [
|
||||
'site_name' => 'Gameservers.World',
|
||||
'site_tagline' => 'Developer-backed game hosting with full server access, mod support, daily backups, and optional custom engineering help through Runlevel Systems.',
|
||||
'meta_description' => 'Affordable virtual private game servers backed by developers, software engineers, and infrastructure specialists. Launch a standard server or get help with mods, automation, integrations, and custom tooling.',
|
||||
'site_tagline' => 'Developer-backed game hosting for modern and legacy communities, with full server access, daily backups, and optional custom engineering help through Runlevel Systems.',
|
||||
'meta_description' => 'Affordable game servers for modern and legacy communities, backed by developers, software engineers, and infrastructure specialists. Launch a standard server or get help with mods, automation, integrations, and custom tooling.',
|
||||
|
||||
// Leave null to derive the base path from the current request.
|
||||
// Example: '/sales'
|
||||
|
|
@ -35,4 +35,23 @@ return [
|
|||
['name' => 'New York City, USA', 'region' => 'East Coast coverage', 'host' => 'nyc-game-1.iaregamer.com'],
|
||||
['name' => 'Dublin, Ireland', 'region' => 'EU coverage', 'host' => 'dub-game-1.iaregamer.com'],
|
||||
],
|
||||
|
||||
// Optional overrides for the public pricing summary and platform note.
|
||||
// Defaults live in config/pricing.php so public pages do not parse the XLSX workbook at runtime.
|
||||
'pricing' => [
|
||||
'standard_slot_start' => 0.50,
|
||||
'legacy_monthly_start' => 4.00,
|
||||
'standard_min_slots' => 16,
|
||||
'fixed_cap_note' => 'Some fixed-cap or small co-op games use different slot limits.',
|
||||
'disclaimer' => 'Final pricing depends on game, slot count, resource tier, mods, and customization.',
|
||||
'custom_work_note' => 'Custom development and complex integration work are quoted separately.',
|
||||
],
|
||||
'platform' => [
|
||||
'summary' => 'Hosted on modern server hardware with SSD storage, high-bandwidth connectivity, and actively monitored CPU and memory capacity.',
|
||||
'capacity_note' => 'We actively monitor host capacity and avoid overcrowding servers onto overloaded machines.',
|
||||
'example_host_cpu_cores' => 32,
|
||||
'example_host_ram_gb' => 128,
|
||||
'example_host_storage' => '2 TB SSD storage',
|
||||
'daily_backups_note' => 'Daily backups are included.',
|
||||
],
|
||||
];
|
||||
|
|
|
|||
21
Panel/modules/website/config/pricing.php
Normal file
21
Panel/modules/website/config/pricing.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'pricing' => [
|
||||
'standard_slot_start' => 0.50,
|
||||
'legacy_monthly_start' => 4.00,
|
||||
'standard_min_slots' => 16,
|
||||
'fixed_cap_note' => 'Some fixed-cap or small co-op games use different slot limits.',
|
||||
'disclaimer' => 'Final pricing depends on game, slot count, resource tier, mods, and customization.',
|
||||
'custom_work_note' => 'Custom development and complex integration work are quoted separately.',
|
||||
'workbook_reference' => 'pricing/gameservers_world_pricing_catalog.xlsx',
|
||||
],
|
||||
'platform' => [
|
||||
'summary' => 'Hosted on modern server hardware with SSD storage, high-bandwidth connectivity, and actively monitored CPU and memory capacity.',
|
||||
'capacity_note' => 'We actively monitor host capacity and avoid overcrowding servers onto overloaded machines.',
|
||||
'example_host_cpu_cores' => 32,
|
||||
'example_host_ram_gb' => 128,
|
||||
'example_host_storage' => '2 TB SSD storage',
|
||||
'daily_backups_note' => 'Daily backups are included.',
|
||||
],
|
||||
];
|
||||
|
|
@ -15,6 +15,7 @@ ini_set('display_errors', '0');
|
|||
|
||||
$websiteConfig = [];
|
||||
$websiteConfigFiles = [
|
||||
WEBSITE_CONFIG_DIR . '/pricing.php',
|
||||
WEBSITE_CONFIG_DIR . '/config.php',
|
||||
WEBSITE_CONFIG_DIR . '/config.local.php',
|
||||
];
|
||||
|
|
@ -32,8 +33,8 @@ foreach ($websiteConfigFiles as $configFile) {
|
|||
|
||||
$websiteDefaults = [
|
||||
'site_name' => 'Gameservers.World',
|
||||
'site_tagline' => 'Developer-backed game hosting with full server access, mod support, daily backups, and optional custom engineering help through Runlevel Systems.',
|
||||
'meta_description' => 'Affordable virtual private game servers backed by developers, software engineers, and infrastructure specialists. Launch a standard server or get help with mods, automation, integrations, and custom tooling.',
|
||||
'site_tagline' => 'Developer-backed game hosting for modern and legacy communities, with full server access, daily backups, and optional custom engineering help through Runlevel Systems.',
|
||||
'meta_description' => 'Affordable game servers for modern and legacy communities, backed by developers, software engineers, and infrastructure specialists. Launch a standard server or get help with mods, automation, integrations, and custom tooling.',
|
||||
'base_path' => null,
|
||||
'public_base_url' => null,
|
||||
'billing_base_url' => '/billing',
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ foreach ($docIndex as $entry) {
|
|||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1><?= $docEntry !== null ? website_escape($docEntry['name']) : 'Documentation' ?></h1>
|
||||
<p><?= $docEntry !== null ? website_escape((string)($docEntry['description'] ?? '')) : 'Browse server setup guides, GSP references, mod and Workshop help, and troubleshooting material for both ordinary hosting customers and communities doing more specialized work.' ?></p>
|
||||
<p><?= $docEntry !== null ? website_escape((string)($docEntry['description'] ?? '')) : 'Browse server setup guides, GSP references, mod and Workshop help, and troubleshooting material for both ordinary hosting customers and communities doing more specialized work on modern or legacy games.' ?></p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,11 +3,18 @@
|
|||
declare(strict_types=1);
|
||||
|
||||
$hasBilling = website_billing_available();
|
||||
$pricing = website_config('pricing', []);
|
||||
$standardSlotStart = (float)($pricing['standard_slot_start'] ?? 0.50);
|
||||
$legacyMonthlyStart = (float)($pricing['legacy_monthly_start'] ?? 4.00);
|
||||
$standardMinSlots = (int)($pricing['standard_min_slots'] ?? 16);
|
||||
$pricingDisclaimer = trim((string)($pricing['disclaimer'] ?? ''));
|
||||
$customWorkNote = trim((string)($pricing['custom_work_note'] ?? ''));
|
||||
$fixedCapNote = trim((string)($pricing['fixed_cap_note'] ?? ''));
|
||||
?>
|
||||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1>Game Servers</h1>
|
||||
<p>Order a standard hosted server or use the catalog as the starting point for something more customized. Individual servers can be reviewed for mod setups, scripts, automation, integrations, and community-specific requirements.</p>
|
||||
<p>Order a standard hosted server for a modern or legacy game, or use the catalog as the starting point for something more customized. Individual servers can be reviewed for mods, scripts, automation, integrations, and community-specific requirements.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -15,14 +22,21 @@ $hasBilling = website_billing_available();
|
|||
<div class="container">
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Standard hosting is available</h3>
|
||||
<p>Use the catalog for ordinary game-server hosting with GSP access, full configuration and file control, monitored capacity, and daily backups.</p>
|
||||
<h3>Straightforward starting prices</h3>
|
||||
<p>Standard game servers start at $<?= website_escape(number_format($standardSlotStart, 2)) ?> per slot, and most standard plans use a <?= website_escape((string)$standardMinSlots) ?>-slot minimum.</p>
|
||||
<p><?= website_escape($fixedCapNote) ?></p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Need something unusual?</h3>
|
||||
<p>Custom development, integration, and engineering work can be scoped separately for a reasonable additional fee. No build work starts without an agreed estimate.</p>
|
||||
<h3>Legacy games are part of the catalog</h3>
|
||||
<p>Selected lightweight legacy servers can start around $<?= website_escape(number_format($legacyMonthlyStart, 2)) ?> per month, with practical help for older Windows and Linux server software, mod stacks, and migration work.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Not just cookie-cutter hosting</h3>
|
||||
<p>Every server can be individualized around files, startup parameters, Workshop content, automation, APIs, Discord integrations, and community-specific tooling.</p>
|
||||
<p><?= website_escape($customWorkNote) ?></p>
|
||||
</article>
|
||||
</div>
|
||||
<p class="muted" style="margin-top: 18px;"><?= website_escape($pricingDisclaimer) ?></p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -62,6 +76,7 @@ $hasBilling = website_billing_available();
|
|||
<div class="empty-state">
|
||||
<h2>Server catalog unavailable</h2>
|
||||
<p><?= website_escape((string)website_config('admin_notice')) ?></p>
|
||||
<p class="muted">Standard servers start at $<?= website_escape(number_format($standardSlotStart, 2)) ?> per slot, while selected legacy servers can start around $<?= website_escape(number_format($legacyMonthlyStart, 2)) ?> per month.</p>
|
||||
<div class="card-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(website_url('support.php')) ?>">Contact Support</a>
|
||||
<a class="button button-secondary" href="<?= website_escape(website_custom_project_url()) ?>">Discuss a Custom Server</a>
|
||||
|
|
|
|||
|
|
@ -4,34 +4,48 @@ declare(strict_types=1);
|
|||
|
||||
$discordUrl = trim((string)website_config('discord_url', ''));
|
||||
$customProjectUrl = website_custom_project_url();
|
||||
$pricing = website_config('pricing', []);
|
||||
$platform = website_config('platform', []);
|
||||
$standardSlotStart = (float)($pricing['standard_slot_start'] ?? 0.50);
|
||||
$legacyMonthlyStart = (float)($pricing['legacy_monthly_start'] ?? 4.00);
|
||||
$standardMinSlots = (int)($pricing['standard_min_slots'] ?? 16);
|
||||
$pricingDisclaimer = trim((string)($pricing['disclaimer'] ?? ''));
|
||||
$customWorkNote = trim((string)($pricing['custom_work_note'] ?? ''));
|
||||
$fixedCapNote = trim((string)($pricing['fixed_cap_note'] ?? ''));
|
||||
$platformSummary = trim((string)($platform['summary'] ?? ''));
|
||||
$platformCapacityNote = trim((string)($platform['capacity_note'] ?? ''));
|
||||
$platformExampleCpu = (int)($platform['example_host_cpu_cores'] ?? 32);
|
||||
$platformExampleRam = (int)($platform['example_host_ram_gb'] ?? 128);
|
||||
$platformExampleStorage = trim((string)($platform['example_host_storage'] ?? '2 TB SSD storage'));
|
||||
$platformBackupNote = trim((string)($platform['daily_backups_note'] ?? ''));
|
||||
?>
|
||||
<section class="hero">
|
||||
<div class="container hero-layout">
|
||||
<div>
|
||||
<div class="eyebrow">Game hosting backed by developers</div>
|
||||
<h1>Host it. Mod it. Build it.</h1>
|
||||
<p>Launch an affordable virtual private game server or work with the team behind Runlevel Systems on the parts that make your community specific: mods, scripts, automation, integrations, admin tools, custom GSP workflows, and unusual server setups that do not fit a generic hosting template.</p>
|
||||
<h1>Game Hosting Backed by Developers</h1>
|
||||
<p>Launch a standard server for a modern or legacy game, or work with the team behind Runlevel Systems to customize mods, scripts, integrations, automation, and server workflows around your community.</p>
|
||||
<div class="hero-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(website_url('serverlist.php')) ?>">View Game Servers</a>
|
||||
<a class="button button-secondary" href="<?= website_escape($customProjectUrl) ?>">Discuss a Custom Project</a>
|
||||
<a class="button button-secondary" href="<?= website_escape($customProjectUrl) ?>">Discuss a Custom Server</a>
|
||||
<a class="button button-ghost" href="<?= website_escape(panel_url()) ?>">Open Control Panel</a>
|
||||
</div>
|
||||
<div class="hero-points">
|
||||
<div class="hero-point">
|
||||
<strong>Affordable hosting first</strong>
|
||||
<span class="muted">You can order a normal hosted server without custom work, then decide later whether you need help extending it.</span>
|
||||
<strong>Fair starting prices</strong>
|
||||
<span class="muted">Standard servers start at $<?= website_escape(number_format($standardSlotStart, 2)) ?> per slot, while selected lightweight legacy servers can start around $<?= website_escape(number_format($legacyMonthlyStart, 2)) ?> per month.</span>
|
||||
</div>
|
||||
<div class="hero-point">
|
||||
<strong>Never-oversold capacity</strong>
|
||||
<span class="muted">Host systems are actively monitored so customers are not crowded onto overloaded nodes.</span>
|
||||
<span class="muted"><?= website_escape($platformCapacityNote !== '' ? $platformCapacityNote : 'Host systems are actively monitored so customers are not crowded onto overloaded nodes.') ?></span>
|
||||
</div>
|
||||
<div class="hero-point">
|
||||
<strong>Real engineering help</strong>
|
||||
<span class="muted">Developers, software engineers, game developers, and infrastructure specialists are available when a server needs more than a restart button.</span>
|
||||
</div>
|
||||
<div class="hero-point">
|
||||
<strong>Customization is available</strong>
|
||||
<span class="muted">Files, configs, startup parameters, supported mods, Workshop content, and custom tooling can be reviewed case by case.</span>
|
||||
<strong>Legacy games welcome</strong>
|
||||
<span class="muted">We still host classic and community-maintained multiplayer games that larger providers often overlook, including older Windows and Linux dedicated servers.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -39,7 +53,7 @@ $customProjectUrl = website_custom_project_url();
|
|||
<img src="<?= website_escape(website_asset('images/banner.png')) ?>" alt="Gameservers.World supported games collage">
|
||||
<div class="hero-visual-card">
|
||||
<strong>More than hosting</strong>
|
||||
<p>Gameservers.World hosts the server. Runlevel Systems provides the development, integration, and infrastructure expertise behind it.</p>
|
||||
<p>Gameservers.World hosts the server. Runlevel Systems provides the development, integration, and infrastructure expertise behind it, including custom workflows when a community needs more than a stock setup.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -47,23 +61,28 @@ $customProjectUrl = website_custom_project_url();
|
|||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="stats-grid">
|
||||
<div class="stat-card">
|
||||
<strong>128 GB RAM</strong>
|
||||
<span>Host specification, not a per-customer dedicated allocation.</span>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<strong>32 CPU cores</strong>
|
||||
<span>Capacity is managed for stable game performance and headroom.</span>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<strong>2 TB SSD</strong>
|
||||
<span>Fast storage on monitored hosts instead of overloaded bargain nodes.</span>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<strong>Daily backups</strong>
|
||||
<span>Recover from failed updates, bad changes, or configuration mistakes with help from support.</span>
|
||||
</div>
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Legacy Games Welcome</h3>
|
||||
<p>Older multiplayer communities should not have to disappear because larger hosts stopped supporting their game. Selected legacy servers can start around $<?= website_escape(number_format($legacyMonthlyStart, 2)) ?> per month.</p>
|
||||
<ul class="list-clean">
|
||||
<li>Classic FPS and older multiplayer titles</li>
|
||||
<li>Small private communities and fixed-cap servers</li>
|
||||
<li>Older Windows and Linux server software</li>
|
||||
<li>Mod, configuration, and migration help</li>
|
||||
</ul>
|
||||
<div class="card-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(website_url('serverlist.php')) ?>">Browse Game Servers</a>
|
||||
<a class="button button-secondary" href="<?= website_escape($customProjectUrl) ?>">Ask About an Older Game</a>
|
||||
</div>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Straightforward Starting Prices</h3>
|
||||
<p>Standard game servers start at $<?= website_escape(number_format($standardSlotStart, 2)) ?> per slot, and most standard plans use a <?= website_escape((string)$standardMinSlots) ?>-slot minimum.</p>
|
||||
<p><?= website_escape($fixedCapNote) ?></p>
|
||||
<p><?= website_escape($pricingDisclaimer) ?></p>
|
||||
<p><?= website_escape($customWorkNote) ?></p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -82,7 +101,7 @@ $customProjectUrl = website_custom_project_url();
|
|||
</article>
|
||||
<article class="feature-card">
|
||||
<h3>Custom server builds</h3>
|
||||
<p>Individual servers can be configured around startup parameters, file layouts, admin tooling, automation, or game-specific quirks.</p>
|
||||
<p>Individual servers can be configured around startup parameters, file layouts, admin tooling, automation, legacy game quirks, or game-specific operational requirements.</p>
|
||||
</article>
|
||||
<article class="feature-card">
|
||||
<h3>Mod and Workshop integration</h3>
|
||||
|
|
@ -129,7 +148,7 @@ $customProjectUrl = website_custom_project_url();
|
|||
<div class="section-heading">
|
||||
<div class="kicker">Hosting platform</div>
|
||||
<h2>Stable hosting without overcrowded nodes.</h2>
|
||||
<p>Gameservers.World provides virtual private game servers on carefully managed hosts with 128 GB RAM, 32 CPU cores, and 2 TB SSD storage. Those are host specifications, not dedicated per-customer guarantees. The practical commitment is monitored capacity, performance headroom, and daily backups.</p>
|
||||
<p><?= website_escape($platformSummary !== '' ? $platformSummary : 'Hosted on modern server hardware with SSD storage, high-bandwidth connectivity, and actively monitored CPU and memory capacity.') ?></p>
|
||||
</div>
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
|
|
@ -137,8 +156,8 @@ $customProjectUrl = website_custom_project_url();
|
|||
<p>Edit files and configurations, adjust startup parameters, manage supported server content, review logs, and run updates or scheduled tasks through GSP.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Windows and Linux experience</h3>
|
||||
<p>The team works across game servers that expect different operating systems, toolchains, runtime quirks, and documentation quality.</p>
|
||||
<h3>Platform note</h3>
|
||||
<p>Example host: <?= website_escape((string)$platformExampleCpu) ?> CPU cores, <?= website_escape((string)$platformExampleRam) ?> GB RAM, and <?= website_escape($platformExampleStorage) ?>. <?= website_escape($platformBackupNote) ?></p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -169,7 +188,7 @@ $customProjectUrl = website_custom_project_url();
|
|||
<div class="section-heading">
|
||||
<div class="kicker">Supported games and locations</div>
|
||||
<h2>Live catalog where available, honest fallback where it is not.</h2>
|
||||
<p>Available games and public pricing come from the active service catalog when configuration is available. The site does not invent availability or publish stale game lists just to fill space.</p>
|
||||
<p>Available games and live catalog prices come from the active service catalog when configuration is available. Public starting-price guidance stays concise so the site does not invent fake availability or publish stale game lists just to fill space.</p>
|
||||
</div>
|
||||
<?php if (!empty($services)): ?>
|
||||
<div class="service-grid">
|
||||
|
|
@ -216,7 +235,7 @@ $customProjectUrl = website_custom_project_url();
|
|||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Ordinary hosting is available</h3>
|
||||
<p>Order a standard server, use the panel, and get practical support without being forced into a custom project.</p>
|
||||
<p>Order a standard server, use the panel, and get practical support without being forced into a custom project. Most standard plans start with a <?= website_escape((string)$standardMinSlots) ?>-slot baseline, while some smaller or fixed-cap games differ.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Custom help is available too</h3>
|
||||
|
|
@ -292,7 +311,7 @@ $customProjectUrl = website_custom_project_url();
|
|||
<div class="cta-panel">
|
||||
<div>
|
||||
<h2>Have an idea for your server?</h2>
|
||||
<p>Whether you need ordinary hosting, a complicated mod setup, or something that has never been packaged into a hosting panel before, tell us what you are trying to build.</p>
|
||||
<p>Whether you need ordinary hosting, a legacy multiplayer server, a complicated mod setup, or something that has never been packaged into a hosting panel before, tell us what you are trying to build.</p>
|
||||
</div>
|
||||
<div class="stack-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(website_url('serverlist.php')) ?>">View Game Servers</a>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ $locations = is_array($locations) ? $locations : [];
|
|||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1>Locations</h1>
|
||||
<p>Choose a region that fits where your players are, what game you run, and how sensitive your mod stack or server software is to latency and host performance. Stable hosting matters more than crowding customers onto the cheapest node.</p>
|
||||
<p>Choose a region that fits where your players are, what game you run, and how sensitive your mod stack or server software is to latency and host performance. Stable hosting matters more than crowding modern or legacy communities onto the cheapest node.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,21 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
$pricing = website_config('pricing', []);
|
||||
$platform = website_config('platform', []);
|
||||
$standardSlotStart = (float)($pricing['standard_slot_start'] ?? 0.50);
|
||||
$legacyMonthlyStart = (float)($pricing['legacy_monthly_start'] ?? 4.00);
|
||||
$standardMinSlots = (int)($pricing['standard_min_slots'] ?? 16);
|
||||
$fixedCapNote = trim((string)($pricing['fixed_cap_note'] ?? ''));
|
||||
$pricingDisclaimer = trim((string)($pricing['disclaimer'] ?? ''));
|
||||
$customWorkNote = trim((string)($pricing['custom_work_note'] ?? ''));
|
||||
$platformSummary = trim((string)($platform['summary'] ?? ''));
|
||||
?>
|
||||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1>Pricing</h1>
|
||||
<p>Standard hosting prices come from the live game-server catalog. Custom coding, integration, and engineering work are separate so customers only pay for extra build work when they actually need it.</p>
|
||||
<p>Pricing stays straightforward: standard hosting starts at practical public rates, selected legacy servers can start lower, and custom coding or complex integration work is scoped separately before any billable work begins.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -13,14 +23,21 @@ declare(strict_types=1);
|
|||
<div class="container">
|
||||
<div class="summary-grid">
|
||||
<article class="summary-card">
|
||||
<h3>Hosting and support</h3>
|
||||
<p>Standard pricing covers virtual private game hosting, GSP access, full file and configuration control, mod and Workshop help where supported, monitored capacity, and daily backups.</p>
|
||||
<h3>Standard plans</h3>
|
||||
<p>Standard game servers start at $<?= website_escape(number_format($standardSlotStart, 2)) ?> per slot, and most standard plans use a <?= website_escape((string)$standardMinSlots) ?>-slot minimum.</p>
|
||||
<p><?= website_escape($fixedCapNote) ?></p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Legacy-friendly options</h3>
|
||||
<p>Selected lightweight legacy servers can start around $<?= website_escape(number_format($legacyMonthlyStart, 2)) ?> per month, which helps smaller communities keep older titles online without forcing a large plan.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Custom work is quoted separately</h3>
|
||||
<p><?= website_escape($customWorkNote) ?></p>
|
||||
<p>Small changes should not get enterprise-consulting pricing, but custom coding is not implied to be free. Scope and price are discussed before work begins.</p>
|
||||
</article>
|
||||
</div>
|
||||
<p class="muted" style="margin-top: 18px;"><?= website_escape($pricingDisclaimer) ?></p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -35,7 +52,7 @@ declare(strict_types=1);
|
|||
?>
|
||||
<article class="service-card">
|
||||
<h3><?= website_escape($serviceName) ?></h3>
|
||||
<p><?= website_escape(trim((string)($service['description'] ?? '')) ?: 'Dedicated hosting with full configuration access.') ?></p>
|
||||
<p><?= website_escape(trim((string)($service['description'] ?? '')) ?: 'Virtual private hosting with full configuration access, GSP access, daily backups, and practical support.') ?></p>
|
||||
<div class="section-divider"></div>
|
||||
<div class="service-price"><?= $price > 0 ? '$' . number_format($price, 2) . ' / month' : 'Contact for pricing' ?></div>
|
||||
<div class="card-actions">
|
||||
|
|
@ -60,6 +77,10 @@ declare(strict_types=1);
|
|||
<h3>Reasonable scoping</h3>
|
||||
<p>If you want a custom server script, migration helper, integration, monitoring workflow, or game-specific fix, the first step is a practical discussion about what the game allows and what the work should cost.</p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>Hosting platform</h3>
|
||||
<p><?= website_escape($platformSummary) ?></p>
|
||||
</article>
|
||||
<article class="summary-card">
|
||||
<h3>What is not claimed</h3>
|
||||
<p>The site does not invent exact prices outside the catalog, promise unlimited development, or pretend every unusual request is technically possible.</p>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ $loginUnavailable = $loginUnavailable ?? false;
|
|||
<section class="page-heading">
|
||||
<div class="container">
|
||||
<h1>Support</h1>
|
||||
<p>Support covers ordinary hosting questions, but it also extends to mod setups, Workshop issues, configuration mistakes, migration work, automation ideas, unusual server requirements, and the kinds of problems that appear when a community wants more than a stock setup.</p>
|
||||
<p>Support covers ordinary hosting questions, but it also extends to mod setups, Workshop issues, legacy server quirks, configuration mistakes, migration work, automation ideas, unusual server requirements, and the kinds of problems that appear when a community wants more than a stock setup.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ $loginUnavailable = $loginUnavailable ?? false;
|
|||
</article>
|
||||
<article class="support-card">
|
||||
<h3>Modding and troubleshooting</h3>
|
||||
<p>Use the documentation set for server guides, panel workflows, Workshop help, and technical troubleshooting across current and older multiplayer games.</p>
|
||||
<p>Use the documentation set for server guides, panel workflows, Workshop help, and technical troubleshooting across current games, older multiplayer titles, and community-maintained servers.</p>
|
||||
<div class="card-actions">
|
||||
<a class="button button-primary" href="<?= website_escape(website_url('docs.php')) ?>">Open Docs</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ website_render(
|
|||
[
|
||||
'activePage' => 'pricing',
|
||||
'pageTitle' => 'Pricing - Gameservers.World',
|
||||
'metaDescription' => 'Standard game hosting pricing plus honest guidance on separately quoted custom development and integration work.',
|
||||
'metaDescription' => 'Straightforward starting prices for modern and legacy game hosting, plus honest guidance on separately quoted custom development and integration work.',
|
||||
'canonicalPath' => 'pricing.php',
|
||||
'services' => website_fetch_services(),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ website_render(
|
|||
[
|
||||
'activePage' => 'servers',
|
||||
'pageTitle' => 'Game Servers - Gameservers.World',
|
||||
'metaDescription' => 'Browse supported game servers, live pricing where available, and developer-backed hosting options with mod, automation, and custom integration help.',
|
||||
'metaDescription' => 'Browse modern and legacy game servers, live pricing where available, and developer-backed hosting with mod, automation, and custom integration help.',
|
||||
'canonicalPath' => 'serverlist.php',
|
||||
'services' => $services,
|
||||
]
|
||||
|
|
|
|||
|
|
@ -57,3 +57,24 @@ Recommended:
|
|||
- `support.php`
|
||||
- `login.php`
|
||||
|
||||
## Pricing and Platform Reference
|
||||
|
||||
- Internal workbook: `pricing/gameservers_world_pricing_catalog.xlsx`
|
||||
- Public summary config: `Panel/modules/website/config/pricing.php`
|
||||
- Optional overrides: `Panel/modules/website/config/config.php` and `config.local.php`
|
||||
|
||||
The website uses a compact public pricing summary instead of parsing the workbook at runtime. Pricing and platform wording should stay centralized so homepage, server catalog, and pricing pages remain consistent.
|
||||
|
||||
Public pricing rules:
|
||||
|
||||
- standard hosting starts at `$0.50` per slot
|
||||
- selected legacy servers can start around `$4` per month
|
||||
- most standard plans use a `16`-slot minimum
|
||||
- fixed-cap games may differ
|
||||
- custom development is quoted separately
|
||||
|
||||
Platform rules:
|
||||
|
||||
- hardware details are secondary website information
|
||||
- customization, legacy-game support, backups, monitored capacity, and developer-backed help remain the main sales points
|
||||
- example host specifications should be updated in the central config rather than scattered across templates
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue