**REPORTED** Shaking Trees in the Same Spot on Different Worlds Doesn't Give Items

zoethecat

Terrarian
Steam or GOG
Steam
Single Player/Multiplayer
Single
Operating System
Windows 10
Terraria Version
1.4.3.6
Controls Used
Keyboard/Mouse
When shaking trees, no items are given if you have already shaken that tree on a different world. This can most easily be seen (and easily reproduced) by generating the same world seed multiple times. If you shake the trees near spawn in the first, then generate the second and shake the same trees, you will see that no items are dropped. This also appears in worlds with separate world seeds, although obviously far less frequently, and I have only noticed it when resetting frequently in speedrun attempts.
 
i'm pretty sure this is because tree shaking is RNG. just because it dropped an item on one world doesn't mean it does it constantly across all worlds even if it has the same seed
 
That’s not what I mean — what I mean is that nothing can drop. If you shake every tree on the first world, after generating it again you won’t get any drops from any of the trees. I’m not saying different items drop, I’m saying no items drop, something so statistically unlikely it’s essentially impossible. Additionally, as soon as you restart your game, drops come back — until you’ve shaken a tree in a certain place again.
 
I think there was a specific cap on how much trees you can shake for items in one Terraria day. Probably to avoid exploits like constantly shaking trees in newly created worlds for their drops.
 
That’s possible, but judging from how drops gradually decrease rather than in steps when shaking trees frequently in random worlds, I don’t think this is the case.
 
As another speedrunner I've run into this issue as well, and it's quite annoying to have to constantly restart my game to get tree drops every run.

I went into the Terraria.WorldGen.cs, and found that numTreeShakes is only set to 0 when the game is loaded up, and when UpdateTime_StartDay is run. This is run on one of two conditions; 1) that Journey powers set it to dawn or day, or 2) that "if (Main.time > 32400.0)". 32400 ticks at 60fps is 9 minutes, so I presume that Main.time starts at 0 when it's 7:30pm, and increases from there.

I believe that this issue could easily be solved by making another variable, UpdateTime_StartTreeDay, run it when Main.time > 45901.0, which should be 1 frame after the world starts (8:15am), and then cut+paste the line "WorldGen.numTreeShakes = 0;" into the new one. I don't really think anyone would mind that their trees are refreshing 3 minutes and 45 seconds later each day, right?
 
Thank you for the report! Based on information I've seen, the problem might be due to all worlds sharing the same day timer.

I think there was a specific cap on how much trees you can shake for items in one Terraria day. Probably to avoid exploits like constantly shaking trees in newly created worlds for their drops.
There is (or was). I think it was 50. I vaguely recall it might have been changed or removed with the Don't Starve update to allow for the hunger system. However you can still only shake each tree once per day.
 
Thank you for the report! Based on information I've seen, the problem might be due to all worlds sharing the same day timer.


There is (or was). I think it was 50. I vaguely recall it might have been changed or removed with the Don't Starve update to allow for the hunger system. However you can still only shake each tree once per day.
The limit is 500 and it could carry over between world loads, as it is only reset whenever a new day starts during the game time loop, quite fun.
 
Back
Top Bottom