Minecolonies Logo

Research

Version

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".

Schema: Research Branch

Example path: <namespace>/researches/<branch-id>.json

Field Type Default value Description
branch-name String com.<namespace>.research.<path>.name

The displayed name of the branch, presented to the user. May be a translation key.

branch-type String default

An override for more specialized research branches. For now, unlockables disables research level checks. Otherwise, sets to default behavior.

subtitle String

A subtitle for the branch, displayed when hovering over the research in the GUI. May be a translation key.

sortOrder Integer 1

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.

hidden Boolean false

If true, and if all primary researches on the branch are hidden, prevents access to the branch from the University window.

remove String, Boolean

Removes a research, regardless of the source. May cause data loss if applied to an existing world.

  • String: Removes all research with a branch of the Resource Location in that String.
  • Boolean (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.
* = Required field
{
    "branch-name": "Expansion",
    "branch-type": "default",
    "subtitle": "Expanding beyond one city",
    "sortOrder": 3,
    "hidden": true,
    "remove": true
}

Research

Researches are the individual components of a branch. Branches must have at least one present research to be displayed to the user.

Schema: Research

Example path: <namespace>/researches/<branch>/<research-id>.json

Field Type Default value Description
name String com.<namespace>.research.<path>.name

The displayed name of the research, presented to the user. May be a translation key.

subtitle String

A subtitle for the research, displayed on mouse over. May be a translation key.

branch * String

A Resource Location that indicates which branch the research belongs in.

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.

researchLevel Integer 1

The Research Level of the research. Unless the branch is 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. If above level 1, must have a valid parent one level lower.

sortOrder Integer 0

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. Only applies to research with siblings.

exclusiveChildResearch Boolean false

If true and the research has more than one descendant research, allows completion of only one of those researches at a time.

no-reset Boolean false

If true, prevents undoing the research. Has no effect if the research is already unresettable.

hidden Boolean false

If true, does not display the research until its requirements are fulfilled. Has no effect if the research has no requirements or only has item costs.

autostart Boolean false

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.

instant Boolean false

If true, attempts to instantly (or within 30 seconds) complete the research after it has been begun.

requirements[] Array (Objects)

If true, attempts to instantly (or within 30 seconds) complete the research after it has been begun.

item String

A Resource Location of an item consumed to begin the research. Multiple items 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.

quantity Integer 1

A number of items to be consumed. Pairs with item.

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.

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.

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. Acts like building if only one alternate-building object is present.

level Integer 1

Specifies a building level. Pairs with building, mandatory-building, and alternate-building, otherwise has no effect.

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 (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.

<effect key> Integer 1

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 String, Boolean

Removes a research branch, and all research on that branch, regardless of the source. May cause data loss if applied to an existing world.

  • String: Removes any research matching the Resource Location in that String.
  • Boolean (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.
* = Required field
{
    "name": "Outposts",
    "subtitle": "Unlock the ability to settle outposts",
    "branch": "minecolonies:civilian",
    "parentResearch": "minecolonies:civilian/outposts",
    "researchLevel": 3,
    "sortOrder": 2,
    "exclusiveChildResearch": false,
    "no-reset": false,
    "hidden": false,
    "autostart": false,
    "instant": false,
    "requirements": [
        {
            "item": "minecraft:book",
            "quantity": 16,
            "building": "library",
            "mandatory-building": "library",
            "alternate-building": "library",
            "level": 1,
            "research": "minecolonies:civilian/outposts"
        }
    ],
    "effects": [
        {
            "<effect key>": 3
        }
    ],
    "remove": true
}

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.

Schema: Research Effect

Example path: <namespace>/researches/effects/<effect-id>.json

Field Type Default value Description
effect * Boolean

Required to treat the file as a research effect. Can be any value, usually true.

name String com.<namespace>.research.<path>.description

The display name of the effect, shown on mouseover. May be a translation key.

subtitle String com.<namespace>.research.<path>.description

The subtitle of the effect, shown on mouseover. May be a translation key.

levels[] Array (Doubles) [0, 1]

The effect strengths of the research, by level.

* = Required field
{
    "effect": true,
    "name": "Settle outposts",
    "subtitle": "Unlocks the ability to settle outposts",
    "levels": [
        0,
        0.25,
        0.5,
        0.75,
        1
    ]
}

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 LocationSuggested RangeDescription
minecolonies:effects/archerdamageaddition-2 to 10Increases damage by Archers .
minecolonies:effects/citizeninvslotsaddition0, 9, 18, and 27Increases the number of inventory slots for colonists.
minecolonies:effects/citizencapaddition-21 to 475Increases the total number of colonists that may be active at a time above 25. Does not override serverconfig maximum.
minecolonies:effects/enhancesgatedurabilityaddition-4 to 20Increases the durability of MineColonies Gates when attacked by raiders.
minecolonies:effects/fleeingspeedaddition0 to 5Applies a Speed potion effect to injuried Guards when they flee for ten ticks, of Speed level equal to strength.
minecolonies:effects/healingsaturationlimitaddition0 to 20Reduces the required saturation before a colonist gets a bonus to regeneration rate.
minecolonies:effects/healthaddition-12 to 20Increases colonist max health.
minecolonies:effects/meleedamageaddition-3 to 10Increases Knight Guard damage.
minecolonies:effects/workingdayhaddition-2 to 2Increases the working day period for Worker Colonists.
minecolonies:effects/archerarmormultiplier-0.8 to 2Increases Archer armor damage reduction.
minecolonies:effects/armordurabilitymultiplier0 to 4Increases effective armor durability of all Guards (and other colonists that can wear armor).
minecolonies:effects/blockattacksmultiplier0 to 1Increases Knight Guard rate of successfully blocking attacks.
minecolonies:effects/blockbreakspeedmultiplier-0.8 to 5Increases the Block Break speed of Miners and Builders.
minecolonies:effects/blockplacespeedmultiplier-0.8 to 5Increases the Block Place speed of Miners and Builders.
minecolonies:effects/doublearrowsmultiplier0 to 1Applies a chance of Multishot effect on Archers .
minecolonies:effects/farmingmultiplier0 to 1Applies a chance to get additional crops from farming.
minecolonies:effects/fleeingdamagemultiplier-3.0 to 3.0Reduces damage suffered by low-health colonists when fleeing from attackers.
minecolonies:effects/growthmultiplier-0.8 to 5Increases rate children mature.
minecolonies:effects/happinessmultiplier-0.5 to 3.0Increases colonist Happiness.
minecolonies:effects/levelingmultiplier-1 to 3.0Increases the rate colonists gain experience.
minecolonies:effects/meleearmormultiplier-0.8 to 2Increases Knight Guard armor damage reduction.
minecolonies:effects/minimumstockmultiplier-0.8 to 5Increases the number of minimum stock a building can have simultaneously.
minecolonies:effects/moreoresmultiplier-0.8 to 5Increases chance of Miners finding additional ores when mining blocks with the "#minecolonies:orechanceblocks" Tag.
minecolonies:effects/podzolchancemultiplier-0.8 to 5Increases chance of a Composter producing Podzol when composting for dirt.
minecolonies:effects/recipesmultiplier-0.8 to 5Increases maximum number of recipes a building can contain.
minecolonies:effects/regenerationmultiplier-0.8 to 3Increases colonist regeneration rate, if not starving.
minecolonies:effects/saturationmultiplier-0.5 to 3Increases colonist Saturation from eating foods.
minecolonies:effects/sleeplessmultiplier-5 to 1Reduces the rate Guards fall asleep when increased.
minecolonies:effects/teachingmultiplier-0.8 to 5Increases student experience when learning from a Teacher as a child.
minecolonies:effects/tooldurabilitymultiplier-5 to 10Increases effective durability of colonist tools, including weapons.
minecolonies:effects/walkingmultiplierIncreases colonist walk speed.
minecolonies:effects/crushing11unlockIf above 0, allows the Crusher to produce one output item for one input.
minecolonies:effects/consumearrowsunlockIf 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/knighttauntmobsunlockIf above 0, allows Knights to Taunt enemies, forcing most to target the Knight.
minecolonies:effects/minerfireresunlockIf above 0, prevents any fire or lava damage to the Miner.
minecolonies:effects/piercingarrowsunlockIf above 0, provides Piercing II to Archers .
minecolonies:effects/plant2unlockIf above 0, allows the Plantation to have two output materials set at once.
minecolonies:effects/platearmorunlockIf above 0, allows the Blacksmith to make plate armor.
minecolonies:effects/railsunlockIf above 0, allows Colonists to magically summon carts and ride railways.
minecolonies:effects/retreatunlockIf above 0, allows Guards to retreat if under 20% HP.
minecolonies:effects/shieldusageunlockIf above 0, allows Knight Guards to use and request Shields.
minecolonies:effects/whirlwindabilityunlockIf above 0, allows Knight Guards to use a Whirlwind Attack.
minecolonies:effects/workinginrainunlockIf 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.


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