Installation Guide
This comprehensive guide covers everything you need to know to properly install and configure SSoggySouls on your Velocity proxy network.
Table of Contents
- Prerequisites
- Network Architecture
- Database Setup
- Plugin Installation
- Proxy Configuration
- Server Configuration
- Testing Your Setup
- Common Mistakes to Avoid
Prerequisites
Server Requirements
-
Minecraft Version: 1.21.X
-
Server Software: Spigot, Paper, or Purpur
-
Proxy Software: Velocity (BungeeCord/Waterfall untested but may work)
-
Java Version: 21 or higher
-
Database: MySQL 5.7+ / MariaDB 10.2+ (for multi-server) OR SQLite (built-in, zero setup for single-server)
Server Setup
You need two backend servers:
-
Main Server - Your primary survival/gameplay server
-
Limbo Server - Purgatory server for dead players
Note: If using
spectatordeath mode, the Limbo server is optional.
Important: Do NOT Use Hardcore Mode
CRITICAL: Do NOT enable hardcore=true in server.properties on either server.
Leave it as false. The plugin manages hardcore mechanics internally - enabling Minecraft’s built-in hardcore mode will break the plugin.
If you already have it enabled:
-
Delete your world and regenerate, OR
-
Use an NBT editor to change the hardcore flag in
level.dat
Network Architecture
How SSoggySouls Works
┌─────────────────┐
│ Velocity Proxy │
└────────┬────────┘
│
┌──────────────┴──────────────┐
│ │
┌─────▼─────┐ ┌─────▼─────┐
│ Main │◄───────────────►│ Limbo │
│ Server │ MySQL/MariaDB │ Server │
└───────────┘ └───────────┘
-
Both servers connect to the same MySQL database
-
Players automatically transfer between servers based on death state
-
Limbo server checks database periodically for revivals
-
Main server handles deaths and sends players to Limbo
Database Setup
The plugin supports two database types depending on your setup. You must choose one based on your network architecture:
| Feature | sqlite (Local) | mysql (External) |
| ——————————– | ——————————– | —————————————— |
| Best For | Single servers | 2-Server Proxy Networks |
| Performance | High (Lightweight / Local I/O) | Maximum (Multi-threaded Dedicated Service) |
| Network Latency | None (Zero Ping) | Varies (Dependent on Host) |
| Setup Required | None (Plug & Play) | Advanced (User/Grants) |
| Lives & HRM Systems | ✅ Works Perfectly | ✅ Works Perfectly |
| Main + Limbo Syncing | ❌ NOT SUPPORTED | ✅ Supported |
| Plugin Sharing (CoreProtect) | ❌ No | ✅ Yes (Same Database) |
| Data Editing / Viewing | Requires 3rd Party SQLite Editor | PhpMyAdmin / Pterodactyl Panels |
| Backups | Copy database.db file |
Requires mysqldump |
| Portability | High (Single .db file) |
Low (External Server) |
Option A: SQLite (Zero Setup / Local)
Ideal for a single server setup if you just want lives, HRM features, and extra-life items without worrying about setting up an external database.
-
No external server required
-
Zero configuration needed
-
The plugin handles the creation of
database.dbinside its data folder automatically. -
Note: Does not support true cross-server exile functionality natively.
Option B: MySQL (Cross-server)
REQUIRED if you are using the true 2-server (Main + Limbo) functionality.
SSoggySouls will automatically create the necessary table, but you need to create the database first.
Using MySQL command line:
CREATE DATABASE ssoggysouls CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'ssoggysouls_user'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER ON ssoggysouls.* TO 'ssoggysouls_user'@'localhost';
FLUSH PRIVILEGES;
For shared hosting (Pterodactyl, etc.):
- Go to your hosting panel
- Navigate to the Databases section
- Create a new database
- Note down the host, port, database name, username, and password
Database Configuration
If using SQLite, simply set type: "sqlite".
If using MySQL, both servers must use identical database credentials:
database:
type: "mysql" # Database type: "mysql" or "sqlite"
host: "localhost" # Database host (use panel host for Pterodactyl)
port: 3306 # Database port
name: "ssoggysouls" # Database name
username: "ssoggysouls_user" # Database username
password: "your_secure_password" # Database password
pool-size: 5 # Connection pool size (5 is recommended)
table-name: "hardcore_players" # Table name (default is fine)
Tip: The database can be shared with other plugins like CoreProtect. SSoggySouls uses its own table.
Connection Pool Settings (MySQL only)
The pool-size setting controls how many database connections are maintained:
-
Small servers (1-20 players): 5 connections
-
Medium servers (20-50 players): 10 connections
-
Large servers (50+ players): 15-20 connections
Plugin Installation
Download
Get the latest version:
Download SSoggySouls-3.2.6.jar (or latest version).
Installation Steps
-
Stop your server(s) if they are running.
-
Place the JAR file in the
plugins/folder:
For Single Server Setups:
Server: /plugins/SSoggySouls-3.2.6.jar
For 2-Server Setups (Main + Limbo):
Main Server: /plugins/SSoggySouls-3.2.6.jar
Limbo Server: /plugins/SSoggySouls-3.2.6.jar
-
Start your server(s) to generate config files
-
Stop your server(s) to edit configuration
-
Edit
config.yml(see next section)
Critical Setup Rules
DO NOT install on proxy:
-
SSoggySouls is NOT a proxy plugin
-
Install ONLY on backend servers (Main and Limbo)
-
Do NOT place in Velocity/BungeeCord plugins folder
DO install on both backend servers (if using Limbo):
- Must be installed on Main server
- Must be installed on Limbo server
- Both servers must use the SAME version
Proxy Configuration
For Velocity
Edit velocity.toml:
# Enable modern forwarding
player-info-forwarding-mode = "modern"
[servers]
main = "localhost:25566" # Your Main server
limbo = "localhost:25567" # Your Limbo server
try = [
"main" # Players join Main by default
]
For BungeeCord/Waterfall
Note: BungeeCord/Waterfall support is untested. Please report if you test it!
In BungeeCord config.yml:
ip_forward: true
On both backend servers in spigot.yml:
settings:
bungeecord: true
If using Paper, also configure paper.yml:
settings:
velocity-support:
enabled: false # Disable for BungeeCord
Server Configuration
Note for Single Servers (SQLite): If you are running a single server with SQLite, you can safely ignore
is-limbo-serverand the server names. Just leave them as default and scroll down!
Main Server Configuration
Edit /plugins/SSoggySouls/config.yml on the Main server:
# SERVER IDENTIFICATION
is-limbo-server: false # This is the Main server
# SERVER NAMES (must match velocity.toml)
main-server-name: "main" # Name of Main server in proxy config
limbo-server-name: "limbo" # Name of Limbo server in proxy config
# DATABASE (must be identical on both servers)
database:
type: "mysql"
host: "localhost"
port: 3306
name: "ssoggysouls"
username: "ssoggysouls_user"
password: "your_secure_password"
pool-size: 5
table-name: "hardcore_players"
# LIVES SYSTEM
lives:
default: 2 # Starting lives for new players
max-lives: 5 # Maximum lives cap
on-revive: 1 # Lives restored on revival
grace-period: "24h" # New player protection
revive-cooldown-seconds: 30 # Post-revival protection
# DEATH HANDLING
main:
death-mode: "hybrid" # hybrid | spectator | limbo
hybrid-timeout-seconds: 300 # 5 minutes for hybrid mode
spectator-on-death: false
detect-hrm-revive: true # Enable ritual structure detection
send-to-limbo-delay-ticks: 20 # 1 second delay before transfer
Limbo Server Configuration
Edit /plugins/SSoggySouls/config.yml on the Limbo server:
# SERVER IDENTIFICATION
is-limbo-server: true # This is the Limbo server
# SERVER NAMES (must match velocity.toml and Main server config)
main-server-name: "main"
limbo-server-name: "limbo"
# DATABASE (must be identical to Main server)
database:
type: "mysql"
host: "localhost"
port: 3306
name: "ssoggysouls"
username: "ssoggysouls_user"
password: "your_secure_password"
pool-size: 5
table-name: "hardcore_players"
# LIMBO SETTINGS
limbo:
check-interval-seconds: 3 # How often to check for revivals
spawn:
world: "world" # Set with /setlimbospawn command
x: 0.5
y: 65.0
z: 0.5
yaw: 0.0
pitch: 0.0
Setting Limbo Spawn
- Start the Limbo server
- Join the server in-game
- Stand at the desired spawn location
- Run
/setlimbospawn - Confirm the coordinates were saved
The spawn location is saved to config and will be used for all dead players.
Testing Your Setup
Pre-Flight Checklist
Before testing, verify:
-
Both servers are running SSoggySouls (same version)
-
Both servers have identical database credentials
-
is-limbo-serveris set correctly (false on Main, true on Limbo) -
Server names match proxy configuration
-
Limbo spawn has been set
-
Console shows successful database connection on both servers
Test Procedure
- Join Main Server
-
Connect through the proxy
-
You should spawn on the Main server
- Check Initial Status
/pstatus
Should show: “Lives: 2 - Status: Alive”
- Test Death Mechanic
-
Kill yourself (fall, lava, etc.)
-
Check lives with
/pstatus -
Should show: “Lives: 1 - Status: Alive”
- Test Limbo Transfer
-
Kill yourself again to lose all lives
-
Depending on death mode:
-
hybrid: Enter spectator for 5 minutes, then transfer to Limbo
-
spectator: Enter spectator on Main indefinitely
-
limbo: Immediately transfer to Limbo
-
-
Verify you’re on the Limbo server
- Test Revival
-
From Main server console, run:
/psadmin revive <your_username> -
Should automatically return to Main server
-
Check lives: Should have 1 life restored
- Test Grace Period
-
Create a new player account
-
Check status:
/pstatus -
Should show grace period remaining
-
Die several times
-
Lives should not decrease during grace period
Verification
If all tests pass, your installation is complete!
Check console logs for:
-
“Database connection established successfully”
-
“SSoggySouls version X.X.X enabled”
-
No error messages or warnings
Common Mistakes to Avoid
Mistake 1: Installing on Proxy
Wrong: Installing SSoggySouls on Velocity/BungeeCord
Right: Install only on backend servers (Main and Limbo)
Mistake 2: Different Database Credentials
Wrong: Using different database credentials on each server
Right: Both servers must use identical database settings
Mistake 3: Server Names Don’t Match
Wrong: Config says “main” but velocity.toml says “survival”
Right: Server names must exactly match proxy configuration
Mistake 4: Wrong is-limbo-server Setting
Wrong: Both servers have is-limbo-server: false
Right: Main = false, Limbo = true
Mistake 5: Enabling Hardcore Mode
Wrong: Setting hardcore=true in server.properties
Right: Keep hardcore=false - plugin manages hardcore mechanics
Mistake 6: Different Plugin Versions
Wrong: Main server has v3.2.5, Limbo has v3.2.6
Right: Both servers must use the exact same version
Mistake 7: Not Setting Limbo Spawn
Wrong: Forgetting to run /setlimbospawn
Right: Set spawn point before testing
Mistake 8: Firewall Blocking Database
Wrong: Servers can’t reach database due to firewall
Right: Ensure firewall allows backend → database connections
Next Steps
Now that SSoggySouls is installed:
-
Customize Settings - Review the Configuration Reference
-
Learn Commands - Check out the Commands Guide
-
Understand Revival System - Read the Revival System Guide
-
Prepare for Issues - Familiarize yourself with Troubleshooting
Need Help?
| ← Quick Start | Back to Home | Configuration → |