• 4/10/26 3:42 am
- 133 views • 0 today
- save_alt 3 downloads
- Game Version
- Minecraft 1.20.1
- Progress
- 100% complete
1
# Welcome Screen
**A configurable fullscreen welcome screen for Minecraft servers.**
When a player joins your server, a fullscreen overlay appears with your rules, terms of service, or any message you want. Players must click Accept to play — or get kicked. Simple, clean, fully server-configurable.
---
## How It Works
1. Player joins the server2. A fullscreen welcome screen appears with your title, message, and buttons3. Player reads your rules and clicks **Accept** to continue playing4. If they click **Refuse**, they get disconnected with a configurable kick message5. Once accepted, the player is remembered — they won't see the screen again unless you want them to
Everything is configured server-side. The client just displays what the server sends — no client config needed.
---
## Features
### Fullscreen Welcome Message- **Title and subtitle** at the top — your server name, welcome greeting, whatever you want- **Body text** — rules, terms of service, important announcements (scrollable if long)- **Accept / Refuse buttons** — refuse kicks the player with a custom message- Supports Minecraft formatting codes for colors and styling
### Acceptance Tracking- Players who accept are saved to `welcomescreen_accepted.txt`- They won't see the screen again on future logins- Clear the file to force everyone to re-accept (useful after rule changes)- Or enable "show every login" to display it every time
### Countdown Timer- Optional delay before the Accept button becomes clickable- Forces players to actually read your rules before speed-clicking past them- Configurable in seconds — set to 0 to disable- Large countdown number displayed on screen during the wait- Option to allow or block Refuse during the countdown
### Info Menu- Optional third button that opens a multi-page info browser- Driven by a JSON file (`welcomescreen_pages.json`) with categories and pages- Each page has a title, body text, and optional clickable URL- Perfect for: mod list, Discord link, server rules breakdown, donation info, staff list
### Server-Driven- All content (title, body, buttons, delay, pages) is sent from the server to the client via network packets- Change the config, restart (or relog), and players see the updated content- No client-side configuration needed — the mod just needs to be installed
---
## Quick Start
### 1. InstallDrop `welcomescreen-1.20.1-1.0.0.jar` into both the server and client `mods/` folders. Players must have the mod installed.
### 2. ConfigureEdit `welcomescreen.toml` (auto-generated on first run):
```tomlenabled = truetitle = "Welcome to Our Server"subtitle = "Please read the rules"bodyLines = [ "1. Be respectful to all players", "2. No griefing or stealing", "3. No cheating or exploits", "4. Have fun!"]acceptButtonText = "I Accept"refuseButtonText = "Disconnect"kickMessageRefuse = "You must accept the rules to play."acceptDelaySeconds = 5```
### 3. Add Info Pages (optional)Edit `welcomescreen_pages.json`:
```json{ "categories": [ { "title": "Server Info", "pages": [ { "id": "rules", "buttonText": "Full Rules", "title": "Server Rules", "bodyLines": ["Detailed rules go here..."] }, { "id": "discord", "buttonText": "Discord", "title": "Join Our Discord", "bodyLines": ["Click the link below to join!"], "url": "discord.gg/your-invite", "openInBrowser": true } ] } ]}```
### 4. TestJoin the server. The welcome screen should appear. Click Accept. Relog — the screen should not appear again (unless `showEveryLogin` is true).
---
## Configuration Reference
All settings are in `welcomescreen.toml` (auto-generated on first run):
### Content
| Setting | Default | Description ||---------|---------|-------------|| `enabled` | `true` | Master toggle — disable to skip the screen entirely || `title` | `"Welcome"` | Main title text (supports formatting codes) || `subtitle` | `""` | Subtitle below the title || `bodyLines` | `[]` | Array of body text lines (scrollable) || `centerBodyText` | `false` | Center-align body text instead of left-align |
### Buttons
| Setting | Default | Description ||---------|---------|-------------|| `acceptButtonText` | `"Accept"` | Label for the accept button || `refuseButtonText` | `"Refuse"` | Label for the refuse button || `kickMessageRefuse` | `"You must accept to play."` | Message shown when kicked for refusing || `kickMessageEarly` | `"Please wait before accepting."` | Message if they somehow accept during delay |
### Behavior
| Setting | Default | Description ||---------|---------|-------------|| `showEveryLogin` | `false` | Show the screen every time the player joins || `pauseGame` | `false` | Pause the game while screen is open (singleplayer only) || `acceptDelaySeconds` | `0` | Seconds before Accept becomes clickable (0 = no delay) || `applyDelayEveryLogin` | `false` | Apply the delay every login, not just the first time || `allowRefuseDuringDelay` | `true` | Let players refuse before the delay expires || `bigCountdownTextFormat` | `"%d"` | Format string for the countdown number |
### Info Menu
| Setting | Default | Description ||---------|---------|-------------|| `infoButtonEnabled` | `true` | Show the Info button || `infoButtonText` | `"Info"` | Label for the info button || `infoMenuTitle` | `"Server Information"` | Title of the info menu screen |
Info page content is defined in `welcomescreen_pages.json` (separate file, auto-generated with example content).
---
## How Acceptance Is Tracked
Accepted players are stored in `config/welcomescreen_accepted.txt` — one UUID per line. This file is:
- **Created automatically** on first accept- **Checked on each login** — if the player's UUID is in the file, the screen is skipped- **Clearable** — delete the file or its contents to force all players to re-accept- **Server-side only** — the client doesn't track anything
---
## Compatibility
| | ||---|---|| Minecraft | 1.20.1 || Forge | 47.2.20 or newer || Java | 17 or newer || Mohist / Arclight | Fully supported || Singleplayer | Supported || Multiplayer | Players must have the mod installed |
The mod is lightweight — one network packet on login, no tick handlers, no persistent data beyond the acceptance file.
---
## Installation
### Client (required to see the screen)1. Install Minecraft Forge 1.20.12. Put `welcomescreen-1.20.1-1.0.0.jar` in your `mods/` folder3. Launch Minecraft
### Dedicated Server1. Put `welcomescreen-1.20.1-1.0.0.jar` in your server's `mods/` folder2. Restart the server3. Edit `welcomescreen.toml` and `welcomescreen_pages.json` to customize4. Players must have the same mod version installed
---
## License & Credit
- **License**: All Rights Reserved- **Author**: Luc Bellefeuille
**A configurable fullscreen welcome screen for Minecraft servers.**
When a player joins your server, a fullscreen overlay appears with your rules, terms of service, or any message you want. Players must click Accept to play — or get kicked. Simple, clean, fully server-configurable.
---
## How It Works
1. Player joins the server2. A fullscreen welcome screen appears with your title, message, and buttons3. Player reads your rules and clicks **Accept** to continue playing4. If they click **Refuse**, they get disconnected with a configurable kick message5. Once accepted, the player is remembered — they won't see the screen again unless you want them to
Everything is configured server-side. The client just displays what the server sends — no client config needed.
---
## Features
### Fullscreen Welcome Message- **Title and subtitle** at the top — your server name, welcome greeting, whatever you want- **Body text** — rules, terms of service, important announcements (scrollable if long)- **Accept / Refuse buttons** — refuse kicks the player with a custom message- Supports Minecraft formatting codes for colors and styling
### Acceptance Tracking- Players who accept are saved to `welcomescreen_accepted.txt`- They won't see the screen again on future logins- Clear the file to force everyone to re-accept (useful after rule changes)- Or enable "show every login" to display it every time
### Countdown Timer- Optional delay before the Accept button becomes clickable- Forces players to actually read your rules before speed-clicking past them- Configurable in seconds — set to 0 to disable- Large countdown number displayed on screen during the wait- Option to allow or block Refuse during the countdown
### Info Menu- Optional third button that opens a multi-page info browser- Driven by a JSON file (`welcomescreen_pages.json`) with categories and pages- Each page has a title, body text, and optional clickable URL- Perfect for: mod list, Discord link, server rules breakdown, donation info, staff list
### Server-Driven- All content (title, body, buttons, delay, pages) is sent from the server to the client via network packets- Change the config, restart (or relog), and players see the updated content- No client-side configuration needed — the mod just needs to be installed
---
## Quick Start
### 1. InstallDrop `welcomescreen-1.20.1-1.0.0.jar` into both the server and client `mods/` folders. Players must have the mod installed.
### 2. ConfigureEdit `welcomescreen.toml` (auto-generated on first run):
```tomlenabled = truetitle = "Welcome to Our Server"subtitle = "Please read the rules"bodyLines = [ "1. Be respectful to all players", "2. No griefing or stealing", "3. No cheating or exploits", "4. Have fun!"]acceptButtonText = "I Accept"refuseButtonText = "Disconnect"kickMessageRefuse = "You must accept the rules to play."acceptDelaySeconds = 5```
### 3. Add Info Pages (optional)Edit `welcomescreen_pages.json`:
```json{ "categories": [ { "title": "Server Info", "pages": [ { "id": "rules", "buttonText": "Full Rules", "title": "Server Rules", "bodyLines": ["Detailed rules go here..."] }, { "id": "discord", "buttonText": "Discord", "title": "Join Our Discord", "bodyLines": ["Click the link below to join!"], "url": "discord.gg/your-invite", "openInBrowser": true } ] } ]}```
### 4. TestJoin the server. The welcome screen should appear. Click Accept. Relog — the screen should not appear again (unless `showEveryLogin` is true).
---
## Configuration Reference
All settings are in `welcomescreen.toml` (auto-generated on first run):
### Content
| Setting | Default | Description ||---------|---------|-------------|| `enabled` | `true` | Master toggle — disable to skip the screen entirely || `title` | `"Welcome"` | Main title text (supports formatting codes) || `subtitle` | `""` | Subtitle below the title || `bodyLines` | `[]` | Array of body text lines (scrollable) || `centerBodyText` | `false` | Center-align body text instead of left-align |
### Buttons
| Setting | Default | Description ||---------|---------|-------------|| `acceptButtonText` | `"Accept"` | Label for the accept button || `refuseButtonText` | `"Refuse"` | Label for the refuse button || `kickMessageRefuse` | `"You must accept to play."` | Message shown when kicked for refusing || `kickMessageEarly` | `"Please wait before accepting."` | Message if they somehow accept during delay |
### Behavior
| Setting | Default | Description ||---------|---------|-------------|| `showEveryLogin` | `false` | Show the screen every time the player joins || `pauseGame` | `false` | Pause the game while screen is open (singleplayer only) || `acceptDelaySeconds` | `0` | Seconds before Accept becomes clickable (0 = no delay) || `applyDelayEveryLogin` | `false` | Apply the delay every login, not just the first time || `allowRefuseDuringDelay` | `true` | Let players refuse before the delay expires || `bigCountdownTextFormat` | `"%d"` | Format string for the countdown number |
### Info Menu
| Setting | Default | Description ||---------|---------|-------------|| `infoButtonEnabled` | `true` | Show the Info button || `infoButtonText` | `"Info"` | Label for the info button || `infoMenuTitle` | `"Server Information"` | Title of the info menu screen |
Info page content is defined in `welcomescreen_pages.json` (separate file, auto-generated with example content).
---
## How Acceptance Is Tracked
Accepted players are stored in `config/welcomescreen_accepted.txt` — one UUID per line. This file is:
- **Created automatically** on first accept- **Checked on each login** — if the player's UUID is in the file, the screen is skipped- **Clearable** — delete the file or its contents to force all players to re-accept- **Server-side only** — the client doesn't track anything
---
## Compatibility
| | ||---|---|| Minecraft | 1.20.1 || Forge | 47.2.20 or newer || Java | 17 or newer || Mohist / Arclight | Fully supported || Singleplayer | Supported || Multiplayer | Players must have the mod installed |
The mod is lightweight — one network packet on login, no tick handlers, no persistent data beyond the acceptance file.
---
## Installation
### Client (required to see the screen)1. Install Minecraft Forge 1.20.12. Put `welcomescreen-1.20.1-1.0.0.jar` in your `mods/` folder3. Launch Minecraft
### Dedicated Server1. Put `welcomescreen-1.20.1-1.0.0.jar` in your server's `mods/` folder2. Restart the server3. Edit `welcomescreen.toml` and `welcomescreen_pages.json` to customize4. Players must have the same mod version installed
---
## License & Credit
- **License**: All Rights Reserved- **Author**: Luc Bellefeuille
More like this
6902466
7



Have something to say?