• For issues you find with the Switch and Console releases, please follow this link and give as much detail as possible. This is the speediest way to get info to Pipeworks and get a hotfix in the works.
  • For issues you find with the Mobile 1.3 update, please follow this link and give as much detail as possible. This is the speediest way to get info to DR Studios to look at your issue. Also, some troubleshooting hints here.

tModLoader Boss Checklist - In-game progression checklist.

jopojelly

Retinazer

Boss Checklist

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

Open source 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
0.2
  • Boss Available support
0.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
0.1.4
  • Mini-boss and Event support
March 6, 2017
  • Tremor
  • SpiritMod
v0.1.1.3
  • Updated to 0.9
  • Only Calamity and Thorium supported
v0.1.1
  • Added CalamityMod support
v0.1
  • Initial Release
  • Completed Filter
  • Vanilla Bosses, Bluemagic, ThoriumMod, and SacredTools supported
 
Last edited:

jopojelly

Retinazer
How to add support for your mod
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: http://terraria.gamepedia.com/Chat#Tags

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:

Fargowilta

The Destroyer
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:

Danew Dr

Plantera
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!
 

jopojelly

Retinazer
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.
 

Joost8910

Dungeon Spirit
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)
 

jopojelly

Retinazer
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.
 

jopojelly

Retinazer
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.
 
Top Bottom