tModLoader Boss Checklist - In-game progression checklist.

Discussion in 'Works-in-Progress' started by jopojelly, Oct 26, 2016.

  1. jopojelly

    jopojelly Retinazer

    Boss Checklist

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

    Open source on GitHub
    Discord: [​IMG]
    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.

    • Boss Available support
    • Hide Bosses from Checklist
      • Alt Click to hide
      • Useful for bosses you don't care about or are unable to summon
      • Syncs in MP
    • Mini-boss and Event support
    March 6, 2017
    • Tremor
    • SpiritMod
    • Updated to 0.9
    • Only Calamity and Thorium supported
    • Added CalamityMod support
    • Initial Release
    • Completed Filter
    • Vanilla Bosses, Bluemagic, ThoriumMod, and SacredTools supported
    Last edited: Apr 13, 2019
  2. jopojelly

    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:
    "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]
            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));
                    // 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:

    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):
    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: Dec 2, 2018
    Cinfoni, sOvr9000, LeGurdah and 7 others like this.
  3. neoselket

    neoselket Ice Queen

    YES. i need this like i need pizza. i want it, but i can't have it yet.
    WhatTheHec and UberCAKE like this.
  4. MadaxTheShadow

    MadaxTheShadow Official Terrarian



    Mairek, Cinfoni, ninjakai03 and 2 others like this.
  5. Fargowilta

    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: Oct 26, 2016
  6. jopojelly

    jopojelly Retinazer

    I just checked, they are programmed incorrectly. If you defeat one boss, it'll set the bool for the other bosses.
  7. jopojelly

    jopojelly Retinazer

    Ok, Initial Release time.

    • Initial Release
    • Completed Filter
    • Vanilla Bosses, Bluemagic, ThoriumMod, and SacredTools supported
    Filter in action:
    Fargowilta and Joost8910 like this.
  8. Danew Dr

    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!
  9. Joost8910

    Joost8910 Dungeon Spirit

    This looks awesome! I'll have to have to work on adding support with my mod next I can.
  10. jopojelly

    jopojelly Retinazer

    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.

    Great, I hope my instructions prove good enough for someone to figure out what I mean, but don't hesitate to ask.
  11. Gameraiders101

    Gameraiders101 Terrarian

    Hyped for this, once all mods get supported
    WhatTheHec, Mairek, Vefak and 2 others like this.
  12. jopojelly

    jopojelly Retinazer

    Updated for CalamityMod support --> 0.1.1
  13. Joost8910

    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=, 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)
  14. jopojelly

    jopojelly Retinazer

    If you push your changes to your fork I can check it out and see if I see anything.
    Joost8910 likes this.
  15. Joost8910

    Joost8910 Dungeon Spirit

  16. jopojelly

    jopojelly Retinazer

  17. PurpleNecromancer

    PurpleNecromancer Skeletron

    Why is Ragnarok not included? Did it not have its own downedX bool?
  18. jopojelly

    jopojelly Retinazer

    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.
  19. PurpleNecromancer

    PurpleNecromancer Skeletron

    RealityBreaker may be the Expert exclusive form of Ragnarok, I assume.
  20. jopojelly

    jopojelly Retinazer

    Joost8910 likes this.