You are viewing a potentially older version of this package. View all versions.
RDMods-CustomMainMenu-1.6.0 icon

CustomMainMenu

All-in-One CustomMainMenu: Customize everything about Main Menu & Loading Screen experience. Discord panel on Main Menu with your Discord Invite Link embedded. Made for Modpack Authors & Server Owners.

Date uploaded a day ago
Version 1.6.0
Download link RDMods-CustomMainMenu-1.6.0.zip
Downloads 619
Dependency string RDMods-CustomMainMenu-1.6.0

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2351 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2351

README

Custom Main Menu

A branded Valheim menu and loading screen overhaul for public servers, private servers, and modpack authors. Swap the logo, music, loading art, custom tips, Discord invite, and changelog text & title. Rebuilt for Latest Valheim version.

Main Menu Screenshot (Customizable)

Main Menu

Features

  • Your logo on the start screen
  • Your menu music: one track, or several that rotate (shuffled, random, in your own order, or a fixed pick)
  • Random loading-screen art when a world loads (Customizable)
  • Optional custom loading-screen tips (customtips.txt, up to 20)
  • Optional loading-screen tweaks: hide the top black bar and Valheim logo, hide the bar behind tips, or use your menu logo on the load screen
  • Move the start-menu, loading-screen and Discord panel logos up or down in CFG
  • Discord panel with your invite link
  • Custom changelog text and title
  • Optional skip of the first-run intro cinematic (on by default). Iron Gate splash still plays unless you turn skip on in CFG
  • Optional mute of start-menu ambient (wind / ocean / looping biome beds). Button clicks still follow Effects

Missing files are skipped. The rest of the menu still works.

Files

This mod does not ship branding inside BepInEx/config/anymore. Demo logo, music, changelog, and loading art live next to the DLL in plugins/defaults/ (for example BepInEx/plugins/RDMods-CustomMainMenu/defaults).

On first launch the plugin creates BepInEx/config/rdmods.custommainmenu.cfg and an empty BepInEx/config/CustomMainMenu/ folder, and copies README-HOW-TO-CUSTOMIZE.txt into that folder. Read that file first — it lists the exact filenames and the LoadingArt layout.

Put your own files in BepInEx/config/CustomMainMenu/. Those files win over defaults/, and mod updates will not overwrite them. Pack authors should ship branding in their pack’s config/CustomMainMenu/ folder, not inside this mod’s zip.

File What it does
README-HOW-TO-CUSTOMIZE.txt Step-by-step names and folder layout. Copied into config for you.
logo.png Start-menu title logo. Also accepts .jpg / .jpeg. The same file can be used on the loading screen if UseCustomLoadingLogo is on.
discordlogo.png Image on the Discord panel. Also accepts .jpg / .jpeg.
mainmenu.ogg, mainmenu2.ogg … mainmenu12.ogg Looping menu music. OGG Vorbis only. One file is all you need; add numbered files for a rotation and pick how they are chosen with [Main Menu] MusicSelectionMode. As soon as this folder holds any mainmenu*.ogg of your own, only your files are used, so the demo track never mixes into your rotation. A file that is not really OGG Vorbis (an mp3 or wav renamed to .ogg) plays as silence rather than being skipped — convert it properly, and check BepInEx/LogOutput.log for an FMOD Unsupported file or audio format line if a track is quiet.
changelog.txt Text shown in the changelog panel. Edits apply live; no restart. Leave it empty to hide the panel (when custom text is on).
customtips.txt Loading-screen tips when [Loading Screen] UseCustomTips is on. One tip per line, up to 20. If missing, the copy in defaults/ is used. Off keeps Valheim's own tips.
LoadingArt/art1 to art12 Loading screen art. PNG or JPG. If this folder has any image, only your files are used. If it is empty, demo art from defaults/LoadingArt/ is used.

If a single file (logo, Discord image, changelog, custom tips) is missing from config, the matching file in defaults/ is used. Music and the LoadingArt folder are folder-level checks instead, so once config holds any mainmenu*.ogg or any art file, only your own files are used for those.

Config

BepInEx/config/rdmods.custommainmenu.cfg is created on first launch. Your existing values are kept when the mod updates; only new keys are added.

The Discord panel title and button label are fixed in the plugin. The invite URL is not.

Section Setting What it does
General Enabled Turns the whole mod on or off. Default true.
General EnableLogging Extra log lines. Default false.
Startup SkipIronGateSplash Skip Coffee Stain / Iron Gate / game logo splash. Default false (vanilla splash plays). Change applies on the next launch.
Startup SkipIntroCinematic Skip the first-run 1.0 intro cutscene. Default true. false lets that cinematic play. Does not skip new-world intro, EULA, or the Cinematics menu.
Main Menu MuteAmbient Mute ocean, wind, and looping biome ambient on the start menu. Button clicks still follow Effects. Default true. Recommended to keep True so your main menu music is clean.
Main Menu LogoOffsetY Move the start-menu logo up or down. Default 0 (current placement). Negative moves it down, positive moves it up.
Main Menu MusicSelectionMode How the next track is chosen when you have more than one music file: Random (repeats freely), Shuffle (every file once before any repeat), InOrder (follows MusicOrder), Fixed (always MusicFixedSlot). Default Shuffle. A track is picked each time the main menu opens, including after you log out, and loops until you enter a world. Changes apply on the next menu visit.
Main Menu MusicOrder Which files to use and in what order, as slot numbers, for example 3,1,2. Empty uses every file found, lowest first. Listing only some slots also excludes the others, in every mode. Default empty.
Main Menu MusicFixedSlot Slot played when MusicSelectionMode is Fixed. 1 to 12, ignored by the other modes. Default 1.
Loading Screen UseCustomTips Use customtips.txt on the loading screen. Off keeps Valheim's own tips. Default false.
Loading Screen HideTopLetterbox Hide the top black bar and Valheim's fiery loading logo. The bottom tip bar stays. Default false.
Loading Screen HideTipBackdrop Hide the black bar behind the loading tips. Tip text and spinner stay. Default false.
Loading Screen UseCustomLoadingLogo Use the same logo.png as the start menu on the loading screen. Off keeps Valheim's fiery logo. Default false.
Loading Screen ShowCustomLogoWhenLetterboxHidden If the top bar is hidden, still show your custom loading logo. Does nothing unless UseCustomLoadingLogo is on. Default false.
Loading Screen LoadingLogoOffsetY Move the loading-screen logo up or down. Default 0 (current placement). Negative moves it down, positive moves it up.
Changelog Enabled Show the changelog panel and its menu button. Default true.
Changelog UseCustomText Fill the panel from changelog.txt. Default true.
Changelog OverrideVanillaText On: only your text. Off: your text above Valheim’s own notes. Default true.
Changelog AutoOpen Open the panel when the menu appears. The changelog button still collapses it. Default true.
Changelog TitleText Title on the open Changelog panel. Default empty (vanilla “Changelog”). The collapse button always stays “Changelog”.
Discord Panel VisibleOnlyOnStartMenu When on, the panel shows only on the main Start Game screen. Hidden on character/world select, cinematics, EULA, and during load. Default true.
Discord Panel DiscordInviteUrl Opened by the panel button. Must start with http:// or https://. Empty disables the link. Default https://discord.gg/yX9tv3FXY6.
Discord Panel DiscordLogoOffsetY Move the Discord panel's logo image up or down. Default 0, range -150 to 150. Negative moves it down, positive up. The panel title and the Join button stay where they are, so past about 80 the logo starts to overlap them.

Credits

Thanks to Soloredis for helping fix the Main Menu music slider not working.

Support

Questions, feedback, and bug reports: discord.gg/yX9tv3FXY6

CHANGELOG

Changelog

1.6.0

  • Multiple Menu Tracks: Your main menu can now have a whole playlist instead of a single song. Drop mainmenu2.ogg, mainmenu3.ogg ... up to mainmenu12.ogg next to your mainmenu.ogg and a track is picked every time the main menu appears, including when you log out of a world, then loops until you enter a world. Gaps in the numbering are fine, and one file behaves exactly as before.
  • You Choose How It Picks: New MusicSelectionMode setting with four options: Shuffle (default, plays every track once before any repeat), Random, InOrder, and Fixed. Use MusicOrder to set your own sequence or to use only some of your files (for example 3,1,2, which also excludes the rest in every mode), and MusicFixedSlot to always play one specific track. The last track played is remembered between launches, so InOrder keeps advancing and you won't open the game on the same song twice in a row.
  • Discord Logo Positioning: New DiscordLogoOffsetY setting moves the Discord panel's image up or down (-150 to 150) so you can line your artwork up exactly how you want it. The panel title and the Join button stay where they are, and edits apply instantly while you sit in the menu.
  • Music Failure Fix: A missing or unreadable music file no longer kills the menu music for the rest of the session. The mod now skips that file, plays another one of yours instead, and if none of them can be played it hands menu music back to the game rather than leaving you in silence.
  • Your Settings Are Kept: Nothing was renamed or removed. The four new keys are simply added to your existing CFG with sensible defaults, so a current setup sounds and looks exactly as it does today.
  • Heads Up, Spare Tracks Now Play: Previous versions read only mainmenu.ogg and ignored everything else. If you kept backup songs named mainmenu2.ogg to mainmenu12.ogg in your config folder, they are now part of the rotation. Rename them (for example mainmenu_old.ogg) to keep them out. Any other name is still ignored.
  • Heads Up, Customize Guide Refreshed: README-HOW-TO-CUSTOMIZE.txt in config/CustomMainMenu/ is updated with the new multi-track and Discord instructions, which replaces that one file. Your logo, music, changelog, tips and loading art are untouched as always.
  • Note On Audio Formats: A file that isn't really OGG Vorbis (an .mp3 or .wav simply renamed to .ogg) plays as silence rather than being skipped, because the mod never decodes the file itself. Convert it properly; if a track is silent, look for Unsupported file or audio format in your BepInEx log.
  • Still Featherweight: No networking, no per-frame code, and the same 13 game hooks as 1.5.0. Memory use does not grow with the number of tracks, as only the track being played is ever loaded.

1.5.0

  • Massive Performance Boost: Completely overhauled the mod's core code. Removed heavy per-frame checks and reduced game hooks from 49 down to 13 for a noticeably smoother experience.
  • Memory Optimization: Custom menu music is now loaded in a compressed format, dropping its RAM usage from ~46.5MB down to just ~3.4MB. The audio track is also completely cleared from memory the moment you load into a world.
  • Steam Join Fix: Using Steam "Join Game" links launch commands while the game is completely closed will no longer be accidentally cancelled by the intro skip feature.
  • Audio Bug Fixes: Fixed multiple bugs that caused the game's audio to permanently mute. This includes fixes for failed server joins, hitting "Back" in the Cinematics menu, and dismissing the vanilla "low disk space" warning.
  • Enhanced Compatibility: The mod now plays much nicer with custom audio mods (like Expand World Music and ZoneAudio). It also safely interacts with other mods that alter the main menu UI without hiding their custom buttons.
  • Dedicated Server Smart-Disable: The mod now detects if it is running on a headless Dedicated Server and completely disables itself, saving server boot time and preventing console errors.
  • Reliable Loading Music: The music fade-out transition on loading screens is now 100% reliable, even if you have all other custom loading screen options turned off.
  • UI & File Stability: The Discord panel has been rebuilt to be break-resistant. Additionally, live-editing your changelog.txt while on the character or settings screen will no longer forcibly snap you back to the main menu.
  • Safer Configs & Console: The config file is now only rewritten when a setting actually changes, preventing file corruption. Also, if a broken main menu music file is used, it will only report the error once instead of spamming your console on every screen transition.

1.4.4

  • BepInExPack Update: Updated mods dependancy string for latest BepInExPack.
  • Icon: Icon reverted to previous version
  • Fully Functional: Mod is still fully compatiable with latest Valheim (1.0.16) and BepInExPack (5.4.2351) versions.

1.4.3

  • Custom Loading Tips: You can now write your own loading screen messages! Just enable the feature in CFG and type your tips into a customtips.txt file (one tip per line, max 20).
  • Custom Loading Screen Logo: You can now display your custom main menu logo on the loading screen as well.
  • Adjustable Logo Positioning: Easily move your logos up or down on both the Main Menu and the Loading Screen to get the perfect alignment.
  • Cleaner Loading Screens: Added new customization options to hide the top black bar, remove the default fiery Valheim logo, and make the background behind the loading tips transparent for a sleeker look. Off by default.
  • Memory Optimization: The start-menu logo and Discord panel image are now properly cleaned up when navigating menus, preventing leftover copies from piling up and draining performance.

1.3.1

  • Valheim Update Compatibility: Updated to fully support Valheim versions 1.0.14 and 1.0.15. This also cleans up some harmless console errors that started appearing after IronGate added its own built-in feature to skip intro cinematics.

1.3.0

  • Mod was taken down on the request of Azumatt due to original mod referencing code from his ChangeOfScenery mod. This reupload removes any and all reference to his code. This also removes the custom boat scene the mod used and now by default references the vanilla night scene I have instead. I would like to apologize to Azumatt for using his code in my mod without permission or credits. The boat scene will return if I get his explicit permission in a future update with proper credits. All the other functionality still remains the same, just menu scenery has reverted to vanilla with night time ambiance instead.
  • This change also removes some of the elements in the CFG, it is advisable to delete old CFG and let new one generate but old CFGs should still cause no conflict.

1.2.7

  • Volume Control Fix: Custom menu music now properly respects the in-game Music and Master volume sliders. Thanks Soloredis for his help fixing this!
  • New MuteAmbient Setting: Added a MuteAmbient option under [Menu Scenery] (defaults to true) to silence background wind and ocean noise for a cleaner music experience. Set to false if you want vanilla ambient sounds in Main Menu enabled.
  • Asset Protection: Default assets are now stored safely in plugins/defaults/. Mod updates will no longer overwrite custom branding placed in config/CustomMainMenu/. Please read the newly created README-HOW-TO-CUSTOMIZE.txt in config/CustomMainMenu/ for more info. Thanks Soloredis for reporting this!

1.2.4

  • Added SkipIronGateSplash and SkipIntroCinematic CFG options to optionally bypass the startup splash screen and opening cinematic.

1.2.2

  • Valheim 1.0.12 Compatibility: Refactored the code to ensure full compatibility with the latest game update.
  • Reduced Image File Sizes: The Loading Screen folder now supports JPG/JPEG images in addition to PNGs, allowing you to compress your loading screen art.
  • Customizable Changelogs: Server and modpack authors can now edit the changelog. A new CFG entry allows you to change both the changelog body text and the title of the viewer.
  • Automatic Intro Skip: The game now automatically skips the introductory cutscene, taking you directly to the main menu.

1.0.0