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.
I developed a similar system for sages, which I haven’t really used yet. This sage system gives each sage a base number (to represent general learnedness) and specialties, which add a bonus to queries about a a specific topic.
Variation on the vendor saving throw: it might be interesting to give each item a rarity number. If the vendor saving throw is a certain amount above this rarity number, you don’t even need to roll (it would be available be default, within the bounds of common sense). Of course, this requires more work, since you have to attach a number to everything, but I still find it somehow appealing (it’s the impartiality aspect, I think).
I wonder, is it really useful to have varying numbers for different types of settlements? That is, you are already making a common sense judgment call about whether something would plausibly be available or not. Some things will not need a roll. So maybe: something which is not definitely available but seems likely would need 5+ (75% chance). Then also have categories for 10+ and 15+? (Or use some other die type; it doesn’t really matter.) Let me know if that’s not clear. I’m not sure how well I expressed it.
LotFP has a related, but less quantified, categorization of prices into urban and rural.
This kind of system always tickles my fancy; it reminds me of rolling for the weather, or rolling for wand exhaustion. It’s (to borrow from computer science terminology) almost like lazy evaluation for the campaign world (that is, you don’t define the thing until you look at it closely).