promotional bannermobile promotional banner

WelcomScreen

Server-enforced, full-screen onboarding welcome screen for Minecraft.

File Details

welcomescreen-1.20.1-2.0.0.jar

  • R
  • Apr 7, 2026
  • 36.60 KB
  • 26
  • 1.20.1
  • Forge

File Name

welcomescreen-1.20.1-2.0.0.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:welcomscreen-1405094:7889460")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Welcome Screen v2.0.0 for Minecraft 1.20.1

A configurable fullscreen welcome screen that greets players when they join your server.

Ported from 1.12.2 to 1.20.1. Players must accept your rules or terms before they can play — or get kicked. Simple, clean, and fully server-configurable.

Requires Java 17+ and Forge 47.2.20+. Works on Mohist and Arclight hybrid servers.


What It Does

When a player joins, a fullscreen overlay appears with:

  • Title and subtitle — your server name, welcome message, whatever you want
  • Body text — rules, terms of service, important info (scrollable)
  • Accept / Refuse buttons — refuse kicks the player with a configurable message
  • Countdown timer — optional delay before the Accept button becomes clickable (prevents speed-clicking past your rules)
  • Info button — opens a multi-page info menu with categories and pages (driven by a JSON file on the server)

Everything is configured server-side. The client just displays what the server sends — no client config needed.


Features

  • Fully server-driven — title, body, buttons, delay, pages are all sent from the server to the client via network packets. Change the config, players see the new content on next login.
  • Accept tracking — once a player accepts, they're recorded in welcomescreen_accepted.txt. They won't see the screen again unless you clear the list or enable "show every login."
  • Configurable delay — force players to wait X seconds before they can accept. Great for making sure they actually read your rules.
  • Info menu — a built-in multi-page browser for server info, mod lists, Discord links, etc. Defined in welcomescreen_pages.json with categories and pages. Pages can include clickable URLs.
  • Kick on refuse — players who click Refuse are disconnected with a configurable message
  • Pause game — optionally pauses singleplayer (irrelevant on servers, but works)

What Changed from 1.12.2

Port to 1.20.1

The entire mod was rewritten for modern Forge:

  • @Mod annotation and lifecycle updated for Forge 1.20.1
  • Proxy system (ClientProxy / CommonProxy) removed — login handling moved directly into the main mod class
  • Config migrated from Configuration file API to ForgeConfigSpec (generates welcomescreen.toml)
  • Networking migrated from SimpleNetworkWrapper to SimpleChannel with messageBuilder pattern
  • GUI rewritten from GuiScreen to Screen with GuiGraphics, Button.builder(), and GLFW key constants
  • Text rendering updated for Component.literal() and FormattedCharSequence
  • Mouse/keyboard input uses modern mouseScrolled() / keyPressed() instead of legacy handlers

Fixes

  • Server crash on startup — the packet handler no longer references client-only classes (Screen, Minecraft) on the server side. Client rendering is isolated in a separate class to prevent NoClassDefFoundError on dedicated servers.
  • URL confirmation — uses the modern ConfirmLinkScreen instead of the deprecated GuiConfirmOpenLink
  • Countdown scaling — large countdown text uses PoseStack transforms instead of legacy GlStateManager

Configuration

All settings are in welcomescreen.toml (auto-generated on first run):

Setting Default Description
enabled true Master toggle
showEveryLogin false Show screen every time, not just first join
pauseGame false Pause singleplayer while screen is open
acceptDelaySeconds 0 Seconds before Accept becomes clickable
allowRefuseDuringDelay true Let players refuse before the delay expires
title "Welcome" Main title text
subtitle "" Subtitle below the title
bodyLines [] Array of body text lines (scrollable)
acceptButtonText "Accept" Accept button label
refuseButtonText "Refuse" Refuse button label
kickMessageRefuse "You must accept to play." Kick message on refuse
infoButtonEnabled true Show the Info button

The info pages are defined in welcomescreen_pages.json — a JSON file with categories and pages, each with a title, body, and optional URL.


Requirements

Minecraft 1.20.1
Forge 47.2.20 or newer
Java 17 or newer

Drop welcomescreen-1.20.1-2.0.0.jar into your mods/ folder. Config and pages file generate on first run. Edit them, restart (or relog for most changes), and you're set.


Made by Luc Bellefeuille.