tModLoader abluescarab's Mods

Cheat Hotkeys is braking the Keybindings.
When I try to set any of the hotkeys the game locks-up and I have to Alt-F4 out of Terraria. ):
 
I am trying to use the source code for Insight Reborn Mod, with tModLoader and I get this:View attachment 153566
Is there an easy way around this at all?
That looks like a problem with tModLoader rather than the mod. You can check out the source code here.
Cheat Hotkeys is braking the Keybindings.
When I try to set any of the hotkeys the game locks-up and I have to Alt-F4 out of Terraria. ):
I'll check that out ASAP, but I'm celebrating New Year's at the moment!
 
Cheat Hotkeys is braking the Keybindings.
When I try to set any of the hotkeys the game locks-up and I have to Alt-F4 out of Terraria. ):
I can't duplicate this issue, and from your previous post it looks like you might have a faulty tModLoader install. Try downloading and reinstalling the latest version of tModLoader, then let me know what happens.

If that doesn't work, can you describe what you are doing (whether you are riding a mount, what you have selected in your hotbar, whether you're doing anything special) when you try to change the mod hotkeys?

Edit: By popular request, I've moved the wing slots from the second equipment page to the first. They can now be found under the standard accessory slots.
 
Last edited:
I can't duplicate this issue, and from your previous post it looks like you might have a faulty tModLoader install. Try downloading and reinstalling the latest version of tModLoader, then let me know what happens.

If that doesn't work, can you describe what you are doing (whether you are riding a mount, what you have selected in your hotbar, whether you're doing anything special) when you try to change the mod hotkeys?

Edit: By popular request, I've moved the wing slots from the second equipment page to the first. They can now be found under the standard accessory slots.

but what if i have more accessories mods?

wont they just be put under the winglslot ?

I think so

actually what happens is that theres no 7th accessory slot with the wing slot there, just tried it, puts me in a position to choose between them
 
but what if i have more accessories mods?
wont they just be put under the winglslot ?
I think so
actually what happens is that theres no 7th accessory slot with the wing slot there, just tried it, puts me in a position to choose between them
Could you move the wing slot back to its old position / a little bit more to the left. It seems to be interfering with existing slots now.
Yeah, in expert hardmode the wingslot overlaps with the 6th accessory slot.
I released a hotfix moving the slots back until I can figure out an alternative. I keep getting reports about unresponsiveness, so I thought maybe moving the slots would help with that; seems it instead caused more problems.
 
I released a hotfix moving the slots back until I can figure out an alternative. I keep getting reports about unresponsiveness, so I thought maybe moving the slots would help with that; seems it instead caused more problems.

I think this would conflict with the More Accessories+ mod anyhow. I honestly have no idea how you added just this slot to begin with, and for that I give you a round of applause, but we discovered while tinkering around with accessory slots that the maximum "real" slots the game is able to support, period, is 7. Adding any more than that causes an array out of bounds error that causes the player character to stop updating entirely in the game world.
 
I can equip wings in wing slot but, if i click CTRL + other wings it just switches to my armour and accessorie "inventory" and also Shift + item does auto-trash
You need to shift-right-click the wings, not shift-left-click. There's no way to override that behavior, so I had to come up with something.
I think this would conflict with the More Accessories+ mod anyhow. I honestly have no idea how you added just this slot to begin with, and for that I give you a round of applause, but we discovered while tinkering around with accessory slots that the maximum "real" slots the game is able to support, period, is 7. Adding any more than that causes an array out of bounds error that causes the player character to stop updating entirely in the game world.
I've been using Cheat Sheet's accessory features to determine where the wing slot should go. Now that I know More Accessories+ is back, I'll have to make sure my mod is compatible.

The wing slots are drawn using a UI toolkit that @Boffin and I work on together. The slots have to be drawn and handled manually.
 
You need to shift-right-click the wings, not shift-left-click. There's no way to override that behavior, so I had to come up with something.

I've been using Cheat Sheet's accessory features to determine where the wing slot should go. Now that I know More Accessories+ is back, I'll have to make sure my mod is compatible.

The wing slots are drawn using a UI toolkit that @Boffin and I work on together. The slots have to be drawn and handled manually.

So does your code apply and update the accessories manually?

The More Accessories+ mod simply modifies the player.extraAccessorySlots variable to be equal to 2. It works with 2 extra slots (suggesting that the devs actually intended to add a 7th slot) but it crashes if you try to add more than that. The benefit of this is that the game automatically handles everything else fortunately.

EDIT: Just noticed that I could check out the source code of the mod using TMR. This is completely unrelated to anything but how on earth are you not getting a compile error from this line of code in WingSlotPlayer.cs:

wingsDye = new PlayerLayer(UIUtils.Mod.Name, WING_DYE_LAYER, delegate (PlayerDrawInfo drawInfo) {

You're missing an extra parentheses at the end.

Maybe C# is a little more forgiving with errors like this but it should at least be causing a runtime error. Very strange.

Anyway, I see largely now how it works. Pretty impressive work. I assume in theory that this same type of code could be used to add lots of different accessory slots.
 
Last edited:
Just noticed that I could check out the source code of the mod using TMR. This is completely unrelated to anything but how on earth are you not getting a compile error from this line of code in WingSlotPlayer.cs:

wingsDye = new PlayerLayer(UIUtils.Mod.Name, WING_DYE_LAYER, delegate (PlayerDrawInfo drawInfo) {

You're missing an extra parentheses at the end.
That's actually a delegate, a function declared in-place. So you'll see at the end of the code that's there actually a parenthesis:
Code:
wingsDye = new PlayerLayer(UIUtils.Mod.Name, WING_DYE_LAYER, delegate (PlayerDrawInfo drawInfo) {
    ...
});
Anyway, I see largely now how it works. Pretty impressive work. I assume in theory that this same type of code could be used to add lots of different accessory slots.
Thanks! And yes, that's why I release the source code. It's complicated, but I hope that if anyone wonders how to do something similar, they can just look at my source code. :) You could also just check out the source code link in my original post:
0cOc8Bc.jpg
 
That's actually a delegate, a function declared in-place. So you'll see at the end of the code that's there actually a parenthesis:
Code:
wingsDye = new PlayerLayer(UIUtils.Mod.Name, WING_DYE_LAYER, delegate (PlayerDrawInfo drawInfo) {
    ...
});

Thanks! And yes, that's why I release the source code. It's complicated, but I hope that if anyone wonders how to do something similar, they can just look at my source code. :) You could also just check out the source code link in my original post:
0cOc8Bc.jpg

Ah, I thought that might have been the case.

For the sake of readability, I usually declare functions like that first and then just pass a reference to the function as an argument. Not saying you've gotta do it that way of course, but it does make it a bit messy. :p

I totally missed the source code link.. haha!
 
For the sake of readability, I usually declare functions like that first and then just pass a reference to the function as an argument. Not saying you've gotta do it that way of course, but it does make it a bit messy. :p
I usually do pass in functions, but I sort of wrote that code to test it out and when it worked, I forgot to fix it. I try to stay consistent, but I make mistakes. :p Earlier, I declare the UIItemSlots and pass in functions instead of assigning delegates like I used to.
 
Back
Top Bottom