diff --git a/docs/code-bridge/requests/REQ-2026-04-16-vanilla-server-type.md b/docs/code-bridge/requests/REQ-2026-04-16-vanilla-server-type.md new file mode 100644 index 0000000..ce564b0 --- /dev/null +++ b/docs/code-bridge/requests/REQ-2026-04-16-vanilla-server-type.md @@ -0,0 +1,90 @@ +# 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.