How do I make it so vampires actually convert people in worldgen?
Hm. Depends on whether you want to keep the raws roughly the same, or create a new creature definition for naturally-occurring Vampires.
Best bet for doing it (that I know of, in case any more experienced Modders want to pipe up) would be to create a new creature definition that automatically gains the Vampire syndrome (attach it to their blood for best results), then give them a [SPECIALATTACK_INTERACTION:CUSTOM_VAMPIRE_INTERACTION] tag on a bite attack. The interaction and attack should look something like this:
[INTERACTION:VAMPIRE_BITE_CONVERT]
[I_SOURCE:ATTACK]
[IS_USAGE_HINT:MAJOR_CURSE]
[IS_HIST_STRING_1: bit]
[IS_HIST_STRING_2:, passing on the vampiric curse]
[IS_TRIGGER_STRING_SECOND:have]
[IS_TRIGGER_STRING_THIRD:has]
[IS_TRIGGER_STRING:been cursed to prowl the night in search of blood!]
[I_SOURCE:INGESTION]
[IS_HIST_STRING_1: consumed the tainted blood of ]
[IS_HIST_STRING_2: and was cursed]
[I_TARGET:A:CREATURE]
[IT_LOCATION:CONTEXT_CREATURE]
[IT_REQUIRES:CAN_LEARN]
[IT_REQUIRES:HAS_BLOOD]
[IT_FORBIDDEN:NOT_LIVING]
[IT_FORBIDDEN:SUPERNATURAL]
[IT_CANNOT_HAVE_SYNDROME_CLASS:WERECURSE]
[IT_CANNOT_HAVE_SYNDROME_CLASS:VAMPCURSE]
[IT_CANNOT_HAVE_SYNDROME_CLASS:DISTURBANCE_CURSE]
[IT_CANNOT_HAVE_SYNDROME_CLASS:RAISED_UNDEAD]
[IT_CANNOT_HAVE_SYNDROME_CLASS:RAISED_GHOST]
[IT_CANNOT_HAVE_SYNDROME_CLASS:GHOUL]
[I_EFFECT:ADD_SYNDROME]
[IE_TARGET:A]
[IE_IMMEDIATE]
[SYNDROME]
[SYN_CONCENTRATION_ADDED:1000:0]
[SYN_CLASS:VAMPCURSE]
[CE_ADD_TAG:BLOODSUCKER:NO_AGING:STERILE:NOT_LIVING:NOEXERT:NOPAIN:NOBREATHE:NOSTUN:NONAUSEA:NO_DIZZINESS:NO_FEVERS:PARALYZEIMMUNE:NO_EAT:NO_DRINK:NO_SLEEP:NO_PHYS_ATT_GAIN:NO_PHYS_ATT_RUST:START:0:ABRUPT]
[CE_PHYS_ATT_CHANGE:STRENGTH:200:0:AGILITY:200:0:TOUGHNESS:200:0:START:0:ABRUPT]
[CE_MATERIAL_FORCE_MULTIPLIER:MAT_MULT:NONE:NONE:1:2:ABRUPT]
[CE_BODY_MAT_INTERACTION:MAT_TOKEN:RESERVED_BLOOD:START:0:ABRUPT]
[CE:INTERACTION:VAMPIRE_BITE_CONVERT]
[CE:SYNDROME_TAG:SYN_INGESTED]
[CE:SYNDROME_TAG:SYN_INJECTED]
[CE_DISPLAY_TILE:TILE:165:4:0:0:START:0:CAN_BE_HIDDEN:ABRUPT]
[CE_DISPLAY_NAME:NAME:vampire:vampires:vampiric:START:0:CAN_BE_HIDDEN:ABRUPT]
[CE_BP_APPEARANCE_MODIFIER:START:0:BP:BY_CATEGORY:TOOTH:APPEARANCE_MODIFIER:LENGTH:150:ABRUPT]
[CE:COUNTER_TRIGGER:DRINKING_BLOOD:1:NONE:REQUIRED]
[CE_SENSE_CREATURE_CLASS:START:0:CLASS:GENERAL_POISON:15:4:0:1:ABRUPT]
[ATTACK:BITE:CHILD_BODYPART_GROUP:BY_CATEGORY:HEAD:BY_CATEGORY:TOOTH]
[ATTACK_SKILL:BITE]
[ATTACK_VERB:bite:bites]
[ATTACK_CONTACT_PERC:100]
[ATTACK_PENETRATION_PERC:100]
[ATTACK_PREPARE_AND_RECOVER:4:4]
[ATTACK_FLAG_EDGE]
[ATTACK_PRIORITY:MAIN]
[ATTACK_FLAG_CANLATCH]
[SPECIALATTACK_INTERACTION:VAMPIRE_BITE_CONVERT]
This should have them acting similar to Werebeasts, converting anyone they bite into a Vampire. Doing it while keeping the non-procedurally-generated raws the same would, AFAIK, require you to put this interaction in a file of its own, then directly edit the uncompressed world.sav to add something like [CE_SPECIAL_ATTACK_INTERACTION:INTERACTION:VAMPIRE_BITE_CONVERT:BP:BY_CATEGORY:TOOTH:START:0:ABRUPT] to all the generated Vampcurses.
At least, I
think all this should work. Still need to test it on my own.