tModLoader [1.4.4] TerraGuardians - Terraria Companions Mod

I didn't crash when I entered multiplayer with no one recruited. it allowed me to recruit though you couldn't see any of them in the world unless recruited but could only recruit 1. the crash seems to occur when entering multiplayer with a party of 2 terra guardians or more and then you try to dismiss any of the group since you only see 1 companion showing. though i did have to tell all them to move in so possibly they just hadn't shown up in the world. since upon dismissing the single companion I recruited in multiplayer after entering multiplayer with no party didn't crash me. it seems to be a problem with having multiple terra guardians in a party before entering multiplayer.
 
Alright, that description seems detailed enough, and I'll investigate that issue after the holiday.
Have a Merry Christmas, you and your family.
 
Have a merry christmas to you aswell
Alright, so...
I changed how the companions data are acquired by the game, potentially also making it more stable, and that seems to have fixed the issue of the selection interface crashing.
During my testings, I didn't got any crashes during multiplayer and It's playable. The thing is, the mod multiplayer, I literally only begun actually working on it now. Beside the companions can be called and help on mp, they wont appear for other players, neither the npcs will be sync'd correctly right now. I would need more time to do the sync scripts.

Would you like the multiplayer playable but with companions only visible by the player who summoned it, or would you preffer waiting to play the mod on multiplayer when the syncs are done?
 
me and my wife are willing to wait for the multiplayer syncs but im glad i could help with finding a crash issue for you
 
I bought a new pc and installed tmodloader ,and installed some mod (including this mod). But i couldn't spawn Michelle( using cheatsheet), also she didn't spawn naturally too. How can i spawn her? Please let me know, and sorry,I really not good at english
 
Michelle spawns different from other companions in the game, since she "logins".
She usually spawns with you in the world, but I think I decreased her spawn rate a number of updates ago.

Edit:. Try getting yourself at least one point of defense. For some reason she requires that.
 
Michelle spawns different from other companions in the game, since she "logins".
She usually spawns with you in the world, but I think I decreased her spawn rate a number of updates ago.

Edit:. Try getting yourself at least one point of defense. For some reason she requires that.
Oh,thank you,she spawn right after i get my wooden armor
Also, i Just noticed A line '2P press start' while i am in singleplayer. What is that ? ( that line disappear when i turn off this mod)
 

Attachments

  • Homie.png
    Homie.png
    267.5 KB · Views: 96
Last edited:
It finally begins.

My keyboard is here, I got FLstudio to work, my weekends are open, and my mind is full of ideas. I’ve got a friend to help make thumbnails, and another friend to make animated backgrounds.

I’ve got the time, the motivation, the tools, and the ideas to begin.


LETS DO ITTTTTT!!!!
 
Hey hey hey, one thing at a time. If you focus on many things at once, you'll hardly get any done.
Lower the hype a bit.
 
I launched an update with a number of fixes and changes.
Updated the victory scores of the companions based on latest popularity contest result.
Fixed an issue where Green and Miguel previously had victories, even though they only participated once.
Rummors companions destines to those who picked them as their buddies will now be shown correctly by them.
-> They will never mention that they were picked as buddy by someone.
Fixed an issue where Minerva was showing as male.
Companions can no longer be pulled when they're lifting the player.
Inverted the negation state of the mount icon on the companion profile page. (Is this a good name?)
Changed the way Brutus warning appears. This way might fix a possible incidence of ignored crash causing message telling he showed up not to appear.
Fixed a bug where starter guardians would leave the world at their first oportunity.
Green can now fix wounds out of your character and companions.
Changed the method used for drawing the texts on companions dialogues.
Luna now can talk about Skills and Companions living in the world.
Added Tutorial Quest to the mod.
-> Quest is named "Know More".
-> Luna will assist you during that quest.
-> That quest is entirelly used to explain about some mod features without reading the help dialogues she offers.
-> This quest is impossible to complete. You can't stop learning, right?
Fixed Rococo's head equipment positioning.
Changed how the mod gets companion datas for their npcs.
-> That also possibly fixes a crash with the companion selection interface on multiplayer.
Fixed a problem where the companion couldn't be pulled to you on multiplayer, without respawning them..
Removed useless test multiplayer sync config option.
Fixed a bug where the Broken Armor debuff given by the Zombie Guardian sword slash on expert mode only lasted half a second.
-> Now it lasts 30 seconds, instead.
Minerva can now end up spawning during your travels, if not only her requirements are met, but also your friendship level with her is under 3 (which is the friendship level for you to be able to let her move in).
Cinnamon will still have the chance of appearing after the Travelling Merchant, even if you've met her before.
The changes on Minerva and Cinnamon spawning are useful for those who disabled companions visit.
Vladimir's free recruitment has been reworked:
-> Before, you would gain Vladimir for free for starting a new character before the launch of Terraria 1.4.
-> Now, you can get Vladimir if you enter a world with a character that you didn't recruited him yet, 14 days before Terraria's birthday, or on the day of Terraria's birthday.
Vladimir will now try carrying the companions that aren't blacklisted, instead of carrying blacklisted ones only.
-> He will also only try carrying companions that have at least up to 95% of his size.
-> Removed Liebre from Blacklist. Vlad isn't that scared of a reaper anyways.
Demons can now drop the Unholy Amulet.
Killing the King Slime while Sardine is inside it will now make him be instantly unlocked for all players in the range of the combat.
Companions will now try following you through platforms, when you drop from them.
-> They may not be able to follow you correctly on 2 platforms that have solid blocks around them.
Liebre's recruit npc has been implemented.
-> His recruitment is multi stage. I'm pretty sure Luna will be able to help you know where to go next.
Companions gains lava and dangerous tile immunity while being pulled by players.
Only companions following players will hold their offhand items.
Companions will stop being pulled to a dead player.
Fixed a bug where starter guardians came with a very generous inventory.
I plan on tweaking a number of stuffs in the mod, includding the requests system, and the skills system.
Also, I think it is about time I begin making use of the companions gold. I thought about a way of restocking the companions items by clicking some
buttons related to the items, while having the store of a npc opened. I will still need to test my idea, before I can make something solid, but right now, it's just an idea.

Have fun.
 
Hey uh, this may not be the right place to post this, but since you said lower the hype a bit and maybe do one thing at a time, which theme first? I also might as well add another question, what do you want the theme of said fight to sound like? You could give me an example using a pre-existing song and tell me what you like about it, tell me what sort of themes you may want in it, or stuff like that. You could also just let me kinda go for it on my own and show you what I end up thinking.

Probably gonna replay the mod again so I can see what characters have fights again or just overall interesting encounters.
 
Hey uh, this may not be the right place to post this, but since you said lower the hype a bit and maybe do one thing at a time, which theme first? I also might as well add another question, what do you want the theme of said fight to sound like? You could give me an example using a pre-existing song and tell me what you like about it, tell me what sort of themes you may want in it, or stuff like that. You could also just let me kinda go for it on my own and show you what I end up thinking.

Probably gonna replay the mod again so I can see what characters have fights again or just overall interesting encounters.
The only one I remember is the Zombie Guardian fight one.
Beside the fact that him surging is a shock, the fact you're facing a TerraGuardian somehow means that the fight is going to be tough.
I don't really have much else to describe about right now, but probably could be a theme meaning that big trouble has silently arrived.
 
New TerraGuardians mod update is out! This one is special, since it replaces the request system for a new and better one.
Companion folders were organized.
-> Now TerraGuardians will be located inside Companions/Creatures, while Terrarians will be located inside Companions/Terrarians.
-> A modder adding companions to this mod can setup a custom directory to their companion files by using SpriteDirectory variable, on GuardianBase. The folder name is still the companion name.
Companions now have messages they will say when rescuing someone.
Terrarian companions will now have their hair hidden if a mod item they're using has setup so.
Companions talk messages will now be told when you start dialogue with a companion, that has maxed out comfort points, and gains friendship exp.
Request system remade:
-> The mod now has a database of possible requests, with their objectives and requirements.
-> The system is now easier and direct about making new requests, and also has less irrelevant infos loaded on the memory.
-> Completting the request now offers you 3 possible rewards. Each reward is generated once the request is created, by talking to the companion about it after the cooldown ends.
-> The HasRequestMessages has been updated to support "[objective]" tag, so you can display a short description of the objective, before you can accept or reject it.
-> Added 2 new messages, they are for when you complete the request, or talk to the companion about the request, and it isn't completed or failed.
-> If you have less than 30 seconds to complete the quest when you talk to the npc about it, the game will give you exactly 30 seconds to pick your reward and complete it.
Wrath's npc hit counter variable now resets once it reaches the necessary amount of hits for him to take some measure.
Wrath's npc will now try using Body Slam when he gets a certain number of hits and shots.
Companions you have request active, will be able to visit you, regardless of if you enabled or not companion visit on your world.
-> Failing a request because the npc didn't appeared sucks.
Miguel recruit npc no longer has the power of multiplication.
Since talk requests have been removed, their talk messages will show up when you speak to a companion that has full comfort point, about to rise friendship exp.
Changed how body parts of the Terrarian companions are drawn depending on equipments. Now they should work more like intended.
Companions will no longer sleeptalk feats they know people did.
There is now a delay of time before the bounty board updates its status.
-> There is no need for the bounty board to have its text updated every frame.
-> The bounty board will no longer show the exact time left. If the bounty will last hours, it will show only the hours. If it lasts minutes, It will only show the minutes.
Well, as spoiled above, the old request system was completelly dropped out of the mod, and replace for a new system.
This new system offers not only is lighter on the memory, but also is easier to add new request types to it.

It also brings to you, the particularity of letting you pick between 3 possible loots when reporting the request, so it's 3 times the chance of you getting something that might be useful for you.

I also had to review the loot acquired from completting the requests, so it gives you items that are more useful, and interesting as a reward.
Of course, the limit of up to 3 active requests stays. Just be sure to pick requests you can complete, and try completting them in time.

If some modder feels like trying to add custom requests support for their mod, it's really simple to do so:
  1. Create a class that extends giantsummon.RequestContainer.
  2. Initialize the base as the mod you're trying to add requests from.
  3. RequestContainer brings several methods to aid you on creating custom request, give them a unique id, and setup their objective. On github, check Requests/RequestDB.cs for how that works.
  4. Create a new object of your custom requests class at PostSetupContent. Just creating it already places it on the possible requests list.
You can also add extra rewards for completting requests too.
  1. Create some method to store all the custom rewards you want to add, so you place them there.
  2. At PostSetupContent, add a call to that method.
  3. Use RequestReward.AddRequestReward() to add the rewards to the loot pool. Acquisition chance is the chance among all items in the list of being a possible loot. You can use the field CanGetReward to add a condition for that item to be acquireable. Check RequestRewards.cs on github for ideas on how to setup the rewards.
Have fun. :D
 
Remember the update I launched yesterday?
Well, here comes the bug fixes and tweaks.
Terrarian companions head on the interface will now be drawn correctly.
Reduced the penalty applied to companion visits based on number of empty housing slots in the world.
Ground summons invoked by companions will now be deactivated when their collision checking fails.
-> This is to avoid a locking that happens during gameplay.
Reentering world will now schedule visits correctly.
Changed requests complettion time from 2~3 days, to 3~5 days.
Changed the text of request time from in-game time, to real time... time.
Reduced drastically the timer for updating the bounty board text.
-> Now It will update every 10 seconds.
-> Was taking way too long for the bounty board to update it's progress.
Fixed the defense rate value acquired from Endurance status.
-> It will no longer set the defense rate to the lowest negative value.
-> For Leopold, that made him have negative defense values, with higher number depending on Endurance level.
Leopold's default defense rate change was reduced from -7% to -3%.
-> Might return to -7% in future updates.
The defense rate given by the Endurance skill from the companions was totally broken, so I had to fix that issue.
Companions should now be tankier as the endurance level increases.

Also, send me an F or two for the 2 times I couldn't complete Minerva's requests because I couldn't find her in time.

Have fun, and I hope there's now enough time to complete the requests.
 
Hey! Look! It's a bird? It's a plane? No! It's another hotfix patch!
Companions should not try ignoring critters that somehow got more health than usual.
The setting of monster health boost by companion number is now in decimal, so you can change how much health each monster get for each companion summoned.
Added an option to allow you to make monsters spawn rate and max spawn be increased based on number of companions following you.
Fixed concatenation issues with the request timer.
Yes, you can now chat with the reaper.
Fixed some dialogue issues based on player feedback.
Companions you just met will now share the same companion data you have.
-> This fixes an issue where starter companions would refuse joining you, until you reentered the world, or called them through the guardian selection interface.
Companions will no longer announce that they fell.
Waking up a companion will make them sit on their bed when speaking to you.
-> They will go back to sleeping once the dialogue ends.
Nerfed the damage of the following attacks from the bounty targets:
-> Reaper's Demon Scythe will deal 60% of the bounty damage, instead of 120%.
-> Haunted's Lost Soul will deal 85% of the bounty damage, instead of 125%.
-> Alchemist's Greek Fire will now deal 75% of the bounty damage, instead of 125%.
-> Sharknado's Sharknado will now deal 95% of the bounty damage, instead of 125%.
-> Cursed's I forgot what it is will now deal 85% of the bounty damage, instead of 125%.
Fixed bug where companions that have request active couldn't visit you.
Finally managed to fix the issue where companions couldn't visit you when you have requests active.
Now Minerva and Cinnamon should be even easier to have moving to you world.

Enjoy :3
 
Hey! Look! It's a new update! Yeah! It brings someone new.
Travel requests should no longer be laughably fast to complete.
Added some null safety to companion drawing scripts.
Increased the range which companions will spot tiles.
Fixed an issue where companions following and combat AI were clashing with each other.
-> They should now behave better on combat.
Changed where some scripts run when they need to be run when dropping npc loot.
-> That might fix a issue where mods could impossibilitate progressing on quests.
Fixed animation speed issue with walking companions recruit npcs.
Irene's tombstone will no longer spawn in evil biomes, or anywhere with dungeon blocks.
-> It will also not spawn where has a background wall. That should stop it from being placed in caves.
Cille arrives!
-> Also the second companion to come with clothes.
Irene's tombstone generation can still happen while in-game.
-> It's done that way in case the game fails at generating it during world creation.

Arrival

Well, this update brings a new companion for you to meet. Say hello to Cille.
Cille.png
Cille: "*For your own safety, stay away from me.. Please...*"

This companion was requested to me by Boom. He had made artworks of this character in the past, and tried recreating her as a TerraGuardian by using Malisha as model, and asked me to make a companion out of her, so I did, includding the companion spritework. If wasn't for him, this companion wouldn't have even surged, so send him your thanks.

I have to say, she may be the most complicated companion I've made as of now, because she has quite a number of detail in her body. The dots on her skin, I nearly got demotivated to sprite her animation frames several times just by looking at them, but gladly, "Just do it!" still works.
Also includding the fact that she has clothings too. None of my companions have clothings naturally, because It increases a lot the complexity of spriting, but in Cille's case, I nailed it.
Also, just like many other companions, she not only has her own method of recruitment, but also a post recruitment behavior too. She just isn't the kind of companion that will come visitting you and give you requests, and you'll see why if you manage to get her in-game.

I wasn't actually alone when making this, since this is the first companion I made by others request, while having models to base on, so I thank everybody who helped in the process of making this companion, and giving feedbacks about how I could sprite her. The only problem is that my goal was to release her before February 10, but I'm actually releasing her at exactly February 10, so... I blowed up the deadline...

Anyways, enough talking about her development process. This companion will be quite tricky for you to befriend, since she will keep trying to
avoid talking with you. Only those persistent enough might be able to actually crack her ice, and end up getting her to start caring about you.
But do watch out, there is a reason why she avoids contact with people. Will you find out?

Anyways, no way I'll leave her like this, let's see what future contents may be reserved for her.

Ending

This update also brings quite a number of fixes to the game. One of them is really important, because companions in combat, with AI of taking some distance off the their targets, like assist and snipe AI, will no longer clash with the player following AI, so you will no longer see companions moving back and forth in combat.

Also, due to Cille arrival, I thought about adding another way of Irene's tombstone spawning, so if it fails to spawn her tombstone at world generation, It will try spawning during your gameplay. How you'll know if a tombstone has spawned? Easy, listen to rummours given by Luna.

I have to say that working under a deadline worned me out a bit, so I'll take a quick break from the mod. That probably means that in a few days I'll be back, at least if there's no bug reports. Anyways, I really had to work a lot in the coding to make this new companion to work. I still need to think about new content I must implement to the mod, so it gets more stuff for you guys to play with in-game. Right now, I'm wondering about ways you can interact with companions. I'll need to pick the best method, of course.
Beside, I also need to begin working on Leopold's Research system in the future, that will surelly be something interesting for your game, heh.

Well, that's all. I hope you guys have fun.
By the way, be sure to give me your support, It really helps.

See ya!
 
Last edited:
Back
Top Bottom