tModLoader TGM1234's Mods

Hello, and welcome to my forum thread! This is for all of my mods.

Requirement for most of my mods (basically all of them right now, actually):
ShaderLib has a github!
Shader Library, or ShaderLib for short, is a modding library of sorts that gives modders a variety of tools
for manipulating Terraria's shader system, also known in-game as "dyes."

Currently, the library supports the addition of new ArmorShaderData, or "armor shaders" - the typical dyes.
There are also a variety of "hook" lists that allow modders to apply shaders to various objects.
At the moment, these objects include projectiles, NPCs, items (in inventory and in world), and held items (items in use).

Also, at a more technical standpoint, the mod/library breaks the game's 255 dye limit by being cool.

ShaderLib is required to use any mod that uses it, obviously.

Download on the Mod Browser.

Changelog:
- 1.0: Official release.
- 1.0.1: Fixes modded dyes not working on modded accessories (and a few vanilla ones), held item shaders now apply to items that are just being held (torches, Unicorn on a Stick), and fixes item flame shader hooks
- 1.0.2: Re-uploaded for 0.10.0.1 (needed no changes, surprisingly)
- 1.0.3: Fixed zoom issues (turns out it did need changes after all)
- 2.0: Vastly reworked internals, includes Vanilla Dye Fix & 1 other feature
- 2.0.1: Fixes bug with drawing in flipped gravity
- 2.0.2: Fixes a drawing derp that made things blurry
- 2.1.0: Some weird update doing some weird things
- 2.1.1: ???
- 2.1.2: Added WeaponOut support for held item shaders, affects Item Customizer

Ever wanted to dye your items? Well, now you can:
Item Customizer now has a github! Check it out!
This mod lets you dye your items and make really cool things, like this:
rainbowprism.gif

You can also rename items to your liking (this does not affect prefixes).
As you can see in the gif, when you dye items you dye both the held item and any projectiles that the item shoots.
If an item uses ammunition, the projectile dye will come from the ammo item instead.
As of Item Customizer 2.1, dusts fired by projectiles and melee weapon swings are also dyed (this is not shown by the gif, it's old).
Equipment can be dyed, too - when there aren't any dyes equipped in the same slot, it'll use the dye on the item!

thing.png

This is the GUI. Rename the item using the text box.
Place any item in the right slot, and a dye in the left (unless you don't want a shader) and click the "Apply" button. (Dyes are not consumed in the process)
Take the item(s) out and enjoy! Modded items with custom drawing or projectiles should be compatible too, provided they don't end/start the SpriteBatch (and none do that I know of).
Any mods that add custom dyes should also work provided that they add their shaders using ShaderLib.

Oh, yeah, and that Reset button - click it and it clears both any name change and dye from the item in the left slot. Pretty nifty, eh?

Items also have dyed icons, so you can see the dye from your inventory!
If you have WeaponOut, held weapons get dyed, too!

Craft the item to access the GUI with 5 iron/lead bars and 1 Strange Plant at an anvil. It's got the same texture as an anvil, because I'm lazy.

Download: Mod Browser

Changelog:
- 0.5: Inital distributed release. Pre-Mod Browser.
- 0.6: Fixed dyes being applied to things that shouldn't be (enemy projectiles, pets...)
- 0.7: Item icons (in inventory, world) show dye, consumables now dyeable, fix for minions, draggable GUI
- 0.8: Improved shader drawing, check for if player is actually using item
- 0.8.2: Fixed certain shaders looking strange on multi-frame projectiles, stopped older undyed projectiles from getting newer dyed projectiles' dyes
- 0.9: Complete multiplayer support, UI saves items instead of deleting them, autopause support, proper child projectile detection, no NPC projectile dyeing, can customize stackable weapons (Light Disc etc.)
- 0.9.1: After waiting for much too long, updated for Terraria 1.3.3.3.
- 0.9.2: After waiting for a much shorter period, updated for Terraria 1.3.4/tML 0.9.
- 0.9.3: Fixed crashes in tML 0.9.2.
- 1.0.0: First release to be fully integrated with the new ShaderLib, fixes multiplayer rapidfire bug, and stops items losing data on reforge
- 1.1.0: Updated for tML 0.10.0.1, featuring a revamped UI, both internally and externally
- 1.1.1: Items don't lose names or dyes on reforge... again
- 1.1.2: Shouldn't crash on starting multiplayer and solves the accidental shading issue at last (by throwing out all the annoying logic and using something better)
- 2.0: Now uses ShaderLib 2.0. Fixes UI crashes in multiplayer.
- 2.1.0: Now features equipment dyeing, undyed ammo projectiles, projectile and melee dust dyeing, and a few too many bugs
- 2.1.1-2.1.3: bug fixes lol
- 2.1.4: netcode fixes lol
- 2.2.1/2.2.2

Credits:
-Myself, for making this mod (I mean, I did put a bunch of work into this, right??)
-The TerraUI team (@Boffin , @abluescarab) for making the TerraUI Toolkit which I used to make the GUI in this mod (well, ok, not anymore, but it was helpful in the early days!)
-The tModLoader team for making tModLoader, of course

Known Bugs:
-- Sometimes I've seen a Meowmere fail to fire dyed projectiles. Re-dyeing caused it to fire correctly again. Cause unknown.
-- There can be weird things when stacking consumables with differing names and/or dyes. This cannot be solved in a way that I am aware, so it's staying for now.
-- Projectiles which are both friendly and hostile (such as bee hives) may get accidentally dyed if created while using a dyed item.

Some extra dyes to play with:
These two mods are the first of their kind: they add new dyes to the game!

Hair Dye for Armor allows you to equip hair dyes with exclusive effects as regular dyes while
Secret Dyes adds in dyes from unused shaders in the game's resources (some look really cool!).

Download both from the Mod Browser.

Changelog (Hair Dye for Armor):
- 1.0: First release
- 1.0.1: Fixes dyes broken by changes in ShaderLib during development
- 1.0.2: Updated for 0.10.0.1
- 2.0: Updated for ShaderLib 2.0. Now allows equipping related hair dye instead of using new items. Old items will become unloaded items, sorry.

Changelog (Secret Dyes):
- 1.0: First release
- 1.0.1: Updated for 0.10.0.1
- 2.0: Updated for ShaderLib 2.0. Dev dye doesn't shift when changing player direction anymore.
- 2.0.1: Rebuilt for ShaderLib 2.1. Really I don't know why it needed this.

Making Pet Dyes Great Again:
This mod is now a part of Shader Library. DO NOT use this anymore, it will crash!
A very simple fix which uses the same formula that I developed for the Item Customizer mod for better shader rendering.
What's the fix for? Well, if you've ever tried putting certain dyes on a pet, light pet, or hook, you might have noticed it looks absolutely horrid:
old.png
Here's what Vortex Dye on a Zephyr Fish looks like now:
new.png
Much better, right? This mod affects all pets, light pets, and hooks, as well as the Stardust Guardian.

Changelog:
- 1.0: First and likely final release. haha nope
- 1.0.0.1: A patch which fixes potential accidental shading of unshaded projectiles which were created before the pet/light pet/hook.
- 1.0.1: Mod now uses ShaderLib instead.
- 1.0.2: Updated for 0.10.0.1. Actually, it didn't need to update at all, but I had to rebuild to stop tML from believing it was outdated. And increase the version number, of course.

Download: Mod Browser
Credits:
- Same as for Item Customizer. This is basically just a segment of code from over there anyway (well, now that bit of code is in ShaderLib and this does barely anything, but yeah)

Make things stay as they were when you left:
World Persistence is a simple mod which makes you, dropped items, NPCs, and projectiles persist when you re-enter a world.
Just in case anyone starts wondering: this was before Overhaul was a thing. I didn't make this to port/enhance an Overhaul feature.

You won't appear back at spawn when you come back - and non-town NPCs, bosses, minions, dropped items, and debuffs stay where they are, too.

Use the config to toggle the following persistence options:
- Player position, velocity, fall height data, mounts and minecarts, rope climbing, and wing time
- Player debuffs, health, mana, and breath time
- (Disabled by default) Grappling hooks
- Dropped items
- (Disabled by default) Non-town NPCs and projectiles, highly experimental, use at own risk (should work okay for most vanilla NPCs, no guarantees for modded ones, does not save modded data like dyes or prefixes)

Changelog:
- 1.0: Initial release.
- 1.0: The actual initial release, that isn't a completely unusable heap of disaster.
- 1.0.1: bugfix
- 1.1.0: update post
 
Last edited:
Holy crap... out of what I tried, I can confirm it works perfectly.

Once I figured out I had to disable auto-pause (this is very important), it was all-systems-go. Modded weapons and spells with the appearance of unique dyes is something I've wanted for a long, long time. And yes, they tend to look as great as you'd imagine, if not better. Re-naming the items works perfectly as well from what I tried (another thing long-overdue). No problems going from one world to the next, all items stayed intact. The only thing I didn't test with yet was multiplayer. The UI works and looks great, although using the anvil itself is a bit odd. I wish you could put the anvil on the ground instead of using it directly from your inventory (unless I'm missing something), and it would be great to have a unique sprite for it. Considering everything though, it's very easy to overlook these gripes.

Re-Logic would really benefit from incorporating your work, and it sounds like you're only just getting warmed up. As much as I love all the massive mods that add hundreds of items, NPC's, biomes etc, it's the little (yet INCREDIBLY useful) mods like this that I truly can't live without.

Thank you.
 
@Lunatic Lobbyist Thanks for the support! If you do test multiplayer, please let me know. Especially test projectiles, since that's what I'm most worried about.

Yeah, I was considering using a tile for the UI - the Dye Vat itself was one consideration - but I don't quite know how to do that yet (since tile UIs tend to go away when you're far away from them). In the future, this could work. (Also, allowing movement of the UI window wouldn't be bad either)

Future mod plans are:
- Mod that adds regular versions of currently hair-only dyes (actually, this is already done, but on my OSX partition)
- Reviving and fixing up my Dye Utilities mod, which allows dyeing of your skin, default clothes, and hair while wearing a hat
-- This would also include a new UI instead of the ancient cycler items, and work similarly to the item customizer's UI
-- Either that, or I might even be able to add an entire equipment section just for that. Maybe. Not sure if it's possible.

(PS: Don't use Hades dye. It's a vanilla issue, but it tends to look terrible on non-player sprites. To see what I mean, just slap one on a turtle pet.)
 
Last edited:
Double post! Sorry. I'm sure it's OK for update posts though.

Heads up: tomorrow I'm coming out with a new update for Item Customizer, which will seamlessly add some new features and fix a bug:
- Items will show their shader both in inventory and in world (some don't look nice, but blame vanilla)
- GUI window will be draggable
- Consumables will be dyeable (this includes potions, throwables, etc.. Expect weirdness when stacking items with different names/dyes.)
- Minions should now correctly be shaded (they were broken accidentally when I fixed enemy projectiles getting shaded)
 
Double post! Sorry. I'm sure it's OK for update posts though.

Heads up: tomorrow I'm coming out with a new update for Item Customizer, which will seamlessly add some new features and fix a bug:
- Items will show their shader both in inventory and in world (some don't look nice, but blame vanilla)
- GUI window will be draggable
- Consumables will be dyeable (this includes potions, throwables, etc.. Expect weirdness when stacking items with different names/dyes.)
- Minions should now correctly be shaded (they were broken accidentally when I fixed enemy projectiles getting shaded)
Just make it so items with different dyes and names are not stackable with those without
 
Oh my god! Finally blue Vampire knives or a awesome flaming Terra Blade :D Thank you soooo much
 
Just make it so items with different dyes and names are not stackable with those without
I would, but Terraria wasn't built in a way that makes this kind of thing easy. I could set the MaxStack of the items to 1, but then if you ever separated the items you wouldn't be able to re-stack them. Also, throwing weapon projectiles often have a chance to drop themselves when they die, and I can't dye those, but at least they stack into a pre-made dyed stack well enough.

If you guys would prefer that stackables stay undyeable, I can remove this.

In other news, the update is, uh, up! You can get 0.7 right from your mod browser.
 
How about an alternative for at least the dyeing part.
Add an additional slot at the end of the hotbar that accepts dyes and any item you have selected will apply that dye.
Another alternative way to above is to have dye for each hotbar slots
 
How about an alternative for at least the dyeing part.
Add an additional slot at the end of the hotbar that accepts dyes and any item you have selected will apply that dye.
Another alternative way to above is to have dye for each hotbar slots
Sorry, but I'd rather not. Why? Well, if I had one dye for the whole hotbar, I would complain about wanting to have multiple different dyes at once. If I then made 10 slots to satisfy this need, I would complain about how annoying it would be to have to swap out dyes in the slots every time I changed weapons just to get the correct one on. Also, where would the slots even go? Trust me, it's much more usable this way.

Granted, your idea is basically what vanilla does for equipment slots - and being equipment, it makes sense. But these are items. Items that move around a lot.
(also, it's probably really cool to open a chest to see a whole treasure hoard of shader items)

...it would also de-mote the GUI to just a renaming interface, and I don't want that :p
 
HELP!!! both the forum download and browser downloads are not working for me
"page cannot be reached"
"Unknown Mod Browser Error"
EDIT: works Now

BUG ALERT:
20160901171615_1.jpg

some projectiles get coloured when using dyed item
 
Last edited:
HELP!!! both the forum download and browser downloads are not working for me
"page cannot be reached"
"Unknown Mod Browser Error"
EDIT: works Now

BUG ALERT:View attachment 137255
all projectiles get coloured when using dyed item
Oh great, did I break that again? >_<

I've been trying for a while to find a good combination that can actually differentiate between a player's projectiles and an NPC's projectiles, but some things just can't be done.

The Guide's projectiles are being dyed because the projectiles are owned by Main.myPlayer (you) and they are also friendly (in fact, the same projectiles as a bow firing wooden arrows would). This makes it extremely difficult to actually tell if something other than the player fired the projectile, because, in all technicalities, it might as well have been.

I can confirm that most, if not all enemy projectiles should be excluded from dyes, however. I hope.
 
Last edited:
Oh great, did I break that again? >_<

I've been trying for a while to find a good combination that can actually differentiate between a player's projectiles and an NPC's projectiles, but some things just can't be done.

The Guide's projectiles are being dyed because the projectiles are owned by Main.myPlayer (you) and they are also friendly (in fact, the same projectiles as a bow firing wooden arrows would). This makes it extremely difficult to actually tell if something other than the player fired the projectile, because, in all technicalities, it might as well have been.

I can confirm that most, if not all enemy projectiles should be excluded from dyes, however. I hope.
ok, plus I just assumed it was all of the projectiles I have ok knowledge of coding so it makes sense when you think about it but the even weirder thing is you don't have to be using the item.
 
ok, plus I just assumed it was all of the projectiles I have ok knowledge of coding so it makes sense when you think about it but the even weirder thing is you don't have to be using the item.
Yeah, that is true - I should probably add in a check for that and see how it goes. Right now it doesn't care whether or not you're actually using the item, just that you have it selected.
 
Preview of new update:
before - after
old.png
new.png


Yep, I figured out why some special shaders looked absolutely terrible and fixed it for you guys!
Now you can have that awesome Vortex Dragon you always wanted. Or a Vortex Cyan-Green Looking Death Beam.
Or a True Solar Eruption (put solar dye on it).

Oh, it also adds in a check for whether the player is actually using the held item for projectile shading. If this causes problems, I can remove it.
(Basically, town NPC projectiles shouldn't get shaded now unless you're actually using the item at the same time the NPC fired the projectile)

Changelog:
v0.8
- Made shaders work better in general, mostly for special shaders (solar, vortex, hades, etc.)
- Projectiles now check whether the player is actually using the weapon before allowing themselves to be dyed.
 
Preview of new update:
before - after
View attachment 137310 View attachment 137309

Yep, I figured out why some special shaders looked absolutely terrible and fixed it for you guys!
Now you can have that awesome Vortex Dragon you always wanted. Or a Vortex Cyan-Green Looking Death Beam.
Or a True Solar Eruption (put solar dye on it).

Oh, it also adds in a check for whether the player is actually using the held item for projectile shading. If this causes problems, I can remove it.
(Basically, town NPC projectiles shouldn't get shaded now unless you're actually using the item at the same time the NPC fired the projectile)

Changelog:
v0.8
- Made shaders work better in general, mostly for special shaders (solar, vortex, hades, etc.)
- Projectiles now check whether the player is actually using the weapon before allowing themselves to be dyed.
If you are having trouble with dyeing projectiles that spawn projectiles have you just tying the dye the damage value that is passed on to the new projectile with the shader?
 
If you are having trouble with dyeing projectiles that spawn projectiles have you just tying the dye the damage value that is passed on to the new projectile with the shader?
What are you even saying o_O
It seems you are incapable of providing sufficient grammar. Please contact me via the tModLoader Discord instead.
 
Back
Top Bottom