None of the monsters on my server appear to drop recipes. Is there a loot config I need to create/adjust?
 
If you want every mob on the server to drop recipes, then yes, you'd have to adjust the loot yourself.
Most of the recipes are obtained via quests, treasure chests or (irc) killing bosses in specific areas.
 
What I personally did was this:
C#:
        public override void OnDeath(Container c)
        {

            base.OnDeath(c);
            if (Utility.RandomDouble() < 0.10)
                c.DropItem(new RecipeScroll(302));
        }
inside a specific mob script.
This would give the creature a 10% chance of dropping the recipe 302, which is Fiery Spellblade. You can check the recipe IDs in DefBlacksmithy.cs, DefAlchemy.cs, etc. You can do it this way if you want particular monsters have a chance to drop specific recipes.
If you want to make it less specific, you'd need to go to LootPack.cs and see the way loot is generated. Then just include the recipes there.
Hope you found it helpful :)
 
I think this example would be ideal if I could work it into LootPack.cs and hand a random number generated for the recipe number. Are the recipes sequential between a low and high value? How could I make such a script work?
 
You can add individual items to Loot.cs easily enough, just search for an item type you know drops the way you want, and add it to that list.

The original source of recipes still works great, the Craftsman's Satchel.

Might be easier to just use the existing quest and distribution system, so tradesepople can actually get the recipes. But, if you don't like the Heartwood system, you can just redistribute those quests, NPCs, or just add the Satchel itself to a vendor.
 
How would I adjust the loot?
I did this to some of my bosses:
case 6:
c.DropItem(Reward.FletcherRecipe());
break;
case 7:
c.DropItem(Reward.TailorRecipe());
break;
case 8:
c.DropItem(Reward.SmithRecipe());
break;
case 9:
c.DropItem(Reward.TinkerRecipe());
break;
case 10:
c.DropItem(Reward.CarpRecipe());
break;
 
Back