Caves of Qud

Caves of Qud

Better Ability Bar
Tyrant 9 Mar, 2019 @ 9:06pm
Issues/Bugs
Here's a problem I'm having.

For some reason Steam never gave me a notification that you replied. I tried it out today and it doesn't seem to be working, all my mods are approved. Hover Info, the other Harmony Injector mod out right now, is working though.

I tried uninstalling Harmony Injector and Hover Info and going back to HarmonyShim, but that did not fix the issue. It's not working on either of the frameworks.

Not sure if this is useful but I found it in modcheck-Better Ability Bar.json

{"Files":["G:\\Steam\\steamapps\\workshop\\content\\333640\\1497718805\\preview.png","G:\\Steam\\steamapps\\workshop\\content\\333640\\1497718805\\ScriptMod.cs","G:\\Steam\\steamapps\\workshop\\content\\333640\\1497718805\\workshop.json"],"Sizes":[410108,13144,1095],"Hash":"0d-5d-11-07-58-dc-44-95-d2-2d-19-e0-ad-51-a2-93"}
< >
Showing 1-11 of 11 comments
HawkleyFox  [developer] 10 Mar, 2019 @ 3:42am 
I'll need to see you debug log to be able to help you diagnose the issue. You can find it by opening Windows Explorer and typing "%APPDATA%\..\LocalLow\Freehold Games\CavesOfQud\" into the address bar. Look for the file called "output_log.txt". This is where Caves of Qud outputs error information about, well, everything, including mods.

Throw that file up on PasteBin or some other text-sharing website so I can have a look-see.
HawkleyFox  [developer] 15 Mar, 2019 @ 10:10am 
Did you find any progress on this?
Tyrant 16 Mar, 2019 @ 6:20am 
I was waiting for the March 15th patch to see if it'd fix anything, it did not. Here's the log.

https://pastebin.com/9fhT8UtV

There's an error on line 460.
Tyrant 16 Mar, 2019 @ 10:44am 
Was that the information you needed?
HawkleyFox  [developer] 17 Mar, 2019 @ 12:30am 
Yes, this is it. Thank you.

Quite the cryptic error. The error is definitely occuring as a result of Better Ability Bar initializing, but the error is being raised deep in the inner workings of Harmony itself. Correlation is unfortunately not causation; it is in programming as it is in statistics.

In other words, the error may be triggered by Better Ability Bar initializing, but the actual source of the error could be the result of another part of the program having behaved badly earlier, and the bad program state only becomes apparent when Better Ability Bar performs its patches.

Seems like something is trying to access something on an assembly called "CompiledMods", but either the DLL doesn't exist or it is not linking with its dependencies correctly. Doing a bit of research, it seems Harmony Injector itself is responsible for creating this file.

...in Harmony Injector's workshop folder... Well, that explains why every time I start CoQ, I have to keep re-enabling Harmony Injector. This file changing in its workshop folder all the time interferes with CoQ's "mod check" system. He should be generating this file in AppData or something instead. Maybe I'll bug him about it.

Anyways, looks like you have a pretty light mod list. The only other mod that could be causing issues with the mod assembly is "Hover Info"; it's the only other script mod that you seem to be using.

Hmm... Also another mod that relies on Harmony.

Hmm... Also, it breaks my game in the same way when I install this mod, too.

Hmm... Does it break my game when Better Ability Bar isn't installed?

Noo... However, the Hover Info mod doesn't appear to do the thing it advertises, no matter how I configure the game's options.

Well, your issue may be with the Hover Info mod. There's a number of possibilities that may be at play here:

  1. The Hover Info mod is broken (which appears to be my experience) and it's taking Better Ability Bar out along with it.
  2. The Hover Info mod has a compatibility issue with Better Ability Bar. Looking at its source code, that doesn't seem likely, though.
  3. Harmony Injector's compatibility layer for HarmonyShim causes issues with patches that are applied via attributes, which also doesn't seem likely, since Hover Info still doesn't work even when Better Ability Bar isn't installed.

I suggest uninstalling Hover Info and bringing this problem up with its creator.
Tyrant 17 Mar, 2019 @ 4:06pm 
But Hover Info works, and Better Ability Bar doesn't work even when I uninstall it.
HawkleyFox  [developer] 18 Mar, 2019 @ 2:24pm 
I'm not sure what to tell you at this point. That's not what my experience was with Hover Info. I was able to reproduce the error you got, but it doesn't seem obvious that its a bug in my code, and Hover Info was not displaying its hover-info even when it was running without Better Ability Bar. It wasn't crashing or raising an error, but it wasn't working either.

Better Ability Bar is using Harmony Injector's API correctly and I can't see any obvious compatibility issues with Hover Info.

I'm leaning toward this being an issue with Harmony Injector itself. You may want to bring this up on Harmony Injector to see if its developer can reproduce the issue and shed some light on the problem.
HawkleyFox  [developer] 19 Mar, 2019 @ 8:36pm 
I went ahead and opened a discussion about this on Harmony Injector. I'm curious to find out what the issue is. Feel free to participate if you like~
namkazt 24 May, 2019 @ 12:25am 
edit like this:

static Init() { Debug.Log("[HawkSoft.BetterAbilityBar] Starting initialization."); // Patch to sense when events related to activated abilities are fired. var eventCatcherPrefix = typeof(Patch_GameObject_EventCatcher).GetMethod("Prefix"); var eventCatcherPostfix = typeof(Patch_GameObject_EventCatcher).GetMethod("Postfix"); var typeOfGameObject = typeof(XRL.World.GameObject); var arityOfEventMethods = new Type[] { typeof(XRL.World.Event) }; Patch(typeOfGameObject.GetMethod("FireEvent", arityOfEventMethods), eventCatcherPrefix, eventCatcherPostfix); Patch(typeOfGameObject.GetMethod("FireEventDirect", arityOfEventMethods), eventCatcherPrefix, eventCatcherPostfix); Patch(typeOfGameObject.GetMethod("BroadcastEvent", arityOfEventMethods), eventCatcherPrefix, eventCatcherPostfix); // Patch that renders the ability text bar with some actually useful ordering. Patch(typeof(Sidebar).GetMethod("Render"), typeof(Patch_Sidebar_Render).GetMethod("Prefix"), typeof(Patch_Sidebar_Render).GetMethod("Postfix")); }
Last edited by namkazt; 24 May, 2019 @ 12:25am
Fol 30 Nov, 2021 @ 11:43am 
=== Better Ability Bar Errors ===
<...>\steamapps\workshop\content\333640\1497718805\Patch.Sidebar.Render.cs(37,27): error CS0117: 'MessageQueue' does not contain a definition for 'bShowUnityTopInfo'
== Warnings ==
None
HawkleyFox  [developer] 1 Dec, 2021 @ 4:06am 
From what I've heard, the latest version removed the classic overlay entirely? Which means this mod is completely defunct, as it only adjusted abilities in the classic overlay.

I would suggest pestering the devs of Caves of Qud to add similar ability sorting to the modern overlay. It's such an easy change and the benefits to player experience are significant. This mod shouldn't even need to exist. :P
Last edited by HawkleyFox; 1 Dec, 2021 @ 4:07am
< >
Showing 1-11 of 11 comments
Per page: 1530 50