Community listing page, reviews here may not be monitored by the author.
The Contract
No reviews yet
The Contract introduces a dynamic, server-wide bounty and questing system to Minecraft with physical boards, procedural tasks, and bonus objectives
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description
The Contract
Features
- Interactive Contract Board: A physical block with a custom GUI to view, accept, deliver, and claim bounties.
- Procedural Contract Generation: Automatically refreshes contracts at set intervals with customizable task types (Hunting, Crafting, Exploration, Building, Raids, and Distance Travel).
- Optional Bonus Objectives: Side tasks that grant reward multipliers (e.g., $2\times$ currency bonuses) upon completion.
- Server-Wide & Dynamic: Global refresh cycles sync contracts across the entire server, preventing individual exploit farming.
- Extensive Datapack Support: Add static manual contracts or override the generator pools with JSON datapacks.
- Highly Configurable: Modify rewards, blacklists, task frequencies, currency items, and difficulty scaling in the config file.
Configuration Guide (the_contract-common.toml)
The configuration file is located at .minecraft/config/the_contract-common.toml. Below is a breakdown of all available sections and settings:
1. [generator]
Controls the global contract board timer and refresh capacity.
-
refreshIntervalMinutes(Default: 20): Time in minutes before the contract board clears and regenerates new contracts. -
contractsPerRefresh(Default: 15): Total number of procedural contracts generated per cycle. -
notifyOnRefresh(Default: false): Broadcasts a chat message to online players when contracts refresh.
2. [generator_blacklist]
Excludes specific items, mobs, structures, or biomes from procedural generation.
-
Format: Standard Resource Location lists, e.g.,
["minecraft:beacon"]or["minecraft:warden"].
3. [difficultyDistribution]
Sets the probability weights for contract difficulties (Basic, Intermediate, Hard).
-
basic(Default: 50) -
intermediate(Default: 35) -
hard(Default: 15)
4. [taskTypeDistribution]
Adjusts how often specific objective types appear in contracts:
-
kill_entity(Default: 25) -
deliver_item(Default: 20) -
craft_item(Default: 20) -
travel_distance(Default: 15) -
break_block(Default: 12) -
place_block(Default: 12) -
find_biome(Default: 8) -
find_structure(Default: 6) -
defend_objective(Default: 5) -
complete_raid(Default: 3)
5. [player]
-
maxActiveContractsPerPlayer(Default: 3): Maximum number of active contracts a player can hold simultaneously.
6. [rewards]
-
currencyItem(Default:"minecraft:emerald"): The default item ID awarded as money/currency. -
Subcategories (
basic_rewards,intermediate_rewards,advanced_rewards) allow configuring min/max currency payouts and extra item lists (e.g.,["minecraft:bread,8", "minecraft:iron_ingot,4"]).
7. [task_pools]
Define target IDs and target ranges for procedural generation.
-
Items / Mobs Syntax:
"namespace:id|min-max"(e.g.,"minecraft:copper_ingot|16-32"or"minecraft:zombie|5-15"). -
Travel Distance Syntax:
"min-max"in block meters (e.g.,"250-500").
Datapack Creation Guide
You can create custom, static contracts or override contract pools using Datapacks.Tip: You can download a ready-to-use Datapack template directly from our Discord server to get started faster!
File Structure & Paths
Inside your datapack, place JSON files in the following folders:your_datapack/
├── pack.mcmeta
└── data/
└── your_mod_or_pack_namespace/
├── contracts/
│ └── custom_contract.json
└── generator_pools/
└── custom_pool.json
Creating Custom Static Contracts (data/<namespace>/contracts/*.json)
Place JSON files in data/<namespace>/contracts/. These contracts appear directly on the special/manual board section.
Example: data/mymodpack/contracts/dragon_slayer.json
{
"title": "contract.mymodpack.dragon_slayer.title",
"description": "contract.mymodpack.dragon_slayer.desc",
"difficulty": "HARD",
"repeatable": false,
"optional_currency_multiplier": 2.5,
"objectives": [
{
"id": "kill_dragon",
"optional": false,
"task": {
"type": "KILL_ENTITY",
"target": "minecraft:ender_dragon",
"amount": 1
}
},
{
"id": "bonus_travel",
"optional": true,
"task": {
"type": "TRAVEL_DISTANCE",
"amount": 1000
}
}
],
"rewards": [
{
"type": "CURRENCY",
"count": 50
},
{
"type": "ITEM",
"item_id": "minecraft:netherite_ingot",
"count": 2
},
{
"type": "COMMAND",
"command": "xp add @p 1000 levels"
}
]
}
Task Types Reference (type):
-
KILL_ENTITY—target: Entity ID -
DELIVER_ITEM—target: Item ID -
CRAFT_ITEM—target: Item ID -
BREAK_BLOCK—target: Block ID -
PLACE_BLOCK—target: Block ID -
FIND_STRUCTURE—target: Structure ID -
FIND_BIOME—target: Biome ID -
TRAVEL_DISTANCE— Notargetrequired,amount: blocks to walk -
COMPLETE_RAID— Notargetrequired,amount: raids to complete
Overriding Generator Pools (data/<namespace>/generator_pools/*.json)
You can define generator pools to customize what items or entities are selected for generated bounties.
Example: data/mymodpack/generator_pools/custom_hunt.json
{
"difficulty": "BASIC",
"entries": [
{
"target": "minecraft:zombie",
"min_amount": 5,
"max_amount": 15,
"weight": 10
},
{
"target": "minecraft:skeleton",
"min_amount": 5,
"max_amount": 15,
"weight": 10
}
]
}
Community & Support
Need help, want to share your custom contract datapacks, or need to download the Datapack Template? Join our community Discord! 👉 Join our Discord Server
Español
Aquí tienes toda la información y la guía traducida al español para tu página de CurseForge:
The Contract
Summary
The Contract añade un sistema dinámico de contratos y misiones para todo el servidor con tableros físicos, tareas procedimentales y objetivos secundarios. Es completamente configurable mediante archivos TOML y Datapacks, permitiendo a administradores y creadores de modpacks diseñar una progresión personalizada.Características
- Tablero de Contratos Interactivo: Un bloque físico con una interfaz personalizada para consultar, aceptar, entregar y reclamar recompensas.
- Generación Procedimental de Contratos: Los contratos se regeneran automáticamente a intervalos configurables con varios tipos de tareas (Caza, Crafteo, Exploración, Construcción, Raids y Distancia Recorrida).
- Objetivos Secundarios Opcionales: Tareas adicionales que otorgan multiplicadores de recompensa (por ejemplo, bono de $2\times$ en la moneda) al completarlas.
- Sistema Global para el Servidor: Los ciclos de refresco sincronizan los contratos para todos los jugadores, evitando que se farmeen de forma individual.
- Soporte Completo para Datapacks: Añade contratos estáticos manuales o reemplaza las listas de generación procedimental con archivos JSON.
- Altamente Configurable: Modifica las recompensas, listas negras, frecuencia de tareas, ítem utilizado como moneda y escalado de dificultad desde el archivo de configuración.
Guía de Configuración (the_contract-common.toml)
El archivo de configuración se encuentra en .minecraft/config/the_contract-common.toml. A continuación se detalla cada sección y sus opciones:
1. [generator]
Controla el temporizador global y la capacidad de generación del tablero.
-
refreshIntervalMinutes(Por defecto: 20): Tiempo en minutos para que el tablero limpie y genere nuevos contratos. -
contractsPerRefresh(Por defecto: 15): Cantidad total de contratos procedimentales generados por ciclo. -
notifyOnRefresh(Por defecto: false): Envía un mensaje al chat de los jugadores conectados cuando se refrescan los contratos.
2. [generator_blacklist]
Excluye ítems, mobs, estructuras o biomas específicos de la generación procedimental.
-
Formato: Listas de Resource Location estándar, ej.
["minecraft:beacon"]o["minecraft:warden"].
3. [difficultyDistribution]
Establece los pesos de probabilidad para las dificultades de los contratos (Básico, Intermedio, Avanzado).
-
basic(Por defecto: 50) -
intermediate(Por defecto: 35) -
hard(Por defecto: 15)
4. [taskTypeDistribution]
Ajusta la frecuencia con la que aparece cada tipo de objetivo en los contratos:
-
kill_entity(Por defecto: 25) -
deliver_item(Por defecto: 20) -
craft_item(Por defecto: 20) -
travel_distance(Por defecto: 15) -
break_block(Por defecto: 12) -
place_block(Por defecto: 12) -
find_biome(Por defecto: 8) -
find_structure(Por defecto: 6) -
defend_objective(Por defecto: 5) -
complete_raid(Por defecto: 3)
5. [player]
-
maxActiveContractsPerPlayer(Por defecto: 3): Número máximo de contratos activos simultáneos que puede tener un jugador.
6. [rewards]
-
currencyItem(Por defecto:"minecraft:emerald"): ID del ítem utilizado como moneda por defecto. -
Las subcategorías (
basic_rewards,intermediate_rewards,advanced_rewards) permiten definir los mínimos/máximos de moneda entregada y listas de ítems extra (ej.["minecraft:bread,8", "minecraft:iron_ingot,4"]).
7. [task_pools]
Define los IDs de destino y rangos para la generación procedimental.
-
Sintaxis para Ítems / Mobs:
"namespace:id|min-max"(ej."minecraft:copper_ingot|16-32"o"minecraft:zombie|5-15"). -
Sintaxis para Recorrer Distancia:
"min-max"en bloques/metros (ej."250-500").
Guía para la Creación de Datapacks
Puedes crear contratos estáticos personalizados o modificar los pools de generación utilizando Datapacks.Consejo: ¡Puedes descargar una plantilla de Datapack lista para usar directamente en nuestro servidor de Discord para empezar más rápido!
Estructura de Archivos y Rutas
Dentro de tu datapack, coloca los archivos JSON en las siguientes carpetas:tu_datapack/
├── pack.mcmeta
└── data/
└── tu_namespace/
├── contracts/
│ └── contrato_personalizado.json
└── generator_pools/
└── pool_personalizado.json
Crear Contratos Estáticos Personalizados (data/<namespace>/contracts/*.json)
Coloca los archivos JSON en data/<namespace>/contracts/. Estos contratos aparecerán directamente en la sección especial/manual del tablero.
Ejemplo: data/mimodpack/contracts/dragon_slayer.json
{
"title": "contract.mimodpack.dragon_slayer.title",
"description": "contract.mimodpack.dragon_slayer.desc",
"difficulty": "HARD",
"repeatable": false,
"optional_currency_multiplier": 2.5,
"objectives": [
{
"id": "kill_dragon",
"optional": false,
"task": {
"type": "KILL_ENTITY",
"target": "minecraft:ender_dragon",
"amount": 1
}
},
{
"id": "bonus_travel",
"optional": true,
"task": {
"type": "TRAVEL_DISTANCE",
"amount": 1000
}
}
],
"rewards": [
{
"type": "CURRENCY",
"count": 50
},
{
"type": "ITEM",
"item_id": "minecraft:netherite_ingot",
"count": 2
},
{
"type": "COMMAND",
"command": "xp add @p 1000 levels"
}
]
}
Referencia de Tipos de Tareas (type):
-
KILL_ENTITY—target: ID de la entidad -
DELIVER_ITEM—target: ID del ítem -
CRAFT_ITEM—target: ID del ítem -
BREAK_BLOCK—target: ID del bloque -
PLACE_BLOCK—target: ID del bloque -
FIND_STRUCTURE—target: ID de la estructura -
FIND_BIOME—target: ID del bioma -
TRAVEL_DISTANCE— No requieretarget,amount: bloques a recorrer -
COMPLETE_RAID— No requieretarget,amount: raids a completar
Modificar Pools de Generación (data/<namespace>/generator_pools/*.json)
Puedes definir pools de generación para personalizar qué ítems o entidades se seleccionan en las misiones procedimentales.
Ejemplo: data/mimodpack/generator_pools/custom_hunt.json
{
"difficulty": "BASIC",
"entries": [
{
"target": "minecraft:zombie",
"min_amount": 5,
"max_amount": 15,
"weight": 10
},
{
"target": "minecraft:skeleton",
"min_amount": 5,
"max_amount": 15,
"weight": 10
}
]
}
Comunidad y Soporte
¿Necesitas ayuda, quieres compartir tus datapacks de contratos o descargar la plantilla? ¡Únete a nuestro servidor de Discord! 👉 Únete a nuestro servidor de DiscordScreenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources