0.9.2
Compatibility
Required content
Changes
Requires Fabric API 0.153.0+1.26.2 or newer
v0.8.0 → v0.9.0 — Book page-flip animation.
-
Page-change animation: clicking any tab in the book (Main or the 4 side tabs) now plays a page-flipping animation before showing the new content, instead of an instant switch.
-
Several rounds of fixes on that animation.
-
Page-turn sound: added the sound (converted from mp3 to ogg) that plays when the animation starts, played in full without trimming.
-
More readable quest descriptions: the text box on the right page was enlarged (from 106×147 to 119×157 px) to use the actual space available inside the red border, and text now wraps dynamically line by line instead of getting truncated with "..." when it didn't fit.
— Real Quest Chest (previously static)
-
The Quest Chest is now a real chest: it used to be a static 3D model with no animation (QuestChestBlock/QuestChestBlockEntity reimplemented everything from scratch). Now they directly extend Minecraft's real classes (ChestBlock/ChestBlockEntity), inheriting the real lid animation, sounds, and double-chest merging.
-
Custom renderer with an independent gold texture (textures/entity/chest/quest_chest.png) — doesn't override any vanilla resource, so normal chests in the game stay untouched.
-
All existing quest logic was preserved as-is (giving the book the first time, marking quests as started, saving the spawn biome, saving the chest position) — only the point where the chest opens was adapted to defer to real vanilla behavior.
-
Removed an old mixin that was never actually applied (wasn't even registered) and could now have accidentally affected real vanilla chests.
-
File cleanup: removed the 6 old flat static-chest textures, orphaned models/items, and a duplicate loot table.
— Bug Fixes
-
"The Forgotten Fortress" quest could never be completed. It was missing its Stronghold detection trigger entirely — no player could finish it no matter what they did. Added real structure detection for it, tracked independently from "The Lost Fortress."
-
67 of the 98 quests displayed a different reward than what they actually granted. For example, "Unbreakable!" promised 32x Oak Planks in the book but actually granted 4 Netherite Ingots. Fixed the book text so it matches the real reward granted by the code in every case.
-
Special case: "Into the Unknown," "Playing with Fire," and "Under the Waves" promised specific potions (Fire Resistance / Water Breathing), but the code was granting a Potion with no effect assigned. The text now just says "Potion" to reflect reality — if the original intent was for those potions to actually carry their effect, that's a separate fix worth considering.
-
The "Get X of [resource]" quests (coal, iron, copper, gold, redstone, lapis lazuli, diamond, Ancient Debris, emerald — 20 quests total) counted ore blocks mined instead of the resource actually obtained. This caused two concrete problems:
-
With Silk Touch, the block gives you the ore (e.g. "Iron Ore"), not the resource itself — progress still counted even though the player never received the item.
-
With Fortune, you can get several items from a single block — previously it only added 1 per block, undercounting real progress. Now it checks how much you currently have in your inventory, regardless of how you got it (mining, trading, looting a chest).
-
The HUD (on-screen pinned quest tracker) for "Staying Warm" said "Collect 10 Coal by mining" — same outdated wording as the bug above. Fixed to "Get 10 Coal," consistent with the book and the corrected mechanic.
— Dead Code & Unused File Cleanup
-
QUEST_NEW_HOME constant defined but never referenced anywhere.
-
Duplicate, dead hasQuestBook() method in QuestChestBlock.java (the real logic was already handled a few lines above) + its orphaned import.
-
synced variable that was declared, reassigned once to the same value, and never read.
-
Two empty Mixin config files (homequest.mixins.json, homequest.client.mixins.json) — there isn't a single @Mixin class anywhere in the project. The client one wasn't even registered in fabric.mod.json.
-
Orphaned quest_book_full.png texture, not referenced by any json or code.
-
3 empty folders, including a misplaced assets/homequest/loot_tables/blocks — loot tables belong under data/, not assets/.
— Save Performance & Reliability
-
Before: every single block broken or placed, for every player, re-read and rewrote the entire data file for all players, synchronously. With several players or fast building, this could cause noticeable microlag on real servers.
-
Now: data is loaded once (when the server/world starts) and kept in an in-memory cache. Saving became deferred: a "changes pending" flag is set instantly (no disk access), and the actual write happens roughly every 2 seconds, only if something changed.
-
Added safety nets so progress is never lost: auto-save when each player disconnects, and a final save when the server shuts down (or the world closes in singleplayer).
-
Atomic writes: data is now written to a temporary file first, then swapped in at the very end. Previously, if the server crashed mid-write, the data file for every player could end up corrupted; that's no longer possible.
— Bilingual System (Spanish / English) — New
-
A language selection window appears the first time a player opens the Quest Book in a world. The choice is saved per player on the server, so it won't ask again.
-
Full translation of the book: all 98 quests (name, description, reward) plus the entire UI — tabs (Main/Explorer/Miner/Builder/Engineer), buttons ("Claim" / "Pin to HUD"), and statuses ("In progress" / "Completed" / "Claimed").
-
Full translation of the HUD (on-screen pinned quest tracker): all 97 generic quests, the special "First Home" checklist (Chest/Bed/Crafting Table/Furnace), and the dynamic progress bars (e.g. "Blocks: 34/250").
-
An options button (⚙) in the bottom-right corner of the book, kept inside the page's red border and never overlapping the existing buttons, to reopen the language selector at any time in case someone picked the wrong one.
-
Left out of this pass (out of scope for now): the chat messages that appear when completing a quest are still Spanish-only.
— Renaming
-
Mod name: Enhanced Vanilla Quests → Enhanced-vq. Version: 0.9.0 → 0.9.2.
-
Updated Gradle's archives_base_name (enhanced-vanilla-quests → enhanced-vq), so the built .jar is now enhanced-vq-0.9.2.jar.
-
The internal mod ID (homequest), Java package (com.homequest), and asset namespace were deliberately left untouched — changing those would have been a much riskier change (breaks compatibility with worlds already tested on it) and unnecessary for a simple public-facing rename.
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:MPdfvWpE:nCbfSK2p"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:MPdfvWpE:nCbfSK2p"
}

