Links
Tags
Creators
Details
1.1.3
Compatibility
Required content
Changes
Material Finder v1.1.3 - Reserved Slot System Update
Overview
This major update introduces a complete rewrite of the inventory management system with a new Reserved Slot System. The mod now works perfectly in Creative Mode by owning only configurable inventory slots instead of depending on empty slots.
New Features
Reserved Slot System
Material Finder now owns only configurable inventory slots instead of modifying the entire inventory.
Default Reserved Slots: Hotbar slots 1-6
Reserved Slot Ownership:
- Material Finder owns only the reserved slots
- Player inventory remains completely untouched
- Any attempt to modify reserved slots while the mod is running will pause the mod and alert the player
Configurable Slot Ranges
Users can now configure which inventory slots are reserved:
Commands:
/materialfinder slotsor/mf slots- Show current configuration/materialfinder slots set <start> <end>or/mf slots set <start> <end>- Set reserved slot range/materialfinder slots resetor/mf slots reset- Reset to defaults (1-6)
Examples:
/mf slots 1-6 // Hotbar slots 1-6 (default)
/mf slots 4-9 // Hotbar slots 4-9
Validation:
- Maximum 9 reserved slots (entire hotbar)
- Minimum 1 slot
- Hotbar-only mode supports slots 1-9
- Full inventory mode supports slots 1-36
Smart Material Queue
A new queue system that maintains only the next required materials.
Queue Size: Default 6 (configurable)
Example Queue:
Grass x7
Dirt x141
Mud x131
Stone x46
Tuff x53
Stone Bricks x49
Features:
- Queue is prioritized by remaining requirements
- Only shows materials that need to be supplied
- Automatically updates as materials are placed
Exact Quantity System
Replaced the previous full-stack system with exact quantities.
Before: Stone x46 ā Stone x64 (full stack)
After: Stone x46 ā Exactly 46 items
Implementation:
- Uses
Item.getMaxCount()for stack size limits - Never gives unnecessary items
- Precise material tracking
Automatic Slot Replacement
When a queue item becomes complete, the corresponding slot is immediately replaced.
Example:
Slot 1: Grass x7
ā Grass finished (placed)
ā Replace Slot 1
Stone x46
Player inventory remains untouched
Player Inventory Protection
Emergency protection system prevents accidental loss of player items.
Detection:
- Immediately detects when player places item in reserved slot
- Pauses Material Finder
- Displays warning message
Recovery:
"Reserved slot modified by player. Material Finder paused."
Resume Options:
/mf resume- Continue operation/mf slots reset- Clear the slot and continue
Protected Items:
- Tools and weapons
- Food items
- Fireworks
- Totems of Undying
- Shulker Boxes
- Buckets
- Anything outside reserved slots
Mod Configuration
New Configuration Values
Add the following to your materialfinder.json config:
| Setting | Type | Default | Description |
|---|---|---|---|
| reservedSlotStart | int | 0 | Start slot index (0-8 for hotbar) |
| reservedSlotEnd | int | 5 | End slot index (0-8 for hotbar) |
| queueSize | int | 6 | Number of items in queue (1-9) |
| hotbarOnly | boolean | true | Reserve only hotbar slots |
Configuration File Location
%USERPROFILE%\.materialfinder\materialfinder.json
Baritone Improvements
Fixed Baritone Detection
- Now uses
FabricLoader.getInstance().isModLoaded("baritone")first - Falls back to
isModLoaded("baritone_bot") - Verifies via Baritone API reflection as final check
- No longer shows false "not detected" warnings
Baritone Material Mode
When using Baritone as source:
- Queue comes from Baritone's requested materials
- Only replaces Material Finder owned slots
- Never touches player inventory
HUD Display Updates
The HUD now shows additional information:
Material Finder
[Running/Paused]
Source: litematica/baritone
Reserved: 1-6
Queue Size: 6
Current: Dirt (64)
Remaining: 1234
Progress: 45.2%
Blocks: 2000 / 1234
Commands
Material Finder Commands
| Command | Description |
|---|---|
/materialfinder start |
Start the mod |
/materialfinder stop |
Stop the mod |
/materialfinder status |
Show current status |
/materialfinder litematica |
Switch to Litematica source |
/materialfinder baritone |
Switch to Baritone source |
/materialfinder slots |
Show slot configuration |
/materialfinder slots set <start> <end> |
Set reserved slots |
/materialfinder slots reset |
Reset to default 1-6 |
/materialfinder resume |
Resume after pause |
/materialfinder help |
Show help |
Aliases (mf)
All commands above are also available via the mf alias.
Development Changes
New Architecture
InventoryOwnershipManager
- Tracks owned slots vs player slots
- Validates slots each tick
- Handles emergency protection
MaterialQueueManager
- Maintains smart material queue
- Updates from tracker
- Provides prioritized items
ReservedSlotManager
- Manages slot configuration
- Persists settings
- Validates ranges
QueueItem
- Represents items in queue
- Tracks remaining count
- Provides stack size info
OwnedInventorySlot
- Tracks individual slot state
- Invalidates on player modification
- Syncs with inventory
Bug Fixes
- Creative Mode Inventory Corruption - Fixed a bug where items were incorrectly placed in wrong slots
- Exact Quantity Bug - Fixed over-supplying materials
- Baritone False Detection - No longer reports Baritone is not installed when it is
- Null Pointer Exceptions - Added null checks in PlacementVerifier and other critical paths
Compatibility
- Minecraft: 1.21.1
- Fabric Loader: >=0.18.4
- Fabric API: 0.116.14+1.21.1
- Litematica: 0.19.57
- Malilib: 0.21.7
- Baritone: 1.11.2 (optional)
Migration Notes
From v1.1.2
- Existing configs will be reset to defaults
- Reserved slots will show as 1-6 first launch
- Queue size will be 6 by default
- Baritone detection improved (may show correct status now)
Known Behavior Changes
- Mod will only modify reserved slots (1-6 by default) instead of entire inventory
- Materials are given in exact quantities, not full stacks
- Mod pauses automatically if player modifies reserved slots
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:RA6jBMLj:Su2hJkWZ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:RA6jBMLj:Su2hJkWZ"
}


