Journey Mode
ModA Minecraft mod that allows you to unlock unlimited access to items after collecting enough of them.
Type
Mod
Modrinth Downloads
594
Modrinth ID
OMRJLjO7
Last Updated
May 19, 2026
Description
Journey Mode
A Minecraft mod that allows you to unlock unlimited access to items after collecting enough of them. Available natively for both Fabric and NeoForge on Minecraft 1.21.1.
๐ฎ What is Journey Mode?
Journey Mode transforms your Minecraft experience by allowing you to unlock items permanently after collecting enough of them. Once unlocked, you can retrieve unlimited copies of that item whenever you need them!
Perfect for:
- ๐๏ธ Builders - Never run out of building materials
- โ๏ธ Modpack Players - Streamline repetitive crafting
- ๐ฏ Completionists - Track your item collection progress
- ๐ฎ Casual Players - Reduce grinding after initial collection
๐ธ Screenshots
Deposit Tab - Empty
The deposit tab where you begin your journey
Deposit Tab - With Item
Place an item to see how many you need to unlock it
Journey Tab - Unlocked Items
Access all your unlocked items with infinite retrieval
โจ Features
Core Gameplay
- Reconstructed Core Engine: Revamped and rebuilt back from the verified stable 1.4.0 codebase, completely resolving previous experimental multi-module startup crashes and desync issues.
- Smart Unlock System: Deposit items to track your collection progress toward unlocking them permanently.
- Dynamic thresholds scaled automatically based on item complexity via a cycle-breaking recipe tree solver.
- Tools, weapons, & armor: Only 1 required.
- Raw materials (ores, logs, dirt): Full stack (64).
- Crafted items (Planks, blocks): Scaled by recipe depth (50% or 25% stack size).
- Complex crafted items: Only 1 required.
- Safe Saved Data Persistence: Progress and unlocks are persisted natively inside standard level NBT attachments, completely avoiding fragile external JSON player data files, ensuring 100% data security and server portability.
- Dual-Tab GUI: Beautiful custom layout featuring separate Deposit and Journey tabs with integrated inventory labels.
- Real-Time Search & Filtering: Locate items instantly via a case-insensitive search bar in the Journey tab.
- Smart Sorting: Items are automatically sorted with your most recently unlocked items displayed first.
- Bulk Inventory Utilities:
- Bulk Dump: Shift-click items in your inventory while inside the Journey tab to instantly delete the stack if that item is already unlocked.
- Drag Grid Deletion: Drag an item stack from inventory and left-clicking it directly on its matching unlocked icon in the Journey grid deletes the carried cursor stack immediately.
- Dimension-Swap & Death Immunity: Attachments are protected via a robust persistent server engine, keeping player unlocks fully safe across dimension boundaries, respawning, and death desyncs.
Commands & Controls
- Journey Mode Toggle: Enable/disable Journey Mode per player with simple Brigadier commands:
- /journeymode on - Enable Journey Mode (allows opening GUI and depositing)
- /journeymode off - Disable Journey Mode
- /journeymode status - Check current toggle status
- /journeymode reset - Wipe your personal unlock progress instantly
- Customizable Keybind: Default key J opens the catalog interface (fully bindable under Options โ Controls โ Key Binds โ Journey Mode).
Configuration
- Hot-Reloadable Configs: Instantly customize mod configurations located under config/Journey Mode/:
- blacklist.json - Prevent specific items from being deposited or unlocked (e.g. bedrock, barriers).
- custom_thresholds.json - Override recipe-based calculations with custom thresholds for specific items.
- No Restart Required: Config edits apply dynamically in-game without restarting the client or server.
Native Multi-Loader Support
- โ NeoForge 1.21.1 - Native compilation using official Mojang mappings.
- โ Fabric 1.21.1 - Standalone secondary project using official Mojang mappings and native Fabric API networking.
- ๐ 100% Feature Parity - Identical mechanics, interfaces, and file formats across both loaders.
๐ฆ How It Works
-
Deposit Items: Open the Journey Mode menu (press J) and place items in the deposit slot

-
Track Progress: Each item you deposit counts toward the unlock threshold

-
Unlock Items: Once you've deposited enough of an item type, it becomes unlocked
-
Infinite Retrieval: Switch to the Journey tab and click any unlocked item to retrieve it

- Left-click: Get 1 item
- Shift + Left-click: Get 64 items
๐ Installation
Requirements
For NeoForge
- Minecraft: 1.21.1
- NeoForge: 21.1.72 or higher
- Java: 21 or higher
For Fabric
- Minecraft: 1.21.1
- Fabric Loader: 0.19.2 or higher
- Fabric API: 0.102.1+1.21.1 or higher (required dependency)
- Java: 21 or higher
Download
Choose your mod loader:
- ๐ NeoForge Version - journeymode-1.6.0N-1.21.1.jar
- ๐ต Fabric Version - journeymode-fabric-1.6.0N-1.21.1.jar
Also available on:
๐ How to Use
Commands
/journeymode on # Enable Journey Mode for yourself /journeymode off # Disable Journey Mode for yourself /journeymode status # Check if Journey Mode is enabled /journeymode reset # Reset your unlock progressUnderstanding Thresholds
Journey Mode automatically calculates smart thresholds based on crafting complexity:
Item Type Example Threshold Tools & Armor Diamond Pickaxe 1 item Complex Crafted Redstone Comparator 1 item Raw Materials Iron Ore, Logs 64 items (full stack) Crafted (Depth 1) Iron Ingot, Planks 32 items (50%) Crafted (Depth 2) Iron Block 16 items (25%) Non-Stackable Bucket, Shears 1 itemThresholds can be overridden inside custom_thresholds.json!
โ๏ธ Configuration
Config files are automatically generated under config/Journey Mode/
blacklist.json
Prevent specific items from being deposited:
{ "_comment": "Add item IDs to blacklist them from Journey Mode", "blacklisted_items": [ "minecraft:bedrock", "minecraft:barrier", "minecraft:command_block", "minecraft:structure_void" ] }custom_thresholds.json
Override unlock requirements for specific items:
{ "_comment": "Override unlock thresholds for specific items", "thresholds": { "minecraft:diamond": 10, "minecraft:netherite_ingot": 5, "minecraft:elytra": 1, "minecraft:enchanted_golden_apple": 3 } }๐บ๏ธ Roadmap
Current Status
- โ Phase 1: NeoForge 1.21.1 Core Features (Complete)
- โ Phase 2: Reconstructed Stable Codebase (Complete)
- โ Phase 3: Standalone Fabric Port (Complete)
- โ Phase 4: Automated Multi-Platform Deployments (Complete)
Future Plans
- โจ Custom GUI textures (vanilla styled tabs and scrollbar rendering)
- โจ Export/import unlocked items catalog via text/JSON clips
- โจ Sound effects for unlocking events and deposits
- โจ Shared locks / team progress sync for multiplayer servers
๐ง Development Setup
Prerequisites
- JDK 21 or later
- Git
Building NeoForge Mod (Root Project)
# Clone the repository git clone https://github.com/Aryangpt007/Journey-Mode.git cd Journey-Mode # Compile NeoForge JAR .\gradlew.bat clean build # Built JAR resides inside: build/libs/Building Fabric Mod (Nested Project)
cd Fabric # Compile Fabric JAR .\gradlew.bat clean build # Built JAR resides inside: Fabric/build/libs/Project Structure
journey-mode/ # Root NeoForge 1.21.1 Project โโโ src/ # NeoForge source code โโโ build.gradle # NeoForge build configuration โโโ Fabric/ # Nested Standalone Fabric Project โ โโโ src/ # Fabric source code โ โโโ build.gradle # Fabric build configuration โโโ libs_dist/ # Pre-built release distribution JARs๐ Changelog
Version 1.6.0N
Release Date: May 19, 2026
๐ Complete Mod Reconstruction & Porting
- Experimental Recovery & Revamp: Previous experimental builds of both NeoForge and Fabric were broken due to the introduction of a complex multi-module architecture. We have completely revamped and reconstructed both loader projects back from the 1.4.0 codebase, which was the last verified stable build before introducing multi-module setups.
- 100% Bug-Free Native JARs: Both the Fabric 1.21.1 and NeoForge 1.21.1 mods are now compiled natively and work perfectly without any runtime bugs or crashes.
- Native NBT Saved Data Persistence: User player data is no longer saved in an external JSON file. Progress and unlocks are persisted natively inside standard level NBT attachments, resolving server portability and synchronization issues.
- Fabric 1.21.1 Native Port: Fully implemented the Fabric version inside the Fabric/ directory with 100% feature-parity.
- Enforced Gradle Mappings Isolation: Re-configured Gradle scripts to run official Mojang mappings (mappings loom.officialMojangMappings()) natively alongside Fabric Loader 0.19.2, ensuring perfect compile-time type-safety.
- Safe Container Mixins: Ported screen mixins (HandledScreenMixin.java) to inject cleanly on top of AbstractContainerScreen in the Mojmap environment.
- dimension-swap Immune Core: Fabric player unlock attachments utilize a robust static JVM map tracking handler inside GlobalDataHandler.java, keeping player data fully safe across dimension boundaries or deaths without relying on heavy platform serialization systems.
Version 1.5.0N
Release Date: May 19, 2026
Major Physical Side-Safety & Code Polish
- ๐ก๏ธ Physical Side-Safety Fixes: Nested ClientKeyHandler inside ClientSetup.java (a client-only class) and removed all client-side imports (Minecraft, ClientTickEvent, GLFW, etc.) from JourneyModeEvents.java (a common class loaded on the dedicated server). This guarantees zero startup crashes or class-loading errors on dedicated servers.
- ๐งน Unused Import Cleanups: Removed dead Minecraft client class references from the common SyncJourneyDataPacket.java.
- ๐๏ธ Redundant File Deletion: Removed the obsolete and unused KeyBindings.java file to clean the codebase.
Real-Time Global Save Portability & Sync
- ๐พ Global Unlocks Portability: Created GlobalDataHandler.java to read and write player unlocks to a central journeymode_unlocks.json file in the base Minecraft installation directory (FMLPaths.GAMEDIR).
- ๐ Real-Time World Portability: Unlocks are dynamically keyed by player UUIDs. Moving or sharing journeymode_unlocks.json enables carrying forward unlocks across completely different worlds, servers, or modpack instances.
- ๐ Real-Time Action Sync:
- Login Sync: Automatically loads a player's global saves on joining a world via the PlayerLoggedInEvent listener.
- Dimension & Death Sync: Added a robust PlayerEvent.Clone handler that copies player attachment data across dimensions or respawns via the new copyFrom() helper and syncs to the client.
- Real-Time Writes: Saves the player's updated unlocks instantly to the global JSON file whenever an item is deposited or Journey Mode status is command-toggled.
Journey Mode Reset Command
- ๐งน Reset Command: Implemented a new command /journeymode reset to instantly wipe a player's progress and unlocks.
- โก Real-Time Reset Sync: Wipes the attachment data, saves the empty state to journeymode_unlocks.json, and updates the client screen instantaneously.
Version 1.4.1N
Release Date: May 19, 2026
Journey Tab Dumping & Deletion Mechanics
- ๐๏ธ Shift-Click Dump: Shift-clicking items in player inventory while viewing the Journey tab instantly deletes the stack if that item has already been unlocked in their Journey catalog.
- ๐ซณ Drag-and-Drop Grid Deletion: Dragging an item stack from inventory and left-clicking it directly on its matching unlocked icon in the Journey grid deletes the carried cursor stack immediately.
- ๐ Menu Tab Syncing: Added SyncTabPacket and DeleteCarriedPacket to track the player's active tab and process deletes securely on the server-side.
Critical Bug Fixes (v1.4.0 Baseline Resolution)
- ๐ซ Slot Visibility & Clicks blocked: Deactivated the deposit slot and hid its rendering in the Journey tab client interface via ConditionalSlot and renderSlot override filters.
- ๐ก๏ธ Item-Loss Prevention on Close: Relocated the deposit slot cleanup code to the server-side menu removed() container method, preventing client packet bypasses.
- ๐ฅ Attachment Serialization Crash Resolved: Switched the capability codec serialization from mojang's record codebuilder to flat GSON-based Codec.STRING.xmap(...) flat serialization.
Version 1.4.0
Release Date: October 31, 2025
Major Features - Phase 1 Complete
- โ
Journey Mode Toggle System
- Per-player enable/disable via /journeymode on|off command
- Default: Enabled for all players
- Disabled players cannot open GUI or deposit items
- Status check: /journeymode without arguments
- Toggle state persists across sessions
- โ๏ธ Configuration System (JSON-based like ProjectE)
- Config folder: config/Journey Mode/
- blacklist.json: Block specific items from being deposited
- Auto-generates with common examples (bedrock, barrier, command blocks)
- Add/remove item IDs as needed
- custom_thresholds.json: Custom unlock requirements per item
- Override recipe-based calculations
- Examples included (diamond, netherite, elytra)
- journeymode-common.toml: Main config (currently minimal)
- All configs hot-reload without server restart
- JourneyModeCommand: Brigadier command with on/off/status subcommands
- RecipeDepthCalculator: Config override check before recipe calculation
- JourneyModeMenu: Blacklist validation in processDeposit()
- OpenJourneyMenuPacket: Toggle state check before opening GUI
- All features properly localized in en_us.json
Version 1.3.4 - v1.0.0
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Links
- GitHub: Aryangpt007/Journey-Mode
- CurseForge: Journey Mode
- Modrinth: Journey Mode
- Issues: Report a Bug
๐ค Author
Aryangpt007 - @Aryangpt007
๐ Acknowledgments
- NeoForge team for the excellent modding framework
- Fabric team for the modding API
- Minecraft modding community for documentation and support
Made with โค๏ธ for the Minecraft community
Compatibility
Mod Loaders
Game Versions
Similar Mods
Tinkers' Weaponry
Add 3 new tools to tinkers' construct.
VolumeScroll
Adjust Simple Voice Chat players volume with RMB + Mouse Wheel Scroll
Papyrus: From Plant to Paper
Paper from all plants and Fibers!
Aurolith
An Addon for the server Jujutsu Aurolith
Starting World Border
A mod that starts each world with a 5x5 world border. Useful for Modpacks. Can be altered with a datapack.
Tough As Nails Create Addon
Adds compatability between Tought As Nails and Create