Some checks failed
Build & Release / build (push) Failing after 39s
- README with features, config docs, build instructions, project structure - Pipeline: add Docker CLI install step, fix DinD volume pattern, fix token generation flags (--user git -u calic --raw), proper token cleanup by name instead of fragile ID grep - .gitignore: add dist/ and *.zip Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
98 lines
2.6 KiB
Markdown
98 lines
2.6 KiB
Markdown
# Welcome Screen — Vintage Story Mod
|
|
|
|
Server-side configurable welcome dialog that opens automatically when players join. Displays Markdown content rendered as VTML (Vintage Text Markup Language) in a scrollable GUI window.
|
|
|
|
## Features
|
|
|
|
- **Auto-open on join** — dialog appears when a player connects
|
|
- **Markdown content** — write `welcome.md` in the server data directory, rendered as rich text (headings, bold, italic, links, lists, blockquotes, code)
|
|
- **Mod checker** — server compares client's installed mods against a recommended/blacklisted list and shows the result in the dialog
|
|
- **Reopen with HOME** — players can press HOME to reopen the dialog at any time
|
|
|
|
## Installation
|
|
|
|
Download the latest `welcomescreen_x.x.x.zip` from [Releases](../../releases) and place it in your server's `Mods/` directory. Do **not** extract the ZIP.
|
|
|
|
This is a **universal** mod — it must be installed on both server and client.
|
|
|
|
## Configuration
|
|
|
|
All config files are auto-generated on first run in the server's `ModConfig/` directory.
|
|
|
|
### `WelcomeScreenConfig.json`
|
|
|
|
```json
|
|
{
|
|
"Title": "Welcome",
|
|
"WelcomeFile": "welcome.md"
|
|
}
|
|
```
|
|
|
|
- `Title` — dialog window title
|
|
- `WelcomeFile` — path to the Markdown file (relative to server data dir)
|
|
|
|
### `WelcomeScreenModCheck.json`
|
|
|
|
```json
|
|
{
|
|
"Enabled": true,
|
|
"RecommendedMods": [
|
|
{ "ModId": "rpvoicechat", "DisplayName": "RPVoiceChat", "Reason": "Proximity voice chat" }
|
|
],
|
|
"BlacklistedMods": []
|
|
}
|
|
```
|
|
|
|
- `RecommendedMods` — mods the server suggests clients should have
|
|
- `BlacklistedMods` — mods the server disallows (shown as warning)
|
|
|
|
### `welcome.md`
|
|
|
|
Place this file in the server's data directory. Standard Markdown syntax is supported:
|
|
|
|
```markdown
|
|
# Server Name
|
|
|
|
Welcome to our server!
|
|
|
|
## Rules
|
|
1. Be respectful
|
|
2. No griefing
|
|
|
|
**Have fun!**
|
|
```
|
|
|
|
## Building
|
|
|
|
Requires .NET 8 SDK and the Vintage Story API DLLs in `lib/`.
|
|
|
|
```bash
|
|
# Build locally
|
|
./build.sh
|
|
|
|
# Build and install to server
|
|
./build.sh --install
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
src/
|
|
WelcomeScreenMod.cs Main mod — server/client logic, network packets, config
|
|
WelcomeScreenDialog.cs GUI dialog with scrollable VTML content
|
|
MarkdownToVtml.cs Markdown → VTML converter
|
|
resources/
|
|
modinfo.json Mod metadata (version, dependencies)
|
|
lib/
|
|
VintagestoryAPI.dll VS API reference (not distributed)
|
|
protobuf-net.dll Protobuf serialization (not distributed)
|
|
```
|
|
|
|
## CI/CD
|
|
|
|
Push a tag (`v*`) to trigger the build pipeline, which compiles the mod, packages the ZIP, and creates a Gitea release with the artifact attached.
|
|
|
|
## License
|
|
|
|
Private mod — not publicly distributed.
|