EndCore Framework

en-loading

The EndCore loading screen with progress, a boot-log console, survival tips and music, kept up until character selection is ready.

en-loading is the screen players see while they connect. It is styled as a field terminal: the EndCore mark and wordmark ("Apocalyptic Survival"), a progress bar with status text, a typed boot-log console, rotating survival tips ("Field Notes") and looping background music that fades in over 4 seconds at 35% volume.

Progress follows the game's own loading events. When the game has finished loading, the screen stays up showing "Locating survivors" until character selection is ready, so players never see an empty world.

At a glance

Depends onNothing. The resource has no Lua
Manifestloadscreen 'html/index.html', loadscreen_manual_shutdown 'yes'
Closed byen-multicharacter
Database tablesNone
Config filesNone; edit html/app.js

How it works

  • loadProgress events set the bar from loadFraction.
  • Each loadscreen phase event moves the bar to a fixed percentage and adds a console line (see PHASES below).
  • initFunctionInvoking maps its index and count into the 45-90% range.
  • onLogLine only surfaces "Mounting ..." resource lines in the console.
  • 450 ms after endInitFunction, the bar goes to 100% with "Locating survivors".
  • If the browser blocks autoplay, the music retries on the next load message or a click.

The page is fully self-contained. It cannot use en-ui, because it runs before any resource UI is mounted.

Who closes it

Because the manifest sets loadscreen_manual_shutdown 'yes', the screen only closes when a script asks. en-multicharacter calls ShutdownLoadingScreen() and ShutdownLoadingScreenNui() once the character roster is on screen.

Warning

If you replace en-multicharacter, your selector must call both ShutdownLoadingScreen() and ShutdownLoadingScreenNui(), or players stay on the loading screen forever.

Configuration

There is no config file. Edit these values in html/app.js:

ConstantDefaultWhat it does
FIELD_NOTES14 tip stringsRotating survival tips
PHASESsee belowLoadscreen event to { pct, text, log }
INIT_LABELSMAP, BEFORE_MAP_LOADED, AFTER_MAP_LOADED, SESSION_INITStatus labels for init phases
MUSIC_VOLUME0.35Music volume
FADE_MS4000Music fade-in time

Default PHASES percentages:

EventProgress
startInitFunction5%
startDataFileEntries15%
performMapLoadFunction35%
startInitFunctionOrder45%
endInitFunction92%

Adding your own tips:

js
// html/app.js
const FIELD_NOTES = [
  'Noise carries. Suppressed weapons keep hordes away.',
  'Safe zones end every chase. Run for the checkpoint.',
  'Radiation builds up slowly. Leave hot zones before your Geiger counter screams.',
];

Rebranding

  • Replace html/encore.mp3 to change the music.
  • Replace html/endcore.svg to change the mark.
  • The build number in the top rail is the #build element in html/index.html (currently 1.1.0).

en-loading has no exports, commands, events or state bags.