tModLoader Reduced Grinding

none of that seems too critical to be honest. you could release a separate mod that has just new features like items and NPCs, but anything more is excessive in my opinion.
Well now I feel silly now, but after testing it out, and found the problem and just fixed entire configuration issue, so the poll isn't even needed anymore.

It took me over a couple weeks to fix all the configuration problems, and by the time I was done I was very stressed out and mentally exhausted, so I guess that's why I couldn't figure it out before. But I discovered the problem was the enemy loot dropping function and the grab bag functions where looking for a player that wasn't there.
 
This isn't an April Fools, but I while debugging my mod, I temporarily disabled the entire fishing catch changing code except for FishCatchBecomesGoldenCarp, and I made it so FishCatchBecomesGoldenCarp doesn't rely on anything like fishing power, so it's extremely easy to get (setting it to 1.0 means you'll always catch it). I forgot to undo these changes in the last build though, and I'm currently working on other part so my mod which already has new coding added to it, so I can't upload another version with a fix to this bug until I have the other part finished. Sorry for the inconvenience.
 
This isn't an April Fools, but I while debugging my mod, I temporarily disabled the entire fishing catch changing code except for FishCatchBecomesGoldenCarp, and I made it so FishCatchBecomesGoldenCarp doesn't rely on anything like fishing power, so it's extremely easy to get (setting it to 1.0 means you'll always catch it). I forgot to undo these changes in the last build though, and I'm currently working on other part so my mod which already has new coding added to it, so I can't upload another version with a fix to this bug until I have the other part finished. Sorry for the inconvenience.
Okay I removed the bug from my previous post in this update:

Bugfixes:
⦁ The Stationary Merchant now works in multiplayer the way he was supposed to.
⦁ Bloodmoon wasn't working in multiplayer, th is has been fixed.
⦁ Projectiles dropping loot.
⦁ Leftover coding from testing made it so you catch Golden Carp all the time, this has been fixed.
⦁ For debugging purposes, the fishing part of my mod was disabled except for Golden Carp, which was set to not rely on anything like fishing power. I fixed this.

Workaround: Boosted Traveling Merchant item rates (which is disabled by default) only causes errors in multiplayer, so it was disabled for multiplayer.

Changes:
⦁ Made world's record of biome chest mined more accurate.
⦁ Message now goes off when the Stationary Merchant gains new items.
⦁ New Santa Claus npc who sells everything the vanilla Santa sells. Appears under the same conditions as the vanilla santa, only he doesn't leave after christmas.
⦁ New Bone Merchant npc who sells everything the Skeleton merchant sells (depending on moon phase). Appears when using a new Skull Call item. The Skull Call is sold by the Skeleton Merchant. Note: Luiafk already has a Skeleton merchant, but that NPC is obtained differently. I decided to crate a configuration for disabling this when Luiafk is installed, set to false by default.

Traveling Merchant overhauled:
By default, Traveling Merchant no longer restocks his items by chance when an enemy is killed. He will also spawn more often and reset his shop more often depending on how many stationary Reduced Grinding and vanilla NPCs you have. In the start of the game the Traveling Merchant works normally, but in the end of the game he will appear more often and spam a shop reset unless the Stationary Merchant has all Traveling Merchant items that meet the required conditions to appear in the Traveling Merchant shop.
 
Last edited:
on the traveling merchant, what about modded items?
frequent shop resets are nice for those, but when that stops as the stationary merchant is full, things would get harder to find again.
is there a way to either automatically give the stationary merchant any appropriate modded items or remove items the stationary merchant is carrying from the possible pool of the traveling merchants inventory to make him more likely to carry modded stuff?
 
REDUCEDView attachment 202514GRINDING
Version 4.51
for tModLoader 0.10.1.5

ABOUT THIS MOD
This mod isn't supposed to make the game too easy, but makes it so you don't have to spend huge amounts of time farming for loot, for example: AFK farms to get rare item like Biome Keys.

Everything is configurable, so you can adjust to your liking. After selecting the mod, reload mods to generate the configuration file. The file is located at Documents\My Games\Terraria\ModLoader\Mod Configs and can be edited with programs like notepad or notepad++.

Configuration%20File%20Location_1.png


HOW IT WORKS
  • Craftables (Talk to the guide npc for crafting recipes, (recipes are configurable), or use a recipe mod like Recipe Browser)).
  • Shops:
    • New View attachment 217385 Stationary Merchant. He's a permanent Town NPC and has a chance to gain items that the Traveling Merchant has when the Traveling Merchant shop resets (chance starts low when the game starts and rises to 100% at Hardmode).
    • By default, Traveling Merchant no longer restocks his items by chance when an enemy is killed. He will also spawn more often and reset his shop more often depending on how many stationary Reduced Grinding and vanilla NPCs you have. In the start of the game the Traveling Merchant works normally, but in the end of the game he will appear more often and spam a shop reset unless the Stationary Merchant has all Traveling Merchant items that meet the required conditions to appear in the Traveling Merchant shop.
    • New View attachment 218998Bone Merchant. The Skeleton Merchant now sells a View attachment 218999Skull Call which will summon him. Afterward, he will live in any occupied building and sell everything that the Skeleton Merchant sells.
    • New View attachment 219000Santa Claus. He arrives after the Frost Legion is defeated and will stay after the Christmas event.
  • Other
NOTES
  • If Merchant is set to sell Pyramid items may not sell Sandstorm in a Bottle, depending on other configurations.
  • Dryad sells both Corruption and Crimson Seeds and both Vile and Vicious Powder during Blood Moon. Steam Punker now sells both Red and Purple Solution during a Blood Moon and Eclipse.
  • Fish catch chance increases change what your caught fish will be. You still have to fish in the correct locations. The chance to change the catch will then be multiplied by the minimum of your fishing power divided by 257 (1 if it's over 257). Crate upgrade chances are based from fishing power from 51 to 282. When trying to change the catch into a fish, It will randomly select chances to change a fish, and it will do this a number of times equal to how many different fish changing configurations there are, but will stop if it changes a catch.
  • Made it possible to set a chance of resetting Traveling Merchant's items when killing enemies which gets divided by 22 minus the amount of Vanilla Town NPCs (only permanent residents and excluding the Guide and Santa Claus).
  • Keep in mind, that the drop rate increases in configuration file are additional to the drops you get in vanilla (for example: if an items vanilla rate = 1% and mod rate = 9%, then the rate is 10%).
  • Water Walking Boots and Flipper rate for Iron Crates is halved and for Wooden it's 1/4.
COPY OF CONFIG FILE WITH EVERYTHING SHUT OFF

Here's a the copy of the configuration file, only with everything shut off, for those who want to only turn on a few things (I'll try to remember to keep this updated, but if it's out of date, please let me know): Rename to "Reduced Grinding v4.47.json".

LINKS AND OTHER INFO
Download to all releases: https://github.com/dragon3025/Reduced-Grinding/releases
tModLoader: https://forums.terraria.org/index.php?threads/1-3-tmodloader-a-modding-api.23726/
Github Page: https://github.com/dragon3025/Reduced-Grinding

My mod is open-source and can be downloaded with tModReader and GitHub. Any forks on Github to improve on my project is appreciated.

Feel free to request something for this mod (as long as it sticks to the theme "Reduced Grinding").

  • adaxe for reporting a bug now fixed in 3.5 and 3.6.
  • Cheezegami for Fenzy Potion sprite, help with getting drinking sound for Frenzy Potion, and reporting bug now fixed in 3.10.
  • CrimsHallowHero for Rain Potion coding.
  • DarkLight for the name "War Potion".
  • direwolf320 for help on Discord.
  • direwolf420 for help on Discord.
  • Feaw for Chest Salesman names and qoutes.
  • GabeHasWon for help on Discord.
  • Gaz777 for reporting bugs now fixed in 3.4.
  • Itorius for help on Discord.
  • JopoJelly for help on Discord.
  • Jopojelly and Kazzymodus for coding posted here: http://forums.terraria.org/index.php?threads/any-monster-spawn-rate-and-spawn-cap-mod.48567/.
  • Josh for help on Discord.
  • Lavendar Josh for the Chest Seller Sprite
  • Luiafk for help on Discord.
  • Matakor for reporting bug now fixed in 3.19
  • MEOWmagic123 for help on Discord.
  • newts for reporting bug now fixed in 3.11
  • sea_4 for reporting bug now fixed in 4:26
  • sm644me for idea of a secondary Battle Potion item instead of increasing effects of Battle Potion.
  • ILSpyMaster program
This one is my own:
You should increase the drop chance for souls of light and night
 
on the traveling merchant, what about modded items?
frequent shop resets are nice for those, but when that stops as the stationary merchant is full, things would get harder to find again.
is there a way to either automatically give the stationary merchant any appropriate modded items or remove items the stationary merchant is carrying from the possible pool of the traveling merchants inventory to make him more likely to carry modded stuff?
I hadn't thought of that. I updated again and added a new "Traveling Merchant Restock Order" item. It's sold cheap by the Stationary Merchant when he has no more to gain from the Traveling Merchant (excluding items that don't meet the requirements to being in the Traveling Merchant's shop). Having it in your inventory will cause the Traveling Merchant to keep re-stocking.
You should increase the drop chance for souls of light and night
There's configurations for that. Search for "LootSoulofLightIncrease" in the configuration file.

EDIT: You can also use Chaos or War Potion to help get souls.
 
Last edited:
New update:
Changes:
  • To prevent exploiting, the Traveling Merchant despawns when using Granite Moondail.
  • Added 2 configurations (set to true by default). One allows obtaining furniture from Reduced Grinding lockboxes and the other allows obtaining non-furniture from Reduced Grinding lockboxes.
  • Gold Critters are now craftable (recipe is 1 non-gold version of the critter and 12 gold coins).
  • A configuration (set to false by default) to allow NPC's now sell their death loot.
 
thats pretty nice actually.
I noticed two small issues though, the party girl doesnt sell happy grenades and the green cap is free.
Oops, I read on the wiki that she sells Happy Grenades, but I didn't read that you have to have them in your inventory, I'll fix this.

The Green Cap doesn't have a value, but I could add a "packaged green cap" grabbag item with a value and have the merchant sell that. Right clicking would remove the item while giving the player a Green Cap.
 
The Green Cap doesn't have a value, but I could add a "packaged green cap" grabbag item with a value and have the merchant sell that. Right clicking would remove the item while giving the player a Green Cap.
calamity manages to make NPCs sell boss summon items for money while they have no sell value.
and no, it doesnt take the fargo route of making new items that just do the same.
I have no idea how that works code-wise, but there seems to be a way.
 
calamity manages to make NPCs sell boss summon items for money while they have no sell value.
and no, it doesnt take the fargo route of making new items that just do the same.
I have no idea how that works code-wise, but there seems to be a way.
I looked into it, and now I know how to change vanilla item stuff. I updated with these changes:

Bugfix: Party Girl didn't sell Happy Grenade when "AllNPCsSellTheirDeathLoot" is true.
Change: Green Hat now has buy value 3 Gold Coins (I'm going to try to make it so it only has a value when "AllNPCsSellTheirDeathLoot" is true).
 
Heya, so do to a freak accident, this mod was temporarily disabled without me realizing it (and I started the server up without it) and, though most of everything remained stable after I loaded the mod back up, the stationary merchant's shop inventories are both completely blank now. (we had killed up to about skeletron prime I believe?)

Is there any way to fix this? I tried killing the slime god and eye of cthulu again to see if I could reboot it, no dice.
 
Last edited:
Heya, so do to a freak accident, this mod was temporarily disabled without me realizing it (and I started the server up without it) and, though most of everything remained stable after I loaded the mod back up, the stationary merchant's shop inventories are both completely blank now. (we had killed up to about skeletron prime I believe?)

Is there any way to fix this? I tried killing the slime god and eye of cthulu again to see if I could reboot it, no dice.
The more stationary Vanilla and Reduced Grinding NPCs you have + the more bosses you beat, the more often the Traveling Merchant will spawn each morning, restock his inventory, and give items to the Stationary Merchant. But if you don't want to wait for the Stationary Merchant to restock:

You can use NBT Explorer to edit terraria world files (found at Documents\My Games\Terraria\ModLoader\Worlds). Here's a list of all the world tags that get added for stationary merchant (ignore the "public static bool" and the "=false;"):
public static bool smItemShopNotEmpty = false;
public static bool smItemDecorShopNotEmpty = false;
public static bool smItemSake = false;
public static bool smItemPho = false;
public static bool smItemPadThai = false;
public static bool smItemUltrabrightTorch = false;
public static bool smItemAmmoBox = false;
public static bool smItemMagicHat = false;
public static bool smItemGypsyRobe = false;
public static bool smItemGi = false;
public static bool smItemCelestialMagnet = false;
public static bool smItemDPSMeter = false;
public static bool smItemLifeformAnalyzer = false;
public static bool smItemStopwatch = false;
public static bool smItemPaintSprayer = false;
public static bool smItemBrickLayer = false;
public static bool smItemPortableCementMixer = false;
public static bool smItemExtendoGrip = false;
public static bool smItemPresserator = false;
public static bool smItemBlackCounterweight = false;
public static bool smItemYellowCounterweight = false;
public static bool smItemSittingDucksFishingPole = false;
public static bool smItemKatana = false;
public static bool smItemCode1 = false;
public static bool smItemRevolver = false;
public static bool smItemGatligator = false;
public static bool smItemCode2 = false;
public static bool smItemPulseBow = false;
public static bool smItemRedTeamBlock = false;
public static bool smItemYellowTeamBlock = false;
public static bool smItemGreenTeamBlock = false;
public static bool smItemBlueTeamBlock = false;
public static bool smItemPinkTeamBlock = false;
public static bool smItemWhiteTeamBlock = false;
public static bool smItemDiamondRing = false;
public static bool smItemAngelHalo = false;
public static bool smItemFez = false;
public static bool smItemWinterCape = false;
public static bool smItemRedCape = false;
public static bool smItemCrimsonCloak = false;
public static bool smItemMysteriousCape = false;
public static bool smItemKimono = false;
public static bool smItemWaterGun = false;
public static bool smItemCompanionCube = false;
public static bool smItemChalice = false;
public static bool smItemArcaneRuneWall = false;
public static bool smItemFancyDishes = false;
public static bool smItemDynastyWood = false;
public static bool smItemZebraSkin = false;
public static bool smItemLeopardSkin = false;
public static bool smItemTigerSkin = false;
public static bool smItemCastleMarsberg = false;
public static bool smItemMartiaLisa = false;
public static bool smItemTheTruthIsUpThere = false;
public static bool smItemNotAKidNorASquid = false;
public static bool smItemAcorns = false;
public static bool smItemColdSnap = false;
public static bool smItemCursedSaint = false;
public static bool smItemSnowfellas = false;
public static bool smItemTheSeason = false;
public static bool skippedToDayOrNight = false;
I'll upload an example image to show you were you add these switches, so if you add "smItemSake" to the stationary merchant, he'll sell Sake.
Screenshot (143).png
 
I mean, you can ask Diverman Sam. I am sure they would gladly help out!
Okay, I've started a Conversation with DivermanSam.

New Update:
Bug fixes:
  • Rain Potion will now affect the amount of cloud coverage (I believe that this usually happens by default in vanilla, but my rain potion would make it rain and have clear skys at the same time. This change will make fishing easier).
  • The entire fish configuration syncing was causing in game errors, this is unfortunatley unavoidable as far as I can tell. They were removed in order to prevent it.
  • The entire starting item configuration syncing whas causing errors when using other mods. This feature was also removed.
Enemy and Grabbag drop changes:
  • Clouds now drop from harpies.
  • Dune Splicers drop Desert Fossil.
  • Hornets and Moss Hornets drop Hives when Queen be is Downed.
  • Dungeon and Lihzahrd Lockboxes now drop their matching bricks.
  • Moon Lord drop increased for each weapon from 11% to 22%(33% In Expert Mode)
  • While fighting the Moon Lord, if no player has a Celestial Beacon, the Moon Lord will give one to the closest player. This will happen every 10 seconds, and only if the Moon Lord hasn't been defeated yet. The Celestial Beacon's value is now 0.
  • Lihzard Powercell and Lihzard Lockbox drops now drop based on if an NPC is in front of an unsafe Lihzahrd Brick Wall (to allow modded NPCs to drop them).
  • New Martian Call items to summon the Martian Madness invasion. Drops from Martian Saucer.
NPC Shops:
  • Wooden Spikes and Lihzahrd Traps are sold by Witch Doctor Now (Wooden Spikes are set to true by default, I don't know why I had this set to false).
  • Mechanic Sells Spikes when selling Dart Traps.
  • The angler will now show how many quest you've completed in the chat, when you talk to him.
  • Dryad now sells a Plantera summoning item after Plantera is defeated.
Changes:
  • Ankh Charm Materials will boost the drop rate of Ankh Charm materials even if they're equipped (there's now an tooltips about Ankh Material boosting).
  • Merchant now sells swiftness potion. This makes swiftness potion more worth it because it's useless after getting Hermes Boots, and it makes a lack of Hermes boots less annoying.
  • Gold Critters are no longer crafted using 12 Gold Coins. Instead they're crafted with a "Gold Reflection Mirror", which is sold by the Merchant (disabled by default).
  • Crate upgrading and downgrading removed. With recent Moon Ball, Marble Sundial, and Marble Moon Dial along with the new Rain Potion bugfix, achieving 282 fishing power is much easier (at 282, crate catches upgrade as far as possible). Biome Crate catches no longer upgrade to Gold Crates (so fishing with 282 fishing power in specific biomes will make Biome Crates easy).
  • The fish changing system is reworked. Now the only time there'll be a chance to turn a caught fish into another fish is if it has a rarity of zero. When this happens it upgrades by re-calculating the caught fish (the way the vanilla game does it). The chance to re-calculate depends on your fishing power. If you successfully get this chance, it'll re-calculate once for every 5 fishing quest you've completed, but will stop once fish with a rarity greater than 0. When Luiafk is installed, only vanilla fishing rods upgrade fish.
  • Fixed hit boxes of many items.
 
The more stationary Vanilla and Reduced Grinding NPCs you have + the more bosses you beat, the more often the Traveling Merchant will spawn each morning, restock his inventory, and give items to the Stationary Merchant.

This is how it currently looks, it's a multiplayer server and we're supposed to be at the pre-plantera stage. Do I need to re-add everything? What items shouldn't we have in the shop yet?
https://i.imgur.com/bJ0TljF.png
 
  • Crate upgrading and downgrading removed. With recent Moon Ball, Marble Sundial, and Marble Moon Dial along with the new Rain Potion bugfix, achieving 282 fishing power is much easier (at 282, crate catches upgrade as far as possible). Biome Crate catches no longer upgrade to Gold Crates (so fishing with 282 fishing power in specific biomes will make Biome Crates easy).
no upgrading is fine, but downgrading is quite useful. sometimes you need the ores more than the bars, and you only get ores from wooden crates.
this is important if you want to make a hardmode forge without mining or craft lots of metal bricks.
 
When the Restock Order is in my inventory, it spams the message "Player has restock order." and it gets really annoying. Then it suddenly stops working entirely.
 
This is how it currently looks, it's a multiplayer server and we're supposed to be at the pre-plantera stage. Do I need to re-add everything? What items shouldn't we have in the shop yet?
https://i.imgur.com/bJ0TljF.png
"stationaryMerchantItems" can be removed, "stationaryMerchant" is what you're adding to. "smItemShopNotEmpty" and "smItemDecorShopNotEmpty" aren't too important; it affects the Stationary Merchant's dialogue. If one or both of those tags are missing, he'll tell you that a shop is empty. If an item is added into either shop when those tags are gone, it'll add the correct tag.

For all the other tags, it's random. They have a chance of being added from the Traveling Merchant shop when the Traveling Merchant shop resets. The chance is 100% if the world is Hardmode, or pre_vanilla_bosses_defeated / 6. So the best you can do is try to remember what was already in the shop then add them.
no upgrading is fine, but downgrading is quite useful. sometimes you need the ores more than the bars, and you only get ores from wooden crates.
this is important if you want to make a hardmode forge without mining or craft lots of metal bricks.
That's a good point, I'll add downgrading back in.
When the Restock Order is in my inventory, it spams the message "Player has restock order." and it gets really annoying. Then it suddenly stops working entirely.
When you say it stops working, does the whole game stop working, or just the restocking? That message was for debugging, and I accidentally left it in, I'll remove the message, and look though it to see if there's anything else that would cause things to stop working.
 
"stationaryMerchantItems" can be removed, "stationaryMerchant" is what you're adding to. "smItemShopNotEmpty" and "smItemDecorShopNotEmpty" aren't too important; it affects the Stationary Merchant's dialogue. If one or both of those tags are missing, he'll tell you that a shop is empty. If an item is added into either shop when those tags are gone, it'll add the correct tag.

For all the other tags, it's random. They have a chance of being added from the Traveling Merchant shop when the Traveling Merchant shop resets. The chance is 100% if the world is Hardmode, or pre_vanilla_bosses_defeated / 6. So the best you can do is try to remember what was already in the shop then add them.

That's a good point, I'll add downgrading back in.

When you say it stops working, does the whole game stop working, or just the restocking? That message was for debugging, and I accidentally left it in, I'll remove the message, and look though it to see if there's anything else that would cause things to stop working.

I meant the restocking.
 
no upgrading is fine, but downgrading is quite useful. sometimes you need the ores more than the bars, and you only get ores from wooden crates.
this is important if you want to make a hardmode forge without mining or craft lots of metal bricks.
I updated and added the downgrading back in.
I meant the restocking.
I found the problem. The game would only spawn him before 12PM, but it was also testing for the restock order before 12PM even though he's around till 6PM.

New Update:
Bugfix: This mod would continuously let you know that you have a Restock Order.
Bugfix: Traveling Merchant wasn't restocking after a certain time, even though he was still there.
Biome/Gold Crates can be crafted into Iron Crates. Iron Crates can be crafted into Wooden Crates.

EDIT: I just updated again. Sorry, I accidentally left the debug in while fixing the Traveling Merchant. He was spawning instantly and restocking every in-game minute. This is fixed now.
 
Last edited:
Back
Top Bottom