diff --git a/.astro/types.d.ts b/.astro/types.d.ts
index f8ad01e449..6f069a0be0 100644
--- a/.astro/types.d.ts
+++ b/.astro/types.d.ts
@@ -185,565 +185,607 @@ declare module 'astro:content' {
type ContentEntryMap = {
"docs": {
+"about.mdx": {
+ id: "about.mdx";
+ slug: "about";
+ body: string;
+ collection: "docs";
+ data: InferEntrySchema<"docs">
+} & { render(): Render[".mdx"] };
"enhancements/Anti-X Tools/anticheat.mdx": {
id: "enhancements/Anti-X Tools/anticheat.mdx";
slug: "e/anti-x/ac";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Anti-X Tools/antiexploit.mdx": {
id: "enhancements/Anti-X Tools/antiexploit.mdx";
slug: "e/anti-x/ae";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Anti-X Tools/antilag.mdx": {
id: "enhancements/Anti-X Tools/antilag.mdx";
slug: "e/anti-x/al";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Anti-X Tools/antixray.mdx": {
id: "enhancements/Anti-X Tools/antixray.mdx";
slug: "e/anti-x/ax";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Anti-X Tools/intro.mdx": {
id: "enhancements/Anti-X Tools/intro.mdx";
slug: "e/anti-x";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Economy/chest.mdx": {
id: "enhancements/Economy/chest.mdx";
slug: "e/eco/chest";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Economy/gui.mdx": {
id: "enhancements/Economy/gui.mdx";
slug: "e/eco/gui";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Economy/intro.mdx": {
id: "enhancements/Economy/intro.mdx";
slug: "e/eco";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Economy/shop.mdx": {
id: "enhancements/Economy/shop.mdx";
slug: "e/eco/shop";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Permissions/breakdown.mdx": {
id: "enhancements/Permissions/breakdown.mdx";
slug: "e/perms";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Permissions/luckperms.mdx": {
id: "enhancements/Permissions/luckperms.mdx";
slug: "e/perms/luckperms";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
-"enhancements/Plugins/Free/AntiCrasher.mdx": {
- id: "enhancements/Plugins/Free/AntiCrasher.mdx";
+"enhancements/Plugins/Free/anticrasher.mdx": {
+ id: "enhancements/Plugins/Free/anticrasher.mdx";
slug: "e/pl/anticrasher";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
-"enhancements/Plugins/Free/anticrasher.mdx": {
- id: "enhancements/Plugins/Free/anticrasher.mdx";
- slug: "e/pl/anticrasher";
+"enhancements/Plugins/Free/chestshop.mdx": {
+ id: "enhancements/Plugins/Free/chestshop.mdx";
+ slug: "e/pl/chestshop";
+ body: string;
+ collection: "docs";
+ data: InferEntrySchema<"docs">
+} & { render(): Render[".mdx"] };
+"enhancements/Plugins/Free/discordsrv.mdx": {
+ id: "enhancements/Plugins/Free/discordsrv.mdx";
+ slug: "e/pl/discordsrv";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
+} & { render(): Render[".mdx"] };
+"enhancements/Plugins/Free/dukesmart.mdx": {
+ id: "enhancements/Plugins/Free/dukesmart.mdx";
+ slug: "e/pl/dukesmart";
+ body: string;
+ collection: "docs";
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Plugins/Free/essentialsx.mdx": {
id: "enhancements/Plugins/Free/essentialsx.mdx";
slug: "e/pl/essentialsx";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
+} & { render(): Render[".mdx"] };
+"enhancements/Plugins/Free/minimotd.mdx": {
+ id: "enhancements/Plugins/Free/minimotd.mdx";
+ slug: "e/pl/minimotd";
+ body: string;
+ collection: "docs";
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Plugins/Free/npcs.mdx": {
id: "enhancements/Plugins/Free/npcs.mdx";
slug: "e/pl/npcplugins";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
+} & { render(): Render[".mdx"] };
+"enhancements/Plugins/Free/quickshop.mdx": {
+ id: "enhancements/Plugins/Free/quickshop.mdx";
+ slug: "e/pl/quickshop";
+ body: string;
+ collection: "docs";
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Plugins/Free/timber.mdx": {
id: "enhancements/Plugins/Free/timber.mdx";
slug: "e/pl/ultimatetimber";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Plugins/Free/vault.mdx": {
id: "enhancements/Plugins/Free/vault.mdx";
slug: "e/pl/vault";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Plugins/Free/worldedit.mdx": {
id: "enhancements/Plugins/Free/worldedit.mdx";
slug: "e/pl/worldedit";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Plugins/Free/worldguard.mdx": {
id: "enhancements/Plugins/Free/worldguard.mdx";
slug: "e/pl/worldguard";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Plugins/Premium/litebans.mdx": {
id: "enhancements/Plugins/Premium/litebans.mdx";
slug: "e/pl/litebans";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"enhancements/Plugins/intro.mdx": {
id: "enhancements/Plugins/intro.mdx";
slug: "e/pl";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Optimisation/advanced.mdx": {
id: "guides/Minecraft/Optimisation/advanced.mdx";
slug: "guides/optimisation/advanced";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Optimisation/basic.mdx": {
id: "guides/Minecraft/Optimisation/basic.mdx";
slug: "guides/optimisation/basic";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Optimisation/intro.mdx": {
id: "guides/Minecraft/Optimisation/intro.mdx";
slug: "guides/optimisation";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Plugins/Cinema Mod/commands.mdx": {
id: "guides/Minecraft/Plugins/Cinema Mod/commands.mdx";
slug: "guides/cinemamod/commands";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Plugins/Cinema Mod/intro.mdx": {
id: "guides/Minecraft/Plugins/Cinema Mod/intro.mdx";
slug: "guides/cinemamod";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Plugins/Cinema Mod/setup.mdx": {
id: "guides/Minecraft/Plugins/Cinema Mod/setup.mdx";
slug: "guides/cinemanod/setup";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Plugins/Dynmap/intro.mdx": {
id: "guides/Minecraft/Plugins/Dynmap/intro.mdx";
slug: "guides/dynmap";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Plugins/Dynmap/proxy.mdx": {
id: "guides/Minecraft/Plugins/Dynmap/proxy.mdx";
slug: "guides/dynmap/proxy";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Plugins/Dynmap/setup.mdx": {
id: "guides/Minecraft/Plugins/Dynmap/setup.mdx";
slug: "guides/dynmap/setup";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Self-Host/Panels/Pterodactyl/intro.mdx": {
id: "guides/Minecraft/Self-Host/Panels/Pterodactyl/intro.mdx";
slug: "guides/pterodactyl";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Self-Host/Panels/Pterodactyl/node.mdx": {
id: "guides/Minecraft/Self-Host/Panels/Pterodactyl/node.mdx";
slug: "guides/pterodactyl/node";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Self-Host/Panels/Pterodactyl/panel.mdx": {
id: "guides/Minecraft/Self-Host/Panels/Pterodactyl/panel.mdx";
slug: "guides/pterodactyl/panel";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Self-Host/Panels/Pterodactyl/wings.mdx": {
id: "guides/Minecraft/Self-Host/Panels/Pterodactyl/wings.mdx";
slug: "guides/pterodactyl/wings";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Self-Host/Panels/Pufferpanel/installation.mdx": {
id: "guides/Minecraft/Self-Host/Panels/Pufferpanel/installation.mdx";
slug: "guides/pufferpanel";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Self-Host/Panels/Pufferpanel/ssl.mdx": {
id: "guides/Minecraft/Self-Host/Panels/Pufferpanel/ssl.mdx";
slug: "guides/pufferpanel/ssl";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Self-Host/Standalone (Java)/docker.mdx": {
id: "guides/Minecraft/Self-Host/Standalone (Java)/docker.mdx";
slug: "guides/self-host/docker";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Self-Host/Standalone (Java)/linux.mdx": {
id: "guides/Minecraft/Self-Host/Standalone (Java)/linux.mdx";
slug: "guides/self-host/linux";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Minecraft/Self-Host/Standalone (Java)/win.mdx": {
id: "guides/Minecraft/Self-Host/Standalone (Java)/win.mdx";
slug: "guides/self-host/win";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Core/ovh.mdx": {
id: "guides/OVH/Core/ovh.mdx";
slug: "guides/lab/ovh";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Core/ports.mdx": {
id: "guides/OVH/Core/ports.mdx";
slug: "guides/lab/pforward";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Core/proxmox.mdx": {
id: "guides/OVH/Core/proxmox.mdx";
slug: "guides/lab/proxmox";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Core/remote.mdx": {
id: "guides/OVH/Core/remote.mdx";
slug: "guides/lab/remote";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Core/vms.mdx": {
id: "guides/OVH/Core/vms.mdx";
slug: "guides/lab/vms";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Optional/Configuration/aad.mdx": {
id: "guides/OVH/Optional/Configuration/aad.mdx";
slug: "guides/lab/aad";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Optional/Configuration/azure.mdx": {
id: "guides/OVH/Optional/Configuration/azure.mdx";
slug: "guides/lab/arc";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Optional/Configuration/hardening.mdx": {
id: "guides/OVH/Optional/Configuration/hardening.mdx";
slug: "guides/lab/hardening";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Optional/Services/Zero Trust/cloudflare.mdx": {
id: "guides/OVH/Optional/Services/Zero Trust/cloudflare.mdx";
slug: "guides/lab/cloudflare";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Optional/Services/docker.mdx": {
id: "guides/OVH/Optional/Services/docker.mdx";
slug: "guides/lab/docker";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Optional/Services/maas.mdx": {
id: "guides/OVH/Optional/Services/maas.mdx";
slug: "guides/lab/maas";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Optional/Services/macos.mdx": {
id: "guides/OVH/Optional/Services/macos.mdx";
slug: "guides/lab/mac";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/Optional/Services/uptimekuma.mdx": {
id: "guides/OVH/Optional/Services/uptimekuma.mdx";
slug: "guides/lab/monitoring";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/OVH/intro.mdx": {
id: "guides/OVH/intro.mdx";
slug: "guides/lab";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Services/TLS/intro.mdx": {
id: "guides/Services/TLS/intro.mdx";
slug: "guides/ssl";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Services/TLS/tools.mdx": {
id: "guides/Services/TLS/tools.mdx";
slug: "guides/ssl/tools";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Services/domainpark.mdx": {
id: "guides/Services/domainpark.mdx";
slug: "guides/domain-parking";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Services/folia.mdx": {
id: "guides/Services/folia.mdx";
slug: "guides/build-folia";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"guides/Services/oracle.mdx": {
id: "guides/Services/oracle.mdx";
slug: "guides/oracle-cloud";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"hosting/hardware.mdx": {
id: "hosting/hardware.mdx";
slug: "h/hardware";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"hosting/intro.mdx": {
id: "hosting/intro.mdx";
slug: "h";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"hosting/os.mdx": {
id: "hosting/os.mdx";
slug: "h/os";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"hosting/panels.mdx": {
id: "hosting/panels.mdx";
slug: "h/ui";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"hosting/providers.mdx": {
id: "hosting/providers.mdx";
slug: "h/providers";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"hosting/self.mdx": {
id: "hosting/self.mdx";
slug: "h/self";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"hosting/types.mdx": {
id: "hosting/types.mdx";
slug: "h/types";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"index.mdx": {
id: "index.mdx";
slug: "index";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"information/discord.mdx": {
id: "information/discord.mdx";
slug: "discord";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"information/docs.mdx": {
id: "information/docs.mdx";
slug: "docs";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"information/eula.mdx": {
id: "information/eula.mdx";
slug: "eula";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"information/releases.mdx": {
id: "information/releases.mdx";
slug: "release";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"tools/database.mdx": {
id: "tools/database.mdx";
slug: "t/database";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"tools/offline-mode.mdx": {
id: "tools/offline-mode.mdx";
slug: "t/offline";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"tools/server-software.mdx": {
id: "tools/server-software.mdx";
slug: "t/server-software";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"tools/signed-chat.mdx": {
id: "tools/signed-chat.mdx";
slug: "t/signed-chat";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"tools/startup.mdx": {
id: "tools/startup.mdx";
slug: "t/flags";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"tools/textures.mdx": {
id: "tools/textures.mdx";
slug: "t/textures";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
+} & { render(): Render[".mdx"] };
+"tools/tunnels.mdx": {
+ id: "tools/tunnels.mdx";
+ slug: "t/tunnels";
+ body: string;
+ collection: "docs";
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"troubleshooting/connectivity.mdx": {
id: "troubleshooting/connectivity.mdx";
slug: "ts/connection";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"troubleshooting/ip.mdx": {
id: "troubleshooting/ip.mdx";
slug: "ts/ip";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"troubleshooting/java.mdx": {
id: "troubleshooting/java.mdx";
slug: "ts/java";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
"troubleshooting/latency.mdx": {
id: "troubleshooting/latency.mdx";
slug: "ts/latency";
body: string;
collection: "docs";
- data: any
+ data: InferEntrySchema<"docs">
} & { render(): Render[".mdx"] };
};
@@ -755,5 +797,5 @@ declare module 'astro:content' {
type AnyEntryMap = ContentEntryMap & DataEntryMap;
- type ContentConfig = never;
+ type ContentConfig = typeof import("../src/content/config");
}
diff --git a/astro.config.mjs b/astro.config.mjs
index 630c8f3c27..4297eb1d98 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -1,54 +1,59 @@
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
+import vue from "@astrojs/vue";
+
+import tailwind from "@astrojs/tailwind";
// https://astro.build/config
export default defineConfig({
- site: 'https://www.setup.md',
- trailingSlash: "never",
- integrations: [
- starlight({
- title: 'setup.md',
- editLink: {
- baseUrl: 'https://github.com/setupmd/docs/edit/v3',
- },
- social: {
- discord: 'https://link.setup.md/discord',
- github: 'https://link.setup.md/repo',
- patreon: 'https://link.setup.md/patreon'
- },
- sidebar: [
- {
- label: 'Project Information',
- autogenerate: { directory: '/information/' },
- collapsed: false,
- },
- {
- label: 'Enhancements',
- autogenerate: { directory: '/enhancements/' },
- collapsed: true,
- },
- {
- label: 'Hosting Tips',
- autogenerate: { directory: '/hosting/' },
- collapsed: true,
- },
- {
- label: 'Server Tools',
- autogenerate: { directory: '/tools/' },
- collapsed: true,
- },
- {
- label: 'Server Troubleshooting',
- autogenerate: { directory: '/troubleshooting/' },
- collapsed: true,
- },
- {
- label: 'Guides',
- autogenerate: { directory: '/guides/' },
- collapsed: true,
- },
- ],
- lastUpdated: true,
- }),
- ],
-});
+ site: 'https://www.setup.md',
+ trailingSlash: "never",
+ integrations: [starlight({
+ title: 'setup.md',
+ editLink: {
+ baseUrl: 'https://github.com/setupmd/docs/edit/v3'
+ },
+ social: {
+ discord: 'https://link.setup.md/discord',
+ github: 'https://link.setup.md/repo',
+ patreon: 'https://link.setup.md/patreon'
+ },
+ sidebar: [{
+ label: 'Project Information',
+ autogenerate: {
+ directory: '/information/'
+ },
+ collapsed: false
+ }, {
+ label: 'Enhancements',
+ autogenerate: {
+ directory: '/enhancements/'
+ },
+ collapsed: true
+ }, {
+ label: 'Hosting Tips',
+ autogenerate: {
+ directory: '/hosting/'
+ },
+ collapsed: true
+ }, {
+ label: 'Server Tools',
+ autogenerate: {
+ directory: '/tools/'
+ },
+ collapsed: true
+ }, {
+ label: 'Server Troubleshooting',
+ autogenerate: {
+ directory: '/troubleshooting/'
+ },
+ collapsed: true
+ }, {
+ label: 'Guides',
+ autogenerate: {
+ directory: '/guides/'
+ },
+ collapsed: true
+ }]
+ }), vue(), tailwind()]
+});
\ No newline at end of file
diff --git a/package.json b/package.json
index c61f66c4b2..fd719f926d 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@setupmd/docs",
"type": "module",
- "version": "3.0.0.b1",
+ "version": "3.1.1",
"private": true,
"scripts": {
"dev": "astro dev",
@@ -12,7 +12,12 @@
},
"dependencies": {
"@astrojs/starlight": "^0.11.2",
+ "@astrojs/tailwind": "^5.0.2",
+ "@astrojs/vue": "^3.0.4",
+ "@vitejs/plugin-vue": "^4.5.1",
"astro": "^3.2.3",
- "sharp": "^0.32.5"
+ "sharp": "^0.32.5",
+ "tailwindcss": "^3.3.5",
+ "vue": "^3.3.9"
}
}
diff --git a/src/components/MainStatusPill.vue b/src/components/MainStatusPill.vue
new file mode 100644
index 0000000000..859a6b7821
--- /dev/null
+++ b/src/components/MainStatusPill.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/content/docs/about.mdx b/src/content/docs/about.mdx
index 64f6a70358..2d90a58227 100644
--- a/src/content/docs/about.mdx
+++ b/src/content/docs/about.mdx
@@ -1,7 +1,65 @@
---
-title: About setup.md
+title: About Us
description: We're an administration wiki for Minecraft server administrators who are looking to enhance their server experience.
template: splash
-hero:
- tagline: Learn about the project and how you can help make it even better!
---
+
+We're building the ultimate Minecraft documentation project and if you're interested in making things even better this is the page for you.
+
+This page will be split up into three sections to help you get about:
+
+
+ - New Ideas
+ - New Content
+ - Improving Content
+
+
+:::caution
+
+If you don't already have a Github account you will be required to make one before proceeding, you can create one at https://github.com/signup.
+
+:::
+
+### Submitting Ideas
+
+If you're an administrator looking for docs that we don't currently have information on then this is probably the section for you, it will explain how to raise a new Github issue with the information required for us to get the ball rolling with your request.
+
+
+ - Head on over to the [setup.md Github repository](https://link.setup.md/repo)
+ - In the menu bar at the top select 'Issues'
+ - Select 'New Issue'
+ - Select 'Feature Request'
+ - Complete the required sections on the provided form
+
+
+Ensure you fill out the form with as much information as you can as this will help us build better documentation
+
+---
+
+### Writing Content
+
+If you're interested in writing content / migrating your own doc environment over to our wiki a Github PR is your best option. Please also ensure you have followed our [styling guide](https://contribute.setup.md) to ensure your PR doesn't get rejected for lack of continuity.
+
+#### Single Articles
+
+If you're going to write a single article you can do so with the following steps, before you consider uploading a document please ensure you are using a template from our [sister github repository](https://github.com/setupmd/templates/tree/main/Docs).
+
+
+ - Head on over to the [setup.md Github repository](https://link.setup.md/pr)
+ - In the menu bar at the top select 'Pull Requests'
+ - Select 'New Pull Request'
+ - Select the branch of your forked repo that you wish to commit as a PR
+ - Select 'View Pull Request'
+
+
+The setup.md contributors will then verify the PR is good and will approve your content.
+
+#### Migrating Wikis
+
+If you already use docusaurus for your own project, adding your content here is super easy and should be a drag and drop migration. You'll need to [submit a PR](https://link.setup.md/pr) but it's recommended you reach out to us on [Discord](https://link.setup.md/discord) so we can setup some indexing for your future content.
+
+---
+
+### Improving Content
+
+As Minecraft continues to grow so will our project and we hope that if you spot inconsistancies in our project you'll hit the 'Edit Page' link at the bottom to submit a PR request with any corrections you wish to make.
\ No newline at end of file
diff --git a/src/content/docs/enhancements/Anti-X Tools/anticheat.mdx b/src/content/docs/enhancements/Anti-X Tools/anticheat.mdx
index 87238ba62c..357570c7f8 100644
--- a/src/content/docs/enhancements/Anti-X Tools/anticheat.mdx
+++ b/src/content/docs/enhancements/Anti-X Tools/anticheat.mdx
@@ -4,6 +4,8 @@ slug: e/anti-x/ac
title: Anti-Cheats
---
+import MainStatusPill from '../../../../components/MainStatusPill.vue'
+
:::info
Throughout this guide 'Anti-Cheat(s)' may be referred to as 'AC' or 'ACs'
:::
@@ -42,7 +44,7 @@ We highly discourage the usage of auto-bans as no anti-cheat is perfect. If you
This list consists common ACs and some pros and cons of each AC.
-#### NoCheatPlus
+#### NoCheatPlus Java Only
##### Pros
- Free and open-source
diff --git a/src/content/docs/enhancements/Economy/chest.mdx b/src/content/docs/enhancements/Economy/chest.mdx
index 1bcfcbcafa..264b808b23 100644
--- a/src/content/docs/enhancements/Economy/chest.mdx
+++ b/src/content/docs/enhancements/Economy/chest.mdx
@@ -1,31 +1,17 @@
---
description: A focus on traditional chest based plugins for your servers economy.
slug: e/eco/chest
-title: Chest Plugins
+title: Chest Based
---
-This section takes a look at current plugins that use craft-able chests for economy based tasks.
+A chest shop is a Minecraft resource buying - selling enhancement that is fully craftable in game using normally a standard chest and a wooden sign. These solutions normally bring a more player-to-player style interraction with players chosing to rent space in an admin market / build their own market.
-### Chest Shops
-These solutions encourages more direct player to player interaction, these solutions aren't automated and rely on your end users buying and selling between one another.
+### Examples
-#### QuickShop
-Easily the best Chest Shop plugin, containing pretty much every feature you might need.
+We have collated a small list of plugins you can use to get you started with on your Minecraft server below.
-
-
-#### ChestShop
-A simpler chest shop plugin that still has plenty of solid features.
-
-
-
-#### DukesMart
-Super basic Chest Shop plugin which uses Gold Ingots as a currency. Terra-Opus is making a fork with a couple improved changes this should also be worth a consideration.
-
-
\ No newline at end of file
+
+ - [QuickShop](/e/pl/quickshop)
+ - [ChestShop](/e/pl/chestshop)
+ - [DukesMart](/e/pl/dukesmart)
+
\ No newline at end of file
diff --git a/src/content/docs/enhancements/Economy/gui.mdx b/src/content/docs/enhancements/Economy/gui.mdx
index ef76809dad..1b5efad47f 100644
--- a/src/content/docs/enhancements/Economy/gui.mdx
+++ b/src/content/docs/enhancements/Economy/gui.mdx
@@ -1,7 +1,7 @@
---
description: A focus on GUI based plugins for your servers economy.
slug: e/eco/gui
-title: GUI Plugins
+title: GUI Based
---
This section takes a look at current plugins that have a user-interface for economy based tasks.
diff --git a/src/content/docs/enhancements/Economy/intro.mdx b/src/content/docs/enhancements/Economy/intro.mdx
index b22df91f11..fcd47bab67 100644
--- a/src/content/docs/enhancements/Economy/intro.mdx
+++ b/src/content/docs/enhancements/Economy/intro.mdx
@@ -10,14 +10,18 @@ An economy is essential to your Minecraft server, it allows for players to buy a
Economies within Minecraft, much like the real world, can dictate supply and demand with availabilities of resources to your players. For example if you were running admin shops it would be possible to run a discount on certain items and random points within the year or if you want to make a product more valuable then this can be achieved too.
-The goal with this section is to recommend some plugins that will allow you to build the framework for your own server's economy to take place.
+The goal with this section is to highlight some viable options for your server along with some example plugins that will allow you to build the framework for your own server's economy to take place.
### Requirements
-Most, if not all plugins require your server to have an Economy API (such as [Vault](/e/pl/vault)) and an Economy Handler (Such as TheNewEconomy) installed. A short list of handlers is below:
+Most, if not all plugins require your server to have an Economy API (such as [Vault](/e/pl/vault)) and an Economy Handler installed.
- * EssentialsX
- * TheNewEconomy (Optional Vault Support)
- * iConomy
- * Gringott's Economy
+Some example economy handlers are below:
+
+
+ - EssentialsX
+ - TheNewEconomy (Optional Vault Support)
+ - iConomy
+ - Gringott's Economy
+
diff --git a/src/content/docs/enhancements/Economy/shop.mdx b/src/content/docs/enhancements/Economy/shop.mdx
index ac5bc55b10..7d18bde0be 100644
--- a/src/content/docs/enhancements/Economy/shop.mdx
+++ b/src/content/docs/enhancements/Economy/shop.mdx
@@ -1,7 +1,7 @@
---
description: A focus on /shop based plugins for your servers economy.
slug: e/eco/shop
-title: Shop Plugins
+title: Command Based
---
### /shop Plugins
diff --git a/src/content/docs/enhancements/Plugins/Free/AntiCrasher.mdx b/src/content/docs/enhancements/Plugins/Free/AntiCrasher.mdx
index 2cd071389a..83e03f9edb 100644
--- a/src/content/docs/enhancements/Plugins/Free/AntiCrasher.mdx
+++ b/src/content/docs/enhancements/Plugins/Free/AntiCrasher.mdx
@@ -2,10 +2,6 @@
description: AntiCrasher fixes a crash exploit that affects every version, only fixed in very recent builds of paper/pufferfish/purpur for 1.20.2 and a backport for pufferfish 1.20.1
slug: e/pl/anticrasher
title: AntiCrasher
-sidebar:
- badge:
- text: New
- variant: note
---
Fixes a very popular and very used crash exploit that affects most versions of Minecraft
diff --git a/src/content/docs/enhancements/Plugins/Free/chestshop.mdx b/src/content/docs/enhancements/Plugins/Free/chestshop.mdx
new file mode 100644
index 0000000000..1819439bb5
--- /dev/null
+++ b/src/content/docs/enhancements/Plugins/Free/chestshop.mdx
@@ -0,0 +1,20 @@
+---
+description: A chest based player shop plugin to enhance your economy.
+slug: e/pl/chestshop
+title: ChestShop
+---
+
+import MainStatusPill from '../../../../../components/MainStatusPill.vue'
+import { LinkCard, CardGrid } from '@astrojs/starlight/components';
+
+#### This enhancement supports
+
+Spigot / Paper & forks only
+
+A simple bare bones chest shop plugin, think 'QuickShop' without all the fancy bells and whistles. ChestShop makes a great plugin for anyone who just wants to get some simple buying and selling going in their server.
+
+
\ No newline at end of file
diff --git a/src/content/docs/enhancements/Plugins/Free/dukesmart.mdx b/src/content/docs/enhancements/Plugins/Free/dukesmart.mdx
new file mode 100644
index 0000000000..96ddd4e0f3
--- /dev/null
+++ b/src/content/docs/enhancements/Plugins/Free/dukesmart.mdx
@@ -0,0 +1,20 @@
+---
+description: A chest based player shop plugin to enhance your economy.
+slug: e/pl/dukesmart
+title: DukesMart
+---
+
+import MainStatusPill from '../../../../../components/MainStatusPill.vue'
+import { LinkCard, CardGrid } from '@astrojs/starlight/components';
+
+#### This enhancement supports
+
+Spigot / Paper & forks only
+
+A plugin to watch as the light weight chest shop plugin was rumoured to be getting one final breath of life with a fork.
+
+
\ No newline at end of file
diff --git a/src/content/docs/enhancements/Plugins/Free/quickshop.mdx b/src/content/docs/enhancements/Plugins/Free/quickshop.mdx
new file mode 100644
index 0000000000..4d9a605f9a
--- /dev/null
+++ b/src/content/docs/enhancements/Plugins/Free/quickshop.mdx
@@ -0,0 +1,31 @@
+---
+description: A chest based player shop plugin to enhance your economy.
+slug: e/pl/quickshop
+title: Quick Shop Remake
+---
+
+import MainStatusPill from '../../../../../components/MainStatusPill.vue'
+import { LinkCard, CardGrid } from '@astrojs/starlight/components';
+
+#### This enhancement supports
+
+Spigot / Paper & forks only
+
+QuickShop Remake is a forked and maintained version of the long standing '[QuickShop](https://dev.bukkit.org/projects/quickshop)' plugin of the earlier Minecraft days. It allows players to buy and sell between one another and the 'admin store' using chests.
+
+### Features
+
+
+ - Full sign support
+ - Full support for multi-currency
+ - Supports Taxes
+ - WorldGuard, Towny, PlotSquared and Factions support
+
+
+And so much more, the important links for this plugin can be found below.
+
+
\ No newline at end of file
diff --git a/src/content/docs/hosting/intro.mdx b/src/content/docs/hosting/intro.mdx
index 7bab0f85d7..d157728d2c 100644
--- a/src/content/docs/hosting/intro.mdx
+++ b/src/content/docs/hosting/intro.mdx
@@ -6,10 +6,11 @@ title: Hosting Introduction
---
If you're looking to run a Minecraft server of your own there are multiple things you should consider.
-
-- Where do you want to host it?
-- How do you want to host it?
-- Do you want the ability to be able to host more than Minecraft?
+
+ - Where do you want to host it?
+ - How do you want to host it?
+ - Do you want the ability to be able to host more than Minecraft?
+
Our goal is to cover all of this and offer our own recommendations on providers you can use for all possibilities, some key articles can be found below.
diff --git a/src/content/docs/hosting/os.mdx b/src/content/docs/hosting/os.mdx
index 49acd96a88..81a342f522 100644
--- a/src/content/docs/hosting/os.mdx
+++ b/src/content/docs/hosting/os.mdx
@@ -7,9 +7,10 @@ title: Operating Systems
When running a Minecraft server on [bare metal](/h/types/#bare-metal--vds), or a [VPS](/h/types#virtual-private-servers) you'll need to install a base operating system before you can get started. Unless you're running an apple device your options are Windows / Windows Server or Linux and the abundance of distros that come along with it.
This page will explain the common choices available.
-
-- Windows (Desktop and Server)
-- Ubuntu LTS
+
+ - Windows (Desktop and Server)
+ - Ubuntu LTS
+
### Windows
diff --git a/src/content/docs/hosting/panels.mdx b/src/content/docs/hosting/panels.mdx
index fd8628acea..b6b5b0bb28 100644
--- a/src/content/docs/hosting/panels.mdx
+++ b/src/content/docs/hosting/panels.mdx
@@ -4,110 +4,127 @@ slug: h/ui
title: Panels
---
+import MainStatusPill from '../../../components/MainStatusPill.vue'
+import { LinkCard, CardGrid } from '@astrojs/starlight/components';
+
If you're running a Minecraft server the chances are you'll want an easier method of management, this is where panels come into play. Every [shared hosting](types#shared-hosting) provider will come with a control panel, this is how you'll interface with your server normally at a URL similar to https://panel.mydomain.com. Depending on how long the provider has been in business they'll either be using Multicraft or Pterodactyl (newer hosts using the latter).
While Multicraft and Pterodactyl became the widely adopted platforms for Minecraft hosting this doesn't mean they're the only players in the game and with a VPS / Bare Metal you can install any one of a number of different solutions. We could write this article for the next six months documenting every single different panel and why it should be used but we're going to focus on a couple.
The top 4 shortlisted panels this article will be covering are.
-- AMP
-- Multicraft
-- Pterodactyl
-- PufferPanel
+
+ - AMP
+ - Moonlight
+ - Pterodactyl
+ - PufferPanel
+
-### AMP
+### AMP Windows & Linux only
AMP is a licensed panel produced by CubeCoders which supports both Windows and Linux including Ubuntu, Debian, Arch, Cent OS and more. CubeCrafters are by no means new to the hosting game, their previous product McMyAdmin launched all the way back in 2013.
At this time there is **NO** Apple builds so for legacy McMyAdmin2 users this product may not be suitable for you unless you're running boot camp or run your servers on a different machine.
#### Pros
-- Community backed game contributions
-- Migration path for McMyAdmin2 users
-- One click/line installers
-- Proactive support
-- Support for many popular titles
+
+ - Community backed game contributions
+ - Migration path for McMyAdmin2 users
+ - One click/line installers
+ - Proactive support
+ - Support for many popular titles
+
#### Cons
-- Licensed
-- Multiple security requirements before installable (principle isn't a con but it's a pain)
-- Not open-source
+
+ - Licensed
+ - Multiple security requirements before installable (principle isn't a con but it's a pain)
+ - Not open-source
+
-
+
+
+
+
---
-### Multicraft
-
-Multicraft is the old-school industry panel that is still in use by some providers today, most notably [Pebblehost](https://pebblehost.com) who run a highly modified setup. Multicraft is also our oldest panel having launched all the way back in 2010 during [the hmod era](https://github.com/traitor/Minecraft-Server-Mod). While a great panel of the 2010s, it's ship has sailed and shouldn't be used for new production environments.
+### Moonlight Linux only
-Like AMP, Multicraft **does not** (and at this point probably never will) have an Apple build. Mac users should look at [Pterodactyl](#pterodactyl) if they wish to localhost a panel.
+Moonlight is an up and coming panel solution that is aimed towards those looking to replace Pterodactyl. The project is still in it's early phase and we've been pleased with the outcome so far in small scale testing and has therefore made our list as a one to watch.
#### Pros
-- Billing integration for WHMCS / Blesta
-- One click/line installers
-- Proven solution that has served thousands of servers over the last 10 years.
-
+
+ - Automatic plugin installer
+ - Automatic SRV record creator
+ - One click/line installers
+ - Migration guide for Pterodactyl installs
+ - Support for pterodactyl eggs (kind of)
+ - Many more features constantly being added
+
#### Cons
-- Dated product with better alternatives
-- Licensed
-- Lack of third party modifications
+
+ - No billing support at this time
+ - Lack of third party modifications
+
-
+
+
+
+
---
-### Pterodactyl
+### Pterodactyl Linux only
Multicraft had to die for Pterodactyl to breathe, an open source panel in active development and great support behind it. For those who like the sound of pterodactyl but not the self-hosting setup process you can look at the SaaS version [WISP](https://wisp.gg) which will cost you around $15 a month for the entry plan.
Pterodactyl boasts a two part setup, a web-server and a docker agent (wings) that only has official support for Linux. WSL has no official support same with Mac OS, you may find better luck utilising their 'panel-in-docker' and 'wings-in-docker' if you wish to attempt an install on either of these platforms.
#### Pros
-- ARM instruction set support
-- Billing integration for WHMCS / Blesta
-- Industry standard tool
-- Marketplaces for third party panel enhancements
-- Open source product
-- Support for many popular titles
-
+
+ - ARM instruction set support
+ - Billing integration for WHMCS / Blesta
+ - Industry standard tool
+ - Marketplaces for third party panel enhancements
+
#### Cons
-- Complex multi-stage setup process
-- Setup support can be hit or miss (you're normally told to RTFM)
+
+ - Complex multi-stage setup process
+ - Setup support can be hit or miss (you're normally told to RTFM)
+
-
+
+
+
+
+
---
-### PufferPanel
+### PufferPanel Linux only
PufferPanel could have been the Pterodactyl industry standard tool today, a panel formerly developed by a Pterodactyl team member prior to a clashing of heads and a splitting of the product, however PufferPanel remains open source and in active development by the original founder and an long-time dev.
The situation is the same for PufferPanel as it is for Pterodactyl, only has official support for Linux, however Windows builds are available (if unsupported).
#### Pros
-- One click/line installers via APT/YUM
-- ARM instruction set support
-- Open source product
+
+ - One click/line installers via APT/YUM
+ - ARM instruction set support
+
#### Cons
-- Lack of industry adoption / third party support
-- No billing modules
+
+ - Lack of industry adoption / third party support
+ - No billing modules
+
:::note
PufferPanel (OSS Project) should not be confused with the proprietary puffer panel used by https://pufferfish.host, **these are two separate entities**.
:::
-
+
+
+
+
+
\ No newline at end of file
diff --git a/src/content/docs/hosting/providers.mdx b/src/content/docs/hosting/providers.mdx
index 152a55509a..0f48346070 100644
--- a/src/content/docs/hosting/providers.mdx
+++ b/src/content/docs/hosting/providers.mdx
@@ -4,9 +4,11 @@ slug: h/providers
title: Providers
---
+import { LinkCard, CardGrid } from '@astrojs/starlight/components';
+
With the game becoming as big as it has done over the last decade there have been hundreds of hosting providers of past and present that either deliver high-quality services or awful services that someone could pay you enough to use daily. The goal with this page is to highlight a few trustworthy names in the Industry that meet the following criteria.
-
+
- Deliver to audiences at scale
- Developed an overall positive reputation
- Modernises hardware when required
@@ -23,111 +25,131 @@ If you don't know what kind of hosting you need, it's recommended to checkout th
### Bloom.host
Unparalleled price to performance with dedicated resources on high-end AMD Ryzen hardware and a bespoke customised version of the Pterodactyl panel. Bloom is also now a provider in the VPS and managed server solutions space across multiple regions.
-
-* Locations: Ashburn, Dallas, Los Angeles, Miami, Falkenstein, Singapore (Performance+ plans only)
+
+ - Locations: Ashburn, Dallas, Los Angeles, Miami, Falkenstein, Singapore (Performance+ plans only)
+
#### Pricing
+
+ - Essentials MC 4GB: $10/month
+ - Performance MC 8GB: $18/month
+ - Performance+ MC 8GB: $24/month
+
-* Essentials MC 4GB: $10/month
-* Performance MC 8GB: $18/month
-* Performance+ MC 8GB: $24/month
-
-
+
---
### EnviroMC
EnviroMC is a quality Minecraft service provider that focuses on both the budget and high-end requirements of their customers, as of Sept. 19th 2022 URHOST clients will be absorbed into EnviroMC as part of a takeover agreement. EnviroMC also provides a VPS solution across the US, Europe and Asia.
-
-* Locations: Falkenstein, New York, Singapore, Warsaw (VPS Only)
+
+ - Locations: Falkenstein, New York, Singapore, Warsaw (VPS Only)
+
#### Pricing
+
+ - Budget: $1/GB/month
+ - Premium: $2.50/GB/month
+ - Dedicated: See website for pricing
+
-* Budget: $1/GB/month
-* Premium: $2.50/GB/month
-* Dedicated: See website for pricing
+
-
---
### Hetzner GMBH
It would be impossible to create a provider list and not include Hetzner, they currently stand as the German kings when it comes to high-end hardware at an ultra affordable price point. If you're running a large enough solution and just looking for the bare metal to run it on they should be food for thought.
-
-* Locations: Ashburn (VPS Only), Falkenstein, Helsinki, Nuremberg (VPS Only), Vint Hill (VPS Only)
+
+ - Locations: Ashburn (VPS Only), Falkenstein, Helsinki, Nuremberg (VPS Only), Vint Hill (VPS Only)
+
#### Pricing
+
+ - Cloud Starting: €3.79/month
+ - Dedicated Starting: €37/month
+
-* Cloud Starting: €3.79/month
-* Dedicated Starting: €37/month
-
-
+
---
### Lilypad
Formerly called Senior Hosting it's the rebranded hosting division of Senior Studios who are a Minecraft Marketplace partner and have worked with multiple high-profile YouTube Minecraft content creators.
+
+ - Locations: London, New York
+ - Priced at $2.50/GB
+
-* Locations: London, New York
-* Priced at $2.50/GB
-
-
-
+
---
### OVHCloud
OVH, much like Hetzner, is a compute only provider meaning they specialise in Cloud services and Metal (the platform we use for Labs)
-
-* Locations: Beauharnois, Frankfurt, Gravelines, London, Roubaix, Singapore, Strasbourg, Sydney, Vint Hill, Warsaw
+
+ - Locations: Beauharnois, Frankfurt, Gravelines, London, Roubaix, Singapore, Strasbourg, Sydney, Vint Hill, Warsaw
+
#### Pricing
+
+ - Cloud Starting: $3.50/month
+ - Dedicated Starting: $56/month
+
-* Cloud Starting: $3.50/month
-* Dedicated Starting: $56/month
-
-
+
---
### WitherHosting
A budget hosting provider with a global reach and an entry price point of 1$/GB utilising a range of both Ryzen and Xeon grade processors.
+
+ - Locations: Chicago, Dallas, Frankfurt, London, Los Angeles, Miami, New York, Singapore, Sydney
+ - Budget: $1/GB/month
+ - Premium: $2/GB/month
+
-* Locations: Chicago, Dallas, Frankfurt, London, Los Angeles, Miami, New York, Singapore, Sydney
-* Budget: $1/GB/month
-* Premium: $2/GB/month
+
-
+---
### Other Providers
Yes, there are other great providers that haven't made our list for one reason or another - if you do decide to venture out and search for other providers some things we'd recommend you looking out for are
#### Avoid These Things
-
-- Don't use a host that makes you pay with a 'per-player slot' model - This is awfully dated and you should focus on resource based pricing instead.
-- Don't use Mojang (Microsoft) Realms - This is an Azure backed platform designed for bedrock but also has Java presence, in the long run you will not have an enjoyable experience.
-- Don't use a host that appears on a 'drama site' / forum - Hosts that make these lists tend to be awfully run and you'll have a bad time with them.
-
+
+ - Don't use a host that makes you pay with a 'per-player slot' model - This is awfully dated and you should focus on resource based pricing instead
+ - Don't use Mojang (Microsoft) Realms - This is an Azure backed platform designed for bedrock but also has Java presence, in the long run you will not have an enjoyable experience
+ - Don't use a host that appears on a 'drama site' / forum - Hosts that make these lists tend to be awfully run and you'll have a bad time with them
+
#### Look For These Things
-- Do your own research, check the companies TrustPilot reviews etc to get an understanding of how the customers feel.
-- Look for hosts that advertise hardware components and don't make you dig through pages of docs to get the information.
-- Check the providers status page for a better understanding of reliability
-
+
+ - Do your own research, check the companies TrustPilot reviews etc to get an understanding of how the customers feel
+ - Look for hosts that advertise hardware components and don't make you dig through pages of docs to get the information
+ - Check the providers status page for a better understanding of reliability
+
+
If in doubt ASK! Measure twice and cut once.
diff --git a/src/content/docs/hosting/self.mdx b/src/content/docs/hosting/self.mdx
index 5cee67ecd7..7b1b3672f8 100644
--- a/src/content/docs/hosting/self.mdx
+++ b/src/content/docs/hosting/self.mdx
@@ -5,18 +5,26 @@ title: Self Hosting
---
When it comes to running everything yourself you have two options
+
+ - Rent hardware / compute in the 'cloud'
+ - Provide your own hardware and run at a data centre / your house
+
-- Rent hardware / compute in the 'cloud'
-- Provide your own hardware and run at a data centre / your house
+### Option 1
-Option 1 (if you can afford it) is your better option. While this is the most expensive option your monthly bill does include hardware, electricity, internet and in some cases ddos protection. A mid-range to high end service will cost you anywhere from 100$ per month in this regards so may not be suitable for those who don't already have an established community, we discuss this option a in a bit more depth [here](/h/types#bare-metal--vds).
+If you can afford it, this is your better option. While this is the most expensive option your monthly bill does include hardware, electricity, internet and in some cases ddos protection. A mid-range to high end service will cost you anywhere from 100$ per month in this regards so may not be suitable for those who don't already have an established community, we discuss this option a in a bit more depth [here](/h/types#bare-metal--vds).
-Option 2 is the cheapest option but is does require some additional thought however for one or two people this option may still make the most sense.
+---
+
+### Option 2
-- Do you have a suitable internet connection? Firstly run a speed test, this will give you an idea of where your current connection sits. A 50mbps connection for both upload and download should be sufficient for your regular household activities **and** your Minecraft server, remember your connection is shared between all devices so downloading something on your internet e.g. steam games will reduce the available connection to Minecraft.
-- Do you have proper IPv4 addresses? Yes, Minecraft *can* support IPv6 but it requires all parties involved to also support V6 connectivity. You also need to consider if you have a [static IPv4 address](/ts/ip).
-- Have you considered the overhead to security, power utilisation, heat generated, noise produced and cost of hardware? Protecting the rest of your network can cost you either in man-hours or hardware if you need to purchase additional tools to get operational. This should all be considered before you commit to running things from home.
-- 24/7 Availability? If you're not prepared to run a server 24/7 from your home are you players happy with the fact a server will only be online for a few hours a day.
+The cheapest option but is does require some additional thought however for one or two people this option may still make the most sense.
+
+ - Do you have a suitable internet connection? Firstly run a speed test, this will give you an idea of where your current connection sits. A 50mbps connection for both upload and download should be sufficient for your regular household activities **and** your Minecraft server, remember your connection is shared between all devices so downloading something on your internet e.g. steam games will reduce the available connection to Minecraft.
+ - Do you have proper IPv4 addresses? Yes, Minecraft *can* support IPv6 but it requires all parties involved to also support V6 connectivity. You also need to consider if you have a [static IPv4 address](/ts/ip).
+ - Have you considered the overhead to security, power utilisation, heat generated, noise produced and cost of hardware? Protecting the rest of your network can cost you either in man-hours or hardware if you need to purchase additional tools to get operational. This should all be considered before you commit to running things from home.
+ - 24/7 Availability? If you're not prepared to run a server 24/7 from your home are you players happy with the fact a server will only be online for a few hours a day.
+
If you do want to host things yourself we have documentation on how to do such things [here](/guides/self-host).
diff --git a/src/content/docs/hosting/types.mdx b/src/content/docs/hosting/types.mdx
index b882d777ff..ee17553758 100644
--- a/src/content/docs/hosting/types.mdx
+++ b/src/content/docs/hosting/types.mdx
@@ -8,9 +8,11 @@ When you start looking at hosting your server online you'll see many different a
The three most common types you'll find in forum responses are:
-- Shared Hosting
-- Virtual Private Servers (VPS)
-- Dedicated Servers (Bare Metal / VDS)
+
+ - Shared Hosting
+ - Virtual Private Servers (VPS)
+ - Dedicated Servers (Bare Metal / VDS)
+
### Shared Hosting
@@ -25,13 +27,14 @@ Traditionally this space was dominated by the likes of Nitrado, MCProHosting, Sh
The other common response you'll see people mention is 'grab yourself a VPS from Digital Ocean or Linode'. While you certainly can, it won't be much better than using [oracle cloud](/guides/oracle-cloud) on ARM (which is free).
VPS instances have some differences to shared hosting, the core differences are.
-- Linux knowledge is required for setup
-- Patching becomes your responsibility
-- Shell access which allows you to run more than just Minecraft servers
-- Slower but higher core count CPUs
-- You get a Dedicated IP address rather than a Shared one
-- You can install a custom panel such as [Pterodactyl](/h/ui#pterodactyl)
-
+
+ - Linux knowledge is required for setup
+ - Patching becomes your responsibility
+ - Shell access which allows you to run more than just Minecraft servers
+ - Slower but higher core count CPUs
+ - You get a Dedicated IP address rather than a Shared one
+ - You can install a custom panel such as [Pterodactyl](/h/ui#pterodactyl)
+
There are times when a VPS can make sense, a prime example is using a VPS provider that uses consumer 'Gaming Grade' CPUs (Intel Core i9 / AMD Ryzen 7 / 9). These would provide the same experience for Minecraft as using a regular 'shared hosting' provider and it would allow you to host say a web / database server, a discord bot or anything else you could imagine.
---
@@ -41,12 +44,15 @@ There are times when a VPS can make sense, a prime example is using a VPS provid
The final common type of hosting you'll see people mention is, "go all out and own your hardware". While yes, this has some advantages for a novice the prospect of having no one around for support can be unsettling. Bare metal gives you full, dedicated, system normally in 32 / 64 or 128 GB RAM configurations with 256 / 512 or multi-TB disk configs. Bare metal can either be built yourself and shipped to a data centre for a monthly fee or you can rent from providers such as Hetzner, OVH or ReliableSite for a monthly fee. This option can set you back multiple hundreds of dollars per month and would only be recommended for larger scale deployments.
Bare metal has a few advantages over the other types of solutions such as.
-- Complete ownership of the server data
-- Complete ownership of physical and networking resources
-- Some providers will offer a managed solution for an additional fee
-
+
+ - Complete ownership of the server data
+ - Complete ownership of physical and networking resources
+ - Some providers will offer a managed solution for an additional fee
+
Bare metal also carries the same differences to shared hosting as a VPS.
-:::info
+:::tip
+
If you don't already know what level of hardware you should be looking at then please consider reading our [hardware guide](hardware) first, then once you know what hardware and solution you're looking for head on over to our [recommendation page](providers) for vendors that can deliver what you're looking for.
+
:::
diff --git a/src/content/docs/information/discord.mdx b/src/content/docs/information/discord.mdx
index e3fde7d226..8bc08d0e8a 100644
--- a/src/content/docs/information/discord.mdx
+++ b/src/content/docs/information/discord.mdx
@@ -12,13 +12,15 @@ A permanent invite to our server can be found community guidelines.
-- Follow the Discord terms of service.
+
+ - Be kind to one another
+ - Don't be an ass, no one is paid to deal with your poor behaviour
+ - Don't post any NSFW content
+ - Follow the Discord community guidelines
+ - Follow the Discord terms of service
+
---
@@ -31,5 +33,5 @@ A brief overview of important roles within our server and how they are obtained.
| Project Lead | This is a role that is reserved for first-party members of the project. | |
| Project Contributors | Anyone who has submitted work for the Github repository is eligible for this role, you should have your Github account linked to your Discord account and publicly visible. |
| Community Nerds | People who have shown significant knowledge in areas and support the community without being a wiki contributor.
-| Sponsors | This role is automatically assigned to anyone who sponsors the project. |
+| Sponsors | This role is automatically assigned to anyone who sponsors the project. (This role is not currently obtainable) |
diff --git a/src/content/docs/information/eula.mdx b/src/content/docs/information/eula.mdx
index 757de9eb32..266d5b7153 100644
--- a/src/content/docs/information/eula.mdx
+++ b/src/content/docs/information/eula.mdx
@@ -6,37 +6,24 @@ lastUpdated: 2023-08-02
sidebar:
order: 3
badge:
- text: Updated
+ text: Important
variant: danger
---
If you're new to hosting a Minecraft server you should probably become familiar with what the EULA and CUG actually are. In short they're a scope of principles Mojang would like your server to adhere to at all times if you don't want it blacklisted at auth server level, these policies can change at any time and more often than not aren't published to Mojang's official channels e.g. Twitter.
-### 02 Aug 2023
+### Changes
The following additional changes have been made which will affect the most amount of servers since the huge enforcements in 2014.
-- All servers are now required to be suitable for all ages
-- All servers are now required to disclose their non-affiliation with Mojang and/or Microsoft
-- All servers are now required to implement their own ToS before a player is allowed to play
-- All players are now required to check back to the EULA on their own accord and players will not be updated of the change*
-- Anything from non-commercial blogs, servers, community forums, fan sites, fan clubs, news groups, events, and gatherings are now deemed as commercial and must follow the CUG even if it will never make money
-- Mojang now has complete control over all forms of Minecraft content on online platforms
-- Mojang now has control over the term 'Minecraft' in creative content (YouTube, Twitch etc.) which may result in content removal
-- Mojang has the authority to grant or revoke permissions and consents at their discretion if they deem it appropriate or dislike what players are doing
-- Mojang has now outlawed the use of out-of-game mechanics to limit access to your Minecraft server e.g. queue based platforms in addition to gatekept content
-
-:::note
-*This is an illegal practice in multiple countries so will most likely be revoked.
-
-- European Union - European Consumer Protection Act - Seek local laws for limitations
-- United Kingdom - Consumer Rights Act 2015
-- United States - TBC potentially violates the ESIGN ACT
-:::
-
-### July 2014
-
-Mojang expanded on the 'One Major Rules' and introduced the following vague changes
-
-- You can't make commercial use of, try to make money from, or let other people get access to our game and its parts in a way that is unfair or unreasonable
-- Notch basically said ask for donations but players cannot receive anything in return else it counts as a sale
+
+ - All servers are now required to be suitable for all ages
+ - All servers are now required to disclose their non-affiliation with Mojang and/or Microsoft
+ - All servers are now required to implement their own ToS before a player is allowed to play
+ - All players are now required to check back to the EULA on their own accord and players will not be updated of the change
+ - Anything from non-commercial blogs, servers, community forums, fan sites, fan clubs, news groups, events, and gatherings are now deemed as commercial and must follow the CUG even if it will never make money
+ - Mojang now has complete control over all forms of Minecraft content on online platforms
+ - Mojang now has control over the term 'Minecraft' in creative content (YouTube, Twitch etc.) which may result in content removal
+ - Mojang has the authority to grant or revoke permissions and consents at their discretion if they deem it appropriate or dislike what players are doing
+ - Mojang has now outlawed the use of out-of-game mechanics to limit access to your Minecraft server e.g. queue based platforms in addition to gatekept content
+
\ No newline at end of file
diff --git a/src/content/docs/information/releases.mdx b/src/content/docs/information/releases.mdx
index cd13cb90e7..c140ef8cfd 100644
--- a/src/content/docs/information/releases.mdx
+++ b/src/content/docs/information/releases.mdx
@@ -5,9 +5,6 @@ title: Release Tracker
lastUpdated: 2023-09-23
sidebar:
order: 2
- badge:
- text: New
- variant: note
---
This page aims to cover the latest information for Java tracking the required Java builds and fork compatibility.
@@ -20,9 +17,11 @@ This page aims to cover the latest information for Java tracking the required Ja
### Notable Changes
-- Added additional shortcuts to debug menu
-- Added additional reporting mechanism for skins and usernames
-- Bug fixes and optimisation
-- Improved diamond ore generation
-- Improved mob attack ranges
-- Improved multiplayer connectivity
+
+ - Added additional shortcuts to debug menu
+ - Added additional reporting mechanism for skins and usernames
+ - Bug fixes and optimisation
+ - Improved diamond ore generation
+ - Improved mob attack ranges
+ - Improved multiplayer connectivity
+
\ No newline at end of file
diff --git a/src/content/docs/tools/database.mdx b/src/content/docs/tools/database.mdx
index 6b51e2960b..a728731004 100644
--- a/src/content/docs/tools/database.mdx
+++ b/src/content/docs/tools/database.mdx
@@ -15,11 +15,11 @@ Databases are used for centralised storage with unrestricted limitations to read
### Common database types
If you're hosting a server the most common types of databases you'll be interacting with are 'SQL' based. This will most likely be one of the following solutions:
-
-- MySQL (Legacy project)
-- MariaDB (Modern MySQL fork)
-- MSSQL (The Microsoft edition of MySQL)
-
+
+ - MySQL (Legacy project)
+ - MariaDB (Modern MySQL fork)
+ - MSSQL (The Microsoft edition of MySQL)
+
From an end user perspective all database types will produce a `.sql` file when exported and can be maintained through a common interface like phpMyAdmin, Adminer or MySQL Workbench.
:::tip
@@ -35,6 +35,6 @@ In a Minecraft environment you're most likely going to come across databases in
If you're running a server with a hosting provider they too will most likely give you the ability to create databases for your plugin data, if you're limited on local disk space using SQL for plugin data may off-lift some local capacity constraints.
-:::info
+:::note
If you're looking to deploy your own Private SQL instance, you can follow a tutorial such as the one on the [Digital Ocean community forums](https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-22-04) that covers installation, configuration and securing your instance.
:::
\ No newline at end of file
diff --git a/src/content/docs/tools/offline-mode.mdx b/src/content/docs/tools/offline-mode.mdx
index 5eb78ad270..0cf0f2eb7c 100644
--- a/src/content/docs/tools/offline-mode.mdx
+++ b/src/content/docs/tools/offline-mode.mdx
@@ -33,7 +33,8 @@ This may prove a problem for larger servers, as Mojang may blacklist clients fro
### Valid Use Cases
However, there are a few valid use cases in which offline mode can be used without such implications. They will be listed below:
-
-- Proxies such as BungeeCord and Velocity which require backend servers to have online mode disabled - the proxy must have online mode enabled for this to count
-- Offline local-hosted environments which lack internet access, assuming everyone owns a Minecraft account otherwise
-- Local-hosted development servers for testing plugins and mods
\ No newline at end of file
+
+ - Proxies such as BungeeCord and Velocity which require backend servers to have online mode disabled - the proxy must have online mode enabled for this to count
+ - Offline local-hosted environments which lack internet access, assuming everyone owns a Minecraft account otherwise
+ - Local-hosted development servers for testing plugins and mods
+
\ No newline at end of file
diff --git a/src/content/docs/tools/server-software.mdx b/src/content/docs/tools/server-software.mdx
index 117cec0d6b..2ac878c4c5 100644
--- a/src/content/docs/tools/server-software.mdx
+++ b/src/content/docs/tools/server-software.mdx
@@ -4,6 +4,9 @@ description: This page covers a list of well known server.jars.
title: Server Software
---
+import MainStatusPill from '../../../components/MainStatusPill.vue'
+import { LinkCard, CardGrid } from '@astrojs/starlight/components';
+
When creating a server there are multiple different names you will come across. Each server software has its own uses.
Server Software is very often referred to as "Server Jar(s)".
@@ -16,50 +19,45 @@ A "Fork" is a modified version of server software. These often share the same co
There are hundreds (if not thousands) of different forks. This document will only include the recommended, stable, widely-used ones.
-#### Vanilla
-
-As the name suggests, it is a completely Vanilla server from Mojang itself without any modifications. Great for those who want to host a small server for a couple of friends without altering any mechanics, but definitely not good for large servers. It uses datapacks instead of plugins.
+#### Vanilla No Plugin Support
-
+As the name suggests, it is a completely Vanilla server from Mojang itself without any modifications. Great for those who want to host a small server for a couple of friends without altering any mechanics, but definitely not good for large servers.
+
-#### Paper
+#### Paper Recommended
Paper is the most widely-used Server Jar nowadays. A fork of Spigot with its own API, numerous optimizations alongside tons of glitch/dupe fixes make Paper the main choice for most server owners.
-
-
+
#### Purpur
A fork of Paper which provides numerous gameplay-enhancing features without having to download/create plugins. These include being able to adjust gameplay behaviors not seen in Paper, mob health, and more. Only has a couple of optimization options, but it does allow you to toggle some dupes.
-
-
+
#### Pufferfish
A fork of Paper which greatly improves performance without causing any noticeable impact to gameplay. Includes hopper, entity, map rendering and many other optimizations. Highly recommended for most servers.
-
-
-
-#### UniverseSpigot
-
-High-Performance fork of Pufferfish consisting of countless optimizations. The best bang for the buck option, costing only $60. Only recommended for larger networks experiencing lag in case the [advanced optimization checklist](https://www.setup.md/guides/optimisation/advanced) was insufficient.
-
-
-
+
#### Folia
@@ -73,27 +71,33 @@ Do you need to use it? Highly unlikely. Can you use it? Probably. Will a good
**Every command and feature should be tested.**
:::
-
+
#### Legacy 1.8 Jars
It is highly recommended that you do not use 1.8 or any of its other releases. However, if it's a requirement for whatever reason these are the better jars to use.
- - [NachoSpigot](https://github.com/CobbleSword/NachoSpigot)
- - [BurritoSpigot](https://github.com/CobbleSword/BurritoSpigot)
- - [SportPaper](https://github.com/Electroid/SportPaper)
- - [PandaSpigot](https://github.com/hpfxd/PandaSpigot)
- - [WindSpigot](https://github.com/Wind-Development/WindSpigot)
+
+
+
+
+
+
+
#### Forge
Forge is a modding API and server jar. It is most commonly used for servers with large modpacks. However, it is not very optimized and suffers from poor performance.
+
-
#### Fabric
@@ -105,9 +109,11 @@ Fabric is similar to Forge (but not a fork) in the sense that it also supports m
Do not use any server software such as Magma or Mohist. These are generally unstable. [Mohist also replaces EssentialsX jars with modified jars](https://essentialsx.net/do-not-use-mohist.html), which might not be safe.
:::
-
+
---
@@ -119,19 +125,23 @@ Proxies are used to connect multiple regular servers (such as Paper servers) tog
A more recent project, now run by the Paper developers. Velocity uses its own API, meaning it does not work with Bungeecord / Waterfall (Unless you use [SNAP!](https://forums.papermc.io/threads/snap-run-bungeecord-plugins-on-velocity.31/), which allows you to use Bungeecord plugins on Velocity. Not recommended, though.)
-Velocity is practically superior to Bungeecord / Waterfall unless you're hosting older than 1.13 servers. However, many developers haven't added Velocity support to their plugins.
+Velocity is a superior solution compared to Bungeecord / Waterfall unless you're hosting older than 1.13 servers but many developers haven't added Velocity support to their plugins.
-
+
#### Waterfall
A fork of Bungeecord run by the Paper developers, Waterfall supports most if not all Bungeecord plugins. It also comes with a couple of networking optimizations.
-
+
---
@@ -143,9 +153,11 @@ If you're using Pterodactyl, consider using the [Geyser Standalone Egg](https://
Geyser Standalone also allows you to connect to servers that you do not own. However, this is not recommended as it will more than likely lead to a swift ban from the anti-cheat.
-
+
---
@@ -153,10 +165,10 @@ Geyser Standalone also allows you to connect to servers that you do not own. How
There are sometimes cool spin-offs that we feel are worthy of mentioning their existance, please note they may no longer be in active development at the time you're viewing this article.
-- [Petal](https://github.com/Bloom-host/Petal) by Bloom Host
-- [PaperRecorder](https://github.com/Bryan1029384756/PaperRecorder) by Bryan1029384756
-
-
+
+
+
+
diff --git a/src/content/docs/tools/signed-chat.mdx b/src/content/docs/tools/signed-chat.mdx
index b3e28ea812..3a1b53c41d 100644
--- a/src/content/docs/tools/signed-chat.mdx
+++ b/src/content/docs/tools/signed-chat.mdx
@@ -4,12 +4,16 @@ title: Signed Chat
slug: t/signed-chat
---
+import MainStatusPill from '../../../components/MainStatusPill.vue'
+import { LinkCard } from '@astrojs/starlight/components';
+
First things first, it's important to set the story straight. Mojang had always had a reporting toolset for anyone who wished to use it however with the introduction of 1.19.1 changes were made to this system that a reasonable portion of the community didn't like.
This patch specially introduces a couple of new features being:
-
-- In-Game UI reporting
-- Cryptography and signing
+
+ - In-Game UI reporting
+ - Cryptography and signing
+
The purpose of this page serves as an advisory for those who wish to understand further what this means and what options are available to them.
@@ -23,33 +27,39 @@ This is accurate to the best of our abilities, if there is someone with a better
These new keys are stored in .json format under the '%appdata%/.minecraft/profilekeys' folder on your PC.
-:::info
+:::note
These keys are regenerated after 48 hours
:::
The 'process' now works as follows:
-
-- User opens up their Minecraft client
-- Check for keys / generation of new keys occurs if required
-- User launches Game
-- User joins their desired Minecraft server
- - On join the client also makes it's public key available to the server
-- User sends a message in chat
- - Client signs the message using the private key providing a level of authenticity
- - Signed message is sent to the server
- - Server can validate the message came from your client using your public key
-- Server displays the chat messages
-
-Every time a message is sent in chat the last 2 steps are repeated.
-
+
+ - User opens up their Minecraft client
+ - Check for keys / generation of new keys occurs if required
+ - User launches Game
+ - User joins their desired Minecraft server
+
+ - On join the client also makes it's public key available to the server
+
+ - User sends a message in chat
+
+ - Client signs the message using the private key providing a level of authenticity
+ - Signed message is sent to the server
+ - Server can validate the message came from your client using your public key
+ - Server displays the chat messages
+
+
+
+Every time a message is sent in chat the last 2 steps are repeated.
+
#### User Reports
When a user is reported via the new in-game screen ui the following process occurs:
-
-- User selects the offending user and messages they wish to report
-- The message in question and surrounding message are also sent to Microsoft for review
+
+ - User selects the offending user and messages they wish to report
+ - The message in question and surrounding message are also sent to Microsoft for review
+
Once a report is sent, it is reviewed by Mojang's moderation team who will gauge an appropriate punishment for the offender(s). Any Microsoft punishment is in-line with it's current community guidelines and effect your entire account not just the single Minecraft server, these punishments can result in removal of your Multiplayer access.
@@ -72,7 +82,7 @@ Option one is disabling 'chat-signing' within your client, this will prevent you
If you're running your own server there are a few options that can be used depending if you're running vanilla, modded or a plugin based server, these are as follows.
-##### Edit server.properties file
+##### Edit server.properties file Global
You can edit the following switch to 'false' which will disable the requirement for users to use chat-signing.
@@ -84,7 +94,7 @@ enforce-secure-profile = false
...
```
-##### No Chat Reports
+##### No Chat Reports Modded Only
No Chat Reports is a Minecraft mod created by Aizistral that works on both the client and server sides. It strips cryptographic signatures from player chat messages, effectively converting them to system messages, thus making them non-reportable.
@@ -92,33 +102,41 @@ No Chat Reports is a Minecraft mod created by Aizistral that works on both the c
Joining a server with `enforce-secure-profile=true` on a client with No Chat Reports installed will display a prompt warning the user that chat will be signed if they agree to it.
:::
-
+
-##### FreedomChat
+##### FreedomChat Spigot / Paper & forks only
FreedomChat effectively serves the same purpose as No Chat Reports would on a modded server, it converts player chat messages to system messages at the packet level, making them once again non-reportable by players.
-
+
-##### AntiPopup
+##### AntiPopup Spigot / Paper & forks only
While this plugin works, manual setup is required - the command `/antipopup setup` must be ran in console unless `enforce-secure-profile` is set to `false` already.
-
+
-##### UnSignedVelocity
+##### UnSignedVelocity Velocity only
This plugin works by removing signed information from commands and messages sent by clients 1.19.1 or higher, allowing plugins that cancel proxy messages to work again. Requires VPacketEvents
-
+
:::caution
diff --git a/src/content/docs/tools/tunnels.mdx b/src/content/docs/tools/tunnels.mdx
index 79e677b5db..b115348da5 100644
--- a/src/content/docs/tools/tunnels.mdx
+++ b/src/content/docs/tools/tunnels.mdx
@@ -4,6 +4,8 @@ description: Using tunnels to host without port forwarding
title: Tunnels
---
+import { LinkCard, CardGrid } from '@astrojs/starlight/components';
+
If you want to host a Minecraft server that others can access but don't want to or cannot forward ports due to reasons such as security implications or restrictions imposed by your host or Internet service provider, look no further than using tunnels.
Simply put, these are proxies that run on your host and connect your server to a public network without opening a port on your router/firewall.
@@ -15,9 +17,11 @@ This page aims to look at a variety of software used to open tunnels, their pros
### Ngrok
A single-binary application that exposes local TCP ports to the internet through secure tunnelling: to set up ngrok on your server...
-1. Create an ngrok.com account
-2. Download the ngrok binary for your system
-3. Copy and paste your authtoken command into the terminal, typically
+
+ - Create an ngrok.com account
+ - Download the ngrok binary for your system
+ - Copy and paste your authtoken command into the terminal, typically
+
```bash
...
@@ -25,7 +29,9 @@ A single-binary application that exposes local TCP ports to the internet through
...
```
-4. Run the ngrok agent to expose a port
+
+ - Run the ngrok agent to expose a port
+
```bash
...
@@ -35,15 +41,18 @@ A single-binary application that exposes local TCP ports to the internet through
```
#### Pros
-
-* Relatively quick to set up (single binary)
-* Open-source integrations
+
+ - Relatively quick to set up (single binary)
+ - Open-source integrations
+
#### Cons
The free version of Ngrok is very limited:
-* Server address changes every time the ngrok agent is restarted (static URLs are only available for HTTP sites)
-* Extremely limited bandwidth (1GB/month)
+
+ - Server address changes every time the ngrok agent is restarted (static URLs are only available for HTTP sites)
+ - Extremely limited bandwidth (1GB/month)
+
Additionally, ngrok does not support UDP tunnelling and therefore Geyser cannot be tunnelled for Bedrock Edition players
@@ -51,38 +60,45 @@ Additionally, ngrok does not support UDP tunnelling and therefore Geyser cannot
Ngrok is best suited to development servers that should be able to be accessed from anywhere, as well as smaller servers run by those who cannot forward ports on their network equipment.
-[ngrok](https://ngrok.com)
+
---
### Playit
A global proxy that exposes your game server to the Internet, securely tunneled through Playit's servers. To set up Playit on your Minecraft server... (assuming you use Bukkit or a fork)
-
-1. Create an account on [playit.gg](https://playit.gg) and verify your email address
-2. Download the Playit agent plugin from [here](https://playit.gg/download/plugins) to your server's plugins folder
-3. Restart your server
-4. Click on the URL that the plugin outputs to the console or chat and log in to Playit
-5. Add the agent to your account and wait for the tunnel to be created
-
+
+ - Create an account on [playit.gg](https://playit.gg) and verify your email address
+ - Download the Playit agent plugin from [here](https://playit.gg/download/plugins) to your server's plugins folder
+ - Restart your server
+ - Click on the URL that the plugin outputs to the console or chat and log in to Playit
+ - Add the agent to your account and wait for the tunnel to be created
+
Your tunnel should then be active! Share the address given by Playit with your players and you should be good to go!
#### Pros
-
-* Generous free plan (4 TCP and 4 UDP ports, 6 firewall rules to block IPs and ranges etc.)
-* Premium plan only $3 per month, offers good upgrades such as extra ports and firewall rules, up to 6 external domains and even 3 dedicated IPv6 addresses (provided your network uses IPv6)
-* Static domain name for servers
-* Server plugin allows integration with Playit without running the agent as a separate process
-
+
+ - Generous free plan (4 TCP and 4 UDP ports, 6 firewall rules to block IPs and ranges etc.)
+ - Premium plan only $3 per month, offers good upgrades such as extra ports and firewall rules, up to 6 external domains and even 3 dedicated IPv6 addresses (provided your network uses IPv6)
+ - Static domain name for servers
+ - Server plugin allows integration with Playit without running the agent as a separate process
+
#### Cons
-
-Playit only allows for external domains to be used on its premium plan: the free plan assigns a randomly-generated subdomain in the format `name.ply.gg`
+
+ - Playit only allows for external domains to be used on its premium plan: the free plan assigns a randomly-generated subdomain in the format `name.ply.gg`
+
#### Bottom Line
Playit is the most common and recommended option when it comes to Minecraft server tunnelling, with a vast community on its forums and Discord server and knowledgebase for common guides and issues.
-[Playit](https://playit.gg)
+
---
@@ -91,15 +107,16 @@ Playit is the most common and recommended option when it comes to Minecraft serv
Minekube's Connect is a plugin that links Minecraft servers to a global network in a similar practice to [Minehut](https://minehut.com)
#### Pros
-
-* Plug and play: just drop the plugin into your server's plugins directory and copy the generated address!
-* Subdomain can be changed in the configuration
-* Passive advertising on the Connect network allows for extra player traffic
-
+
+ - Plug and play: just drop the plugin into your server's plugins directory and copy the generated address
+ - Subdomain can be changed in the configuration
+ - Passive advertising on the Connect network allows for extra player traffic
+
#### Cons
-
-* Custom domains not yet supported
-* Passive advertising not best suited for private servers
+
+ - Custom domains not yet supported
+ - Passive advertising not best suited for private servers
+
#### Bottom Line
@@ -116,7 +133,10 @@ Players joining your server through the Connect network will not be able to join
This can be a downside for those who want [signed chat](/t/signed-chat) to be enforced on their servers but want to advertise and grow their playerbase on the network.
:::
-[Connect](https://connect.minekube.com/)
+
---
@@ -125,21 +145,29 @@ This can be a downside for those who want [signed chat](/t/signed-chat) to be en
Cloudflared is a server-side daemon that allows the tunnelling of network traffic through Cloudflare's secure network
Here are some resources on how to run and tunnel Minecraft servers using cloudflared:
-- [Cloudflare Community - Would I be able to use cloudflare tunnel to host a minecraft server?](https://community.cloudflare.com/t/would-i-be-able-to-use-cloudflare-tunnel-to-host-a-minecraft-server/383942)
-- [Cyb3r Jak3 - Minecraft Server using Cloudflared](https://blog.cyberjake.xyz/post/2022-03-26-cloudflared-minecraft/)
+
+
+
+
-#### Pros
-* Traffic is proxied through Cloudflare's network, renowned for its terabit-capacity DDoS mitigation.
+#### Pros
+
+ - Traffic is proxied through Cloudflare's network, renowned for its terabit-capacity DDoS mitigation.
+
#### Cons
-
-* Setup is very complicated
-* Individual tunnels must be created using cloudflared for each port that you wish to be open.
-* All players must have cloudflared installed and running on their computers to access the server
+
+ - Setup is very complicated
+ - Individual tunnels must be created using cloudflared for each port that you wish to be open
+ - All players must have cloudflared installed and running on their computers to access the server
+
#### Bottom Line
This option is best for server owners and players who are willing to take on the more complicated setup and requirements, allowing for rock-solid security without the need for DDoS protected proxy
-[Cloudflared](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/)
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/content/docs/troubleshooting/connectivity.mdx b/src/content/docs/troubleshooting/connectivity.mdx
index 007bbcc4e1..c8afa5f5dd 100644
--- a/src/content/docs/troubleshooting/connectivity.mdx
+++ b/src/content/docs/troubleshooting/connectivity.mdx
@@ -50,18 +50,23 @@ You can find your host devices internal LAN address by running `ipconfig` within
Providing you can connect internally to your server, the issue most likely falls with either your router and port forwarding or your IPS and their use of CGNAT.
The first thing we need to check is port forwarding is configured correctly, you will need to slightly adjust the below steps as the wording on every router model / firewall is different.
-
-- Login to the admin interface (normally on http(s)://192.168.1.254 or http(s)://192.168.1.1)
- - Admin username and password is normally on the bottom but a Google search may also help
-- Look for a 'Port Forwarding / NAT folder'
- - You may need to go into any 'Advanced Settings' tab first
-- You should ensure the rule has been configured as expected
- - Service Name - 'Minecraft'
- - Protocol - 'TCP'
- - Internal IP - '(Internal LAN IP of Host Device)'
- - Internal Port - '(Match server.properties file)'
- - External Port - '(Match server.properties file)'
-- Save changes
+
+ - Login to the admin interface (normally on http(s)://192.168.1.254 or http(s)://192.168.1.1)
+
+ - Admin username and password is normally on the bottom but a Google search may also help
+
+ - Look for a 'Port Forwarding / NAT folder'
+ - You may need to go into any 'Advanced Settings' tab first
+ - You should ensure the rule has been configured as expected
+
+ - Service Name - 'Minecraft'
+ - Protocol - 'TCP'
+ - Internal IP - '(Internal LAN IP of Host Device)'
+ - Internal Port - '(Match server.properties file)'
+ - External Port - '(Match server.properties file)'
+
+ - Save changes
+
It might not be possible to reach your external IP from inside your own network so a tool like canyouseeme can help check the port 25565 from an external source.
@@ -76,18 +81,19 @@ Since release 1.3 Minecraft supports a method of connectivity called 'SRV' Recor
In using an SRV record you bind the hostname and the service you're running (a Minecraft server) to the specific port so when you go to your client you would only have to type `play.mycoolserver.net` into your client and the SRV record would tell your client "hey use this port".
Sometimes an end user may be using a DNS provider that doesn't support SRV records, any issues they have with connectivity can be resolved by changing their local DNS to a free public resolver such as:
-
-- Quad9: 9.9.9.9
-- Cloudflare: 1.1.1.1
-- Google: 8.8.8.8
+
+ - Quad9: 9.9.9.9
+ - Cloudflare: 1.1.1.1
+ - Google: 8.8.8.8
+
When you create the record you should ensure it's configured as follows:
`_minecraft._tcp. IN SRV 1 1 `
-
- - host - this should be your current providers connection hostname
+
+ - Host - this should be your current providers connection hostname
- TTL - set this to auto if using Cloudflare DNS or 3600 in any other dns providers panel
- - port - this should be the port you're currently using to connect to your server with
- - subdomain - this should represent what you want your players to connect with
+ - Port - this should be the port you're currently using to connect to your server with
+ - Subdomain - this should represent what you want your players to connect with
diff --git a/src/content/docs/troubleshooting/java.mdx b/src/content/docs/troubleshooting/java.mdx
index 2b7525cb68..c92a32d786 100644
--- a/src/content/docs/troubleshooting/java.mdx
+++ b/src/content/docs/troubleshooting/java.mdx
@@ -12,18 +12,19 @@ Depending on the OS you're running there are multiple ways to set the ENV / PATH
#### Windows
If you're on windows this can be done entirely via the UI however some steps maybe slightly different depending on your Windows release. Below are steps based on Windows 11.
-
-- Navigate to `c:\program files\java` and identify the JDK version folder name e.g. `jdk-19`.
-- Open the bin folder within the JDK folder and copy the full folder path from file explorer.
-- Select the Windows icon open the start menu and go to 'Settings'
-- Select the 'System' tab on the left hand side and go to the 'About' menu
-- Open 'Advanced System Settings'
-- Select the 'Advanced' tab
-- Select 'Environment Variables'
-- Under 'System Variables' scroll down until you see 'Path'
-- Select 'Edit'
-- Now select 'New' and paste in the file explorer path you copied earlier
-- Press 'OK' to save changes
+
+ - Navigate to `c:\program files\java` and identify the JDK version folder name e.g. `jdk-19`
+ - Open the bin folder within the JDK folder and copy the full folder path from file explorer
+ - Select the Windows icon open the start menu and go to 'Settings'
+ - Select the 'System' tab on the left hand side and go to the 'About' menu
+ - Open 'Advanced System Settings'
+ - Select the 'Advanced' tab
+ - Select 'Environment Variables'
+ - Under 'System Variables' scroll down until you see 'Path'
+ - Select 'Edit'
+ - Now select 'New' and paste in the file explorer path you copied earlier
+ - Press 'OK' to save changes
+
You can verify the above steps have worked as expected by running the following command in a command prompt window.
@@ -64,17 +65,19 @@ exec zsh -l
### Wrong version of Java installed
When it comes to the 'wrong version installed' there's a few factors to consider.
-
-- Bit edition (x86 or x64 or ARM etc)
-- Major LTS revision
+
+ - Bit edition (x86 or x64 or ARM etc)
+ - Major LTS revision
+
You can identify if you're having issues due to the bit version by lowering the start-up args from a value greater than `4` for -Xms and -Xmx. If your server boots without issues to the `Done in X seconds` line you will need to uninstall your java release and download the 64 bit edition as this doesn't have the 4GB RAM memory limitation.
If your server still doesn't boot after decreasing the RAM it's most likely that your machine has the wrong edition of Java installed, certain major releases of Java dropped legacy builds as time has gone on.
The most commonly adopted Java releases are as follows:
-
-- Java 8 (LTS)
-- Java 11 (LTS)
-- Java 17 (LTS)
-- Java 19 (LTS)
\ No newline at end of file
+
+ - Java 8 (LTS)
+ - Java 11 (LTS)
+ - Java 17 (LTS)
+ - Java 19 (LTS)
+
\ No newline at end of file
diff --git a/src/content/docs/troubleshooting/latency.mdx b/src/content/docs/troubleshooting/latency.mdx
index fb393cfd22..d3e7e54bcf 100644
--- a/src/content/docs/troubleshooting/latency.mdx
+++ b/src/content/docs/troubleshooting/latency.mdx
@@ -11,16 +11,17 @@ If you've ever run a server, played on a server or you're Australian then the ph
Unfortunately this isn't always something that's easily correctable, providing you've ensured the issue isn't related to your hardware the server runs on then you should consider the network and primarily latency.
Latency related issues can normally be identified by one of these factors being true.
-
-- Blocks don't automatically disappear after being mined
-- One bar of connectivity in the tab menu
-- You're located on the other side of the planet
+
+ - Blocks don't automatically disappear after being mined
+ - One bar of connectivity in the tab menu
+ - You're located on the other side of the planet
+
Technically speaking the total duration of the request being sent from your machine, processed by the recipient and then sent back is measured in milliseconds 'ping' (latency). The longer it takes to process a request the more noticable and degraded your user experience becomes.
:::note
If you've previously been able to join a Minecraft server without issues but you login the next day and it's unplayable then the latency should resolve with time due to global maintenance in a datacentre somewhere on the planet that your requests utilise.
-
+
Your ISP is unable to do anything about latency
:::
@@ -32,10 +33,12 @@ Unfortunately there is no single tool to fix your problem however if you're look
Vultr offeres a free looking glass service across all of their locations, all of our nodes support IPv4 and IPv6 and respond to ICMP (ping), MTR and traceroute requests. You can use this service to estimate what your ping will be like for those across the globe.
-- [https://lon-gb-ping.vultr.com](https://lon-gb-ping.vultr.com/) - London, UK
-- [https://fra-de-ping.vultr.com](https://fra-de-ping.vultr.com/) - Frankfurt, DE
-- [https://tor-ca-ping.vultr.com/](https://tor-ca-ping.vultr.com/) - Toronto, CA
-- [https://sgp-ping.vultr.com/](https://sgp-ping.vultr.com/) - Singapore, SG
+
+ - [https://lon-gb-ping.vultr.com](https://lon-gb-ping.vultr.com/) - London, UK
+ - [https://fra-de-ping.vultr.com](https://fra-de-ping.vultr.com/) - Frankfurt, DE
+ - [https://tor-ca-ping.vultr.com/](https://tor-ca-ping.vultr.com/) - Toronto, CA
+ - [https://sgp-ping.vultr.com/](https://sgp-ping.vultr.com/) - Singapore, SG
+
#### Ideal Ping
diff --git a/src/styles/main.scss b/src/styles/main.scss
new file mode 100644
index 0000000000..e1f0e2244f
--- /dev/null
+++ b/src/styles/main.scss
@@ -0,0 +1,5 @@
+@import "content.scss";
+
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
\ No newline at end of file
diff --git a/tailwind.config.mjs b/tailwind.config.mjs
new file mode 100644
index 0000000000..1edc224d68
--- /dev/null
+++ b/tailwind.config.mjs
@@ -0,0 +1,9 @@
+/** @type {import('tailwindcss').Config} */
+export default {
+ darkMode: "class",
+ content: ["./src/**/*.{astro,html,js,jsx,svelte,ts,tsx,vue,mdx}"],
+ theme: {
+ extend: {},
+ },
+ plugins: [],
+}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index bcbf8b5090..30cf17bb85 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,3 +1,6 @@
{
- "extends": "astro/tsconfigs/strict"
-}
+ "extends": "astro/tsconfigs/strict",
+ "compilerOptions": {
+ "jsx": "preserve"
+ }
+}
\ No newline at end of file