tModLoader Boss Checklist - In-game progression checklist.

jopojelly

Retinazer
tModLoader
5ubNHmy.png

Boss Checklist

Latest Download:
Mod Browser (in-game) - Direct link - Alt download link

Open to collaboration on GitHub
Discord:

This mod adds an in-game checklist that you can toggle with a hotkey. This checklist will be in suggested order according to the modders of the other mods enabled. When you defeat a boss, the checklist will update accordingly. I created this mod because I found that while playing modded Terraria, I had no idea which boss to tackle next without consulting the forum threads of each mod constantly.

Unfortunately, I can't support all mods yet because most of the mods that I want to support have not structured their code correctly. (See below and next post)

See it in action:

Currently Supported Mods (and probably a lot more I just don't know about):
  • Pretty much all the popular mods. I'm not going to list them all since it would be incomplete.

Changelog
v1.0
  • Boss Highlights has merged with Boss Checklist
  • New Mod.Call patterns to support new features, such as boss collections, boss records, and more.
v0.2
  • Boss Available support
v0.1.5
  • Hide Bosses from Checklist
    • Alt Click to hide
    • Useful for bosses you don't care about or are unable to summon
    • Syncs in MP
v0.1.4
  • Mini-boss and Event support
v0.1.1.3
  • Updated to 0.9
v0.1
  • Initial Release
  • Completed Filter
BossChecklist.jpg
 
Last edited:
How to add support for your mod
As of v1.0, this information is now listed on our wiki. Please view the wiki for info.


Old instructions below:

Adding support is easy, you just need to add some code to your Mod class that invokes Mod.Call on the bossChecklist mod. Make sure to follow the message format perfectly.

Current Messages Accepted:
Code:
"AddBoss", string bossname, float bossValue, Func<bool> bossDowned
"AddBossWithInfo", string bossname, float bossValue, Func<bool> bossDowned, string bossInfo, [Func<bool> bossAvailable]
"AddMiniBossWithInfo", string minibossname, float minibossValue, Func<bool> minibossDowned, string minibossInfo, [Func<bool> minibossAvailable]
"AddEventWithInfo", string eventname, float eventValue, Func<bool> eventCompleted, string eventInfo, [Func<bool>eventAvailable]

Code:
        public override void PostSetupContent()
        {
            Mod bossChecklist = ModLoader.GetMod("BossChecklist");
            if(bossChecklist != null)
            {
                // AddBoss, bossname, order or value in terms of vanilla bosses, inline method for retrieving downed value.
                bossChecklist.Call("AddBoss", "Tacoman", 5.5f, (Func<bool>)(() => ExampleWorld.downedAbomination));
                //bossChecklist.Call(....
                // To include a description:
                bossChecklist.Call("AddBossWithInfo", "Tacoman", 5.5f, (Func<bool>)(() => ExampleWorld.downedAbomination), "Use a [i:" + ItemType("StrongFlareGun") + "] at night in the Example Biome");
            }
        }
The description string can the chat tags system for color and items: Chat

Boss Available
As of 0.2, you can now hide a boss until conditions are met. It is the 6th parameter and is optional. Don't hide bosses just because of intended progression, as players sometimes skip bosses. Try to use the boss available only when the boss truly isn't available yet.


Reference for bossValue (set your value in relation to vanilla bosses):
Code:
SlimeKing = 1f;
EyeOfCthulhu = 2f;
EaterOfWorlds = 3f;
QueenBee = 4f;
Skeletron = 5f;
WallOfFlesh = 6f;
TheTwins = 7f;
TheDestroyer = 8f;
SkeletronPrime = 9f;
Plantera = 10f;
Golem = 11f;
DukeFishron = 12f;
LunaticCultist = 13f;
Moonlord = 14f;
 
Last edited:
looking good. This must mean I can do the same with my mod hooray :p

Edit: I'm pretty sure pumpkings mod has bools ready
 
Last edited:
looking good. This must mean I can do the same with my mod hooray :p

Edit: I'm pretty sure pumpkings mod has bools ready
I just checked, they are programmed incorrectly. If you defeat one boss, it'll set the bool for the other bosses.
 
Looks good! Before the release of my mod, I'll do all the stuff you said then *HOPE* it gets added. Btw, what do you mean by *the pull*? Just curious!
 
Looks good! Before the release of my mod, I'll do all the stuff you said then *HOPE* it gets added. Btw, what do you mean by *the pull*? Just curious!
With Github, if you don't have permission to commit changes directly into the master branch of a project, you "fork" the project, meaning you have your own branch of the project. After you make changes, you click "New Pull Request" and your changes will be presented to the users of the master branch so they can decide whether or not to "pull" or merge your changes into the master branch. Basically it lets you submit changes to an open source project that will be verified by one of the main developers of a project.

This looks awesome! I'll have to have to work on adding support with my mod next I can.
Great, I hope my instructions prove good enough for someone to figure out what I mean, but don't hesitate to ask.
 
I get an error when I try to build the Boss Checklist with the changes I added...

The game has crashed!

Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Terraria.ModLoader.ModCompile.RoslynCompile(CompilerParameters compileOptions, String[] files)
at Terraria.ModLoader.ModCompile.CompileMod(BuildingMod mod, List`1 refMods, Boolean forWindows, Byte[]& dll, Byte[]& pdb)
at Terraria.ModLoader.ModCompile.Build(BuildingMod mod, IBuildStatus status)
at Terraria.ModLoader.ModCompile.Build(String modFolder, IBuildStatus status)
at Terraria.ModLoader.ModLoader.<>c.<BuildMod>b__44_0(Object _)

Inner Exception:
Could not load file or assembly 'System.Collections.Immutable, Version=1.1.37.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
at Terraria.ModLoader.RoslynWrapper.Compile(CompilerParameters args, String[] files)
 
I get an error when I try to build the Boss Checklist with the changes I added...

The game has crashed!

Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Terraria.ModLoader.ModCompile.RoslynCompile(CompilerParameters compileOptions, String[] files)
at Terraria.ModLoader.ModCompile.CompileMod(BuildingMod mod, List`1 refMods, Boolean forWindows, Byte[]& dll, Byte[]& pdb)
at Terraria.ModLoader.ModCompile.Build(BuildingMod mod, IBuildStatus status)
at Terraria.ModLoader.ModCompile.Build(String modFolder, IBuildStatus status)
at Terraria.ModLoader.ModLoader.<>c.<BuildMod>b__44_0(Object _)

Inner Exception:
Could not load file or assembly 'System.Collections.Immutable, Version=1.1.37.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
at Terraria.ModLoader.RoslynWrapper.Compile(CompilerParameters args, String[] files)
If you push your changes to your fork I can check it out and see if I see anything.
 
Why is Ragnarok not included? Did it not have its own downedX bool?
I wasn't sure, as I don't know the mod too well. I see downedPatchwerk which I think is a miniboss, downedRealityBreaker which I don't know about, and downedSkelly, which I also don't know. If one of those 2 is actually Ragnarok, I can add it, and minibosses I'll add once I plan some things out. If it's not, there might not be a bool yet.
 
I wasn't sure, as I don't know the mod too well. I see downedPatchwerk which I think is a miniboss, downedRealityBreaker which I don't know about, and downedSkelly, which I also don't know. If one of those 2 is actually Ragnarok, I can add it, and minibosses I'll add once I plan some things out. If it's not, there might not be a bool yet.
RealityBreaker may be the Expert exclusive form of Ragnarok, I assume.
 
Back
Top Bottom