# AGENTS Source: https://docs.purpify.host/AGENTS # Purpify documentation instructions ## About this project * This Mintlify site documents Purpify Minecraft hosting. * Purpify supports Minecraft Java Edition, native Bedrock Edition, modded servers, and Geyser cross-play. * The game panel is at `panel.purpify.host`. * The billing portal is at `payments.purpify.host`. * Pages are MDX files with YAML frontmatter. Navigation lives in `docs.json`. * Run `mint dev` to preview locally. * Run `mint broken-links`, `mint a11y`, and `mint validate` before publishing. ## Information architecture * **Get started**: edition choice, first server, shared reference, and help. * **Panel**: server creation, controls, console, files, SFTP, backups, and panel troubleshooting. * **Java Edition**: connection, server software, plugins, mods, modpacks, and Geyser. * **Bedrock Edition**: connection, Bedrock worlds, behavior packs, resource packs, and Bedrock troubleshooting. * **Billing**: services, invoices, payments, renewals, cancellations, and policy links. Put a topic in one canonical section. Cross-link it instead of duplicating the same procedure. ## Audience and outcomes * Write for server owners who may never have managed a game server. * Help readers complete one task or diagnose one symptom per page. * State prerequisites, edition, server software, and consequences before steps. * Identify whether instructions apply to Java, Bedrock, or Geyser. ## Terminology * Use "Purpify game panel" or "game panel" for `panel.purpify.host`. * Use "billing portal" for `payments.purpify.host`. * Use "server" for a hosted game-server instance. * Use "Minecraft Java Edition" or "Minecraft Bedrock Edition" on first mention. * Use "plugin" only for Java server plugins. * Use "mod" and "modpack" only for Java mod-loader content. * Use "add-on" for Bedrock behavior packs and resource packs. * Describe Geyser as Bedrock-to-Java cross-play, not as a native Bedrock server. * Use "server address" and "server port" as separate values. ## Style * Use active voice and second person ("you"). * Keep sentences concise and headings in sentence case. * Lead with the answer before background information. * Bold exact UI labels: Select **New Server**. * Use code formatting for files, commands, paths, settings, and exact values. * Define technical terms on first use. * Use specific nouns instead of ambiguous pronouns. * Add descriptive frontmatter, keywords, cross-links, and image alt text. ## Draft frames * Use `noindex: "true"` while a page contains unverified TODO sections. * Remove `noindex` only after the content is accurate enough for search and AI answers. * Mark unknown details with `{/* TODO: Verify the value or workflow. */}`. ## Accuracy and content boundaries * Never invent panel labels, URLs, ports, file limits, plan limits, defaults, supported versions, retention periods, or time estimates. * Link policy questions to the current Purpify policy instead of paraphrasing unverified terms. * Never publish passwords, tokens, private server addresses, invoices, or personal player data. * Do not mix Java plugins, Java mods, Bedrock add-ons, and Geyser extensions. # Enable Beta APIs Source: https://docs.purpify.host/bedrock/beta-apis Enable the Beta APIs experiment for a Purpify Minecraft Bedrock Edition world through World Manager or level.dat. Enable **Beta APIs** only when a Bedrock add-on requires experimental script APIs. You can use **World Manager** or edit the active world's `level.dat` file. ## Before you begin * Confirm that this is a native Minecraft Bedrock Edition server. * Check that the add-on specifically requires the **Beta APIs** experiment. * Stop the server before changing the world. * Create a [server backup](/server/backups). * Identify the active world before using the file method. Beta APIs can change or be removed in later Minecraft versions. After you enable an experiment for a world, you cannot return that world to a non-experimental state. Keep an untouched backup. ## Choose a method Open the server in the Purpify game panel, then go to **World Manager**. Find the world currently used by the server and select **Edit**. Go to **Experiments**, then enable **Beta APIs**. Save the world settings, restart the server, and watch the console for add-on or scripting errors. Open the file manager and go to `worlds/`, replacing `` with the folder used by the server. Select `level.dat` to open the world-data editor. Find the **Experiments** section and enable **Beta APIs**. Save the file. Restart the server and watch the console. Confirm that the add-on loads without a missing experiment or unsupported API error. Use World Manager when possible. The `level.dat` method is useful when you need to edit the active world directly. ## If Beta APIs does not work * Confirm that you edited the active world rather than another folder in `worlds`. * Stop the server before saving `level.dat`, then restart it after the change. * Confirm that **Beta APIs** remains enabled after reopening the world settings. * Check the add-on's `manifest.json` and installation instructions for its required Minecraft and script API versions. * Restore the backup if the world or add-on stops loading correctly. Install the behavior and resource packs that use the experiment. Learn how to edit and protect server files. # Change the Bedrock server difficulty Source: https://docs.purpify.host/bedrock/change-difficulty Set a Purpify Minecraft Bedrock Edition server to Peaceful, Easy, Normal, or Hard. Set the difficulty to `peaceful`, `easy`, `normal`, or `hard`. You can use the console, an in-game command, or `server.properties`. | Difficulty | Effect | | ---------- | ----------------------------------------------------------------- | | `peaceful` | Removes the normal hostile-mob survival threat. | | `easy` | Uses reduced hostile-mob damage and an easier survival challenge. | | `normal` | Uses the standard survival difficulty. | | `hard` | Uses stronger hostile-mob damage and a harder survival challenge. | ## Change difficulty with a command Start the server, open its console view, and enter `difficulty` without a leading `/`. ```text theme={"dark"} difficulty normal ``` Join as an [operator](/bedrock/operators), open chat, and enter the command with a leading `/`. ```text theme={"dark"} /difficulty normal ``` Replace `normal` with `peaceful`, `easy`, or `hard` when needed. ## Change difficulty in server.properties Stop the server before editing its configuration. Open the file manager and select `server.properties`. Set `difficulty` to one supported value. ```properties theme={"dark"} difficulty=normal ``` Save the file, start the server, and join to confirm the new difficulty. Review other settings stored in `server.properties`. # Connect to a Bedrock server Source: https://docs.purpify.host/bedrock/connect Add a Purpify Minecraft Bedrock Edition server with its server address and port. Add your Purpify server as an external server in Minecraft Bedrock Edition. You need the server address and port shown in the Purpify panel. ## Before you connect * Start the server and wait until the panel shows it as running. * Use a Minecraft version that is compatible with the server. * Copy the current address and port from the server management view. * Confirm that your device shows an **Add Server** option. If it does not, use TransferBot instead. ## Add the server Open your server in the Purpify panel. Copy its address and port from the server management view. In Minecraft Bedrock Edition, select **Play** > **Servers** > **Add Server** on a supported device. Enter any name in **Server Name**. Paste the Purpify address into **Server Address**, then enter the Purpify port in **Port**. Save the server entry and select it to connect. If Minecraft cannot connect, recopy both values from the panel and try again. ## Connect with TransferBot TransferBot is an optional connection method for friends or devices that cannot add an external server directly. Add a TransferBot for your Purpify server, then follow the video tutorial to connect. Follow Purpify's video guide to configure and use TransferBot. ## Connection errors Follow [Troubleshoot connection problems](/troubleshooting/cannot-connect) if the server appears offline or Minecraft cannot connect. Browse the main Bedrock Edition guides. Move a Bedrock world to your Purpify server. # Enable cheats on a Bedrock server Source: https://docs.purpify.host/bedrock/enable-cheats Enable cheat commands on a Purpify Minecraft Bedrock Edition server through server.properties. Set `allow-cheats=true` in `server.properties`, then restart the server. This setting allows commands that require cheats on a native Minecraft Bedrock Edition server. ## Enable cheats Stop the server before editing `server.properties` so the running process does not overwrite the change. Open the file manager and select `server.properties` in the server's main directory. Find `allow-cheats` and set its value to `true`. ```properties theme={"dark"} allow-cheats=true ``` Save the file, start the server, and watch the console for startup errors. To disable cheats later, set `allow-cheats=false`, save the file, and restart the server. Cheats allow authorized players to run commands that can change the world, player data, and server behavior. Grant [operator access](/bedrock/operators) only to people you trust. Change world mechanics after enabling cheats. Review other Bedrock server settings. # Set game rules on a Bedrock server Source: https://docs.purpify.host/bedrock/game-rules Change Minecraft Bedrock Edition game rules through the Purpify console or in-game chat. Use the `gamerule` command to change how the active Bedrock world behaves. Game rule names are case-sensitive. ## Before you begin * Start the server and wait until the world finishes loading. * [Enable cheats](/bedrock/enable-cheats) before changing game rules in Minecraft chat. * Join as an [operator](/bedrock/operators) when using the in-game method. * Create a [backup](/server/backups) before changing rules that could affect builds or player data. ## Set a game rule Open the server console and enter the command without a leading `/`. ```text theme={"dark"} gamerule keepinventory true ``` Open chat and enter the command with a leading `/`. ```text theme={"dark"} /gamerule keepinventory true ``` Use this format for another rule: ```text theme={"dark"} gamerule ``` ## Common Bedrock game rules | Rule | Value | What it controls | | --------------------------- | ----------------- | ---------------------------------------------------------- | | `keepinventory` | `true` or `false` | Whether players keep inventory and experience after death. | | `showcoordinates` | `true` or `false` | Whether coordinates appear on the player HUD. | | `mobgriefing` | `true` or `false` | Whether mobs can change blocks or pick up items. | | `domobspawning` | `true` or `false` | Whether mobs spawn naturally. | | `domobloot` | `true` or `false` | Whether mobs drop items and experience. | | `dodaylightcycle` | `true` or `false` | Whether time and moon phases advance. | | `doweathercycle` | `true` or `false` | Whether weather changes naturally. | | `playerssleepingpercentage` | Percentage | How many Overworld players must sleep to skip the night. | | `pvp` | `true` or `false` | Whether players can damage other players. | | `randomtickspeed` | Number | How frequently random block ticks occur. | | `tntexplodes` | `true` or `false` | Whether activated TNT explodes. | | `commandblocksenabled` | `true` or `false` | Whether command blocks can run. | ## Check a game rule Enter the rule without a value to display its current setting. ```text theme={"dark"} gamerule keepinventory ``` Learn how to enter commands and inspect console output. # Kick a Bedrock player Source: https://docs.purpify.host/bedrock/kick-player Disconnect a player from a native Minecraft Bedrock Edition server with the kick command. Use the `kick` command to disconnect a player from a native Minecraft Bedrock Edition server. Kicking a player does not permanently block that player. ## Before you begin * Start the server and wait until it finishes loading. * Confirm that the player is connected. * Use the player's exact Xbox Gamertag, including spaces and capitalization. * Put a Gamertag in quotation marks when it contains spaces, such as `"Example Player"`. ## Kick a player Open the server in the Purpify game panel, then open its console view. Find the player's exact Xbox Gamertag in the console. Enter `kick`, the player's Gamertag, and an optional reason. Do not add a leading `/` in the console. ```text theme={"dark"} kick "Example Player" "Please contact the server owner." ``` Check the console for the disconnect message. ## Prevent the player from reconnecting Kicking only ends the current connection. To prevent the player from reconnecting, [enable the allowlist and remove the player's Gamertag](/bedrock/whitelist). For Bedrock players joining through Geyser, use the Java server's player-management tools instead of this native Bedrock command. # Manage Bedrock players Source: https://docs.purpify.host/bedrock/manage-players Whitelist, kick, and grant operator access to players on a native Minecraft Bedrock Edition server. Use the Purpify game panel console to manage players on a native Minecraft Bedrock Edition server. Enter console commands without a leading `/`. For Bedrock players joining through Geyser, follow the Java server's player-management and permission procedures instead. Restrict your server to approved Xbox Gamertags. Grant or remove administrative command access. Disconnect a player from the server. Learn how to enter commands and review console output. # Manage Bedrock operators Source: https://docs.purpify.host/bedrock/operators Grant or remove operator access on a native Minecraft Bedrock Edition server. Grant operator access to let a player run administrative commands on a native Minecraft Bedrock Edition server. Operators can run commands that make major changes to the server and world. Grant operator access only to people you trust. ## Before you begin * Start the server and wait until it finishes loading. * Ask the player to join. The `op` command does not work for an offline player. * Use the player's exact Xbox Gamertag, including spaces and capitalization. * Put a Gamertag in quotation marks when it contains spaces, such as `"Example Player"`. * Confirm that this is a native Bedrock server. For Bedrock players joining through Geyser, use the Java server's permission system. ## Grant operator access Open the server in the Purpify game panel, then open its console view. Wait until the player's exact Xbox Gamertag appears in the console. Enter `op` followed by the player's exact Xbox Gamertag. Do not add a leading `/` in the console. ```text theme={"dark"} op "Example Player" ``` Ask the player to reconnect if the permission does not take effect immediately. The player can test a harmless command such as `/list` in Minecraft chat. ## Remove operator access Run `deop` followed by the player's exact Xbox Gamertag: ```text theme={"dark"} deop "Example Player" ``` An existing operator can run the same commands in Minecraft chat by adding a leading `/`. ## Fix common problems Confirm that the player is connected, then re-enter the exact Xbox Gamertag. Put the full Gamertag in quotation marks if it contains spaces. Confirm that the server is running native Minecraft Bedrock Edition. Enter commands without `/` in the game panel console and with `/` in Minecraft chat. Geyser provides Bedrock-to-Java cross-play. Manage the player with the Java server's operator or plugin permission system instead. # Minecraft Bedrock Edition Source: https://docs.purpify.host/bedrock/overview Set up and customize a native Purpify Minecraft Bedrock Edition server. Choose Bedrock Edition for a native Bedrock server with Bedrock worlds, behavior packs, and resource packs. Open game panel ## Bedrock guides Add the server address and port in Minecraft Bedrock Edition. Grant operator access, use the allowlist, and remove players. Allow commands that require cheats on the Bedrock server. Choose Peaceful, Easy, Normal, or Hard. Change world behavior with Bedrock game rules. Configure gameplay, players, networking, and scripting. Move an existing Bedrock world to Purpify. Generate a fresh world without resetting the complete server. Install behavior packs and resource packs. Enable experimental scripting APIs for an add-on that requires them. Erase the current installation and start again. Check status, version, address, port, and device support. Separate server, network, and client performance problems. Check packs, dependencies, experiments, and script errors. This section covers native Bedrock servers. To let Bedrock players join a Java server, use [Geyser cross-play](/java/geyser). # Completely reset a Bedrock server Source: https://docs.purpify.host/bedrock/reset-server Erase a Purpify Minecraft Bedrock Edition server installation and start again from the game panel. Use **Reset** in the server's **Settings** to erase the current installation and return the Bedrock server to a fresh state. A complete reset removes the current world, player data, add-ons, and configuration from the server. Download anything you want to keep before continuing. ## Before you reset * Confirm that you selected the correct Purpify server. * Download the current world and any configuration or add-on files you want to retain. * Create a [server backup](/server/backups) and keep an external copy of important data. * Tell connected players that the server will be reset. ## Reset the server Stop the server and wait until the console confirms that the process has ended. Open the server in the Purpify game panel and go to **Settings**. Find the reset section and select **Reset**. Read the displayed reset warning and confirm only if you no longer need the current server data. Wait for the reset to finish, then start the server. Watch the console and confirm that a new Bedrock world loads. If you only want a different world, follow [Upload an existing world](/server/upload-world) instead of resetting the complete server. Protect the current server before a destructive change. Diagnose startup errors after setting up the fresh server. # Reset a Bedrock world Source: https://docs.purpify.host/bedrock/reset-world Generate a fresh Minecraft Bedrock Edition world on Purpify without resetting the complete server installation. Reset only the active world when you want fresh terrain but want to keep the server installation and its other configuration. The safest method is to give the new world a different `level-name`. Resetting or deleting a world removes its builds, inventories, player locations, and world-specific data from active use. Download an external copy before continuing. ## Create a fresh world with a new name Create a [backup](/server/backups), download the current world if you need an external copy, then stop the server. Open the file manager and select `server.properties`. Change `level-name` to a folder name that does not already exist in `worlds`. ```properties theme={"dark"} level-name=Fresh Bedrock World ``` Save the file and start the server. Bedrock creates a new world using the new folder name. Join the server and confirm that fresh terrain loaded. Keep the old world folder until you know the new world works. ## Delete and regenerate the selected world Use this method only when you no longer need the current world folder. Open `server.properties` and note the exact `level-name` value. Stop the server and download the matching folder from `worlds` if you may need it later. Open `worlds`, select the folder matching `level-name`, and delete it. Do not delete a different world. Start the server. Bedrock generates a new world under the configured `level-name`. To erase the world, add-ons, configuration, and complete installation together, follow [Completely reset a Bedrock server](/bedrock/reset-server). Replace the active world with one you already have. Review the settings stored in `server.properties`. # Minecraft Bedrock server properties Source: https://docs.purpify.host/bedrock/server-properties Edit common Minecraft Bedrock Edition settings in server.properties on a Purpify server. The `server.properties` file controls gameplay, access, networking, performance, and scripting settings for a native Minecraft Bedrock Edition server. ## Edit server.properties Create a [server backup](/server/backups) before changing several settings or an unfamiliar advanced property. Stop the server so it does not overwrite the file while you edit it. Open the file manager and select `server.properties` in the server's main directory. Keep one property per line in `name=value` format. Use an accepted value and do not add spaces around `=`. ```properties theme={"dark"} difficulty=normal ``` Save the file, start the server, and watch the console for an invalid-value or configuration error. Do not change `server-port`, `server-portv6`, or other network fields unless Purpify instructs you to. The server must use its assigned network allocation. ## Gameplay and world properties | Property | Accepted value or purpose | | ---------------------- | ------------------------------------------------------------------------------- | | `allow-cheats` | `true` or `false`; allows commands that require cheats. | | `difficulty` | `peaceful`, `easy`, `normal`, or `hard`. | | `gamemode` | `survival`, `creative`, or `adventure` for new players. | | `force-gamemode` | `true` forces the configured game mode instead of the world's saved mode. | | `level-name` | Selects the world folder used by the server. | | `level-seed` | Sets the seed used when generating a world. | | `tick-distance` | Controls how many nearby chunks continue ticking. Supported range: `4` to `12`. | | `view-distance` | Limits the number of chunks sent around each player. | | `texturepack-required` | `true` requires players to accept the server resource pack. | ## Player and access properties | Property | Accepted value or purpose | | --------------------------------- | ------------------------------------------------------------------------------ | | `allow-list` | `true` restricts connections to players in `allowlist.json`. | | `default-player-permission-level` | `visitor`, `member`, or `operator`. | | `max-players` | A positive number limiting simultaneous players. | | `online-mode` | Controls Xbox Live authentication; keep enabled for an internet-facing server. | | `player-idle-timeout` | Minutes before an idle player is removed; `0` disables the timeout. | | `chat-restriction` | `None`, `Dropped`, or `Disabled`. | | `disable-custom-skins` | `true` blocks skins created outside Minecraft's provided assets. | | `disable-player-interaction` | `true` tells clients to ignore interactions involving other players. | ## Performance and networking properties | Property | Accepted value or purpose | | ------------------------------------------------- | ------------------------------------------------------------------------------- | | `server-name` | The name advertised by the Bedrock server; do not use a semicolon. | | `max-threads` | Maximum server threads; `0` allows all available threads. | | `compression-algorithm` | `zlib` or `snappy`. | | `compression-threshold` | Payload size at which network compression begins. | | `enable-lan-visibility` | Controls whether the server responds to LAN discovery. | | `client-side-chunk-generation-enabled` | Allows supported clients to generate visual chunks beyond interaction distance. | | `player-position-acceptance-threshold` | Controls tolerance for client and server position differences. | | `server-authoritative-movement-strict` | Enables stricter correction of player movement differences. | | `server-authoritative-entity-interactions-strict` | Enables stricter validation of entity interactions. | | `server-authoritative-dismount-strict` | Enables stricter validation of dismount positions. | ## Scripting and diagnostics properties | Property | Accepted value or purpose | | --------------------------------- | ------------------------------------------------------------------ | | `content-log-file-enabled` | Writes content errors to a log file when enabled. | | `allow-inbound-script-debugging` | Allows the script debugger to listen for a connection. | | `allow-outbound-script-debugging` | Allows the script debugger to connect outward. | | `script-debugger-auto-attach` | `disabled`, `connect`, or `listen`. | | `script-debugger-passcode` | Passcode used by a permitted debugger connection. Keep it private. | | `script-watchdog-enable` | Enables monitoring for scripts that hang or exceed limits. | | `script-watchdog-memory-limit` | Script memory limit in megabytes; `0` disables the limit. | | `script-watchdog-memory-warning` | Combined script memory usage that produces a warning. | Leave advanced debugging, movement-validation, compression, and watchdog settings unchanged unless an add-on author or Purpify support gives you a specific value. ## Common configuration tasks Set `allow-cheats` safely and restart the server. Choose Peaceful, Easy, Normal, or Hard. Restrict the server to approved Xbox Gamertags. Edit configuration files and keep safe copies. # Whitelist Bedrock players Source: https://docs.purpify.host/bedrock/whitelist Restrict a native Minecraft Bedrock Edition server to approved Xbox Gamertags. Use the allowlist to restrict a native Minecraft Bedrock Edition server to approved Xbox Gamertags. Minecraft Bedrock Edition uses the term `allowlist`, although it also accepts `whitelist` as a command alias. Add yourself before enabling the allowlist. Otherwise, you may be unable to reconnect until you add yourself through the Purpify game panel console. ## Before you begin * Start the server and wait until it finishes loading. * Use each player's exact Xbox Gamertag, including spaces and capitalization. * Put a Gamertag in quotation marks when it contains spaces, such as `"Example Player"`. * Confirm that this is a native Bedrock server. For Bedrock players joining through Geyser, use the Java server's allowlist or permission system. ## Enable the allowlist Open the game panel console and add each player's exact Xbox Gamertag. Enter console commands without a leading `/`. ```text theme={"dark"} allowlist add "Example Player" ``` Stop the server before editing `server.properties` so the running process does not overwrite your change. Open the file manager, edit `server.properties`, and set `allow-list` to `true`. Save the file. ```properties theme={"dark"} allow-list=true ``` Start the server and watch the console for startup errors. List the allowlisted players and confirm that the expected Gamertags appear. ```text theme={"dark"} allowlist list ``` ## Manage the allowlist | Task | Method | | ---------------------------------------- | ------------------------------------------------------------------------------------- | | Add a player | `allowlist add "Example Player"` | | Remove a player | `allowlist remove "Example Player"` | | List approved players | `allowlist list` | | Reload `allowlist.json` after editing it | `allowlist reload` | | Disable the allowlist | Set `allow-list=false` in `server.properties`, save the file, and restart the server. | Removing a player from the allowlist prevents the next connection attempt. If the player is already connected, [kick the player](/bedrock/kick-player) as well. ## Fix common problems Run `allowlist list` and compare the Gamertag exactly. Add the player again if needed, then run `allowlist reload`. Confirm that the server is running native Minecraft Bedrock Edition. Enter commands without `/` in the game panel console and with `/` in Minecraft chat. Geyser provides Bedrock-to-Java cross-play. Manage the player with the Java server's allowlist or plugin permission system instead of this native Bedrock procedure. # Cancel a service Source: https://docs.purpify.host/billing/cancellations Cancel a Purpify hosting service immediately or at the end of its billing cycle. Back up any server data you want to keep before requesting cancellation.
Open services
**Cancel immediately** can end access to the service now. Download or back up required files before selecting it. ## Cancel a service Sign in at [payments.purpify.host/services](https://payments.purpify.host/services/). Open the service you want to cancel. Check the service name before continuing. Select **Cancel Immediately** to cancel now, or **Cancel at End of Billing Cycle** to keep the service until the current billing cycle ends. Review the selected cancellation timing, then confirm the request. ## Which option should you choose? | Option | Use it when | | ---------------------------------- | ----------------------------------------------------------------------------- | | **Cancel Immediately** | You want the service cancelled now and have already saved the files you need. | | **Cancel at End of Billing Cycle** | You want to keep using the service for the rest of the current billing cycle. | ## Refunds Cancellation does not automatically confirm refund eligibility. Follow [Request a refund](/billing/refunds) to read the current policy and open a support ticket if your payment qualifies. # Discounts Source: https://docs.purpify.host/billing/discounts Find out where Purpify announces seasonal and special-occasion discounts. Purpify often runs seasonal discounts and offers for special occasions. We announce every available discount in the **announcements** channel of the [Purpify Discord](https://discord.gg/purpify).
Join the Purpify Discord
If no discount is currently announced, watch the **announcements** channel for the next offer. # Invoices and payments Source: https://docs.purpify.host/billing/invoices Open and pay your latest Purpify invoice from the billing portal. Your Purpify invoices are available on the billing portal's invoice page.
Open invoices
## Pay your latest invoice Sign in at [payments.purpify.host/invoices](https://payments.purpify.host/invoices). Open the newest invoice that still requires payment. Confirm the service, total, and invoice details before continuing. Use the payment action shown on the invoice and complete the requested payment steps. Return to the invoice page and confirm that its status has updated. Do not pay an invoice if the service or total is not what you expected. Contact Purpify support before continuing. # Upgrade or downgrade a service Source: https://docs.purpify.host/billing/manage-service Upgrade or downgrade an active Purpify hosting service from the billing dashboard. Use the Purpify billing dashboard to change the plan for an active hosting service.
Open billing dashboard
## Upgrade or downgrade Sign in at [payments.purpify.host/dashboard](https://payments.purpify.host/dashboard). Select **Active Services** from the dashboard. Find the service you want to change, then select **Upgrade**. Use this action for both upgrades and downgrades. Select the upgrade or downgrade you want. Review the displayed plan and payment details before confirming the change. The billing portal shows the available changes for the selected service. ## Cancel instead To stop a service instead of changing its plan, follow [Cancel a service](/billing/cancellations). # Billing overview Source: https://docs.purpify.host/billing/overview Use the Purpify billing portal to manage services, invoices, payment details, renewals, and cancellations. Purpify billing is managed separately from the game panel. Use the billing portal for services and payments; use the game panel for server files and runtime controls.
Open billing dashboard Open game panel
## Billing guides Learn how long setup can take and when to contact support. Find seasonal and special-occasion offers in the Purpify Discord. Open an active service and upgrade or downgrade it. Open your invoices and pay the latest invoice. Cancel immediately or at the end of the billing cycle. Check the current policy and open a support ticket. Back up server data before a service expires or is cancelled. Billing cancellation and server-data deletion may follow different timelines. # Service provisioning Source: https://docs.purpify.host/billing/provisioning Learn how long Purpify service provisioning can take and what to do if it takes more than eight hours. Purpify normally provisions a new service in under five minutes. In certain circumstances, provisioning may take up to eight hours. You do not need to take any action while the service is provisioning. Check the billing portal for updates.
Open the billing portal
If your service has not been provisioned after eight hours, contact Purpify support immediately through the billing portal. The support team will create the service and compensate you for the delay. # Request a refund Source: https://docs.purpify.host/billing/refunds Check the Purpify refund policy and open a support ticket when your payment meets its requirements. Read the current refund policy before submitting a request. If your payment fits the policy, open a support ticket through the Purpify website.
Read the refund policy Open the Purpify website
## Request a refund Check the [current refund policy](https://purpify.host/refund-policy) for eligibility, exclusions, and any requirements that apply to your payment. Compare your purchase and reason for requesting a refund with the current policy. Do not assume that cancelling a service automatically creates a refund. Go to the [Purpify website](https://purpify.host) and open a support ticket. Submit the ticket from the account connected to the purchase when possible. Provide the service name, invoice number, payment date, and a concise explanation of why you are requesting the refund. Never include your password, full card number, bank credentials, or authentication codes in a support ticket. Submitting a ticket does not guarantee approval. Purpify reviews each request against the refund policy that applies to the payment. # Purpify documentation Source: https://docs.purpify.host/index Set up and manage Purpify Minecraft Java and Bedrock servers, Geyser cross-play, the game panel, and billing.
Java, Bedrock, and Geyser

Everything you need to run your Minecraft server.

Learn the Purpify panel, connect your players, customize your server, and manage your service.
Get started Open game panel

Documentation

Browse by topic

Start with the area that matches what you want to do.

01 Use the panel Create servers, use the console, manage files, control power, and make backups. 02 Java Edition Choose server software, connect, and install plugins, mods, or Geyser. 03 Bedrock Edition Connect to Bedrock servers, upload worlds, and install add-ons. 04 Billing Manage services, invoices, payments, upgrades, and cancellations.
?
Need a person? Ask the Purpify community and support team when the docs do not contain the answer.
Join Discord
# Common Java server commands Source: https://docs.purpify.host/java/admin-commands Use common Minecraft Java Edition administration commands from the Purpify console or in-game chat. Run commands without `/` in the Purpify game panel console. In Minecraft chat, add `/` and use an account with sufficient [operator access](/java/manage-players). ## Player and world commands | Task | Console command | | ----------------------------------- | ------------------------------------ | | Change a player's game mode | `gamemode MODE PLAYER` | | Teleport a player to another player | `teleport PLAYER DESTINATION_PLAYER` | | Teleport a player to coordinates | `teleport PLAYER X Y Z` | | Give an item | `give PLAYER ITEM [AMOUNT]` | | Clear a player's inventory | `clear PLAYER` | | Set the default game mode | `defaultgamemode MODE` | | Change the difficulty | `difficulty DIFFICULTY` | | Save the world immediately | `save-all` | Replace the uppercase placeholders with real values. Valid modes are `survival`, `creative`, `adventure`, and `spectator`. Valid difficulties are `peaceful`, `easy`, `normal`, and `hard`. Player names containing spaces are not valid Java Edition usernames. ## Set the world spawn Stand at the intended location and run this in Minecraft chat: ```text theme={"dark"} /setworldspawn ``` From the console, provide coordinates and an optional dimension: ```text theme={"dark"} execute in minecraft:overworld run setworldspawn ``` The individual respawn point created by a bed, respawn anchor, or `spawnpoint` is separate from the world spawn. ## Target selectors Use selectors carefully because a command can affect many players. | Selector | Target | | -------- | ------------------------------------------------------------------------------------------- | | `@a` | All players | | `@p` | Nearest player to the command source | | `@r` | Random player | | `@s` | The entity running the command; behavior from the console may differ from an in-game player | Test destructive commands on a backup or a limited target first. Commands such as `clear`, `kill`, and large `fill` operations can cause irreversible changes. # Change the Java server difficulty Source: https://docs.purpify.host/java/change-difficulty Set a Purpify Minecraft Java Edition server to Peaceful, Easy, Normal, or Hard. Choose `peaceful`, `easy`, `normal`, or `hard`. Use `server.properties` when the setting must persist after a restart. ## Change difficulty temporarily Start the server and enter the command without `/`. ```text theme={"dark"} difficulty normal ``` Join as an [operator](/java/manage-players) and include `/`. ```text theme={"dark"} /difficulty normal ``` Replace `normal` with `peaceful`, `easy`, or `hard`. A command-based change can revert when the server restarts. ## Make the difficulty persistent Stop the server before editing its configuration. Open the file manager and select `server.properties`. Enter one supported value. ```properties theme={"dark"} difficulty=normal ``` Save the file and start the server. Run `difficulty` in the console to confirm the active value. Review other persistent Java server settings. # Enable and obtain Java command blocks Source: https://docs.purpify.host/java/command-blocks Enable command blocks and give one to an operator on a Purpify Minecraft Java Edition server. Command blocks run server commands from the world. Only trusted operators should create or edit them. ## Enable command blocks Stop the Java server before editing its world settings. Open the server in the Purpify game panel and go to **World Manager**. Find the world currently used by the server and select **Edit**. Go to **Game Rules** and enable command blocks. Save the change and start the server again. Stop the server, open `server.properties`, and set: ```properties theme={"dark"} enable-command-block=true ``` Save the file and restart the server. ## Give an operator a command block Run this in the panel console: ```text theme={"dark"} give ExactJavaUsername minecraft:command_block ``` Or join with [operator access](/java/manage-players) and run: ```text theme={"dark"} /give ExactJavaUsername minecraft:command_block ``` On clients with an **Operator Items Tab** option, enable it under controls, switch to Creative mode, and use the Operator Utilities inventory tab. A repeating or chained command block can change large areas or run commands continuously. Create a backup before testing command-block automation. Configure command blocks and other world mechanics. Control who can use administrative commands. # Connect to a Java server Source: https://docs.purpify.host/java/connect Add a Purpify Minecraft Java Edition server in Multiplayer using its address or an optional subdomain. Copy the connection address from the Purpify game panel, then add it in the Minecraft Java Edition **Multiplayer** menu. ## Before you connect Confirm that: * The server status is running. * Your Minecraft client uses a version supported by the server. * You installed any mods required by the server. * You are on the allowlist when the server uses one. ## Add the server Sign in at [panel.purpify.host](https://panel.purpify.host), open the server, and copy its connection address. If the panel shows the address and port separately, enter them together as `address:port`. In Minecraft Java Edition, select **Multiplayer** > **Add Server**. Enter any name in **Server Name**. Paste the Purpify connection address into **Server Address**. Select **Done**, choose the server from the list, and select **Join Server**. The connection works when the server opens and you reach its world or configured login area. ## Add an optional subdomain A subdomain gives players a named address they can use instead of the default server address. Manage the server in the Purpify game panel and go to **Network**. Add a subdomain for the server and choose the available name you want. Copy the complete subdomain shown in **Network**. Paste the subdomain into Minecraft's **Server Address** field, save the entry, and join. ## Fix connection problems Confirm that the Purpify panel shows the server as running. Copy the address again and check that the port is present when required. Open **Versions** in the Purpify panel and check the server's Minecraft version. Launch a compatible Java client version. Install the same required mod loader, mod versions, and dependencies used by the server. Add the player's exact, case-sensitive Java username to the whitelist. Follow [Manage Java players](/java/manage-players) for the console commands and access warning. Copy the subdomain again from **Network** and test the default Purpify address. If the default address works, check the subdomain configuration in the panel. # Connect a custom domain to a Java server Source: https://docs.purpify.host/java/custom-domain Point play.example.com to a Purpify Minecraft Java Edition server with DNS address and SRV records. Use an address record for the server IP and an SRV record when players must be sent to a non-default server port. After DNS is configured, Java players can connect with an address such as `play.example.com`. This guide applies to Minecraft Java Edition. Native Bedrock clients do not all resolve Minecraft SRV records consistently, so Bedrock players may still need the Purpify server address and server port. ## Address and port are separate | Value | Example | Purpose | | -------------- | ------------------ | ------------------------------------------------- | | Server address | `203.0.113.20` | Identifies the server on the network. | | Server port | `25570` | Identifies the Minecraft service on that address. | | Custom domain | `play.example.com` | Gives players a memorable name to enter. | An `A` record maps a hostname to an IPv4 address. It does not carry a port. An SRV record tells compatible clients which hostname and port provide a service. Use the address and port assigned in the Purpify game panel. Do not change `server-ip` or `server-port` in `server.properties` to match your domain. ## Configure a server on the default port When the Purpify allocation uses the standard Java port, create an address record: | DNS field | Example value | | ---------------- | ----------------------------------------- | | Type | `A` | | Name or host | `play` | | Value or content | `203.0.113.20` | | TTL | Automatic or your provider's normal value | Replace the example IP with the address assigned to your server. Players then connect with `play.example.com`. ## Configure a server with a custom port First create a hostname for the server address: | DNS field | Example value | | ---------------- | -------------- | | Type | `A` | | Name or host | `mc-origin` | | Value or content | `203.0.113.20` | Then create the Minecraft Java SRV record: | DNS field | Example value | | --------- | ----------------------- | | Type | `SRV` | | Service | `_minecraft` | | Protocol | `_tcp` | | Name | `play` | | Priority | `0` | | Weight | `0` | | Port | `25570` | | Target | `mc-origin.example.com` | Some DNS providers combine the service, protocol, and name into `_minecraft._tcp.play`. Replace the example address and port with the Purpify values. If your DNS provider offers an HTTP proxy, CDN, or orange-cloud style proxy, keep the Minecraft record DNS-only unless that provider explicitly supports proxying Minecraft traffic. ## Test and troubleshoot 1. Confirm that the server works with its direct Purpify address and port. 2. Save the DNS records and wait for DNS caches to update. 3. Test `play.example.com` from Minecraft Java Edition. 4. If it fails, confirm the SRV name, target, assigned port, and address record. 5. Make sure the SRV target is a hostname with its own address record and does not end at an unconfigured name. If you move the server later, update the address and SRV records only after the new server works directly. # Install Java datapacks Source: https://docs.purpify.host/java/datapacks Install, verify, update, and remove datapacks from a Minecraft Java Edition world on Purpify. Install a datapack in the active world's `datapacks` folder. Datapacks change Java Edition gameplay through functions, recipes, loot tables, advancements, and other data-driven features. ## Install a datapack Confirm that the datapack supports the server's Minecraft version and read its installation notes. Create a [backup](/server/backups) before adding world-generation or gameplay changes. Stop the server and check `level-name` in `server.properties`. Open that world folder, then open `datapacks`. Upload the datapack `.zip` or its extracted folder. Do not add an extra wrapper folder: the datapack's `pack.mcmeta` must be at the top level of the ZIP or folder. Start the server and run this in the game panel console: ```text theme={"dark"} datapack list ``` Check the console for an incompatible pack format or validation error. ## Update or remove a datapack Stop the server before replacing or removing the datapack. Back up the world first, especially when the pack creates dimensions, structures, scoreboards, or persistent data. Start the server and use `datapack list` again to confirm the result. Removing a datapack does not necessarily undo changes it already made to the world. Follow the datapack author's uninstall instructions when provided. # Create a flat Java world Source: https://docs.purpify.host/java/flat-world Configure a Purpify Minecraft Java Edition server to generate a new Superflat world. Set `level-type=minecraft:flat`, then generate a new world. This setting does not flatten chunks that already exist. Create a [server backup](/server/backups). A fresh flat world does not contain the builds or player progress from the current world. Wait for a clean shutdown before editing files. Open `server.properties` and set: ```properties theme={"dark"} level-type=minecraft:flat ``` Follow [Reset a Java world](/java/reset-world), then start the server. The setting applies when the new world generates. Join the server and confirm that new terrain uses the flat preset. To return to standard terrain, set `level-type=minecraft:normal` and generate another fresh world. Changing the property alone does not rebuild existing chunks. # Allow flying on a Java server Source: https://docs.purpify.host/java/flying Prevent legitimate flying players from being disconnected from a Purpify Minecraft Java Edition server. Set `allow-flight=true` when a plugin, mod, or game mode lets players fly. This property permits flight checks; it does not grant players the ability to fly. Wait for a clean shutdown before editing the configuration. Open `server.properties` and set: ```properties theme={"dark"} allow-flight=true ``` Start the server and test with the plugin, mod, or game mode that provides flight. Creative and Spectator mode provide their own flying controls. Survival flight normally requires a compatible plugin or mod and the required player permission. Set `allow-flight=false` to restore the normal flight check. Players using legitimate flight from a plugin or mod may then be disconnected. # Set game rules on a Java server Source: https://docs.purpify.host/java/game-rules Change Minecraft Java Edition game rules through World Manager, the Purpify console, or in-game chat. Use `gamerule` to change world mechanics without restarting the Java server. Game rule names are case-sensitive. ## Change game rules in World Manager Stop the Java server before editing its world settings. Open the server in the Purpify game panel and go to **World Manager**. Find the world currently used by the server and select **Edit**. Go to **Game Rules** and change the rules you need. Save the world settings, start the server, and confirm the new behavior in-game. ## Set a game rule with a command Start the server, open its console view, and enter the command without `/`. ```text theme={"dark"} gamerule keepInventory true ``` Join as an [operator](/java/manage-players), open chat, and include `/`. ```text theme={"dark"} /gamerule keepInventory true ``` Use this format for another rule: ```text theme={"dark"} gamerule ``` ## Common Java game rules | Rule | Value | What it controls | | --------------------------- | ----------------- | ------------------------------------------------------------ | | `keepInventory` | `true` or `false` | Whether players retain inventory and experience after death. | | `mobGriefing` | `true` or `false` | Whether mobs can change blocks or collect items. | | `doFireTick` | `true` or `false` | Whether fire spreads and extinguishes naturally. | | `playersSleepingPercentage` | Percentage | Players required to sleep before skipping the night. | | `randomTickSpeed` | Number | Frequency of random block ticks. | | `doMobSpawning` | `true` or `false` | Whether mobs spawn naturally. | | `doDaylightCycle` | `true` or `false` | Whether time and moon phases advance. | | `doWeatherCycle` | `true` or `false` | Whether weather changes naturally. | | `showDeathMessages` | `true` or `false` | Whether death messages appear in chat. | | `commandBlockOutput` | `true` or `false` | Whether command-block output is sent to operators. | ## Check the current value Enter a rule without a value: ```text theme={"dark"} gamerule keepInventory ``` Grant the operator access required for in-game administration. # Set up Geyser cross-play Source: https://docs.purpify.host/java/geyser Install Geyser on a Purpify Java server so Minecraft Bedrock players can connect. Install Geyser as a plugin on a compatible Java server, start the server once to generate its files, then add a port and update the Geyser configuration. This guide covers the normal plugin installation for compatible Java server software. Modded servers and proxy networks use different Geyser files and locations. ## How cross-play works Geyser accepts connections from Minecraft Bedrock Edition and translates them for the Java server. Java players continue using the normal Java address. Bedrock players use the server address and the port configured for Geyser. Geyser does not convert Java worlds, plugins, or mods into native Bedrock formats. ## Before you begin You need: * A running Purpify Minecraft Java server with plugin-compatible software * Access to the plugin installer or `/plugins` folder * Permission to add an allocation in the Purpify game panel * A server backup Give Geyser its own allocation. Do not reuse a port assigned to another server feature. ## Install and configure Geyser Use Purpify's plugin installer to install Geyser. For a manual installation, download `Geyser-Spigot.jar` from [GeyserMC](https://geysermc.org/download) and upload it to `/plugins`. Start the server and wait until startup completes. Geyser creates its configuration files during this start. Stop the server normally before editing the Geyser configuration. Go to **Network** in the server management view and select **Add Allocation**. Copy the new port number. Open `/plugins/Geyser-Spigot/config.yml` in the Purpify file manager. Find the `bedrock` section. Paste the port from **Network** after `port:`. ```yaml Geyser config theme={"dark"} bedrock: # The IP address that Geyser will bind on to listen for incoming Bedrock connections. # Generally, you should only change this if you want to limit what IPs can connect to your server. address: 0.0.0.0 # The port that will Geyser will listen on for incoming Bedrock connections. # Since Minecraft: Bedrock Edition uses UDP, this port must allow UDP traffic. port: # Some hosting services change your Java port everytime you start the server and require the same port to be used for Bedrock. # This option makes the Bedrock port the same as the Java port every time you start the server. clone-remote-port: false ``` For example, if **Add Allocation** gives you port `19150`, change the line to `port: 19150`. Save the file and start the server. Check the console for Geyser errors, then connect from Bedrock using the server address and the configured port. Cross-play works when Java players can connect normally and a Bedrock player can join through the Geyser port. ## Add Floodgate Floodgate lets Bedrock players join without signing in with a paid Java Edition account. Download the Floodgate plugin for Spigot from [GeyserMC](https://geysermc.org/download), then upload the Floodgate `.jar` to `/plugins`. Start the server once, wait for startup to complete, then stop it. Open `/plugins/Geyser-Spigot/config.yml`. Near the top of the file, find the `java` section directly below the `bedrock` section. Change `auth-type` from `online` to `floodgate`. ```yaml Geyser authentication theme={"dark"} java: # What type of authentication Bedrock players will be checked against when logging into the Java server. # Can be "floodgate", "online", or "offline". auth-type: floodgate ``` Start the server and connect with a Bedrock account. Never share Floodgate's `key.pem` file. Anyone with this key may be able to bypass the intended Java authentication path. ## Test the Geyser port Run this command in the server console with your public server address and configured Bedrock port: ```text theme={"dark"} geyser connectiontest ``` The connection test helps determine whether the Geyser port is reachable from outside the server. ## Troubleshoot cross-play Confirm that the server is running, Geyser enabled successfully, and the Bedrock client uses the exact port from `config.yml`. Check that another service is not using the same allocation. Go to **Network** and confirm that `port` contains the number created through **Add Allocation**. Check that `clone-remote-port` has not overwritten it. Copy the first relevant Geyser error from the console when contacting support. Confirm that the Floodgate `.jar` is in `/plugins`. In `/plugins/Geyser-Spigot/config.yml`, find the top-level `java` section and set `auth-type: floodgate`, then restart the server. Update Geyser and verify that the Java server version is supported. Some older Java server versions also require a compatible ViaVersion installation. Geyser only supports server-side Java mods. Mods that require installation on the Java client cannot be translated for a Bedrock client. ## Detailed video guide Watch the complete walkthrough when you want to follow the setup visually.