Data Packs - Research
The Research System used by the University can be lightly tweaked or heavily modified through the use of data packs in MineColonies versions 0.14.0 or higher. For the default research data and example files, see the GitHub. Researches consist of three components: the branch that contains the research, the research itself, and the research effect.
Branches
Branches are the groups of research, such as "Civilian" or "Combat". Branch files must contain one of "branch-name"
or "base-time"
.
Branch Key Name | Type | Description |
---|---|---|
branch-name | String | The displayed name of the branch, presented to the user. May be a Translation Key. If not present, defaults to a Translation Key of the format com.<namespace>.research.<path>.name |
subtitle | String | A subtitle for the branch, displayed on mouseover. May be a Translation Key. Optional. |
branch-type | String | An override for more specialized research branches. For now, "unlockables" disables research level checks. Otherwise, sets to default behavior. Optional. |
base-time | double | A numeric multiplier applied to research time for all researches on the branch. Larger numbers take more time; lower numbers take less time. Very low values may make time estimates in-accurate. Defaults to 1.0; numbers below 0.0 or above 10 may behave poorly. |
sortOrder | Integer | Controls the vertical position of the branch on the University GUI. Lower numbers are placed first on the list, while higher numbers are placed closer to the bottom of the list. Optional. |
hidden | Boolean | If true, and if all primary researches on the branch are hidden, prevents access to the branch from the University window. If "branch-type" is set to "unlockables" , also prevents display of the branch; otherwise, provides a tooltip describing how unlock the branch's primary researches. Optional, defaults to false. |
remove | Boolean or String or Array of Strings | Removes a research branch, and all research on that branch, regardless of the source. May cause data loss if applied to an existing world. If a String, removes all research with a branch of the Resource Location in that String. If an array of Strings, removes all researches for all researches with branches matching any of the Resource Locations. If Boolean and true, removes all Researches with branches matching the Resource Location of the JSON itself; this form is discouraged for cases where other data packs may apply, as it may be conflicted by those other data packs. |
Research
Researches are the individual components of a branch. Branches must have at least one present research to be displayed to the user.
Research Key Name | Type | Description |
---|---|---|
name | String | The displayed name of the research, presented to the user. May be a Translation Key. If not present, defaults to com.<namespace>.research.<path>.name |
subtitle | String | A subtitle for the branch, displayed on mouseover. May be a Translation Key. Optional. |
branch | String | A Resource Location of the branch for the Research. Used to check for Branch JSONs, and to connect to other research. |
subtitle | String | A subtitle for the branch, displayed on mouseover. May be a Translation Key. Optional. |
parentResearch | String | The Resource Location for a parent Research, which must be completed before this research may be unlocked. Required for Research of a level greater than 1. Must be on the same Branch as this research. |
researchLevel | Integer | The Research Level of the research. Unless set to "branch-type":"unlockables" , requires a University of equal or greater level to begin researches of levels 1 through 5, and only allows one level 6 research to be completed at a time. Defaults to 1 if not present. If above level 1, must have a valid parent one level lower. |
sortOrder | Integer | Controls the vertical position of the branch on the Research Tree GUI. Lowers numbers are placed higher up, while higer numbers are placed closer to the bottom. Optional, only applies to research with siblings. |
exclusiveChildResearch | Boolean | If true and the research has more than one descendant research, allows completion of only one of those researches at a time. Optional, defaults to false. |
no-reset | Boolean | If true, prevents undoing the research. Defaults to false, has no effect if the research is already unresettable. |
hidden | Boolean | If true, does not display the research until its requirements are fulfilled. Defaults to false, has no effect if the research has no requirements or only has item costs. |
autostart | Boolean | If true, and the research has no item costs, begins the research automatically once its requirements are fulfilled. If the research has item costs, notifies logged-in players that it is available to begin. Defaults to false. |
instant | Boolean | If true, attempts to instantly (or within 30 seconds) complete the research after it has been begun. Defaults to false. |
requirements | Array Of Objects | Contains all of the requirements that must be fulfilled to unlock the recipe. |
requirements[].item | String | A Resource Location of an item consumed to begin the research. Multiple Item Objects are supported, though having more than 5 may display poorly on some monitors. Optionally pairs with "quantity". Items without NBT data match any NBT variant, but do require the item to be undamaged. |
requirements[].quantity | Integer | A number of items to be consumed. Pairs with "item", defaults to 1. |
requirements[].building | String | A specific building that must be present in the colony. Normal "building" requirements combine the levels from multiple of the same building type. Optionally pairs with "level", otherwise defaults to level 1. |
requirements[].mandatory-building | String | A specific building that must be present in the colony, with at least one occurence at least at the specifed level. Optionally pairs with "level", otherwise defaults to level 1. |
requirements[].alternate-building | String | A specific building to be added to the list of alternate-buildings. At least one of the alternate-buildings must be present in the colony to begin research. Optionally pairs with "level", otherwise defaults to level 1. Acts like "building" if only one alternate-building object is present. |
requirements[].level | Integer | Specifies a building level. Pairs with building , mandatory-building , and alternate-building , otherwise has no effect. If not present for those requirements, defaults to 1. |
requirements[].research | String | A specific Research by Resource Location that must be completed to unlock this research. Unlike, parentResearch , can be on another branch, or of any research level. |
effects | Array Of Objects | Contains all of the effects of the research. Can be empty, either for research with no effects or for research that only unlocks crafterrecipes, or contain one or more Objects. |
effects[].<effect key> | Integer | The Research Effect Identifier as a Resource Location, followed by the level of the effect as an Integer. If the level exceeds the maximum level of the effect, defaults to the maximum level. If no matching effect is found, applies a default strength of 6, enough to unlock a building completely. |
remove | Boolean, String or Array of Strings | Removes a research, regardless of the source. May cause data loss if applied to an existing world. If a String, removes any research matching the Resource Location in that String. If an array of Strings, removes all researches matching any of the Resource Locations. If Boolean and true, removes Research matching the Resource Location of the JSON itself; this form is discouraged for cases where other data packs may apply, as it may be conflicted by those other data packs. |
Research Effects
Research Effects describe the actual impact and strength of that impact on the colony, players, or colonists. All Research Effects have an automatically generated effect strength 0 at level 0. If no other levels are defined, defaults to level one having a strength of 5, enough to unlock all levels of a building.
Effect Key Name | Type | Description |
---|---|---|
effect | Any | Required to treat the file as a research effect. |
name | String | The display name of the effect, shown on mouseover. May be a Translation Key. If not present, defaults to com.<namespace>.research.<path>.description |
subtitle | String | The subtitle of the effect, shown on mouseover. May be a Translation Key. Optional. |
levels | Array Of Doubles | The effect strengths of the research, by level. If not present, defaults to one level of strength 5. |
MineColonies Research Effects
For now, Research Effects must have a corresponding code effect, as listed below. Suggested ranges give guidelines assuming a modpack includes no significant balance reworks.
Effect Resource Location | Suggested Range | Description |
---|---|---|
minecolonies:effects/archerdamageaddition | -2 to 10 | Increases damage by Archers . |
minecolonies:effects/citizeninvslotsaddition | 0, 9, 18, and 27 | Increases the number of inventory slots for colonists. |
minecolonies:effects/citizencapaddition | -21 to 475 | Increases the total number of colonists that may be active at a time above 25. Does not override serverconfig maximum. |
minecolonies:effects/enhancesgatedurabilityaddition | -4 to 20 | Increases the durability of MineColonies Gates when attacked by raiders. |
minecolonies:effects/fleeingspeedaddition | 0 to 5 | Applies a Speed potion effect to injuried Guards when they flee for ten ticks, of Speed level equal to strength. |
minecolonies:effects/healingsaturationlimitaddition | 0 to 20 | Reduces the required saturation before a colonist gets a bonus to regeneration rate. |
minecolonies:effects/healthaddition | -12 to 20 | Increases colonist max health. |
minecolonies:effects/meleedamageaddition | -3 to 10 | Increases Knight Guard damage. |
minecolonies:effects/workingdayhaddition | -2 to 2 | Increases the working day period for Worker Colonists. |
minecolonies:effects/archerarmormultiplier | -0.8 to 2 | Increases Archer armor damage reduction. |
minecolonies:effects/armordurabilitymultiplier | 0 to 4 | Increases effective armor durability of all Guards (and other colonists that can wear armor). |
minecolonies:effects/blockattacksmultiplier | 0 to 1 | Increases Knight Guard rate of successfully blocking attacks. |
minecolonies:effects/blockbreakspeedmultiplier | -0.8 to 5 | Increases the Block Break speed of Miners and Builders. |
minecolonies:effects/blockplacespeedmultiplier | -0.8 to 5 | Increases the Block Place speed of Miners and Builders. |
minecolonies:effects/doublearrowsmultiplier | 0 to 1 | Applies a chance of Multishot effect on Archers . |
minecolonies:effects/farmingmultiplier | 0 to 1 | Applies a chance to get additional crops from farming. |
minecolonies:effects/fleeingdamagemultiplier | -3.0 to 3.0 | Reduces damage suffered by low-health colonists when fleeing from attackers. |
minecolonies:effects/growthmultiplier | -0.8 to 5 | Increases rate children mature. |
minecolonies:effects/happinessmultiplier | -0.5 to 3.0 | Increases colonist Happiness. |
minecolonies:effects/levelingmultiplier | -1 to 3.0 | Increases the rate colonists gain experience. |
minecolonies:effects/meleearmormultiplier | -0.8 to 2 | Increases Knight Guard armor damage reduction. |
minecolonies:effects/minimumstockmultiplier | -0.8 to 5 | Increases the number of minimum stock a building can have simultaneously. |
minecolonies:effects/moreoresmultiplier | -0.8 to 5 | Increases chance of Miners finding additional ores when mining blocks with the "#minecolonies:orechanceblocks" Tag. |
minecolonies:effects/podzolchancemultiplier | -0.8 to 5 | Increases chance of a Composter producing Podzol when composting for dirt. |
minecolonies:effects/recipesmultiplier | -0.8 to 5 | Increases maximum number of recipes a building can contain. |
minecolonies:effects/regenerationmultiplier | -0.8 to 3 | Increases colonist regeneration rate, if not starving. |
minecolonies:effects/saturationmultiplier | -0.5 to 3 | Increases colonist Saturation from eating foods. |
minecolonies:effects/sleeplessmultiplier | -5 to 1 | Reduces the rate Guards fall asleep when increased. |
minecolonies:effects/teachingmultiplier | -0.8 to 5 | Increases student experience when learning from a Teacher as a child. |
minecolonies:effects/tooldurabilitymultiplier | -5 to 10 | Increases effective durability of colonist tools, including weapons. |
minecolonies:effects/walkingmultiplier | Increases colonist walk speed. | |
minecolonies:effects/crushing11unlock | If above 0, allows the Crusher to produce one output item for one input. | |
minecolonies:effects/consumearrowsunlock | If above 0, allows Archers to use arrows to increase damage. If they run out of arrows, they'll still fire, just for less damage. Don't think about it. | |
minecolonies:effects/knighttauntmobsunlock | If above 0, allows Knights to Taunt enemies, forcing most to target the Knight. | |
minecolonies:effects/minerfireresunlock | If above 0, prevents any fire or lava damage to the Miner. | |
minecolonies:effects/piercingarrowsunlock | If above 0, provides Piercing II to Archers . | |
minecolonies:effects/plant2unlock | If above 0, allows the Plantation to have two output materials set at once. | |
minecolonies:effects/platearmorunlock | If above 0, allows the Blacksmith to make plate armor. | |
minecolonies:effects/railsunlock | If above 0, allows Colonists to magically summon carts and ride railways. | |
minecolonies:effects/retreatunlock | If above 0, allows Guards to retreat if under 20% HP. | |
minecolonies:effects/shieldusageunlock | If above 0, allows Knight Guards to use and request Shields. | |
minecolonies:effects/whirlwindabilityunlock | If above 0, allows Knight Guards to use a Whirlwind Attack. | |
minecolonies:effects/workinginrainunlock | If above 0, allows all workers and guards to work in rain. Has no effect if the server is set to do that anyway. |
MineColonies Building Unlocks
Research Effects may also optionally unlock a building. These reserved resource Locations will limit, and a research using the effect is loaded. The strength of the effect determines the maximum level of upgrade that can be requested for the building: an effect of strength 1 would allow only level 1 buildings, while strength 2 would allow upgrades to level 2, and so forth. They do not validate that these unlocks are reasonable, or even that they do not require the building that they unlock.
blockhutarchery | blockhutbaker | blockhutbarracks | blockhutbeekeeper | blockhutblacksmith |
blockhutbuilder | blockhutchickenherder | blockhutcitizen | blockhutcombatacademy | blockhutcomposter |
blockhutconcretemixer | blockhutcook | blockhutcowboy | blockhutcrusher | blockhutdeliveryman |
blockhutdyer | blockhutenchanter | blockhutfarmer | blockhutfisherman | blockhutfletcher |
blockhutflorist | blockhutglassblower | blockhutguardtower | blockhuthospital | blockhutlibrary |
blockhutlumberjack | blockhutmechanic | blockhutminer | blockhutmysticalsite | blockhutplantation |
blockhutrabbithutch | blockhutsawmill | blockhutschool | blockhutshepherd | blockhutsifter |
blockhutsmeltery | blockhutstonemason | blockhutstonesmeltery | blockhutswineherder | blockhuttavern |
blockhuttownhall | blockhutuniversity | blockhutwarehouse |
If changes are needed or you think there is content missing, feel free to edit this page or submit an issue for us to make edits. - MineColonies Wiki Team