From e3a753b0f177ae7fbf98a5423066f2603c669bb4 Mon Sep 17 00:00:00 2001 From: JustAMatt Date: Thu, 30 Jul 2026 12:27:21 -0300 Subject: [PATCH 01/50] Fix broken documentation references --- docs/VPS/virtfusion-rescue.md | 2 +- docs/games/palworld/info.md | 23 ++++++++----------- .../multiplatform/dynmap.md | 2 +- .../multiplatform/servercore.mdx | 4 ++-- .../plugins/topper.md | 2 +- docs/running_a_server/java-version.md | 1 + docs/running_a_server/motd.md | 8 +++---- docs/running_a_server/timings.md | 4 ++-- static/dynmap-preview.svg | 22 ++++++++++++++++++ .../motd/bungeecord-preview.svg | 15 ++++++++++++ .../motd/server-properties-preview.svg | 13 +++++++++++ .../motd/serverlistplus-preview.svg | 16 +++++++++++++ static/topper-gettop-preview.svg | 16 +++++++++++++ 13 files changed, 104 insertions(+), 24 deletions(-) create mode 100644 static/dynmap-preview.svg create mode 100644 static/running_a_server/motd/bungeecord-preview.svg create mode 100644 static/running_a_server/motd/server-properties-preview.svg create mode 100644 static/running_a_server/motd/serverlistplus-preview.svg create mode 100644 static/topper-gettop-preview.svg diff --git a/docs/VPS/virtfusion-rescue.md b/docs/VPS/virtfusion-rescue.md index 153cc39f7..5cedf49c2 100644 --- a/docs/VPS/virtfusion-rescue.md +++ b/docs/VPS/virtfusion-rescue.md @@ -20,7 +20,7 @@ In this guide we'll learn how to access our VPS via our Virtfusion Bloom panel i ## Prerequisites -Before following this guide, make sure you've enabled VNC and opened the Console. To do so, follow our [Virtfusion VNC Guide](https://docs.bloom.host/VPS/virtfusion-rescue)- +Before following this guide, make sure you've enabled VNC and opened the Console. To do so, follow our [VirtFusion VNC Guide](/VPS/virtfusion-vnc). ### Starting Rescue Mode diff --git a/docs/games/palworld/info.md b/docs/games/palworld/info.md index b135cc524..876fa7251 100644 --- a/docs/games/palworld/info.md +++ b/docs/games/palworld/info.md @@ -15,26 +15,23 @@ keywords: ## Known Issues / FAQ -1. **The server won't show up in the Community-Server tab**: - - This is a known problem and the devs will hopefully fix that asap. Best choice is to connect by IP and Password. -2. **The server has a memory leak**: - - This is also an issue that they are aware of. - - The `bEnableInvaderEnemy` option seems to have a huge impact on the current RAM usage. Disabling it might be choice. - - Tip: Schedule a server restart every 6h. You might adjust the value according to your system! -3. **The server does not show up in the steam server list**: - - This is currently and might never be supported. +1. **The server won't show up in the Community Server list**: + - Palworld treats direct-connect and Community Servers as separate server types. Direct-connect servers are joined by IP address and port, while Community Servers must be configured for the in-game list. See the [official server-type guide](https://docs.palworldgame.com/getting-started/about-server/). +2. **The server is using a lot of memory**: + - Palworld officially requires 16 GB of memory and recommends more than 32 GB for larger servers. An 8 GB server may start, but is more likely to crash from running out of memory. + - Monitor memory usage and schedule restarts if your server needs them. +3. **Should I use direct connection or the Community Server list?**: + - Use direct connection for a private server joined by IP address and port. Configure a Community Server when it needs to appear in the in-game server list. 4. **The config file gets deleted / reset on server restart**: - - Before editing the config file always make sure to fully stop the server first. Otherwise all changes won't be saved. + - Fully stop the server before editing `PalWorldSettings.ini`, then start it again after saving your changes. See the [official configuration guide](https://docs.palworldgame.com/settings-and-operation/configuration/). --- ## Recommended Server Limits -Due to at least one memory leak the server requires about 16-32 GB RAM. -Referring to the [official documentation](https://tech.palworldgame.com/dedicated-server-guide) you can start the server with 8GB but you will run out of memory very quickly. -The minimum should be 16GB but 32GB are fairly recommended for now. +The [official requirements](https://docs.palworldgame.com/getting-started/requirements/) specify 16 GB of memory and recommend more than 32 GB for larger servers. An 8 GB server may start, but has a higher risk of crashing due to insufficient memory. -As of January 19th 2024 the server requires about 5GB of storage space. This might extend with further content/updates. +Use SSD storage where possible; the official guide warns that low-performance storage may corrupt save data. --- diff --git a/docs/plugins_and_modifications/multiplatform/dynmap.md b/docs/plugins_and_modifications/multiplatform/dynmap.md index 34e49141b..2e9d57a75 100644 --- a/docs/plugins_and_modifications/multiplatform/dynmap.md +++ b/docs/plugins_and_modifications/multiplatform/dynmap.md @@ -24,7 +24,7 @@ keywords: ## What does the plugin do? Dynmap allows you to see your Minecraft world in 3D in real time, like Google Maps. -![Dynmap preview](https://cdn.discordapp.com/attachments/716405933105872938/750877749954084875/unknown.png) +![Dynmap browser map showing terrain, roads, and player markers](/dynmap-preview.svg) # Usage Spigot/Paper: Download the Dynmap plugin and place into the `plugins` folder then restart your server to generate `configuration.txt`. Create a MySQL database. If you are unsure, [check out this guide](/databases). diff --git a/docs/plugins_and_modifications/multiplatform/servercore.mdx b/docs/plugins_and_modifications/multiplatform/servercore.mdx index c37c81bc6..140710a14 100644 --- a/docs/plugins_and_modifications/multiplatform/servercore.mdx +++ b/docs/plugins_and_modifications/multiplatform/servercore.mdx @@ -719,5 +719,5 @@ activation-range: --- ### Final note If you encounter issues with ServerCore, please check their [GitHub issues page](https://github.com/Wesley1808/ServerCore/issues). -If you are in need of further help or optimization support, we suggest reading our [Spark guide](/spark). -For further assistance reach out to our community support to get answers from [our community](https://discord.gg/bloom). \ No newline at end of file +If you are in need of further help or optimization support, we suggest reading our [Spark guide](/spark). +For further assistance reach out to our community support to get answers from [our community](https://discord.gg/bloom). diff --git a/docs/plugins_and_modifications/plugins/topper.md b/docs/plugins_and_modifications/plugins/topper.md index 69c7478d9..1114804d6 100644 --- a/docs/plugins_and_modifications/plugins/topper.md +++ b/docs/plugins_and_modifications/plugins/topper.md @@ -14,7 +14,7 @@ keywords: Topper allows you to create customizable leaderboards using PlaceholderAPI placeholders and even paper. It's perfect for displaying top players, stats, or any placeholder-based data directly in-game via holograms. -![image](https://topper-mc.github.io/Wiki/spigot/quickstart/gettop.png) +![Topper gettop command displaying a ten-player leaderboard](/topper-gettop-preview.svg) ## Installation diff --git a/docs/running_a_server/java-version.md b/docs/running_a_server/java-version.md index f7292c0e8..03484e8c4 100644 --- a/docs/running_a_server/java-version.md +++ b/docs/running_a_server/java-version.md @@ -33,3 +33,4 @@ Minecraft 26.1+ will require a minimum of Java 25 to work. :::important If you are unable to change this next setting and you see a message such as "This server's Docker image has been manually set by an administrator and cannot be changed through this UI.", please [open a ticket on the support Discord.](https://discord.com/invite/bloom) and Bloom.host staff will need to change this for you. +::: diff --git a/docs/running_a_server/motd.md b/docs/running_a_server/motd.md index 660c84652..07e6e9117 100644 --- a/docs/running_a_server/motd.md +++ b/docs/running_a_server/motd.md @@ -16,14 +16,14 @@ keywords: ## How to change your MOTD without a plugin -First you need to write your MOTD, you can use [this website](https://mctools.org/motd-creator) to help you. Once you have your MOTD like you want it, copy the `server.properties` code, like the one shown below -![server.properties](https://cdn.discordapp.com/attachments/716405933105872938/751221395622723715/unknown.png) +First you need to write your MOTD, you can use [this website](https://mctools.org/motd-creator) to help you. Once you have your MOTD like you want it, copy the `server.properties` code, like the one shown below +![MOTD creator output ready to paste into server.properties](/running_a_server/motd/server-properties-preview.svg) Open your server panel and head to File Explorer, if you need a hand, check out [this guide!](/file-manager-controls). Now, enter your `server.properties` and head to the motd section and paste the copied text where the old one was, then restart your server and your changes will be made. ## How to change your MOTD with ServerListPlus ServerListPlus is a plugin that changes your MOTD through a plugin also adding features like custom MOTDs for separate players. You can download it [here!](https://www.spigotmc.org/resources/serverlistplus.241/) -Now download and place the plugin into your server's `plugins` folder and restart. Once you have restarted, head into the ServerListPlus folder and open the `config.yml`. Now you can change the MOTD how you like. [This website](https://mctools.org/motd-creator) can help you make one shown below. ![ServerListPlus MOTD configuration example](https://cdn.discordapp.com/attachments/716405933105872938/751223535405629510/unknown.png) +Now download and place the plugin into your servers `plugins` folder and restart. once you have restarted head, into the ServerListPlus folder and open the `config.yml`. Now you can change the MOTD how you like. [this website](https://mctools.org/motd-creator) can help you make one shown below. ![ServerListPlus MOTD configuration and resulting server-list preview](/running_a_server/motd/serverlistplus-preview.svg) ## How to change your MOTD with MiniMOTD MiniMOTD is a plugin (Spigot/Paper/BungeeCord/Velocity) or mod (Fabric/Sponge only) that changes your MOTD using the MiniMessage system and supports RGB (1.16+). You can download it [here!](https://www.spigotmc.org/resources/minimotd-server-list-motd-plugin-with-rgb-gradients.81254/) @@ -35,4 +35,4 @@ The [MiniMessage docs](https://docs.adventure.kyori.net/minimessage/format.html# ## How to change your MOTD on Bungeecord Changing your MOTD on Bungeecord is slightly different. You can still use ServerListPlus or MiniMOTD, following the guide above, but if you want to do it without ServerListPlus or MiniMOTD, enter your Bungeecord `config.yml` and head to the MOTD you can use [this website](https://mctools.org/motd-creator) to help you like the one below. -![Bungeecord motd](https://cdn.discordapp.com/attachments/716405933105872938/751224804815667230/unknown.png) +![BungeeCord MOTD configuration and resulting server-list preview](/running_a_server/motd/bungeecord-preview.svg) diff --git a/docs/running_a_server/timings.md b/docs/running_a_server/timings.md index d349054e8..bb4eb0ff3 100644 --- a/docs/running_a_server/timings.md +++ b/docs/running_a_server/timings.md @@ -20,8 +20,8 @@ keywords: # **How to take a Timings Report** -:::important -The PaperMC team has decided to remove the Timings system and replace it with [Spark](/spark) in a future version. +:::warning Legacy guide +The Timings system is no longer available on current Paper and Purpur servers. Use [Spark](/spark) for current performance reports. Timings should be considered deprecated and no longer be used. Paper 1.21 builds will have the timings system disabled by default. diff --git a/static/dynmap-preview.svg b/static/dynmap-preview.svg new file mode 100644 index 000000000..b8cc379b4 --- /dev/null +++ b/static/dynmap-preview.svg @@ -0,0 +1,22 @@ + + Dynmap browser map preview + A browser-style illustration of a Minecraft world map with terrain, roads, buildings, and player markers. + + + + + map.example.com + + + + + + + + + + + + Dynmap + World • Surface view + diff --git a/static/running_a_server/motd/bungeecord-preview.svg b/static/running_a_server/motd/bungeecord-preview.svg new file mode 100644 index 000000000..3c7e9d006 --- /dev/null +++ b/static/running_a_server/motd/bungeecord-preview.svg @@ -0,0 +1,15 @@ + + BungeeCord MOTD preview + A BungeeCord config.yml MOTD value beside a Minecraft proxy server-list preview. + + + config.yml + listeners: + - motd: '&eBloom Network' + '&fChoose a server!' + + + Bloom Network + Choose a server! + Proxy online + diff --git a/static/running_a_server/motd/server-properties-preview.svg b/static/running_a_server/motd/server-properties-preview.svg new file mode 100644 index 000000000..4ec2cd48f --- /dev/null +++ b/static/running_a_server/motd/server-properties-preview.svg @@ -0,0 +1,13 @@ + + MOTD creator server.properties output + An example Minecraft MOTD preview with the generated server.properties value. + + MOTD creator + + + A Minecraft Server + Welcome to our world! + For official/vanilla server.properties: + + motd=A Minecraft Server \u00A7cWelcome to our world! + diff --git a/static/running_a_server/motd/serverlistplus-preview.svg b/static/running_a_server/motd/serverlistplus-preview.svg new file mode 100644 index 000000000..167a266c4 --- /dev/null +++ b/static/running_a_server/motd/serverlistplus-preview.svg @@ -0,0 +1,16 @@ + + ServerListPlus MOTD preview + A ServerListPlus configuration example beside a Minecraft server-list preview. + + + ServerListPlus.yml + Description: + - | + A Minecraft Server + Welcome, {PLAYER}! + + + A Minecraft Server + Welcome, Player! + Online + diff --git a/static/topper-gettop-preview.svg b/static/topper-gettop-preview.svg new file mode 100644 index 000000000..456c038fb --- /dev/null +++ b/static/topper-gettop-preview.svg @@ -0,0 +1,16 @@ + + Topper gettop leaderboard output + A Minecraft chat-style illustration showing the gettop command followed by a ten-player money leaderboard. + + + > /gettop money 10 + Top money leaderboard + + 1. Alex — $12,4502. Steve — $10,980 + 3. Robin — $9,7404. Sam — $8,920 + 5. Taylor — $8,4106. Jordan — $7,995 + 7. Casey — $7,3408. Morgan — $6,850 + 9. Jamie — $6,20010. Riley — $5,775 + + Leaderboard loaded successfully. + From b3977ad4b0bbbf0f4007d417c9531da6e99ffda8 Mon Sep 17 00:00:00 2001 From: JustAMatt Date: Thu, 30 Jul 2026 12:31:35 -0300 Subject: [PATCH 02/50] Align documentation templates and metadata --- README.md | 15 +++++++-------- docs/extras/template.md | 11 ++++++++--- docs/extras/templatexample.md | 18 +++++++++--------- docs/games/rust/admin.md | 2 +- docs/games/rust/connecting.md | 2 +- docs/games/rust/plugins.md | 2 +- docs/games/rust/worlds.md | 2 +- docs/games/terraria/connecting.md | 2 +- docs/games/terraria/tmodloader/overview.md | 2 +- docs/games/terraria/tshock/admin.md | 2 +- docs/games/terraria/tshock/overview.md | 2 +- docs/games/terraria/tshock/plugins.md | 2 +- docs/getting_started/overview.md | 1 + .../installing-plugins.md | 1 + .../multiplatform/plan.md | 1 + .../multiplatform/simple-voice-chat.md | 1 + .../plugins_and_modifications/proxy-plugins.md | 1 + docs/running_a_server/updating.md | 1 + docs/running_a_server/worlds.md | 2 +- docs/using_the_panel/basic-controls.mdx | 1 + docs/using_the_panel/databases.mdx | 1 + docs/using_the_panel/file-manager-controls.mdx | 1 + docs/using_the_panel/schedules.mdx | 1 + docs/using_the_panel/server-importer.mdx | 1 + docs/using_the_panel/users.mdx | 2 +- sidebars.js | 1 - 26 files changed, 46 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index b4bdf82cd..86e6ffaed 100644 --- a/README.md +++ b/README.md @@ -50,10 +50,10 @@ The document format is listed below, and also listed in [`README.md`](/README.md --- id: title: -slug: <id> -hide_table_of_contents: true -sidebar_label: <sidebar title> description: <short description> +hide_table_of_contents: false +keywords: + - <keyword> --- ... rest of the document ... @@ -63,12 +63,11 @@ description: <short description> ### Templates and formatting help: -There is a [Markdown template](https://raw.githubusercontent.com/Bloom-host/BloomDocs/master/docs/extras/template.md) -which has some examples of markdown-formatting elements (and how to use them) such as bold text, strikethrough, headings -and links. +There is a [documentation style guide and template](https://raw.githubusercontent.com/Bloom-host/BloomDocs/master/docs/extras/templatexample.md) +with the required page structure and examples of supported formatting. -You can also see [a formatted version of the template](https://docs.bloom.host/extras/template/) to see what the -formatted elements will look like when imported into the documentation website. +You can also see [the formatted template](https://docs.bloom.host/extras/templatexample/) to preview how the +elements will look on the documentation website. --- diff --git a/docs/extras/template.md b/docs/extras/template.md index 5362b48f4..91f2cc083 100644 --- a/docs/extras/template.md +++ b/docs/extras/template.md @@ -1,9 +1,10 @@ --- id: template -title: Template +title: Markdown Syntax Reference +unlisted: true hide_table_of_contents: false -sidebar_label: Template :) -description: The template used for contributing +sidebar_label: Markdown Syntax Reference +description: Examples of supported Markdown formatting in Bloom.host documentation. keywords: - Template - Pterodactyl Panel @@ -11,6 +12,10 @@ keywords: - Bloom.host --- +:::note +This page demonstrates Markdown formatting. Contributors should use the [Documentation Style Guide and Template](/extras/templatexample) when creating a page. +::: + You can write content using [GitHub-flavored Markdown syntax](https://github.github.com/gfm/). ## Markdown Syntax diff --git a/docs/extras/templatexample.md b/docs/extras/templatexample.md index 295d9f4ad..eade5e6dd 100644 --- a/docs/extras/templatexample.md +++ b/docs/extras/templatexample.md @@ -1,8 +1,8 @@ --- id: templatexample -title: Template +title: Documentation Style Guide and Template hide_table_of_contents: false -sidebar_label: Template +sidebar_label: Documentation Template description: The template and style guide used for contributing to Bloom.host documentation. keywords: - Template @@ -12,7 +12,7 @@ keywords: --- :::tip Before You Start -This page is a **contributor template and style reference**. Copy this file as a starting point for any new documentation page. Sections marked with `(*)` are mandatory. +This page is a **contributor template and style reference**. Copy this file as a starting point for any new documentation page. Sections marked with `(*)` are required; sections marked `if applicable` are optional. ::: ## Overview (*) @@ -83,12 +83,12 @@ Sometimes a step has multiple valid paths. Use a table or side-by-side breakdown When referencing commands or config files, always use a code block with the appropriate language tag: -``` +```text # Run this in your server console spark profiler start ``` -``` +```yaml # Example config.yml snippet setting: true value: 42 @@ -100,7 +100,7 @@ value: 42 If adding images, place them in the appropriate subfolder under `/static/` and reference them with a relative path. Always add descriptive alt text. -![](/extras/templatexample/duck.jpg) +![Duck standing beside a pond](/extras/templatexample/duck.jpg) ## Docusaurus Admonitions Reference @@ -111,7 +111,7 @@ Docusaurus supports special callout blocks called **admonitions**, created using The basic structure is: -``` +```md :::type Your content here. Supports **Markdown** formatting. ::: @@ -119,7 +119,7 @@ Your content here. Supports **Markdown** formatting. You can also add a **custom title** by appending it after the type: -``` +```md :::note My Custom Title Your content here. ::: @@ -160,4 +160,4 @@ Deleting your `world/` folder is **irreversible**. Always take a backup first. - ✅ **Do** keep the content inside admonitions brief. - ❌ **Don't** stack multiple admonitions back-to-back. - ❌ **Don't** use `:::warning` for anything less than a real risk of data loss or breakage. -- ❌ **Don't** use admonitions as a substitute for well-structured body text. \ No newline at end of file +- ❌ **Don't** use admonitions as a substitute for well-structured body text. diff --git a/docs/games/rust/admin.md b/docs/games/rust/admin.md index 5020d3f13..abdeb4ae6 100644 --- a/docs/games/rust/admin.md +++ b/docs/games/rust/admin.md @@ -1,6 +1,6 @@ --- id: admin -title: Admin Privileges +title: Rust Admin Privileges hide_table_of_contents: true description: Learn how you can manage admin privileges on your Rust server! keywords: diff --git a/docs/games/rust/connecting.md b/docs/games/rust/connecting.md index c91566dc0..6f6cbac45 100644 --- a/docs/games/rust/connecting.md +++ b/docs/games/rust/connecting.md @@ -1,6 +1,6 @@ --- id: connecting -title: Connecting To A Server +title: Connecting to a Rust Server hide_table_of_contents: true description: Learn how to connect to your Rust server! keywords: diff --git a/docs/games/rust/plugins.md b/docs/games/rust/plugins.md index a6931a350..da90b61bd 100644 --- a/docs/games/rust/plugins.md +++ b/docs/games/rust/plugins.md @@ -1,6 +1,6 @@ --- id: plugins -title: Using Plugins +title: Using Rust Plugins hide_table_of_contents: true description: Learn how you can install and use plugins on your Rust server! keywords: diff --git a/docs/games/rust/worlds.md b/docs/games/rust/worlds.md index d4953e58b..010c8a162 100644 --- a/docs/games/rust/worlds.md +++ b/docs/games/rust/worlds.md @@ -1,6 +1,6 @@ --- id: worlds -title: Managing Worlds +title: Managing Rust Worlds hide_table_of_contents: true description: Learn how you can modify, manage, wipe or use custom worlds on your Rust server! keywords: diff --git a/docs/games/terraria/connecting.md b/docs/games/terraria/connecting.md index a4f76e77b..ad9eb2ac7 100644 --- a/docs/games/terraria/connecting.md +++ b/docs/games/terraria/connecting.md @@ -1,6 +1,6 @@ --- id: connecting -title: Connecting To A Server +title: Connecting to a Terraria Server hide_table_of_contents: true description: Learn how to connect to your Terraria server! keywords: diff --git a/docs/games/terraria/tmodloader/overview.md b/docs/games/terraria/tmodloader/overview.md index dfb5e788f..57cea59f4 100644 --- a/docs/games/terraria/tmodloader/overview.md +++ b/docs/games/terraria/tmodloader/overview.md @@ -1,6 +1,6 @@ --- id: overview -title: Overview +title: tModLoader Overview hide_table_of_contents: true description: Learn about what tModLoader is and how you can set it up on your Bloom server! keywords: diff --git a/docs/games/terraria/tshock/admin.md b/docs/games/terraria/tshock/admin.md index 8133a656a..296641068 100644 --- a/docs/games/terraria/tshock/admin.md +++ b/docs/games/terraria/tshock/admin.md @@ -1,6 +1,6 @@ --- id: admin -title: Admin Privileges +title: TShock Admin Privileges hide_table_of_contents: true description: Learn how you can earn admin privileges on your TShock server! keywords: diff --git a/docs/games/terraria/tshock/overview.md b/docs/games/terraria/tshock/overview.md index 0f213ae69..edad75f1f 100644 --- a/docs/games/terraria/tshock/overview.md +++ b/docs/games/terraria/tshock/overview.md @@ -1,6 +1,6 @@ --- id: overview -title: Overview +title: TShock Overview hide_table_of_contents: true description: Learn about what TShock is and how you can set it up on your Bloom server! keywords: diff --git a/docs/games/terraria/tshock/plugins.md b/docs/games/terraria/tshock/plugins.md index 6c25d899a..d48f0516d 100644 --- a/docs/games/terraria/tshock/plugins.md +++ b/docs/games/terraria/tshock/plugins.md @@ -1,6 +1,6 @@ --- id: plugins -title: Using Plugins +title: Using TShock Plugins hide_table_of_contents: true description: Learn how you can install and use plugins on your TShock server! note: This is referenced on the /terraria page on the main site diff --git a/docs/getting_started/overview.md b/docs/getting_started/overview.md index 954fa6fa7..eedd96901 100644 --- a/docs/getting_started/overview.md +++ b/docs/getting_started/overview.md @@ -4,6 +4,7 @@ title: Docs Overview slug: / hide_table_of_contents: true sidebar_label: Documentation Overview +description: Learn how to navigate Bloom.host documentation and find common server, panel, and account guides. --- ## Introduction diff --git a/docs/plugins_and_modifications/installing-plugins.md b/docs/plugins_and_modifications/installing-plugins.md index a462c6a46..27c99dff6 100644 --- a/docs/plugins_and_modifications/installing-plugins.md +++ b/docs/plugins_and_modifications/installing-plugins.md @@ -4,6 +4,7 @@ title: Installing Plugins slug: /installing-plugins hide_table_of_contents: true sidebar_label: Installing Spigot Plugins +description: Learn how to install Bukkit, Spigot, and Paper plugins on a Bloom.host Minecraft server. keywords: - Installing plugins - Plugins diff --git a/docs/plugins_and_modifications/multiplatform/plan.md b/docs/plugins_and_modifications/multiplatform/plan.md index 92a195586..5b13957e0 100644 --- a/docs/plugins_and_modifications/multiplatform/plan.md +++ b/docs/plugins_and_modifications/multiplatform/plan.md @@ -4,6 +4,7 @@ slug: /multiplatform/plan title: PLAN hide_table_of_contents: true sidebar_label: PLAN (Player Analytics) +description: Install and expose PLAN Player Analytics on a Bloom.host Minecraft server. keywords: - Plan - Player Analytics diff --git a/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md b/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md index 1fb1dc370..2318fb8a6 100644 --- a/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md +++ b/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md @@ -4,6 +4,7 @@ title: Simple Voice Chat slug: /multiplatform/simple-voice-chat hide_table_of_contents: true sidebar_label: Simple Voice Chat +description: Install and configure Simple Voice Chat for supported Minecraft server platforms. keywords: - Simple Voice Chat - Voice chat diff --git a/docs/plugins_and_modifications/proxy-plugins.md b/docs/plugins_and_modifications/proxy-plugins.md index 07c67859b..1239eb7a3 100644 --- a/docs/plugins_and_modifications/proxy-plugins.md +++ b/docs/plugins_and_modifications/proxy-plugins.md @@ -4,6 +4,7 @@ title: Installing Proxy Plugins (BungeeCord/Velocity) slug: /installing-proxy-plugins hide_table_of_contents: true sidebar_label: Proxy (BungeeCord/Velocity) Plugins +description: Learn how to install plugins on BungeeCord, Waterfall, and Velocity proxy servers. keywords: - Proxy plugins - BungeeCord diff --git a/docs/running_a_server/updating.md b/docs/running_a_server/updating.md index 8e92e782b..9b75ae3fc 100644 --- a/docs/running_a_server/updating.md +++ b/docs/running_a_server/updating.md @@ -4,6 +4,7 @@ title: How to update or change version slug: /updating hide_table_of_contents: true sidebar_label: Updating or changing versions +description: Update or change the Minecraft server type and version from DuckPanel. keywords: - Updating - Update server diff --git a/docs/running_a_server/worlds.md b/docs/running_a_server/worlds.md index 046bbfac2..1581955bd 100644 --- a/docs/running_a_server/worlds.md +++ b/docs/running_a_server/worlds.md @@ -1,6 +1,6 @@ --- id: worlds -title: Managing Worlds +title: Managing Minecraft Worlds slug: /worlds hide_table_of_contents: true sidebar_label: Managing Worlds diff --git a/docs/using_the_panel/basic-controls.mdx b/docs/using_the_panel/basic-controls.mdx index a1e2e8a45..37105a5c6 100644 --- a/docs/using_the_panel/basic-controls.mdx +++ b/docs/using_the_panel/basic-controls.mdx @@ -4,6 +4,7 @@ slug: /basic-controls title: Basic Controls hide_table_of_contents: true sidebar_label: Basic Controls +description: Use DuckPanel to start, stop, restart, and monitor your game server. keywords: - Basic controls - Game console diff --git a/docs/using_the_panel/databases.mdx b/docs/using_the_panel/databases.mdx index 882717c10..e610db9cc 100644 --- a/docs/using_the_panel/databases.mdx +++ b/docs/using_the_panel/databases.mdx @@ -4,6 +4,7 @@ title: Databases slug: /databases hide_table_of_contents: false sidebar_label: MySQL Databases +description: Create, import, and manage MySQL databases for plugins in DuckPanel. keywords: - Databases - MySQL diff --git a/docs/using_the_panel/file-manager-controls.mdx b/docs/using_the_panel/file-manager-controls.mdx index cd45f4c95..4fe883b17 100644 --- a/docs/using_the_panel/file-manager-controls.mdx +++ b/docs/using_the_panel/file-manager-controls.mdx @@ -4,6 +4,7 @@ slug: /file-manager-controls title: File Manager Controls hide_table_of_contents: true sidebar_label: File Manager Controls +description: Learn how to upload, download, archive, restore, and manage server files in DuckPanel. keywords: - File Manager - Files diff --git a/docs/using_the_panel/schedules.mdx b/docs/using_the_panel/schedules.mdx index c17fcea5d..2d36c2478 100644 --- a/docs/using_the_panel/schedules.mdx +++ b/docs/using_the_panel/schedules.mdx @@ -4,6 +4,7 @@ title: Scheduling Actions slug: /schedules hide_table_of_contents: true sidebar_label: Scheduling Actions +description: Create DuckPanel schedules for automatic restarts, backups, and console commands. keywords: - Schedules - Automate diff --git a/docs/using_the_panel/server-importer.mdx b/docs/using_the_panel/server-importer.mdx index c7c7d6a6c..3d7abc63e 100644 --- a/docs/using_the_panel/server-importer.mdx +++ b/docs/using_the_panel/server-importer.mdx @@ -4,6 +4,7 @@ slug: /server-importer title: Server Importer hide_table_of_contents: true sidebar_label: Server Importer +description: Import files and databases from another game host using DuckPanel's Server Importer. keywords: - Server Importer - Import server diff --git a/docs/using_the_panel/users.mdx b/docs/using_the_panel/users.mdx index 312385f02..7bccba2ab 100644 --- a/docs/using_the_panel/users.mdx +++ b/docs/using_the_panel/users.mdx @@ -4,6 +4,7 @@ title: Users slug: /users hide_table_of_contents: false sidebar_label: Adding Sub-Users +description: Invite sub-users and manage their DuckPanel permissions. keywords: - Users - Subusers @@ -63,4 +64,3 @@ A subuser can remove themselves from a server by opening our [Duck Panel](https: ![img](/using_the_panel/users/leaving.png) - \ No newline at end of file diff --git a/sidebars.js b/sidebars.js index 21e0c4919..e3ab09959 100644 --- a/sidebars.js +++ b/sidebars.js @@ -325,7 +325,6 @@ module.exports = { 'extras/available-modpacks', 'extras/srvcontrol', 'extras/swap', - 'extras/templatexample', 'extras/clumsyloader', ], }, From 6f6ccfe51236dc84ebe1ffe4b1cf82f2df9c3ec2 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Thu, 30 Jul 2026 12:42:24 -0300 Subject: [PATCH 03/50] Improve documentation navigation and layout --- docs/extras/ab.md | 1 + docs/getting_started/overview.md | 11 +++++++++++ docs/not-found.mdx | 26 ++++++++++++++++---------- docusaurus.config.js | 6 +++--- sidebars.js | 13 +++++++------ src/css/custom.css | 13 +++++++++++-- src/theme/MDXContent/index.js | 2 +- 7 files changed, 50 insertions(+), 22 deletions(-) diff --git a/docs/extras/ab.md b/docs/extras/ab.md index f2c856a43..7d7f09835 100644 --- a/docs/extras/ab.md +++ b/docs/extras/ab.md @@ -2,6 +2,7 @@ id: ab title: Bloom Anti Bot slug: /ab +unlisted: true hide_table_of_contents: true description: Learn more about Bloom's Anti Bot plugin! --- diff --git a/docs/getting_started/overview.md b/docs/getting_started/overview.md index eedd96901..39e26aa0c 100644 --- a/docs/getting_started/overview.md +++ b/docs/getting_started/overview.md @@ -15,6 +15,17 @@ Welcome to the Bloom Docs! Here you can find useful information about our services, panel, running servers, frequently asked questions, and more! For the sake of easy navigation, we've created a list of few of the more frequently used documents below. +## Common Tasks + +- [Start, stop, or restart your server](/basic-controls) +- [Upload and manage server files](/file-manager-controls) +- [Create and restore backups](/backups) +- [Install Minecraft plugins](/installing-plugins) +- [Install Minecraft mods](/mods-install) +- [Install Minecraft modpacks](/modpacks) +- [Update or change your server version](/updating) +- [Open a billing support ticket](https://billing.bloom.host/supporttickets.php) + Most of the articles in this documentation were created by our community. You can help us too! Visit our guide on [how to contribute to our docs](https://github.com/Bloom-host/BloomDocs/blob/master/README.md) to learn more. diff --git a/docs/not-found.mdx b/docs/not-found.mdx index 568b92332..a0dba870c 100644 --- a/docs/not-found.mdx +++ b/docs/not-found.mdx @@ -1,26 +1,32 @@ --- id: not-found -title: Page Not Found -hide_table_of_contents: true +title: Page Not Found +hide_table_of_contents: true description: The requested page could not be found displayed_sidebar: docs show_header: false ---- - -<div id="not-found-wrapper"> +--- + +import Head from '@docusaurus/Head'; + +<Head> + <meta name="robots" content="noindex"/> +</Head> + +<div id="not-found-wrapper"> <h1>404</h1> <h2>Page Not Found</h2> <div> <p> - The requested page could not be found! Please use the sidebar or the search functionality in the top-right - corner to find your desired page or <a href="https://discord.gg/bloom"> contact us on Discord</a>! + The requested page could not be found. Return to <a href="/">Getting Started</a>, use the search + button in the top-right corner, or <a href="https://discord.gg/bloom">contact support on Discord</a>. </p> </div> <div> - <p>Here's a duck in the meantime!</p> - <img src="https://corsproxy.io/?https%3A%2F%2Frandom-d.uk%2Fapi%2Frandomimg" + <p>Here's a duck in the meantime.</p> + <img src="/extras/templatexample/duck.jpg" height="50%" width="50%" - alt="A random duck"/> + alt="Duck standing beside a pond"/> </div> </div> diff --git a/docusaurus.config.js b/docusaurus.config.js index 84067f4de..5b1171be0 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,6 +1,6 @@ module.exports = { - title: 'Docs', - tagline: 'Docs for Bloom', + title: 'Bloom.host Docs', + tagline: 'Guides for Bloom.host servers and services', url: 'https://docs.bloom.host', baseUrl: '/', staticDirectories: [ 'static', 'docs' ], @@ -66,7 +66,7 @@ module.exports = { footer: { style: 'dark', - copyright: `Copyright © ${new Date().getFullYear()} Super Duper Broccoli, Inc. Built with Docusaurus.`, + copyright: `Copyright © ${new Date().getFullYear()} Bloom.host.`, }, }, diff --git a/sidebars.js b/sidebars.js index e3ab09959..4c7456928 100644 --- a/sidebars.js +++ b/sidebars.js @@ -33,7 +33,7 @@ module.exports = { { type: 'category', label: 'Getting Started', - collapsed: false, + collapsed: true, items: [ 'getting_started/overview', ], @@ -42,7 +42,7 @@ module.exports = { { type: 'category', label: 'Using the Panel', - collapsed: false, + collapsed: true, items: [ { type: 'link', @@ -175,7 +175,7 @@ module.exports = { { type: 'category', - label: 'Plugins & Modification', + label: 'Plugins & Modifications', collapsed: true, items: [ { @@ -268,9 +268,10 @@ module.exports = { label: 'Other Servers', collapsed: true, items: [ - 'other-servers/ark', - 'other-servers/caddy-server', - 'other-servers/grafana', + 'other-servers/ark', + 'other-servers/caddy-server', + 'other-servers/grafana', + 'other-servers/namelessmc', ], }, diff --git a/src/css/custom.css b/src/css/custom.css index 363152703..1404a6efd 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -125,13 +125,22 @@ img:is(.small) { max-height: 30dvh; } +.doc-page-logo { + display: block; + width: 72px; + height: 72px; + margin: 0 auto .75rem; + object-fit: cover; + border-radius: 14px; +} + /* Hide the title, we show it differently below */ .theme-doc-markdown.markdown > header > h1 { display: none; } -/** Hide the other navbar and footer */ -.pagination-nav, .footer, .react-toggle { +/** Hide the unused toggle */ +.react-toggle { display: none; } diff --git a/src/theme/MDXContent/index.js b/src/theme/MDXContent/index.js index 88c3c48bc..af9798042 100644 --- a/src/theme/MDXContent/index.js +++ b/src/theme/MDXContent/index.js @@ -10,7 +10,7 @@ export default function MDXContentWrapper(props) { <> {showHeader && ( <div className="text--center"> - <img src="https://bloom.host/logo-white.svg" alt="Bloom logo"/> + <img src="/logo.webp" alt="" className="doc-page-logo"/> {title && <h1>{title}</h1>} </div> )} From 124cde4f36baf7bf4f3fcb3cd619a6903ba51d09 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Thu, 30 Jul 2026 13:17:45 -0300 Subject: [PATCH 04/50] Polish documentation formatting and accessibility --- docs/VPS/credentials-vps.md | 4 +- docs/VPS/virtfusion-rescue.md | 22 ++++---- docs/VPS/virtfusion-subuser.md | 16 +++--- docs/VPS/virtfusion-vnc.md | 18 +++---- docs/VPS/virtfusion-windows-install.md | 18 +++---- docs/VPS/vnc.md | 4 +- docs/billing/billing_subusers.md | 6 +-- docs/billing/early_renewal.md | 10 ++-- docs/billing/email_change.md | 8 +-- docs/billing/upgrades.md | 10 ++-- docs/dedicated/mss.md | 2 +- docs/extras/account-details.md | 10 ++-- docs/extras/clumsyloader.md | 4 +- docs/extras/ping-issues.md | 4 +- docs/extras/template.md | 2 +- docs/extras/templatexample.md | 2 +- docs/games/hytale/connection.md | 2 +- docs/games/hytale/mods.md | 2 +- docs/games/hytale/performance.md | 4 +- docs/games/palworld/update.md | 4 +- docs/games/terraria/banning.md | 4 +- docs/games/terraria/connecting.md | 2 +- docs/games/terraria/worlds.md | 2 +- docs/other-servers/ark.md | 12 ++--- docs/other-servers/caddy-server.md | 4 +- docs/other-servers/namelessmc.md | 12 ++--- .../fabric_mods/performance-mods.md | 2 +- .../installing-plugins.md | 4 +- .../plugins_and_modifications/mods-install.md | 2 +- .../multiplatform/advancedban.md | 2 +- .../multiplatform/bluemap.md | 4 +- .../multiplatform/chunky-multi.md | 2 +- .../multiplatform/dynmap.md | 4 +- .../multiplatform/floodgate.md | 2 +- .../multiplatform/geysermc.md | 4 +- .../multiplatform/litebans.md | 4 +- .../multiplatform/luckperms.md | 10 ++-- .../multiplatform/plan.md | 10 ++-- .../multiplatform/servercore.mdx | 6 +-- .../multiplatform/simple-voice-chat.md | 26 +++++----- .../multiplatform/squaremap.md | 6 +-- .../multiplatform/worldedit.md | 12 ++--- .../plugins/AdvancedEnchantments.md | 2 +- docs/plugins_and_modifications/plugins/TAB.md | 4 +- .../plugins/ajLeaderboards.md | 2 +- .../plugins/ajParkour.md | 4 +- .../plugins/banannouncer.md | 8 +-- .../plugins/citizens2.md | 6 +-- .../plugins/coreprotect.md | 4 +- .../plugins/craftingstore.md | 4 +- .../plugins/essentialsx.md | 2 +- .../plugins/multiverse.md | 4 +- .../plugins_and_modifications/plugins/papi.md | 2 +- .../plugins/prism.md | 4 +- .../plugins/servernpc.md | 8 +-- .../plugins/tebex.md | 6 +-- .../plugins/topper.md | 10 ++-- .../plugins/vault.md | 4 +- .../plugins/venturechat.md | 12 ++--- .../plugins/viaversion.md | 6 +-- .../plugins/votifier.md | 6 +-- .../plugins/vulcan.md | 4 +- .../plugins/worldguard.md | 5 +- .../proxy-plugins.md | 2 +- .../serverpackcreator.mdx | 8 +-- docs/running_a_server/blockedserver.md | 2 +- docs/running_a_server/converting-worlds.md | 6 +-- docs/running_a_server/datapacks.md | 6 +-- docs/running_a_server/domain.md | 8 +-- docs/running_a_server/icon.md | 14 ++--- docs/running_a_server/internal-servers.md | 6 +-- docs/running_a_server/jars.mdx | 10 ++-- docs/running_a_server/java-version.md | 2 +- docs/running_a_server/mcaselector.md | 6 +-- docs/running_a_server/memoryleakanalysis.md | 12 ++--- docs/running_a_server/motd.md | 12 ++--- docs/running_a_server/optimization.md | 2 +- docs/running_a_server/resourcepack.md | 10 ++-- docs/running_a_server/spark.md | 10 ++-- docs/running_a_server/timings.md | 8 +-- docs/running_a_server/updating.md | 4 +- docs/running_a_server/velocity.md | 34 ++++++------ docs/running_a_server/whitelist.md | 6 +-- docs/running_a_server/world-reset.md | 2 +- docs/running_a_server/worlds.md | 52 +++++++++---------- docs/using_the_panel/2fa.md | 8 +-- docs/using_the_panel/backups/guide.md | 10 ++-- docs/using_the_panel/basic-controls.mdx | 10 ++-- .../using_the_panel/file-manager-controls.mdx | 6 +-- docs/using_the_panel/ports-and-proxies.md | 14 ++--- docs/using_the_panel/schedules.mdx | 16 +++--- docs/using_the_panel/server-importer.mdx | 12 ++--- docs/using_the_panel/sftp.md | 16 +++--- docs/using_the_panel/split-server.md | 8 +-- docs/using_the_panel/users.mdx | 16 +++--- 95 files changed, 366 insertions(+), 367 deletions(-) diff --git a/docs/VPS/credentials-vps.md b/docs/VPS/credentials-vps.md index 1a745efcb..badaedb6e 100644 --- a/docs/VPS/credentials-vps.md +++ b/docs/VPS/credentials-vps.md @@ -22,7 +22,7 @@ The change password option is under the "settings" tab. You need to Poweroff and START your VPS for the password change to take effect. ::: -![img](/VPS/credentials/1.png) +![VirtFusion VPS dashboard showing credential controls](/VPS/credentials/1.png) ## How to change your VPS VNC password? @@ -30,7 +30,7 @@ Head over to our [VPS Panel](https://VPS.bloom.host), sign in, and select the VP The VNC Password option is under the "settings" tab. -![img](/VPS/credentials/2.png) +![VirtFusion Settings tab showing the VNC Password option](/VPS/credentials/2.png) :::important You may need to Poweroff and START your VPS for the VNC password change to take effect. diff --git a/docs/VPS/virtfusion-rescue.md b/docs/VPS/virtfusion-rescue.md index 5cedf49c2..d93ed7659 100644 --- a/docs/VPS/virtfusion-rescue.md +++ b/docs/VPS/virtfusion-rescue.md @@ -1,11 +1,11 @@ --- id: virtfusion-rescue -title: Virtfusion Rescue Mode -hide_table_of_contents: true -sidebar_label: Virtfusion Rescue Mode +title: VirtFusion Rescue Mode +hide_table_of_contents: false +sidebar_label: VirtFusion Rescue Mode description: We'll explain how to start our VPS in Rescue Mode and access it. keywords: - - Virtfusion + - VirtFusion - Virt - Rescue Mode - Rescue @@ -16,7 +16,7 @@ keywords: ## Overview -In this guide we'll learn how to access our VPS via our Virtfusion Bloom panel in "Rescue Mode". +In this guide we'll learn how to access our VPS via our Bloom.host VirtFusion panel in "Rescue Mode". ## Prerequisites @@ -30,23 +30,23 @@ Rescue Mode boots a minimal operating system independent of the server's main di First, we'll head over to our panel and access the specific VPS we want to manage, we can do so by logging in to our [dashboard](https://virt.bloom.host/dashboard) -![img](/VPS/virtfusion-rescue/1.png) +![VirtFusion dashboard with a VPS selected](/VPS/virtfusion-rescue/1.png) Once we've selected our server, we'll want to head over to the "Options" tab as shown above. We'll pick the second option of all the subtabs available, as shown in the screenshot. Here we can click "Create Rescue Session" to begin the process. Debian Live is the only rescue image available at the moment. ### Opening Console -![img](/VPS/virtfusion-rescue/2.png) +![VirtFusion rescue mode controls and VNC console option](/VPS/virtfusion-rescue/2.png) Now we can return to our VNC Console tab. Here we'll be prompted to input our credentials. If we see any message besides the log in prompt, we can press "Enter" to go into log in. -![img](/VPS/virtfusion-rescue/3.png) +![Rescue mode console displaying the login prompt](/VPS/virtfusion-rescue/3.png) Your credentials will be sent to you via email at the registered address. The email will look much like the example above. The credentials are ephemeral, as is the OS itself. Just don't share your credentials while Rescue Mode is on as you'll be fine. The email will be similar to our example above. -![img](/VPS/virtfusion-rescue/4.png) +![Rescue mode credentials in the Bloom.host email](/VPS/virtfusion-rescue/4.png) -As you can see, the credentials you'll receive are not so easy to type manually. VNC doesn't support pasting in content from your clipboard (keep in mind, VNC doesn't sync with anything but your raw key by key presses and mouse movements). But, as explained in the VNC guide, and as shown above, Virtfusion's VNC Console has a paste feature! +As you can see, the credentials you'll receive are not so easy to type manually. VNC doesn't support pasting in content from your clipboard (keep in mind, VNC doesn't sync with anything but your raw key by key presses and mouse movements). But, as explained in the VNC guide, and as shown above, VirtFusion's VNC Console has a paste feature! Now you are logged in and ready to continue with your task in Rescue Mode. @@ -56,6 +56,6 @@ Now you are logged in and ready to continue with your task in Rescue Mode. To minimize attack vectors, it's recommended that VNC be only enabled as needed. Disabling the function between uses. ::: -![img](/VPS/virtfusion-rescue/5.png) +![VirtFusion control for disabling rescue mode](/VPS/virtfusion-rescue/5.png) Once you are done with your task within the rescue OS, you'll want to return to your normal OS. To end the Rescue Session, simply return to the panel and click the banner button that presents you with the option to "End Rescue Session". diff --git a/docs/VPS/virtfusion-subuser.md b/docs/VPS/virtfusion-subuser.md index 244b64804..583f04d9b 100644 --- a/docs/VPS/virtfusion-subuser.md +++ b/docs/VPS/virtfusion-subuser.md @@ -1,14 +1,14 @@ --- id: virtfusion-subuser -title: Virtfusion Subusers +title: VirtFusion Subusers hide_table_of_contents: true -sidebar_label: Virtfusion Subusers -description: This guide will explain the process of adding someone as a subuser of your VPS in Virtfusion. +sidebar_label: VirtFusion Subusers +description: This guide will explain the process of adding someone as a subuser of your VPS in VirtFusion. keywords: - Subuser - VPS - Virtual Private Server - - Virtfusion + - VirtFusion --- This guide will explain how to add someone as a subuser in our [VPS Panel](https://virt.bloom.host). @@ -19,15 +19,15 @@ This guide will explain how to add someone as a subuser in our [VPS Panel](https Don't forget to change your password after the first log in! ::: -First you'll need to create an account in our [Billing Panel]( https://billing.bloom.host/). +First you'll need to create an account in our [Billing Portal](https://billing.bloom.host/). -Once you have an account you can open a [Billing Ticket](https://billing.bloom.host/supporttickets.php) with the subject "Virtfusion Subuser Account", make sure to mention your friend's billing email in the ticket. +Once you have an account you can open a [Billing Ticket](https://billing.bloom.host/supporttickets.php) with the subject "VirtFusion Subuser Account", make sure to mention your friend's billing email in the ticket. After we reply to your ticket with the credentials you'll be able to log in to the [VPS Panel](https://virt.bloom.host). From there you'll want to click your User icon in the top right corner and select "Account". From there you'll want to click your User icon in the top right corner and select "Account". Go to the "Sharing" tab, and create a token via "Generate Token". Write it down, and send it over to your friend. -![img](/VPS/virtfusion-subuser/1.png) +![VirtFusion Sharing tab showing the Generate Token control](/VPS/virtfusion-subuser/1.png) ## Owner Side @@ -35,7 +35,7 @@ With your friend's token in the clipboard, you can now access your VPS's dashboa After pasting your friend's token in the "Shared Access" section, click "Grant Access". -![img](/VPS/virtfusion-subuser/2.png) +![VirtFusion Shared Access form with a token and Grant Access button](/VPS/virtfusion-subuser/2.png) Your friend can now access your server from their own account. diff --git a/docs/VPS/virtfusion-vnc.md b/docs/VPS/virtfusion-vnc.md index c66a248af..5c43e0b27 100644 --- a/docs/VPS/virtfusion-vnc.md +++ b/docs/VPS/virtfusion-vnc.md @@ -1,11 +1,11 @@ --- id: virtfusion-vnc -title: Virtfusion VNC +title: VirtFusion VNC hide_table_of_contents: true -sidebar_label: Virtfusion VNC +sidebar_label: VirtFusion VNC description: We'll explain how to open the VNC console on your virt.bloom.host VPS. keywords: - - Virtfusion + - VirtFusion - Virt - VNC - Virtual Private Server @@ -14,7 +14,7 @@ keywords: ## Overview -In this guide we'll learn how to enable VNC in our Virtfusion panel, and then access the VNC console via the same website. +In this guide we'll learn how to enable VNC in our VirtFusion panel, and then access the VNC console via the same website. ### Enabling VNC @@ -24,7 +24,7 @@ To minimize attack vectors, it's recommended that VNC be only enabled as needed. First, we'll head over to our panel and access the specific VPS we want to manage, we can do so by logging in to our [dashboard](https://virt.bloom.host/dashboard) -![img](/VPS/virtfusion-vnc/1.png) +![VirtFusion dashboard with a VPS selected](/VPS/virtfusion-vnc/1.png) Once we've selected our server, we'll want to head over to the "Options" tab as shown above. The first option of all the subtabs available is the one we want, as shown in the screenshot. Once we've enabled VNC by clicking the highlighted button, we can proceed with the next step. @@ -34,19 +34,19 @@ Once we've selected our server, we'll want to head over to the "Options" tab as The VNC console allows access to the virtual machine when SSH fails. Either due to config changes, or the need to access the machine outside the standard OS boot procedure, like recovery. ::: -![img](/VPS/virtfusion-vnc/2.png) +![VirtFusion Options tab showing the VNC setting](/VPS/virtfusion-vnc/2.png) Now, back on the main tab of our panel we can finally see and click the "VNC" icon. Which will finally open the VNC console as seen below. -![img](/VPS/virtfusion-vnc/3.png) +![VirtFusion VNC console open for the selected VPS](/VPS/virtfusion-vnc/3.png) Now with the console we can manage the virtual machine as if it were an SSH session. Using VNC allows us to complete recoveries (both files & password), and to fix other network issues preventing SSH. ### Clipboard & Paste In VNC -![img](/VPS/virtfusion-rescue/4.png) +![VirtFusion VNC clipboard and paste controls](/VPS/virtfusion-rescue/4.png) -VNC doesn't support pasting in content from your clipboard (keep in mind, VNC doesn't sync with anything but your raw key by key presses and mouse movements). But, don't worry, Virtfusion's VNC Console has a paste feature! It can be accessed as shown above. +VNC doesn't support pasting in content from your clipboard (keep in mind, VNC doesn't sync with anything but your raw key by key presses and mouse movements). But, don't worry, VirtFusion's VNC Console has a paste feature! It can be accessed as shown above. diff --git a/docs/VPS/virtfusion-windows-install.md b/docs/VPS/virtfusion-windows-install.md index 217652d12..2e35fb20c 100644 --- a/docs/VPS/virtfusion-windows-install.md +++ b/docs/VPS/virtfusion-windows-install.md @@ -1,32 +1,32 @@ --- id: virtfusion-windows-install -title: Virtfusion Installing Windows +title: VirtFusion Installing Windows hide_table_of_contents: true -sidebar_label: Virtfusion Installing Windows -description: This guide will explain the process of installing Windows on your VPS in Virtfusion. +sidebar_label: VirtFusion Installing Windows +description: This guide will explain the process of installing Windows on your VPS in VirtFusion. keywords: - Windows - Install - Virt - VPS - Virtual Private Server - - Virtfusion + - VirtFusion --- This guide will explain how to install Windows Server 2022 via our [VPS Panel](https://virt.bloom.host). ## Media Setup -![img](/VPS/virtfusion-windows-install/InstallWindowsVirt1.png) +![VirtFusion Media tab with the Windows Server image available](/VPS/virtfusion-windows-install/InstallWindowsVirt1.png) First, insert the Windows Server 2022 Evaluation image under the Media tab. Once inserted, go to the VNC Console in the Overview tab, its button is located just under the hostname of your VPS. If VNC isn’t enabled yet, you’ll need to enable it under the Options tab to continue. -![img](/VPS/virtfusion-windows-install/InstallWindowsVirt2.png) +![Windows Server installer open in the VirtFusion VNC console](/VPS/virtfusion-windows-install/InstallWindowsVirt2.png) Via VNC, you’ll be able to configure your installation. Proceed normally until you reach the Select Driver step. At this point, go back to the Media tab and eject the active Windows image. Do this without modifying the VPS power status. -![img](/VPS/virtfusion-windows-install/InstallWindowsVirt3.png) -![img](/VPS/virtfusion-windows-install/InstallWindowsVirt4.png) +![Windows installer at the driver selection step](/VPS/virtfusion-windows-install/InstallWindowsVirt3.png) +![VirtFusion Media tab with the VirtIO driver image inserted](/VPS/virtfusion-windows-install/InstallWindowsVirt4.png) Insert the VirtIO-Driver image and then return to VNC. Click Load Driver and then Rescan if necessary. From the list of drivers, select the 2k19 SCSI option (non-passthrough), as shown above. After the driver installs, revert the change by re-inserting the Windows Server 2022 image. You can now proceed with your installation as you normally would. @@ -36,7 +36,7 @@ If your VPS does not boot to Windows automatically, you may need to move Windows Similarly to the steps above, insert the VirtIO Drivers image under Media. This time, however, insert it while the VPS is already booted into Windows. A new CD/DVD entry will appear in File Explorer. From this media device, run virtio-win-gt-x64. After doing this, you can unmount the image from Media. -![img](/VPS/virtfusion-windows-install/InstallWindowsVirt5.png) +![VirtIO guest tools installer open in Windows](/VPS/virtfusion-windows-install/InstallWindowsVirt5.png) To configure your NIC, go to Network Configuration within Windows, and open the Internet Protocol Version 4 settings from the properties menu of your Ethernet adapter. You’ll need to configure the system to use the specific IP address you provide. diff --git a/docs/VPS/vnc.md b/docs/VPS/vnc.md index 152ec979b..e07768b02 100644 --- a/docs/VPS/vnc.md +++ b/docs/VPS/vnc.md @@ -30,11 +30,11 @@ Our panel provides an HTML 5 VNC Client that you can use to connect to your VPS. To use the HTML 5 VNC Client, go to our [VPS Panel](https://VPS.bloom.host), sign in, select the VPS and click on the VNC button at the top right. -![img](/VPS/VNC/1.png) +![VPS panel with the VNC button highlighted](/VPS/VNC/1.png) Then click on the "Launch HTML 5 VNC Client" -![img](/VPS/VNC/2.png) +![VPS panel showing the Launch HTML 5 VNC Client button](/VPS/VNC/2.png) After you launch the HTML 5 VNC Client, you will be prompted to put your SSH credentials. diff --git a/docs/billing/billing_subusers.md b/docs/billing/billing_subusers.md index 6602a7573..c69d958da 100644 --- a/docs/billing/billing_subusers.md +++ b/docs/billing/billing_subusers.md @@ -14,10 +14,10 @@ keywords: To create a subuser account for your billing account go to the [User Management](https://billing.bloom.host/index.php?rp=/account/users) tab on our billing portal. This tab can be find by clicking on your account name on the top right. -![img](/billing/billing_subusers/1.png) +![User Management page with the Invite New User button](/billing/billing_subusers/1.png) Then click on the "Invite New User" button and write the email of the person you want to add as a subuser to your billing account. On this section you can also select the permission you want that subuser to have. -![img](/billing/billing_subusers/2.png) +![New user invitation form with email and permission fields](/billing/billing_subusers/2.png) -![img](/billing/billing_subusers/3.png) +![Billing subuser permissions selected in the invitation form](/billing/billing_subusers/3.png) diff --git a/docs/billing/early_renewal.md b/docs/billing/early_renewal.md index ae5315185..552a0a69b 100644 --- a/docs/billing/early_renewal.md +++ b/docs/billing/early_renewal.md @@ -1,9 +1,9 @@ --- id: early_renewal title: Early Renewal -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Early Renewal -description: This guide will show you how to renew a service early on our billing panel +description: This guide will show you how to renew a service early in our Billing Portal keywords: - early renewal - service renewal @@ -19,11 +19,11 @@ Bloom.host clients can renew their services early, **as long as the next due dat ### How It Works -You can renew your services early directly from our billing panel, specifically on the [Early Renewal](https://billing.bloom.host/service-renewals) page. +You can renew your services early directly from our Billing Portal, specifically on the [Early Renewal](https://billing.bloom.host/service-renewals) page. On this page, you can choose the service you want to renew early by clicking Add to Cart. If multiple services are eligible for early renewal, you can renew them all at once. -![img](/billing/early_renewal/1.png) +![Early renewal page listing an eligible service and Add to Cart button](/billing/early_renewal/1.png) After adding the service to your cart, click Checkout and complete the checkout process. Once the process is complete, your service will be renewed. @@ -51,4 +51,4 @@ After adding the service to your cart, click Checkout and complete the checkout | **Where to renew?** | [Early Renewal page](https://billing.bloom.host/service-renewals) | | **Can renew manually before 31 days?** | No | | **Affects future due dates?** | No | -| **Can staff renew early manually?** | No | \ No newline at end of file +| **Can staff renew early manually?** | No | diff --git a/docs/billing/email_change.md b/docs/billing/email_change.md index 048a4877f..43ee2e89f 100644 --- a/docs/billing/email_change.md +++ b/docs/billing/email_change.md @@ -14,7 +14,7 @@ keywords: Hey Bloomers! In this guide we will be going over how to change your account email address in our Billing and Minecraft panel. -## How to change your Billing Panel Email Address +## How to change your Billing Portal email address :::caution The billing system we use requires you to change your email address in two sections, the account details section and the profile section. You may face sign-in or notification issues if you change your email address in only one of these sections, so make sure you change the email in both of them. @@ -23,14 +23,14 @@ The email used to log in to your billing account is the one defined in the "Prof The first step is to change your email address on the [Profile section](https://billing.bloom.host/clientarea.php?action=profile), sign in with your billing credentials and put the new email on the **Email Address** field then click on save. -![img](/billing/email_change/2.png) +![Billing profile form with the Email Address field](/billing/email_change/2.png) Finally you can modify your billing information by going to the [Account Details section](https://billing.bloom.host/clientarea.php?action=details), sign in with your billing credentials and put the new email on the **Email Address** field then click on save. -![img](/billing/email_change/1.png) +![Billing account details form with the Email Address field](/billing/email_change/1.png) ## How to change your Minecraft Panel Email Address To change the email account used for our Minecraft Panel (DuckPanel) go to the [Account](https://mc.bloom.host/account) section of the panel, sign in to your Minecraft Panel account and change the email address on the **Email Address** field then click on update email address. -![img](/billing/email_change/3.png) +![DuckPanel account page with the email address update form](/billing/email_change/3.png) diff --git a/docs/billing/upgrades.md b/docs/billing/upgrades.md index 1cd5e605a..ebd3015d0 100644 --- a/docs/billing/upgrades.md +++ b/docs/billing/upgrades.md @@ -13,18 +13,18 @@ keywords: ## How to upgrade, downgrade or transfer your server to another Bloom datacenter location :::note -If you want to downgrade to an Essentials plan please open a billing ticket [here](https://billing.bloom.host/submitticket.php). +If you want to downgrade to an Essentials plan, please [open a billing ticket](https://billing.bloom.host/submitticket.php). ::: :::note -To upgrade or transfer a VPS service please open a billing ticket [here](https://billing.bloom.host/submitticket.php). +To upgrade or transfer a VPS service, please [open a billing ticket](https://billing.bloom.host/submitticket.php). ::: :::caution -Downgrading VPS services is not possible due to the limitations of KVM software. Reducing disk size is not possible without rebuilding the VM. To downgrade you can purchase a new VPS and transfer your data over, once you are done you can request a prorated credit refund for your old VPS plan. To request the credit refund you'll need to open a billing ticket [here](https://billing.bloom.host/submitticket.php) +Downgrading VPS services is not possible due to the limitations of KVM software. Reducing disk size is not possible without rebuilding the VM. To downgrade you can purchase a new VPS and transfer your data over, once you are done you can request a prorated credit refund for your old VPS plan. To request the credit refund, you'll need to [open a billing ticket](https://billing.bloom.host/submitticket.php) ::: -To request a plan upgrade, downgrade or a change of location go to the Products section of our billing panel [here](https://billing.bloom.host/clientarea.php?action=services), sign in with your Billing Account, click the three dots to the right side of the Product you want to upgrade, then select the Upgrade/Downgrade button. +To request a plan upgrade, downgrade or a change of location, go to the [Products section of our Billing Portal](https://billing.bloom.host/clientarea.php?action=services), sign in with your Billing Account, click the three dots to the right side of the product you want to upgrade, then select the Upgrade/Downgrade button. -![img](/discord/upgrade.png) +![Billing Portal product menu showing the Upgrade or Downgrade option](/discord/upgrade.png) On the upgrade page you will be able to select to what location and plan you want to upgrade/downgrade to, here you can also switch between datacenter locations. Once you select the plan it will generate an invoice (if needed) which needs to be paid before the upgrade and transfer process begins. diff --git a/docs/dedicated/mss.md b/docs/dedicated/mss.md index 47b952305..aaf17c129 100644 --- a/docs/dedicated/mss.md +++ b/docs/dedicated/mss.md @@ -52,7 +52,7 @@ curl -4 --http1.1 -s -o /dev/null https://google.com Stop TCPDump with CTRL+C and above, you should see something like this: -``` +```text Flags [S], ... options [mss 1400,sackOK,TS,...] ``` diff --git a/docs/extras/account-details.md b/docs/extras/account-details.md index df0594e6f..0c33cb865 100644 --- a/docs/extras/account-details.md +++ b/docs/extras/account-details.md @@ -3,7 +3,7 @@ id: account-details title: Editing Account Details hide_table_of_contents: true sidebar_label: Editing Account Details -description: This guide will help you edit your account details in the billing panel, and on the minecraft panel +description: This guide will help you edit your account details in the Billing Portal and DuckPanel keywords: - Bloom.host - Edit Account Details @@ -18,15 +18,15 @@ This guide will go over how to change your account details in your client area a ## Client Area -![img](/extras/account_details/1.png) +![Bloom.host website navigation with Billing Login under Support](/extras/account_details/1.png) Head on over to the billing area by going to the header, hovering over support, then clicking Billing Login. Log in to your account or register an account from there. -![img](/extras/account_details/2.png) +![Billing Portal login and registration page](/extras/account_details/2.png) Now, click **Update** under Your Info. -![img](/extras/account_details/3.png) +![Billing Portal account page with the Update button](/extras/account_details/3.png) This area lets you edit any details about your account from payment methods to emails sent to changing your password. Once done, click **Save Changes** for all your changes to take effect. @@ -66,4 +66,4 @@ You will be redirected back to the DuckPanel where it will show your currently l If you ever need to unlink your account, simply click 'Unlink Account' in the panel, or 'Deauthorise' under 'Authorised Apps' in your Discord settings. -![img](/extras/account_details/deauthorize.png) +![Discord Authorized Apps page with the Deauthorize button](/extras/account_details/deauthorize.png) diff --git a/docs/extras/clumsyloader.md b/docs/extras/clumsyloader.md index 2f075050a..c1d118829 100644 --- a/docs/extras/clumsyloader.md +++ b/docs/extras/clumsyloader.md @@ -18,11 +18,11 @@ Start by heading over to the [GitHub Releases page](https://github.com/ClumsyAdm After we have done this, we now want to create the API Key that ClumsyLoader will use to access your server backups. To do this, simply head over to the [panel](https://mc.bloom.host/) and once you are logged in, click **Account API** on the left. -![img](/extras/srvcontrol/1.png) +![DuckPanel Account API page](/extras/srvcontrol/1.png) Then click **Create New** and give it a relevant description so that you will remember what this API key is for. There is no need to specify the an IP in the allowed IPs field unless you want to restrict the API access to your IP address or your VPS address, by default it will allow all IP addresses to use the API key. Once you are done, click **create**. Now there will be a list of API keys, in your case there will only be one so just click the key icon to reveal the long key and copy it. -![img](/extras/srvcontrol/2.png) +![DuckPanel API key creation form and key reveal control](/extras/srvcontrol/2.png) :::caution Please keep this key secure! Anyone with this API key can utilize it to do anything to the servers hosted under your account. diff --git a/docs/extras/ping-issues.md b/docs/extras/ping-issues.md index 8b9b4a147..3f9f29836 100644 --- a/docs/extras/ping-issues.md +++ b/docs/extras/ping-issues.md @@ -27,12 +27,12 @@ Please follow our [MTR guide](/mtr). ## Paper Anti-Xray engine mode 2 -Paper Anti-Xray engine mode 2 can cause ping issues for people with unstable connections or servers with high player counts. You can read more about the different engines of the anti-xray [here](https://gist.github.com/stonar96/ba18568bd91e5afd590e8038d14e245e). +Paper Anti-Xray engine mode 2 can cause ping issues for people with unstable connections or servers with high player counts. You can read more in the [Paper Anti-Xray engine comparison](https://gist.github.com/stonar96/ba18568bd91e5afd590e8038d14e245e). We recommend you try changing to engine mode 1, then restart the server and see if the ping issues persist. If they don't then you know you can safely switch to engine mode 1. You can find this setting in the Paper.yml file in the main server folder towards the end of the file around Line 253. -![img](/extras/ping-issues/2.png) +![Paper configuration showing the anti-xray engine mode setting](/extras/ping-issues/2.png) --- diff --git a/docs/extras/template.md b/docs/extras/template.md index 91f2cc083..86a5abc26 100644 --- a/docs/extras/template.md +++ b/docs/extras/template.md @@ -117,7 +117,7 @@ s = "Python syntax highlighting" print(s) ``` -``` +```html No language indicated, so no syntax highlighting. But let's throw in a <b>tag</b>. ``` diff --git a/docs/extras/templatexample.md b/docs/extras/templatexample.md index eade5e6dd..935a9eb9c 100644 --- a/docs/extras/templatexample.md +++ b/docs/extras/templatexample.md @@ -143,7 +143,7 @@ Spark is included by default in Paper versions 1.20 and above. ::: :::tip Custom Tip Title -You can install plugins via SFTP or directly through the Panel's file manager. +You can install plugins via SFTP or directly through the panel's File Manager. ::: :::caution diff --git a/docs/games/hytale/connection.md b/docs/games/hytale/connection.md index 71fe1412e..175f748e1 100644 --- a/docs/games/hytale/connection.md +++ b/docs/games/hytale/connection.md @@ -1,7 +1,7 @@ --- id: connection-issues title: Connection issues -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Connection issues description: This guide will help fix some issues with ping spikes or general lag with hytale. keywords: diff --git a/docs/games/hytale/mods.md b/docs/games/hytale/mods.md index eefa5e132..93f55e887 100644 --- a/docs/games/hytale/mods.md +++ b/docs/games/hytale/mods.md @@ -28,4 +28,4 @@ Hytale handles mod installation when a client joins automatically. The best way to learn how to use a mod is to review its mod page. Most mods list their available commands and configuration options there (for example, [Spark](https://spark.lucko.me/docs/Command-Usage)). If a mod does not document its commands, you can run the following command to list all available commands and identify which mod provides them: -```commands dump``` \ No newline at end of file +`commands dump` diff --git a/docs/games/hytale/performance.md b/docs/games/hytale/performance.md index 150103762..367e3928b 100644 --- a/docs/games/hytale/performance.md +++ b/docs/games/hytale/performance.md @@ -1,7 +1,7 @@ --- id: performance title: Performance Optimizations -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Performance Optimizations description: This guide will help fix some general issues with hytale performance keywords: @@ -46,7 +46,7 @@ Example; ``world settings pregenerate 1200 1200 -1200 -1200`` Then restart your Hytale server so pregen can begin. -You can cancel the pregen anytime via the command: ```world settings pregenerate cancel``` +You can cancel the pregen anytime via the command: `world settings pregenerate cancel` ## Checking Performance Improvements diff --git a/docs/games/palworld/update.md b/docs/games/palworld/update.md index 5d08fc491..59d2007cf 100644 --- a/docs/games/palworld/update.md +++ b/docs/games/palworld/update.md @@ -6,11 +6,11 @@ description: Learn how to update your server to the latest version of Palworld --- ## Palworld Updating server -# Method 1 +## Method 1 Restarting the server. Server should auto update on restarts, if it doesn't follow Method 2 -# Method 2 +## Method 2 First, stop your server. Then, go to the [Backups](/backups) tab. Make a backup just in case something goes wrong, after that go to Settings tab, click Reinstall. diff --git a/docs/games/terraria/banning.md b/docs/games/terraria/banning.md index ddc26c35b..052acc783 100644 --- a/docs/games/terraria/banning.md +++ b/docs/games/terraria/banning.md @@ -1,7 +1,7 @@ --- id: banning title: Banning / Unbanning -hide_table_of_contents: true +hide_table_of_contents: false description: Learn how you can ban or unban players on your Terraria server! keywords: - Terraria @@ -26,7 +26,7 @@ formatting and adding a comment with the player's name above the entry. As an example, here is how two entries would look: -``` +```text // Mr.Griefer 1.1.1.1 // BadDuck07 diff --git a/docs/games/terraria/connecting.md b/docs/games/terraria/connecting.md index ad9eb2ac7..0ba9797b4 100644 --- a/docs/games/terraria/connecting.md +++ b/docs/games/terraria/connecting.md @@ -20,7 +20,7 @@ Under the 'Console' tab, above the console itself, copy the value in the 'IP Add In Terraria, go to 'Multiplayer' in the main menu. There, select 'Join via IP' and select your player profile. -Please note that if the server is using Journey difficult, you must only use a Journey account to connect. +Please note that if the server is using Journey difficulty, you must only use a Journey character to connect. When prompted, paste the first part of the address, **without** the trailing port. diff --git a/docs/games/terraria/worlds.md b/docs/games/terraria/worlds.md index d83e2d83d..e9d45b64d 100644 --- a/docs/games/terraria/worlds.md +++ b/docs/games/terraria/worlds.md @@ -80,7 +80,7 @@ server. Then, head to the 'Startup' tab. Here, you can adjust the size of the world, the difficulty and the seed as well. :::caution HEADS UP! -Journey player profiles can only connected to worlds using the Journey difficulty, and regular characters cannot +Journey player profiles can only connect to worlds using the Journey difficulty, and regular characters cannot connect when this is selected. ::: diff --git a/docs/other-servers/ark.md b/docs/other-servers/ark.md index 4f2699cb9..c17291204 100644 --- a/docs/other-servers/ark.md +++ b/docs/other-servers/ark.md @@ -1,7 +1,7 @@ --- id: ark title: ARK Survival Evolved -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: ARK Survival Evolved description: This guide will help you configure the ARK - Survival Evolved server. keywords: @@ -34,7 +34,7 @@ ARK Survival Evolved requires about **4GB to run with no players on the default Check https://ark.gamepedia.com/Dedicated_Server_Setup#Hardware for more information. ::: -![img](/other-servers/ARK/1.jpeg) +![ARK server port requirements listed in a table](/other-servers/ARK/1.jpeg) ### Opening the required ports on your server @@ -56,7 +56,7 @@ The ARK Survival Evolved server requires a local RCON connection, **you will see Your Ports and Proxies section should look like this - assuming you want RCON port 27020 opened, you can leave it blank if you don't want to use it. Note that port 7777 needs to be the primary port. -![img](/other-servers/ARK/2.png) +![Ports and Proxies configured with ARK game, query, and RCON ports](/other-servers/ARK/2.png) :::note For some people opening the external RCON port 27020 causes issues and doesn't allow them to connect to the server (If you get an Unable to query server info for invite. try closing/deleting port 27020 and see if it works) @@ -66,14 +66,14 @@ For some people opening the external RCON port 27020 causes issues and doesn't a You will find server settings in the **Startup** tab of the panel. Here you will be able to change the query and rcon port of the server, as well as the server name, password, admin password and server map. You will also be able to enable auto updating. -![img](/other-servers/ARK/3.png) +![ARK server options on the DuckPanel Startup tab](/other-servers/ARK/3.png) :::important To enable crossplay you will need to add the `--crossplay flag option in the **Startup** tab under the **Additional Arguments** field located at the end of the startup page. Do note that the crossplay feature sometimes bugs out and doesn't work. ::: -![img](/other-servers/ARK/4.png) +![ARK server query and RCON port fields](/other-servers/ARK/4.png) ### Connecting through STEAM @@ -93,4 +93,4 @@ To enable crossplay you will need to add the `--crossplay flag option in the **S Keep in mind that it will take a while for your server to appear on the unofficial tab of the ARK server list; it can take a few hours up to a day. If it hasn't appeared on the unofficial list yet, try to connect using the two options above. 1. Open ARK and click on **Join ARK** -2. Click on the **Unofficial Servers** tab and search for your server then join. +2. Click on the **Unofficial Servers** tab, search for your server, then join. diff --git a/docs/other-servers/caddy-server.md b/docs/other-servers/caddy-server.md index 93a65900d..04653bdb5 100644 --- a/docs/other-servers/caddy-server.md +++ b/docs/other-servers/caddy-server.md @@ -19,11 +19,11 @@ This guide will create a Caddy split server on Bloom.host. Head on over to "Server Splitter" tab in your Minecraft control panel. -![console](/extras/caddy_server/5.png) +![DuckPanel Server Splitter tab](/extras/caddy_server/5.png) Now, enter a name for you server and choose "NO SUPPORT SERVERS" under "SERVER CATEGORY". Then choose "Caddy Server" under "SERVER TYPE". Set MEMORY to 100MB and DISK to how much storage your Caddy server needs. After that, press **SPLIT SERVER**. -![console](/extras/caddy_server/4.png) +![Server Splitter form configured for a Caddy server](/extras/caddy_server/4.png) After you press **SPLIT SERVER** confirm you would like to split your server by pressing **YES, SPLIT THIS SERVER**. This will stop your main server and create a split Caddy server. diff --git a/docs/other-servers/namelessmc.md b/docs/other-servers/namelessmc.md index 2a2e5cb87..d624ed9ad 100644 --- a/docs/other-servers/namelessmc.md +++ b/docs/other-servers/namelessmc.md @@ -2,7 +2,7 @@ id: namelessmc title: NamelessMC slug: /other-servers/namelessmc -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: NamelessMC description: NamelessMC is a free, easy to use & powerful website software for your Minecraft server, which includes a large range of features. keywords: @@ -21,7 +21,7 @@ NamelessMC is a Free and Open-Source forum software that you can use to supercha ## Installation :::note -You **will need** a Database to use NamelessMC. See [this guide](/databases) if you are not familiar with using a database. +You **will need** a database to use NamelessMC. See our [database guide](/databases) if you are not familiar with using a database. ::: To begin installing NamelessMC, you will need access to a Web Server - we will use [CaddyServer](/other-servers/caddy-server) for this guide. @@ -31,7 +31,7 @@ Scroll to the bottom of the "Assets" section of the latest release, and download ![nmc-release-img](https://i.imgur.com/xasuqVz.png) -From there, open your File Manager for the webserver you just setup. navigate to `home/public/`, and delete the default file (`index.html`). +From there, open the File Manager for the web server you just set up. Navigate to `home/public/`, and delete the default file (`index.html`). After deleting this file, you can upload the zipped folder you just downloaded to this directory. ![file-mgr-img](https://i.imgur.com/KKdmU58.png) @@ -85,11 +85,11 @@ If this is your first time setting up a forum, and you don't have any data to im Congratulations! Your forum is now set up and ready to go! You will be prompted to sign in to your Admin Control Panel after completion. This is the password you set up for your admin account. -# Additional Information +## Additional Information ## Friendly URLs -To use Friendly URL's, navigate to your CaddyServer Configuration (`home/caddy/Caddyfile`), and uncomment `# import namelessmc` -``` +To use Friendly URLs, navigate to your CaddyServer configuration (`home/caddy/Caddyfile`), and uncomment `# import namelessmc` +```text # Uncomment for NamelessMC websites; if Nameless is under a sub directory add route /forum { ... } around the code. import namelessmc ``` diff --git a/docs/plugins_and_modifications/fabric_mods/performance-mods.md b/docs/plugins_and_modifications/fabric_mods/performance-mods.md index f91ebdca9..02b4d6e64 100644 --- a/docs/plugins_and_modifications/fabric_mods/performance-mods.md +++ b/docs/plugins_and_modifications/fabric_mods/performance-mods.md @@ -3,7 +3,7 @@ id: performance-mods title: Performance Mods header: Performance Mods for Fabric slug: /fabric-performance-mods -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Performance Mods description: A list of mods that will help combat lag on fabric servers. keywords: diff --git a/docs/plugins_and_modifications/installing-plugins.md b/docs/plugins_and_modifications/installing-plugins.md index 27c99dff6..8cfccc89f 100644 --- a/docs/plugins_and_modifications/installing-plugins.md +++ b/docs/plugins_and_modifications/installing-plugins.md @@ -15,13 +15,13 @@ keywords: --- :::important -This guide is for Bukkit/Spigot/Paper servers. If you are looking for instructions on how to install plugins on a BungeeCord/Waterfall or Velocity proxy, please see [this guide](/installing-proxy-plugins) +This guide is for Bukkit/Spigot/Paper servers. If you are looking for instructions on how to install plugins on a BungeeCord/Waterfall or Velocity proxy, please see our [proxy plugin installation guide](/installing-proxy-plugins). ::: ### The Basics > #### Requirements > -> In order to run plugins on your server, you have to be using a fork of Bukkit. (such as Spigot, Paper, Pupur, Pufferfish, etc. See our [guide on server jars](/jars) for more information.) If you wish to make client-side modifications (as well), see our guide on [installing server mods](/mods-install)! +> In order to run plugins on your server, you have to be using a fork of Bukkit. (such as Spigot, Paper, Purpur, Pufferfish, etc. See our [guide on server jars](/jars) for more information.) If you wish to make client-side modifications (as well), see our guide on [installing server mods](/mods-install)! > #### What are plugins? > diff --git a/docs/plugins_and_modifications/mods-install.md b/docs/plugins_and_modifications/mods-install.md index 32b08df0c..1c4154a27 100644 --- a/docs/plugins_and_modifications/mods-install.md +++ b/docs/plugins_and_modifications/mods-install.md @@ -14,7 +14,7 @@ keywords: - Forge - Mods --- -# Install Guide +## Install Guide You'll first need to find the mod that you wish to install. Downloads can be found on a variety of sites. Many mods can be found on [Modrinth](https://modrinth.com/mods) and [CurseForge](https://www.curseforge.com/minecraft/mc-mods). Make sure you trust the source of your downloads. :::important diff --git a/docs/plugins_and_modifications/multiplatform/advancedban.md b/docs/plugins_and_modifications/multiplatform/advancedban.md index e32df68cf..ceeef6dde 100644 --- a/docs/plugins_and_modifications/multiplatform/advancedban.md +++ b/docs/plugins_and_modifications/multiplatform/advancedban.md @@ -27,7 +27,7 @@ For assistance on how to install plugins, please refer to the [Bukkit plugin ins You will then need to decide if you are going to be using internal storage (HSQLDB) or external storage (MySQL). -If you decide to use MySQL for AdvancedBan, you can [learn how to set up a MySQL database here](/databases). +If you decide to use MySQL for AdvancedBan, you can [learn how to set up a MySQL database](/databases). ## Usage AdvancedBan has many commands to be able to moderate and punish rule-breakers, the most important commands are here: diff --git a/docs/plugins_and_modifications/multiplatform/bluemap.md b/docs/plugins_and_modifications/multiplatform/bluemap.md index 45958f732..b37b63f41 100644 --- a/docs/plugins_and_modifications/multiplatform/bluemap.md +++ b/docs/plugins_and_modifications/multiplatform/bluemap.md @@ -36,7 +36,7 @@ Or just look at it from far away to get an overview. It's an alternative to Dynmap or Squaremap, but unlike those, it is _fully_ 3D. You can orbit around everywhere, and fly through the world like spectator mode. -# Usage +## Usage Download BlueMap for your platform and install it like any other plugin/mod. Config files for it will be generated in the `plugins/BlueMap` (plugin) directory or the `config/BlueMap` (modded) directory, depending on your platform. @@ -51,7 +51,7 @@ By default, BlueMap will use an internal web server. It is recommended you don't In the webserver.conf file, you can set the port you wish to use for your BlueMap. By default it is set to `8100`, but you may want to change it to something else. You can do that by opening it and modifying the following line: -``` +```yaml port: 8100 ``` diff --git a/docs/plugins_and_modifications/multiplatform/chunky-multi.md b/docs/plugins_and_modifications/multiplatform/chunky-multi.md index 7a6fa72a9..119793dbb 100644 --- a/docs/plugins_and_modifications/multiplatform/chunky-multi.md +++ b/docs/plugins_and_modifications/multiplatform/chunky-multi.md @@ -2,7 +2,7 @@ id: chunky title: Chunky slug: /multiplatform/chunky -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Chunky description: A cool plugin/mod called chunky, which lets you pre generate a minecraft world quickly and efficiently to avoid lag. keywords: diff --git a/docs/plugins_and_modifications/multiplatform/dynmap.md b/docs/plugins_and_modifications/multiplatform/dynmap.md index 2e9d57a75..19d3a71a6 100644 --- a/docs/plugins_and_modifications/multiplatform/dynmap.md +++ b/docs/plugins_and_modifications/multiplatform/dynmap.md @@ -26,7 +26,7 @@ Dynmap allows you to see your Minecraft world in 3D in real time, like Google Ma ![Dynmap browser map showing terrain, roads, and player markers](/dynmap-preview.svg) -# Usage +## Usage Spigot/Paper: Download the Dynmap plugin and place into the `plugins` folder then restart your server to generate `configuration.txt`. Create a MySQL database. If you are unsure, [check out this guide](/databases). For other platforms, refer to the [Dynmap installation guide](https://github.com/webbukkit/dynmap/wiki/Installation) @@ -45,7 +45,7 @@ Now enter the database information into this section remembering to remove the ` ``` Now go into the minecraft panel, click the "Ports & Proxies" tab, and create a new port. You will be able to choose a port that you want to use and enter the port number you just opened into the config file. -You can also add your Dynmap IP to Bloom's reverse proxy(on the sidebar of the panel,), changing the website link from `123.456.67.2:8123` to `subdomain.yourdomain.com`. Please read [this guide](/ports-and-proxies/). +You can also add your Dynmap IP to Bloom's reverse proxy (on the sidebar of the panel), changing the website link from `123.456.67.2:8123` to `subdomain.yourdomain.com`. Please read our [Ports and Proxies guide](/ports-and-proxies/). ## Info diff --git a/docs/plugins_and_modifications/multiplatform/floodgate.md b/docs/plugins_and_modifications/multiplatform/floodgate.md index ef035e3f7..48593fe54 100644 --- a/docs/plugins_and_modifications/multiplatform/floodgate.md +++ b/docs/plugins_and_modifications/multiplatform/floodgate.md @@ -27,7 +27,7 @@ Floodgate is a hybrid-mode plugin that enables [Geyser](/multiplatform/geysermc) [Download the plugin](https://geysermc.org/download/?project=floodgate) for your specific platform (Spigot, Velocity, Fabric, etc.) and upload the `.jar` into your `plugins` or `mods` folder. Restart the server once to generate the necessary encryption keys. -If you need help installing plugins, check out [this guide](/installing-plugins). +If you need help installing plugins, check out our [plugin installation guide](/installing-plugins). Once installed, you must configure Geyser to use Floodgate for authentication: 1. Locate the Geyser configuration file. diff --git a/docs/plugins_and_modifications/multiplatform/geysermc.md b/docs/plugins_and_modifications/multiplatform/geysermc.md index 60d3bcd2d..f97c730dc 100644 --- a/docs/plugins_and_modifications/multiplatform/geysermc.md +++ b/docs/plugins_and_modifications/multiplatform/geysermc.md @@ -29,14 +29,14 @@ Geyser translates network traffic so Bedrock players can join Java servers. It m [Download the plugin](https://geysermc.org/download) according to your platform and upload the `.jar` into your `plugins` or `mods` folder. Restart the server once to generate the configuration files. -If you need help installing plugins, check out [this guide](/installing-plugins). +If you need help installing plugins, check out our [plugin installation guide](/installing-plugins). Once installed, go to the **Ports & Proxies** page on the Bloom.Host panel. Create a new port allocation using `19132`. While it is the default, you can use any available port assigned to your server. After assigning the port, update the `port:` value in Geyser's `config.yml` to match your new allocation (if not the default), then restart the server. :::important -Players on consoles must follow the instructions on [this page](https://wiki.geysermc.org/geyser/using-geyser-with-consoles/) as consoles do not allow joining custom servers by default. +Players on consoles must follow the [Geyser console connection instructions](https://wiki.geysermc.org/geyser/using-geyser-with-consoles/) as consoles do not allow joining custom servers by default. ::: :::note diff --git a/docs/plugins_and_modifications/multiplatform/litebans.md b/docs/plugins_and_modifications/multiplatform/litebans.md index 7ea025db4..67e1c9e08 100644 --- a/docs/plugins_and_modifications/multiplatform/litebans.md +++ b/docs/plugins_and_modifications/multiplatform/litebans.md @@ -42,11 +42,11 @@ In-game punishments can still be issued as normal. ## Punishment storage Next, you have to decide what type of storage you want for all your punishments. Your options are H2, MySQL, MariaDB, and PostgreSQL. On Bloom you are going to want to use H2 or MySQL. H2 will store the information on your server, while MySQL will store it on a separate database. MySQL allows you to sync data across a network if you are running one. Otherwise it's your choice. -If you are using MySQL, you can see how to set up LiteBans with MySQL [HERE](/databases) +If you are using MySQL, see our [database guide](/databases) to set up LiteBans with MySQL. ## Commands LiteBans offers many commands to moderate your server, below will be a short list of the important ones. -``` +```text /ban /kick /mute diff --git a/docs/plugins_and_modifications/multiplatform/luckperms.md b/docs/plugins_and_modifications/multiplatform/luckperms.md index 6440c0bee..083d273b6 100644 --- a/docs/plugins_and_modifications/multiplatform/luckperms.md +++ b/docs/plugins_and_modifications/multiplatform/luckperms.md @@ -31,15 +31,15 @@ Unlike PermissionsEx (Bukkit/Spigot) which has not been updated since January 20 ### Bukkit/Spigot/Paper and forks -To use this plugin, [download](https://luckperms.net/download) the jar you need it for. Most commonly, for single servers, it would be the Bukkit jar. +To use this plugin, [download LuckPerms](https://luckperms.net/download) for the platform you need. Most commonly, for single servers, it would be the Bukkit jar. -Upload the jar into your `plugins` folder. Turn on or restart the server. If you need help installing plugins, check out [this guide](/installing-plugins). +Upload the jar into your `plugins` folder. Turn on or restart the server. If you need help installing plugins, check out our [plugin installation guide](/installing-plugins). ### Forge/Fabric -To use this mod, [download](https://luckperms.net/download) the Forge or Fabric jar. +To use this mod, [download LuckPerms](https://luckperms.net/download) for Forge or Fabric. -Upload the jar into your `mods` folder. Turn on or restart the server. If you need help installing mods, check out [this guide](/mods-install). +Upload the jar into your `mods` folder. Turn on or restart the server. If you need help installing mods, check out our [server mod installation guide](/mods-install). ### Network install Refer to the [LuckPerms wiki](https://luckperms.net/wiki/Network-Installation) for instructions on how to complete a network installation (A [MySQL database](/databases) is required.) @@ -57,7 +57,7 @@ There are many commands that can be used to manage the permissions on your serve [Website](https://luckperms.net/) -[GitHub](https://github.com/lucko/LuckPerms) +[GitHub](https://github.com/lucko/LuckPerms) [Support](https://discord.com/invite/luckperms) diff --git a/docs/plugins_and_modifications/multiplatform/plan.md b/docs/plugins_and_modifications/multiplatform/plan.md index 5b13957e0..ee2232868 100644 --- a/docs/plugins_and_modifications/multiplatform/plan.md +++ b/docs/plugins_and_modifications/multiplatform/plan.md @@ -16,30 +16,30 @@ keywords: ### How to set up PLAN (Player Analytics) -Plan is an extremely popular & useful plugin that you can use to track server stats such as player counts, average playtime, and much more. You can check out the plugin [here](https://www.spigotmc.org/resources/plan-player-analytics.32536/). +Plan is an extremely popular & useful plugin that you can use to track server stats such as player counts, average playtime, and much more. You can find it on the [PLAN Spigot resource page](https://www.spigotmc.org/resources/plan-player-analytics.32536/). #### Installation Steps: 1. For this to work you will need your own custom domain, such as **domain.com**. Go to your DNS page and set up a new CNAME record. Set the name to “plan” (you can also use anything else like “stats”, note that you will have to use that value instead of “plan” later on as well), and set the target to `revproxy-us.bloom.host` if your server is in the US or `revproxy-eu.bloom.host` if your server is in the EU. Also, make sure proxy status is set to “DNS only” so that the little cloud icon is gray instead of orange. This guide will teach you how to set it up for the first time and how to secure it using the reverse proxy. -![1](/plugins_and_modifications/plugins/plan/1.png) +![PLAN web server settings in its configuration file](/plugins_and_modifications/plugins/plan/1.png) *Example CNAME record using Cloudflare* 2. Go to your bloom panel, click on “Ports and Proxies”, and create a new Allocation with the port “8804”. Once you’re done with that, set the Reverse Proxy Domain to “revproxy-us.bloom.host” (or the EU one if you’re in the EU) -![2](/plugins_and_modifications/plugins/plan/2.png) +![PLAN port allocation and reverse proxy configured in DuckPanel](/plugins_and_modifications/plugins/plan/2.png) 3. Install the Minecraft plugin from here and restart your server 4. Open the plugin’s config.yml and change the following values: - Webserver.Alternative_IP: true - Webserver.Alternative_IP.Address: plan.YOURDOMAIN.com (obviously change it to your domain) - Webserver.Security.SSL_certificate.KeyStore_path: proxy -![3](/plugins_and_modifications/plugins/plan/3.png) +![PLAN configuration with the public domain and proxy keystore path](/plugins_and_modifications/plugins/plan/3.png) 5. If you would like to track players’ locations: -```Data_gathering.Accept_GeoLite2_EULA``` +`Data_gathering.Accept_GeoLite2_EULA` That’s it! You can now go to plan.YOURDOMAIN.com and click “Create Account” to make your account! diff --git a/docs/plugins_and_modifications/multiplatform/servercore.mdx b/docs/plugins_and_modifications/multiplatform/servercore.mdx index 140710a14..061f81284 100644 --- a/docs/plugins_and_modifications/multiplatform/servercore.mdx +++ b/docs/plugins_and_modifications/multiplatform/servercore.mdx @@ -2,7 +2,7 @@ id: servercore title: Servercore slug: /multiplatform/servercore -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Servercore description: "Servercore helps with optimizing modded servers" keywords: @@ -24,10 +24,10 @@ import TabItem from '@theme/TabItem'; - **Villager lobotomization**, which reduces villager AI activity in large trading halls, or when villagers are stuck in a 1x1 space. - And more! --- -# How to install ServerCore on your server +## How to install ServerCore on your server 1. [Modrinth page of servercore](https://modrinth.com/mod/servercore) & [Curseforge page of servercore](https://www.curseforge.com/minecraft/mc-mods/servercore) 2. Download the jar matching your loader (Fabric/Forge/NeoForge) and MC version. -3. In the [Duck Panel](https://mc.bloom.host/), open **File Manager** and upload the jar into the `mods/` folder. +3. In [DuckPanel](https://mc.bloom.host/), open **File Manager** and upload the jar into the `mods/` folder. 4. Restart the server from the panel. 5. Config files generate under `config/servercore/config.yml` and `config/servercore/optimizations.yml` when the server starts. Edit them directly in File Manager. This guide does not cover `optimizations.yml`. --- diff --git a/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md b/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md index 2318fb8a6..d2e21c212 100644 --- a/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md +++ b/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md @@ -2,7 +2,7 @@ id: simple-voice-chat title: Simple Voice Chat slug: /multiplatform/simple-voice-chat -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Simple Voice Chat description: Install and configure Simple Voice Chat for supported Minecraft server platforms. keywords: @@ -33,26 +33,26 @@ In order to run Simple Voice Chat on your server, you need one of the following ### Fabric 1. Download the Fabric version of [Simple Voice Chat](https://modrinth.com/mod/simple-voice-chat/versions?l=fabric) ([Alternative download link](https://www.curseforge.com/minecraft/mc-mods/simple-voice-chat/files/all?filter-game-version=2020709689%3A7499)) -2. Open the [file manager](/file-manager-controls) in your dashboard +2. Open the [File Manager](/file-manager-controls) in your dashboard 3. Open the **mods** folder or create it if it doesn't exist -![console](/plugins_and_modifications/simple_voice_chat/1.png) +![File Manager with the mods folder open](/plugins_and_modifications/simple_voice_chat/1.png) 4. Drag and drop the **Simple Voice Chat jar** into the browser window. -![console](/plugins_and_modifications/simple_voice_chat/2.png) +![Simple Voice Chat jar uploaded to the mods folder](/plugins_and_modifications/simple_voice_chat/2.png) 5. Continue with the [common installation](#common) ### Forge 1. Download the Forge version of [Simple Voice Chat](https://modrinth.com/mod/simple-voice-chat/versions?l=forge) ([Alternative download link](https://www.curseforge.com/minecraft/mc-mods/simple-voice-chat/files/all?filter-game-version=2020709689%3A7498)) -2. Open the [file manager](/file-manager-controls) in your dashboard +2. Open the [File Manager](/file-manager-controls) in your dashboard 3. Open the **mods** folder or create it if it doesn't exist -![console](/plugins_and_modifications/simple_voice_chat/1.png) +![File Manager with the plugins folder open](/plugins_and_modifications/simple_voice_chat/1.png) 4. Drag and drop the **Simple Voice Chat jar** into the browser window. 5. Continue with the [common installation](#common) ### Bukkit/Spigot/Paper 1. Download the Bukkit version of [Simple Voice Chat](https://modrinth.com/mod/simple-voice-chat/versions?l=bukkit) ([Alternative download link](https://www.curseforge.com/minecraft/bukkit-plugins/simple-voice-chat/files/all)) -2. Open the [file manager](/file-manager-controls) in your dashboard +2. Open the [File Manager](/file-manager-controls) in your dashboard 3. Open the **plugins** folder or create it if it doesn't exist 4. Drag and drop the **Simple Voice Chat jar** into the browser window. 5. Continue with the [common installation](#common) @@ -60,7 +60,7 @@ In order to run Simple Voice Chat on your server, you need one of the following ### Quilt 1. Download the Quilt version of [Simple Voice Chat](https://modrinth.com/mod/simple-voice-chat/versions?l=quilt) ([Alternative download link](https://www.curseforge.com/minecraft/mc-mods/simple-voice-chat/files/all?filter-game-version=2020709689%3A9153)) -2. Open the [file manager](/file-manager-controls) in your dashboard +2. Open the [File Manager](/file-manager-controls) in your dashboard 3. Open the **mods** folder or create it if it doesn't exist 4. Drag and drop the **Simple Voice Chat jar** into the browser window. 5. Continue with the [common installation](#common) @@ -70,16 +70,16 @@ In order to run Simple Voice Chat on your server, you need one of the following 1. Make sure you followed the steps for [Fabric](#fabric), [Forge](#forge), [Bukkit/Spigot/Paper](#bukkitspigotpaper) or [Quilt](#quilt) 2. Open the **Ports & Proxies** section in your dashboard 3. Click on **OPEN PORT** -![console](/plugins_and_modifications/simple_voice_chat/3.png) +![DuckPanel Ports and Proxies tab with the Open Port button](/plugins_and_modifications/simple_voice_chat/3.png) 4. Enter the number `24454` in the port field and click on **OPEN PORT** -![console](/plugins_and_modifications/simple_voice_chat/4.png) +![Open Port dialog configured for Simple Voice Chat port 24454](/plugins_and_modifications/simple_voice_chat/4.png) **NOTE:** Please use ports within the range `24454` - `24459`, otherwise voicechat might be cut off during attacks. It is strongly recommended that you do not use port `25565` for voicechat. 5. If your server is already running, you will be prompted to restart your server - If this is the case, click on **RESTART NOW** -![console](/plugins_and_modifications/simple_voice_chat/5.png) +![DuckPanel prompt to restart the server after opening the port](/plugins_and_modifications/simple_voice_chat/5.png) 6. Go to the **Console** section of your dashboard 7. If you didn't get the prompt to restart the server, click on **RESTART** -![console](/plugins_and_modifications/simple_voice_chat/6.png) +![DuckPanel console with the Restart control](/plugins_and_modifications/simple_voice_chat/6.png) 8. After the server has restarted, check your logs for the line **Server started at port 24454** - If this line exists, you successfully installed Simple Voice Chat! -![console](/plugins_and_modifications/simple_voice_chat/7.png) +![Server log confirming Simple Voice Chat started on port 24454](/plugins_and_modifications/simple_voice_chat/7.png) diff --git a/docs/plugins_and_modifications/multiplatform/squaremap.md b/docs/plugins_and_modifications/multiplatform/squaremap.md index 7ffb1d03b..2079271be 100644 --- a/docs/plugins_and_modifications/multiplatform/squaremap.md +++ b/docs/plugins_and_modifications/multiplatform/squaremap.md @@ -25,7 +25,7 @@ keywords: Squaremap allows you to see your Minecraft world in 2D in real time in a browser, like Google Maps. It's an alternative to Dynmap or Bluemap, however it uses way less storage and is significantly faster. The tradeoff being that there is no 3D or isometric view. -# Usage +## Usage Download Squaremap for your platform and install it. A file named `config.yml` among other files will be generated in the `/squaremap` folder. This file contains options to customise the appearance of your map as well as the web server your map will be on. :::tip @@ -36,7 +36,7 @@ By default, Squaremap will use an internal web server. It is recommended you don open the config.yml file and search for the following lines: -``` +```yaml internal-webserver: enabled: true bind: 0.0.0.0 @@ -60,4 +60,4 @@ Your server needs to be restarted after the port has been allocated. ::: -For more information, the download link, support Discord, wiki, and demo, visit the [Squaremap GitHub page](https://github.com/jpenilla/squaremap). +For more information, including the download link, support Discord, wiki, and demo, visit the [Squaremap GitHub page](https://github.com/jpenilla/squaremap). diff --git a/docs/plugins_and_modifications/multiplatform/worldedit.md b/docs/plugins_and_modifications/multiplatform/worldedit.md index 800d354ae..950b8c4db 100644 --- a/docs/plugins_and_modifications/multiplatform/worldedit.md +++ b/docs/plugins_and_modifications/multiplatform/worldedit.md @@ -2,7 +2,7 @@ id: worldedit title: WorldEdit slug: /multiplatform/worldedit -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: WorldEdit description: An in-game world editing plugin to manipulate blocks keywords: @@ -35,15 +35,15 @@ For other platforms (such as Forge or Fabric,) refer to [EngineHub’s guide on There are many commands in WorldEdit. This doc will go over a few simple ones, but if you want to learn more, consult WorldEdit's [Wiki](https://worldedit.enginehub.org/en/latest/). -#### //wand and //pos +### //wand and //pos Running the command `//wand` in-game will give you a wooden axe. You can use this to make area selections by *left clicking* on a block to set pos1, and *right clicking* on a block to set pos2. If you don't have a block to click on, you can run `//pos1` and `//pos2` in each position to make selections in the air. -#### //set and //walls +### //set and //walls You can run the command `//set [block]` to fill your selection entirely with that one block. You can also run `//set [block],[another block]` to fill 50% of the selection with the first block, and the other 50% with the second block. You can, of course, create more complicated patterns (like setting percentages of blocks), but for that, you should consult the [Wiki](https://worldedit.enginehub.org/en/latest/). `//walls [block]` will build the four sides of your selection out of that block or pattern, and it uses the same syntax as `//set`. -#### Shapes +### Shapes This part of the doc will go over how to make 2 shapes, spheres and cylinders. If you want to learn how to make other shapes, check out WorldEdit's [Wiki](https://worldedit.enginehub.org/en/latest/). @@ -53,7 +53,7 @@ If you feel like making a cylinder, run `//cyl [block] [radii] [height]`. This w ## Useful additions -#### WorldGuard: +### WorldGuard: Allows for the creation of regions to protect areas. @@ -66,7 +66,7 @@ See Bloom’s documentation: [plugins/worldguard](https://docs.bloom.host/plugin [Modrinth](https://modrinth.com/plugin/worldedit) -[GitHub](https://github.com/EngineHub/WorldEdit) +[GitHub](https://github.com/EngineHub/WorldEdit) [Wiki WorldEdit](https://worldedit.enginehub.org/en/latest/) diff --git a/docs/plugins_and_modifications/plugins/AdvancedEnchantments.md b/docs/plugins_and_modifications/plugins/AdvancedEnchantments.md index bec8ae1cb..6b894e500 100644 --- a/docs/plugins_and_modifications/plugins/AdvancedEnchantments.md +++ b/docs/plugins_and_modifications/plugins/AdvancedEnchantments.md @@ -17,7 +17,7 @@ AdvancedEnchantments is the first Spigot Custom Enchants Plugin that allows you Currently it has: Over 450 Unique Enchantments Available with configurable Cooldowns, Chances, and More. -![image](https://i.imgur.com/OXkaNoy.png) +![AdvancedEnchantments interface showing custom enchantments](https://i.imgur.com/OXkaNoy.png) --- diff --git a/docs/plugins_and_modifications/plugins/TAB.md b/docs/plugins_and_modifications/plugins/TAB.md index b0de6c227..1865a1d0b 100644 --- a/docs/plugins_and_modifications/plugins/TAB.md +++ b/docs/plugins_and_modifications/plugins/TAB.md @@ -2,7 +2,7 @@ id: TAB title: TAB slug: /plugins/TAB -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: TAB description: The tab plugin for Paper keywords: @@ -18,7 +18,7 @@ keywords: ## Overview -[TAB](https://modrinth.com/plugin/tab-was-taken) is "the" tab plugin you were looking for, with [PlaceholderAPI](https://docs.bloom.host/plugins/placeholderapi) it's the most versatile open source tab plugin available. This guide will explain the basic setup to use this plugin on Paper. +[TAB](https://modrinth.com/plugin/tab-was-taken) is "the" tab plugin you were looking for; with [PlaceholderAPI](https://docs.bloom.host/plugins/placeholderapi), it's the most versatile open-source tab plugin available. This guide will explain the basic setup to use this plugin on Paper. --- diff --git a/docs/plugins_and_modifications/plugins/ajLeaderboards.md b/docs/plugins_and_modifications/plugins/ajLeaderboards.md index 2fea9afb8..864261c76 100644 --- a/docs/plugins_and_modifications/plugins/ajLeaderboards.md +++ b/docs/plugins_and_modifications/plugins/ajLeaderboards.md @@ -15,7 +15,7 @@ keywords: This plugin allows you to create leaderboards for basically anything using PlaceholderAPI placeholders. This is one of the many options available to create and implement the popular scoreboard format as part of the in-game GUI. -![image](https://i.imgur.com/P05opDe.png) +![Minecraft leaderboard created with ajLeaderboards](https://i.imgur.com/P05opDe.png) --- diff --git a/docs/plugins_and_modifications/plugins/ajParkour.md b/docs/plugins_and_modifications/plugins/ajParkour.md index 563455cf2..4120a7e7f 100644 --- a/docs/plugins_and_modifications/plugins/ajParkour.md +++ b/docs/plugins_and_modifications/plugins/ajParkour.md @@ -2,7 +2,7 @@ id: ajparkour title: ajParkour slug: /plugins/ajparkour -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: ajParkour description: A randomly generated parkour plugin keywords: @@ -43,7 +43,7 @@ Firstly, you need to give your area a name, for this we will use "BloomDocs" so Next we need to set up the areas our random blocks will spawn in. To do that we have two options: WorldEdit or vanilla. -### Worldedit +### WorldEdit :::caution [WorldEdit](https://dev.bukkit.org/projects/worldedit) must be installed for this to work, if you don't have it installed, use the method below diff --git a/docs/plugins_and_modifications/plugins/banannouncer.md b/docs/plugins_and_modifications/plugins/banannouncer.md index 0b512bf54..faef398c8 100644 --- a/docs/plugins_and_modifications/plugins/banannouncer.md +++ b/docs/plugins_and_modifications/plugins/banannouncer.md @@ -2,7 +2,7 @@ id: banannouncer title: Ban Announcer slug: /plugins/banannouncer -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Ban Announcer description: A Spigot plugin to send punishments to a discord channel, of your choosing! keywords: @@ -18,7 +18,7 @@ keywords: ## What does the plugin do? This plugin allows you to send a message (like the one below) to a channel in your discord through a discord bot, when somebody receives a punishment. (Muted, Warned, Banned, Unbanned, etc) -![image](https://i.imgur.com/QuK1heu.png) +![Discord punishment notification sent by BanAnnouncer](https://i.imgur.com/QuK1heu.png) :::important You must have Spicord, a Discord account, and a **Compatible** moderation plugin such as [AdvancedBan](https://www.spigotmc.org/resources/advancedban.8695/) @@ -40,7 +40,7 @@ DO NOT SHARE YOUR BOT TOKEN. Once you copy your token, scroll down to the bottom of the page, under **Privileged Gateway Intents**, and enable all three settings. -![image](https://i.imgur.com/GKh1zhU.png) +![Discord bot settings with all privileged gateway intents enabled](https://i.imgur.com/GKh1zhU.png) For the sake of this guide, we're going to use the Administrator permission to guarantee it works correctly. Ideally, you would want to set the **proper permissions** for the channel. @@ -61,7 +61,7 @@ If you don't know how to get the Channel ID, see [this](https://support.discord. ### Spicord In your Spicord config `/plugins/Spicord/config.toml`, under the `[[bots]]` section, add your token where it says `"YOUR BOT TOKEN HERE"`. After you add your token, find the `addons` section, and add `"ban_announcer"` on the next line. **Make sure you put a comma after the last option already there** -![image](https://i.imgur.com/9itDSVi.png) +![Spicord configuration with the bot token and BanAnnouncer addon](https://i.imgur.com/9itDSVi.png) As long as you set everything up correctly, your next punishment should show up in discord! diff --git a/docs/plugins_and_modifications/plugins/citizens2.md b/docs/plugins_and_modifications/plugins/citizens2.md index d63f5c244..254f17600 100644 --- a/docs/plugins_and_modifications/plugins/citizens2.md +++ b/docs/plugins_and_modifications/plugins/citizens2.md @@ -2,7 +2,7 @@ id: citizens2 title: Citizens 2 slug: /plugins/citizens2 -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Citizens 2 description: How do I find you when I cannot solve this problem keywords: @@ -58,7 +58,7 @@ Rather than go over basic commands, listed below are several examples on how to ### Creating an NPC :::note -These examples are assuming you have installed Citizens as well as Denizen, Sentinel, and dtlTraders plugins. +These examples assume you have installed Citizens as well as Denizen, Sentinel, and dtlTraders. ::: #### Basic Human NPC @@ -103,7 +103,7 @@ To rename an NPC, do the following: 1. Make sure you have the NPC selected (see above) 1. Type `/npc2 rename [name]` (For example, to rename Bob above to Jill, type `/npc2 rename Jill`). -### Deleting or despawing +### Deleting or despawning - To delete an NPC, make sure you have the NPC selected and then type `/npc2 remove`. Note that there is no undo! - To despawn an NPC without deleting them, make sure you have the NPC selected and then type `/npc2 despawn`. To repawn them, type `/npc2 spawn [name]` (e.g. `/npc2 spawn Jill`) diff --git a/docs/plugins_and_modifications/plugins/coreprotect.md b/docs/plugins_and_modifications/plugins/coreprotect.md index 8a41a81fd..520865186 100644 --- a/docs/plugins_and_modifications/plugins/coreprotect.md +++ b/docs/plugins_and_modifications/plugins/coreprotect.md @@ -31,7 +31,7 @@ CoreProtect is a fast, efficient, data logging and anti-griefing tool. Rollback :::important -Before you get started, you need to have created a MySQL database. More info on that can be found [here](/databases). +Before you get started, you need to have created a MySQL database. See our [database guide](/databases) for instructions. ::: [Download the plugin](https://www.spigotmc.org/resources/coreprotect.8631/), and upload the jar into your `/plugins folder`, and then restart the server. If you need help installing plugins, check [How to install plugins](/installing-plugins). @@ -55,7 +55,7 @@ One command you can use in CoreProtect is `/co i`. This will allow you to left c Another command you can use is `/co rollback u:<user> t:<time> r:<radius> a:<action> b:<blocks> e:<exclude>`. Running that command will print a list of every action (that you choose) within the radius and time period, by a user you choose. Not all of those parameters are necessary. -There are, of course, more commands in the plugin, which you can check out [here](https://www.minerealm.com/community/viewtopic.php?f=32&t=6781). +You can find more commands in the [CoreProtect command reference](https://www.minerealm.com/community/viewtopic.php?f=32&t=6781). --- diff --git a/docs/plugins_and_modifications/plugins/craftingstore.md b/docs/plugins_and_modifications/plugins/craftingstore.md index 125951611..b532cc2cf 100644 --- a/docs/plugins_and_modifications/plugins/craftingstore.md +++ b/docs/plugins_and_modifications/plugins/craftingstore.md @@ -21,11 +21,11 @@ Crafting store is an automatic Minecraft donation store page where you can creat --- ## Usage -To install, go and download the latest version [here](https://www.spigotmc.org/resources/craftingstore-net-free-minecraft-donation-system-1-16-compatible.31331/) then move the file to your `plugins` folder. Afterwards, restart the server. Once you have done that, create an account at [https://craftingstore.net/register](https://craftingstore.net/register) and follow the CraftingStore panel's setup instructions. +To install, [download the latest CraftingStore version](https://www.spigotmc.org/resources/craftingstore-net-free-minecraft-donation-system-1-16-compatible.31331/) then move the file to your `plugins` folder. Afterwards, restart the server. Once you have done that, create an account at [https://craftingstore.net/register](https://craftingstore.net/register) and follow the CraftingStore panel's setup instructions. After your store is configured to your liking, get the API key from the servers page and enter it in the plugin `config.yml` found in the CraftingStore folder to link your server with your CraftingStore page. Restart one last time, and you can now start accepting donations! -If you require help with setting up your store page, check out CraftingStore's knowledge base [here](https://help.craftingstore.net/)! +If you require help with setting up your store page, check out the [CraftingStore knowledge base](https://help.craftingstore.net/)! --- diff --git a/docs/plugins_and_modifications/plugins/essentialsx.md b/docs/plugins_and_modifications/plugins/essentialsx.md index 77890a2d6..f3e60f9bd 100644 --- a/docs/plugins_and_modifications/plugins/essentialsx.md +++ b/docs/plugins_and_modifications/plugins/essentialsx.md @@ -2,7 +2,7 @@ id: essentialsx title: EssentialsX slug: /plugins/essentialsx -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: EssentialsX description: Plugin offering essential commands to servers keywords: diff --git a/docs/plugins_and_modifications/plugins/multiverse.md b/docs/plugins_and_modifications/plugins/multiverse.md index 3e3afcdec..12da5078c 100644 --- a/docs/plugins_and_modifications/plugins/multiverse.md +++ b/docs/plugins_and_modifications/plugins/multiverse.md @@ -2,7 +2,7 @@ id: multiverse title: Multiverse slug: /plugins/multiverse -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Multiverse description: A plugin called multiverse which lets you have multiple worlds on one server. keywords: @@ -10,7 +10,7 @@ keywords: - Multiple Worlds - Spigot - Bloom.host - - Bloom Host + - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/papi.md b/docs/plugins_and_modifications/plugins/papi.md index ea4d51aca..174902d07 100644 --- a/docs/plugins_and_modifications/plugins/papi.md +++ b/docs/plugins_and_modifications/plugins/papi.md @@ -2,7 +2,7 @@ id: papi title: PlaceholderAPI slug: /plugins/placeholderapi -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: PlaceholderAPI description: Information about PlaceholderAPI Bukkit plugin keywords: diff --git a/docs/plugins_and_modifications/plugins/prism.md b/docs/plugins_and_modifications/plugins/prism.md index 6fb255883..e66943eb6 100644 --- a/docs/plugins_and_modifications/plugins/prism.md +++ b/docs/plugins_and_modifications/plugins/prism.md @@ -25,12 +25,12 @@ Prism is a highly configurable, powerful, high-performance grief management (rol ## Usage :::important -Although Prism can use a local database, it's recommended to use a MySQL database. That requires you to have created a MySQL database. More info on that can be found [here](/databases). +Although Prism can use a local database, it's recommended to use a MySQL database. That requires you to have created a MySQL database. See our [database guide](/databases) for instructions. ::: [Download the plugin](https://modrinth.com/plugin/prism/versions) and upload the jar into your `plugins` folder. -Also upload the NBT-API plugin from [here](https://modrinth.com/plugin/nbtapi/versions) into your `plugins` folder. You need both the Prism and NBT-API jar files. If you need help installing plugins, check out [this guide](/installing-plugins). +Also upload the [NBT-API plugin](https://modrinth.com/plugin/nbtapi/versions) into your `plugins` folder. You need both the Prism and NBT-API jar files. If you need help installing plugins, check out our [plugin installation guide](/installing-plugins). Restart or turn on the server. After that, go to the `prism` folder, which can be found inside the `plugins` folder. From there, edit the `storage.conf` file. diff --git a/docs/plugins_and_modifications/plugins/servernpc.md b/docs/plugins_and_modifications/plugins/servernpc.md index 899c42627..70c681c77 100644 --- a/docs/plugins_and_modifications/plugins/servernpc.md +++ b/docs/plugins_and_modifications/plugins/servernpc.md @@ -2,7 +2,7 @@ id: servernpc title: ServerNPC slug: /plugins/servernpc -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: ServerNPC description: ServerNPC is a plugin that allows you to create non-player characters, or NPCs, and have them do certain actions. keywords: @@ -26,7 +26,7 @@ ServerNPC is a plugin that allows you to create non-player characters, or NPCs, First, download the [ServerNPC](https://www.spigotmc.org/resources/servernpc-frequently-updates.74524/) plugin and install it into your `plugins` folder. Next, make sure to download all of its dependencies. -``` +```text PlaceholderAPI - Required (Hard Dependency) ProtocolLib - Recommended (Soft Dependency) HolographicDisplays - Recommended (Soft Dependency) @@ -37,7 +37,7 @@ HolographicExtension - Recommended (Soft Dependency) ## Commands Many commands are offered to modify and change the NPCs you create. -``` +```text /npc /npc lookRange /npc move @@ -66,7 +66,7 @@ If you open the menu that appears in /npc, and right click the "See NPCs" button ![A view of the Editing Wand Menu](https://imgur.com/lDWNO3K.png) Within the editing wand you can do the following (from left to right in the menu shown above) -``` +```text 1. Change the NPC's skin 2. Add Actions to the NPC 3. Change what the NPC is holding and wearing diff --git a/docs/plugins_and_modifications/plugins/tebex.md b/docs/plugins_and_modifications/plugins/tebex.md index 859130bc3..3f33c03e3 100644 --- a/docs/plugins_and_modifications/plugins/tebex.md +++ b/docs/plugins_and_modifications/plugins/tebex.md @@ -25,13 +25,13 @@ Tebex (BuyCraft) is a plugin that links your Tebex Donation Store to your Minecr In order to install Tebex (BuyCraft), you need to download the .jar file from the official [Tebex Download page](https://server.tebex.io/plugins/124/download). You will need to log in to access this download page. -Once you have done this, please upload the .jar file into your `/plugins` folder. For further assistance on how to install plugins, please refer to this [guide](/installing-plugins). +Once you have done this, please upload the .jar file into your `/plugins` folder. For further assistance, refer to our [plugin installation guide](/installing-plugins). --- ## Usage -In order to integrate your Tebex Store with your Minecraft server, you need your Tebex secret key. To obtain the secret key, head over to the Tebex [website](https://server.tebex.io/settings/servers/1083138) and log in to your dashboard. +In order to integrate your Tebex Store with your Minecraft server, you need your Tebex secret key. To obtain the secret key, open the [Tebex server settings](https://server.tebex.io/settings/servers/1083138) and log in to your dashboard. Once you have logged in, proceed to the sidebar on the left of your page and click on the Integrations dropdown, then Servers. Create a server on the top right if you haven’t already and click Edit. Here you will see your Secret Key. @@ -45,7 +45,7 @@ See below for an example on where to find your Secret Key. Once you have obtained your Secret Key, run the following command in your server’s console, being sure to replace `key` with your Secret Key. -``` +```text tebex secret key ``` diff --git a/docs/plugins_and_modifications/plugins/topper.md b/docs/plugins_and_modifications/plugins/topper.md index 1114804d6..57e506f1f 100644 --- a/docs/plugins_and_modifications/plugins/topper.md +++ b/docs/plugins_and_modifications/plugins/topper.md @@ -2,7 +2,7 @@ id: topper title: Topper slug: /plugins/Topper -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Topper description: A highly optimized plugin for leaderboard creation keywords: @@ -45,7 +45,7 @@ After you have added your placeholders to the config you can now restart the ser in-game you can run the following command to test out the placeholders, you can do this with: -```/gettop money 10``` +`/gettop money 10` --- @@ -56,20 +56,20 @@ To add this to a leaderboard, follow these steps: **Step 1:** Create a hologram using your preferred plugin. This example uses [DecentHolograms](https://modrinth.com/plugin/decentholograms): -``` +```text /dh create MoneyTop ``` **Step 2:** Add a placeholder to the hologram: -``` +```text /dh line add MoneyTop 1 %topper_money;top_name;1% &7- &b%topper_money;top_value;1% ``` **Add more lines if you want to add more rows, e.g** -``` +```text /dh line add MoneyTop 1 %topper_money;top_name;2% &7- &b%topper_money;top_value;2% /dh line add MoneyTop 1 %topper_money;top_name;3% &7- &b%topper_money;top_value;3% ... diff --git a/docs/plugins_and_modifications/plugins/vault.md b/docs/plugins_and_modifications/plugins/vault.md index 2dd9a4519..e5d29ee94 100644 --- a/docs/plugins_and_modifications/plugins/vault.md +++ b/docs/plugins_and_modifications/plugins/vault.md @@ -2,7 +2,7 @@ id: vault title: Vault slug: /plugins/vault -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Vault description: A common API for chat, permission and economy plugins. keywords: @@ -25,7 +25,7 @@ Vault provides a common API to give plugins access to chat, permission and econo ## Installation Instructions Download Vault from its [Spigot Resource page](https://www.spigotmc.org/resources/vault.34315/) or its [BukkitDev page](https://dev.bukkit.org/projects/vault) or directly from its [GitHub repo](https://github.com/MilkBowl/Vault/releases). -Next, install the plugin into the `plugins` folder in your server. Need help? Check out [this guide](/installing-plugins). +Next, install the plugin into the `plugins` folder in your server. Need help? Check out our [plugin installation guide](/installing-plugins). --- diff --git a/docs/plugins_and_modifications/plugins/venturechat.md b/docs/plugins_and_modifications/plugins/venturechat.md index e7d7fc865..2d644073d 100644 --- a/docs/plugins_and_modifications/plugins/venturechat.md +++ b/docs/plugins_and_modifications/plugins/venturechat.md @@ -2,7 +2,7 @@ id: venturechat title: VentureChat slug: /plugins/venturechat -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: VentureChat description: An easy to use and customisable plugin for your chat needs. keywords: @@ -23,16 +23,16 @@ VentureChat is the #1 Bukkit chat resource on Spigot which is a do-it-all chat p ## Usage :::important -This plugin requires Java 17 or higher to work. The instructions on how to change the Java version used by your server are [here](/java-version) +This plugin requires Java 17 or higher to work. See our [Java version guide](/java-version) for instructions. ::: -To use this plugin, [download](https://www.spigotmc.org/resources/venturechat.771/) the jar file you will use for installation. This plugin can be used on Bungeecord servers by placing it into the relative plugins folder too. +To use this plugin, [download VentureChat](https://www.spigotmc.org/resources/venturechat.771/) for installation. This plugin can be used on BungeeCord servers by placing it into the relevant `plugins` folder too. -Once you have downloaded the .jar file, upload it into your `plugins` folder then either start or restart the server. If you need assistance in installing plugins, check out [this guide](/installing-plugins). +Once you have downloaded the .jar file, upload it into your `plugins` folder then either start or restart the server. If you need assistance, check out our [plugin installation guide](/installing-plugins). To begin, simply edit the `config.yml` channels below. Here is an example from the [VentureChat Wiki](https://www.spigotmc.org/wiki/venturechat-wiki/) -``` +```yaml Build: color: dark_green chatcolor: white @@ -58,7 +58,7 @@ Here are a list of key terms you have seen in the above configuration that can b `cooldown` - Defines how quickly you can send messages in seconds. E.g. If you set this option to 3, people can only send a message per 3 seconds. -`bungeecord` - This enables cross-server messages. Due to the complexities of this function, read the relevant wiki page [here](https://www.spigotmc.org/wiki/venturechat-wiki/). +`bungeecord` - This enables cross-server messages. Due to the complexities of this function, read the [VentureChat wiki](https://www.spigotmc.org/wiki/venturechat-wiki/). `autojoin` - Defines whether or not this channel is the first channel you enter on join. It is recommended you only enable autojoin for one channel only to avoid conflicts. diff --git a/docs/plugins_and_modifications/plugins/viaversion.md b/docs/plugins_and_modifications/plugins/viaversion.md index 1656708d6..0ed7ab4d0 100644 --- a/docs/plugins_and_modifications/plugins/viaversion.md +++ b/docs/plugins_and_modifications/plugins/viaversion.md @@ -32,15 +32,15 @@ ViaVersion **needs** to be installed for ViaBackwards and ViaRewind to work and ::: :::note -Confused about which Via plugin you need to use to support certain versions? Use this [website](https://jo0001.github.io/ViaSetup/?lang=en) to know which Via plugins you need to install. +Confused about which Via plugin you need to support certain versions? Use the [ViaSetup compatibility tool](https://jo0001.github.io/ViaSetup/?lang=en) to identify which Via plugins to install. ::: -![img](/plugins_and_modifications/plugins/viaversion/1.png) +![ViaSetup compatibility chart for ViaVersion, ViaBackwards, and ViaRewind](/plugins_and_modifications/plugins/viaversion/1.png) --- ## Usage -Download the plugins and upload them into your `plugins` folder. Restart or turn on your server. If you need help with installing plugins, check out [this guide](/installing-plugins). +Download the plugins and upload them into your `plugins` folder. Restart or turn on your server. If you need help, check out our [plugin installation guide](/installing-plugins). Once you have installed the plugins and restarted your server, Java players should be able to join from any version! diff --git a/docs/plugins_and_modifications/plugins/votifier.md b/docs/plugins_and_modifications/plugins/votifier.md index e26ad9c45..55e4a4780 100644 --- a/docs/plugins_and_modifications/plugins/votifier.md +++ b/docs/plugins_and_modifications/plugins/votifier.md @@ -2,7 +2,7 @@ id: votifier title: NuVotifier slug: /plugins/votifier -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: NuVotifier description: NuVotifier allows you to be put on voting sites, which increases your servers visibility. keywords: @@ -45,11 +45,11 @@ Please check your `config.yml`, you'll notice there is a list of configuration o After you have found your port, you need to head to DuckPanel and open Ports & Proxies. It should look something like below. -![console](/plugins_and_modifications/plugins/votifier/1.png) +![DuckPanel Ports and Proxies tab with existing allocations](/plugins_and_modifications/plugins/votifier/1.png) You'll already have a batch of allocations most likely, simply need to hit `Open Port` and type in `8192` then hit `open port` -![console](/plugins_and_modifications/plugins/votifier/2.png) +![Open Port dialog configured for Votifier port 8192](/plugins_and_modifications/plugins/votifier/2.png) The next step is to restart your server, so the port can be opened. diff --git a/docs/plugins_and_modifications/plugins/vulcan.md b/docs/plugins_and_modifications/plugins/vulcan.md index 5cc961710..606489d72 100644 --- a/docs/plugins_and_modifications/plugins/vulcan.md +++ b/docs/plugins_and_modifications/plugins/vulcan.md @@ -27,9 +27,9 @@ Cheats detected by Vulcan: --- ## Setup & Configuration: -First, download the plugin on their [Spigot Page](https://www.spigotmc.org/resources/vulcan-advanced-cheat-detection-1-7-1-17-1.83626/) (Please note that this plugin is premium, and you will need to pay to use it). Then, drop the plugin into your `/plugins` folder, and restart the server. If you want to use this plugin with bungeecord, check out extra steps on Vulcan's [Bungee Page](https://www.spigotmc.org/resources/vulcanbungee-bungee-hook-for-vulcan-anti-cheat.94194/). +First, download the plugin on their [Spigot page](https://www.spigotmc.org/resources/vulcan-advanced-cheat-detection-1-7-1-17-1.83626/) (Please note that this plugin is premium, and you will need to pay to use it). Then, drop the plugin into your `/plugins` folder, and restart the server. If you want to use this plugin with BungeeCord, check out the extra steps on Vulcan's [Bungee page](https://www.spigotmc.org/resources/vulcanbungee-bungee-hook-for-vulcan-anti-cheat.94194/). -Vulcan is pre-configured to be almost plug and play. Most configuration options can be edited ingame (with /vulcan gui), and checks are being constantly optimised and changed to best fit all servers. +Vulcan is pre-configured to be almost plug and play. Most configuration options can be edited in-game (with `/vulcan gui`), and checks are being constantly optimised and changed to best fit all servers. :::important diff --git a/docs/plugins_and_modifications/plugins/worldguard.md b/docs/plugins_and_modifications/plugins/worldguard.md index a11e44bd4..c7702ada6 100644 --- a/docs/plugins_and_modifications/plugins/worldguard.md +++ b/docs/plugins_and_modifications/plugins/worldguard.md @@ -37,7 +37,7 @@ Use WorldEdit’s wand tool (usually a wooden axe) to select two opposite corner **Step 2: Define the region** Run the command: -```/rg define <region_name>``` +`/rg define <region_name>` to create a region with your chosen name. @@ -47,8 +47,7 @@ Flags control what players can do in the region. Some common examples: * Example: Disabling pvp in a region - ```/rg flag <region_name> pvp deny``` - + `/rg flag <region_name> pvp deny` * Step 4: Check your region Use: `/rg info <region_name>` diff --git a/docs/plugins_and_modifications/proxy-plugins.md b/docs/plugins_and_modifications/proxy-plugins.md index 1239eb7a3..e952f0183 100644 --- a/docs/plugins_and_modifications/proxy-plugins.md +++ b/docs/plugins_and_modifications/proxy-plugins.md @@ -14,7 +14,7 @@ keywords: --- :::important -This guide is for BungeeCord/Velocity proxies. If you are looking for instructions on how to install plugins on a Bukkit/Spigot/Paper server, please see [this guide](/installing-plugins) +This guide is for BungeeCord/Velocity proxies. If you are looking for instructions on how to install plugins on a Bukkit/Spigot/Paper server, please see our [Bukkit plugin installation guide](/installing-plugins). ::: :::caution Waterfall is End of Life diff --git a/docs/plugins_and_modifications/serverpackcreator.mdx b/docs/plugins_and_modifications/serverpackcreator.mdx index 6f147518b..a37e63026 100644 --- a/docs/plugins_and_modifications/serverpackcreator.mdx +++ b/docs/plugins_and_modifications/serverpackcreator.mdx @@ -2,7 +2,7 @@ id: serverpackcreator title: "Serverpack Creator" slug: /plugins_and_modifications/serverpackcreator -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: "Serverpack Creator" description: How can I make a serverpack to upload to my server? keywords: @@ -106,14 +106,14 @@ While Beyond depth and Homestead provide their own ways to do their serverspacks :::info If you are confused on what jar to select, you can check the **variables.txt** file that SPC generates with the serverpack. **For example, below is the variables.txt Server type Fabric for Version 1.20.1 with Build 0.18.6.** -![img](/extras/serverpackcreator/serverpack_variables.png) +![ServerPackCreator variables file showing the generated server type and version](/extras/serverpackcreator/serverpack_variables.png) ::: 1.1 Ensure for this step you click Remove all files before changing server type. - ![img](/extras/serverpackcreator/jarselect.png) + ![DuckPanel Change Server Type dialog with the matching server jar selected](/extras/serverpackcreator/jarselect.png) 2. After the server jar is installed, you can upload the serverpack zip that was generated via [sftp](/sftp). -3. Once uploaded, extract the zip **via the file manager** by right clicking the zip and selecting unarchive. ![img](/extras/serverpackcreator/unzip.png) +3. Once uploaded, extract the zip **via the File Manager** by right clicking the zip and selecting unarchive. ![File Manager context menu with the Unarchive action](/extras/serverpackcreator/unzip.png) 4. Once unarchived, you can start the server, and enjoy the serverpack you just made! diff --git a/docs/running_a_server/blockedserver.md b/docs/running_a_server/blockedserver.md index 607cc2901..9417ceb72 100644 --- a/docs/running_a_server/blockedserver.md +++ b/docs/running_a_server/blockedserver.md @@ -21,7 +21,7 @@ Mojang has a pretty useful site we can use to check: https://sessionserver.mojan Within this site we'll find the SHA1 hash of the wildcard domain of the servers Mojang is currently blocking. We can use a website such as [SHA-1 Online](https://www.sha1-online.com/) to get the hash of our domain. We want to check the wildcard domain, so for example if our server is using "minecraft.blockaventure.com" our wildcard domain will be "*.blockadventure.com". Once we have our hash rate we can simply look for a match on Mojang's website by using our trust CNTRL + F combo. If you find your SHA1 hash there, your server has been blocked. -![img](/running_a_server/blockedserver/1.png) +![SHA-1 domain hash matched in Mojang's blocked-server list](/running_a_server/blockedserver/1.png) --- diff --git a/docs/running_a_server/converting-worlds.md b/docs/running_a_server/converting-worlds.md index 1487f98ba..a1d55afb4 100644 --- a/docs/running_a_server/converting-worlds.md +++ b/docs/running_a_server/converting-worlds.md @@ -16,14 +16,14 @@ keywords: --- -# Converting Bukkit Worlds to vanilla +## Converting Bukkit Worlds to vanilla If you upload or generate a world on a Bukkit/Spigot/Paper server, you will notice that when the server loads it splits the world into three folders: `world`, `world_nether` and `world_the_end`, or one for each dimension. This is fine until you want to download the world and run it in singleplayer or switch to a vanilla/Fabric/Forge server. This guide shows you how to convert Bukkit/Spigot/Paper worlds back to ones that can be used on vanilla or other server types. Note that the screenshots provided were taken on macOS, but the method should work for all platforms. ## Part 1: Download the world -**Note:** This is not strictly necessary, you CAN use SFTP or the file manager if you want, but downloading the files makes them much easier to work with. +**Note:** This is not strictly necessary, you CAN use SFTP or the File Manager if you want, but downloading the files makes them much easier to work with. -This is most easily done by archiving the files using the Pterodactyl file manager and downloading them using SFTP. For instructions on using the file manager and SFTP, please see [File Manager Controls](/file-manager-controls/) and [How to use SFTP](/sftp/), respectively. +This is most easily done by archiving the files using the File Manager and downloading them using SFTP. For instructions on using the File Manager and SFTP, please see [File Manager Controls](/file-manager-controls/) and [How to use SFTP](/sftp/), respectively. ## Part 2: Converting the world diff --git a/docs/running_a_server/datapacks.md b/docs/running_a_server/datapacks.md index 49214e04d..8906d8b88 100644 --- a/docs/running_a_server/datapacks.md +++ b/docs/running_a_server/datapacks.md @@ -24,11 +24,11 @@ management tab. Open your server in the DuckPanel and open the 'File Manager' tab. -![File manager tab](/running_a_server/datapacks/1.png) +![File Manager tab](/running_a_server/datapacks/1.png) Select the world you want to install the datapack onto. -![File manager tab showing the datapacks folder](/running_a_server/datapacks/2.png) +![File Manager tab showing the datapacks folder](/running_a_server/datapacks/2.png) Open the `datapacks/` folder and click the 'Upload' button in the top right corner. Select your datapack to upload it. You can also drag and drop the datapack `.zip` file. @@ -37,7 +37,7 @@ Select your datapack to upload it. You can also drag and drop the datapack `.zip Remember that you need to upload the `.zip` datapack file, you don't need to unzip it. ::: -![File manager tab showing the datapacks folder with a zip file](/running_a_server/datapacks/3.png) +![File Manager tab showing the datapacks folder with a zip file](/running_a_server/datapacks/3.png) Now restart your server, feel free to open a ticket if you need any assistance. diff --git a/docs/running_a_server/domain.md b/docs/running_a_server/domain.md index 286f9bc89..7a7e646ae 100644 --- a/docs/running_a_server/domain.md +++ b/docs/running_a_server/domain.md @@ -23,7 +23,7 @@ First, go to the [game panel](https://mc.bloom.host) and select your server. On ![Bloom.host Pointing A Domain](/running_a_server/domain/1.png) -In this guide we're going use CloudFlare to point our domain to the server. Simply register [here](https://dash.cloudflare.com/sign-up). After registration, they will guide you through the process of connecting your domain to CloudFlare. +In this guide we're going use Cloudflare to point our domain to the server. Simply [create a Cloudflare account](https://dash.cloudflare.com/sign-up). After registration, they will guide you through the process of connecting your domain to Cloudflare. Alternatively, some domain providers allow you to use their own systems for DNS. Though all sites look different, the task is the same for all of them. @@ -31,7 +31,7 @@ Alternatively, some domain providers allow you to use their own systems for DNS. Ensure that the server is grey cloud (not proxied by cloudflare). You can still use cloudflare, just make sure it has a grey cloud so it's <u>not proxied</u>. ::: -![img](/running_a_server/domain/2.png) +![Cloudflare DNS record pointing a domain to the server address](/running_a_server/domain/2.png) --- @@ -43,7 +43,7 @@ Ensure that the server is grey cloud (not proxied by cloudflare). You can still Click Save. This process will now take up to 48 hours to apply, but in most cases, it will be under a couple of minutes with Cloudflare! --- -# Pointing a domain to a server that doesn't use port 25565 (split servers or Essentials Plans servers) +## Pointing a domain to a server that doesn't use port 25565 (split servers or Essentials Plans servers) If you have a split server or Essentials Plans server and it doesn't have a 25565 port, and you want to join to them directly you will need to use something similar to this: `play.example.com:25566`. We can get around this by using a **DNS SRV record** that points to the split server port. @@ -57,7 +57,7 @@ If you wish to have multiple servers with clean domains on a network, [it's reco For the following steps we assume you already have created an A record pointing to your server IP. If you haven't done so, please follow the steps above to create another A record before you create the SRV Record. ::: -![img](/running_a_server/domain/3.png) +![Cloudflare SRV record configured for a non-default Minecraft port](/running_a_server/domain/3.png) To create a DNS SRV record you will head to your registrar or Cloudflare DNS configuration page. - Once you are there, you will click on add a new DNS record and you will select `SRV`. diff --git a/docs/running_a_server/icon.md b/docs/running_a_server/icon.md index 16254a536..73a4691e5 100644 --- a/docs/running_a_server/icon.md +++ b/docs/running_a_server/icon.md @@ -16,34 +16,34 @@ keywords: 1. Grab the picture you want to use and head over to http://www.genfavicon.com/ -![img](/running_a_server/icon/1.png) +![Online image editor upload page](/running_a_server/icon/1.png) 2. Paste the image URL link or click choose a file to import a photo from your computer. Then click on the “Upload Image” button. -![img](/running_a_server/icon/2.png) +![Image editor with URL and file upload controls](/running_a_server/icon/2.png) 3. Your image should pop up in the upper right-hand corner as seen below: -![img](/running_a_server/icon/3.png) +![Uploaded server icon in the image editor](/running_a_server/icon/3.png) 4. You will then need to click and drag the little boxes to fit the part of the image you want to include. -![img](/running_a_server/icon/4.png) +![Crop handles positioned around the server icon](/running_a_server/icon/4.png) 5. When you’re satisfied with the selection head down to the green box that says “cut and preview”. Under this heading, you should select a size in the dropdown menu. Select 64x64 then click capture and preview. -![img](/running_a_server/icon/5.png) +![Image editor configured to export a 64 by 64 icon](/running_a_server/icon/5.png) 6. After clicking you should then get an option saying “download png” click on this and save the file as “server-icon.png”. Now go to your server and open “file management” then open “file explorer” in the dropdown menu. -![img](/running_a_server/icon/6.png) +![DuckPanel File Manager open for the server](/running_a_server/icon/6.png) 7. Click upload and pick the icon you made, make sure you name the file exactly server-icon.png or this will not work. -![img](/running_a_server/icon/7.png) +![File Manager showing the uploaded server-icon.png file](/running_a_server/icon/7.png) Now, restart your server. Feel free to open a ticket on our [Discord](https://discord.gg/bloom) if you need any assistance. diff --git a/docs/running_a_server/internal-servers.md b/docs/running_a_server/internal-servers.md index af99e817e..eaf0f37a1 100644 --- a/docs/running_a_server/internal-servers.md +++ b/docs/running_a_server/internal-servers.md @@ -29,7 +29,7 @@ Now we have fully internal servers that are only accessible via servers on the s To make your server internal you can click the "Make Internal" button on the Ports and Proxies tab. Keep in mind this will wipe all your public ports so keep them in mind, if you forget which ports you're using and accidentally wipe them you can see which ones were deleted in your audit log. -![img](/running_a_server/internal_servers/1.PNG) +![Ports and Proxies tab with the Make Internal button](/running_a_server/internal_servers/1.PNG) The full serverid can be found under the Ports and Proxies tab when you make your server internal, but you can also find it by clicking your serverid in the console tab, or under the settings tab. @@ -39,10 +39,10 @@ Connectivity between splits is fully accessible over your splits hostname. For e Below is an example of a Velocity instance setup with internal backend servers -![img](/running_a_server/internal_servers/2.PNG) +![Velocity split with internal backend servers](/running_a_server/internal_servers/2.PNG) ________ You can also open public ports like normal even after you make your server internal. For example, below is an internal backend server but with a public 8123 port for Dynmap -![img](/running_a_server/internal_servers/3.PNG) +![Internal backend server with a public Dynmap port](/running_a_server/internal_servers/3.PNG) diff --git a/docs/running_a_server/jars.mdx b/docs/running_a_server/jars.mdx index 966b6e73b..a6543e8c6 100644 --- a/docs/running_a_server/jars.mdx +++ b/docs/running_a_server/jars.mdx @@ -2,7 +2,7 @@ id: jars title: Server Jars slug: /jars -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Server Software description: This guide will help you choose which jar to use. keywords: @@ -49,7 +49,7 @@ Forge is a jar that adds a modding API for developers to tap into. It is much mo First, navigate to the `Settings` tab and find `Change Server Type`. Once there set up the change server type menu for installing forge. - ![](/plugins_and_modifications/forge_setup/1.png) + ![Change Server Type dialog configured to install Forge](/plugins_and_modifications/forge_setup/1.png) On this menu set version to that required by your mods and build to the latest one available (top of the list). @@ -81,7 +81,7 @@ Fabric, with a few performance mods added, is recommended if you want to run a m ### Installing Fabric - Go to the `Settings` tab on the panel and on the right side you will see the `Change Server Type` box. + Go to the `Settings` tab on the panel and on the right side you will see the `Change Server Type` box. Edit the boxes to the fabric version you would like to use. ![Bloom.host Fabric](/plugins_and_modifications/fabric_setup/FabricInstaller.png) @@ -112,10 +112,10 @@ NeoForge is a jar that adds the modding api of Forge, and performance of Fabric. ### Installing Neoforge - Go to the `Settings` tab on the panel and on the right side you will see the `Change Server Type` box. + Go to the `Settings` tab on the panel and on the right side you will see the `Change Server Type` box. Edit the boxes to the Neoforge version you would like to use. - ![](/plugins_and_modifications/neoforge_setup/NeoforgeInstaller.png) + ![Change Server Type dialog configured to install NeoForge](/plugins_and_modifications/neoforge_setup/NeoforgeInstaller.png) Click `Change Server Type`, this will download Neoforge to your server. diff --git a/docs/running_a_server/java-version.md b/docs/running_a_server/java-version.md index 03484e8c4..5e0fb6ef8 100644 --- a/docs/running_a_server/java-version.md +++ b/docs/running_a_server/java-version.md @@ -29,7 +29,7 @@ Minecraft 1.20.5+ will require a minimum of Java 21 to work. Minecraft 26.1+ will require a minimum of Java 25 to work. ::: -![console](/running_a_server/java_version/1.png) +![DuckPanel Startup tab showing the Java Version selector](/running_a_server/java_version/1.png) :::important If you are unable to change this next setting and you see a message such as "This server's Docker image has been manually set by an administrator and cannot be changed through this UI.", please [open a ticket on the support Discord.](https://discord.com/invite/bloom) and Bloom.host staff will need to change this for you. diff --git a/docs/running_a_server/mcaselector.md b/docs/running_a_server/mcaselector.md index d8ef78395..98b8cd7bd 100644 --- a/docs/running_a_server/mcaselector.md +++ b/docs/running_a_server/mcaselector.md @@ -29,7 +29,7 @@ To avoid having to download and re-upload your world each time, Bloom has a pre- 3. Select the 'MCASelector' server type within the category and click the 'Change Server Type' button. 4. After a few moments, the installation will finish, and you are good to go! -![](/running_a_server/mcaselector/1.png) +![MCA Selector installation completed in DuckPanel](/running_a_server/mcaselector/1.png) --- @@ -38,7 +38,7 @@ For this pre-install, everything is done in the 'Startup' tab of the panel: Here you can modify which specific flags are passed to MCASelector when you start the server. -![](/running_a_server/mcaselector/2.png) +![DuckPanel Startup tab showing MCA Selector flags](/running_a_server/mcaselector/2.png) The default flags will delete all chunks that have only been visited for **1 second or less** in the `world` world. `InhabitedTime` is given in ticks, so while this is very safe, it's likely too low for survival servers and the like, so you may have to change `20` to something higher. @@ -52,7 +52,7 @@ Example: world_nether/DIM-1 or world_the_end/DIM-1 Once you are happy with the flags, return to the 'Console' tab and start the server. -![](/running_a_server/mcaselector/3.png) +![MCA Selector running in the server console](/running_a_server/mcaselector/3.png) In our example, it was only a few dozen chunks, so it only took a few moments but this process may take a very long time for larger worlds. Once it's finished, you can review the logs to ensure everything worked fine and then stop the server with the 'Stop' button. diff --git a/docs/running_a_server/memoryleakanalysis.md b/docs/running_a_server/memoryleakanalysis.md index f878c9744..58f870029 100644 --- a/docs/running_a_server/memoryleakanalysis.md +++ b/docs/running_a_server/memoryleakanalysis.md @@ -14,7 +14,7 @@ keywords: - Leak Suspects --- -[MAT](https://eclipse.dev/mat/) is a free utility provided by the Eclipse Foundation. It's extremely helpful when it comes to analyzing heap dumps from the plugin Spark. +[MAT](https://eclipse.dev/mat/) is a free utility provided by the Eclipse Foundation. It's extremely helpful when it comes to analyzing heap dumps from the Spark plugin. We'll require both Spark on our server, and MAT on our PC for this guide. @@ -44,15 +44,15 @@ With the right version of Java in our PC, we can now unarchive both the MAT file Once we open MAT, we'll need to click "Files", then "Open Heap Dump" -![](/running_a_server/memoryleakanalysis/1.png) +![Eclipse Memory Analyzer Open Heap Dump command](/running_a_server/memoryleakanalysis/1.png) MAT Will automatically grab and mount the file for review, once the software is ready it'll prompt us to specify the type of report we would like to take. In this case, we'll want to select "Leak Suspect Report". -![](/running_a_server/memoryleakanalysis/2.png) +![Eclipse Memory Analyzer report selection with Leak Suspects Report](/running_a_server/memoryleakanalysis/2.png) After some processing it'll provide us with a list of suspected leaks. They will be shown in order of heap usage by their corresponding class name. The class name is key to finding out what's using up all your memory. Besides checking for anything that might be familiar within said names, we can also Google the class name to try and find a GitHub repository. MAT will always show leak suspects, so a healthy server can also produce a "Leak Suspects Report" which is actually completely normal. -![](/running_a_server/memoryleakanalysis/3.png) +![Eclipse Memory Analyzer Leak Suspects Report results](/running_a_server/memoryleakanalysis/3.png) ## MAT Issues @@ -60,14 +60,14 @@ The most common issue one can come across with MAT is simply running out of heap The wrong version of Java got picked up? You can also specify the Java exe to be used by adding: -``` +```text -vm C:\path/to/java/exe ``` In my case it would look like: -``` +```text -vm C:\Program Files\Java\jdk-21\bin\javaw.exe ``` diff --git a/docs/running_a_server/motd.md b/docs/running_a_server/motd.md index 07e6e9117..c9749483a 100644 --- a/docs/running_a_server/motd.md +++ b/docs/running_a_server/motd.md @@ -16,23 +16,23 @@ keywords: ## How to change your MOTD without a plugin -First you need to write your MOTD, you can use [this website](https://mctools.org/motd-creator) to help you. Once you have your MOTD like you want it, copy the `server.properties` code, like the one shown below +First you need to write your MOTD; you can use the [Minecraft MOTD creator](https://mctools.org/motd-creator) to help you. Once you have your MOTD like you want it, copy the `server.properties` code, like the one shown below ![MOTD creator output ready to paste into server.properties](/running_a_server/motd/server-properties-preview.svg) Open your server panel and head to File Explorer, if you need a hand, check out [this guide!](/file-manager-controls). Now, enter your `server.properties` and head to the motd section and paste the copied text where the old one was, then restart your server and your changes will be made. ## How to change your MOTD with ServerListPlus ServerListPlus is a plugin that changes your MOTD through a plugin also adding features like custom MOTDs for separate players. You can download it [here!](https://www.spigotmc.org/resources/serverlistplus.241/) -Now download and place the plugin into your servers `plugins` folder and restart. once you have restarted head, into the ServerListPlus folder and open the `config.yml`. Now you can change the MOTD how you like. [this website](https://mctools.org/motd-creator) can help you make one shown below. ![ServerListPlus MOTD configuration and resulting server-list preview](/running_a_server/motd/serverlistplus-preview.svg) +Now download and place the plugin into your server's `plugins` folder and restart. Once you have restarted, head into the ServerListPlus folder and open the `config.yml`. Now you can change the MOTD how you like. The [Minecraft MOTD creator](https://mctools.org/motd-creator) can help you make one shown below. ![ServerListPlus MOTD configuration and resulting server-list preview](/running_a_server/motd/serverlistplus-preview.svg) ## How to change your MOTD with MiniMOTD MiniMOTD is a plugin (Spigot/Paper/BungeeCord/Velocity) or mod (Fabric/Sponge only) that changes your MOTD using the MiniMessage system and supports RGB (1.16+). You can download it [here!](https://www.spigotmc.org/resources/minimotd-server-list-motd-plugin-with-rgb-gradients.81254/) -Now download and place the plugin into your server's `plugins` folder (or mods folder) and restart. Once you have restarted, head into the MiniMOTD folder and open the `config.hocon`. Now you can change the MOTD how you like. [The MiniMessage docs](https://docs.adventure.kyori.net/minimessage/format.html#minimessage-format) can help you make one shown below. ![MiniMOTD configuration example](/running_a_server/motd/minimotd-1.png). MiniMOTD also has some advanced features such as multiple icons per MOTD and [different MOTDs per virtual hosts](https://github.com/jpenilla/MiniMOTD/wiki#advanced-configuration) (BungeeCord/Velocity only). +Now download and place the plugin into your server's `plugins` folder (or `mods` folder) and restart. Once you have restarted, head into the MiniMOTD folder and open the `config.hocon`. Now you can change the MOTD how you like. The [MiniMessage docs](https://docs.adventure.kyori.net/minimessage/format.html#minimessage-format) can help you make one shown below. ![MiniMOTD configuration and resulting server-list preview](/running_a_server/motd/minimotd-1.png). MiniMOTD also has some advanced features such as multiple icons per MOTD and [different MOTDs per virtual hosts](https://github.com/jpenilla/MiniMOTD/wiki#advanced-configuration) (BungeeCord/Velocity only). The [MiniMessage docs](https://docs.adventure.kyori.net/minimessage/format.html#minimessage-format) can help you to create the MOTDs and use more advanced features such as gradient colours as MiniMessage works differently to other plugins. -## How to change your MOTD on Bungeecord -Changing your MOTD on Bungeecord is slightly different. You can still use ServerListPlus or MiniMOTD, following the guide above, but if you want to do it without ServerListPlus or MiniMOTD, enter your Bungeecord `config.yml` and head to the MOTD -you can use [this website](https://mctools.org/motd-creator) to help you like the one below. +## How to change your MOTD on BungeeCord +Changing your MOTD on BungeeCord is slightly different. You can still use ServerListPlus or MiniMOTD, following the guide above, but if you want to do it without ServerListPlus or MiniMOTD, enter your BungeeCord `config.yml` and head to the MOTD entry. +You can use the [Minecraft MOTD creator](https://mctools.org/motd-creator) to help you make one like the example below. ![BungeeCord MOTD configuration and resulting server-list preview](/running_a_server/motd/bungeecord-preview.svg) diff --git a/docs/running_a_server/optimization.md b/docs/running_a_server/optimization.md index d05c104d1..2f158604b 100644 --- a/docs/running_a_server/optimization.md +++ b/docs/running_a_server/optimization.md @@ -48,7 +48,7 @@ There are **many** different options you can utilize to change your servers game Remember that each server is be different, and that *you* have to decide for yourself which features you want to change. **Don't blindly copy paste values ;)** -You can also check this [guide]( https://github.com/YouHaveTrouble/minecraft-optimization) if you would prefer something less heavy on the details. +You can also check the [Minecraft server optimization guide](https://github.com/YouHaveTrouble/minecraft-optimization) if you would prefer something less heavy on the details. --- diff --git a/docs/running_a_server/resourcepack.md b/docs/running_a_server/resourcepack.md index 9a9936a5d..1a985553a 100644 --- a/docs/running_a_server/resourcepack.md +++ b/docs/running_a_server/resourcepack.md @@ -13,25 +13,25 @@ keywords: - Bloom.host --- -Once you found the resource pack you want on your server you need to upload the resource pack to a website and get the direct download link of it. You can use [this website](https://mc-packs.net/). +Once you found the resource pack you want on your server you need to upload the resource pack to a website and get the direct download link of it. You can use [MC-Packs](https://mc-packs.net/). Click “choose file”, find your file and then click upload. Make sure the file you upload is a.zip file. A file can easily be made into a zip file by right-clicking the file, picking “send to” in the dropdown menu and then choosing “compressed (zipped) folder” -![img](/running_a_server/resourcepack/1.png) +![File hosting page with a resource pack selected for upload](/running_a_server/resourcepack/1.png) Once done you’ll get your download URL. (save this URL) -![img](/running_a_server/resourcepack/2.png) +![Uploaded resource pack with its download URL](/running_a_server/resourcepack/2.png) Now go to your server and open “file management” then open “file explorer” in the dropdown menu Locate `server.properties` and open it. Find `resource-pack` and paste your URL in the box. -![img](/running_a_server/resourcepack/4.png) +![server.properties resource-pack field containing the download URL](/running_a_server/resourcepack/4.png) Optionally, you can add the SHA1 checksum of your chosen resource pack so that clients will be able to reliably update the pack, even if the name doesn't change. To obtain the SHA1 checksum, you can run `certUtil -hashfile \path\to\file SHA1` on Windows or `shasum /path/to/file` on Mac or Linux. Alternatively, you can simply use [emn178's online SHA1 checksum checker](https://emn178.github.io/online-tools/sha1_checksum.html). Once you have it, simply append it to `resource-pack-sha1=` on the second-to-last line of server.properties. -![img](/running_a_server/resourcepack/4.png) +![server.properties resource-pack-sha1 field containing the checksum](/running_a_server/resourcepack/4.png) Now restart your server, feel free to open a ticket if you need any assistance. diff --git a/docs/running_a_server/spark.md b/docs/running_a_server/spark.md index cdbb6d263..12481cd3b 100644 --- a/docs/running_a_server/spark.md +++ b/docs/running_a_server/spark.md @@ -2,7 +2,7 @@ id: spark title: Taking a Spark Profile slug: /spark -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Taking a Spark Profile description: How to run a Spark profile to identify causes of lag on your server. keywords: @@ -31,7 +31,7 @@ Download the latest build from [Spark](https://spark.lucko.me/download) and drop ## Using The Profiler :::note -Some versions of spark use different command roots, /sparkb for BungeeCord, /sparkv for Velocity, and /sparkc for Fabric/Forge. If you are having trouble running the command try using the corresponding subfix. +Some versions of Spark use different command roots: `/sparkb` for BungeeCord, `/sparkv` for Velocity, and `/sparkc` for Fabric/Forge. If you are having trouble running the command, try using the corresponding suffix. ::: The most useful tool in terms of diagnostics is the profiler feature which can be run with `/spark profiler start`. @@ -42,17 +42,17 @@ Once you are ready to check the results of the profiler you should run `/spark p When you open the link you'll find a useful web interface that displays all the data collected. -![img](/running_a_server/spark/1.png) +![Spark profiler web interface showing collected performance data](/running_a_server/spark/1.png) ## Other Useful Commands Running `/tps` will display an output that looks like this: -![img](/running_a_server/spark/2.png) +![Server console output from the TPS command](/running_a_server/spark/2.png) Running `/spark healthreport` will display an output that looks like this: -![img](/running_a_server/spark/3.png) +![Server console output from the Spark health report command](/running_a_server/spark/3.png) The values will depend on your server, newer versions of Spark will contain more useful information, as the utility is in active development. diff --git a/docs/running_a_server/timings.md b/docs/running_a_server/timings.md index bb4eb0ff3..c74283bb6 100644 --- a/docs/running_a_server/timings.md +++ b/docs/running_a_server/timings.md @@ -18,7 +18,7 @@ keywords: - Bloom.host --- -# **How to take a Timings Report** +## How to take a Timings Report :::warning Legacy guide The Timings system is no longer available on current Paper and Purpur servers. Use [Spark](/spark) for current performance reports. @@ -30,7 +30,7 @@ Paper 1.21.3 and newer have timings permanently disabled and timings can no long Purpur 1.19 and newer do not support timings. -More information can be found [here](https://github.com/PaperMC/Paper/issues/8948) +More information is available in the [Paper Timings deprecation issue](https://github.com/PaperMC/Paper/issues/8948). ::: :::note @@ -46,11 +46,11 @@ After waiting 10m, run the command `/timings paste`. Said command will paste a link on the console, which when clicked will take you to a web interface similar to the one shown below. -![img](/running_a_server/timings/1.png) +![Paper Timings report web interface](/running_a_server/timings/1.png) Anything in red is using an excess of resources. You can also click the plugins tab to see what plugins are using the most resources on your server. ## Alternatives to Timings Timings, while a great tool to get an overview of performance at a basic level, might not be the best utility to use for more indepth troubleshooting or performance breakdowns. -A new and popular alternative that we recommend is Spark. Learn more about it [here](/spark). +A new and popular alternative that we recommend is Spark. Learn more in our [Spark guide](/spark). If you require help with reading your timings, create a ticket in [Bloom.host Discord!](https://discord.gg/bloom) diff --git a/docs/running_a_server/updating.md b/docs/running_a_server/updating.md index 9b75ae3fc..3c55b6ac2 100644 --- a/docs/running_a_server/updating.md +++ b/docs/running_a_server/updating.md @@ -28,7 +28,7 @@ These same steps apply to changing the version your server runs on. ### Updating or changing versions and jars through the panel -To update or change the version of your server, go to the Duck Panel, select your server and click on the **Settings** tab. There you will find a box that says **Change Server Type**. +To update or change the version of your server, go to DuckPanel, select your server and click on the **Settings** tab. There you will find a box that says **Change Server Type**. After you have selected the server type, you will be able to see the available versions of Minecraft and builds, here you can also select the type of server you want to run: Vanilla, Paper, Forge and others. After this, you can click on the "Change Server Type" button to change the jar, version or build your server runs on. Make sure to hit "Reinstall now" if you want the upgrade to proceed. @@ -42,5 +42,5 @@ After you have followed the steps above, you can periodically check the **Settin - Make sure that your server is backed up completely. - [Create full backup](/backups) of your server. (As an additional step, we would suggest testing this backup on a local or a split test server) - Remove your current server jar through [SFTP](/sftp) or the [File Manager](/file-manager-controls). -- Download the new version of your server software. If you are unsure which one to use, check out our guide on server jars [here](/jars). +- Download the new version of your server software. If you are unsure which one to use, check out our [server jars guide](/jars). - Upload it using SFTP or the File Manager and make sure to define the full name (such as `paper-1.18-023` in the 'Startup' tab on the panel) diff --git a/docs/running_a_server/velocity.md b/docs/running_a_server/velocity.md index b5c003a1d..aec0fdb74 100644 --- a/docs/running_a_server/velocity.md +++ b/docs/running_a_server/velocity.md @@ -2,9 +2,9 @@ id: velocity title: Setting Up Velocity slug: /velocity -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Setting up a Velocity Proxy -description: How to set up a Velocity Proxy Server +description: How to set up a Velocity proxy server keywords: - Minecraft - Proxy @@ -39,19 +39,19 @@ First you will need to head to your server split section via the server panel si Next you need to select the type of server split you want to create, name your split, and allocate the amount of RAM and Storage you want your Velocity Server to have, it will look something like this: -![console](/running_a_server/velocity/velocity-server-split-setups.png) +![Server Splitter form configured for a Velocity proxy](/running_a_server/velocity/velocity-server-split-setups.png) After you create your split for Velocity it will appear in that section with all its details, just like your other server splits. -![console](/running_a_server/velocity/2.png) +![DuckPanel showing the newly created Velocity server split](/running_a_server/velocity/2.png) Rename your velocity jar that you downloaded in the previous section to `velocity.jar` for simplicity and upload it to your `/home` directory on your new server split. This will be the jar that runs Velocity, much like server jars on your other splits. After you've uploaded the jar file to your server you need to head to the `Startup` section of your server split via the sidebar and make sure that the name of the startup variable for the server jar matches up with what you have uploaded. It should look like this: -![img](/running_a_server/velocity/velocity-startup-options.PNG) +![Velocity server Startup tab with the server jar variable](/running_a_server/velocity/velocity-startup-options.PNG) -Now you need to start up the Velocity server and then shut it down once it's loaded, this will initialize the filesystem for Velocity and setup Velocity's folders and configuration file. Your `/home` directory should now look something like this. +Now you need to start up the Velocity server and then shut it down once it's loaded, this will initialize the filesystem for Velocity and set up Velocity's folders and configuration file. Your `/home` directory should now look something like this. -![img](/running_a_server/velocity/velocity-initial-fs.PNG) +![Velocity files generated in the File Manager](/running_a_server/velocity/velocity-initial-fs.PNG) The `velocity.toml` file is the config file for Velocity, we will be editing this and more in the following sections. @@ -61,11 +61,11 @@ The first section of the config file you need to edit is the `[servers]` section :::note -Before you set up this section, you're going to want to make sure all your backend servers are internal. You can make your backend servers internal by going to the Ports and Proxies tab under the specific server and clicking "Make Internal", that will remove all public access to your backend servers which is what we want. When a server is internal they are only accessible via other servers in the same split. If you would like to read more information on our internal servers please see [here](/internal-servers). +Before you set up this section, you're going to want to make sure all your backend servers are internal. You can make your backend servers internal by going to the Ports and Proxies tab under the specific server and clicking "Make Internal", that will remove all public access to your backend servers which is what we want. When a server is internal they are only accessible via other servers in the same split. For more information, see our [internal servers guide](/internal-servers). ::: -``` +```toml [servers] # Configure your servers here. Each key represents the server's name, and the value # represents the IP address of the server to connect to. @@ -117,19 +117,19 @@ First, turn your backend server offline. You need to disable BungeeCord forwarding if you had it enabled beforehand. Make sure `bungeecord` is set to `false` in your `spigot.yml`. -![img](/running_a_server/velocity/4.png) +![spigot.yml with BungeeCord forwarding disabled](/running_a_server/velocity/4.png) In `config/paper-global.yml`, under the `velocity` section set `enabled: true` and `secret ''` to match the secret in your `forwarding.secret` file. The `forwarding.secret` is found in the main folder of your Velocity Proxy server, and it will contain a text that you need to paste inside the '' in the secret line in the `paper-global.yml` files of your backend servers. See the screenshots below: -![img](/running_a_server/velocity/5.png) +![Velocity proxy forwarding.secret file](/running_a_server/velocity/5.png) -![img](/running_a_server/velocity/6.png) +![Forwarding secret copied from the Velocity proxy](/running_a_server/velocity/6.png) Copy the text found in the `forwarding.secret`, then go into your Paper backend server, navigate to the config folder then open the `paper-global.yml` file, search for the secret line and paste the text inside the '', it should look similar to this screenshot but with your unique secret key. -![img](/running_a_server/velocity/7.png) +![paper-global.yml with the Velocity forwarding secret configured](/running_a_server/velocity/7.png) You must also set `online-mode` under the `velocity` section in `config/paper-global.yml` to the `online-mode` setting in your `velocity.toml`. Once you're done editing `paper-global.yml`, start your server. Keep in mind that these changes need to be done while the server is offline, otherwise they will not be saved. @@ -142,7 +142,7 @@ A mod called [FabricProxy-Lite](https://modrinth.com/mod/fabricproxy-lite) allow ### BungeeGuard Forwarding for Spigot/Paper :::caution -Legacy BungeeCord forwarding mode is less secure than modern Velocity forwarding mode and may result in security issues if not setup properly. +Legacy BungeeCord forwarding mode is less secure than modern Velocity forwarding mode and may result in security issues if not set up properly. If you need to use legacy BungeeCord forwarding mode, make sure you set up BungeeGuard to ensure people do not connect directly to your backend servers. @@ -163,18 +163,18 @@ The following table contains additional noteworthy configuration options for `ve | Option | Description | Example | | -------- | --------- | ---------- | -| **[forced-hosts]** | This lets you set up your custom domain with velocity, set the right side up to match your **try** section from earlier | `"host.name" = ["lobby", "survival", "creative"]` | +| **[forced-hosts]** | This lets you set up your custom domain with Velocity; set the right side to match your **try** section from earlier | `"host.name" = ["lobby", "survival", "creative"]` | | **show-max-players** | The max player count that displays in the multiplayer menu | `show-max-players: 100` | | **forwarding-secret**| Do not change this. This is the secret you need to insert into configuration files on your backend servers | `forwarding-secret: "someRandomStringHere"` | | **bind** | This is the default IP address that players will connect to when connecting to Velocity, it's recommended to set it like the example here so that it uses Minecraft’s default port | `bind: "0.0.0.0:25565"`| -You can find documentation for other settings in the `velocity.toml` file [right here](https://velocitypowered.com/wiki/users/configuration/)! +You can find other `velocity.toml` settings in the [Velocity configuration reference](https://velocitypowered.com/wiki/users/configuration/)! ## Finishing up Now that you have configured your backend servers to communicate with Velocity correctly you are ready to start Velocity. Start your Velocity Server and make sure that you have restarted all of your backend servers and you should now have a working Velocity network! -If you are interested in installing additional functionality for Velocity, they have a `Plugins` section [on their website](https://forums.velocitypowered.com/c/plugins/5) where you can go to find Velocity compatible plugins! +If you are interested in installing additional functionality for Velocity, browse the [Velocity plugins forum](https://forums.velocitypowered.com/c/plugins/5) for compatible plugins! :::tip diff --git a/docs/running_a_server/whitelist.md b/docs/running_a_server/whitelist.md index 319ad67b7..1c263e757 100644 --- a/docs/running_a_server/whitelist.md +++ b/docs/running_a_server/whitelist.md @@ -2,9 +2,9 @@ id: whitelist title: Setting Up Whitelist slug: /whitelist -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Setting up Whitelist -description: How to set up Whitelist on Java/Bedrock +description: How to set up a whitelist on Java or Bedrock keywords: - Minecraft - Whitelist @@ -60,7 +60,7 @@ Otherwise, it'll look something like this, we will use Notch as a placeholder: ] ``` * Step 3: Add someone to your file, to do this you'll need their UUID, an easy way to get this is to goto a website like https://mcuuid.net/ and search their username you will get a result similar to this: -![](/running_a_server/whitelisting/mcuuid-example.png) +![MCUUID lookup result showing a player's full UUID](/running_a_server/whitelisting/mcuuid-example.png) From this page, we need one thing, the user's Full UUID. Once you have that copied, you can head back to the `whitelist.json` file and add them to the file using this format: ```yaml [ diff --git a/docs/running_a_server/world-reset.md b/docs/running_a_server/world-reset.md index 0f596edfc..585d2a39e 100644 --- a/docs/running_a_server/world-reset.md +++ b/docs/running_a_server/world-reset.md @@ -23,7 +23,7 @@ The following steps will __completely erase__ your worlds. If you wish to have multiple worlds on your server at once, add a prefix to the end of each world (such as `_old`), OR use a plugin such as [Multiverse](https://dev.bukkit.org/projects/multiverse-core). -We recommend you take a backup before deleting any worlds in your server. Follow this [guide](/backups) to learn how to make and schedule backups. +We recommend you take a backup before deleting any worlds in your server. Follow the [backups guide](/backups) to learn how to make and schedule backups. ::: You now have to locate your world files, on *most* Minecraft servers these folders will be `world`, `world_nether`, and `world_the_end` - if not, check your `level-name` in `server.properties`. diff --git a/docs/running_a_server/worlds.md b/docs/running_a_server/worlds.md index 1581955bd..ac512e05e 100644 --- a/docs/running_a_server/worlds.md +++ b/docs/running_a_server/worlds.md @@ -2,7 +2,7 @@ id: worlds title: Managing Minecraft Worlds slug: /worlds -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Managing Worlds description: Learn how you can upload, export and manage your Minecraft worlds. keywords: @@ -19,38 +19,38 @@ keywords: If you'd like to import ALL your files from another hosting company, please follow our [Server Importer](/server-importer) guide instead! ::: -# Importing Worlds +## Importing Worlds Depending on your specific edition and world, there are a couple of methods of importing worlds. ## From Java Edition Single Player If you have a single player world in Java Edition, this is what you need to do: Open the single player menu and select your world. Then, press the 'Edit' button: -![img](/running_a_server/worlds/1.png) +![Minecraft single-player world selected with the Edit button](/running_a_server/worlds/1.png) Here, press the 'Open World Folder' button: -![img](/running_a_server/worlds/2.png) +![Minecraft world settings with the Open World Folder button](/running_a_server/worlds/2.png) Then, select all the files within the open directory and right click. Select 'Send To' and 'Compressed (zipped) folder': -![img](/running_a_server/worlds/3.png) +![Windows context menu for creating a compressed world folder](/running_a_server/worlds/3.png) You may get a warning about empty folders being skipped but that is okay! -Next, follow [our guide on connecting to your server with an SFTP client](/sftp). In most cases, your world files will be fairly large, so it's best to use a dedicated file transfer protocol, instead of the built-in web file manager. +Next, follow [our guide on connecting to your server with an SFTP client](/sftp). In most cases, your world files will be fairly large, so it's best to use a dedicated file transfer protocol, instead of the built-in File Manager. Once connected via SFTP, right click in SFTP and create a new folder, such as `my-world` and open it. -![img](/running_a_server/worlds/4.png) +![New world folder created in the SFTP client](/running_a_server/worlds/4.png) Drag & drop the ZIP file you created previously and wait until it finishes uploading. -![img](/running_a_server/worlds/5.gif) +![World archive uploading through SFTP](/running_a_server/worlds/5.gif) Once that's done, head over to the 'File Manager' tab of the panel and locate and your folder. Within, press the '...' button next to your ZIP and click 'Unarchive'. This may also take a few minutes depending on the size of your server. -![img](/running_a_server/worlds/6.png) +![File Manager context menu with the Unarchive action](/running_a_server/worlds/6.png) After unzipping, here is how it should generally look. -![img](/running_a_server/worlds/7.png) +![Extracted Java world files in the File Manager](/running_a_server/worlds/7.png) Now, if you'd like this to be your main world, open the `server.properties` file in the main directory of your server and ensure the `level-name=` setting matches with the folder that you created before: -![img](/running_a_server/worlds/8.png) +![server.properties level-name set to the uploaded world folder](/running_a_server/worlds/8.png) Alternatively, if you'd like to use a plugin or mod such as [Multiverse-Core](/plugins/multiverse), you can import it using the folder's name. In our example, for Multiverse-Core, you'd do `/mvimport my-world NORMAL` @@ -63,14 +63,14 @@ That's it! Make sure to restart your server to apply the changes. If you have a Minecraft Realm on Java Edition, this is what you need to do: Open the Realm menu, select your Realm and press 'Configure': -![img](/running_a_server/worlds/9.png) +![Minecraft Realms menu with the Configure button](/running_a_server/worlds/9.png) Switch to the world you'd like to import to your Bloom server by clicking it, if you haven't already. There press the 'World backups' button: -![img](/running_a_server/worlds/10.png) +![Minecraft Realm settings with the World backups button](/running_a_server/worlds/10.png) Lastly, press the 'Download latest' button which will download the very latest backup of your Realm to your single player saves folder: -![img](/running_a_server/worlds/11.png) +![Minecraft Realm backup with the Download latest button](/running_a_server/worlds/11.png) That's it! Now you can follow the ['From Java Edition Single Player'](#from-java-edition-single-player) chapter to import your Realm world! @@ -80,44 +80,44 @@ That's it! Now you can follow the ['From Java Edition Single Player'](#from-java If you have a single player world in Bedrock Edition, this is what you need to do: Open the worlds list and press the edit button next to your desired world: -![img](/running_a_server/worlds/12.png) +![Minecraft Bedrock worlds list with an edit button](/running_a_server/worlds/12.png) Scroll down to the very bottom of the main page and press 'Export World': -![img](/running_a_server/worlds/13.png) +![Minecraft Bedrock world settings with the Export World button](/running_a_server/worlds/13.png) Select your desktop, or another easy to access location: -![img](/running_a_server/worlds/14.png) +![File picker saving the exported Bedrock world to the desktop](/running_a_server/worlds/14.png) -Next, follow [our guide on connecting to your server with an SFTP client](/sftp). In most cases, your world files will be fairly large, so it's best to use a dedicated file transfer protocol, instead of the built-in web file manager. +Next, follow [our guide on connecting to your server with an SFTP client](/sftp). In most cases, your world files will be fairly large, so it's best to use a dedicated file transfer protocol, instead of the built-in File Manager. Once connected via SFTP, open the `worlds` directory and create a new folder, such as `my-world` and open it. -![img](/running_a_server/worlds/15.png) +![New Bedrock world folder created in the SFTP client](/running_a_server/worlds/15.png) Drag & drop the world file you exported previously and wait until it finishes uploading. Once it does, rename it, so instead of ending in `.mcworld`, it ends in `.zip`. The rest of the name does not matter. -![img](/running_a_server/worlds/16.gif) +![Bedrock world file renamed from mcworld to zip](/running_a_server/worlds/16.gif) Once that's done, head over to the 'File Manager' tab of the panel and locate and your folder in the `worlds` directory. Then, press the '...' button next to your ZIP and click 'Unarchive'. This may also take a few minutes depending on the size of your server. -![img](/running_a_server/worlds/17.png) +![File Manager context menu unarchiving the Bedrock world](/running_a_server/worlds/17.png) After unzipping, here is how it should generally look. -![img](/running_a_server/worlds/18.png) +![Extracted Bedrock world files in the File Manager](/running_a_server/worlds/18.png) Lastly, open the `server.properties` file in the main directory of your server and ensure the `level-name=` setting matches with the folder that you created before: -![img](/running_a_server/worlds/8.png) +![server.properties level-name set to the imported Bedrock world folder](/running_a_server/worlds/8.png) That's it! Make sure to restart your server to apply the changes. --- -# Resetting Worlds -You can find our full guide on resetting your world [here](/world-reset)! +## Resetting Worlds +See our full [world reset guide](/world-reset)! <!-- // Todo: --- -# Exporting Worlds +## Exporting Worlds ## To Java Single Player diff --git a/docs/using_the_panel/2fa.md b/docs/using_the_panel/2fa.md index 35c0a5fd3..537895de1 100644 --- a/docs/using_the_panel/2fa.md +++ b/docs/using_the_panel/2fa.md @@ -25,11 +25,11 @@ Remember to write down the recovery code shown while setting up 2FA, without it ::: ## Billing Area 2FA -To set up 2FA in the billing area, head over to the [billing area and log in](https://billing.bloom.host/clientarea.php) +To set up 2FA in the Billing Portal, head over to the [Billing Portal login](https://billing.bloom.host/clientarea.php). Next, head over to [Security Settings](https://billing.bloom.host/clientarea.php?action=security) which you can find here: -![console](/using_the_panel/2fa/1.png) +![Billing Portal Security Settings with two-factor authentication controls](/using_the_panel/2fa/1.png) You can then follow the instruction on the screen. You will need to download Google Authenticator or DUO from the android or IOS app store. @@ -37,7 +37,7 @@ You can then follow the instruction on the screen. You will need to download Goo ## Game Panel 2FA -To set up 2FA in the game panel area, head over to [Account Security](https://mc.bloom.host/account/security) in the game panel area. +To set up 2FA in DuckPanel, head over to [Account Security](https://mc.bloom.host/account/security). Hit **Enable 2-Factor Authentication** to show a QR code that you can scan. @@ -45,7 +45,7 @@ For this, download an app on your phone that is a 2FA app, such as [Authy](https Then, add a new account and scan the QR code. Once it is scanned, type the token that you have on the app into the Authentication Token box. -![console](/using_the_panel/2fa/2.png) +![Two-factor authentication setup with QR code and token field](/using_the_panel/2fa/2.png) You are set and fully protected! Remember to keep the device near you when you log in so you can authenticate yourself! diff --git a/docs/using_the_panel/backups/guide.md b/docs/using_the_panel/backups/guide.md index f62444782..c2a7892e2 100644 --- a/docs/using_the_panel/backups/guide.md +++ b/docs/using_the_panel/backups/guide.md @@ -72,7 +72,7 @@ You can utilise our [schedule feature](../schedules) to automatically generate b First, open the 'Schedules' tab of the panel. Here, click the 'Templates' button in the bottom right corner: ![Templates button](templates_button.png) -Lastly, click 'Create' next to the 'Daily Restart' template: +Lastly, click 'Create' next to the 'Daily Backup' template: ![Template list showing backups](templates.png) Once created, you can access the schedule in the same place: @@ -222,7 +222,7 @@ You can use the 'View' button in its context menu to navigate to the mounted fol ![Backup mounted with view button highlighted](mounted.png) You can also find it in the main folder of your File Manager: -![File manager showing mounted backup](mounted_file_manager.png) +![File Manager showing the mounted backup](mounted_file_manager.png) Similarly, you can use [SFTP](../sftp) to access this special folder. @@ -235,7 +235,7 @@ it to `plugins/Chunky/`. Copying works as it does by default, and you can even copy the files to a different server split. -![Extract and copy buttons in the file manager](mount_extract.png) +![Extract and copy buttons in the File Manager](mount_extract.png) Note that extracting may take significantly longer than a regular copy, since it's done over the network. @@ -291,7 +291,7 @@ You can find out more in [our dedicated guide](../../extras/clumsyloader)! When you [restore](#restoring-full-backups) or [mount](#mounting-backups) a backup, you can find them as [SQL dumps](https://en.wikipedia.org/wiki/Database_dump) in a special `backup_db/` directory: -![MySQL backup_db folder in the file manager](./mysql_backups.png) +![MySQL backup_db folder in the File Manager](./mysql_backups.png) You can use the 'Import to database' button in the context menu to re-import them to a new database. @@ -366,7 +366,7 @@ Select the 'Upgraded' option in 'Pro Backup Addon' at the last step of the check ### For Existing Plans :::note Bare Metal Servers with the Game Panel Management Addon -Please [open a ticket](https://billing.bloom.host/submitticket.php) on our billing panel requesting the Pro Backup Addon. +Please [open a ticket](https://billing.bloom.host/submitticket.php) in our Billing Portal requesting the Pro Backup Addon. ::: 1. Head over to the [billing area](https://billing.bloom.host) and click 'Manage' next to your plan: diff --git a/docs/using_the_panel/basic-controls.mdx b/docs/using_the_panel/basic-controls.mdx index 37105a5c6..4d55c33f3 100644 --- a/docs/using_the_panel/basic-controls.mdx +++ b/docs/using_the_panel/basic-controls.mdx @@ -16,14 +16,14 @@ keywords: ### Accessing The Panel -You can access your server's main control panel [here](https://mc.bloom.host/). If you have multiple servers, you can choose which you want to modify from the panel page. Or, simply choose the server you want to control from the drop-down box of each page within the panel. +You can access your server from the [DuckPanel](https://mc.bloom.host/). If you have multiple servers, you can choose which you want to modify from the panel page. Or, simply choose the server you want to control from the drop-down box of each page within the panel. -![console](/using_the_panel/basic_controls/1.png) +![DuckPanel server selector listing available servers](/using_the_panel/basic_controls/1.png) <div style={{ position: 'relative', paddingTop: '56.25%', textAlign: 'center' }}> <iframe src="https://www.youtube.com/embed/0Gh5l5Ztw_c?si=w5bR9vGWFqGyRJ3E" - title="YouTube video player" + title="Bloom.host server controls walkthrough" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" @@ -42,7 +42,7 @@ You can access your server's main control panel [here](https://mc.bloom.host/). --- ### Live Information -![console](/using_the_panel/basic_controls/2.png) +![DuckPanel console displaying live server resource information](/using_the_panel/basic_controls/2.png) - Purple - Your server's IP address and port. - Blue - Your server's ID which is needed when opening a support ticket. @@ -57,7 +57,7 @@ Here, you can send any command and see what everyone on your server is doing. Wh These buttons allow you to start, stop, and restart your server. It is not recommended killing your server as plugins and worlds won’t save and may become corrupted. Only use it if your server becomes unresponsive. -![console](/using_the_panel/basic_controls/3.png) +![DuckPanel controls for starting, restarting, stopping, or killing a server](/using_the_panel/basic_controls/3.png) --- diff --git a/docs/using_the_panel/file-manager-controls.mdx b/docs/using_the_panel/file-manager-controls.mdx index 4fe883b17..ebfcee8ce 100644 --- a/docs/using_the_panel/file-manager-controls.mdx +++ b/docs/using_the_panel/file-manager-controls.mdx @@ -2,7 +2,7 @@ id: file-manager-controls slug: /file-manager-controls title: File Manager Controls -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: File Manager Controls description: Learn how to upload, download, archive, restore, and manage server files in DuckPanel. keywords: @@ -23,7 +23,7 @@ If you would prefer to use SFTP to manage your files, please see our [guide on S <div style={{ position: 'relative', paddingTop: '56.25%', textAlign: 'center' }}> <iframe src="https://www.youtube.com/embed/Dgl5JNRju-A?si=howzfCpQT7hsEfyo" - title="YouTube video player" + title="Bloom.host File Manager controls walkthrough" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" @@ -42,7 +42,7 @@ If you would prefer to use SFTP to manage your files, please see our [guide on S ### Controls Summary By default you will be able to see the main/root folder of your server. You can click other folders to view their contents. On the top left corner you can see your current path. -![console](/using_the_panel/file_manager_controls/1.png) +![DuckPanel File Manager showing the current server path and files](/using_the_panel/file_manager_controls/1.png) #### Without selecting any files you can: - Open the Recycle Bin to retrieve previously deleted files (up to 24h) diff --git a/docs/using_the_panel/ports-and-proxies.md b/docs/using_the_panel/ports-and-proxies.md index e3f8d4f54..7f6befa41 100644 --- a/docs/using_the_panel/ports-and-proxies.md +++ b/docs/using_the_panel/ports-and-proxies.md @@ -16,7 +16,7 @@ keywords: --- :::warning -## Reverse proxies can only be used for *web connections* (eg. HTTPS). If you want to join your minecraft server using your domain, check [this page](/domain) +## Reverse proxies can only be used for *web connections* (e.g. HTTPS). If you want to join your Minecraft server using your domain, check our [domain guide](/domain) ::: :::note For this guide, you must have access to a domain and the ability to alter that domain's DNS settings. In this guide, we assume you have a domain with Cloudflare, but most registrars will work. @@ -24,11 +24,11 @@ For this guide, you must have access to a domain and the ability to alter that d --- -#### This section is for domains, where you should use CNAME records: +### This section is for domains, where you should use CNAME records: First, you will want to head over to your domain's DNS settings panel. In this demo, we will be using Cloudflare, and as an example domain, we will use **example.com**. -![console](/using_the_panel/ports_and_proxies/1.png) +![Cloudflare CNAME record configured for a root domain](/using_the_panel/ports_and_proxies/1.png) The DNS record usually used for a reverse proxy is a CNAME (canonical name). Different DNS providers may use different methods to reference the root of a domain. In most cases, you should put an `@` inside the Name box. @@ -36,11 +36,11 @@ You will want to create an identical CNAME record as the one pictured above, but --- -#### This section is for subdomains, where you should use CNAME records: +### This section is for subdomains, where you should use CNAME records: Go to your domain's DNS settings. We will use Cloudflare for this demo and **subdomain.example.com** as an example domain. -![console](/using_the_panel/ports_and_proxies/2.png) +![Cloudflare CNAME record configured for a subdomain](/using_the_panel/ports_and_proxies/2.png) In this case, create a new CNAME record, identical to the one above. You will replace the word "**subdomain**" with the actual subdomain you want to use. In '**Target**' you will write the revproxy address corresponding to your location. For US servers it is: `revproxy-us.bloom.host` and for EU servers it is `revproxy-eu.bloom.host` @@ -48,7 +48,7 @@ In this case, create a new CNAME record, identical to the one above. You will re :::note CNAME records can take some time to propagate, though this depends on your ISP and other factors. -For more information, check out [this page](https://dnschecker.org/#CNAME). +For more information, use the [DNSChecker CNAME lookup](https://dnschecker.org/#CNAME). ::: :::warning If you do use Cloudflare for DNS, make sure to set the 'Proxy status' as **DNS only** as it won't work if it's proxied. @@ -58,7 +58,7 @@ If you do use Cloudflare for DNS, make sure to set the 'Proxy status' as **DNS o Once you've created your CNAME record, go to your [game panel](https://mc.bloom.host/) and on the left sidebar, select 'Ports & Proxies'. -![console](/using_the_panel/ports_and_proxies/3.png) +![DuckPanel Ports and Proxies tab with proxy controls](/using_the_panel/ports_and_proxies/3.png) More than likely, you will have one allocation, but to create a reverse proxy, you will need to create a new allocation, to do so, just click '**Create Allocation**'. A popup will appear asking you to write the port you want to use for your new allocation, you can use any port. diff --git a/docs/using_the_panel/schedules.mdx b/docs/using_the_panel/schedules.mdx index 2d36c2478..c15ce6037 100644 --- a/docs/using_the_panel/schedules.mdx +++ b/docs/using_the_panel/schedules.mdx @@ -17,17 +17,17 @@ keywords: ### What Are Schedules? -Schedules are ways to automate certain tasks through the Duck Panel such as starting/stopping/restarting the server, executing commands or even creating a backup. +Schedules are ways to automate certain tasks through DuckPanel such as starting/stopping/restarting the server, executing commands or even creating a backup. --- :::note -The schedule system and our nodes use the UTC time zone. Please keep this in mind while creating schedules. You can use this [website](https://www.timeanddate.com/worldclock/converter.html) to convert time zones. +The schedule system and our nodes use the UTC time zone. Please keep this in mind while creating schedules. You can use the [time zone converter](https://www.timeanddate.com/worldclock/converter.html) to convert time zones. ::: <div style={{ position: 'relative', paddingTop: '56.25%', textAlign: 'center' }}> <iframe src="https://www.youtube.com/embed/hfjQ1FfGZVk?si=D7BVdfnsqETjQwJa" - title="YouTube video player" + title="Bloom.host schedules walkthrough" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" @@ -44,23 +44,23 @@ The schedule system and our nodes use the UTC time zone. Please keep this in min ### Creating A Schedule -First, go to your [Duck Panel](https://mc.bloom.host/) and select **Schedules** on the navigation bar. +First, go to [DuckPanel](https://mc.bloom.host/) and select **Schedules** on the navigation bar. The main page will list all of our current schedules. To add a schedule, click the **Create New** button. Enter a name for your schedule and select when and how often you would like it to run. For advanced users familiar with cron syntax, click the **Advanced** tab. -![img](/using_the_panel/schedules/1.png) +![DuckPanel schedule creation form with timing controls](/using_the_panel/schedules/1.png) Once created, click the schedule on the main list to view the tasks. Then, click **New Task** to add your first schedule action. -![img](/using_the_panel/schedules/2.png) +![Schedule task list with the New Task button](/using_the_panel/schedules/2.png) The final section is what will be sent as a command or as a power action. Commands should be used without the `/`. You can also choose a power action or create a backup. Here you can also specify a delay. This is useful if you would like to send a timed warning to your players before a restart for example. -![img](/using_the_panel/schedules/3.png) +![Scheduled task form with action and delay settings](/using_the_panel/schedules/3.png) --- #### ➤ Daily Backups -See our [guide](/backups) on backups! +See our [backups guide](/backups)! diff --git a/docs/using_the_panel/server-importer.mdx b/docs/using_the_panel/server-importer.mdx index 3d7abc63e..8c8bbc391 100644 --- a/docs/using_the_panel/server-importer.mdx +++ b/docs/using_the_panel/server-importer.mdx @@ -16,16 +16,16 @@ keywords: ### How it works -Duck Panel has a convenient server importer feature. The server importer allows you to easily import your server into Bloom, saving time and avoiding having to download/upload files yourself. +DuckPanel has a convenient Server Importer feature. The Server Importer allows you to easily import your server into Bloom.host, saving time and avoiding having to download/upload files yourself. :::note -You can also import the databases hosted on your old host! Follow this [guide](/databases#importing-mysql-databases-through-the-panel) to see how to import databases. +You can also import the databases hosted on your old host! Follow the [database import guide](/databases#importing-mysql-databases-through-the-panel) to see how to import databases. ::: <div style={{ position: 'relative', paddingTop: '56.25%', textAlign: 'center' }}> <iframe src="https://www.youtube.com/embed/pkaASL6Xros?si=XUdlLLzRMGGoU2bF" - title="YouTube video player" + title="Bloom.host Server Importer walkthrough" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" @@ -54,7 +54,7 @@ We recommend you compress all the server files that you want to import before st ::: ### How to start the server import -- First go to our [Duck Panel](https://mc.bloom.host) +- First go to [DuckPanel](https://mc.bloom.host) - Select the server to which you want to import the files. - Click on "*Server Importer*" on the navigation bar. - Fill in the form with the appropriate credentials. @@ -62,7 +62,7 @@ We recommend you compress all the server files that you want to import before st Once the import begins, you can navigate to the Console page to view the current progress. -![console](/using_the_panel/server-importer/1.png) +![DuckPanel console showing Server Importer progress](/using_the_panel/server-importer/1.png) #### Failsafe if your previous host is having issues with S/FTP @@ -75,5 +75,5 @@ This method only works if your former provider offers backups with the option to - Go to the backup section in your panel. - Download the backup directly with your browser. - Once the download has started, go to the "Downloads" manager of your browser of choice, and copy the link attached to the file-download. -- In your Duck Panel, go to File Manager, then click the top right button "Download From URL". +- In DuckPanel, go to File Manager, then click the top right button "Download From URL". - If the link is direct, then it will begin the download. Once it's completed your backup archive will be available in the Home directory of your server. diff --git a/docs/using_the_panel/sftp.md b/docs/using_the_panel/sftp.md index 2bb97894f..d6d219478 100644 --- a/docs/using_the_panel/sftp.md +++ b/docs/using_the_panel/sftp.md @@ -2,7 +2,7 @@ id: sftp title: Using SFTP slug: /sftp -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: Using SFTP For Files description: This guide will help you use SFTP (WinSCP/Cyberduck/MobaXTerm/FileZilla/Visual Studio COde) to transfer files. keywords: @@ -27,15 +27,15 @@ keywords: **S**SH **F**ile **T**ransfer **P**rotocol is one of the most popular methods of securely transferring files to remote servers. :::important -We recommend you zip the files you want to upload to your server, uploading individual files through SFTP can take a long time. Once you have uploaded the .zip file to your server, you can go to the file manager in our Duck Panel, click on the three dots `...` to the right of the .zip and click on `Extract`. +We recommend you zip the files you want to upload to your server, uploading individual files through SFTP can take a long time. Once you have uploaded the .zip file to your server, you can go to the File Manager in DuckPanel, click on the three dots `...` to the right of the .zip and click on `Extract`. ::: ### More Actions like compress, extract, rename, and others -If you wish to archive, unarchive or mass delete files, please check out or [guide](../file-manager-controls) on file management through the panel. +If you wish to archive, unarchive or mass delete files, please check out our [File Manager guide](../file-manager-controls). ### Using SFTP -![console](/using_the_panel/sftp/2.png) +![SFTP client connected to the server file system](/using_the_panel/sftp/2.png) There are several so called *SFTP Clients* few of the more popular ones being [WinSCP](https://winscp.net/), [MobaXTerm](https://mobaxterm.mobatek.net/) or [FileZilla](https://filezilla-project.org/). @@ -48,9 +48,9 @@ Here you will be able to see your server's SFTP host IP address and port as well ### Using WinSCP (Recommended, available only on Windows) Firstly, you'll have to download [WinSCP](https://winscp.net/eng/download.php) to your computer. - This should be simple with their installation wizard. -With our new panel, you can simply head over to the [Duck Panel](https://mc.bloom.host/) and click 'Launch SFTP' under 'Settings' on the left side of the screen. You'll simply need to enter your panel password and you are good to go! +With our new panel, you can simply head over to [DuckPanel](https://mc.bloom.host/) and click 'Launch SFTP' under 'Settings' on the left side of the screen. You'll simply need to enter your panel password and you are good to go! -![console](/using_the_panel/sftp/3.png) +![DuckPanel Settings menu with the Launch SFTP option](/using_the_panel/sftp/3.png) WinSCP is very similar to your basic Windows Explorer. However, on the left side of the screen (green area) you can see your local files and on the right side (blue area), you can see the remote server's files. You can drag, drop, rename and delete files as you wish. @@ -83,9 +83,9 @@ Firstly, you'll have to download [MobaXTerm](https://mobaxterm.mobatek.net/downl Once installed, launch the application. Right-click on the left side of the screen and click 'New Session'. Select 'SFTP' in the middle. -![console](/using_the_panel/sftp/4.png) +![WinSCP New Session form configured for SFTP](/using_the_panel/sftp/4.png) -Enter your host's IP, port, and SFTP username (which can be found in the Duck Panel server settings tab). Then click 'Ok'. +Enter your host's IP, port, and SFTP username (which can be found in the DuckPanel server settings tab). Then click 'OK'. You will be asked for your panel password, which will be stored by default. On the left side (green area) you can see your local files, and on the right side (blue area) you can see the remote server's files. You can drag, drop, rename, and delete files as needed. diff --git a/docs/using_the_panel/split-server.md b/docs/using_the_panel/split-server.md index 9d37d5fa4..b8142ed4a 100644 --- a/docs/using_the_panel/split-server.md +++ b/docs/using_the_panel/split-server.md @@ -23,11 +23,11 @@ Splitting your server will take resources (Storage and RAM) from your main serve Firstly from the [game panel](https://mc.bloom.host/), navigate your server and select the 'Server split' option. -![console](/using_the_panel/split_server/1.png) +![DuckPanel navigation with the Server Split option](/using_the_panel/split_server/1.png) Secondly, in the box on the right (highlighted with a red border), there are several options there for selecting the type of server and the amount of resources that you want to give to the split server. For example, if you wanted to make a separate (not modded) server for a new gamemode, select `Minecraft - Paper` as the server type and enter the amount of RAM and disk storage space you want to allocate for your server. If needed you can also edit the primary port the new server will start with by modifying the `Port` -![console](/using_the_panel/split_server/2.png) +![Server Split form with server type and resource options](/using_the_panel/split_server/2.png) Click on `Split server` and you will see a window confirming whether you want to continue with the server split. @@ -41,7 +41,7 @@ You can interact and manage this new server in the same way as you would with yo When you log in to the game panel, you can see your new server in the list of servers you can manage. -![console](/using_the_panel/split_server/3.png) +![DuckPanel server list showing the new split server](/using_the_panel/split_server/3.png) :::important The server list sorts servers by alphabetical order, you can rename your servers using numbers to arrange them. Here is an example: `1. Proxy` `2. Lobby`. You can rename servers in the settings tab. @@ -51,4 +51,4 @@ The server list sorts servers by alphabetical order, you can rename your servers You can change your main server, edit ports, change server type and edit RAM/Storage in the Server Split section. Keep in mind that you can also open new allocations (ports) using the Ports & Proxies section. -![console](/using_the_panel/split_server/4.png) +![Server Split settings for resources, ports, and server type](/using_the_panel/split_server/4.png) diff --git a/docs/using_the_panel/users.mdx b/docs/using_the_panel/users.mdx index 7bccba2ab..fa09c58c5 100644 --- a/docs/using_the_panel/users.mdx +++ b/docs/using_the_panel/users.mdx @@ -20,7 +20,7 @@ People such as server's staff members can be given partial, so called "sub-user" <div style={{ position: 'relative', paddingTop: '56.25%', textAlign: 'center' }}> <iframe src="https://www.youtube.com/embed/EFGrA5Uext4?si=sReVDWr7p-aNz0MW" - title="YouTube video player" + title="Bloom.host server users walkthrough" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" @@ -40,27 +40,27 @@ People such as server's staff members can be given partial, so called "sub-user" ### Adding subusers **If the subuser doesn't yet have an account, it'll be automatically created when they are first invited to a server.** -1. First, head over to the [Duck Panel](https://mc.bloom.host/) and go to the Users tab found on the left sidebar. Here you can manage all your subusers. Now, click `Create New` button to begin setting up a subuser. +1. First, head over to [DuckPanel](https://mc.bloom.host/) and go to the Users tab found on the left sidebar. Here you can manage all your subusers. Now, click `Create New` button to begin setting up a subuser. -![img](/using_the_panel/users/1.png) +![DuckPanel Users tab with the Create New button](/using_the_panel/users/1.png) 2. Simply enter the person's email account. Then, select which permissions you want to grant the user. You can select all permissions or clear the permissions. :::tip You can change your Pterodactyl icon (along with the icon for any service that uses Gravatar) by changing your icon at [Gravatar's official website](https://en.gravatar.com/). ::: -![img](/using_the_panel/users/2.png) +![Create New User form with the email address field](/using_the_panel/users/2.png) -![img](/using_the_panel/users/3.png) +![Server permission checkboxes for a new subuser](/using_the_panel/users/3.png) 3. Once you have clicked add user, an email will be sent to that email stating they have been invited to the server. Have the sub-user open the email and click on the provided link. 4. After clicking the button in the email, they will be redirected to the password reset page, where they can set a brand new password. -5. After setting up the account, they can go to the [Duck Panel](https://mc.bloom.host/) and log in with their freshly generated credentials! +5. After setting up the account, they can go to [DuckPanel](https://mc.bloom.host/) and log in with their freshly generated credentials! ### Leaving a server if you are a subuser -A subuser can remove themselves from a server by opening our [Duck Panel](https://mc.bloom.host), selecting the server they wish to leave, and then choosing the "Leave Server" option found in the left sidebar beneath "Settings". +A subuser can remove themselves from a server by opening [DuckPanel](https://mc.bloom.host), selecting the server they wish to leave, and then choosing the "Leave Server" option found in the left sidebar beneath "Settings". -![img](/using_the_panel/users/leaving.png) +![DuckPanel Settings menu with the Leave Server option](/using_the_panel/users/leaving.png) From 2997962d6b8cd0da282198c46f45d01e2fa2f631 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Thu, 30 Jul 2026 13:26:05 -0300 Subject: [PATCH 05/50] Update available-modpacks.md --- docs/extras/available-modpacks.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/extras/available-modpacks.md b/docs/extras/available-modpacks.md index 7dc3c4f69..6c0734cb3 100644 --- a/docs/extras/available-modpacks.md +++ b/docs/extras/available-modpacks.md @@ -32,10 +32,6 @@ Grab the link to the Modpack CurseForge page and make a suggestion on our [Disco To create a suggestion go to the [#bot-commands](https://discord.gg/pTUkQ2Dmbw) channel of our [Discord server](https://discord.gg/bloom) and type !suggest (suggestion goes here), make sure that you include the link to the modpack. -:::note -The list of modpacks in this document is updated manually, if you want to see the actual list of modpacks please go to https://demo.bloom.host and sign in with user demo and password demo, select the server, then go to the modpack section to see the most up to date list of modpacks. -::: - ## Modpacks currently available listed on our website (list is updated automatically and is in alphabetical order) [Here](https://bloom.host/modpacks/). From 3d80919f1871844712114470aa9f54d2b233280c Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Thu, 30 Jul 2026 15:31:42 -0300 Subject: [PATCH 06/50] Standardize guide sections and replace placeholder images --- docs/VPS/credentials-vps.md | 2 + docs/VPS/virtfusion-rescue.md | 2 + docs/VPS/virtfusion-subuser.md | 2 + docs/VPS/virtfusion-windows-install.md | 2 + docs/VPS/vnc.md | 2 + docs/billing/email_change.md | 2 + docs/billing/upgrades.md | 2 + docs/games/hytale/connection.md | 8 ++++ docs/games/hytale/mods.md | 4 ++ docs/games/hytale/performance.md | 8 ++++ docs/games/palworld/update.md | 4 ++ docs/other-servers/namelessmc.md | 8 ++++ .../multiplatform/advancedban.md | 4 ++ .../multiplatform/bluemap.md | 2 + .../multiplatform/chunky-multi.md | 8 ++++ .../multiplatform/dynmap.md | 4 +- .../multiplatform/floodgate.md | 4 ++ .../multiplatform/geysermc.md | 4 ++ .../multiplatform/litebans.md | 10 ++++ .../multiplatform/luckperms.md | 6 +++ .../multiplatform/simple-voice-chat.md | 2 + .../multiplatform/squaremap.md | 2 + .../multiplatform/worldedit.md | 6 +++ .../plugins/topper.md | 2 - docs/running_a_server/binarysearch.md | 6 +++ docs/running_a_server/converting-worlds.md | 4 ++ docs/running_a_server/memoryleakanalysis.md | 4 ++ docs/running_a_server/motd.md | 45 ++++++++++++------ docs/running_a_server/spark.md | 8 ++++ docs/running_a_server/timings.md | 6 +++ docs/running_a_server/velocity.md | 12 +++++ docs/using_the_panel/split-server.md | 2 + static/dynmap-preview.svg | 22 --------- .../motd/bungeecord-preview.svg | 15 ------ .../motd/server-properties-preview.svg | 13 ----- .../motd/server-properties.png | Bin 0 -> 20396 bytes .../motd/serverlistplus-preview.svg | 16 ------- static/topper-gettop-preview.svg | 16 ------- 38 files changed, 169 insertions(+), 100 deletions(-) delete mode 100644 static/dynmap-preview.svg delete mode 100644 static/running_a_server/motd/bungeecord-preview.svg delete mode 100644 static/running_a_server/motd/server-properties-preview.svg create mode 100644 static/running_a_server/motd/server-properties.png delete mode 100644 static/running_a_server/motd/serverlistplus-preview.svg delete mode 100644 static/topper-gettop-preview.svg diff --git a/docs/VPS/credentials-vps.md b/docs/VPS/credentials-vps.md index badaedb6e..0fe2af5d3 100644 --- a/docs/VPS/credentials-vps.md +++ b/docs/VPS/credentials-vps.md @@ -24,6 +24,8 @@ You need to Poweroff and START your VPS for the password change to take effect. ![VirtFusion VPS dashboard showing credential controls](/VPS/credentials/1.png) +--- + ## How to change your VPS VNC password? Head over to our [VPS Panel](https://VPS.bloom.host), sign in, and select the VPS. diff --git a/docs/VPS/virtfusion-rescue.md b/docs/VPS/virtfusion-rescue.md index d93ed7659..f02926ef8 100644 --- a/docs/VPS/virtfusion-rescue.md +++ b/docs/VPS/virtfusion-rescue.md @@ -18,6 +18,8 @@ keywords: In this guide we'll learn how to access our VPS via our Bloom.host VirtFusion panel in "Rescue Mode". +--- + ## Prerequisites Before following this guide, make sure you've enabled VNC and opened the Console. To do so, follow our [VirtFusion VNC Guide](/VPS/virtfusion-vnc). diff --git a/docs/VPS/virtfusion-subuser.md b/docs/VPS/virtfusion-subuser.md index 583f04d9b..e6991dc32 100644 --- a/docs/VPS/virtfusion-subuser.md +++ b/docs/VPS/virtfusion-subuser.md @@ -29,6 +29,8 @@ From there you'll want to click your User icon in the top right corner and selec ![VirtFusion Sharing tab showing the Generate Token control](/VPS/virtfusion-subuser/1.png) +--- + ## Owner Side With your friend's token in the clipboard, you can now access your VPS's dashboard and select the "Sharing" tab. diff --git a/docs/VPS/virtfusion-windows-install.md b/docs/VPS/virtfusion-windows-install.md index 2e35fb20c..ce998d130 100644 --- a/docs/VPS/virtfusion-windows-install.md +++ b/docs/VPS/virtfusion-windows-install.md @@ -32,6 +32,8 @@ Insert the VirtIO-Driver image and then return to VNC. Click Load Driver and the If your VPS does not boot to Windows automatically, you may need to move Windows Boot Manager to the top of the boot order in the BIOS. +--- + ## Installing Your Network Driver Similarly to the steps above, insert the VirtIO Drivers image under Media. This time, however, insert it while the VPS is already booted into Windows. A new CD/DVD entry will appear in File Explorer. From this media device, run virtio-win-gt-x64. After doing this, you can unmount the image from Media. diff --git a/docs/VPS/vnc.md b/docs/VPS/vnc.md index e07768b02..a5022b6b4 100644 --- a/docs/VPS/vnc.md +++ b/docs/VPS/vnc.md @@ -24,6 +24,8 @@ If you forgot your VNC Password you can go to our [VPS Panel](https://VPS.bloom. Keep in mind that you may need to shutdown and power back on your VPS for the VNC password change to take effect. To do this, click on the red power button at the top right of the panel, wait for the VPS to turn on and then click on the green start button to turn it back on. +--- + ## How to connect to VNC via the panel using your SSH credentials Our panel provides an HTML 5 VNC Client that you can use to connect to your VPS. diff --git a/docs/billing/email_change.md b/docs/billing/email_change.md index 43ee2e89f..61e9070f5 100644 --- a/docs/billing/email_change.md +++ b/docs/billing/email_change.md @@ -29,6 +29,8 @@ Finally you can modify your billing information by going to the [Account Details ![Billing account details form with the Email Address field](/billing/email_change/1.png) +--- + ## How to change your Minecraft Panel Email Address To change the email account used for our Minecraft Panel (DuckPanel) go to the [Account](https://mc.bloom.host/account) section of the panel, sign in to your Minecraft Panel account and change the email address on the **Email Address** field then click on update email address. diff --git a/docs/billing/upgrades.md b/docs/billing/upgrades.md index ebd3015d0..e9c063c4a 100644 --- a/docs/billing/upgrades.md +++ b/docs/billing/upgrades.md @@ -28,6 +28,8 @@ To request a plan upgrade, downgrade or a change of location, go to the [Product On the upgrade page you will be able to select to what location and plan you want to upgrade/downgrade to, here you can also switch between datacenter locations. Once you select the plan it will generate an invoice (if needed) which needs to be paid before the upgrade and transfer process begins. +--- + ## Transfers If you see a **'Requires server transfer'** message below the plan you want to upgrade or downgrade to it means that the server needs to be transferred to another node before the upgrade or downgrade can be completed. This is because the server is currently on a node that doesn't have enough resources to support the plan you want to upgrade or downgrade to. diff --git a/docs/games/hytale/connection.md b/docs/games/hytale/connection.md index 175f748e1..3f4c33f85 100644 --- a/docs/games/hytale/connection.md +++ b/docs/games/hytale/connection.md @@ -16,6 +16,8 @@ Before continuing with the troubleshoot guide, please restart your server to ens Players may experience slow connections or issues loading into a Hytale server, even when their general internet connection appears stable. Common symptoms include the world not loading, delayed movement, or disconnects during login. These issues are often related to local network configuration or routing problems. +--- + ## Common Connection Problems If a player can connect to the server but the world does not load properly, the issue may be related to the network interface or driver configuration. Hytale uses modern networking protocols (QUIC), and some network adapters or drivers may have compatibility issues. @@ -27,10 +29,14 @@ If possible, have affected players: If the issue improves, the original network interface or configuration is likely the cause. +--- + ## Official Hytale Support Guide For steps to fix slow connections or worlds not loading, refer to the [official Hytale support article](https://support.hytale.com/hc/en-us/articles/45419578597403-Slow-Connection-World-Not-Loading-on-Server): +--- + ## Additional Troubleshooting Steps >Use [Cloudflare WARP](https://one.one.one.one/) to see if it improves your connection. @@ -41,6 +47,8 @@ For steps to fix slow connections or worlds not loading, refer to the [official > >Use a wired connection where possible. +--- + ## Diagnosing Network Issues with MTR When players experience high latency, timeouts, or unstable connections, running an MTR (My Traceroute) test can help identify where the issue is occurring along the network path. diff --git a/docs/games/hytale/mods.md b/docs/games/hytale/mods.md index 93f55e887..0d0ba1290 100644 --- a/docs/games/hytale/mods.md +++ b/docs/games/hytale/mods.md @@ -16,6 +16,8 @@ Hytale supports modding out of the box. Its modding system is similar to Minecra Unlike Minecraft, Hytale mods are fully server-side. Players do not need to install any mods on their client in order to join your server. Hytale handles mod installation when a client joins automatically. +--- + ## How to add mods 1. Download the mods you want from [CurseForge](https://www.curseforge.com/hytale/search?page=1&pageSize=20&sortBy=relevancy) @@ -23,6 +25,8 @@ Hytale handles mod installation when a client joins automatically. 3. Drag and drop the mod or plugin jar into the mods folder. 4. Restart your server to apply the changes. +--- + ## How to use mods The best way to learn how to use a mod is to review its mod page. Most mods list their available commands and configuration options there (for example, [Spark](https://spark.lucko.me/docs/Command-Usage)). diff --git a/docs/games/hytale/performance.md b/docs/games/hytale/performance.md index 367e3928b..7663c8ede 100644 --- a/docs/games/hytale/performance.md +++ b/docs/games/hytale/performance.md @@ -18,6 +18,8 @@ These optimizations are general recommendations and results may vary depending o For reading into where lag is coming from, [spark has ported their mod to hytale](https://www.curseforge.com/hytale/mods/spark)! +--- + ## Lowering Render Distance Render distance has a direct impact on server performance. Higher render distances require the server to process and send more world data to players, which can increase CPU and memory usage. @@ -26,12 +28,16 @@ Lowering the render distance is recommended if your server has frequent lag spik To lower the render distance, navigate to your server’s [File Manager](/file-manager-controls), open config.json, and locate the default render distance value on line 7, the specific value name is "MaxViewRadius". Change this value from 32 to a number below 16, then save the file and restart your server. +--- + ## Installing Performance mods At the moment, there are limited performance-focused plugins available for Hytale, as the game was recently released. However, some plugins can still help improve stability and support larger player counts. One example plugin you can try is the [Hytale-Plugin-Performance-Saver](https://github.com/nitrado/hytale-plugin-performance-saver/releases) +--- + ## Pregenerating the World When players explore new areas, the server must generate new chunks. This can cause noticeable lag, especially when the render distance is left at the default value (32). One of the most effective ways to reduce this type of lag is to pregenerate the world. @@ -48,6 +54,8 @@ Then restart your Hytale server so pregen can begin. You can cancel the pregen anytime via the command: `world settings pregenerate cancel` +--- + ## Checking Performance Improvements After applying optimizations, it’s important to monitor your server to ensure performance has improved. diff --git a/docs/games/palworld/update.md b/docs/games/palworld/update.md index 59d2007cf..5e805892c 100644 --- a/docs/games/palworld/update.md +++ b/docs/games/palworld/update.md @@ -6,10 +6,14 @@ description: Learn how to update your server to the latest version of Palworld --- ## Palworld Updating server +--- + ## Method 1 Restarting the server. Server should auto update on restarts, if it doesn't follow Method 2 +--- + ## Method 2 First, stop your server. Then, go to the [Backups](/backups) tab. Make a backup just in case something goes wrong, after that go to Settings tab, click Reinstall. diff --git a/docs/other-servers/namelessmc.md b/docs/other-servers/namelessmc.md index d624ed9ad..f18874b11 100644 --- a/docs/other-servers/namelessmc.md +++ b/docs/other-servers/namelessmc.md @@ -44,6 +44,8 @@ To use your website, you will need a domain, preferably using [Bloom's Reverse P NamelessMC is installed, and you are ready to set it up! Navigate to your domain to begin setting up your website. +--- + ## Setup After navigating to your website, you should see this page. Select "New Installation", then "Proceed". @@ -85,8 +87,12 @@ If this is your first time setting up a forum, and you don't have any data to im Congratulations! Your forum is now set up and ready to go! You will be prompted to sign in to your Admin Control Panel after completion. This is the password you set up for your admin account. +--- + ## Additional Information +--- + ## Friendly URLs To use Friendly URLs, navigate to your CaddyServer configuration (`home/caddy/Caddyfile`), and uncomment `# import namelessmc` ```text @@ -94,6 +100,8 @@ To use Friendly URLs, navigate to your CaddyServer configuration (`home/caddy/Ca import namelessmc ``` +--- + ## Links [GitHub](https://github.com/NamelessMC/Nameless) diff --git a/docs/plugins_and_modifications/multiplatform/advancedban.md b/docs/plugins_and_modifications/multiplatform/advancedban.md index ceeef6dde..a3affcc5e 100644 --- a/docs/plugins_and_modifications/multiplatform/advancedban.md +++ b/docs/plugins_and_modifications/multiplatform/advancedban.md @@ -29,6 +29,8 @@ You will then need to decide if you are going to be using internal storage (HSQL If you decide to use MySQL for AdvancedBan, you can [learn how to set up a MySQL database](/databases). +--- + ## Usage AdvancedBan has many commands to be able to moderate and punish rule-breakers, the most important commands are here: @@ -47,6 +49,8 @@ You can add -s to most of the punishment commands to make their outputs silent - There are more commands and features such as pre-prepared punishment layouts and the ability to set notes on players - see the [wiki](https://github.com/DevLeoko/AdvancedBan/wiki) for more information. +--- + ## Info [Spigot Resource Page](https://www.spigotmc.org/resources/advancedban.8695/) diff --git a/docs/plugins_and_modifications/multiplatform/bluemap.md b/docs/plugins_and_modifications/multiplatform/bluemap.md index b37b63f41..e40d8c68b 100644 --- a/docs/plugins_and_modifications/multiplatform/bluemap.md +++ b/docs/plugins_and_modifications/multiplatform/bluemap.md @@ -36,6 +36,8 @@ Or just look at it from far away to get an overview. It's an alternative to Dynmap or Squaremap, but unlike those, it is _fully_ 3D. You can orbit around everywhere, and fly through the world like spectator mode. +--- + ## Usage Download BlueMap for your platform and install it like any other plugin/mod. Config files for it will be generated in the `plugins/BlueMap` (plugin) directory or the `config/BlueMap` (modded) directory, depending on your platform. diff --git a/docs/plugins_and_modifications/multiplatform/chunky-multi.md b/docs/plugins_and_modifications/multiplatform/chunky-multi.md index 119793dbb..ab1f9afa6 100644 --- a/docs/plugins_and_modifications/multiplatform/chunky-multi.md +++ b/docs/plugins_and_modifications/multiplatform/chunky-multi.md @@ -21,6 +21,8 @@ Chunky is a fast, easy, and safe tool for pre-generating chunks on your server. Chunk generation in Minecraft is slow, which can sometimes cause server lag or slow chunk loading for players. Generating them upfront will help improve performance and gameplay on almost any server. +--- + ## How to install :::important @@ -33,6 +35,8 @@ For Bukkit/Spigot/Paper servers, check out the [Installing Bukkit/Spigot/Paper p For Forge/Fabric servers, check out the [Installing Fabric Mods](/mods-install) page. +--- + ## Usage :::caution @@ -52,6 +56,8 @@ If you wish to pause or cancel pre-generation, you can run `chunky pause` or `ch If it is paused, you can run `chunky continue` to resume pre-generation. +--- + ## File Size The table below can be used to estimate the file size of your world after you generate it. The values below are for 2k by 2k blocks (1k radius). Note that every time you double the radius, the area (and correspondingly the disk space / time taken) increases by 4x. @@ -63,6 +69,8 @@ The table below can be used to estimate the file size of your world after you ge | world_nether | 115 MB | | world_the_end | 75 MB | +--- + ## Info & Sources [Spigot Page](https://www.spigotmc.org/resources/chunky.81534/) diff --git a/docs/plugins_and_modifications/multiplatform/dynmap.md b/docs/plugins_and_modifications/multiplatform/dynmap.md index 19d3a71a6..f9002b951 100644 --- a/docs/plugins_and_modifications/multiplatform/dynmap.md +++ b/docs/plugins_and_modifications/multiplatform/dynmap.md @@ -24,7 +24,7 @@ keywords: ## What does the plugin do? Dynmap allows you to see your Minecraft world in 3D in real time, like Google Maps. -![Dynmap browser map showing terrain, roads, and player markers](/dynmap-preview.svg) +--- ## Usage Spigot/Paper: Download the Dynmap plugin and place into the `plugins` folder then restart your server to generate `configuration.txt`. Create a MySQL database. If you are unsure, [check out this guide](/databases). @@ -47,6 +47,8 @@ Now go into the minecraft panel, click the "Ports & Proxies" tab, and create a n You can also add your Dynmap IP to Bloom's reverse proxy (on the sidebar of the panel), changing the website link from `123.456.67.2:8123` to `subdomain.yourdomain.com`. Please read our [Ports and Proxies guide](/ports-and-proxies/). +--- + ## Info [Dynmap Spigot](https://www.spigotmc.org/resources/dynmap.274/) diff --git a/docs/plugins_and_modifications/multiplatform/floodgate.md b/docs/plugins_and_modifications/multiplatform/floodgate.md index 48593fe54..dfe589319 100644 --- a/docs/plugins_and_modifications/multiplatform/floodgate.md +++ b/docs/plugins_and_modifications/multiplatform/floodgate.md @@ -43,12 +43,16 @@ If you are running a proxy (Velocity or BungeeCord), Floodgate must be installed Floodgate automatically generates a `key.pem` file. If you are using a proxy, this key must be identical across all servers in your network for authentication to work correctly. ::: +--- + ## Configuration & Compatibility ### Username Prefixes By default, Floodgate adds a `.` prefix to Bedrock players (e.g., `.PlayerName`) to prevent name collisions with Java players. You can change this in the Floodgate `config.yml`. +--- + ## Additional Resources * [Official Website](https://geysermc.org/) diff --git a/docs/plugins_and_modifications/multiplatform/geysermc.md b/docs/plugins_and_modifications/multiplatform/geysermc.md index f97c730dc..ff527c185 100644 --- a/docs/plugins_and_modifications/multiplatform/geysermc.md +++ b/docs/plugins_and_modifications/multiplatform/geysermc.md @@ -43,6 +43,8 @@ Players on consoles must follow the [Geyser console connection instructions](htt If you are also using Floodgate, set `auth-type` to `floodgate` in your Geyser `config.yml`. ::: +--- + ## Geyser Addons & Extensions There are two ways to extend Geyser. The first is through standard server plugins or mods that interact with the Geyser/Floodgate API. The second is via **Geyser Extensions**, which are platform-agnostic and run directly inside Geyser. @@ -59,6 +61,8 @@ To install an extension, place the `.jar` file into Geyser's `/extensions/` fold * [GeyserPreventServerSwitch ↗](https://github.com/Camotoy/GeyserPreventServerSwitch/releases) prevents Bedrock Edition players from joining specific subservers on your proxy. This is useful if you want to limit Bedrock players from joining certain subservers on your proxy, such as a PvP server. * [Hurricane ↗](https://github.com/GeyserMC/Hurricane) is a Paper/Spigot plugin, and Fabric mod (unofficial port), that fixes some bugs that otherwise cannot be fixed without server modification, particularly bamboo and dripstone collision. +--- + ## Additional Resources * [Official Website](https://geysermc.org/) diff --git a/docs/plugins_and_modifications/multiplatform/litebans.md b/docs/plugins_and_modifications/multiplatform/litebans.md index 67e1c9e08..913c429ce 100644 --- a/docs/plugins_and_modifications/multiplatform/litebans.md +++ b/docs/plugins_and_modifications/multiplatform/litebans.md @@ -22,6 +22,8 @@ keywords: LiteBans is a premium plugin that allows you and your server staff to manage and distribute punishments to your players. It is a plugin that can be used on Spigot/Paper or BungeeCord/Waterfall/Velocity servers. +--- + ## Usage First, download the [LiteBans](https://www.spigotmc.org/resources/litebans.3715/) plugin and install it into your `plugins` folder. @@ -39,11 +41,15 @@ If LiteBans is installed onto a BungeeCord/Waterfall proxy, bans, mutes and othe In-game punishments can still be issued as normal. ::: +--- + ## Punishment storage Next, you have to decide what type of storage you want for all your punishments. Your options are H2, MySQL, MariaDB, and PostgreSQL. On Bloom you are going to want to use H2 or MySQL. H2 will store the information on your server, while MySQL will store it on a separate database. MySQL allows you to sync data across a network if you are running one. Otherwise it's your choice. If you are using MySQL, see our [database guide](/databases) to set up LiteBans with MySQL. +--- + ## Commands LiteBans offers many commands to moderate your server, below will be a short list of the important ones. ```text @@ -78,6 +84,8 @@ You may notice some of the commands have a (-s) in the syntax, if you put -s in LiteBans web is a very powerful tool to sync your bans, mutes, warns and kicks right to a webpage for all to use. Most of the time people use this to show people that you will get punished for breaking the rules and enforce them more. +--- + ## How to install Firstly you can choose between themes. Here is a free one: [LiteBans Material UI](https://www.spigotmc.org/resources/litebans-material-ui.46648/), and there are many paid ones on MC-Market, Spigot, etc. @@ -92,6 +100,8 @@ Once done, navigate to your website and done! +--- + ## Links [Litebans Spigot](https://www.spigotmc.org/resources/litebans.3715/), Requires Account. diff --git a/docs/plugins_and_modifications/multiplatform/luckperms.md b/docs/plugins_and_modifications/multiplatform/luckperms.md index 083d273b6..2ca54b14b 100644 --- a/docs/plugins_and_modifications/multiplatform/luckperms.md +++ b/docs/plugins_and_modifications/multiplatform/luckperms.md @@ -27,6 +27,8 @@ LuckPerms is regularly updated by the developer Luck who is the developer for Sp Unlike PermissionsEx (Bukkit/Spigot) which has not been updated since January 2016, LuckPerms is regularly updated by the developer Luck who is the developer for Spark as well. +--- + ## Install ### Bukkit/Spigot/Paper and forks @@ -47,12 +49,16 @@ Refer to the [LuckPerms wiki](https://luckperms.net/wiki/Network-Installation) f Refer to the [LuckPerms wiki](https://luckperms.net/wiki/Installation) for information on how to install on other platforms. +--- + ## Usage To begin, simply run `/lp editor`. Once you have made your edits in the GUI, click save and run the command it gives you. If you need more help, consult the [LuckPerms wiki](https://luckperms.net/wiki/Home). There are many commands that can be used to manage the permissions on your server(s) – see the [LuckPerms wiki](https://luckperms.net/wiki/Home) for more info. +--- + ## Info [Website](https://luckperms.net/) diff --git a/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md b/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md index d2e21c212..42486d2eb 100644 --- a/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md +++ b/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md @@ -28,6 +28,8 @@ In order to run Simple Voice Chat on your server, you need one of the following - [Bukkit/Spigot/Paper](#bukkitspigotpaper) - [Quilt](#quilt) +--- + ## Installation ### Fabric diff --git a/docs/plugins_and_modifications/multiplatform/squaremap.md b/docs/plugins_and_modifications/multiplatform/squaremap.md index 2079271be..ae141ea4f 100644 --- a/docs/plugins_and_modifications/multiplatform/squaremap.md +++ b/docs/plugins_and_modifications/multiplatform/squaremap.md @@ -25,6 +25,8 @@ keywords: Squaremap allows you to see your Minecraft world in 2D in real time in a browser, like Google Maps. It's an alternative to Dynmap or Bluemap, however it uses way less storage and is significantly faster. The tradeoff being that there is no 3D or isometric view. +--- + ## Usage Download Squaremap for your platform and install it. A file named `config.yml` among other files will be generated in the `/squaremap` folder. This file contains options to customise the appearance of your map as well as the web server your map will be on. diff --git a/docs/plugins_and_modifications/multiplatform/worldedit.md b/docs/plugins_and_modifications/multiplatform/worldedit.md index 950b8c4db..bfd2f7219 100644 --- a/docs/plugins_and_modifications/multiplatform/worldedit.md +++ b/docs/plugins_and_modifications/multiplatform/worldedit.md @@ -31,6 +31,8 @@ Download the latest version for your Minecraft version (e.g. if your server is 1 For other platforms (such as Forge or Fabric,) refer to [EngineHub’s guide on installing WorldEdit](https://worldedit.enginehub.org/en/latest/install/). +--- + ## Commands There are many commands in WorldEdit. This doc will go over a few simple ones, but if you want to learn more, consult WorldEdit's [Wiki](https://worldedit.enginehub.org/en/latest/). @@ -51,6 +53,8 @@ In order to make a sphere, run `//sphere [block] [radii]`. This command will cre If you feel like making a cylinder, run `//cyl [block] [radii] [height]`. This will create a solid cylinder out of `[block]`, with `[radii]` as the distance to the edges and `[height]` as how tall it is going up from your feet. Like spheres, you can run `//hcyl` with the same syntax to create the same shape, but hollow. +--- + ## Useful additions ### WorldGuard: @@ -60,6 +64,8 @@ Allows for the creation of regions to protect areas. Download WorldGuard here: [Bukkit](https://dev.bukkit.org/projects/worldguard/files) See Bloom’s documentation: [plugins/worldguard](https://docs.bloom.host/plugins/worldguard) +--- + ## Info [Bukkit](https://dev.bukkit.org/projects/worldedit) diff --git a/docs/plugins_and_modifications/plugins/topper.md b/docs/plugins_and_modifications/plugins/topper.md index 57e506f1f..02631fab3 100644 --- a/docs/plugins_and_modifications/plugins/topper.md +++ b/docs/plugins_and_modifications/plugins/topper.md @@ -14,8 +14,6 @@ keywords: Topper allows you to create customizable leaderboards using PlaceholderAPI placeholders and even paper. It's perfect for displaying top players, stats, or any placeholder-based data directly in-game via holograms. -![Topper gettop command displaying a ten-player leaderboard](/topper-gettop-preview.svg) - ## Installation Download both [Topper](https://www.spigotmc.org/resources/topper.110417/) and [PlaceholderAPI](https://www.spigotmc.org/resources/placeholderapi.6245/), then upload them to your server's `plugins` folder. Restart the server afterward. diff --git a/docs/running_a_server/binarysearch.md b/docs/running_a_server/binarysearch.md index 6e6b00c44..93f0a28b6 100644 --- a/docs/running_a_server/binarysearch.md +++ b/docs/running_a_server/binarysearch.md @@ -25,14 +25,20 @@ While it is technically possible to use plugins such as ServerUtils to unload an First, you need to be 100% sure that this bug is not caused by the server JAR you are using. If you are using forks of Paper switch back to Paper first or check if you set something in the JAR configuration that you did not mean to. Also check if it is not an issue with your startup flags, database details, ports and proxies, etc. +--- + ## Step 2 Remove half of your plugins. To do this, select the plugins and move them outside of the /plugins folder. After this, reboot your server. +--- + ## Step 3 If the bug is not fixed after that, now you know that the bug is among the plugins that are left. If the bug was fixed, you know that the bug is among the plugins that you removed. If you still cannot determine which plugin is the culprit after narrowing it down, remove half of the group of plugins again. +--- + ## Step 4 Rinse and repeat. After you have finally found the culprit, you can fix the bug and then bring back all the plugins to your server. diff --git a/docs/running_a_server/converting-worlds.md b/docs/running_a_server/converting-worlds.md index a1d55afb4..7f4fdc53f 100644 --- a/docs/running_a_server/converting-worlds.md +++ b/docs/running_a_server/converting-worlds.md @@ -19,12 +19,16 @@ keywords: ## Converting Bukkit Worlds to vanilla If you upload or generate a world on a Bukkit/Spigot/Paper server, you will notice that when the server loads it splits the world into three folders: `world`, `world_nether` and `world_the_end`, or one for each dimension. This is fine until you want to download the world and run it in singleplayer or switch to a vanilla/Fabric/Forge server. This guide shows you how to convert Bukkit/Spigot/Paper worlds back to ones that can be used on vanilla or other server types. Note that the screenshots provided were taken on macOS, but the method should work for all platforms. +--- + ## Part 1: Download the world **Note:** This is not strictly necessary, you CAN use SFTP or the File Manager if you want, but downloading the files makes them much easier to work with. This is most easily done by archiving the files using the File Manager and downloading them using SFTP. For instructions on using the File Manager and SFTP, please see [File Manager Controls](/file-manager-controls/) and [How to use SFTP](/sftp/), respectively. +--- + ## Part 2: Converting the world Once you have downloaded and extracted your archive from the server, you should have three folders that look like this: diff --git a/docs/running_a_server/memoryleakanalysis.md b/docs/running_a_server/memoryleakanalysis.md index 58f870029..33910a523 100644 --- a/docs/running_a_server/memoryleakanalysis.md +++ b/docs/running_a_server/memoryleakanalysis.md @@ -36,6 +36,8 @@ When the time is right we can grab our heapdump with `/spark heapdump --compress We'll need to download our heapdump file from `plugins/spark/`. The precise name will be given in chat or console when you run the command, but the file will always end with hprof.gz, as we decided to use gzip for compression. +--- + ## It's MAT Time Before using MAT we'll want to ensure we have Java 17 or newer installed. We can grab this directly from [Oracle](https://download.oracle.com/java/17/archive/jdk-17.0.12_windows-x64_bin.exe). @@ -54,6 +56,8 @@ After some processing it'll provide us with a list of suspected leaks. They will ![Eclipse Memory Analyzer Leak Suspects Report results](/running_a_server/memoryleakanalysis/3.png) +--- + ## MAT Issues The most common issue one can come across with MAT is simply running out of heap space for the software. To try and fix this, we'll locate our `MemoryAnalyzer.ini` file within the MAT directory and right click it to edit. Within this file we'll modify `-Xmx1024m` to be equal to your total RAM in GBs - 4 GBs, then multiplied by 1024. So if we have 16GBs on our PC, we can set it to `-Xmx12228m`. diff --git a/docs/running_a_server/motd.md b/docs/running_a_server/motd.md index c9749483a..8df91c919 100644 --- a/docs/running_a_server/motd.md +++ b/docs/running_a_server/motd.md @@ -1,8 +1,8 @@ --- id: motd -title: motd +title: How to Change Your MOTD slug: /motd -hide_table_of_contents: true +hide_table_of_contents: false sidebar_label: How to change MOTD description: How to change the MOTD that people see on the server list. keywords: @@ -14,25 +14,40 @@ keywords: - Bloom.host --- +The message of the day (MOTD) is the text players see beside your server in the multiplayer server list. This guide covers the built-in `server.properties` setting, ServerListPlus, and MiniMOTD. Choose the option that matches your server software and the features you need. + +--- + ## How to change your MOTD without a plugin -First you need to write your MOTD; you can use the [Minecraft MOTD creator](https://mctools.org/motd-creator) to help you. Once you have your MOTD like you want it, copy the `server.properties` code, like the one shown below -![MOTD creator output ready to paste into server.properties](/running_a_server/motd/server-properties-preview.svg) -Open your server panel and head to File Explorer, if you need a hand, check out [this guide!](/file-manager-controls). Now, enter your `server.properties` and head to the motd section and paste the copied text where the old one was, then restart your server and your changes will be made. +1. Write your MOTD using the [Minecraft MOTD creator](https://mctools.org/motd-creator), then copy the generated `server.properties` value. +2. In your server panel, open File Manager and then open `server.properties`. See the [File Manager guide](/file-manager-controls) if you need help finding the file. + ![server.properties file showing the MOTD setting](/running_a_server/motd/server-properties.png) +3. Replace the existing `motd` value with the copied text and restart the server to apply the change. + +--- ## How to change your MOTD with ServerListPlus -ServerListPlus is a plugin that changes your MOTD through a plugin also adding features like custom MOTDs for separate players. You can download it [here!](https://www.spigotmc.org/resources/serverlistplus.241/) -Now download and place the plugin into your server's `plugins` folder and restart. Once you have restarted, head into the ServerListPlus folder and open the `config.yml`. Now you can change the MOTD how you like. The [Minecraft MOTD creator](https://mctools.org/motd-creator) can help you make one shown below. ![ServerListPlus MOTD configuration and resulting server-list preview](/running_a_server/motd/serverlistplus-preview.svg) +:::warning ServerListPlus maintenance +ServerListPlus is no longer in active development. For current configuration details and supported options, refer to the [ServerListPlus wiki](https://github.com/Minecrell/ServerListPlus/wiki). +::: -## How to change your MOTD with MiniMOTD -MiniMOTD is a plugin (Spigot/Paper/BungeeCord/Velocity) or mod (Fabric/Sponge only) that changes your MOTD using the MiniMessage system and supports RGB (1.16+). You can download it [here!](https://www.spigotmc.org/resources/minimotd-server-list-motd-plugin-with-rgb-gradients.81254/) +ServerListPlus can customize the MOTD and add separate messages for different players. Download it from the [ServerListPlus project page](https://www.spigotmc.org/resources/serverlistplus.241/), then: + +1. Upload the plugin to your server's `plugins` folder and restart the server. +2. Open the generated ServerListPlus `config.yml` file. +3. Follow the [ServerListPlus wiki](https://github.com/Minecrell/ServerListPlus/wiki) to configure the MOTD format and any player-specific messages. +4. Restart the server after saving the configuration. -Now download and place the plugin into your server's `plugins` folder (or `mods` folder) and restart. Once you have restarted, head into the MiniMOTD folder and open the `config.hocon`. Now you can change the MOTD how you like. The [MiniMessage docs](https://docs.adventure.kyori.net/minimessage/format.html#minimessage-format) can help you make one shown below. ![MiniMOTD configuration and resulting server-list preview](/running_a_server/motd/minimotd-1.png). MiniMOTD also has some advanced features such as multiple icons per MOTD and [different MOTDs per virtual hosts](https://github.com/jpenilla/MiniMOTD/wiki#advanced-configuration) (BungeeCord/Velocity only). +--- + +## How to change your MOTD with MiniMOTD -The [MiniMessage docs](https://docs.adventure.kyori.net/minimessage/format.html#minimessage-format) can help you to create the MOTDs and use more advanced features such as gradient colours as MiniMessage works differently to other plugins. +MiniMOTD is a plugin for Spigot, Paper, BungeeCord, and Velocity, or a mod for Fabric and Sponge. It uses the MiniMessage system and supports RGB colors on Minecraft 1.16 and newer. Download it from the [MiniMOTD project page](https://www.spigotmc.org/resources/minimotd-server-list-motd-plugin-with-rgb-gradients.81254/), then: -## How to change your MOTD on BungeeCord -Changing your MOTD on BungeeCord is slightly different. You can still use ServerListPlus or MiniMOTD, following the guide above, but if you want to do it without ServerListPlus or MiniMOTD, enter your BungeeCord `config.yml` and head to the MOTD entry. -You can use the [Minecraft MOTD creator](https://mctools.org/motd-creator) to help you make one like the example below. -![BungeeCord MOTD configuration and resulting server-list preview](/running_a_server/motd/bungeecord-preview.svg) +1. Upload the plugin to your server's `plugins` folder, or the mod to its `mods` folder, and restart the server. +2. Open the generated MiniMOTD `config.hocon` file. +3. Use the [MiniMessage documentation](https://docs.adventure.kyori.net/minimessage/format.html#minimessage-format) to create your MOTD. MiniMOTD also supports multiple icons and [different MOTDs per virtual host](https://github.com/jpenilla/MiniMOTD/wiki#advanced-configuration) on BungeeCord and Velocity. + ![MiniMOTD configuration and resulting server-list preview](/running_a_server/motd/minimotd-1.png) +4. Restart the server after saving the configuration. diff --git a/docs/running_a_server/spark.md b/docs/running_a_server/spark.md index 12481cd3b..c8f3786c8 100644 --- a/docs/running_a_server/spark.md +++ b/docs/running_a_server/spark.md @@ -28,6 +28,8 @@ Paper 1.21+ includes Spark by default and you do not need to download Spark sepa ::: Download the latest build from [Spark](https://spark.lucko.me/download) and drop it into your plugins (or mod folder if you are running Forge/Fabric) folder. Turn on or restart the server, and you're done! If you need help installing plugins, check [How to install plugins](/installing-plugins). +--- + ## Using The Profiler :::note @@ -44,6 +46,8 @@ When you open the link you'll find a useful web interface that displays all the ![Spark profiler web interface showing collected performance data](/running_a_server/spark/1.png) +--- + ## Other Useful Commands Running `/tps` will display an output that looks like this: @@ -58,10 +62,14 @@ The values will depend on your server, newer versions of Spark will contain more For more parameters to use, and other useful commands you can check the [Official Spark Documentation](https://spark.lucko.me/docs/Command-Usage) +--- + ## Need Help Reading the Profile? If you require help with reading your Spark profile, create a ticket in [Bloom.host Discord!](https://discord.gg/bloom). +--- + ## Info [Spark's Official Website](https://spark.lucko.me/) diff --git a/docs/running_a_server/timings.md b/docs/running_a_server/timings.md index c74283bb6..dcdd90720 100644 --- a/docs/running_a_server/timings.md +++ b/docs/running_a_server/timings.md @@ -37,8 +37,12 @@ More information is available in the [Paper Timings deprecation issue](https://g As time has gone on, Timings has become a bit outdated, from the Bloom team we usually recommend using [Spark](/spark) instead. ::: +--- + ## What is a Timings Report A timings report is a way of detecting what is causing lag on your server, if you are running Paper or other Forks of paper you can take a report using the following steps, +--- + ## How to take a Timings Report First, in-game or in console, run the command `/timings on`. Once you have enabled timings wait at least 10m then go onto the next step. @@ -49,6 +53,8 @@ Said command will paste a link on the console, which when clicked will take you ![Paper Timings report web interface](/running_a_server/timings/1.png) Anything in red is using an excess of resources. You can also click the plugins tab to see what plugins are using the most resources on your server. +--- + ## Alternatives to Timings Timings, while a great tool to get an overview of performance at a basic level, might not be the best utility to use for more indepth troubleshooting or performance breakdowns. A new and popular alternative that we recommend is Spark. Learn more in our [Spark guide](/spark). diff --git a/docs/running_a_server/velocity.md b/docs/running_a_server/velocity.md index aec0fdb74..a62e37545 100644 --- a/docs/running_a_server/velocity.md +++ b/docs/running_a_server/velocity.md @@ -33,6 +33,8 @@ Based on our experience and feedback from our users: For most Bloom hosted servers, 1 GB is a solid baseline, and 1.5 GB is ideal if you are using Geyser or multiple proxy plugins. Allocating more memory will usually not harm performance unless it's a huge amount, but allocating too little may cause instability or slowdowns under high connection loads. Do note that setups with a high number of Geyser users will require more RAM, since from our experience each Bedrock player consumes a significant amount of memory. +--- + ## Creating a Velocity Server Split First you will need to head to your server split section via the server panel sidebar. @@ -55,6 +57,8 @@ Now you need to start up the Velocity server and then shut it down once it's loa The `velocity.toml` file is the config file for Velocity, we will be editing this and more in the following sections. +--- + ## Setting up the [servers] section in velocity.toml The first section of the config file you need to edit is the `[servers]` section, this will contain the aliases you want to use for your different servers in the config as well as the IP Addresses/Ports of the servers so that Velocity knows how to connect players to servers running behind the proxy. Here is an example `[servers]` section provided from Velocity's documentation. @@ -83,6 +87,8 @@ Make sure to replace the serverids with your own server's ids. You can get this The `try` section you see in the above example is extremely important, essentially this is the order of servers in which Velocity will try to connect incoming players to. If you have it set up like `try = ["survival", "creative", "minigames"]` then players will connect to `survival` by default, then `creative` if `survival` is down, and then `minigames` if the first two are down. Set up your preferred order and then we will continue our editing. +--- + ## Configuring server.properties on your backend servers In the `/home` directory of the servers you are running behind Velocity, you need to go to `server.properties` and set `online-mode` to `false`. For Velocity to work correctly and communicate with your backend servers it needs to be turned off. @@ -91,6 +97,8 @@ Remember that running your server in offline mode is not supported by Bloom.host After you configure and save your `server.properties` file along with completing the next section on Player Information Forwarding, make sure to `restart` your backend servers so that the changes are applied. +--- + ## Configuring Player Information Forwarding :::warning @@ -157,6 +165,8 @@ If you cannot use modern forwarding (for example, your server jar doesn't suppor To set this up, see the guide [on how to set up BungeeGuard](/waterfall#setting-up-bungeeguard). +--- + ## Additional configuration options for velocity.toml The following table contains additional noteworthy configuration options for `velocity.toml` @@ -170,6 +180,8 @@ The following table contains additional noteworthy configuration options for `ve You can find other `velocity.toml` settings in the [Velocity configuration reference](https://velocitypowered.com/wiki/users/configuration/)! +--- + ## Finishing up Now that you have configured your backend servers to communicate with Velocity correctly you are ready to start Velocity. Start your Velocity Server and make sure that you have restarted all of your backend servers and you should now have a working Velocity network! diff --git a/docs/using_the_panel/split-server.md b/docs/using_the_panel/split-server.md index b8142ed4a..590ba2eb0 100644 --- a/docs/using_the_panel/split-server.md +++ b/docs/using_the_panel/split-server.md @@ -47,6 +47,8 @@ When you log in to the game panel, you can see your new server in the list of se The server list sorts servers by alphabetical order, you can rename your servers using numbers to arrange them. Here is an example: `1. Proxy` `2. Lobby`. You can rename servers in the settings tab. ::: +--- + ## Split Server options You can change your main server, edit ports, change server type and edit RAM/Storage in the Server Split section. Keep in mind that you can also open new allocations (ports) using the Ports & Proxies section. diff --git a/static/dynmap-preview.svg b/static/dynmap-preview.svg deleted file mode 100644 index b8cc379b4..000000000 --- a/static/dynmap-preview.svg +++ /dev/null @@ -1,22 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="960" height="540" viewBox="0 0 960 540" role="img" aria-labelledby="title desc"> - <title id="title">Dynmap browser map preview - A browser-style illustration of a Minecraft world map with terrain, roads, buildings, and player markers. - - - - - map.example.com - - - - - - - - - - - - Dynmap - World • Surface view - diff --git a/static/running_a_server/motd/bungeecord-preview.svg b/static/running_a_server/motd/bungeecord-preview.svg deleted file mode 100644 index 3c7e9d006..000000000 --- a/static/running_a_server/motd/bungeecord-preview.svg +++ /dev/null @@ -1,15 +0,0 @@ - - BungeeCord MOTD preview - A BungeeCord config.yml MOTD value beside a Minecraft proxy server-list preview. - - - config.yml - listeners: - - motd: '&eBloom Network' - '&fChoose a server!' - - - Bloom Network - Choose a server! - Proxy online - diff --git a/static/running_a_server/motd/server-properties-preview.svg b/static/running_a_server/motd/server-properties-preview.svg deleted file mode 100644 index 4ec2cd48f..000000000 --- a/static/running_a_server/motd/server-properties-preview.svg +++ /dev/null @@ -1,13 +0,0 @@ - - MOTD creator server.properties output - An example Minecraft MOTD preview with the generated server.properties value. - - MOTD creator - - - A Minecraft Server - Welcome to our world! - For official/vanilla server.properties: - - motd=A Minecraft Server \u00A7cWelcome to our world! - diff --git a/static/running_a_server/motd/server-properties.png b/static/running_a_server/motd/server-properties.png new file mode 100644 index 0000000000000000000000000000000000000000..1e27f040f2853f0f1edd75e811991e049154f153 GIT binary patch literal 20396 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 - ServerListPlus MOTD preview - A ServerListPlus configuration example beside a Minecraft server-list preview. - - - ServerListPlus.yml - Description: - - | - A Minecraft Server - Welcome, {PLAYER}! - - - A Minecraft Server - Welcome, Player! - Online - diff --git a/static/topper-gettop-preview.svg b/static/topper-gettop-preview.svg deleted file mode 100644 index 456c038fb..000000000 --- a/static/topper-gettop-preview.svg +++ /dev/null @@ -1,16 +0,0 @@ - - Topper gettop leaderboard output - A Minecraft chat-style illustration showing the gettop command followed by a ten-player money leaderboard. - - - > /gettop money 10 - Top money leaderboard - - 1. Alex — $12,4502. Steve — $10,980 - 3. Robin — $9,7404. Sam — $8,920 - 5. Taylor — $8,4106. Jordan — $7,995 - 7. Casey — $7,3408. Morgan — $6,850 - 9. Jamie — $6,20010. Riley — $5,775 - - Leaderboard loaded successfully. - From 127c1b2b20b0c5a634e7be0a98905fc4fa6e3bfc Mon Sep 17 00:00:00 2001 From: JustAMatt Date: Thu, 30 Jul 2026 15:39:01 -0300 Subject: [PATCH 07/50] Restore current DiscordSRV guide copy --- docs/plugins_and_modifications/plugins/discordsrv.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/plugins_and_modifications/plugins/discordsrv.md b/docs/plugins_and_modifications/plugins/discordsrv.md index 988a92c68..d9f6f8f5b 100644 --- a/docs/plugins_and_modifications/plugins/discordsrv.md +++ b/docs/plugins_and_modifications/plugins/discordsrv.md @@ -97,7 +97,7 @@ You must have permission to manage the selected Discord server. - **Add Reactions** and **Read Message History** for truncated-message notifications. 5. Make sure the role has the required permissions in the Discord channel you plan to link. -For tighter security, use the minimum permissions and grant additional permissions only when enabling DiscordSRV features that require them. See the [official DiscordSRV initial setup guide](https://docs.discordsrv.com/installation/initial-setup/) for the complete permissions list. +For tighter security, use the minimum permissions and grant additional permissions only when enabling DiscordSRV features that require them. See the [official DiscordSRV setup guide](https://docs.discordsrv.com/installation/initial-setup/) for the complete permissions list. --- @@ -160,7 +160,7 @@ If the bot does not come online or messages are not relayed: 5. Confirm that the channel ID in `Channels` is correct. 6. Review the Minecraft server console for DiscordSRV errors. -See the official [DiscordSRV initial setup guide](https://docs.discordsrv.com/installation/initial-setup/) for the complete permissions list and advanced setup information. +See the official [DiscordSRV initial setup guide](https://docs.discordsrv.com/installation/initial-setup/) for its complete permissions list and advanced setup information. ## Additional Resources From f33c48faa5cda3bf08d660e6cc61a1ec0a48dff6 Mon Sep 17 00:00:00 2001 From: JustAMatt Date: Thu, 30 Jul 2026 15:46:07 -0300 Subject: [PATCH 08/50] Add Palworld memory guidance --- docs/games/palworld/info.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/games/palworld/info.md b/docs/games/palworld/info.md index 876fa7251..647ea57c4 100644 --- a/docs/games/palworld/info.md +++ b/docs/games/palworld/info.md @@ -19,7 +19,8 @@ keywords: - Palworld treats direct-connect and Community Servers as separate server types. Direct-connect servers are joined by IP address and port, while Community Servers must be configured for the in-game list. See the [official server-type guide](https://docs.palworldgame.com/getting-started/about-server/). 2. **The server is using a lot of memory**: - Palworld officially requires 16 GB of memory and recommends more than 32 GB for larger servers. An 8 GB server may start, but is more likely to crash from running out of memory. - - Monitor memory usage and schedule restarts if your server needs them. + - The `bEnableInvaderEnemy` option seems to have a huge impact on the current RAM usage. Disabling it might be a wise choice. + - Monitor memory usage and schedule restarts if your server needs them. You can run them every 6 hours if your server is having RAM issues. 3. **Should I use direct connection or the Community Server list?**: - Use direct connection for a private server joined by IP address and port. Configure a Community Server when it needs to appear in the in-game server list. 4. **The config file gets deleted / reset on server restart**: From a35bb5f2cf9a21fe8f54bd830f697de3145a500b Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Thu, 30 Jul 2026 16:11:08 -0300 Subject: [PATCH 09/50] Update docs/plugins_and_modifications/multiplatform/simple-voice-chat.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- .../multiplatform/simple-voice-chat.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md b/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md index 42486d2eb..4840bb909 100644 --- a/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md +++ b/docs/plugins_and_modifications/multiplatform/simple-voice-chat.md @@ -47,7 +47,7 @@ In order to run Simple Voice Chat on your server, you need one of the following 1. Download the Forge version of [Simple Voice Chat](https://modrinth.com/mod/simple-voice-chat/versions?l=forge) ([Alternative download link](https://www.curseforge.com/minecraft/mc-mods/simple-voice-chat/files/all?filter-game-version=2020709689%3A7498)) 2. Open the [File Manager](/file-manager-controls) in your dashboard 3. Open the **mods** folder or create it if it doesn't exist -![File Manager with the plugins folder open](/plugins_and_modifications/simple_voice_chat/1.png) +![File Manager with the mods folder open](/plugins_and_modifications/simple_voice_chat/1.png) 4. Drag and drop the **Simple Voice Chat jar** into the browser window. 5. Continue with the [common installation](#common) From 8ddfae6661f44c36832aa9a7a64114fda8911ca1 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Thu, 30 Jul 2026 16:11:59 -0300 Subject: [PATCH 10/50] Update src/theme/MDXContent/index.js Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- src/theme/MDXContent/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/MDXContent/index.js b/src/theme/MDXContent/index.js index af9798042..875681b05 100644 --- a/src/theme/MDXContent/index.js +++ b/src/theme/MDXContent/index.js @@ -10,7 +10,7 @@ export default function MDXContentWrapper(props) { <> {showHeader && (
- + {title &&

{title}

}
)} From 5eacf1a9cd9e8e83077b22c8052f0f7f71c94aac Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Thu, 30 Jul 2026 16:12:39 -0300 Subject: [PATCH 11/50] Update docs/running_a_server/motd.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/running_a_server/motd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/running_a_server/motd.md b/docs/running_a_server/motd.md index 8df91c919..81cd2365d 100644 --- a/docs/running_a_server/motd.md +++ b/docs/running_a_server/motd.md @@ -48,6 +48,6 @@ MiniMOTD is a plugin for Spigot, Paper, BungeeCord, and Velocity, or a mod for F 1. Upload the plugin to your server's `plugins` folder, or the mod to its `mods` folder, and restart the server. 2. Open the generated MiniMOTD `config.hocon` file. -3. Use the [MiniMessage documentation](https://docs.adventure.kyori.net/minimessage/format.html#minimessage-format) to create your MOTD. MiniMOTD also supports multiple icons and [different MOTDs per virtual host](https://github.com/jpenilla/MiniMOTD/wiki#advanced-configuration) on BungeeCord and Velocity. +3. Use the [MiniMessage documentation](https://docs.papermc.io/adventure/minimessage/format/) to create your MOTD. MiniMOTD also supports multiple icons and [different MOTDs per virtual host](https://github.com/jpenilla/MiniMOTD/wiki#advanced-configuration) on BungeeCord and Velocity. ![MiniMOTD configuration and resulting server-list preview](/running_a_server/motd/minimotd-1.png) 4. Restart the server after saving the configuration. From f9765cb79179fbafbec2c6a5a4b38caed3fd6ee3 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Thu, 30 Jul 2026 16:16:32 -0300 Subject: [PATCH 12/50] Update README.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 86e6ffaed..f1bb61e94 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ id: title: description: <short description> hide_table_of_contents: false +sidebar_label: <sidebar title> keywords: - <keyword> --- From ff3a3aa0800f591e5aa3f5d3dc535e5afbac6d74 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Thu, 30 Jul 2026 16:17:51 -0300 Subject: [PATCH 13/50] Update docs/running_a_server/motd.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/running_a_server/motd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/running_a_server/motd.md b/docs/running_a_server/motd.md index 81cd2365d..323d6cd89 100644 --- a/docs/running_a_server/motd.md +++ b/docs/running_a_server/motd.md @@ -29,7 +29,7 @@ The message of the day (MOTD) is the text players see beside your server in the ## How to change your MOTD with ServerListPlus -:::warning ServerListPlus maintenance +:::note ServerListPlus maintenance ServerListPlus is no longer in active development. For current configuration details and supported options, refer to the [ServerListPlus wiki](https://github.com/Minecrell/ServerListPlus/wiki). ::: From 124892698718b3418e6c096e6a8d5abf67652530 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Thu, 30 Jul 2026 16:30:22 -0300 Subject: [PATCH 14/50] Added VNC Image guide --- docs/VPS/virtfusion-image.md | 36 ++++++++++++++++++++ sidebars.js | 11 +++--- static/VPS/virtfusion-image/mount-image.png | Bin 0 -> 75143 bytes 3 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 docs/VPS/virtfusion-image.md create mode 100644 static/VPS/virtfusion-image/mount-image.png diff --git a/docs/VPS/virtfusion-image.md b/docs/VPS/virtfusion-image.md new file mode 100644 index 000000000..16cce9dd4 --- /dev/null +++ b/docs/VPS/virtfusion-image.md @@ -0,0 +1,36 @@ +--- +id: virtfusion-image +title: Mounting an Image in VirtFusion +hide_table_of_contents: true +sidebar_label: VirtFusion Images +description: How to mount an installation or utility image on a VirtFusion VPS. +keywords: + - VirtFusion + - VPS + - Image + - ISO + - CD/DVD +--- + +Use the Media tab in VirtFusion to mount an operating-system installer, driver image, or other bootable utility on your VPS. + +--- + +## Mounting the Image + +1. Sign in to the [VirtFusion dashboard](https://virt.bloom.host/dashboard) and select your VPS. +2. Open the **Media** tab. +3. Under **CD/DVD-ROM**, select the image you want to mount. +4. Click **Insert**. VirtFusion will configure the VPS to boot from the mounted CD/DVD image. + +![VirtFusion Media tab showing where to select and insert an image](/VPS/virtfusion-image/mount-image.png) + +The VPS will not restart automatically, do so manually after following the VNC steps below. + +--- + +## Continuing Through VNC + +Use the VNC console to interact with the installer or utility provided by the mounted image. Follow the [VirtFusion VNC guide](/VPS/virtfusion-vnc) to enable and open the console. + +After finishing, return to the **Media** tab and eject the image so the VPS boots from its virtual disk normally. diff --git a/sidebars.js b/sidebars.js index 4c7456928..284e5d3cb 100644 --- a/sidebars.js +++ b/sidebars.js @@ -281,11 +281,12 @@ module.exports = { collapsed: true, items: [ 'VPS/starting-with-vps', - 'VPS/vnc', - 'VPS/credentials-vps', - 'VPS/virtfusion-subuser', - 'VPS/virtfusion-windows-install', - 'VPS/virtfusion-vnc', + 'VPS/vnc', + 'VPS/credentials-vps', + 'VPS/virtfusion-subuser', + 'VPS/virtfusion-image', + 'VPS/virtfusion-windows-install', + 'VPS/virtfusion-vnc', 'VPS/virtfusion-rescue', ], }, diff --git a/static/VPS/virtfusion-image/mount-image.png b/static/VPS/virtfusion-image/mount-image.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef224070c13aeac070b43160c5a34882955dd5f GIT binary patch literal 75143 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 Kb6Mw<&;$To44nr6 literal 0 HcmV?d00001 From 9e3cdf8734cd4a209712cdcb25b140540a974c08 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Thu, 30 Jul 2026 16:34:34 -0300 Subject: [PATCH 15/50] Fix P3 comments on PR #430 --- docs/other-servers/namelessmc.md | 4 ---- docs/running_a_server/timings.md | 4 ---- 2 files changed, 8 deletions(-) diff --git a/docs/other-servers/namelessmc.md b/docs/other-servers/namelessmc.md index f18874b11..9c6495954 100644 --- a/docs/other-servers/namelessmc.md +++ b/docs/other-servers/namelessmc.md @@ -89,10 +89,6 @@ This is the password you set up for your admin account. --- -## Additional Information - ---- - ## Friendly URLs To use Friendly URLs, navigate to your CaddyServer configuration (`home/caddy/Caddyfile`), and uncomment `# import namelessmc` ```text diff --git a/docs/running_a_server/timings.md b/docs/running_a_server/timings.md index dcdd90720..3397c3386 100644 --- a/docs/running_a_server/timings.md +++ b/docs/running_a_server/timings.md @@ -18,8 +18,6 @@ keywords: - Bloom.host --- -## How to take a Timings Report - :::warning Legacy guide The Timings system is no longer available on current Paper and Purpur servers. Use [Spark](/spark) for current performance reports. Timings should be considered deprecated and no longer be used. @@ -37,8 +35,6 @@ More information is available in the [Paper Timings deprecation issue](https://g As time has gone on, Timings has become a bit outdated, from the Bloom team we usually recommend using [Spark](/spark) instead. ::: ---- - ## What is a Timings Report A timings report is a way of detecting what is causing lag on your server, if you are running Paper or other Forks of paper you can take a report using the following steps, --- From 630d529059a22f02cce33991db7e3aeb5cefc066 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Thu, 30 Jul 2026 16:46:54 -0300 Subject: [PATCH 16/50] Update custom.css --- src/css/custom.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 1404a6efd..bbbfd4dc7 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -139,8 +139,8 @@ img:is(.small) { display: none; } -/** Hide the unused toggle */ -.react-toggle { +/** Hide the footer and unused toggle */ +.footer, .react-toggle { display: none; } From f77b300050938c276f2f36e16ee8b5cc8d394f82 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Thu, 30 Jul 2026 16:56:05 -0300 Subject: [PATCH 17/50] Revert cubic's suggestion on webp --- src/theme/MDXContent/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/MDXContent/index.js b/src/theme/MDXContent/index.js index 875681b05..af9798042 100644 --- a/src/theme/MDXContent/index.js +++ b/src/theme/MDXContent/index.js @@ -10,7 +10,7 @@ export default function MDXContentWrapper(props) { <> {showHeader && ( <div className="text--center"> - <img src="/logo.svg" alt="" className="doc-page-logo"/> + <img src="/logo.webp" alt="" className="doc-page-logo"/> {title && <h1>{title}</h1>} </div> )} From 346c92f63d3ad111fafd6c81ae0091cbc01816f0 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Fri, 31 Jul 2026 15:42:20 -0300 Subject: [PATCH 18/50] Update docs/plugins_and_modifications/plugins/craftingstore.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/plugins_and_modifications/plugins/craftingstore.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins_and_modifications/plugins/craftingstore.md b/docs/plugins_and_modifications/plugins/craftingstore.md index b532cc2cf..fe4014f16 100644 --- a/docs/plugins_and_modifications/plugins/craftingstore.md +++ b/docs/plugins_and_modifications/plugins/craftingstore.md @@ -21,7 +21,7 @@ Crafting store is an automatic Minecraft donation store page where you can creat --- ## Usage -To install, [download the latest CraftingStore version](https://www.spigotmc.org/resources/craftingstore-net-free-minecraft-donation-system-1-16-compatible.31331/) then move the file to your `plugins` folder. Afterwards, restart the server. Once you have done that, create an account at [https://craftingstore.net/register](https://craftingstore.net/register) and follow the CraftingStore panel's setup instructions. +To install, [download the latest CraftingStore version](https://www.spigotmc.org/resources/craftingstore-net-free-minecraft-donation-system-1-16-compatible.31331/) then move the file to your `plugins` folder. Afterwards, restart the server. Once you have done that, create an account at the [CraftingStore registration page](https://craftingstore.net/register) and follow the CraftingStore panel's setup instructions. After your store is configured to your liking, get the API key from the servers page and enter it in the plugin `config.yml` found in the CraftingStore folder to link your server with your CraftingStore page. Restart one last time, and you can now start accepting donations! From ede344ca321cfd282e83bcdac572d00c9c41f765 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Fri, 31 Jul 2026 15:43:45 -0300 Subject: [PATCH 19/50] Update docs/running_a_server/domain.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/running_a_server/domain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/running_a_server/domain.md b/docs/running_a_server/domain.md index 7a7e646ae..5ee713165 100644 --- a/docs/running_a_server/domain.md +++ b/docs/running_a_server/domain.md @@ -23,7 +23,7 @@ First, go to the [game panel](https://mc.bloom.host) and select your server. On ![Bloom.host Pointing A Domain](/running_a_server/domain/1.png) -In this guide we're going use Cloudflare to point our domain to the server. Simply [create a Cloudflare account](https://dash.cloudflare.com/sign-up). After registration, they will guide you through the process of connecting your domain to Cloudflare. +In this guide we're going to use Cloudflare to point our domain to the server. Simply [create a Cloudflare account](https://dash.cloudflare.com/sign-up). After registration, they will guide you through the process of connecting your domain to Cloudflare. Alternatively, some domain providers allow you to use their own systems for DNS. Though all sites look different, the task is the same for all of them. From 020d762c1876a0d3320ac48728d977e413ac77f2 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Fri, 31 Jul 2026 15:44:35 -0300 Subject: [PATCH 20/50] Update docs/VPS/virtfusion-subuser.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/VPS/virtfusion-subuser.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/VPS/virtfusion-subuser.md b/docs/VPS/virtfusion-subuser.md index e6991dc32..fc714e791 100644 --- a/docs/VPS/virtfusion-subuser.md +++ b/docs/VPS/virtfusion-subuser.md @@ -21,7 +21,7 @@ Don't forget to change your password after the first log in! First you'll need to create an account in our [Billing Portal](https://billing.bloom.host/). -Once you have an account you can open a [Billing Ticket](https://billing.bloom.host/supporttickets.php) with the subject "VirtFusion Subuser Account", make sure to mention your friend's billing email in the ticket. +Once you have an account, you can open a [Billing Ticket](https://billing.bloom.host/supporttickets.php) with the subject "VirtFusion Subuser Account". Make sure to mention your friend's billing email in the ticket. After we reply to your ticket with the credentials you'll be able to log in to the [VPS Panel](https://virt.bloom.host). From there you'll want to click your User icon in the top right corner and select "Account". From dc6a616de38294a313bd0dfe8da17734992469f1 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Fri, 31 Jul 2026 15:45:43 -0300 Subject: [PATCH 21/50] Update docs/plugins_and_modifications/installing-plugins.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/plugins_and_modifications/installing-plugins.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins_and_modifications/installing-plugins.md b/docs/plugins_and_modifications/installing-plugins.md index 8cfccc89f..0b0d9d28a 100644 --- a/docs/plugins_and_modifications/installing-plugins.md +++ b/docs/plugins_and_modifications/installing-plugins.md @@ -21,7 +21,7 @@ This guide is for Bukkit/Spigot/Paper servers. If you are looking for instructio ### The Basics > #### Requirements > -> In order to run plugins on your server, you have to be using a fork of Bukkit. (such as Spigot, Paper, Purpur, Pufferfish, etc. See our [guide on server jars](/jars) for more information.) If you wish to make client-side modifications (as well), see our guide on [installing server mods](/mods-install)! +> To run plugins on your server, you must use a fork of Bukkit, such as Spigot, Paper, Purpur, or Pufferfish. See our [guide on server jars](/jars) for more information. If you also wish to make client-side modifications, see our guide on [installing server mods](/mods-install)! > #### What are plugins? > From a62ccbb020945832d2e80202f2e776b9e88fd1a0 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Fri, 31 Jul 2026 15:46:54 -0300 Subject: [PATCH 22/50] Update docs/plugins_and_modifications/plugins/coreprotect.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/plugins_and_modifications/plugins/coreprotect.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins_and_modifications/plugins/coreprotect.md b/docs/plugins_and_modifications/plugins/coreprotect.md index 520865186..a4c7accc8 100644 --- a/docs/plugins_and_modifications/plugins/coreprotect.md +++ b/docs/plugins_and_modifications/plugins/coreprotect.md @@ -55,7 +55,7 @@ One command you can use in CoreProtect is `/co i`. This will allow you to left c Another command you can use is `/co rollback u:<user> t:<time> r:<radius> a:<action> b:<blocks> e:<exclude>`. Running that command will print a list of every action (that you choose) within the radius and time period, by a user you choose. Not all of those parameters are necessary. -You can find more commands in the [CoreProtect command reference](https://www.minerealm.com/community/viewtopic.php?f=32&t=6781). +You can find more commands in the [CoreProtect command reference](https://docs.coreprotect.net/commands/). --- From 242cb0f87510a37ab0f4de50228db293a8481b3d Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Fri, 31 Jul 2026 15:50:36 -0300 Subject: [PATCH 23/50] Update docs/using_the_panel/server-importer.mdx Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/using_the_panel/server-importer.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_the_panel/server-importer.mdx b/docs/using_the_panel/server-importer.mdx index 8c8bbc391..a959b4a01 100644 --- a/docs/using_the_panel/server-importer.mdx +++ b/docs/using_the_panel/server-importer.mdx @@ -75,5 +75,5 @@ This method only works if your former provider offers backups with the option to - Go to the backup section in your panel. - Download the backup directly with your browser. - Once the download has started, go to the "Downloads" manager of your browser of choice, and copy the link attached to the file-download. -- In DuckPanel, go to File Manager, then click the top right button "Download From URL". +- In DuckPanel, go to File Manager, then click the top-right button "Download From URL". - If the link is direct, then it will begin the download. Once it's completed your backup archive will be available in the Home directory of your server. From e1f4b9f51905fb0ab502c00d9943b1e3f37b0095 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Fri, 31 Jul 2026 15:51:25 -0300 Subject: [PATCH 24/50] Update docs/using_the_panel/server-importer.mdx Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/using_the_panel/server-importer.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_the_panel/server-importer.mdx b/docs/using_the_panel/server-importer.mdx index a959b4a01..9e82ffe46 100644 --- a/docs/using_the_panel/server-importer.mdx +++ b/docs/using_the_panel/server-importer.mdx @@ -54,7 +54,7 @@ We recommend you compress all the server files that you want to import before st ::: ### How to start the server import -- First go to [DuckPanel](https://mc.bloom.host) +- First, go to [DuckPanel](https://mc.bloom.host) - Select the server to which you want to import the files. - Click on "*Server Importer*" on the navigation bar. - Fill in the form with the appropriate credentials. From f6d0d395e87dbbd2890fe82e14e3ff3175031181 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Fri, 31 Jul 2026 16:57:12 -0300 Subject: [PATCH 25/50] Update server-importer.mdx --- docs/using_the_panel/server-importer.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_the_panel/server-importer.mdx b/docs/using_the_panel/server-importer.mdx index 9e82ffe46..8f74ab4ef 100644 --- a/docs/using_the_panel/server-importer.mdx +++ b/docs/using_the_panel/server-importer.mdx @@ -16,7 +16,7 @@ keywords: ### How it works -DuckPanel has a convenient Server Importer feature. The Server Importer allows you to easily import your server into Bloom.host, saving time and avoiding having to download/upload files yourself. +DuckPanel's Server Importer lets you import your server into Bloom without downloading and uploading the files yourself. :::note You can also import the databases hosted on your old host! Follow the [database import guide](/databases#importing-mysql-databases-through-the-panel) to see how to import databases. From 4e90df87e160646b2182a0e502e7516ed21b9c16 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Fri, 31 Jul 2026 17:05:53 -0300 Subject: [PATCH 26/50] Update docs/running_a_server/converting-worlds.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/running_a_server/converting-worlds.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/running_a_server/converting-worlds.md b/docs/running_a_server/converting-worlds.md index 7f4fdc53f..6bcfbcea0 100644 --- a/docs/running_a_server/converting-worlds.md +++ b/docs/running_a_server/converting-worlds.md @@ -22,7 +22,7 @@ If you upload or generate a world on a Bukkit/Spigot/Paper server, you will noti --- ## Part 1: Download the world -**Note:** This is not strictly necessary, you CAN use SFTP or the File Manager if you want, but downloading the files makes them much easier to work with. +**Note:** This is not strictly necessary; you can use SFTP or the File Manager if you want, but downloading the files makes them much easier to work with. This is most easily done by archiving the files using the File Manager and downloading them using SFTP. For instructions on using the File Manager and SFTP, please see [File Manager Controls](/file-manager-controls/) and [How to use SFTP](/sftp/), respectively. From a6f7d614ac72c98c5076e3a0bcb0e22c2b693360 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Sun, 2 Aug 2026 20:22:08 -0300 Subject: [PATCH 27/50] PR Fixes - Removed redundant Bloom.host tag entries - Changed Bloom.host to Bloom where appropriate - Changed Bloom panel to DuckPanel where appropriate - Changed Image to CD/ISO - Removed missed slop regarding SSD - We're already under the Rust section, why add Rust again? - Remade the PLAN page with full template compliance and the reverse proxy guide reference - Removed redundant example in template - Replaced modpack extras guide references for https://bloom.host/modpacks/ - Made Template and Markdown Syntax guide visible and clarified their roles - Remade "### Templates and formatting help" in readme and removed the previous recommendations. - Fixed Vanilla capitalization in world managment guide --- README.md | 28 +----- docs/VPS/virtfusion-image.md | 8 +- docs/billing/early_renewal.md | 4 +- docs/extras/available-modpacks.md | 3 +- ...atexample.md => documentation-template.md} | 13 ++- ...mplate.md => markdown-syntax-reference.md} | 14 +-- docs/extras/ping-issues.md | 4 +- docs/extras/srvcontrol.md | 1 - docs/extras/swap.md | 1 - docs/games/palworld/info.md | 3 - docs/games/rust/admin.md | 3 +- docs/getting_started/overview.md | 2 +- docs/other-servers/grafana.md | 1 - docs/other-servers/namelessmc.md | 1 - .../fabric_mods/performance-mods.md | 2 +- docs/plugins_and_modifications/gtnh.md | 2 +- docs/plugins_and_modifications/modpacks.md | 2 +- .../plugins_and_modifications/mods-install.md | 1 - .../multiplatform/advancedban.md | 1 - .../multiplatform/bluemap.md | 1 - .../multiplatform/chunky-multi.md | 1 - .../multiplatform/dynmap.md | 1 - .../multiplatform/floodgate.md | 1 - .../multiplatform/geysermc.md | 3 +- .../multiplatform/litebans.md | 1 - .../multiplatform/luckperms.md | 1 - .../multiplatform/plan.md | 82 ++++++++++++------ .../multiplatform/squaremap.md | 1 - .../multiplatform/worldedit.md | 1 - .../plugins/ajParkour.md | 1 - .../plugins/banannouncer.md | 1 - .../plugins/citizens2.md | 1 - .../plugins/conditionalcommands.md | 1 - .../plugins/coreprotect.md | 1 - .../plugins/craftingstore.md | 2 - .../plugins/discordsrv.md | 1 - .../plugins/essentialsx.md | 1 - .../plugins/griefprevention.md | 1 - .../plugins/multiverse.md | 2 - .../plugins/prism.md | 1 - .../plugins/servernpc.md | 1 - .../plugins/tebex.md | 1 - .../plugins/vault.md | 1 - .../plugins/venturechat.md | 1 - .../plugins/viaversion.md | 1 - .../plugins/votifier.md | 1 - .../plugins/vulcan.md | 1 - docs/running_a_server/converting-worlds.md | 9 +- docs/running_a_server/datapacks.md | 1 - docs/running_a_server/domain.md | 1 - docs/running_a_server/icon.md | 1 - docs/running_a_server/jars.mdx | 1 - docs/running_a_server/java-version.md | 2 +- docs/running_a_server/motd.md | 1 - docs/running_a_server/optimization.md | 1 - docs/running_a_server/resourcepack.md | 1 - docs/running_a_server/spark.md | 2 - docs/running_a_server/timings.md | 1 - docs/running_a_server/world-reset.md | 1 - docs/running_a_server/worlds.md | 54 ++++++------ docs/using_the_panel/2fa.md | 4 +- .../using_the_panel/file-manager-controls.mdx | 2 +- docs/using_the_panel/sftp.md | 3 +- docs/using_the_panel/split-server.md | 4 +- docusaurus.config.js | 2 +- sidebars.js | 28 +++--- .../mount-iso.png} | Bin 67 files changed, 138 insertions(+), 188 deletions(-) rename docs/extras/{templatexample.md => documentation-template.md} (92%) rename docs/extras/{template.md => markdown-syntax-reference.md} (92%) rename static/VPS/{virtfusion-image/mount-image.png => virtfusion-iso/mount-iso.png} (100%) diff --git a/README.md b/README.md index f1bb61e94..e011d1005 100644 --- a/README.md +++ b/README.md @@ -40,35 +40,11 @@ and they can be uploaded to the documentation. --- -### Document format: - -When adding new pages to the documentation, be sure to use the document format. -The document format is listed below, and also listed in [`README.md`](/README.md) in the root of the repo. - -```yaml - ---- -id: <id> -title: <title> -description: <short description> -hide_table_of_contents: false -sidebar_label: <sidebar title> -keywords: - - <keyword> ---- - -... rest of the document ... -``` - ---- - ### Templates and formatting help: -There is a [documentation style guide and template](https://raw.githubusercontent.com/Bloom-host/BloomDocs/master/docs/extras/templatexample.md) -with the required page structure and examples of supported formatting. +You should start your guides with the base [Documentation Template](https://docs.bloom.host/extras/documentation-template/). -You can also see [the formatted template](https://docs.bloom.host/extras/templatexample/) to preview how the -elements will look on the documentation website. +You can reference our [Markdown Syntax Guide](https://docs.bloom.host/extras/markdown-syntax-reference/) for further references regarding the use of markdown. --- diff --git a/docs/VPS/virtfusion-image.md b/docs/VPS/virtfusion-image.md index 16cce9dd4..00dca6752 100644 --- a/docs/VPS/virtfusion-image.md +++ b/docs/VPS/virtfusion-image.md @@ -1,8 +1,8 @@ --- -id: virtfusion-image -title: Mounting an Image in VirtFusion +id: virtfusion-iso +title: Mounting a CD/ISO in VirtFusion hide_table_of_contents: true -sidebar_label: VirtFusion Images +sidebar_label: VirtFusion CD/ISO description: How to mount an installation or utility image on a VirtFusion VPS. keywords: - VirtFusion @@ -23,7 +23,7 @@ Use the Media tab in VirtFusion to mount an operating-system installer, driver i 3. Under **CD/DVD-ROM**, select the image you want to mount. 4. Click **Insert**. VirtFusion will configure the VPS to boot from the mounted CD/DVD image. -![VirtFusion Media tab showing where to select and insert an image](/VPS/virtfusion-image/mount-image.png) +![VirtFusion Media tab showing where to select and insert an image](/VPS/virtfusion-iso/mount-iso.png) The VPS will not restart automatically, do so manually after following the VNC steps below. diff --git a/docs/billing/early_renewal.md b/docs/billing/early_renewal.md index 552a0a69b..a68c8a1dd 100644 --- a/docs/billing/early_renewal.md +++ b/docs/billing/early_renewal.md @@ -13,7 +13,7 @@ keywords: ## Early Renewals -Bloom.host clients can renew their services early, **as long as the next due date is less than 31 days away**. Please note that all Bloom.host services operate on a subscription basis. If you have a valid payment method linked to your Bloom.host Billing Account, your service will automatically renew on its due date. +Bloom clients can renew their services early, **as long as the next due date is less than 31 days away**. Please note that all Bloom services operate on a subscription basis. If you have a valid payment method linked to your Bloom Billing Account, your service will automatically renew on its due date. --- @@ -33,7 +33,7 @@ After adding the service to your cart, click Checkout and complete the checkout - You can only renew a service when the service’s **next due date is less than 31 days away**. - If your service is **more than 31 days away** from its due date, early renewal is **not available**. -- Bloom.host staff **cannot manually renew** services outside of this 31-day window. +- Bloom staff **cannot manually renew** services outside of this 31-day window. --- diff --git a/docs/extras/available-modpacks.md b/docs/extras/available-modpacks.md index 6c0734cb3..8d7599e6c 100644 --- a/docs/extras/available-modpacks.md +++ b/docs/extras/available-modpacks.md @@ -5,8 +5,7 @@ hide_table_of_contents: true sidebar_label: Available Modpacks on our One-Click Installer description: List of available modpacks on Bloom's Modpack One-Click Installer keywords: - - Bloom.host - - Bloom.host mods + - mods - Modpacks - Modpack installer - Modpacks installer diff --git a/docs/extras/templatexample.md b/docs/extras/documentation-template.md similarity index 92% rename from docs/extras/templatexample.md rename to docs/extras/documentation-template.md index 935a9eb9c..70f416187 100644 --- a/docs/extras/templatexample.md +++ b/docs/extras/documentation-template.md @@ -1,18 +1,17 @@ --- -id: templatexample -title: Documentation Style Guide and Template +id: documentation-template +title: Documentation Template hide_table_of_contents: false sidebar_label: Documentation Template -description: The template and style guide used for contributing to Bloom.host documentation. +description: The template and style guide used for contributing to Bloom documentation. keywords: - Template - Contributing - Style Guide - - Bloom.host --- -:::tip Before You Start -This page is a **contributor template and style reference**. Copy this file as a starting point for any new documentation page. Sections marked with `(*)` are required; sections marked `if applicable` are optional. +:::note Markdown Syntax +You can also reference our [Syntax Markdown Guide](/extras/markdown-syntax-reference) ::: ## Overview (*) @@ -34,7 +33,7 @@ This page is a **contributor template and style reference**. Copy this file as a Before following this guide, make sure you have: -- [ ] Access to the [Bloom.host Panel](https://mc.bloom.host) +- [ ] Access to the [DuckPanel](https://mc.bloom.host) - [ ] A running server (Paper, Spigot, Fabric, etc.) - [ ] *(Add any other requirements here)* diff --git a/docs/extras/template.md b/docs/extras/markdown-syntax-reference.md similarity index 92% rename from docs/extras/template.md rename to docs/extras/markdown-syntax-reference.md index 86a5abc26..3045dd296 100644 --- a/docs/extras/template.md +++ b/docs/extras/markdown-syntax-reference.md @@ -1,19 +1,16 @@ --- -id: template +id: markdown-syntax-reference title: Markdown Syntax Reference -unlisted: true hide_table_of_contents: false sidebar_label: Markdown Syntax Reference -description: Examples of supported Markdown formatting in Bloom.host documentation. +description: Examples of supported Markdown formatting in Bloom documentation. keywords: - Template - Pterodactyl Panel - - Minecraft - - Bloom.host --- :::note -This page demonstrates Markdown formatting. Contributors should use the [Documentation Style Guide and Template](/extras/templatexample) when creating a page. +This page demonstrates Markdown formatting. Contributors should use the [Documentation Style Guide and Template](/extras/documentation-template) when creating a page. ::: You can write content using [GitHub-flavored Markdown syntax](https://github.github.com/gfm/). @@ -117,11 +114,6 @@ s = "Python syntax highlighting" print(s) ``` -```html -No language indicated, so no syntax highlighting. -But let's throw in a <b>tag</b>. -``` - ```js {2} function highlightMe() { console.log('This line can be highlighted!'); diff --git a/docs/extras/ping-issues.md b/docs/extras/ping-issues.md index 3f9f29836..c8e018679 100644 --- a/docs/extras/ping-issues.md +++ b/docs/extras/ping-issues.md @@ -6,7 +6,9 @@ hide_table_of_contents: true sidebar_label: How to diagnose and fix ping issues description: This guide will help you diagnose and potentially fix ping issues. keywords: - - Bloom.host + - MTR + - Anti-Xray + - Engine Mode 2 - ping issues - ping --- diff --git a/docs/extras/srvcontrol.md b/docs/extras/srvcontrol.md index 088e0cc44..145f10fec 100644 --- a/docs/extras/srvcontrol.md +++ b/docs/extras/srvcontrol.md @@ -8,7 +8,6 @@ keywords: - Mobile App - Pterodactyl Panel - SRVControl - - Bloom.host --- Hey Bloomers! In this guide we will be going over how to connect SRVControl (Discord Bot) to your Minecraft servers hosted on Pterodactyl. This discord bot uses the Pterodactyl API to allow you to control your servers through discord. diff --git a/docs/extras/swap.md b/docs/extras/swap.md index cf65b6b37..6a8caed21 100644 --- a/docs/extras/swap.md +++ b/docs/extras/swap.md @@ -9,7 +9,6 @@ keywords: - no swap - swapping - ram - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/games/palworld/info.md b/docs/games/palworld/info.md index 647ea57c4..be2672534 100644 --- a/docs/games/palworld/info.md +++ b/docs/games/palworld/info.md @@ -31,9 +31,6 @@ keywords: ## Recommended Server Limits The [official requirements](https://docs.palworldgame.com/getting-started/requirements/) specify 16 GB of memory and recommend more than 32 GB for larger servers. An 8 GB server may start, but has a higher risk of crashing due to insufficient memory. - -Use SSD storage where possible; the official guide warns that low-performance storage may corrupt save data. - --- ## Credits diff --git a/docs/games/rust/admin.md b/docs/games/rust/admin.md index abdeb4ae6..08b068b8f 100644 --- a/docs/games/rust/admin.md +++ b/docs/games/rust/admin.md @@ -1,9 +1,10 @@ --- id: admin -title: Rust Admin Privileges +title: Admin Privileges hide_table_of_contents: true description: Learn how you can manage admin privileges on your Rust server! keywords: + - Rust Admin - Rust - Admin - Moderator diff --git a/docs/getting_started/overview.md b/docs/getting_started/overview.md index 39e26aa0c..44358aea6 100644 --- a/docs/getting_started/overview.md +++ b/docs/getting_started/overview.md @@ -4,7 +4,7 @@ title: Docs Overview slug: / hide_table_of_contents: true sidebar_label: Documentation Overview -description: Learn how to navigate Bloom.host documentation and find common server, panel, and account guides. +description: Learn how to navigate Bloom documentation and find common server, panel, and account guides. --- ## Introduction diff --git a/docs/other-servers/grafana.md b/docs/other-servers/grafana.md index c2e8c955a..3d551c15f 100644 --- a/docs/other-servers/grafana.md +++ b/docs/other-servers/grafana.md @@ -8,7 +8,6 @@ keywords: - Grafana - Pterodactyl Panel - Minecraft - - Bloom.host - UnifiedMetrics - Prometheus --- diff --git a/docs/other-servers/namelessmc.md b/docs/other-servers/namelessmc.md index 9c6495954..1554522a1 100644 --- a/docs/other-servers/namelessmc.md +++ b/docs/other-servers/namelessmc.md @@ -13,7 +13,6 @@ keywords: - Website Software - Website - Pterodactyl Panel -- Bloom.host --- ### What is NamelessMC diff --git a/docs/plugins_and_modifications/fabric_mods/performance-mods.md b/docs/plugins_and_modifications/fabric_mods/performance-mods.md index 02b4d6e64..31890e6f3 100644 --- a/docs/plugins_and_modifications/fabric_mods/performance-mods.md +++ b/docs/plugins_and_modifications/fabric_mods/performance-mods.md @@ -9,7 +9,7 @@ description: A list of mods that will help combat lag on fabric servers. keywords: - Performance - Fabric - - Bloom.host + - Bloom.hos - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/gtnh.md b/docs/plugins_and_modifications/gtnh.md index d1965443c..3f5df1374 100644 --- a/docs/plugins_and_modifications/gtnh.md +++ b/docs/plugins_and_modifications/gtnh.md @@ -4,7 +4,7 @@ title: Installing Gregtech New Horizons slug: /gtnh hide_table_of_contents: true sidebar_label: Installing Gregtech New Horizons -description: This guide will help you set up the Gregtech New Horizons modpack on Bloom.host +description: This guide will help you set up the Gregtech New Horizons modpack on Bloom keywords: - Forge - Minecraft diff --git a/docs/plugins_and_modifications/modpacks.md b/docs/plugins_and_modifications/modpacks.md index 242c0e84c..0e3bc95a4 100644 --- a/docs/plugins_and_modifications/modpacks.md +++ b/docs/plugins_and_modifications/modpacks.md @@ -18,7 +18,7 @@ keywords: :::important Before following this guide, make sure that the modpack that you want to install isn't on the 'Modpacks' tab of our Minecraft panel. If the modpack is there, you can just click it and it will be automatically installed for you. -To see a list of available modpacks please visit our [Modpack list page](/extras/available-modpacks), in that page we also explain the process you have to follow if you want us to add a modpack to our One-Click Modpack installer. +To see a list of available modpacks please visit our [Modpack list page](https://bloom.host/modpacks/), in that page we also explain the process you have to follow if you want us to add a modpack to our One-Click Modpack installer. ::: :::note diff --git a/docs/plugins_and_modifications/mods-install.md b/docs/plugins_and_modifications/mods-install.md index 1c4154a27..45def218a 100644 --- a/docs/plugins_and_modifications/mods-install.md +++ b/docs/plugins_and_modifications/mods-install.md @@ -7,7 +7,6 @@ sidebar_label: Installing Mods description: How to install minecraft mods on your forge/fabric server. keywords: - Template - - Bloom.host - Pterodactyl Panel - Minecraft - Fabric diff --git a/docs/plugins_and_modifications/multiplatform/advancedban.md b/docs/plugins_and_modifications/multiplatform/advancedban.md index a3affcc5e..521259098 100644 --- a/docs/plugins_and_modifications/multiplatform/advancedban.md +++ b/docs/plugins_and_modifications/multiplatform/advancedban.md @@ -13,7 +13,6 @@ keywords: - ban - Pterodactyl Panel - Minecraft - - Bloom.host --- ### What does the plugin do? diff --git a/docs/plugins_and_modifications/multiplatform/bluemap.md b/docs/plugins_and_modifications/multiplatform/bluemap.md index e40d8c68b..8e15b2e11 100644 --- a/docs/plugins_and_modifications/multiplatform/bluemap.md +++ b/docs/plugins_and_modifications/multiplatform/bluemap.md @@ -23,7 +23,6 @@ keywords: - neo Forge - Sponge - CLI - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/multiplatform/chunky-multi.md b/docs/plugins_and_modifications/multiplatform/chunky-multi.md index ab1f9afa6..0defb00a5 100644 --- a/docs/plugins_and_modifications/multiplatform/chunky-multi.md +++ b/docs/plugins_and_modifications/multiplatform/chunky-multi.md @@ -10,7 +10,6 @@ keywords: - Server Pregeneration - Spigot - Fabric - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/multiplatform/dynmap.md b/docs/plugins_and_modifications/multiplatform/dynmap.md index f9002b951..d69c0f54c 100644 --- a/docs/plugins_and_modifications/multiplatform/dynmap.md +++ b/docs/plugins_and_modifications/multiplatform/dynmap.md @@ -16,7 +16,6 @@ keywords: - Spigot - Forge - Fabric - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/multiplatform/floodgate.md b/docs/plugins_and_modifications/multiplatform/floodgate.md index dfe589319..7a734c58d 100644 --- a/docs/plugins_and_modifications/multiplatform/floodgate.md +++ b/docs/plugins_and_modifications/multiplatform/floodgate.md @@ -16,7 +16,6 @@ keywords: - Velocity - Fabric - NeoForge - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/multiplatform/geysermc.md b/docs/plugins_and_modifications/multiplatform/geysermc.md index ff527c185..d10a05c94 100644 --- a/docs/plugins_and_modifications/multiplatform/geysermc.md +++ b/docs/plugins_and_modifications/multiplatform/geysermc.md @@ -18,7 +18,6 @@ keywords: - Standalone - Velocity - ViaProxy - - Bloom.host - Pterodactyl Panel - Minecraft --- @@ -31,7 +30,7 @@ Geyser translates network traffic so Bedrock players can join Java servers. It m If you need help installing plugins, check out our [plugin installation guide](/installing-plugins). -Once installed, go to the **Ports & Proxies** page on the Bloom.Host panel. Create a new port allocation using `19132`. While it is the default, you can use any available port assigned to your server. +Once installed, go to the **Ports & Proxies** page on the DuckPanel panel. Create a new port allocation using `19132`. While it is the default, you can use any available port assigned to your server. After assigning the port, update the `port:` value in Geyser's `config.yml` to match your new allocation (if not the default), then restart the server. diff --git a/docs/plugins_and_modifications/multiplatform/litebans.md b/docs/plugins_and_modifications/multiplatform/litebans.md index 913c429ce..5a1efc0b9 100644 --- a/docs/plugins_and_modifications/multiplatform/litebans.md +++ b/docs/plugins_and_modifications/multiplatform/litebans.md @@ -12,7 +12,6 @@ keywords: - mute - kick - Spigot - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/multiplatform/luckperms.md b/docs/plugins_and_modifications/multiplatform/luckperms.md index 2ca54b14b..43a364c7e 100644 --- a/docs/plugins_and_modifications/multiplatform/luckperms.md +++ b/docs/plugins_and_modifications/multiplatform/luckperms.md @@ -14,7 +14,6 @@ keywords: - Bukkit - BungeeCord - Velocity - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/multiplatform/plan.md b/docs/plugins_and_modifications/multiplatform/plan.md index ee2232868..0690095e5 100644 --- a/docs/plugins_and_modifications/multiplatform/plan.md +++ b/docs/plugins_and_modifications/multiplatform/plan.md @@ -1,51 +1,81 @@ --- id: plan slug: /multiplatform/plan -title: PLAN -hide_table_of_contents: true -sidebar_label: PLAN (Player Analytics) -description: Install and expose PLAN Player Analytics on a Bloom.host Minecraft server. +title: Plan (Player Analytics) +hide_table_of_contents: false +sidebar_label: Plan (Player Analytics) +description: Install and configure Plan Player Analytics on a Bloom Minecraft server. keywords: - Plan - Player Analytics - Stats - Reverse proxy - - CNAME - Spigot + - Minecraft --- -### How to set up PLAN (Player Analytics) +## Overview -Plan is an extremely popular & useful plugin that you can use to track server stats such as player counts, average playtime, and much more. You can find it on the [PLAN Spigot resource page](https://www.spigotmc.org/resources/plan-player-analytics.32536/). +Plan (Player Analytics) records server activity such as player counts and playtime and displays the results in a web dashboard. This guide covers installing Plan on a Paper-based server, connecting its web interface through Bloom's reverse proxy, and creating your first account. -#### Installation Steps: -1. For this to work you will need your own custom domain, such as **domain.com**. Go to your DNS page and set up a new CNAME record. Set the name to “plan” (you can also use anything else like “stats”, note that you will have to use that value instead of “plan” later on as well), and set the target to `revproxy-us.bloom.host` if your server is in the US or `revproxy-eu.bloom.host` if your server is in the EU. Also, make sure proxy status is set to “DNS only” so that the little cloud icon is gray instead of orange. +**Related Pages:** -This guide will teach you how to set it up for the first time and how to secure it using the reverse proxy. +- [Installing Plugins](/installing-plugins) +- [Creating a Reverse Proxy](/ports-and-proxies) -![PLAN web server settings in its configuration file](/plugins_and_modifications/plugins/plan/1.png) -*Example CNAME record using Cloudflare* +--- + +## Install Plan + +1. Download Plan from the [Spigot resource page](https://www.spigotmc.org/resources/plan-player-analytics.32536/). +2. Follow the [plugin installation guide](/installing-plugins) to upload the downloaded `.jar` file to your server's `plugins` folder. +3. Restart the server. Plan should create its configuration file at `plugins/Plan/config.yml`. + +--- + +## Configure Plan + +### Configure the Web Server -2. Go to your bloom panel, click on “Ports and Proxies”, and create a new Allocation with the port “8804”. Once you’re done with that, set the Reverse Proxy Domain to “revproxy-us.bloom.host” (or the EU one if you’re in the EU) +1. In the DuckPanel File Manager, open `plugins/Plan/config.yml`. +2. Update the following settings. Replace `plan.example.com` with the domain or subdomain you configured in the reverse proxy guide. -![PLAN port allocation and reverse proxy configured in DuckPanel](/plugins_and_modifications/plugins/plan/2.png) +```yaml +Webserver: + Port: 8804 + Alternative_IP: + Enabled: true + Address: "plan.example.com" + Security: + SSL_certificate: + KeyStore_path: proxy +``` -3. Install the Minecraft plugin from here and restart your server -4. Open the plugin’s config.yml and change the following values: - - Webserver.Alternative_IP: true - - Webserver.Alternative_IP.Address: plan.YOURDOMAIN.com (obviously change it to your domain) - - Webserver.Security.SSL_certificate.KeyStore_path: proxy -![PLAN configuration with the public domain and proxy keystore path](/plugins_and_modifications/plugins/plan/3.png) +3. Save the file and restart the server to apply the changes. -5. If you would like to track players’ locations: -`Data_gathering.Accept_GeoLite2_EULA` +### Enable Location Tracking *(optional)* -That’s it! You can now go to plan.YOURDOMAIN.com and click “Create Account” to make your account! +To allow Plan to download its GeoLite2 geolocation database, review and accept the [GeoLite2 End User License Agreement](https://www.maxmind.com/en/geolite2/eula), then update this setting in `plugins/Plan/config.yml`: -### Info +```yaml +Data_gathering: + Accept_GeoLite2_EULA: true +``` -[Spigot resource page](https://www.spigotmc.org/resources/plan-player-analytics.32536/) +Save the file and restart the server after changing this setting. + +--- + +## Verify the Setup + +1. Open `https://plan.example.com` in your browser, replacing the example address with your domain or subdomain. +2. Select **Create Account** and complete the registration form. +3. Confirm that the Plan dashboard loads and displays your server's analytics. + +--- -[GitHub repository](https://github.com/plan-player-analytics/Plan) +## Resources +- [Plan Spigot resource page](https://www.spigotmc.org/resources/plan-player-analytics.32536/) +- [Plan GitHub repository](https://github.com/plan-player-analytics/Plan) diff --git a/docs/plugins_and_modifications/multiplatform/squaremap.md b/docs/plugins_and_modifications/multiplatform/squaremap.md index ae141ea4f..0fb2bed5c 100644 --- a/docs/plugins_and_modifications/multiplatform/squaremap.md +++ b/docs/plugins_and_modifications/multiplatform/squaremap.md @@ -16,7 +16,6 @@ keywords: - Website - Spigot - Fabric - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/multiplatform/worldedit.md b/docs/plugins_and_modifications/multiplatform/worldedit.md index bfd2f7219..ff841f619 100644 --- a/docs/plugins_and_modifications/multiplatform/worldedit.md +++ b/docs/plugins_and_modifications/multiplatform/worldedit.md @@ -10,7 +10,6 @@ keywords: - Performance - Spigot - Paper - - Bloom.host - Pterodactyl Panel - Minecraft - FAWE diff --git a/docs/plugins_and_modifications/plugins/ajParkour.md b/docs/plugins_and_modifications/plugins/ajParkour.md index 4120a7e7f..d8dbf90c5 100644 --- a/docs/plugins_and_modifications/plugins/ajParkour.md +++ b/docs/plugins_and_modifications/plugins/ajParkour.md @@ -11,7 +11,6 @@ keywords: - auto - automatic - Spigot - - Bloom.host - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/banannouncer.md b/docs/plugins_and_modifications/plugins/banannouncer.md index faef398c8..c76ccc2cf 100644 --- a/docs/plugins_and_modifications/plugins/banannouncer.md +++ b/docs/plugins_and_modifications/plugins/banannouncer.md @@ -11,7 +11,6 @@ keywords: - Spigot - Moderation - Discord - - Bloom.host - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/citizens2.md b/docs/plugins_and_modifications/plugins/citizens2.md index 254f17600..9411ea785 100644 --- a/docs/plugins_and_modifications/plugins/citizens2.md +++ b/docs/plugins_and_modifications/plugins/citizens2.md @@ -8,7 +8,6 @@ description: How do I find you when I cannot solve this problem keywords: - Citizens - Minecraft - - Bloom.host --- ## What does the plugin do? diff --git a/docs/plugins_and_modifications/plugins/conditionalcommands.md b/docs/plugins_and_modifications/plugins/conditionalcommands.md index 056382aad..007690356 100644 --- a/docs/plugins_and_modifications/plugins/conditionalcommands.md +++ b/docs/plugins_and_modifications/plugins/conditionalcommands.md @@ -10,7 +10,6 @@ keywords: - Advanced Anticheat - Anticheat - Spigot - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/coreprotect.md b/docs/plugins_and_modifications/plugins/coreprotect.md index a4c7accc8..f6281f3be 100644 --- a/docs/plugins_and_modifications/plugins/coreprotect.md +++ b/docs/plugins_and_modifications/plugins/coreprotect.md @@ -11,7 +11,6 @@ keywords: - Core Protect - MySQL - Spigot - - Bloom.host - Pterodactyl Panel - Minecraft - Purge diff --git a/docs/plugins_and_modifications/plugins/craftingstore.md b/docs/plugins_and_modifications/plugins/craftingstore.md index fe4014f16..3248dbbc7 100644 --- a/docs/plugins_and_modifications/plugins/craftingstore.md +++ b/docs/plugins_and_modifications/plugins/craftingstore.md @@ -7,10 +7,8 @@ sidebar_label: CraftingStore description: How to enable donations on your server! keywords: - CraftingStore - - Bloom.host - donations - plugins - - Bloom.host - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/discordsrv.md b/docs/plugins_and_modifications/plugins/discordsrv.md index d9f6f8f5b..60e7098df 100644 --- a/docs/plugins_and_modifications/plugins/discordsrv.md +++ b/docs/plugins_and_modifications/plugins/discordsrv.md @@ -14,7 +14,6 @@ keywords: - Discord Bot - Paper - Spigot - - Bloom.host --- ## Overview diff --git a/docs/plugins_and_modifications/plugins/essentialsx.md b/docs/plugins_and_modifications/plugins/essentialsx.md index f3e60f9bd..8d8fa2a58 100644 --- a/docs/plugins_and_modifications/plugins/essentialsx.md +++ b/docs/plugins_and_modifications/plugins/essentialsx.md @@ -13,7 +13,6 @@ keywords: - currency - Pterodactyl Panel - Minecraft - - Bloom.host --- :::important diff --git a/docs/plugins_and_modifications/plugins/griefprevention.md b/docs/plugins_and_modifications/plugins/griefprevention.md index 21560feaa..8171f42d6 100644 --- a/docs/plugins_and_modifications/plugins/griefprevention.md +++ b/docs/plugins_and_modifications/plugins/griefprevention.md @@ -12,7 +12,6 @@ keywords: - GriefPrevention - Pterodactyl Panel - Minecraft - - Bloom.host --- ## What does the plugin do? diff --git a/docs/plugins_and_modifications/plugins/multiverse.md b/docs/plugins_and_modifications/plugins/multiverse.md index 12da5078c..1b544615b 100644 --- a/docs/plugins_and_modifications/plugins/multiverse.md +++ b/docs/plugins_and_modifications/plugins/multiverse.md @@ -9,8 +9,6 @@ keywords: - Multiverse - Multiple Worlds - Spigot - - Bloom.host - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/prism.md b/docs/plugins_and_modifications/plugins/prism.md index e66943eb6..3c7061850 100644 --- a/docs/plugins_and_modifications/plugins/prism.md +++ b/docs/plugins_and_modifications/plugins/prism.md @@ -11,7 +11,6 @@ keywords: - Core Protect - MySQL - Paper - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/servernpc.md b/docs/plugins_and_modifications/plugins/servernpc.md index 70c681c77..447c12392 100644 --- a/docs/plugins_and_modifications/plugins/servernpc.md +++ b/docs/plugins_and_modifications/plugins/servernpc.md @@ -11,7 +11,6 @@ keywords: - Citizens - paper - Spigot - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/tebex.md b/docs/plugins_and_modifications/plugins/tebex.md index 3f33c03e3..7235d0878 100644 --- a/docs/plugins_and_modifications/plugins/tebex.md +++ b/docs/plugins_and_modifications/plugins/tebex.md @@ -12,7 +12,6 @@ keywords: - Donation Store - Pterodactyl Panel - Minecraft - - Bloom.host --- ## What does the plugin do? diff --git a/docs/plugins_and_modifications/plugins/vault.md b/docs/plugins_and_modifications/plugins/vault.md index e5d29ee94..3b26d1a4f 100644 --- a/docs/plugins_and_modifications/plugins/vault.md +++ b/docs/plugins_and_modifications/plugins/vault.md @@ -13,7 +13,6 @@ keywords: - Bukkit - Pterodactyl Panel - Minecraft - - Bloom.host --- ## What does this plugin do? diff --git a/docs/plugins_and_modifications/plugins/venturechat.md b/docs/plugins_and_modifications/plugins/venturechat.md index 2d644073d..0d2f13325 100644 --- a/docs/plugins_and_modifications/plugins/venturechat.md +++ b/docs/plugins_and_modifications/plugins/venturechat.md @@ -9,7 +9,6 @@ keywords: - VentureChat - Chat - Spigot - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/viaversion.md b/docs/plugins_and_modifications/plugins/viaversion.md index 0ed7ab4d0..7264bc220 100644 --- a/docs/plugins_and_modifications/plugins/viaversion.md +++ b/docs/plugins_and_modifications/plugins/viaversion.md @@ -19,7 +19,6 @@ keywords: - 1.9 - 1.8 - Spigot - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/votifier.md b/docs/plugins_and_modifications/plugins/votifier.md index 55e4a4780..9954272b1 100644 --- a/docs/plugins_and_modifications/plugins/votifier.md +++ b/docs/plugins_and_modifications/plugins/votifier.md @@ -10,7 +10,6 @@ keywords: - Votifier - Set up voting - Spigot - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/plugins_and_modifications/plugins/vulcan.md b/docs/plugins_and_modifications/plugins/vulcan.md index 606489d72..01dbeb9a8 100644 --- a/docs/plugins_and_modifications/plugins/vulcan.md +++ b/docs/plugins_and_modifications/plugins/vulcan.md @@ -10,7 +10,6 @@ keywords: - Anticheat - Vulcan AAC - Spigot - - Bloom.host - Minecraft --- diff --git a/docs/running_a_server/converting-worlds.md b/docs/running_a_server/converting-worlds.md index 6bcfbcea0..f787c5567 100644 --- a/docs/running_a_server/converting-worlds.md +++ b/docs/running_a_server/converting-worlds.md @@ -4,20 +4,19 @@ title: Converting Bukkit Worlds to Vanilla slug: /converting-worlds hide_table_of_contents: true sidebar_label: Converting Bukkit Worlds to vanilla -description: How to convert a Bukkit/Spigot/Paper world to a vanilla one +description: How to convert a Bukkit/Spigot/Paper world to a Vanilla one keywords: - Bukkit - Spigot - Paper - - Bloom.host - Minecraft - world - saves --- -## Converting Bukkit Worlds to vanilla -If you upload or generate a world on a Bukkit/Spigot/Paper server, you will notice that when the server loads it splits the world into three folders: `world`, `world_nether` and `world_the_end`, or one for each dimension. This is fine until you want to download the world and run it in singleplayer or switch to a vanilla/Fabric/Forge server. This guide shows you how to convert Bukkit/Spigot/Paper worlds back to ones that can be used on vanilla or other server types. Note that the screenshots provided were taken on macOS, but the method should work for all platforms. +## Converting Bukkit Worlds to Vanilla +If you upload or generate a world on a Bukkit/Spigot/Paper server, you will notice that when the server loads it splits the world into three folders: `world`, `world_nether` and `world_the_end`, or one for each dimension. This is fine until you want to download the world and run it in singleplayer or switch to a Vanilla/Fabric/Forge server. This guide shows you how to convert Bukkit/Spigot/Paper worlds back to ones that can be used on Vanilla or other server types. Note that the screenshots provided were taken on macOS, but the method should work for all platforms. --- @@ -49,5 +48,5 @@ Return to the root folder once again and go into `world_the_end`. From here, cop ![converting worlds](/running_a_server/converting_worlds/4.png) ![converting worlds](/running_a_server/converting_worlds/5.png) -By copying the DIM-1 and DIM1 folders into `world`, you have made a copy of all the data of the Nether and End dimensions available in the `world` folder, which means that it now contains all the required data to run all three dimensions successfully (it already has its own copies of `level.dat`, `session.lock` and `uid.dat`) and can be run without issue on vanilla, Fabric, Forge and other servers. +By copying the DIM-1 and DIM1 folders into `world`, you have made a copy of all the data of the Nether and End dimensions available in the `world` folder, which means that it now contains all the required data to run all three dimensions successfully (it already has its own copies of `level.dat`, `session.lock` and `uid.dat`) and can be run without issue on Vanilla, Fabric, Forge and other servers. diff --git a/docs/running_a_server/datapacks.md b/docs/running_a_server/datapacks.md index 8906d8b88..799ff405b 100644 --- a/docs/running_a_server/datapacks.md +++ b/docs/running_a_server/datapacks.md @@ -11,7 +11,6 @@ keywords: - Lag - Server - Plugin - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/running_a_server/domain.md b/docs/running_a_server/domain.md index 5ee713165..3a1abce42 100644 --- a/docs/running_a_server/domain.md +++ b/docs/running_a_server/domain.md @@ -12,7 +12,6 @@ keywords: - Pterodactyl Panel - Minecraft Domain - A Record - - Bloom.host --- Hello there Bloomers! 👋 diff --git a/docs/running_a_server/icon.md b/docs/running_a_server/icon.md index 73a4691e5..b9fdb5f72 100644 --- a/docs/running_a_server/icon.md +++ b/docs/running_a_server/icon.md @@ -7,7 +7,6 @@ sidebar_label: Adding an icon description: How to add a server icon to your minecraft server keywords: - Server icon - - Bloom.host - Pterodactyl Panel - Minecraft - server-icon diff --git a/docs/running_a_server/jars.mdx b/docs/running_a_server/jars.mdx index a6543e8c6..95738b43f 100644 --- a/docs/running_a_server/jars.mdx +++ b/docs/running_a_server/jars.mdx @@ -18,7 +18,6 @@ keywords: - Minecraft - Modded Server Jars - Plugin Server Jars - - Bloom.host --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/docs/running_a_server/java-version.md b/docs/running_a_server/java-version.md index 5e0fb6ef8..d84e85f4c 100644 --- a/docs/running_a_server/java-version.md +++ b/docs/running_a_server/java-version.md @@ -14,7 +14,7 @@ keywords: - Startup --- -Bloom.host offers different versions of Java to suit your server. The default Java 25 for modern Minecraft versions, this should suit most use cases. +Bloom offers different versions of Java to suit your server. The default Java 25 for modern Minecraft versions, this should suit most use cases. This guide will show you how to change the version of Java if it does not work for your server. 1. Firstly you want to go to the [Minecraft server control panel](https://mc.bloom.host/) and select the server that you want to change the Java version of. diff --git a/docs/running_a_server/motd.md b/docs/running_a_server/motd.md index 323d6cd89..effaa1f83 100644 --- a/docs/running_a_server/motd.md +++ b/docs/running_a_server/motd.md @@ -11,7 +11,6 @@ keywords: - Spigot - 1.16 - Minecraft - - Bloom.host --- The message of the day (MOTD) is the text players see beside your server in the multiplayer server list. This guide covers the built-in `server.properties` setting, ServerListPlus, and MiniMOTD. Choose the option that matches your server software and the features you need. diff --git a/docs/running_a_server/optimization.md b/docs/running_a_server/optimization.md index 2f158604b..3cee81935 100644 --- a/docs/running_a_server/optimization.md +++ b/docs/running_a_server/optimization.md @@ -12,7 +12,6 @@ keywords: - Lag - Server - Server Optimization - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/running_a_server/resourcepack.md b/docs/running_a_server/resourcepack.md index 1a985553a..eb25b0382 100644 --- a/docs/running_a_server/resourcepack.md +++ b/docs/running_a_server/resourcepack.md @@ -10,7 +10,6 @@ keywords: - Server - Pterodactyl Panel - Minecraft - - Bloom.host --- Once you found the resource pack you want on your server you need to upload the resource pack to a website and get the direct download link of it. You can use [MC-Packs](https://mc-packs.net/). diff --git a/docs/running_a_server/spark.md b/docs/running_a_server/spark.md index c8f3786c8..90f9cbd51 100644 --- a/docs/running_a_server/spark.md +++ b/docs/running_a_server/spark.md @@ -10,8 +10,6 @@ keywords: - Performance - Spigot - Paper - - Bloom.host - - Bloom.host - Pterodactyl Panel - Minecraft --- diff --git a/docs/running_a_server/timings.md b/docs/running_a_server/timings.md index 3397c3386..9153d6c4f 100644 --- a/docs/running_a_server/timings.md +++ b/docs/running_a_server/timings.md @@ -15,7 +15,6 @@ keywords: - 1.16 - 1.17 - Minecraft - - Bloom.host --- :::warning Legacy guide diff --git a/docs/running_a_server/world-reset.md b/docs/running_a_server/world-reset.md index 585d2a39e..77b18b072 100644 --- a/docs/running_a_server/world-reset.md +++ b/docs/running_a_server/world-reset.md @@ -11,7 +11,6 @@ keywords: - Minecraft - Spigot - Plugins - - Bloom.host --- You'll need a way to access your server files. This tutorial references the [web panel](https://mc.bloom.host), but you can also use [SFTP](/sftp). **Shutdown your server before proceeding!** diff --git a/docs/running_a_server/worlds.md b/docs/running_a_server/worlds.md index ac512e05e..4db0ac17e 100644 --- a/docs/running_a_server/worlds.md +++ b/docs/running_a_server/worlds.md @@ -1,8 +1,8 @@ --- id: worlds -title: Managing Minecraft Worlds +title: Managing Worlds slug: /worlds -hide_table_of_contents: false +hide_table_of_contents: false sidebar_label: Managing Worlds description: Learn how you can upload, export and manage your Minecraft worlds. keywords: @@ -19,38 +19,38 @@ keywords: If you'd like to import ALL your files from another hosting company, please follow our [Server Importer](/server-importer) guide instead! ::: -## Importing Worlds +## Importing Worlds Depending on your specific edition and world, there are a couple of methods of importing worlds. ## From Java Edition Single Player If you have a single player world in Java Edition, this is what you need to do: Open the single player menu and select your world. Then, press the 'Edit' button: -![Minecraft single-player world selected with the Edit button](/running_a_server/worlds/1.png) +![Minecraft single-player world selected with the Edit button](/running_a_server/worlds/1.png) Here, press the 'Open World Folder' button: -![Minecraft world settings with the Open World Folder button](/running_a_server/worlds/2.png) +![Minecraft world settings with the Open World Folder button](/running_a_server/worlds/2.png) Then, select all the files within the open directory and right click. Select 'Send To' and 'Compressed (zipped) folder': -![Windows context menu for creating a compressed world folder](/running_a_server/worlds/3.png) +![Windows context menu for creating a compressed world folder](/running_a_server/worlds/3.png) You may get a warning about empty folders being skipped but that is okay! -Next, follow [our guide on connecting to your server with an SFTP client](/sftp). In most cases, your world files will be fairly large, so it's best to use a dedicated file transfer protocol, instead of the built-in File Manager. +Next, follow [our guide on connecting to your server with an SFTP client](/sftp). In most cases, your world files will be fairly large, so it's best to use a dedicated file transfer protocol, instead of the built-in File Manager. Once connected via SFTP, right click in SFTP and create a new folder, such as `my-world` and open it. -![New world folder created in the SFTP client](/running_a_server/worlds/4.png) +![New world folder created in the SFTP client](/running_a_server/worlds/4.png) Drag & drop the ZIP file you created previously and wait until it finishes uploading. -![World archive uploading through SFTP](/running_a_server/worlds/5.gif) +![World archive uploading through SFTP](/running_a_server/worlds/5.gif) Once that's done, head over to the 'File Manager' tab of the panel and locate and your folder. Within, press the '...' button next to your ZIP and click 'Unarchive'. This may also take a few minutes depending on the size of your server. -![File Manager context menu with the Unarchive action](/running_a_server/worlds/6.png) +![File Manager context menu with the Unarchive action](/running_a_server/worlds/6.png) After unzipping, here is how it should generally look. -![Extracted Java world files in the File Manager](/running_a_server/worlds/7.png) +![Extracted Java world files in the File Manager](/running_a_server/worlds/7.png) Now, if you'd like this to be your main world, open the `server.properties` file in the main directory of your server and ensure the `level-name=` setting matches with the folder that you created before: -![server.properties level-name set to the uploaded world folder](/running_a_server/worlds/8.png) +![server.properties level-name set to the uploaded world folder](/running_a_server/worlds/8.png) Alternatively, if you'd like to use a plugin or mod such as [Multiverse-Core](/plugins/multiverse), you can import it using the folder's name. In our example, for Multiverse-Core, you'd do `/mvimport my-world NORMAL` @@ -63,14 +63,14 @@ That's it! Make sure to restart your server to apply the changes. If you have a Minecraft Realm on Java Edition, this is what you need to do: Open the Realm menu, select your Realm and press 'Configure': -![Minecraft Realms menu with the Configure button](/running_a_server/worlds/9.png) +![Minecraft Realms menu with the Configure button](/running_a_server/worlds/9.png) Switch to the world you'd like to import to your Bloom server by clicking it, if you haven't already. There press the 'World backups' button: -![Minecraft Realm settings with the World backups button](/running_a_server/worlds/10.png) +![Minecraft Realm settings with the World backups button](/running_a_server/worlds/10.png) Lastly, press the 'Download latest' button which will download the very latest backup of your Realm to your single player saves folder: -![Minecraft Realm backup with the Download latest button](/running_a_server/worlds/11.png) +![Minecraft Realm backup with the Download latest button](/running_a_server/worlds/11.png) That's it! Now you can follow the ['From Java Edition Single Player'](#from-java-edition-single-player) chapter to import your Realm world! @@ -80,44 +80,44 @@ That's it! Now you can follow the ['From Java Edition Single Player'](#from-java If you have a single player world in Bedrock Edition, this is what you need to do: Open the worlds list and press the edit button next to your desired world: -![Minecraft Bedrock worlds list with an edit button](/running_a_server/worlds/12.png) +![Minecraft Bedrock worlds list with an edit button](/running_a_server/worlds/12.png) Scroll down to the very bottom of the main page and press 'Export World': -![Minecraft Bedrock world settings with the Export World button](/running_a_server/worlds/13.png) +![Minecraft Bedrock world settings with the Export World button](/running_a_server/worlds/13.png) Select your desktop, or another easy to access location: -![File picker saving the exported Bedrock world to the desktop](/running_a_server/worlds/14.png) +![File picker saving the exported Bedrock world to the desktop](/running_a_server/worlds/14.png) -Next, follow [our guide on connecting to your server with an SFTP client](/sftp). In most cases, your world files will be fairly large, so it's best to use a dedicated file transfer protocol, instead of the built-in File Manager. +Next, follow [our guide on connecting to your server with an SFTP client](/sftp). In most cases, your world files will be fairly large, so it's best to use a dedicated file transfer protocol, instead of the built-in File Manager. Once connected via SFTP, open the `worlds` directory and create a new folder, such as `my-world` and open it. -![New Bedrock world folder created in the SFTP client](/running_a_server/worlds/15.png) +![New Bedrock world folder created in the SFTP client](/running_a_server/worlds/15.png) Drag & drop the world file you exported previously and wait until it finishes uploading. Once it does, rename it, so instead of ending in `.mcworld`, it ends in `.zip`. The rest of the name does not matter. -![Bedrock world file renamed from mcworld to zip](/running_a_server/worlds/16.gif) +![Bedrock world file renamed from mcworld to zip](/running_a_server/worlds/16.gif) Once that's done, head over to the 'File Manager' tab of the panel and locate and your folder in the `worlds` directory. Then, press the '...' button next to your ZIP and click 'Unarchive'. This may also take a few minutes depending on the size of your server. -![File Manager context menu unarchiving the Bedrock world](/running_a_server/worlds/17.png) +![File Manager context menu unarchiving the Bedrock world](/running_a_server/worlds/17.png) After unzipping, here is how it should generally look. -![Extracted Bedrock world files in the File Manager](/running_a_server/worlds/18.png) +![Extracted Bedrock world files in the File Manager](/running_a_server/worlds/18.png) Lastly, open the `server.properties` file in the main directory of your server and ensure the `level-name=` setting matches with the folder that you created before: -![server.properties level-name set to the imported Bedrock world folder](/running_a_server/worlds/8.png) +![server.properties level-name set to the imported Bedrock world folder](/running_a_server/worlds/8.png) That's it! Make sure to restart your server to apply the changes. --- -## Resetting Worlds -See our full [world reset guide](/world-reset)! +## Resetting Worlds +See our full [world reset guide](/world-reset)! <!-- // Todo: --- -## Exporting Worlds +## Exporting Worlds ## To Java Single Player diff --git a/docs/using_the_panel/2fa.md b/docs/using_the_panel/2fa.md index 537895de1..f304e3721 100644 --- a/docs/using_the_panel/2fa.md +++ b/docs/using_the_panel/2fa.md @@ -6,8 +6,8 @@ hide_table_of_contents: true sidebar_label: 2-Factor Authentication description: This guide will help you secure your account through 2-Factor Authentication keywords: - - BloomVPS - - Bloom.host + - Bloom + - DuckPanel - Pterodactyl Panel - 2FA - 2FA Gameserver diff --git a/docs/using_the_panel/file-manager-controls.mdx b/docs/using_the_panel/file-manager-controls.mdx index ebfcee8ce..ba5e8626e 100644 --- a/docs/using_the_panel/file-manager-controls.mdx +++ b/docs/using_the_panel/file-manager-controls.mdx @@ -23,7 +23,7 @@ If you would prefer to use SFTP to manage your files, please see our [guide on S <div style={{ position: 'relative', paddingTop: '56.25%', textAlign: 'center' }}> <iframe src="https://www.youtube.com/embed/Dgl5JNRju-A?si=howzfCpQT7hsEfyo" - title="Bloom.host File Manager controls walkthrough" + title="DuckPanel File Manager controls walkthrough" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" diff --git a/docs/using_the_panel/sftp.md b/docs/using_the_panel/sftp.md index d6d219478..3246bea04 100644 --- a/docs/using_the_panel/sftp.md +++ b/docs/using_the_panel/sftp.md @@ -6,13 +6,12 @@ hide_table_of_contents: false sidebar_label: Using SFTP For Files description: This guide will help you use SFTP (WinSCP/Cyberduck/MobaXTerm/FileZilla/Visual Studio COde) to transfer files. keywords: - - Bloom.host - Import Files - Export Files - Transfer Files - SFTP - File Access - - Bloom.host file access + - file access - Pterodactyl Panel - FTP - FIle Transfer diff --git a/docs/using_the_panel/split-server.md b/docs/using_the_panel/split-server.md index 590ba2eb0..343181290 100644 --- a/docs/using_the_panel/split-server.md +++ b/docs/using_the_panel/split-server.md @@ -10,10 +10,10 @@ keywords: - splitting server - Pterodactyl Panel - Minecraft - - Bloom.host + - Bloom --- -Bloom.host allows you to split the server that you have with them, for example to run more Minecraft servers for different gamemodes or to run a Discord bot off of your server. +Our DuckPanel allows you to split the server that you have with them, for example to run more Minecraft servers for different gamemodes or to run a Discord bot off of your server. :::important Splitting your server will take resources (Storage and RAM) from your main server. It's important to make sure that you leave enough resources so that your main server runs properly! diff --git a/docusaurus.config.js b/docusaurus.config.js index 5b1171be0..127d5cc6e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,6 +1,6 @@ module.exports = { title: 'Bloom.host Docs', - tagline: 'Guides for Bloom.host servers and services', + tagline: 'Guides for Bloom servers and services', url: 'https://docs.bloom.host', baseUrl: '/', staticDirectories: [ 'static', 'docs' ], diff --git a/sidebars.js b/sidebars.js index 284e5d3cb..7f86d36d4 100644 --- a/sidebars.js +++ b/sidebars.js @@ -33,7 +33,7 @@ module.exports = { { type: 'category', label: 'Getting Started', - collapsed: true, + collapsed: true, items: [ 'getting_started/overview', ], @@ -42,7 +42,7 @@ module.exports = { { type: 'category', label: 'Using the Panel', - collapsed: true, + collapsed: true, items: [ { type: 'link', @@ -175,7 +175,7 @@ module.exports = { { type: 'category', - label: 'Plugins & Modifications', + label: 'Plugins & Modifications', collapsed: true, items: [ { @@ -268,10 +268,10 @@ module.exports = { label: 'Other Servers', collapsed: true, items: [ - 'other-servers/ark', - 'other-servers/caddy-server', - 'other-servers/grafana', - 'other-servers/namelessmc', + 'other-servers/ark', + 'other-servers/caddy-server', + 'other-servers/grafana', + 'other-servers/namelessmc', ], }, @@ -281,12 +281,12 @@ module.exports = { collapsed: true, items: [ 'VPS/starting-with-vps', - 'VPS/vnc', - 'VPS/credentials-vps', - 'VPS/virtfusion-subuser', - 'VPS/virtfusion-image', - 'VPS/virtfusion-windows-install', - 'VPS/virtfusion-vnc', + 'VPS/vnc', + 'VPS/credentials-vps', + 'VPS/virtfusion-subuser', + 'VPS/virtfusion-iso', + 'VPS/virtfusion-windows-install', + 'VPS/virtfusion-vnc', 'VPS/virtfusion-rescue', ], }, @@ -323,6 +323,8 @@ module.exports = { items: [ 'extras/ping-issues', 'extras/mtr', + 'extras/documentation-template', + 'extras/markdown-syntax-reference', 'extras/account-details', 'extras/available-modpacks', 'extras/srvcontrol', diff --git a/static/VPS/virtfusion-image/mount-image.png b/static/VPS/virtfusion-iso/mount-iso.png similarity index 100% rename from static/VPS/virtfusion-image/mount-image.png rename to static/VPS/virtfusion-iso/mount-iso.png From 715472802074977f7d48b63276dc7712040e3647 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 11:03:49 -0300 Subject: [PATCH 28/50] Plan port clairification --- docs/plugins_and_modifications/multiplatform/plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins_and_modifications/multiplatform/plan.md b/docs/plugins_and_modifications/multiplatform/plan.md index 0690095e5..2c6baf6e7 100644 --- a/docs/plugins_and_modifications/multiplatform/plan.md +++ b/docs/plugins_and_modifications/multiplatform/plan.md @@ -38,7 +38,7 @@ Plan (Player Analytics) records server activity such as player counts and playti ### Configure the Web Server -1. In the DuckPanel File Manager, open `plugins/Plan/config.yml`. +1. In the DuckPanel File Manager, open `plugins/Plan/config.yml`. Make sure to open port `8804` for Plan setups, instead of just `any port`. If it's not available, you can use a different port but remember to change the config file shown below accordingly. 2. Update the following settings. Replace `plan.example.com` with the domain or subdomain you configured in the reverse proxy guide. ```yaml From 8b1631141c1aa5c2106bfc1da2b540d97f8057d8 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:05:40 -0300 Subject: [PATCH 29/50] Update docs/plugins_and_modifications/multiplatform/plan.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/plugins_and_modifications/multiplatform/plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins_and_modifications/multiplatform/plan.md b/docs/plugins_and_modifications/multiplatform/plan.md index 2c6baf6e7..bf14cb817 100644 --- a/docs/plugins_and_modifications/multiplatform/plan.md +++ b/docs/plugins_and_modifications/multiplatform/plan.md @@ -70,7 +70,7 @@ Save the file and restart the server after changing this setting. ## Verify the Setup 1. Open `https://plan.example.com` in your browser, replacing the example address with your domain or subdomain. -2. Select **Create Account** and complete the registration form. +2. Select **Create Account**, complete the registration form, then run the displayed `/plan register --code <code>` command in-game to finalize the account. 3. Confirm that the Plan dashboard loads and displays your server's analytics. --- From 00acac81fb4ebce6021742031145c7a0447427ea Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:06:01 -0300 Subject: [PATCH 30/50] Update docs/plugins_and_modifications/fabric_mods/performance-mods.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/plugins_and_modifications/fabric_mods/performance-mods.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins_and_modifications/fabric_mods/performance-mods.md b/docs/plugins_and_modifications/fabric_mods/performance-mods.md index 31890e6f3..f5a1ee150 100644 --- a/docs/plugins_and_modifications/fabric_mods/performance-mods.md +++ b/docs/plugins_and_modifications/fabric_mods/performance-mods.md @@ -9,7 +9,7 @@ description: A list of mods that will help combat lag on fabric servers. keywords: - Performance - Fabric - - Bloom.hos + - Bloom - Pterodactyl Panel - Minecraft --- From 3804f25f77a73de1d4ffea036d2b54f3c440db98 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:06:27 -0300 Subject: [PATCH 31/50] Update docs/using_the_panel/split-server.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/using_the_panel/split-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_the_panel/split-server.md b/docs/using_the_panel/split-server.md index 343181290..aa9cccf72 100644 --- a/docs/using_the_panel/split-server.md +++ b/docs/using_the_panel/split-server.md @@ -13,7 +13,7 @@ keywords: - Bloom --- -Our DuckPanel allows you to split the server that you have with them, for example to run more Minecraft servers for different gamemodes or to run a Discord bot off of your server. +DuckPanel allows you to split your server, for example, to run more Minecraft servers for different game modes or to run a Discord bot on your server. :::important Splitting your server will take resources (Storage and RAM) from your main server. It's important to make sure that you leave enough resources so that your main server runs properly! From 47fdf106b7496ebb3e160e86e2f24c40caf247af Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:06:48 -0300 Subject: [PATCH 32/50] Update README.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e011d1005..13fb3f9bc 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ and they can be uploaded to the documentation. You should start your guides with the base [Documentation Template](https://docs.bloom.host/extras/documentation-template/). -You can reference our [Markdown Syntax Guide](https://docs.bloom.host/extras/markdown-syntax-reference/) for further references regarding the use of markdown. +You can reference our [Markdown Syntax Guide](https://docs.bloom.host/extras/markdown-syntax-reference/) for more information about using Markdown. --- From 72f1dec931a641ceb86b6d82314c912588e3e065 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:07:17 -0300 Subject: [PATCH 33/50] Update docs/plugins_and_modifications/multiplatform/geysermc.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/plugins_and_modifications/multiplatform/geysermc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins_and_modifications/multiplatform/geysermc.md b/docs/plugins_and_modifications/multiplatform/geysermc.md index d10a05c94..55a000479 100644 --- a/docs/plugins_and_modifications/multiplatform/geysermc.md +++ b/docs/plugins_and_modifications/multiplatform/geysermc.md @@ -30,7 +30,7 @@ Geyser translates network traffic so Bedrock players can join Java servers. It m If you need help installing plugins, check out our [plugin installation guide](/installing-plugins). -Once installed, go to the **Ports & Proxies** page on the DuckPanel panel. Create a new port allocation using `19132`. While it is the default, you can use any available port assigned to your server. +Once installed, go to the **Ports & Proxies** page in DuckPanel. Create a new port allocation using `19132`. While it is the default, you can use any available port assigned to your server. After assigning the port, update the `port:` value in Geyser's `config.yml` to match your new allocation (if not the default), then restart the server. From 89350ede4be1b87b9011b629ee93cff58be1077b Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:07:47 -0300 Subject: [PATCH 34/50] Update docs/extras/documentation-template.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/extras/documentation-template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/extras/documentation-template.md b/docs/extras/documentation-template.md index 70f416187..6348ae242 100644 --- a/docs/extras/documentation-template.md +++ b/docs/extras/documentation-template.md @@ -11,7 +11,7 @@ keywords: --- :::note Markdown Syntax -You can also reference our [Syntax Markdown Guide](/extras/markdown-syntax-reference) +You can also reference our [Markdown Syntax Guide](/extras/markdown-syntax-reference). ::: ## Overview (*) From 32384b49fc2f88590cb244fc321bae0e382d2219 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 11:09:39 -0300 Subject: [PATCH 35/50] Renamed iso guide md file --- docs/VPS/{virtfusion-image.md => virtfusion-iso.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/VPS/{virtfusion-image.md => virtfusion-iso.md} (100%) diff --git a/docs/VPS/virtfusion-image.md b/docs/VPS/virtfusion-iso.md similarity index 100% rename from docs/VPS/virtfusion-image.md rename to docs/VPS/virtfusion-iso.md From d6b6b0579a8954f89052852046900cdbee6c31cf Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:10:25 -0300 Subject: [PATCH 36/50] Update docs/running_a_server/java-version.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/running_a_server/java-version.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/running_a_server/java-version.md b/docs/running_a_server/java-version.md index d84e85f4c..9960f7877 100644 --- a/docs/running_a_server/java-version.md +++ b/docs/running_a_server/java-version.md @@ -14,7 +14,7 @@ keywords: - Startup --- -Bloom offers different versions of Java to suit your server. The default Java 25 for modern Minecraft versions, this should suit most use cases. +Bloom offers different versions of Java to suit your server. The default is Java 25, which supports modern Minecraft versions and should cover most use cases. This guide will show you how to change the version of Java if it does not work for your server. 1. Firstly you want to go to the [Minecraft server control panel](https://mc.bloom.host/) and select the server that you want to change the Java version of. From 247db2a09652b74eec84cc0ef0b525c1ec8f9ca9 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 11:23:13 -0300 Subject: [PATCH 37/50] reformatted and expanded squaremap guide --- .../multiplatform/squaremap.md | 69 +++++++++++-------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/docs/plugins_and_modifications/multiplatform/squaremap.md b/docs/plugins_and_modifications/multiplatform/squaremap.md index 0fb2bed5c..5bab8ca88 100644 --- a/docs/plugins_and_modifications/multiplatform/squaremap.md +++ b/docs/plugins_and_modifications/multiplatform/squaremap.md @@ -1,64 +1,75 @@ --- id: squaremap -title: Squaremap +title: Squaremap slug: /multiplatform/squaremap hide_table_of_contents: false sidebar_label: Squaremap -description: Squaremap is a plugin/mod which shows a map of Minecraft worlds in a webpage that can be easily accessed by a player. +description: Install and configure Squaremap's live Minecraft world map on a Bloom server. keywords: - - Pl3xMap - Squaremap - Map - Plugin - Mod - - Google Earth - - Google Maps - - Website - - Spigot + - Reverse proxy + - Paper - Fabric - - Pterodactyl Panel + - NeoForge + - Sponge - Minecraft --- -## What does Squaremap do? -Squaremap allows you to see your Minecraft world in 2D in real time in a browser, like Google Maps. It's an alternative to Dynmap or Bluemap, however it uses way less storage and is significantly faster. The tradeoff being that there is no 3D or isometric view. +## Overview +Squaremap is a lightweight live map viewer that displays Minecraft worlds in a top-down, vanilla-style 2D map. This guide covers installing Squaremap on a supported server, configuring its built-in web server, and connecting the map through Bloom's reverse proxy. + +**Related Pages:** + +- [Installing Plugins](/installing-plugins) +- [Installing Mods](/mods-install) +- [Creating a Reverse Proxy](/ports-and-proxies) --- -## Usage -Download Squaremap for your platform and install it. A file named `config.yml` among other files will be generated in the `/squaremap` folder. This file contains options to customise the appearance of your map as well as the web server your map will be on. +## Install Squaremap -:::tip +1. Open the [Squaremap GitHub page](https://github.com/jpenilla/squaremap), select **Releases**, and download the `.jar` file that matches your server platform and Minecraft version. +2. Place the `.jar` file in your server's `plugins` folder for Paper or Sponge, or its `mods` folder for Fabric or NeoForge. Fabric installations also require [Fabric API](https://modrinth.com/mod/fabric-api). See the [plugin installation guide](/installing-plugins) or [mod installation guide](/mods-install) for panel-specific instructions. +3. Restart the server. Squaremap should generate `config.yml` and its other files inside a folder named `squaremap`. + +--- -By default, Squaremap will use an internal web server. It is recommended you don't change that unless you know what you are doing. +## Configure Squaremap -::: +### Configure the Web Server -open the config.yml file and search for the following lines: +1. In the DuckPanel File Manager, open Squaremap's generated `config.yml` file. +2. Choose an available port between `8100` and `25600`. Squaremap uses `8080` by default, which is outside DuckPanel's allocation range; the example below uses `8100`. +3. Update the web server settings, leaving the internal web server enabled and `bind` set to `0.0.0.0`: ```yaml +settings: internal-webserver: enabled: true bind: 0.0.0.0 - port: 8080 + port: 8100 ``` -Here, you can set the port you wish to use for your Squaremap . By default it is set to `8080` but you need to change to something higher of your choice! +4. Save the file. +5. Follow the [reverse proxy guide](/ports-and-proxies) to connect a domain or subdomain to Squaremap. When creating the allocation, use the same port you set in `config.yml`. +6. Restart the server after creating the allocation so the port and configuration changes take effect. -:::important - -Your port must be between 8100-25600 in order to open it on the Bloom DuckPanel! - -::: +--- -After saving your `config.yml` proceed to the Ports & Proxies tab on the panel. Here you will see all your open ports, click `Create Allocation` on the bottom right to open a new one. -Enter the port number you specified earlier in `config.yml` and save. +## Verify the Setup -:::note +1. Open `https://map.example.com` in your browser, replacing the example address with the domain or subdomain you configured in the reverse proxy guide. +2. Confirm that the Squaremap page loads and displays your server's worlds. +3. Check the server console and confirm that Squaremap reports no startup errors. -Your server needs to be restarted after the port has been allocated. +--- -::: +## Resources -For more information, including the download link, support Discord, wiki, and demo, visit the [Squaremap GitHub page](https://github.com/jpenilla/squaremap). +- [Squaremap GitHub page](https://github.com/jpenilla/squaremap) +- [Squaremap releases](https://github.com/jpenilla/squaremap/releases) +- [Squaremap wiki](https://github.com/jpenilla/squaremap/wiki) From f17b7ec8e44a5b62666cb796e8d5e5630d0695a3 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:24:28 -0300 Subject: [PATCH 38/50] Update docs/using_the_panel/split-server.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/using_the_panel/split-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_the_panel/split-server.md b/docs/using_the_panel/split-server.md index aa9cccf72..97f0297ef 100644 --- a/docs/using_the_panel/split-server.md +++ b/docs/using_the_panel/split-server.md @@ -13,7 +13,7 @@ keywords: - Bloom --- -DuckPanel allows you to split your server, for example, to run more Minecraft servers for different game modes or to run a Discord bot on your server. +DuckPanel allows you to split your server, for example, to run more Minecraft servers for different game modes or to run a Discord bot on a separate split server. :::important Splitting your server will take resources (Storage and RAM) from your main server. It's important to make sure that you leave enough resources so that your main server runs properly! From 21404b746cfc36f0a55b6dc4b46fcb502aa98307 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 11:26:18 -0300 Subject: [PATCH 39/50] swapped order of minimotd and serverlistplus --- docs/running_a_server/motd.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/docs/running_a_server/motd.md b/docs/running_a_server/motd.md index effaa1f83..967a3b7cc 100644 --- a/docs/running_a_server/motd.md +++ b/docs/running_a_server/motd.md @@ -26,6 +26,18 @@ The message of the day (MOTD) is the text players see beside your server in the --- +## How to change your MOTD with MiniMOTD + +MiniMOTD is a plugin for Spigot, Paper, BungeeCord, and Velocity, or a mod for Fabric and Sponge. It uses the MiniMessage system and supports RGB colors on Minecraft 1.16 and newer. Download it from the [MiniMOTD project page](https://www.spigotmc.org/resources/minimotd-server-list-motd-plugin-with-rgb-gradients.81254/), then: + +1. Upload the plugin to your server's `plugins` folder, or the mod to its `mods` folder, and restart the server. +2. Open the generated MiniMOTD `config.hocon` file. +3. Use the [MiniMessage documentation](https://docs.papermc.io/adventure/minimessage/format/) to create your MOTD. MiniMOTD also supports multiple icons and [different MOTDs per virtual host](https://github.com/jpenilla/MiniMOTD/wiki#advanced-configuration) on BungeeCord and Velocity. + ![MiniMOTD configuration and resulting server-list preview](/running_a_server/motd/minimotd-1.png) +4. Restart the server after saving the configuration. + +--- + ## How to change your MOTD with ServerListPlus :::note ServerListPlus maintenance @@ -39,14 +51,5 @@ ServerListPlus can customize the MOTD and add separate messages for different pl 3. Follow the [ServerListPlus wiki](https://github.com/Minecrell/ServerListPlus/wiki) to configure the MOTD format and any player-specific messages. 4. Restart the server after saving the configuration. ---- -## How to change your MOTD with MiniMOTD - -MiniMOTD is a plugin for Spigot, Paper, BungeeCord, and Velocity, or a mod for Fabric and Sponge. It uses the MiniMessage system and supports RGB colors on Minecraft 1.16 and newer. Download it from the [MiniMOTD project page](https://www.spigotmc.org/resources/minimotd-server-list-motd-plugin-with-rgb-gradients.81254/), then: -1. Upload the plugin to your server's `plugins` folder, or the mod to its `mods` folder, and restart the server. -2. Open the generated MiniMOTD `config.hocon` file. -3. Use the [MiniMessage documentation](https://docs.papermc.io/adventure/minimessage/format/) to create your MOTD. MiniMOTD also supports multiple icons and [different MOTDs per virtual host](https://github.com/jpenilla/MiniMOTD/wiki#advanced-configuration) on BungeeCord and Velocity. - ![MiniMOTD configuration and resulting server-list preview](/running_a_server/motd/minimotd-1.png) -4. Restart the server after saving the configuration. From e3d47aaafbc60bb4b06edd8182f53375fe1a322e Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 11:28:12 -0300 Subject: [PATCH 40/50] whitelist guide capitalization --- docs/games/terraria/tshock/whitelisting.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/games/terraria/tshock/whitelisting.md b/docs/games/terraria/tshock/whitelisting.md index 13f568b31..f01e64f52 100644 --- a/docs/games/terraria/tshock/whitelisting.md +++ b/docs/games/terraria/tshock/whitelisting.md @@ -12,7 +12,7 @@ keywords: --- :::info HEADS UP -The game does not provide a whitelisting functionality by default, so we will have to use [TShock](overview), a +The game does not provide a Whitelisting functionality by default, so we will have to use [TShock](overview), a third party server software. As an alternative for the vanilla server, you can use [server passwords](/games/terraria/password). @@ -22,7 +22,7 @@ If you haven't already, make sure to install is using [the steps here](overview) ## Toggling Whitelist -In order to toggle the IP whitelist on your TShock server, head over to the 'File Manager' tab in the panel. +In order to toggle the IP Whitelist on your TShock server, head over to the 'File Manager' tab in the panel. There, find and open the `tshock` folder: ![TShock folder opened in file manager](/games/terraria/tshock/whitelisting/folder.png) @@ -34,14 +34,14 @@ In order to enable it, set it to `true`. Save the config once that's done! Lastly, go back to the 'Console' tab of the panel and hit 'Restart' to apply the change. -Now if anyone tries to connect without being added to the whitelist, their account will be kicked: +Now if anyone tries to connect without being added to the Whitelist, their account will be kicked: ![Kick message in game](/games/terraria/tshock/whitelisting/kicked.png) --- ## Adding & Removing Players -The whitelist is based on IP addresses. In order to add or remove players, open the `tshock` folder like before, and +The Whitelist is based on IP addresses. In order to add or remove players, open the `tshock` folder like before, and find the `whitelist.txt` file. To add a new entry, find the IP address you want to allow. You can see the IP address whenever someone attempts to @@ -50,7 +50,7 @@ connect: Then, add a new line to the aforementioned `whitelist.txt` with the following format: `whitelist <ip address here>` -As an example, to whitelist `1.1.1.1`, you would add: `whitelist 1.1.1.1` +As an example, to Whitelist `1.1.1.1`, you would add: `whitelist 1.1.1.1` ![Whitelist config showing 2 entries](/games/terraria/tshock/whitelisting/file.png) From b10a21668d24b4c140a46366c2d9d75ff1cb1f4d Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:35:41 -0300 Subject: [PATCH 41/50] Update docs/using_the_panel/sftp.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/using_the_panel/sftp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_the_panel/sftp.md b/docs/using_the_panel/sftp.md index 3246bea04..78618900a 100644 --- a/docs/using_the_panel/sftp.md +++ b/docs/using_the_panel/sftp.md @@ -26,7 +26,7 @@ keywords: **S**SH **F**ile **T**ransfer **P**rotocol is one of the most popular methods of securely transferring files to remote servers. :::important -We recommend you zip the files you want to upload to your server, uploading individual files through SFTP can take a long time. Once you have uploaded the .zip file to your server, you can go to the File Manager in DuckPanel, click on the three dots `...` to the right of the .zip and click on `Extract`. +We recommend you zip the files you want to upload to your server. Uploading individual files through SFTP can take a long time. Once you have uploaded the .zip file to your server, you can go to the File Manager in DuckPanel, click on the three dots `...` to the right of the .zip and click on `Extract`. ::: ### More Actions like compress, extract, rename, and others From 987826e675b7ede61cec2cd3721f9d114e84e740 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:36:12 -0300 Subject: [PATCH 42/50] Update docs/using_the_panel/sftp.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/using_the_panel/sftp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_the_panel/sftp.md b/docs/using_the_panel/sftp.md index 78618900a..3f92aba23 100644 --- a/docs/using_the_panel/sftp.md +++ b/docs/using_the_panel/sftp.md @@ -82,7 +82,7 @@ Firstly, you'll have to download [MobaXTerm](https://mobaxterm.mobatek.net/downl Once installed, launch the application. Right-click on the left side of the screen and click 'New Session'. Select 'SFTP' in the middle. -![WinSCP New Session form configured for SFTP](/using_the_panel/sftp/4.png) +![MobaXTerm New Session form configured for SFTP](/using_the_panel/sftp/4.png) Enter your host's IP, port, and SFTP username (which can be found in the DuckPanel server settings tab). Then click 'OK'. You will be asked for your panel password, which will be stored by default. From 3d66292173233808c43d8630ac27c2ebb1903d6f Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:37:24 -0300 Subject: [PATCH 43/50] Update docs/using_the_panel/schedules.mdx Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/using_the_panel/schedules.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_the_panel/schedules.mdx b/docs/using_the_panel/schedules.mdx index c15ce6037..5b2ebc25f 100644 --- a/docs/using_the_panel/schedules.mdx +++ b/docs/using_the_panel/schedules.mdx @@ -17,7 +17,7 @@ keywords: ### What Are Schedules? -Schedules are ways to automate certain tasks through DuckPanel such as starting/stopping/restarting the server, executing commands or even creating a backup. +Schedules let you automate tasks through DuckPanel, such as starting, stopping, or restarting the server, executing commands, and creating backups. --- :::note From 076ce0a1ba3d9bf8216b7be947615f92019ea135 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 11:54:19 -0300 Subject: [PATCH 44/50] Update docs/using_the_panel/sftp.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/using_the_panel/sftp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/using_the_panel/sftp.md b/docs/using_the_panel/sftp.md index 3f92aba23..57053a64e 100644 --- a/docs/using_the_panel/sftp.md +++ b/docs/using_the_panel/sftp.md @@ -26,7 +26,7 @@ keywords: **S**SH **F**ile **T**ransfer **P**rotocol is one of the most popular methods of securely transferring files to remote servers. :::important -We recommend you zip the files you want to upload to your server. Uploading individual files through SFTP can take a long time. Once you have uploaded the .zip file to your server, you can go to the File Manager in DuckPanel, click on the three dots `...` to the right of the .zip and click on `Extract`. +We recommend you zip the files you want to upload to your server. Uploading individual files through SFTP can take a long time. Once you have uploaded the `.zip` file to your server, you can go to the File Manager in DuckPanel, click on the three dots `...` to the right of the `.zip` file, and click on `Extract`. ::: ### More Actions like compress, extract, rename, and others From 5f68f8eaa875de26f25161fbb60280a11edc59b9 Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 12:53:44 -0300 Subject: [PATCH 45/50] Fixed naming scheme within categories --- docs/games/rust/connecting.md | 5 ++++- docs/games/rust/plugins.md | 5 ++++- docs/games/rust/worlds.md | 5 ++++- docs/games/terraria/connecting.md | 5 ++++- docs/games/terraria/tmodloader/overview.md | 5 ++++- docs/games/terraria/tshock/admin.md | 5 ++++- docs/games/terraria/tshock/overview.md | 5 ++++- docs/games/terraria/tshock/plugins.md | 5 ++++- 8 files changed, 32 insertions(+), 8 deletions(-) diff --git a/docs/games/rust/connecting.md b/docs/games/rust/connecting.md index 6f6cbac45..b46a12c68 100644 --- a/docs/games/rust/connecting.md +++ b/docs/games/rust/connecting.md @@ -1,6 +1,8 @@ --- id: connecting -title: Connecting to a Rust Server +title: Connecting to Servers +tags: + - Connecting to a Rust Server hide_table_of_contents: true description: Learn how to connect to your Rust server! keywords: @@ -10,6 +12,7 @@ keywords: - Steam server list - client.connect - Query port + - Connecting to a Rust Server --- ### Method #1 - Steam Server List diff --git a/docs/games/rust/plugins.md b/docs/games/rust/plugins.md index da90b61bd..7898a0b83 100644 --- a/docs/games/rust/plugins.md +++ b/docs/games/rust/plugins.md @@ -1,6 +1,8 @@ --- id: plugins -title: Using Rust Plugins +title: Using Plugins +tags: + - Using Rust Plugins hide_table_of_contents: true description: Learn how you can install and use plugins on your Rust server! keywords: @@ -10,6 +12,7 @@ keywords: - uMod - Install plugins - Plugin config + - Using Rust Plugins --- ## Introduction diff --git a/docs/games/rust/worlds.md b/docs/games/rust/worlds.md index 010c8a162..654654b93 100644 --- a/docs/games/rust/worlds.md +++ b/docs/games/rust/worlds.md @@ -1,6 +1,8 @@ --- id: worlds -title: Managing Rust Worlds +title: Managing Worlds +tags: + - Managing Rust Worlds hide_table_of_contents: true description: Learn how you can modify, manage, wipe or use custom worlds on your Rust server! keywords: @@ -11,6 +13,7 @@ keywords: - World size - Wipe - Custom map + - Managing Rust Worlds --- ## Changing Worlds Seeds, Sizes diff --git a/docs/games/terraria/connecting.md b/docs/games/terraria/connecting.md index 0ba9797b4..e86dff3cc 100644 --- a/docs/games/terraria/connecting.md +++ b/docs/games/terraria/connecting.md @@ -1,6 +1,8 @@ --- id: connecting -title: Connecting to a Terraria Server +title: Connecting to Server +tags: + - Connecting to a Terraria Server hide_table_of_contents: true description: Learn how to connect to your Terraria server! keywords: @@ -9,6 +11,7 @@ keywords: - Join via IP - Multiplayer - Server IP + - Connecting to a Terraria Server --- In order to connect to your Terraria server, open your server in the [DuckPanel](https://mc.bloom.host). If this is a diff --git a/docs/games/terraria/tmodloader/overview.md b/docs/games/terraria/tmodloader/overview.md index 57cea59f4..31a75829d 100644 --- a/docs/games/terraria/tmodloader/overview.md +++ b/docs/games/terraria/tmodloader/overview.md @@ -1,6 +1,8 @@ --- id: overview -title: tModLoader Overview +title: Overview +tags: + - tModLoader Overview hide_table_of_contents: true description: Learn about what tModLoader is and how you can set it up on your Bloom server! keywords: @@ -9,6 +11,7 @@ keywords: - Modding - Server type - Install tModLoader + - tModLoader Overview --- ## Introduction diff --git a/docs/games/terraria/tshock/admin.md b/docs/games/terraria/tshock/admin.md index 296641068..f9af932c5 100644 --- a/docs/games/terraria/tshock/admin.md +++ b/docs/games/terraria/tshock/admin.md @@ -1,6 +1,8 @@ --- id: admin -title: TShock Admin Privileges +title: Admin Privileges +tags: + - TShock Admin Privileges hide_table_of_contents: true description: Learn how you can earn admin privileges on your TShock server! keywords: @@ -11,6 +13,7 @@ keywords: - Owner - Login - Permissions + - TShock Admin Privileges --- :::caution HEADS UP! diff --git a/docs/games/terraria/tshock/overview.md b/docs/games/terraria/tshock/overview.md index edad75f1f..daf59b7db 100644 --- a/docs/games/terraria/tshock/overview.md +++ b/docs/games/terraria/tshock/overview.md @@ -1,6 +1,8 @@ --- id: overview -title: TShock Overview +title: Overview +tags: + - TShock Overview hide_table_of_contents: true description: Learn about what TShock is and how you can set it up on your Bloom server! keywords: @@ -10,6 +12,7 @@ keywords: - Anti-cheat - Server type - Install TShock + - TShock Overview --- ## Introduction diff --git a/docs/games/terraria/tshock/plugins.md b/docs/games/terraria/tshock/plugins.md index d48f0516d..661639695 100644 --- a/docs/games/terraria/tshock/plugins.md +++ b/docs/games/terraria/tshock/plugins.md @@ -1,6 +1,8 @@ --- id: plugins -title: Using TShock Plugins +title: Using Plugins +tags: + - Using TShock Plugins hide_table_of_contents: true description: Learn how you can install and use plugins on your TShock server! note: This is referenced on the /terraria page on the main site @@ -10,6 +12,7 @@ keywords: - Plugins - Install plugins - ServerPlugins + - Using TShock Plugins --- :::caution HEADS UP! From f5c356367861856cc95f708c2b4824ed28813ebb Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 12:57:36 -0300 Subject: [PATCH 46/50] Fixed final whitelist "typo" --- docs/games/terraria/tshock/whitelisting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/games/terraria/tshock/whitelisting.md b/docs/games/terraria/tshock/whitelisting.md index f01e64f52..82de9baaa 100644 --- a/docs/games/terraria/tshock/whitelisting.md +++ b/docs/games/terraria/tshock/whitelisting.md @@ -2,7 +2,7 @@ id: whitelisting title: Setting Up A Whitelist hide_table_of_contents: true -description: Learn how to set up and manage a whitelist on your Terraria server! +description: Learn how to set up and manage the Whitelist on your Terraria server! keywords: - Terraria - TShock From 11624b77a719891ad46e3a10668d829077ab90bd Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 13:24:53 -0300 Subject: [PATCH 47/50] Standarized "Connecting to Server" and changed admonition guideline and added important warning --- docs/extras/documentation-template.md | 6 +++++- docs/games/rust/connecting.md | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/extras/documentation-template.md b/docs/extras/documentation-template.md index 6348ae242..0fabe9072 100644 --- a/docs/extras/documentation-template.md +++ b/docs/extras/documentation-template.md @@ -10,6 +10,10 @@ keywords: - Style Guide --- +:::important Before You Start +This page is a **contributor template and style reference**. Copy this file as a starting point for any new documentation page. Sections marked with `(*)` are mandatory. +::: + :::note Markdown Syntax You can also reference our [Markdown Syntax Guide](/extras/markdown-syntax-reference). ::: @@ -157,6 +161,6 @@ Deleting your `world/` folder is **irreversible**. Always take a backup first. - ✅ **Do** use admonitions to surface genuinely important context that would be easy to miss in body text. - ✅ **Do** keep the content inside admonitions brief. -- ❌ **Don't** stack multiple admonitions back-to-back. +- ❌ **Don't** stack multiple admonitions back-to-back, unless there is no other clearer way to communicate both messages. - ❌ **Don't** use `:::warning` for anything less than a real risk of data loss or breakage. - ❌ **Don't** use admonitions as a substitute for well-structured body text. diff --git a/docs/games/rust/connecting.md b/docs/games/rust/connecting.md index b46a12c68..518c6ccfe 100644 --- a/docs/games/rust/connecting.md +++ b/docs/games/rust/connecting.md @@ -1,6 +1,6 @@ --- id: connecting -title: Connecting to Servers +title: Connecting to Server tags: - Connecting to a Rust Server hide_table_of_contents: true From 5140c8bc7cef49d8c9469d15cf3f63508ec1ccad Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 13:27:25 -0300 Subject: [PATCH 48/50] Changed methods to ### --- docs/games/palworld/update.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/games/palworld/update.md b/docs/games/palworld/update.md index 5e805892c..cd8c19297 100644 --- a/docs/games/palworld/update.md +++ b/docs/games/palworld/update.md @@ -8,13 +8,13 @@ description: Learn how to update your server to the latest version of Palworld ## Palworld Updating server --- -## Method 1 +### Method 1 Restarting the server. Server should auto update on restarts, if it doesn't follow Method 2 --- -## Method 2 +### Method 2 First, stop your server. Then, go to the [Backups](/backups) tab. Make a backup just in case something goes wrong, after that go to Settings tab, click Reinstall. From 14ddd2ab568a39bc5925cc3bd3c9279513b6c6bc Mon Sep 17 00:00:00 2001 From: JustAMatt <matt.advanced.kind@gmail.com> Date: Mon, 3 Aug 2026 13:33:23 -0300 Subject: [PATCH 49/50] readded alt text for logo and made plan truly multiplatform --- .../multiplatform/plan.md | 18 +++++++++++------- src/theme/MDXContent/index.js | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/docs/plugins_and_modifications/multiplatform/plan.md b/docs/plugins_and_modifications/multiplatform/plan.md index bf14cb817..55524660d 100644 --- a/docs/plugins_and_modifications/multiplatform/plan.md +++ b/docs/plugins_and_modifications/multiplatform/plan.md @@ -11,26 +11,29 @@ keywords: - Stats - Reverse proxy - Spigot + - Fabric + - Plugin + - Mod - Minecraft --- ## Overview -Plan (Player Analytics) records server activity such as player counts and playtime and displays the results in a web dashboard. This guide covers installing Plan on a Paper-based server, connecting its web interface through Bloom's reverse proxy, and creating your first account. +Plan (Player Analytics) records server activity such as player counts and playtime and displays the results in a web dashboard. This guide covers installing Plan on a Paper, Spigot, or Fabric server, connecting its web interface through Bloom's reverse proxy, and creating your first account. **Related Pages:** - [Installing Plugins](/installing-plugins) +- [Installing Mods](/mods-install) - [Creating a Reverse Proxy](/ports-and-proxies) - --- ## Install Plan -1. Download Plan from the [Spigot resource page](https://www.spigotmc.org/resources/plan-player-analytics.32536/). -2. Follow the [plugin installation guide](/installing-plugins) to upload the downloaded `.jar` file to your server's `plugins` folder. -3. Restart the server. Plan should create its configuration file at `plugins/Plan/config.yml`. +1. Download the correct Plan build for your platform. Use the [Spigot resource page](https://www.spigotmc.org/resources/plan-player-analytics.32536/) for Paper or Spigot, or download `PlanFabric.jar` from the [Plan GitHub releases](https://github.com/plan-player-analytics/Plan/releases/latest) for Fabric. +2. Place `Plan.jar` in your server's `plugins` folder for Paper or Spigot, or place `PlanFabric.jar` in its `mods` folder for Fabric. See the [plugin installation guide](/installing-plugins) or [mod installation guide](/mods-install) for panel-specific instructions. +3. Restart the server. Plan should generate `Plan/config.yml` in its platform-specific data directory. Those being the `plugins` directory for Paper and `config` for Fabric. --- @@ -38,7 +41,7 @@ Plan (Player Analytics) records server activity such as player counts and playti ### Configure the Web Server -1. In the DuckPanel File Manager, open `plugins/Plan/config.yml`. Make sure to open port `8804` for Plan setups, instead of just `any port`. If it's not available, you can use a different port but remember to change the config file shown below accordingly. +1. In the DuckPanel File Manager, open Plan's generated `config.yml`. Use port `8804` when creating Plan's allocation. If it is unavailable, choose a different port and update the configuration shown below to match. 2. Update the following settings. Replace `plan.example.com` with the domain or subdomain you configured in the reverse proxy guide. ```yaml @@ -56,7 +59,7 @@ Webserver: ### Enable Location Tracking *(optional)* -To allow Plan to download its GeoLite2 geolocation database, review and accept the [GeoLite2 End User License Agreement](https://www.maxmind.com/en/geolite2/eula), then update this setting in `plugins/Plan/config.yml`: +To allow Plan to download its GeoLite2 geolocation database, review and accept the [GeoLite2 End User License Agreement](https://www.maxmind.com/en/geolite2/eula), then update this setting in Plan's `config.yml`: ```yaml Data_gathering: @@ -78,4 +81,5 @@ Save the file and restart the server after changing this setting. ## Resources - [Plan Spigot resource page](https://www.spigotmc.org/resources/plan-player-analytics.32536/) +- [Plan GitHub releases](https://github.com/plan-player-analytics/Plan/releases/latest) - [Plan GitHub repository](https://github.com/plan-player-analytics/Plan) diff --git a/src/theme/MDXContent/index.js b/src/theme/MDXContent/index.js index af9798042..2d64dba64 100644 --- a/src/theme/MDXContent/index.js +++ b/src/theme/MDXContent/index.js @@ -10,7 +10,7 @@ export default function MDXContentWrapper(props) { <> {showHeader && ( <div className="text--center"> - <img src="/logo.webp" alt="" className="doc-page-logo"/> + <img src="/logo.webp" alt="Bloom logo" className="doc-page-logo"/> {title && <h1>{title}</h1>} </div> )} From 0c68d1f7d4af524329ec106f0b37ae010c218906 Mon Sep 17 00:00:00 2001 From: JustAMatt <69873176+JustAMatt@users.noreply.github.com> Date: Mon, 3 Aug 2026 13:51:24 -0300 Subject: [PATCH 50/50] Update docs/games/rust/connecting.md Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- docs/games/rust/connecting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/games/rust/connecting.md b/docs/games/rust/connecting.md index 518c6ccfe..9e442fece 100644 --- a/docs/games/rust/connecting.md +++ b/docs/games/rust/connecting.md @@ -1,6 +1,6 @@ --- id: connecting -title: Connecting to Server +title: Connecting to a Server tags: - Connecting to a Rust Server hide_table_of_contents: true