Skip to content

Server Types

Detailed guide for each Minecraft server platform supported by mcctl.

Quick Start

Create a server with your desired type using mcctl:

# Paper (recommended for most users)
mcctl create myserver -t PAPER -v 1.21.1

# Vanilla (pure Minecraft)
mcctl create myserver -t VANILLA -v 1.21.1

# Forge (mods)
mcctl create myserver -t FORGE -v 1.20.4

# NeoForge (modern Forge fork, 1.20.1+)
mcctl create myserver -t NEOFORGE -v 1.21.1

# Fabric (lightweight mods)
mcctl create myserver -t FABRIC -v 1.21.1

# Modrinth modpack
mcctl create myserver --modpack

Overview

Type Plugins Mods Performance Recommended For
PAPER Yes No Excellent General use, plugins
VANILLA No No Good Pure Minecraft experience
FORGE No Yes Varies Forge mod packs
NEOFORGE No Yes Varies Modern Forge mods (1.20.1+)
FABRIC No Yes Excellent Performance mods
MODRINTH No Yes Varies Modrinth modpacks
SPIGOT Yes No Good Legacy plugin compatibility
BUKKIT Yes No Moderate Very old plugins
PURPUR Yes No Excellent Advanced customization
QUILT No Yes Excellent Modern Fabric alternative

Paper

Recommended for most users.

Paper is a high-performance Minecraft server that supports Bukkit and Spigot plugins while providing significant performance improvements.

Create Paper Server

mcctl create myserver -t PAPER -v 1.21.1

Features

  • Significant performance improvements over Vanilla
  • Full Bukkit/Spigot plugin compatibility
  • Async chunk loading
  • Anti-exploit patches
  • Extensive configuration options
# Enable Aikar's optimized JVM flags
mcctl config myserver USE_AIKAR_FLAGS true

Adding Plugins

# From Modrinth
mcctl config myserver MODRINTH_PROJECTS "essentialsx,luckperms"

# From Spigot
mcctl config myserver SPIGET_RESOURCES "28140,81534"

# Apply changes
mcctl stop myserver && mcctl start myserver

Or place plugin JAR files in shared/plugins/ directory.

Best Practices

  • Always enable USE_AIKAR_FLAGS=true for optimal performance
  • Use Paper-specific plugins when available
  • Monitor with Paper's built-in profiler: /timings report

Vanilla

The official Minecraft server from Mojang.

Create Vanilla Server

mcctl create myserver -t VANILLA -v 1.21.1

Features

  • Official Minecraft experience
  • No modifications
  • Guaranteed compatibility with all Minecraft features
  • Smallest footprint

Use Cases

  • Pure Minecraft experience
  • Testing vanilla behavior
  • Minimal server requirements

Forge

Server for running Forge mods.

Create Forge Server

mcctl create myserver -t FORGE -v 1.20.4

Features

  • Large mod ecosystem
  • Complex modpacks support
  • Industrial/tech mods
  • RPG mods

Configuration

# Set memory (modpacks need more)
mcctl config myserver MEMORY 8G

# Add mods (requires CF_API_KEY in .env)
mcctl config myserver CURSEFORGE_FILES "jei,journeymap,create"

# Or specific Forge version
mcctl config myserver FORGE_VERSION "47.2.0"

# Apply changes
mcctl stop myserver && mcctl start myserver

Java Version Requirements

Minecraft Version Required Java Image Tag
1.20.x+ Java 17 or 21 latest
1.17.x - 1.19.x Java 17 java17
1.16.x and below Java 8 java8

Forge 1.16.5 and Below

For older Forge versions, you need to modify the server's docker-compose.yml to use the java8 image:

image: itzg/minecraft-server:java8

Memory Recommendations

Modpack Size Recommended Memory
Light (10-30 mods) 4-6G
Medium (30-100 mods) 6-8G
Heavy (100+ mods) 8-12G
mcctl config myserver MEMORY 8G

NeoForge

Modern fork of Forge with improved APIs and active development. Supports Minecraft 1.20.1 and above.

Create NeoForge Server

mcctl create myserver -t NEOFORGE -v 1.21.1

Features

  • Active development with modern APIs
  • Forge mod compatibility (many Forge mods work on NeoForge)
  • Improved performance over legacy Forge
  • Better mod loading and dependency management

Configuration

# Set memory (modpacks need more)
mcctl config myserver MEMORY 8G

# Add mods from Modrinth
mcctl config myserver MODRINTH_PROJECTS "jei,create"

# Apply changes
mcctl stop myserver && mcctl start myserver

When to Use

  • New modded server projects targeting Minecraft 1.20.1+
  • Prefer modern Forge APIs and active community development
  • Want improved performance over legacy Forge

Minecraft Version Requirement

NeoForge requires Minecraft 1.20.1 or newer. For older versions, use FORGE instead.


Modrinth Modpack

Create a server from a Modrinth modpack. The modpack includes all required mods, configurations, and settings pre-configured.

Create Modrinth Modpack Server

# Interactive mode (recommended) - search and select modpack
mcctl create myserver --modpack

# The interactive flow will:
# 1. Search Modrinth for modpacks
# 2. Select a version
# 3. Choose a mod loader (only supported loaders shown)
# 4. Configure memory and other settings

Features

  • Search Modrinth modpacks directly from CLI
  • Dynamic loader detection: only shows loaders the modpack supports (Forge, NeoForge, Fabric, Quilt)
  • Automatic version selection with version listing
  • Pre-configured mod sets for immediate play

Configuration

The modpack server is configured with:

TYPE=MODRINTH
MODRINTH_MODPACK=<modpack-slug>
MODRINTH_VERSION=<version-id>       # optional
MODRINTH_LOADER=<loader>            # forge, neoforge, fabric, quilt

Memory Recommendations

Modpack Size Recommended Memory
Light (10-30 mods) 4-6G
Medium (30-100 mods) 6-8G
Heavy (100+ mods) 8-12G

Web Console

Modrinth modpack servers can also be created from the Web Console (Management Console) with the same modpack search and dynamic loader selection.


Fabric

Lightweight modding platform with excellent performance.

Create Fabric Server

mcctl create myserver -t FABRIC -v 1.21.1

Features

  • Fast startup and runtime
  • Performance optimization mods (Lithium, Sodium)
  • Modern modding API
  • Smaller mod file sizes

Configuration

# Set memory
mcctl config myserver MEMORY 6G

# Essential Fabric mods from Modrinth
mcctl config myserver MODRINTH_PROJECTS "fabric-api,lithium,starlight"
mcctl config myserver MODRINTH_DOWNLOAD_DEPENDENCIES required

# Or specific Fabric loader version
mcctl config myserver FABRIC_LOADER_VERSION "0.15.0"

# Apply changes
mcctl stop myserver && mcctl start myserver
Mod Purpose mcctl config
fabric-api Required by most mods MODRINTH_PROJECTS
lithium Game logic optimization MODRINTH_PROJECTS
starlight Lighting engine rewrite MODRINTH_PROJECTS
krypton Network optimization MODRINTH_PROJECTS
ferritecore Memory optimization MODRINTH_PROJECTS
mcctl config myserver MODRINTH_PROJECTS "fabric-api,lithium,starlight,krypton,ferritecore"

Performance Comparison

Fabric with optimization mods typically provides:

  • 50-100% better TPS than Vanilla
  • Faster chunk loading
  • Lower memory usage

Spigot

Modified Bukkit server with plugin support.

Create Spigot Server

mcctl create myserver -t SPIGOT -v 1.21.1

Features

  • Bukkit plugin compatibility
  • Performance improvements over Bukkit
  • Wide plugin ecosystem

When to Use

  • Need specific Spigot-only plugins
  • Legacy server migration
  • Paper causes compatibility issues

Paper Recommended

Paper is generally preferred over Spigot as it provides better performance and maintains full Spigot compatibility.


Bukkit

Classic Minecraft plugin server.

Create Bukkit Server

mcctl create myserver -t BUKKIT -v 1.21.1

Features

  • Original plugin API
  • Legacy plugin support
  • Stable and well-documented

When to Use

  • Very old plugins that don't work with Spigot/Paper
  • Historical/archival purposes

Purpur

Paper fork with additional features and customization.

Create Purpur Server

mcctl create myserver -t PURPUR -v 1.21.1

Features

  • All Paper features plus more
  • Extended configuration options
  • Fun gameplay additions
  • Active development

Configuration

mcctl config myserver USE_AIKAR_FLAGS true

Unique Features

  • Rideable mobs (configure which mobs can be ridden)
  • Player health on damage indicators
  • Configurable villager lobotomization
  • Extended permissions

Quilt

Modern Fabric fork with improved APIs.

Create Quilt Server

mcctl create myserver -t QUILT -v 1.21.1

Features

  • Fabric mod compatibility
  • Improved loader and API
  • Better mod conflict resolution
  • Community-focused development

Configuration

mcctl config myserver MODRINTH_PROJECTS "qsl,fabric-api"

When to Use

  • Prefer Quilt's approach to modding
  • Need Quilt-exclusive mods
  • Want improved mod compatibility

Choosing a Server Type

Decision Tree

flowchart TD
    A{Need mods?} -->|Yes| B{Which type?}
    A -->|No| C{Need plugins?}

    B -->|Modpack from Modrinth| M[MODRINTH modpack]
    B -->|Forge mods| D{Minecraft version?}
    D -->|1.20.1+| N[NEOFORGE or FORGE]
    D -->|Older| O[FORGE]
    B -->|Fabric/Quilt| E{Priority?}
    E -->|Cutting-edge| F[QUILT]
    E -->|Compatibility| G[FABRIC]

    C -->|Yes| H{Priority?}
    C -->|No| I[VANILLA]

    H -->|Performance| J[PAPER]
    H -->|Customization| K[PURPUR]
    H -->|Legacy| L[SPIGOT/BUKKIT]

Quick Recommendations

Use Case Command
General multiplayer mcctl create myserver -t PAPER -v 1.21.1
Performance-focused mcctl create myserver -t PAPER -v 1.21.1 or -t FABRIC
Complex modpacks mcctl create myserver --modpack
Forge mods (modern) mcctl create myserver -t NEOFORGE -v 1.21.1
Forge mods (legacy) mcctl create myserver -t FORGE -v 1.20.4
Light optimization mods mcctl create myserver -t FABRIC -v 1.21.1
Pure vanilla mcctl create myserver -t VANILLA -v 1.21.1
Maximum customization mcctl create myserver -t PURPUR -v 1.21.1

Complete Setup Examples

Survival Server (Paper)

# Create server
mcctl create survival -t PAPER -v 1.21.1

# Configure
mcctl config survival MOTD "Survival Server - Good luck!"
mcctl config survival DIFFICULTY hard
mcctl config survival GAMEMODE survival
mcctl config survival USE_AIKAR_FLAGS true

# Add plugins
mcctl config survival MODRINTH_PROJECTS "essentialsx,luckperms"

# Restart to apply
mcctl stop survival && mcctl start survival

# Add operators
mcctl op survival add YourName

Modded Server (Forge)

# Create server
mcctl create modded -t FORGE -v 1.20.4

# Configure
mcctl config modded MEMORY 8G
mcctl config modded USE_AIKAR_FLAGS true

# Add mods (requires CF_API_KEY in .env)
mcctl config modded CURSEFORGE_FILES "create,jei,journeymap"

# Restart to apply
mcctl stop modded && mcctl start modded

Modded Server (NeoForge)

# Create server
mcctl create modern -t NEOFORGE -v 1.21.1

# Configure
mcctl config modern MEMORY 8G
mcctl config modern USE_AIKAR_FLAGS true

# Add mods from Modrinth
mcctl config modern MODRINTH_PROJECTS "create,jei,journeymap"

# Restart to apply
mcctl stop modern && mcctl start modern

Modpack Server (Modrinth)

# Create modpack server (interactive)
mcctl create modpack-server --modpack

# The CLI will guide you through:
# 1. Searching for modpacks on Modrinth
# 2. Selecting a modpack version
# 3. Choosing a mod loader (Forge, NeoForge, Fabric, Quilt)
# 4. Setting memory allocation

Performance Server (Fabric)

# Create server
mcctl create performance -t FABRIC -v 1.21.1

# Configure
mcctl config performance MEMORY 6G
mcctl config performance MODRINTH_PROJECTS "fabric-api,lithium,starlight,krypton"
mcctl config performance MODRINTH_DOWNLOAD_DEPENDENCIES required

# Restart to apply
mcctl stop performance && mcctl start performance

See Also