fix: ease onboarding with startup warnings and doc corrections

- Warn at startup when quest files are missing (clients crash without
  them) and point users to the download link
- Fix Host config description: it's the advertised IP, not a bind
  address — 0.0.0.0 was wrong advice
- Load bundled schemas (shops, events, gacha) in Docker init so new
  users get working demo data out of the box
- Renumber duplicate patch schema 28 → 32 to resolve numbering
  collision
- Fix patch schema example filename to use hyphens matching actual
  files
This commit is contained in:
Houmgaor
2026-02-23 20:23:08 +01:00
parent 7af41a7796
commit b96cd0904b
4 changed files with 20 additions and 2 deletions

View File

@@ -58,7 +58,7 @@ Docker handles the database automatically. You only need to provide quest files
3. Apply any patch schemas from [schemas/patch-schema/](./schemas/patch-schema/) in numerical order:
```bash
psql -U postgres -d erupe -f schemas/patch-schema/01_patch.sql
psql -U postgres -d erupe -f schemas/patch-schema/01-example-patch.sql
# Repeat for each patch file
```
@@ -159,7 +159,7 @@ Edit `config.json` before starting the server. The essential settings are:
| Setting | Description |
|---------|-------------|
| `Host` | Bind address. Use `127.0.0.1` for local, `0.0.0.0` for remote access |
| `Host` | IP advertised to clients. Use `127.0.0.1` for local play, your LAN/WAN IP for remote. Leave blank in config to auto-detect |
| `ClientMode` | Target client version (`ZZ`, `G10`, `Forward4`, etc.) |
| `BinPath` | Path to quest/scenario files |
| `Language` | `"en"` or `"jp"` |

View File

@@ -14,6 +14,14 @@ done
echo "Patching!"
for file in /schemas/patch-schema/*; do
[ -f "$file" ] || continue
echo " Applying $file"
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -1 -f "$file"
done
echo "Loading bundled data (shops, events, gacha)..."
for file in /schemas/bundled-schema/*; do
[ -f "$file" ] || continue
echo " Applying $file"
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -1 -f "$file"
done

10
main.go
View File

@@ -6,6 +6,7 @@ import (
"net"
"os"
"os/signal"
"path/filepath"
"runtime/debug"
"syscall"
"time"
@@ -180,6 +181,15 @@ func main() {
logger.Info(fmt.Sprintf("Server Time: %s", gametime.Adjusted().String()))
// Warn if quest files are missing — clients crash without them.
questPath := filepath.Join(config.BinPath, "quests")
if entries, err := os.ReadDir(questPath); err != nil || len(entries) == 0 {
logger.Warn("No quest files found in " + questPath)
logger.Warn("Download quest/scenario files from: https://files.catbox.moe/xf0l7w.7z")
logger.Warn("Extract into your BinPath directory (default: bin/)")
logger.Warn("Without these files, quests will not load and clients will crash.")
}
// Now start our server(s).
// Entrance server.