premium banner
Recruit, command, equip, and level up companions that fight, farm, mine, loot, and haul items for you in Hytale.

Description

A Hytale companion mod that lets you recruit NPC companions and control them through flexible roles and stances.

Companions can fight alongside you, farm assigned crop areas, mine tunnels or specific resources, loot items, carry their own inventory, and deposit supplies into linked chests.

They also level up through combat, mining, and farming, earn gear rewards, and can be equipped and managed directly through the companion UI.

v0.2.0 update is released!

Changes include:

- There are now 4 different skin tones for companions

- There are now several more clothing options and combinations. There are now thousands of potential companion combinations (skin tone, clothing, hair) 

- Added an auto-revive option. (Note: you must run the mod one time create the json or to update the existing revive-config).
Example usage:                             

{
  "reviveCostAmount": 50,
  "reviveCostItem": "Ingredient_Life_Essence",
  "autoReviveCooldownSeconds": 10
}

Note: when setting cooldown seconds to 0 auto-revive will be Off. Also note the item is used when using auto-revive unless an item is not specified (or cost amount).

- Improved 'Mine For' (miner will now stop running in place when searching wider area or when cannot find block in area)

- Improved Mining (miner has better repositioning when moving into a new lane)
- Default companion weapons have been changed from iron to stone (or a club)
- Slightly changed companion spawning rate for balance



Base Features include:


  - Recruitable companion NPCs found in the world (use F to recurit. Companions are found in Zone 1 - Drifting Plains, Seedling Woods, The Fens, Autumn Forest, Azure Forest, and Rocky Terrain/Swamps)
  - Summon and dismiss owned companions
  - Role system:
      - Fighter
      - Farmer
      - Miner
Note: a companion's role can be changed at any time and progress is saved for each role
  - Stance system:
      - Follow
      - Stay
      - Free
      - Patrol
  - Companion combat assistance
  - Reactive defense when enemies attack you or the companion
  - Melee and ranged weapon support
  - Companion equipment system:
      - weapons
      - armor
      - offhand items

  - Companion Radio craftable item (in the Workbench > Tinkering tab) that can control companions remotely
  - Companion inventory management
  - Item transfer between player and companion - with click-slot-to-move functionality
  - Loot pickup support
  - Farming system with assignable farm area (use TL - top left corner and BR - bottom right corner buttons to set farm area) Note: UI buttons change depending on the companion's role
  - Mining system:
      - directional mining
      - mine-for specific resource mining
  - Linked chest storage and deposit behavior (auto-deposits occur in farming loop and mining when full or deposit on command)
  - Combat, mining, and farming progression
  - Level-up reward gear and items (level up gear is auto-equipped)
  - External config support for changing level-up rewards outside the game (located in AppData\Roaming\Hytale\UserData\Saves\Your_Save_Name\mods\ForestHue_CompanionNPCs\progression-config) Note: incorrect asset names WILL cause a crash
  - External config support for changing revive costs outside the game (located in AppData\Roaming\Hytale\UserData\Saves\Your_Save_Name\mods\ForestHue_CompanionNPCs\revive-config) Note: incorrect asset names WILL cause a crash
Example:

{

  "reviveCostAmount": 100,
  "reviveCostItem": "Ingredient_Life_Essence"
}


Note: You'll need to run the mod once for the json files to be created.

  - Companion UI for status, equipment, inventory, commands, and live updates
  - Appearance persistence and managed companion restoration
  - Revive support for fallen companions

Note: UI Command buttons change depending on the companion's role




Demo Video

Server Usage 
- so far I've not had any issues using the mod on a server with multiple players, but this has been very limited in testing, I need feedback on issues using it on a server. Tested using Apex Hosting server.

Farming Note: The current supported crops are: Wheat, Lettuce, Carrots, Corn, Cauliflower, Turnip, Aubergine, Pumpkin, Tomato, Chili, Rice, Cotton, Onion, and Potato. Others may be added in a future update if there are users wanting it.

Commands for testing purposes - set self to OP then you can use:

- Open the UI quick command: /fhc (note there is a "fallback UI" with less functionality that may appear if something fails, but you'll likely never see it unless you explicitly call it using a command)

  Roster

  - /companion create [name]
    Create a new companion.
  - /companion list
    Show your full roster.
  - /companion select <name|number>
    Select which companion later commands target.
  - /companion rename <new name>
    Rename the selected companion.

  Summon / Dismiss

  - /companion summon [name|all]
    Summon one companion or all companions.
  - /companion dismiss [name|all]
    Dismiss one companion or all companions.

  Role

  - /companion fighter [name]
    Set role to Fighter.
  - /companion farmer [name]
    Set role to Farmer.
  - /companion miner [name]
    Set role to Miner.

  Aliases:

  - fight, defend -> fighter
  - farm -> farmer
  - mine -> miner

  Stance

  - /companion follow [name]
    Companion follows you.
  - /companion stay [name]
    Companion stays in place.
  - /companion patrol [name]
    Companion patrols around its anchor area.
  - /companion free [name]
    Companion acts with no movement restrictions.

  Inventory / Equipment

  - /companion givehand [name]
    Give your held item to the companion.
  - /companion takehand [name]
    Take an item from the companion.
  - /companion giveall [name]
    Give all possible items to the companion.
  - /companion takeall [name]
    Take all items from the companion.
  - /companion equip [name]
    Equip your held armor or weapon onto the companion.

  Storage

  - /companion chestlink
    Link the chest you are looking at.
  - /companion chestunlink
    Unlink the chest you are looking at.
  - /companion deposit
    Force active companions to deposit items.

  Appearance

  - /companion appearance <modelId>
    Set a specific appearance model.
  - /companion appearancerandom
    Clear the appearance override.
  - /companion rerollappearance [name]
    Reroll the companion’s appearance.

  Status / UI

  - /companion status [name]
    Show companion status.
  - /companion debug [name]
    Show debug information.
  - /companion progression [name]
    Show progression details.
  - /companion menu
    Open the text menu.
  - /companion uimenu
    Open the graphical UI.

  Aliases:

  - levels -> progression
  - menuui -> uimenu

  Recovery

  - /companion fallen
    List fallen companions.
  - /companion revive <name|number>
    Revive a fallen companion.

  Utility

  - /companion roles
    Show role info.
  - /companion rolesall
    Show all role-related info.
  - /companion models
    List available appearance models.
  - /companion farmtest
    Farm-related test command.
  - /companion help
    Show help.

Note: This is my take on a companion mod. I took a lot of inspiration from other companion mods. I encourage everyone to check them out.
Special thank you to the creators for the inspiration and the awesome mods!

- Cubia's Companions
- RPG Companions
- AmigoNPC
- My Friends
- Alec's Animal Husbandry!

Future enhancements include:

- More Companion variants with skin tone variations - added in 0.2.0
- Selectable teams for "companion battles" between players or player groups
- Attempting to use and incorporate the Combat Action Evaluator as much as I can
- Remaining bug fixes (please report any bugs found)
- Companion swimming
- Proper companion animations when mining, farming, etc.
- P vs C damage switch
- C vs C damage switch (this will be covered by the "teams" update)
- Smarter pathing to target (mining, farming)
- Better Mine For functionality - updated in 0.2.0
- Selected companion image in UI (right side of gear section)
- Reduce java-driven behavior as much as possible and rely more on asset/role-driven scaffolding

Suggestions are welcome! I have not had much in the way of feedback when testing so I would appreciate any suggessions and all suggestions will be considered. Features that should be added? Please feel free to suggest anything.