ExtraSkillSlots
It's a library for other devs!!! It allows adding more skills for characters
Screenshots 1 screenshots
About this mod Author’s original text
For users
It's utility mod and does almost nothing on its own.
What you should know about it is that mod has key bindings for extra skills that must be assigned in settings.
Here's, I think, the best key bindings (default, starting from 1.4.0):
For developers
TL; DR;
Adding extra skill is almost the same as adding normal skills.
Along with SkillLocator, you need to use ExtraSkillLocator. It contains info about extra skills.
Here's code snipet for adding extra skills:
var extraSkillLocator = commandoPrefab.AddComponent();
extraSkillLocator.extraFirst = firstExtraSkill;
extraSkillLocator.extraSecond = secondExtraSkill;
extraSkillLocator.extraThird = thirdExtraSkill;
extraSkillLocator.extraFourth = fourthExtraSkill;
That's all it takes for adding simple skills.
Full documentation
All defined classes extend corresponding classes from RoR2. Class naming follows one pattern: Extra{NameOfRoR2Class}.
- ExtraSkillLocator - The main thing that you need. It's a component that you add to your character prefab to be able to use extra skills.
Fields:
- GenericSkill extraFirst - contains info about first extra skill
- GenericSkill extraSecond - contains info about second extra skill
- GenericSkill extraThird - contains info about third extra skill
- GenericSkill extraFourth - contains info about fourth extra skill
- ExtraInputBankTest - Containts info about user inputs state for extra skills.
Fields:
- InputBankTest.ButtonState extraSkill1 - contains info about first extra skill state
- InputBankTest.ButtonState extraSkill2 - contains info about second extra skill state
- InputBankTest.ButtonState extraSkill3 - contains info about third extra skill state
- InputBankTest.ButtonState extraSkill4 - contains info about fourth extra skill state
- ExtraSkillSlot - Contains consts for extra skill slots. Can be used to get skills from the corresponding slot from SkillLocator.
- RewiredActions - Contains consts for rewired actions. With that info, you can manually access corresponding buttons state via Rewired.Player
- ExtraSkillSlotsPlugin - Main class of this mod. There's nothing you can do with it, except to look at BepInPlugin definition to define a dependency to that mod.
Small tips
If you got to the point where you need more skills, you probably know enough about creating characters/skills, just want to leave here a small guide for skills creating.
- To access ExtraInputBankTest(and any component that not stored in fields) from EntityState you should use outer field, for example:
var extraInputBankTest = outer.GetComponent();
- Mini guide about adding extra skill
//Create new SkillFamily
var firstSkillFamily = ScriptableObject.CreateInstance();
//IMPORTANT! Do not forget to add name for SkillFamily
//because game uses it for saving loadout
//Also I recomend to follow naming convention "{PrefabName}{SkillSlot}Family";
(firstSkillFamily as ScriptableObject).name = "MyCharacterBodyFirstExtraFamily";
//Adding skill variants to the family
firstSkillFamily.variants = variants;
//Registering skill family in catalog
LoadoutAPI.AddSkillFamily(firstSkillFamily);
//Adding new GenericSkill component to character prefab
var firstExtraSkill = myCharacterPrefab.AddComponent();
//Setting SkillFamily to our GenericSkill
firstExtraSkill.SetFieldValue("_skillFamily", firstSkillFamily);...
//Adding ExtraSkillLocator to character prefab
var extraSkillLocator = myCharacterPrefab.AddComponent();
//Assigning our skill to corresponding slot
extraSkillLocator.extraFirst = firstExtraSkill;
Bugs
Feel free to ping me on discord @KingEnderBrine if you found one.
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: