# Index


# Server Specifications

## Budget EU | AMD Ryzen 5 3600

* **Locations:** Helsinki, Finland or Falkenstein, Germany
* **CPU:** AMD Ryzen 5 3600 **(6 Cores / 12 Threads)**
* **RAM:** 64GB DDR4 ECC
* **Disk:** NVMe SSD Storage
* **Network:** 1GBit/s Connection

## Premium US | AMD Ryzen 3900X

* **Locations:** Ogden, Utah
* **CPU:** AMD Ryzen 9 3900X **(12 Cores / 24 Threads)**
* **RAM:** 64GB DDR4 ECC
* **Disk:** NVMe SSD Storage
* **Network:** 1GBit/s Connection

## Premium EU | Intel i9-9900k

* **Location:** Helsinki, Finland or Falkenstein, Germany
* **CPU:** Intel i9-9900k **(8 Cores / 16 Threads)**
* **RAM:** 64GB DDR4 ECC
* **Disk:** NVMe SSD Storage
* **Network:** 1GBit/s Connection


# How to access your server files over FTP

Our panel allows you to access files to your server directly but in some instances FTP may be necessary or preferred, this article will go over the details on how to connect to your server via FTP.

## Step 1. Installing an FTP client:

To start, you will need an FTP program in order to connect to your server. Some recommendations are:

* FileZilla Download (Windows, Mac): <https://filezilla-project.org/download.php>
* WinSCP Download (Windows only): <https://winscp.net/download.php>

## Step 2. Retrieving your FTP login details:

* You will first need to log into our panel via [https://panel.phoenixnodes.com](https://panel.phoenixnodes.com/)
* You will then need to navigate to your server.
* After you are on the page where the console for the server is visible, there will be a navigation link named "SFTP Settings".
* You will then use the "Connection Address" and "Username" from this page to login via FTP.

## Step 3. Logging in with FileZilla:

{% hint style="info" %}
Please go to step 4 if you are using WinSCP.
{% endhint %}

Start off by opening up FileZilla.

* You will be able to see a bar at the top for Quick Connections.
* In the "Host" field, please enter the "Connection Address" from the game panel.
* In the "Username" field, enter the "Username" from the game panel.
* In the "Password" field, enter the same password you use to log into the game panel.
* If it wasn't already updated, please change the port to 2028.
* Click the "Save" button and then the "Login" button.
* You may now access all of your server files from FileZilla!

## Step 4. Logging in with WinSCP:

{% hint style="info" %}
Please go back to step 3 if you are using FileZilla.
{% endhint %}

Start off by opening up WinSCP.

* Click on the button labeled "New Site".
* Set the "File Protocol" to "SFTP".
* In the "Host Name" field, please enter the "Connection Address" from the game panel.
* If it wasn't automatically changed, please change the port number to 2028.
* In the "Username" field, enter the "Username" from the game panel.
* In the "Password" field, enter the same password you use to log into the game panel.
* Click the "Save" button and then the "Login" button.
* You may now access all of your server files from WinSCP!


# How to install plugins on your server

## Step 1: Downloading plugins

Download your desired plugins from [Spigot](https://www.spigotmc.org/resources/categories/spigot.4/). Spigot is one of the largest and most reliable plugin repositories available. Alternatively, you can use [BukkitDev](https://dev.bukkit.org/bukkit-plugins), which works for Spigot servers as well.

{% hint style="info" %}
Plugins need to be in .jar format to work on your server, if the file you download from Spigot or BukkitDev is a .zip, you will need to extract the file(s) before proceeding.
{% endhint %}

## Step 2: Navigating to your server

Visit our [Game Panel](https://panel.phoenixnodes.com) and select the server you would like to add plugins to.

## Step 3: Accessing the web file manager

On the Game Panel, select "File Management" from the left navigation menu. Once you are on the "File Management" page navigate to the "plugins" folder.

{% hint style="info" %}
Plugins can also be uploaded via [FTP](/basic-server-guides/how-to-access-your-server-files-over-ftp).
{% endhint %}

## Step 4: Uploading your plugins

From the "File Management" page in the "plugins" folder, you will see a button labeled "Upload". Click the "Upload" button and select the plugin you would like to install on your server.

## Step 5: Restarting your server

Once you have completed uploading all of the plugin files, please navigate back to the "Console" from the left navigation menu. From the "Console" page you will need to select the "Restart" button for your server.

## Step 6: Verify your plugins have been installed correctly

Once your server has completely restarted, you may now run the command or`plugins` in the console or `/plugins` in-game to view a list of plugins installed on your server.


# How to install a modpack on your server

## Step 1: Finding Modpacks

Most modpacks can be found on the [CurseForge](https://www.curseforge.com/minecraft/modpacks) website.

* Scroll through the list and find the modpack you would like to download and click on it.
* Once you are on the modpack page, click on the "Files" tab.
* On the "Files" tab you will find the modpack files for both your client and your server.
* Please download the "Server Files" version of your modpack.
* Once you have your modpack .zip file, you need to right click on it and "Extract" it to a folder.

## Step 2: Preparing your modpack

Modpacks may come in various states of completion. We will go over the most common states and how to prepare them to deploy on your server.

**Ready To Play:** Modpacks that do not contain any install scripts and already have the Forge/FTB server .jar files included. The only preparation necessary is to rename either the `forge_xxxxx_universal.jar` or `FTBServer_xxxx.jar` to `server.jar`. Once you have renamed the files, you can proceed to Step 3.

**Ready To Install:** Modpacks that contain install scripts and need to be run on your computer before being uploaded to the Game Panel. This will require you to run the `Install.bat` or `Install.sh` files depending on your operating system. Once the install script has completed you will need to rename either the `forge_xxxxx_universal.jar` or `FTBServer_xxxx.jar` to `server.jar`. Once you have renamed the files, you can proceed to Step 3.

**Base Modpack:** Modpacks that do not include any install scripts but also do not include any Forge/FTB server .jar files. This will require you to download the Forge installer from the [Forge](http://files.minecraftforge.net/) website. From the Forge website you will need to find the Minecraft version of your modpack and download the "Installer". Once it has downloaded, open the installer and select "Install Server". You will then need to change the Installer directory to the folder where your modpack is located, this will display an error but continue with the installation and press "OK". Once complete you will need to rename either the `forge_xxxxx_universal.jar` or `FTBServer_xxxx.jar` to `server.jar`. Once you have renamed the files, you can proceed to Step 3.

{% hint style="info" %}
Your server will need to be stopped in the [Game Panel](https://panel.phoenixnodes.com) before continuing to the following steps.
{% endhint %}

## Step 3: Uploading your files

{% hint style="info" %}
This guide explains how to install your modpack using FTP, you may follow our [FTP guide](/basic-server-guides/how-to-access-your-server-files-over-ftp) if necessary before proceeding.
{% endhint %}

Once you have connected to your server via FTP you will need to highlight any existing files on your server and delete them. You may now highlight all of the files in your modpack folder and drag them into the FTP program you are using to begin uploading your files to your server.

## Step 4: Starting your server

Once all of your files have completed installing you may now proceed to the [Game Panel](https://panel.phoenixnodes.com) and navigate to your server. Once you are on the "Console" page you can click the "Start" button to start your server. You may now connect to your server with your modpack!

{% hint style="info" %}
Most modpacks will have errors during startup. These errors are normal and unavoidable, they can be ignored.
{% endhint %}


# How to create a subdomain for your server

## Step 1: Navigate to the Game Panel Subdomain Manager

* Navigate to our [Game Panel](https://panel.phoenixnodes.com) and select your server.
* From the "Console" page, select the "Subdomain Manager" link from the left navigation menu.

## Step 2: Create your subdomain

On the "Subdomain Manager" page, you will be able to enter your preferred subdomain. Once you have done that, click the "Create" button. Your server should now be accessible from the subdomain you have just created.

{% hint style="info" %}
Once you have created the subdomain, it make take up to 24 hours for the subdomain to propagate on the network.
{% endhint %}


# Optimizing your server

## 1. Use Paper

* [Paper](https://papermc.io/) is a high-performance fork of Spigot that adds extra features while also increasing server performance. You can find more information about it [here](https://paper.readthedocs.io/en/latest/about/faq.html).
* Paper also tends to fix bugs that come out after initial releases of Spigot for the latest versions of Minecraft. A good example would be the [0-tick farm bug](https://bugs.mojang.com/browse/MC-113809) that existed for a long time, and for the people who didn't want 0-tick farms in specific to be patched, they added it as an [option](https://github.com/PaperMC/Paper/issues/2634) in the `paper.yml` config!
* Paper has better API support for plugin developers, which means it has more support for plugin creators and more features that can be utilized in their plugins.
* Another reason to get Paper is thanks to their asynchronous chunk loading and generation. This means fast traveling methods won't lag your server as hard and chunk loading becomes much faster in general!

## 2. Customize your server configurations

Now we will start with getting the server optimized manually. It's relatively easy to learn!\
We will start by configuring `server.properties` - Keep in mind that this guide only covers certain options, it's encouraged to take a look at everything and customize it to your liking!

### server.properties

```
broadcast-rcon-to-ops=true
view-distance=8
max-build-height=256
server-ip=0.0.0.0
rcon.port=25575
level-seed=
allow-nether=true
gamemode=survival
enable-command-block=true
server-port=25565
enable-rcon=false
server-name=ExampleName
enable-query=false
op-permission-level=5
prevent-proxy-connections=false
generator-settings=
resource-pack=
player-idle-timeout=0
level-name=world
rcon.password=
motd=Example Server Message of the Day
query.port=25565
force-gamemode=false
debug=false
hardcore=false
white-list=false
broadcast-console-to-ops=true
pvp=true
spawn-npcs=true
spawn-animals=true
generate-structures=true
snooper-enabled=true
difficulty=hard
function-permission-level=2
network-compression-threshold=256
level-type=default
max-tick-time=60000
spawn-monsters=true
enforce-whitelist=false
max-players=100
use-native-transport=true
spawn-protection=0
resource-pack-sha1=
online-mode=true
allow-flight=false
max-world-size=29999984
```

There are a lot of settings here, but we will only focus on the ones that matter the most for what type of server you plan on running.

`view-distance` is how far chunks will be loaded by players in your server. You will want this between 4 and 16, in multiples of two (I.E. 4, 6, 8, 10, 12, 14, 16). Too little and you won't be to see very far, too much and the server will have performance issues. This generally depends on how many players you plan on having in your server, and how much RAM you have.

* View distances 12 - 16 would be best for around one to five players. Like a small group of friends, or a very small server.
* View distances 8 - 10 are generally best for average sized servers (around ten or more players), although `view-distance` is set to 8 by default. It's usually best to keep `view-distance` set to 8.
* View distances 4 and 6 are best for very small worlds, like minigames. This way you can have a lot of players in the same general area, without taking up too many server resources.

`level-seed` is what you'll want to set when using a custom seed for your server's world, keep in mind that you'll need to generate a new world in order for this setting to work.

`motd` is the text that shows up for your server in the in-game server list. You can make a custom MOTD with colors and formatting [here](https://minecraft.tools/en/motd.php).

`difficulty` can be set to peaceful, easy, normal, or hard. Keep in mind that [hard](https://minecraft.gamepedia.com/Difficulty#Hard) is best if you plan on having villager farms, as any other difficulty gives a chance for villagers to *permanently* die, rather than be converted into zombie villagers.

`max-players` can be set to anything, like 9001, or 1337, or simply 100. This option is up to you, although it's best to set it according to how many players you expect to have.

### spigot.yml

```
config-version: 12
settings:
  log-villager-deaths: false
  debug: false
  sample-count: 12
  player-shuffle: 0
  user-cache-size: 1000
  int-cache-limit: 1024
  late-bind: false
  item-dirty-ticks: 20
  bungeecord: false
  attribute:
    maxHealth:
      max: 2048.0
    movementSpeed:
      max: 2048.0
    attackDamage:
      max: 2048.0
  netty-threads: 4
  timeout-time: 60
  restart-on-crash: false
  restart-script: ./start.sh
  filter-creative-items: true
  moved-wrongly-threshold: 10
  moved-too-quickly-multiplier: 10
  save-user-cache-on-stop-only: false
commands:
  send-namespaced: true
  spam-exclusions:
  - /skill
  replace-commands:
  - setblock
  - summon
  - testforblock
  - tellraw
  log: true
  silent-commandblock-console: false
  tab-complete: 0
messages:
  restart: The server is restarting.
  whitelist: You are not whitelisted.
  unknown-command: Unknown command. Type "/help" for help.
  server-full: The server is full!
  outdated-client: Outdated client! Use version {0}
  outdated-server: Outdated server! Currently using {0}
stats:
  disable-saving: false
  forced-stats: {}
advancements:
  disable-saving: false
  disabled:
  - minecraft:story/disabled
world-settings:
  default:
    seed-endcity:
    trident-despawn-rate: 900
    view-distance: default
    max-entity-collisions: 8
    seed-desert:
    seed-igloo:
    seed-jungle:
    seed-swamp:
    seed-shipwreck:
    seed-ocean:
    seed-outpost:
    verbose: false
    item-despawn-rate: 24000
    merge-radius:
      item: 0
      exp: 0
    arrow-despawn-rate: 600
    enable-zombie-pigmen-portal-spawns: true
    wither-spawn-sound-radius: 0
    hanging-tick-frequency: 100
    entity-activation-range:
      villagers: 32
      flying-monsters: 32
      villagers-work-immunity-after: 100
      villagers-work-immunity-for: 20
      villagers-active-for-panic: true
      water: 16
      raiders: 48
      animals: 32
      monsters: 32
      misc: 16
      tick-inactive-villagers: true
      wake-up-inactive:
        animals-max-per-tick: 4
        animals-every: 1200
        animals-for: 100
        monsters-max-per-tick: 8
        monsters-every: 400
        monsters-for: 100
        villagers-max-per-tick: 4
        villagers-every: 600
        villagers-for: 100
        flying-monsters-max-per-tick: 8
        flying-monsters-every: 200
        flying-monsters-for: 100
    random-light-updates: false
    growth:
      bamboo-modifier: 100
      sweetberry-modifier: 100
      kelp-modifier: 100
      beetroot-modifier: 100
      carrot-modifier: 100
      potato-modifier: 100
      cactus-modifier: 100
      cane-modifier: 100
      melon-modifier: 100
      mushroom-modifier: 100
      pumpkin-modifier: 100
      sapling-modifier: 100
      wheat-modifier: 100
      netherwart-modifier: 100
      vine-modifier: 100
      cocoa-modifier: 100
    mob-spawn-range: 4
    ticks-per:
      hopper-transfer: 8
      hopper-check: 1
    hopper-amount: 1
    entity-tracking-range:
      players: 48
      animals: 48
      monsters: 48
      misc: 32
      other: 64
    save-structure-info: true
    max-tnt-per-tick: 250
    squid-spawn-range:
      min: 45.0
    hunger:
      jump-walk-exhaustion: 0.05
      jump-sprint-exhaustion: 0.1
      combat-exhaustion: 0.1
      regen-exhaustion: 2.5
      swim-multiplier: 0.02
      sprint-multiplier: 0.05
      other-multiplier: 0.0
    max-tick-time:
      tile: 50
      entity: 50
    seed-village:
    seed-feature:
    seed-monument:
    seed-slime:
    dragon-death-sound-radius: 0
    nerf-spawner-mobs: false
    zombie-aggressive-towards-villager: true
  worldeditregentempworld:
    verbose: false

```

Most stuff in `spigot.yml` are things you won't want to touch, but a few things that *are* useful are what's listed below.\
\
Listed [here](https://www.spigotmc.org/wiki/spigot-configuration/) is a page explaining most of everything in `spigot.yml`

There are a few interesting things you can change, a few of them being:

* `merge-radius` is the amount of space before dropped items (blocks, mob drops, etc.) will merge. Set these to 0.0 for a classic back-in-the-day Minecraft feel!
* `growth` contains settings for growth modifiers for many different types of crops, you can change these individually to whatever values you like!
* `ticks-per` and `hopper-amount` are great if your server contains mass autofarms with thousands of hoppers, boosting hopper speed and/or amount can help reduce the amount of lag your server gets. There is no need to change this if your server doesn't have these, but the effect is definitely noticeable.

### paper.yml

```
verbose: false
config-version: 20
settings:
  chunk-tasks-per-tick: 1000
  enable-player-collisions: true
  save-empty-scoreboard-teams: false
  suggest-player-names-when-null-tab-completions: true
  region-file-cache-size: 256
  incoming-packet-spam-threshold: 300
  use-alternative-luck-formula: false
  use-versioned-world: false
  bungee-online-mode: true
  save-player-data: true
  load-permissions-yml-before-plugins: true
  watchdog:
    early-warning-every: 5000
    early-warning-delay: 10000
  velocity-support:
    enabled: false
    online-mode: false
    secret: ''
  spam-limiter:
    tab-spam-increment: 1
    tab-spam-limit: 500
  book-size:
    page-max: 2560
    total-multiplier: 0.98
  async-chunks:
    enable: true
    threads: -1
timings:
  enabled: true
  verbose: true
  server-name-privacy: false
  hidden-config-entries:
  - database
  - settings.bungeecord-addresses
  - settings.velocity-support.secret
  history-interval: 300
  history-length: 3600
  server-name: ExampleServerName
messages:
  no-permission: '&4You do not have permission to perform this command.'
  kick:
    authentication-servers-down: ''
    flying-player: Flying is not allowed on this server.
    flying-vehicle: Flying is not allowed on this server.
    connection-throttle: Connection throttled! Please wait before reconnecting.
world-settings:
  default:
    light-queue-size: 20
    zombie-villager-infection-chance: -1.0
    iron-golems-can-spawn-in-air: false
    phantoms-do-not-spawn-on-creative-players: true
    phantoms-only-attack-insomniacs: true
    seed-based-feature-search: true
    portal-create-radius: 16
    fix-zero-tick-instant-grow-farms: false
    entities-target-with-follow-range: false
    per-player-mob-spawns: false
    keep-spawn-loaded-range: 8
    keep-spawn-loaded: true
    auto-save-interval: -1
    armor-stands-do-collision-entity-lookups: true
    disable-ice-and-snow: false
    skeleton-horse-thunder-spawn-chance: 0.01
    count-all-mobs-for-spawning: false
    disable-thunder: false
    nether-ceiling-void-damage-height: 0
    allow-non-player-entities-on-scoreboards: false
    disable-explosion-knockback: false
    water-over-lava-flow-speed: 5
    use-faster-eigencraft-redstone: true
    parrots-are-unaffected-by-player-movement: true
    container-update-tick-rate: 1
    non-player-arrow-despawn-rate: -1
    creative-arrow-despawn-rate: -1
    prevent-tnt-from-moving-in-water: false
    grass-spread-tick-rate: 1
    bed-search-radius: 3
    armor-stands-tick: false
    spawner-nerfed-mobs-should-jump: false
    allow-leashing-undead-horse: false
    baby-zombie-movement-speed: 0.5
    all-chunks-are-slime-chunks: false
    mob-spawner-tick-rate: 1
    disable-teleportation-suffocation-check: false
    optimize-explosions: false
    portal-search-radius: 128
    fixed-chunk-inhabited-time: -1
    enable-treasure-maps: true
    treasure-maps-return-already-discovered: false
    prevent-moving-into-unloaded-chunks: false
    use-vanilla-world-scoreboard-name-coloring: false
    max-auto-save-chunks-per-tick: 24
    filter-nbt-data-from-spawn-eggs-and-related: true
    max-entity-collisions: 8
    disable-creeper-lingering-effect: false
    duplicate-uuid-resolver: saferegen
    duplicate-uuid-saferegen-delete-range: 32
    remove-corrupt-tile-entities: false
    experience-merge-max-value: -1
    falling-block-height-nerf: 0
    tnt-entity-height-nerf: 0
    anti-xray:
      enabled: true
      engine-mode: 1
      chunk-edge-mode: 2
      max-chunk-section-index: 3
      update-radius: 2
      hidden-blocks:
      - gold_ore
      - iron_ore
      - coal_ore
      - lapis_ore
      - mossy_cobblestone
      - obsidian
      - chest
      - diamond_ore
      - emerald_ore
      - ender_chest
      replacement-blocks:
      - stone
    game-mechanics:
      nerf-pigmen-from-nether-portals: false
      disable-pillager-patrols: false
      disable-sprint-interruption-on-attack: false
      disable-relative-projectile-velocity: false
      shield-blocking-delay: 1
      disable-chest-cat-detection: true
      disable-player-crits: false
      disable-end-credits: true
      disable-unloaded-chunk-enderpearl-exploit: true
      scan-for-legacy-ender-dragon: true
      pillager-patrols:
        spawn-chance: 0.2
        spawn-delay:
          per-player: false
          ticks: 12000
        start:
          per-player: false
          day: 5
    squid-spawn-height:
      maximum: 0.0
    max-growth-height:
      cactus: 3
      reeds: 3
    lightning-strike-distance-limit:
      sound: -1
      impact-sound: -1
      flash: -1
    hopper:
      cooldown-when-full: true
      disable-move-event: false
    lootables:
      auto-replenish: false
      restrict-player-reloot: false
      reset-seed-on-fill: true
      max-refills: -1
      refresh-min: 12h
      refresh-max: 2d
    fishing-time-range:
      MinimumTicks: 100
      MaximumTicks: 500
    despawn-ranges:
      soft: 32
      hard: 128
    frosted-ice:
      enabled: true
      delay:
        min: 20
        max: 40
    alt-item-despawn-rate:
      enabled: false
      items:
        COBBLESTONE: 300
    generator-settings:
      flat-bedrock: false
    baby-zombie-movement-modifier: 0.5
    viewdistances:
      no-tick-view-distance: -1

```

There are a lot of useful settings in here, feel free to check them out for yourself! Also make sure to customize plugins to your liking, as having everything utilized makes a server shine!<br>

## 3. Lag management

\
If your server starts to lag, take a look at your plugins, make sure none of them are known to cause issues or have incompatibilities with your current version. Another very useful feature of Paper is timings. Doing `/timings report` in-game will generate a report that tells you what may be causing unneeded TPS (ticks-per-second) usage on your server. 20 TPS is perfect, 0 lag on your server. Anything less than that means something *may* be causing lag.&#x20;

Also, contrary to popular belief, most "Clear Lag" plugins will not actually reduce lag by getting rid of dropped items. It's up to server owners to optimize and properly manage their server for lag not to happen. Dropped items generally do not cause TPS lag, but rather FPS (framerate) lag if there's too many of them.

Good examples of things that cause TPS lag are players loading new chunks, players traveling fast (elytra, boosted minecart, flying, etc.) mass autofarms, lag machines, noise machines, condensed mob farms, egg farms with too many chickens (too many mobs in one space, leading to TPS lag due to mob collisions and the chickens trying to pathfind), and things with many moving parts involving pistons, like large flying machines.

Bad examples of things that actually don't cause TPS lag but may be confused for it are things like many dropped items on the ground causing loss in framerate, minecarts, armor stands, and item frames causing framrate lag due to the amount of entities being rendered, fishing bobbers and boats, which some "lag clearing" plugins remove for some reason, arrows, and other things like that.


# Recommended Plugins

## Utilities

If you haven't already, please check out our [Optimizing your server](https://docs.phoenixnodes.com/optimizing-your-server) guide first before this one!

Starting off, we have the utility plugins. These are plugins that are great for any server, big or small. They help with anything related to either making tasks more efficient, helping with management, or just simply being useful! They usually require minimal configuration (very little diving into the files!) in order to be used for their full potential!

### EssentialsX

[Download](https://www.spigotmc.org/resources/essentialsx.9089/) (Or alternatively, you could download a development build from [Jenkins](https://ci.ender.zone/job/EssentialsX/))

Many, many servers use Essentials. This plugin is a must for any server, big or small! It adds a *lot* of useful commands that help manage your server, or aliases for already existing commands that just make it plain easier to do things! (Ex. /gm c instead of /gamemode creative)

### PlugMan

[Download](https://dev.bukkit.org/projects/plugman)

PlugMan is a management plugin that lets server administrators manage plugins from either in-game or console without the need to restart the server. *Note: Does not work with every plugin, as some require the server be restarted in order to work. Generally, restarting the server is best to do when installing new plugins. /reload can cause memory leaks, and PlugMan can help put a stop to that!*

### WorldEdit and WorldGuard

[Download](https://dev.bukkit.org/projects/worldedit) (WorldEdit)\
[Download](https://dev.bukkit.org/projects/worldguard) (WorldGuard)

WorldEdit is a world editing and terrain shaping plugin for Minecraft, although most have seen the great wooden axe! It may take time to get a hold of for inexperienced server administrators, but the possibilities and time-saving capabilities are endless!\
\
WorldGuard is a region protection plugin that requires WorldEdit in order to work. It's the most widely-used protection plugin Minecraft has to offer! Learning the commands for it can potentially be a hassle for some, but it's the best plugin out there for server owners looking for grief protection.

### LuckPerms

[Download](https://www.spigotmc.org/resources/luckperms.28140/)

A permissions plugin is an absolute necessity if you plan on making a public server, learning how to do permissions is also quite straightforward! Going through the permissions list of every plugin is also quite useful!

### Multiverse-Core

[Download](https://dev.bukkit.org/projects/multiverse-core)

If you want multiple worlds on your server, check this plugin out! It's relatively easy to use and lets you have a server with multiple worlds. It also has custom generator support!

### ProtocolLib

[Download](https://www.spigotmc.org/resources/protocollib.1997/)

This is a required plugin for a few plugins you may find yourself using! Make sure to have this one installed if you plan on using plugins such as SuperVanish or certain custom-made plugins utilizing this plugin.

### Vault

[Download](https://dev.bukkit.org/projects/vault)

A required plugin if you plan on utilizing any kind of economy, permissions, and basic things such as that on your server.

### SAML

[Download](https://www.spigotmc.org/resources/simple-anti-mob-lag-1-9-1-15.67484/)

This plugin is incredible for any servers owners wishing to combat lag! It won't get rid of lag, but will at least do something to reduce the amount of it provided the TPS gets below a certain limit!

## Administration

Administration plugins! If you want to keep an eye on your players, catch filthy hackers, or just in general have peace of mind, these plugins will come in **very** useful!

### CoreProtect

[Download](https://www.spigotmc.org/resources/coreprotect.8631/)

This plugin is a *must* if you want to prevent griefing on your server! It logs literally everything a player does, from breaking/placing blocks to whatever they do in a chest, taking items, storing items, it even logs when a player kills a mob! This can be essential to finding out who did what in a griefing situation, and this plugin is wonderfully created to help with any situation like that.

### OpenInv

[Download](https://dev.bukkit.org/projects/openinv)

EssentialsX comes with its own /invsee command, however, it's quite limited in its capabilities! That's where OpenInv comes in! This plugin lets you view online and offline players' inventories and enderchests. You can even view their current armor and offhand items! Incredibly useful for any owners and staff trying to retrieve players' stolen items.

### SuperVanish

[Download](https://www.spigotmc.org/resources/supervanish-be-invisible.1331/)

Requires ProtocolLib! This plugin is very useful for keeping a watchful eye on players you may be suspicious of breaking your server's rules such as hacking, duplicating items, or griefing. They won't even know you're there!

## Customization

Plugins that help you customize things in-game, or just help you color your world to your liking (figuratively and literally!)

### Announcer

[Download](https://dev.bukkit.org/projects/deckerz-announcer)

This plugin is a lightweight in-game announcement broadcaster that you can set messages to broadcast across your server at a certain timed interval and with support for ordered/random frequencies!

### SimpleRename

[Download](https://www.spigotmc.org/resources/simple-rename.16220/)

This plugin allows you to rename items and add lores to your items and gear, even in color! Very useful for making custom server items!

### SmartSignEditor

[Download](https://www.spigotmc.org/resources/smartsigneditor.24594/)

This plugin allows you to easily edit, copy, and paste signs in your server without the hassle of having to rewrite every. single. sign. Incredibly useful plugin!

### SilkSpawners

[Download](https://dev.bukkit.org/projects/silkspawners)

Ever mined a spawner with Silk Touch in vanilla Minecraft and got surprised when it didn't drop? Or right clicked a spawner with a spawnegg to change the spawner's mob type in vanilla Minecraft and it did nothing? Yeah, this plugin does that!

### Chairs

[Download](https://dev.bukkit.org/projects/chairsreloaded)

You ever wanted to sit in Minecraft? Here you go!

### icJukebox

[Download](https://www.spigotmc.org/resources/icjukebox.6129/) (requires [NoteBlockAPI](https://www.spigotmc.org/resources/noteblockapi.19287/))

With this plugin, you can play noteblock music that plays locally Minecraft! Using this, you don't have to build huge contraptions in order to listen to your favorite song wonderfully remastered in crisp, clear, Minecraft quality!

## Leisure/Fun

These are fun plugins that enrich the experience of your server! Some of these plugins have had entire servers built off of them! These could be gamemodes, fun things, and much more!

### mcMMO

[Download](https://popicraft.net/jenkins/job/mcMMO/)

A very satisfying and fun plugin to use! Makes Minecraft as a whole feel new again, with a wide variety of "skills" you can learn and level up to get certain perks that come with them! If your server involves any kind of grinding, this plugin is a must!

### Factions

[Download](https://www.spigotmc.org/resources/factions3-for-1-13.63602/)

Everyone has played Factions atleast once in their Minecraft career! This is basically an entire game of its own within Minecraft, and shaped more than just Minecraft as a whole, but entire communities!

### AdvancedAchievements

[Download](https://www.spigotmc.org/resources/advanced-achievements.6239/)

You can create and manage custom achievements with variable rewards in this plugin!

### BossShopPro and PlayerShops

[Download](https://www.spigotmc.org/resources/bossshoppro-the-most-powerful-chest-gui-shop-menu-plugin.222/) (BossShopPro)\
[Download](https://www.spigotmc.org/resources/playershops-gui-bsp-allow-players-to-create-public-shops.29568/) (PlayerShops Extension)

If you'd like a custom GUI shop in your server, and an easy-to-use player-owned shop system, these plugins are your way to go!

### Shopkeepers

[Download](https://dev.bukkit.org/projects/shopkeepers)

This is a really good plugin for anyone wanting a villager-trading based GUI shop! It's incredibly useful for server-based currencies and for giving unique items to players!

### AdminFun

[Download](https://www.spigotmc.org/resources/admincmds-adminfun-2020-1-8-1-15-2.78420/)

This plugin lets you use extra fun commands as an operator, and even lets you do some lighthearted trolling! Some features include fake leave/join, exploding, /slap players, and more!


# How to set up Dynmap with a Reverse Proxy and SSL certificate

## Requirements

* A Minecraft server with the Dynmap plugin installed and running.
* A VPS with Ubuntu 20.04.
* A domain.

{% hint style="success" %}
Get a VPS at [rawSRV.com](https://rawsrv.com) starting at $9.50/m
{% endhint %}

## Step 1: Point your domain to your VPS IP address

{% hint style="info" %}
&#x20;These steps may vary for each domain registrar, this tutorial will explain how to point your domain to your VPS IP via CloudFlare.
{% endhint %}

* Navigate to CloudFlare.com and login
* Choose the domain you want to have your map on
* Select “DNS” from the menu at the top of the screen
* Click “Add Record”
* Set “Type” to “A”
* Set “Name” to whatever you want your subdomain to be (Eg: map)
* Set “IPv4 address” to the IP Address of your VPS
* Click “Save”

## Step 2: Install NGINX

Run these commands to update your system and install NGINX:

```
sudo apt update
sudo apt-get -y install nginx
```

## Step 3: Add Certbot PPA

You’ll need to add the Certbot PPA to your list of repositories. To do so, run the following commands on the command line on the machine:

```
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
```

{% hint style="info" %}
You may be prompted to press "ENTER" or any other key to cancel. Press "ENTER" to continue.
{% endhint %}

## Step 4: Install Certbot

Run this command on the command line on the machine to install Certbot:

```
sudo apt-get -y install certbot python3-certbot-nginx
```

## Step 5: Download proxy script

Run this command to download the proxy script and start it, follow the on-screen commands:

{% hint style="info" %}
This script requires root permissions to run, if you are not logged in as root, you need to run the command "sudo su - root" before continuing.
{% endhint %}

```
wget https://raw.githubusercontent.com/phoenixnodes/scripts/master/proxy.sh && bash proxy.sh
```

## Step 6: Reload NGINX

Run this command to reload NGINX:

```
sudo service nginx reload
```

## Completion

To verify that everything is working, visit your map subdomain (Eg: map.yoursite.com). You should be able to view your Dynmap without using your server’s IP and Dynmap port.


