Tags
Creators
Details
1.1.1
Compatibility
Changes
CuriosPaper v1.1.1 โ Advanced Recipe System & API Expansion
This update expands CuriosPaper beyond basic crafting by introducing full vanilla recipe support, safer item upgrades, and tighter server control over in-game editors.
๐ Major Features
Expanded Recipe System
CuriosPaper now supports non-crafting recipe mechanics, enabling real progression and upgrade systems.
New supported recipe types:
- FURNACE โ Smelting with configurable time & XP
- BLAST_FURNACE โ Fast smelting
- SMOKER โ Food cooking
- ANVIL โ Item combination & upgrade recipes with XP cost
- SMITHING โ Base / addition / template based upgrades
This unlocks:
- Tiered item upgrades
- Anvil-based enhancements
- Smithing-table item evolution
- Smelting-based custom materials
NEW: CuriosRecipeTransferEvent
A new cancelable event fired whenever CuriosPaper transfers custom item data during any recipe operation.
Purpose: Vanilla recipes normally discard custom metadata. This event gives addons full control over how data moves from source โ result.
Key points:
- Fires for ALL recipe types
- Provides
sourceandresultItemStack - Allows safe upgrades (e.g. backpack tiers)
- Can cancel crafting if transfer fails
๐ง API Enhancements
RecipeData Expansion
RecipeData now supports all recipe types with strict validation.
New fields include:
Furnace / Smoker / Blast Furnace
inputItemcookingTime(ticks, default 200)experience
Anvil
leftInputrightInputexperience(XP cost)
Smithing
baseItemadditionItemtemplateItem(optional, version-safe)
Validation
isValid()now validates per recipe type- Prevents invalid or partial registrations
CuriosPaperAPI Improvements
- New registration methods for all recipe types
- Stronger validation & error feedback
- Automatic integration with
CuriosRecipeTransferEvent - Safer addon-facing API boundaries
โ Configuration Changes
Item Editor Toggle (NEW)
A new config option allows server owners to completely disable all in-game item editors.
item-editor:
enabled: true
When set to false:
/editand related item editor commands are disabled- All item editor GUIs are blocked
- API functionality remains fully usable for addons
- Ideal for production servers that only want addon-defined items
๐งฐ Commands & Permissions
Commands
-
/edit- Alias:
itemedit - Opens the in-game item editor (if enabled)
- Alias:
Permissions
curiospaper.adminโ Full admin accesscuriospaper.editโ Item editor access (default: OP)
๐ Internal Improvements
RecipeListener (Refactored)
- Unified handling for all recipe types
- Reliable data transfer pipeline
- Safer failure handling (no silent corruption)
- Faster recipe lookups
RecipeEditorGUI
- Support for all new recipe types
- Furnace time & XP configuration
- Anvil input & XP cost handling
- Smithing base/addition/template UI
- Improved validation feedback
ItemDataManager
- Improved serialization & deserialization
- More reliable autosave logic
- Better external plugin compatibility
๐ Fixes & Stability
- Fixed recipe data persistence issues
- Fixed edge cases in recipe validation
- Improved slot manager stability
- More reliable autosave behavior
โก Performance Improvements
- Faster recipe lookup & caching
- Optimized inventory event handling
- Reduced memory footprint for recipe data
- Improved async save operations
๐ Compatibility
- Fully backward compatible with v1.1.0
- Existing SHAPED & SHAPELESS recipes continue to work
- No migration required
- Addons automatically benefit from new recipe handling
๐งญ Addon Developer Notes
CuriosRecipeTransferEventnow fires for all recipe types- Use
event.getRecipeType()if logic differs per recipe - Source & result items are always initialized
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:JLMPHrRw:qC4ZjCFa"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:JLMPHrRw:qC4ZjCFa"
}

