# REQ-2026-04-16-vanilla-server-type

**From:** Chronicler #93  
**Date:** 2026-04-16  
**Priority:** HIGH  
**Status:** PENDING  
**Linked Task:** #101 follow-up — Vanilla/Paper server type + server.properties configurator  

---

## Context

The Modpack Installer currently assumes a modpack egg (Forge/Fabric/NeoForge). Vanilla/Paper servers are a completely different server type — Paper jar, plugins instead of mods, different standard stack. This adds a parallel install path to the installer.

---

## Part 1: Vanilla/Paper Server Type

### New Spawn Type Behavior
When `spawn_type = vanilla` is selected, the install flow changes:

**Egg:** Use Paper egg instead of modpack egg  
**Jar:** Hit Paper API for latest build matching selected MC version:  
`https://api.papermc.io/v2/projects/paper/versions/{mc_version}/builds` → get latest build → download jar  
**No mods folder** — skip modpack download entirely  
**Plugins instead of mods** — deploy Vanilla Standard Plugin Stack  
**No Bitch Bot** — skip provision.json and BitchBot jar  
**No schematic** — spawn is whatever Minecraft generates  

### Vanilla Standard Plugin Stack
Deploy from NextCloud `standard-plugins/{mc_version}/`:

**Confirmed:**
- EssentialsX
- LuckPerms-Bukkit
- Spark
- Vault
- WorldEdit (Paper build)
- WorldGuard (Paper build)
- CoreProtect

**Pending Holly decision — do NOT deploy yet, flag in UI:**
- Chunk claiming plugin (GriefPrevention vs Lands — decision pending)
- DiscordSRV (Task #104, planned separately)

### NextCloud Structure
Create placeholder folders:
```
standard-plugins/1.21.1/README.md
standard-plugins/1.20.1/README.md
```
README content: "Populate with plugin jars before first Vanilla install"

### UI Changes
When Vanilla spawn type selected:
- Show notice: "Paper server — plugins will be deployed instead of mods"
- Hide modpack version selector
- Show MC version selector
- Java version auto-select still applies

---

## Part 2: server.properties Configurator

Collapsible "Server Configuration" section in the install form. Pre-fill with Firefrost defaults.

**Gameplay:** difficulty (easy), gamemode (survival), pvp (true), hardcore (false), spawn-protection (16)  
**World:** level-type (normal), generate-structures (true), level-seed (empty), view-distance (10), simulation-distance (10)  
**Players:** max-players (20), white-list (true), online-mode (true), allow-flight (false), player-idle-timeout (0)  
**MOTD:** "Welcome home, Adventurer. Firefrost Gaming is now open!"

Write server.properties via Pterodactyl File API after server creation, before first boot.

---

## Files to Touch

- `src/routes/admin/modpack-installer.js`
- `src/services/modpackInstaller.js`
- `src/views/admin/modpack-installer/_pack_details.ejs`
- New: `src/services/paperApi.js`

---

## Deploy

Standard pattern. No new migrations needed.

## Note for Chronicler
Populate NextCloud `standard-plugins/1.21.1/` with confirmed plugin jars before first Vanilla install. Installer fails gracefully if folder empty.
