• PC NEWS: 1.4.2.3 update is out! More info here. Report bugs here
  • CONSOLE 1.4 NEWS: The current plan is to have Terraria: Journey's End out for Xbox and PlayStation in Q3 2021 (Jul-Sep). Switch will follow shortly afterwards. More info here. Stay up to date with console news here
  • MOBILE NEWS: Stay up to date with the latest mobile news here. Report mobile bugs here

tModLoader TerraGuardians - Terrarian Companions

Nakano15

Terrarian
I think the mystery intensifies. Or maybe some mod that updated, changed something that caused the problem not to happen anymore.
 

Lexiand

Terrarian
Will there be ai improvements later on?
I honestly want to see the companions try to jump over gaps with me
Or use wings and stuff to fly.
 

Nakano15

Terrarian
Will there be ai improvements later on?
I honestly want to see the companions try to jump over gaps with me
Or use wings and stuff to fly.
I don't know. My intention was trying to make them smarter when travelling with you, but I don't really have ideas of how I can check when they should jump over gaps, and if It's safe for them to jump.
I've even made an AI to check where they will land, but had to disable due to issues with It.

I can see if I can make them smarter at finding out when they shouldn't fall.
Add skill tree?
Skill tree? And what that skill tree would benefit on? Or even how It would work?
 

AGERGO100

Terrarian
There are three things you can focus on in this Skill tree.
Mobility: speed, high jump, fall damage protection
Vitality: defense, extra HP, faster regeneration
Combat: more damage, faster weapon using, higher crit change

For these upgrades need materials.
 

Nakano15

Terrarian
The skills themselves already does that, beside the system Itself may need changes, since the current way isn't really great.
 

Lexiand

Terrarian
Very Cute.
1610258269362.png
 

Nakano15

Terrarian
Well... If you didn't managed to get the pig guardian, at least probably you got the deer guardian.
And I thought I had fixed that bug where her head is not planted on the land.

@topic Well, the next update is getting close to be done, but I really wanted to get a secondary companion that I've been secretly developing ready, and launch with It.
I can't wait to introduce the new companion coming next update, heh. Beside people who peek github probably already knows her.
 

Lexiand

Terrarian
Well... If you didn't managed to get the pig guardian, at least probably you got the deer guardian.

I lost that fight.

I got caught on his jump attack and I could not escape his chokehold. Despite how fast I was pressing the jump button lol.

Oof.
 

Nakano15

Terrarian
You can always try again the next time you find him. Be sure to bring an army if you think he'll give you some trouble.
 

AGERGO100

Terrarian
TerraGuardians can do construction commands.
1. Use "Construction" command
2. Select the area.
3. Choose what to do.
- Clean the area (block, wall, block and wall) [need pickaxe, hammer, axe]
- Fill the area [use the item on 0 slot]
 

Nakano15

Terrarian
That would be very interesting, but I would need to elaborate how I would create the system.
The problem is that I'm not really into modding Terraria right now, so I don't think I'll even try making the system.
I'll probably only try releasing the next update, and then give a break.
 

AGERGO100

Terrarian
That would be very interesting, but I would need to elaborate how I would create the system.
The problem is that I'm not really into modding Terraria right now, so I don't think I'll even try making the system.
I'll probably only try releasing the next update, and then give a break.
It is also better to take breaks to make everything easier.
 

Nakano15

Terrarian
The moment arrives.... Update launched!
Mabel gained a sprite revamp.
Mabel also got a change on her default weapon: She will now use Bee Keeper, instead of Enchanted Boomerang.
Removed Nemesis unused sprites.
Changed the way companions will look for targets.
-> When in a group, they will take in consideration the leader and the other TerraGuardians, when looking for a target.
-> When not in a group, they will try checking if any ally nearby is in danger.
Recipes will no longer spoil your shopping on Domino's store.
Nerfed damage penalty for having more than 1 companion.
-> Damage penalty went from 20% to 10% of the previous damage reduction.
Alex recruit npc now gives you some more time to read his final recruitment line.
Rococo recruit npc will now face the one he's speaking with.
Vladimir recruit npc will now be able to spot players in his view range.
-> That will stop him from wandering around, and speaking random lines.
You can now change how the companions will call you.
-> Not all dialogues have the companions call you a Terrarian, but... That's a change.
You can no longer control Terrarian characters.
Added a turn lock to the companions.
-> The turn lock will add a delay before companions can turn to the other direction, after just turning.
Did a few tweaks to the wall slide functionality on the companions.
Companions will now be affected by Dryad's Blessing/Bane.
The Portrait of a Friend will no longer give you free 15 golds.
The Portrait of a Friend will now correctly disappear from the inventory when you pass 12 minutes of gameplay.
Fixed two bugs related to player reviving a companion:
-> One is the bug where the text flickers, the other is not being able to revive companion when there's no town npc nearby.
You can now ask companions to join your team, or leave your team through their dialogues.
-> Due to this change, the Call and Dismiss button on the Guardian Selection Interface will still be disponible for you to use.
-> -> Did I scare you right now?
Added a fail safe checking on the companion dialogue update script. If the game manages to generate a dialogue without option, It will add the "Close" option to It.
Removed the friendship level related messages from the companions.
-> Ever since I added them, I felt very awkward, and were unable to add an actually fitting message for a friendship level up. There are better approaches for friendship level up.
Added some more special dialogue entries for companions.
-> There are for:
-> -> Leopold's recruitment (the 3 dialogues where the companion leader speaks to him).
-> -> For when you add or removes the companion from the group, through dialogue.
Companions will not only try facing the one they're reviving, based on which direction their left arm is closer to, but also will keep a 8 pixels distance from the one they're reviving.
The mod will now show the message of increase in number of followers on the correct friendship rank level.
There is now a different text when reporting failed missions.
Companions now have their texts for when you: Accept Request, Reject Request, Postpone Request, Have too many Requests, and Fail Request.
Whenever the mod adds a fragmented companion on the world, It will tell on their dialogue which ID and Mod Name they belong to.
-> That may help on the debugging.
Fixed a problem with the companion health bar, related to the Injury system.
-> The health bar will no longer be all empty regardless of how hurt your companion is.
Added two more attributes that influences the companion combat ai:
-> Agility: Controls how fast their cursor moves to the target. They will only be able to use ranged attacks when their cursor is on their target.
-> Trigger: Controls how fast your companion will use non auto swinging weapons. Each frame the companion can attack will increase this stack. Once It reaches 100 or above, the companion will attack, and this will reset.
Your character, and also your companions, will take 50% less damage when knocked out.
-> That will probably increase their survivability while in that state.
Changed the way the companions checks the enemy distancing from them when they are rescuing someone.
Bug fixes to Blue's Marshmellow on a Stick.
-> Yes, again. For some reason, the method I used for drawing the items recruit npcs holds was deactivated, and also dated. I had to update the method and activate It again.
The Suffocation debuff is no longer pathetic.
Companions will now try using poisons before attacking a monster.
-> The flask should be in one of their first 10 inventory slots, so they can use It automatically. They will not use It If they are under the effect of a flask.
Injury and Heavy Injury debuffs now lasts for longer on your character and companions.
-> Injury Time went from 30 seconds to 1 minute and 30 seconds.
-> Heavy Injury from Injury went from 1 minute to 5 minutes.
-> Heavy Injury persistence went from 3 minutes to 10 minutes.
You can now change all your companions behavior through the new order hud.
-> The Tactic menu has been added. It will allow you to change the companion behaviors to:
-> -> Charge: The companions will go melee combat against their target.
-> -> Avoid Contact: The companion will avoid staying near the melee range of the monsters.
-> -> Attack from safe distance: The companion will stay far away from the enemy, and try using ranged attacks from far away.
-> -> Free Will: Will make the companions resume using their set combat behaviors.
Your companions will now lie down on the floor when affected by "Sleeping" debuff.
Companions will receive 50% more damage when under "Sleeping" debuff.
Fixed a problem where companion town npcs couldn't be teleported home when knocked out.
-> That's because I used the wrong variable on the condition that triggered that. Also, there was no script to check if there were players nearby, so that would always teleport them if worked.
Brutus recruit npc will now say something when you recruit him by giving him Golds.
-> Due to that, I added an extra line of dialogue to him.
Speaking to a companion following you will no longer ruin the party formation.
Added the Dialogue System.
-> The dialogue system is to allow the possibility of creating dialogues with either branching dialogues, or even a scene to happen in the game, without getting you annoyed by hud systems.
-> Due to this addition, I added the possibility of adding Topics to the companions.
-> -> You can add new topics with a call text on them, which will be displayed on the list of topics you can talk about with your companion when speaking to It.
-> -> The option "Let's Chat" will send you to the list of topic, but It will only show up when the companion actually has a topic.
-> -> Added 2 new special message key calls: One for when you click "I want to talk with you.", and other for when you click "Nevermind" on the topic list.
-> -> There is also the possibility of adding a method as a checking of requirement to the dialogue show up.
-> You can actually make a rich dialogue system, if you make use of the companion friendship levels, and other things.
It will now be easier to climb down platforms while using Rocket Boots and Wings. Just hold down [Down] key before pressing [Jump] key.
Added the possibility of setting the minimum friendship level for the companion to move in to your world, when you are creating a companion.
-> That will be used, in case you want to make companions reluctant about living in the world.
-> The only way of interacting with them, is when they visit.
-> Starter guardians will also disregard the move in level requirement.
Reworded the message telling that the companion has a request for you:
-> Instead of "[name] has something for you.", It will instead say "[name] want something from you.".
Fixed companions melee AI distance checking.
Companions will now forcedly teleport to your character, when they are being pulled to your character, and your character is knocked out.
You can no longer get companion friendship exp by discovering them on other worlds. But you will still gain friendship exp for meeting them for the first time.
Companions you just met will no longer greet you with a new request after a few seconds since you met them.
-> However, their new request will pop up inside 1/4 of the normal request spawn time, so be sure to talk to the npc later if you want to get a request from It.
Requests given by the companion will no longer be generated when the cooldown timer runs out:
-> Now, when the timer runs out, either It checks if will give a Talk request, or if the companion should give you other kind of request.
-> When ready to get a new request, a new request will be picked when ask the companion "Need Something?" on It's dialogue.
-> -> This way, the request received will be given based on the world you are currently when asking for request to the companion, instead of when the request cooldown ended.
-> -> -> (That could cause problems like: The request got ready on a crimson world, but you only checked on a corrupt world, and then It requires things from the Crimson.)
-> You can still post-pone the request, in case you think you wont be able to do It at the moment. The option "Let's talk about your request?" allows you to check It again.
You can now cancel requests on their dialogues.
-> Companions also will have their own dialogues for each cancel request branching.
-> To avoid mistaken clicks, there is an extra step to ask if you are sure. The first option will always be "No".
Companions that doesn't lives in your world, will now more likelly visit you when you have a request with them active.
-> They really want to know if you did what they asked.
Companions will now try to jump holes in their way.
-> When following you, they will only do so if your character is higher or equal in height than their position.
Added some more infos to the GuardianBase commands. Maybe that will make It clearer about what they do.
Added a overrideable method on the GuardianBase. Now you can alter which request the companion will give, or if the companion will actually give requests.
Companions will now look at their group leader when they are following someone, and they are stopped, and not in combat, and neither using furnitures.
Malisha will no longer move in to your world, until her Friendship level is 3 or above.
You can only ask to see the inventory of the companion if your friendship level with it is Friends or more.
Companions skill leveling is now back to leveling up individually.
-> Time to make the ultimate companions build.
-> Due to this change, all companions skills progress were reset, but there will be a growth bonus based on the sum of skill levels your companion had.
Minerva arrives.

First, before talking about new systems, let's talk about our newest TerraGuardian:
Minerva.
Cow Guardian.png
Minerva: "*Hi... I'm... A cook... If you need some... food... I can make for you...*"

Minerva loves cooking, she even experiments her own food to see if she's improving in her skills or not. That also had a side effect, which you can see on her.
If you want to see her happy, just eat something she makes, and tell her that It's good.

Companion wise, she will be very helpful if you don't want to make your own food. The only moments you can ask her to cook is during the day and night. If you ask her to cook again at the same daytime, she will refuse.
She wont be interessed into joining your town after you meet her, but if you end up helping her everytime she visits, she may actually decide to try her cooking skills in your world.
Due to her constitution, she may also be helpful on your adventures, just keep in mind that she's quite heavy.

-------------------------

This update actually brought quite a number of cool stuff, but some of them I weren't able to develop further. As you can see above in the topic, I'm not really into modding Terraria right now, so... I just finished this update, because of the lots of things that It brings. Of course, If there's problems with It, I'll try launching a hotfix.

One of the changes is related to the targetting system. Now the companions will take some extra things in consideration, when looking for a monster. When in a group, they will check if hostile is near their group members. When not in a group, will check if nearby allies are in danger.

The other changes is that I tried to make more use of the companions chat. Now you have more interactions you can do with them, and may directly do some things that you would do only at the Guardian Selection Interface, directly through their chat box. One of them is calling and dismissing them from the group.

There is also the addition of the Dialogue system, which is still in development somewhat, but at least part of It is functional. The intention I had were of adding topics you could speak to the companion, which allows you to discover more about them, their origins and other things. The problem is: I didn't really got to develop that further, so there isn't actually companions with backstory dialogues disponible right now. The only thing you can do with this system, or at least one of them, is play RPS with Rococo. You won't gain anything from playing RPS with him, but at least you can pass the time.

The messages the companions showed to you when friendship level increased were removed. The reason for that, is that It's really awkward for me to write them. I were trying to make them be meaningful and touching, and It didn't worked. Sometimes, I had to spend a loooooong time trying to think of something that would actually reflect how far in friendship level you reached with that companion. I'm actually glad It's gone.

The 2 combat AI attributes I've added will make the companions more unique in combat. The addition of the Trigger and Agility are to make the companions have distinct behavior during combat, and make It simulate more like as if was a player actually doing the battle. I don't really think that will hinder you much, beside low Agility will probably give you troubles against fast enemies.

Added a new order session: Tactic.
The reason why I added a new order session, is because not everytime is a good idea to have the companions have the same behavior. The Tactic change will force all companions to follow a specific AI style, regardless of the AI they are using. If you set the Tactic to Free Will, they will go back to using their default tactics.

Well, I guess that's It. I'm not sure how I'll give continuity to this mod, but depending on how It happens, maybe It will only be to add characters.
There are a number of TerraGuardians on hold right now on the sprite development, and one of them is mostly done, beside needs a few sprites related to the recruitment method, and also It's special skill. Let's see how that will end.

Have fun.

Edit:. The last update of the mod was at the end of October of the last year?! Holy...
 

Onelastlich

Terrarian
The update seems to have broken something, I get this error log any time I try to use the mod.

[01:27:40] [25/INFO] [tML]: Instantiating Mods...
[01:27:44] [25/DEBUG] [tML]: Assembly Resolve: giantsummon_1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null -> SubworldLibrary_0, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
[01:27:44] [25/DEBUG] [tML]: Assembly Resolve: giantsummon_1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null -> SubworldLibrary_0, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
[01:27:44] [25/DEBUG] [tML]: Assembly Resolve: giantsummon_1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null -> SubworldLibrary_0, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
[01:27:44] [25/WARN] [tML]: Silently Caught Exception:
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at Terraria.ModLoader.Core.AssemblyManager.Instantiate(LoadedMod mod)
at Terraria.ModLoader.Core.AssemblyManager.<>c__DisplayClass10_0.<InstantiateMods>b__1(LoadedMod mod)
at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Terraria.ModLoader.Core.AssemblyManager.InstantiateMods(List`1 modsToLoad, CancellationToken token)
at Terraria.ModLoader.Core.ModOrganizer.LoadMods(CancellationToken token)
at Terraria.ModLoader.ModLoader.Load(CancellationToken token)
 

Nakano15

Terrarian
I can't really get much thing useful from that error log, but I'll try doing some experiments with mod loading to see if I can find the problem.
I wonder if It's related to SubworldLibrary.

Edit:. It's related to SubworldLibrary.
I'll have to try changing how the SubworldLibrary stuff are called on the mod, but I will only be able to do that change later.

You can try rollbacking the version through the Github page, but that will cause Minerva to be a Unknown companion, if you found her.
 
Last edited:

Nakano15

Terrarian
Hotfix launched.
Removed all the support to SubworldLibrary...
Added some missing dialogues to Minerva.
I really disliked having to remove the library entirelly, but It's worse to have It be obligatory to play the mod.
 

Cresceda

Terrarian
I'm actually still experiencing an error, even with the hotfix. I'm still getting this error with a clean install of tModLoader (so no other mods installed).
[16:11:46] [18/WARN] [tML]: Silently Caught Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at giantsummon.AlexRecruitScripts.TrySpawningTombstone(GenerationProgress status)
at Terraria.World.Generation.WorldGenerator.GenerateWorld(GenerationProgress progress)
at Terraria.WorldGen.generateWorld(Int32 seed, GenerationProgress customProgressObject)
at DMD<Terraria.WorldGen::do_worldGenCallBack>(Object )
at Terraria.WorldGen.worldGenCallBack(Object threadContext)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()

[16:11:46] [18/ERROR] [tML]: A problem was encountered during world generation
Spawning Tombstone.
System.NullReferenceException: Object reference not set to an instance of an object.
at giantsummon.AlexRecruitScripts.TrySpawningTombstone(GenerationProgress status)
at Terraria.World.Generation.WorldGenerator.GenerateWorld(GenerationProgress progress)
[16:11:46] [18/ERROR] [Terraria]: A problem was encountered during world generation
System.NullReferenceException: Object reference not set to an instance of an object.
at Terraria.World.Generation.WorldGenerator.GenerateWorld(GenerationProgress progress)
at Terraria.WorldGen.generateWorld(Int32 seed, GenerationProgress customProgressObject)
at DMD<Terraria.WorldGen::do_worldGenCallBack>(Object )
at Terraria.WorldGen.worldGenCallBack(Object threadContext)
 
Top Bottom