v1.00 release
http://www.fallout3nexus.com/downloads/file.php?id=14173
Inspired originally by BigMill's Random Bobblehead mod and a comment by SteveDog on the gamesas forums, this is something that I've been wanting to do for a long time. It changes all manually-placed skillbooks in the wasteland from "always there" to "maybe there, maybe not". No more running to a specific spot to find skillbox X, Y and Z right out of Vault 101. Now you're going to have to work for it, and maybe offer up a prayer to the RNG gods.
Randomizes whether placed skillbooks in the default Fallout 3 game will appear depending on the player's Luck stat. The goal is that a player with average (Luck 5) will see about 20 books of a particular type on average if they visit every possible spawn point. Players with a low Luck value will see about 17, while players with a very high Luck will see around 23. Each book's appearance or non-appearance is chosen when the player visits the location for the first time (or gets in the general area for outdoor locations). You will no longer know for sure where you will find a given book. (Much like BigMill's "Random Bobblehead" mod, which was a great inspiration.)
In the base Fallout 3 world there are approximately 22-24 copies of the 13 skillbooks. Not all of these are accessible to the player, so most players will only manage to find 21-22 due to bugs in the base game. Additional spawn points for all books have been added so that it less likely that a book will appear at a given location.
After installing this mod there will be about 60 copies of the 13 book types. That means for a player with Luck of 5, they have a 33% chance that a book will appear at a spawn point. With Luck of 10, they will have a 40% chance. Some players might eventually see only 10 copies of a particular book while seeing 30 copies of another type, but the distribution should be close to the targeted number.
Random Details:
The "how did I do this" is actually pretty simple in practice. In the vanilla game, none of the skillbooks have an attached script. So I simply attached new scripts to the base book IDs, added a few global constants, and now when the book first appears in the 3D cell it decides whether to leave itself alone or it disables itself and marks itself for removal. (Using the OnLoad block.) For 99.5% of the books out there, this is all that was needed.
The second part of the puzzle, and the much more demanding and time-consuming part, was to add more book spawn points to as many of the game locations as possible so that I could turn down the chance-to-appear percentage. I decided to stop when I had 60 of each book placed in the world (including the original 22-24 spawns). That gave me a base chance of 25% that a book will appear, and each point of Luck gives an additional 1.5% chance. I may eventually decide to add more spawn points (75 would be a nice number), but only if things work well with the beta release.