Regarding running out of torches: you can predict how many torches are needed, and spawn them accordingly.
If each player wants a stock of k spare torches on average, an average of M players are actually using torches at any given time, and a torch lasts T seconds, your stores must stock k torches whenever a new player joins the game (or is resurrected without torches, etc.), 1 replacement torch whenever an unused torch is destroyed or lost, and M/T torches per second. These torches should appear in a random store selected among those that have less than the "standard" stock of torches. Counting every torch might be simpler than estimating k and M.
The same applies to other goods: measuring or estimating sources, sinks and popularity with players allows you to compute the right amount that should appear out of thin air in stores.