Skip to content

Show launch-time update progress on the early loading screen - #571

Closed
McCal-Codes wants to merge 1 commit into
Skidamek:mainfrom
McCal-Codes:feat/early-window-progress
Closed

McCal-Codes wants to merge 1 commit into
Skidamek:mainfrom
McCal-Codes:feat/early-window-progress

Conversation

@McCal-Codes

Copy link
Copy Markdown

Closes #568

Still new to PRs so tell me if this is too big or should be split up!

The launch update can take a while and right now you just see nothing, then the game closes. This shows what's going on as a bar on the Forge/NeoForge early loading window.

What it does:

  • New LaunchProgress in core: just holds the current stage, and while a loader attaches a display, a small daemon thread pushes it there every 100 ms. Nothing attached = it's only field writes, so Fabric and everything else are unchanged.
  • Stages: checking the server → finding sources → downloading 120 MiB / 1.2 GiB (12/430 files) - 8.5 MiB/s - 1m 05s left (reuses DownloadManager + ByteFormat) → applying → applied.
  • When the restart is required and there's no Swing window (headless), the screen says "modpack updated - the game will close, launch it again to play" for 5 seconds before exiting, instead of the game just disappearing.
  • Forge: EarlyProgressDisplay (in the shared modlauncher module) finds StartupNotificationManager by reflection, so Forge before 1.20.1 (no early window) just skips it. It also tries the NeoForge package name, used by the fml4 bootstrapper.
  • NeoForge 21.10+: the existing [Automodpack] Preload bar now gets the same live text and percentage.
  • DownloadManager: added getDownloadedBytes() / getTotalBytes().

How I tested:

  • Built the loader modules (:loader-universal:shadowJar), everything compiles including both NeoForge generations
  • formatApply / formatCheck pass
  • Ran it on Forge 1.20.1 (Better MC, ~430 mods) syncing from a LAN host: the bar showed up on the loading screen while it synced and applied, and the restart message showed before the game closed
  • Haven't been able to test on NeoForge myself

🤖 Generated with Claude Code

The update that runs at launch can take a minute or more and you just see
nothing happening, then the game closes for a restart. Now it shows what
it's doing (checking, downloading with size/speed/ETA, applying) as a bar on
the Forge/NeoForge early loading window, and the restart notice stays up for
a few seconds instead of the game just vanishing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Skidamek

Copy link
Copy Markdown
Owner

it does not resolve the issue because we have to have a universal solution that works on all versions and loaders while looking good

@McCal-Codes
McCal-Codes deleted the feat/early-window-progress branch October 21, 2026 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Launch-time update has no visible progress, and the game just closes for the restart

2 participants