Tags
Creators
Details
Licensed CC-BY-NC-SA-4.0
Published 4 months ago
Updated last month
All versions
1.2.1
Release
Always Play 1.2.12 months ago 116
Compatibility
Minecraft: Java Edition
26.2
Platform
Fabric
Supported environments
Client-side
Changes
Always Play — 1.2.1
New
- Custom track folder selection. You can now point the mod at any folder on disk and it will read tracks directly from there - no need to copy files into the mod's folder. A "Select folder" button in the settings opens the system file picker; the default mod folder keeps being scanned alongside it.
- Nested subfolders in the music browser. If your tracks folder contains subfolders (e.g. tracks organized by album or artist), the music browser shows each one as its own collapsible group - up to two levels of nesting. Each subfolder starts collapsed the first time it's discovered; after that it's up to the player.
- Folder-based playlists. "My Playlists" now has a "Playlist from folder" button - pick an existing folder or create a new one right from the system dialog. Tracks for such a playlist are resolved from the folder's contents every time it plays: drop a file in, and it shows up automatically, no editing required.
- "Refresh" button in the music browser. Next to the search field - force a rescan of the tracks folder and the selected folder without leaving to the settings screen.
- Intelligent track prefetching system. The mod now knows and prepares up to 10 upcoming tracks in advance (navigation history, regular autoplay, playlists), not just the very next one - this eliminates freezes when manually switching music (skip forward/backward, clicking a track in the browser, autoplay, playlists).
Fixes and improvements
- Autoplay in "Custom" and "Both" modes now considers all track folders (default, selected, and their subfolders), not just the default mod folder - a track started manually from a subfolder or the selected folder no longer "loses" its folder when moving to the next track.
- The tracks folder is now scanned automatically on game launch and on world join, not only after manually opening the music browser - fixes silence on startup in "Both" mode.
- Folder scanning now runs on a background thread - large or network folders no longer freeze the UI.
- An invalid selected folder (deleted, empty, no access) now shows the player a clear message explaining why, instead of silently falling back to the default folder.
- Fixed a game freeze when manually switching tracks if the track's cache wasn't ready yet - previously the game could hang for up to 5 seconds; now there's a short (~2 sec) silent pause instead, the same as when a track finishes naturally. This fix applies consistently to skip forward/backward, clicking a track in the browser, regular autoplay, and playlist autoplay.
- Fixed a subtle bug where the startup fade-in flag could be lost when a track's start was deferred due to an unready cache, so the fade-in wouldn't apply to the actual successful playback attempt.
Internal (for development)
MusicBrowserScreenwas slimmed down: track list rendering and search/filter logic were moved into their own classes.- Added
QueuePlanner(predicts upcoming tracks without disturbing the actual playback queue state) andTrackPreloadManager(keeps a window of upcoming tracks warmed in the background, cancels preparation for tracks that are no longer relevant - e.g. during rapid skip-spamming). WavPlayer: removed the thread-blocking wait (crossfadeTono longer waits up to 5 seconds for the cache to be ready); preloaded-track cache capacity raised from 4 to 16; added a non-blocking readiness check (isReady) and preload cancellation (cancelPreload).playFromBrowserno longer duplicates track-start logic through a separate blocking path - it now goes through the shared safe mechanism (TrackPlaybackService.playNew).MusicTracker,TrackOrderManager,PlaylistOrderManager: added read-only look-ahead methods (peekForwardHistory,peekNext) that don't affect the actual playback order.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:mdwsolmY:qlPw8CSc"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:mdwsolmY:qlPw8CSc"
}

