-
Notifications
You must be signed in to change notification settings - Fork 3
VariantInfo
The VariantInfo ScriptableObject is the backbone of any variant you create, It's main function is to store data related to the stat changes and any other ScriptableObjects you create, such as Mesh replacements, skill replacements, etc.
The mod itself registers the Variants using all the information found within VariantInfo. Due to the length of the scriptable object itself, it is separated in 5 distinct areas.
-
Identifier Name: The Identifier name is an UNIQUE ID given to every variant. While its not used by any of the systems made by VarianceAPI. it is mainly a tool for VariantPack creators for Debugging, or creating unique interactions with custom written VariantComponents.
-
Body Name: The body name, as it suggest, its the name of the BodyPrefab you want to modify. a List of vanilla body prefabs can be found here. While the list is extensive, you can reduce the amount of searching done by doing a search function in your browser and searching for
prefabs/characterbodies/. Something worth mentioning, Whenever you find your prefab that you want to modify, keep in mind you must AVOID adding the Body part of the prefab. this is because VAPI's systems already append the string "Body" when searching for the characterbodies, so if you set Body name to "LemurianBody". VAPI will try to search for "LemurianBodyBody". since no body of that name exists, it'll return null and crash your mod. A perfect explanation is shown here in the main method that VAPI uses to add Variants. -
OverrideName Array: The OverrideName Array accepts only VariantOverrideName scriptable objects, information on them can be found [here]
-
Is Modded: Wether or not the body youre trying to target is from a Mod. If you try to access the body of name "MoffenClayManBody". you'll find that the body does not exist at runtime and instead exists once the BodyCatalog gets initialized. as such, IsModded causes VAPI to search the BodyCatalog once its initalized and then add the VariantHandler component to said modded body.
-
Variant Config: Accepts only VariantConfig Scriptable object, information on them can be found [here]
-
AI Modifier: The AI Modifier is a method for creators to modify in very basic ways the AI of the enemy by modifying it's AISkillDriver components, its an enumerator that has 3 possible Values
-
Default: No changes are made to the AI
-
Unstable: The Variant will attempt to use any of its Desesperation Moves whenever possible, Examples of Desesperation Moves include the Wandering Vagrant's Nova Explosion
-
ForceSprint: The Variant will always sprint
-
-
VariantTier: The Variant's Tier dictates mainly miscelaneous features of said Variant. Mainly its reward multiplier and item chances when VariantRewards are enabled. Contrary to popular belief, VariantTier has NO correlation with SpawnRates.
-
Common: By default, the Variant has a 1.3 multiplier on gold and xp, and has a 3% chance of dropping a white item.
-
Uncommon: By default, the Variant has a 1.6 multiplier on gold and xp, and has a 5% chance of dropping a white item, and a 1% chance of dropping a green item, Alongside this, Uncommon variants have a purple healthbar.
-
Rare: By default, the Variant has a 2.0 multiplier on gold and xp, and has a 10% chance of dropping a white item, 5% for a green item, and 1% on a red item, They also have a purple healthbar and an announcement in the chat is made to announce their arrival.
-
Legendary: By default, the Variant ahs a 3.0 multiplier on gold and xp, and has a 25% chance of dropping a white item, 10% for a green item, and 5% on a red ite, They also have a purple healthbar, make an announcement, and have an unique spawning sound (NYI)
-
-
Gives rewards: Wether or not the variant gives rewards. if it's VariantHandler component is the only one active, then it wont drop rewards, however, if its a variant overlap, and the other variantHandler does give rewards, the variant will drop rewards, but ignoring the one that doesnt give rewards. A better explanation is layed on the [VariantRewardHandler] component page
-
Custom Variant Reward: Accepts only a CustomVariantReward scriptable object, information on them can be found [here]
-
Variant Inventory: Accepts only a VariantInventory scriptable object, information on them can be found [here]
-
Custom Equipment: Accepts only a EquipmentInfo scriptable object, information on them can be found [here]
-
Buff Array: Accepts only VariantBuff scriptable objects, currently not implemented
-
Skill replacement Array: Accepts only VariantSkillReplacement scriptable objects, information on them can be found [here]
-
Health Multiplier: Multiplies the Variant's base health.
-
Move Speed Multiplier: Multiplies the Variant's base speed. setting this too high can cause variants to slide around uncontrollably, to avoid this, use GoatHoofs instead.
-
Attack Speed Multiplier: Multiplies the Variant's attack speed.
-
Damage Multiplier: Multiplies the Variant's Damage.
-
Armor Multiplier: Multiplies the Variant's Armor
-
Armor Bonus: Adds or substracts armor from the variant. depending wether a negative or a positive number is in the input.
-
Arrival Message: Used mainly for Rare & Legendary variants, if left empty, it'll announce a generic message of their arrival
-
Mesh Replacement Array: Accepts only VariantMeshReplacement scriptable objects, information on them can be found [here]
-
Material Replacement Array: Accepts only VariantMaterialReplacement scriptable objects, information on them can be found [here]
-
Light Replacement Array: Accepts only VariantLightReplacement scriptable objects, information on them can be found [here]
-
Size Modifier: Accepts only a VariantSizeModifier scriptable object, information on them can be found [here]
-
Extra Component: Accepts only a VariantExtraComponent scriptable object, information on them can be found [here]
-
Custom Death State: Used to replace or modify a variant's DeathState. Accepts only a fully qualified class name.