The question of “what can my players buy in this town?” is an important one. The availability of equipment creates limits on the player which can force them to make more interesting choices. It can also spur them into traveling abroad, exploring the wider world in search of some place where they can find the things they need.
I’ve used a variety of methods to determine what can and what cannot be found in a given town. And I’ve read many more methods than I have tried using. I’ve never really found anything which worked well for me.
Often times, when my players have discovered a new town, I just wing it. I figure out roughly what kind of town it is, and how big it is, and from there it’s normally pretty obvious what can be bought and what cannot. In a farming village, of course you can find a pitchfork to buy. Sure, there’s probably someone with a sword who wouldn’t mind selling it. No, nobody here can cast healing magic for you.
I can think of no reason why this casual method of determining what is available for sale should not be formally adopted as my “official” method. The only hole are the few items which straddle the line between “obviously,” and “obviously not.” For example, a suit of chainmail armor. It’s possible one of the villagers has a set they’d be willing to part with, but it’s also possible none of them do. The logical thing to do is to roll to see if there’s a such a suit of armor available.
Here is what I propose: every town has a saving throw which is rolled when it’s not clear to the GM whether an item would be available or not. For 80% of what the players might ask for, the answer should be obvious based on the size, wealth, and function of the community. For anything else, 1d20 is rolled against the town’s saving throw. A roll equal to or higher than the target number means the item is available, less than the target number means none are.
The target number would get smaller, the larger a town becomes. An outpost or camp with 5-15 people in it would have a target number of 20. A small farming village where everyone knows everybody else might be 17. A town with a thousand or so people in it might be as low as 14. A major metropolis could get down to 9 or 10.
I’m going to start using this method in one of my campaigns, and see how it works out.