# 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.