Project MMO

Project MMO

AutoValues Config

AutoValues is Project MMO's dynamic system for estimating values. Since, the mod cannot contain all possible current and future mod blocks, items, entities, dimensions, biomes, enchantments, and effects, AutoValues uses properties of those objects to create them dynamically.

An important detail to note is that not all values in Project MMO have AutoValues. Some settings are too nuanced, or the objects themselves do not provide a way to discern their properties to be able to make reasonable estimates. What is listed below is all of what AutoValues adds.

Example File

WITH config(autovalues)
set(enabled).value(true);
set(enabled_requirements).requirement(WEAR).value(true);
set(enabled_requirements).requirement(TOOL).value(true);
set(enabled_requirements).requirement(TRAVEL).value(false);
set(enabled_xp_awards).event(DEATH).value(true);
set(enabled_xp_awards).event(FISH).value(false);
//the "xp_awards" section from the json
set(rarities_muliplier).value(10);
set(axe_breakable_override).value(woodcutting,10);
set(hoe_breakable_override).value(farming,10);
set(shovel_breakable_override).value(excavation,10);
set(item_xp).event(ANVIL_REPAIR).value(smithing,10);
set(item_xp).event(BLOCK_PLACE).value(building,10);
set(item_xp).event(ENCHANT).value(magic,10);
set(item_xp).event(FISH).value(fishing,10);
set(item_xp).event(CONSUME).value(cooking,10);
set(item_xp).event(SMELT).value(smithing,100);
set(item_xp).event(CRAFT).value(crafting,10);
set(block_xp).event(GROW).value(farming,1);
set(block_xp).event(BLOCK_BREAK).value(mining,1);
set(block_xp).event(BLOCK_PLACE).value(building,1);
set(entity_xp).event(TAMING).value(taming,1);
set(entity_xp).event(ENTITY).value(charisma,1);
set(entity_xp).event(SHIELD_BLOCK).value(endurance,1);
set(entity_xp).event(BREED).value(taming,1);
set(entity_xp).event(RIDING).value(taming,1);
set(entity_xp).event(DEATH).value(endurance,1);
//the "requirements" section from the json
set(axe_override).value(woodcutting,1);
set(hoe_override).value(farming,1);
set(shovel_override).value(excavation,1);
set(sword_override).value(combat,1);
set(penalties).value(
minecraft:weakness,1,
minecraft:slowness,1,
minecraft:mining_fatigue,1);
set(block_default).value(mining,1);
set(items).requirement(WEAR).value(endurance,1);
set(items).requirement(WEAPON).value(combat,1);
set(items).requirement(USE_ENCHANTMENT).value(magic,1);
set(items).requirement(TOOL).value(mining,1);
//the "tweaks" section from the json config
set(hardness_modifier).value(0.65);
set(entity_tweaks).value(
Health,0.5,
Damage,1.5,
Move_Speed,0.15);
set(tool_tweaks).type(SWORD).value(
Dig_Speed,10.0,
Durability,0.01,
Attack_Speed,10.0,
Damage,1.5,
Tier,10.0);
set(tool_tweaks).type(AXE).value(
Dig_Speed,10.0,
Durability,0.01,
Attack_Speed,10.0,
Damage,1.5,
Tier,10.0);
set(tool_tweaks).type(PICKAXE).value(
Dig_Speed,10.0,
Durability,0.01,
Attack_Speed,10.0,
Damage,1.5,
Tier,10.0);
set(tool_tweaks).type(SHOVEL).value(
Dig_Speed,10.0,
Durability,0.01,
Attack_Speed,10.0,
Damage,1.5,
Tier,10.0);
set(tool_tweaks).type(HOE).value(
Dig_Speed,10.0,
Durability,0.01,
Attack_Speed,10.0,
Damage,1.5,
Tier,10.0);
set(wearable_tweaks).type(BOOTS).value(
Durability,0.01,
Armor,10.0,
Knockback_Resistance,10.0,
Toughness,10.0);
set(wearable_tweaks).type(CHEST).value(
Durability,0.01,
Armor,10.0,
Knockback_Resistance,10.0,
Toughness,10.0);
set(wearable_tweaks).type(LEGS).value(
Durability,0.01,
Armor,10.0,
Knockback_Resistance,10.0,
Toughness,10.0);
set(wearable_tweaks).type(HEAD).value(
Durability,0.01,
Armor,10.0,
Knockback_Resistance,10.0,
Toughness,10.0);
set(wearable_tweaks).type(WINGS).value(
Durability,0.01,
Armor,10.0,
Knockback_Resistance,10.0,
Toughness,10.0);
END

Syntax

Each configuration uses a combination of set(config_keyword).value(some_value);. The table below lists each configuration node's keyword, purpose, the value node format, and any necessary special nodes.

set keywordsetting functionspecial nodesvalue node
enabledwhether autovalues are activetrue/false. default value(true)
enabled_requirementswhether automatic requirement values should calculaterequirement(TYPE) the req type being enabled/disabledtrue/false. default value(true)
enabled_xp_awardswhether automatic xp values should calculateevent(TYPE) the event type being enabled/disabledtrue/false. default value(true)
rarities_multipliermulitplies xp calculations for blocks in the c:ores tagdecimal value. default value(10)
item_xpsets the skill and xp multiplier for item xp eventsevent(TYPE) the event being configuredskills and whole numbers separated by commas. value(skill,1,skill_two,5)
block_xpsame as above for blocksevent(TYPE) the event being configuredsame as above
entity_xpsame as above for entitiesevent(TYPE) the event being configuredsame as above
axe_breakable_overridefor all blocks in the mineable/axe tag, sets the skill and multiplierskills and whole numbers separated by commas. value(skill,1)
hoe_breakable_overridefor all blocks in the mineable/hoe tag, sets the skill and multiplierskills and whole numbers separated by commas. value(skill,1)
shovel_breakable_overridefor all blocks in the mineable/shovel tag, sets the skill and multiplierskills and whole numbers separated by commas. value(skill,1)
shovel_overridefor all requirements related to shovels.a skill and level ratio separated by commas. value(skill,3)
sword_overridefor all requirements related to swords.a skill and level ratio separated by commas. value(skill,3)
axe_overridefor all requirements related to axes.a skill and level ratio separated by commas. value(skill,3)
hoe_overridefor all requirements related to hoes.a skill and level ratio separated by commas. value(skill,3)
penaltiesthe potion effects applied for not meeting requirementseffect ids and effect levels separated by commas. value(minecraft:slowness,0)
itemsthe skills and ratio values for each requirement type.requirement(TYPE) specifies the req typea skill and ratio separated by commas. value(skill,1)
hardness_modifierHow block hardness scales block ratiosdecimal value. default value(0.65)
tool_tweaksHow tool properties scale autovaluestype(...) one of SWORD, PICKAXE, AXE, SHOVEL, HOEan attribute type (see below) and ratio value as decimal. value(Durablity,10.0)
wearable_tweaksHow armor properties scale autovaluestype(...) one of HEAD, CHEST, LEGS, BOOTS, WINGSsame as above
entity_tweaksHow monster attributes scale autovaluessame as above

Attribute Types

keyworduse
Durabilityfactor of tool max durability
Tierfactor of tool tier
Damagefactor of entity or tool attack damage
Attack_Speedfactor of tool attack speed
Dig_Speedfactor of tool block breaking speed
Armorfactor of item armor value
Knockback_Resistancefactor of item knockback value
Toughnessfactor of item toughness value
Healthfactor of entity hitpoints
Move_Speedfactor of entity movement speed