This script displays all the creatures that are stored in entity.resources.animals for all entities in the world. I recommend generating a pocket world to use the script on for the first time, because normal worlds seem to have thousands of entities.
Note that adding or erasing creatures from this list won't change the meat, blood, milk, leather, etc. that civs bring. It will only affect the live creatures that they bring.
You can do silly stuff like make elves pull caravan wagons without having to change the elf creature tokens by editing the appropriate lists.
print("Type y to print ",#df.global.world.entities.all," entity creature lists")
test=dfhack.lineedit("")
if test=="y" or test=="Y" then
for x,my_entity in pairs(df.global.world.entities.all) do
anmlz=my_entity.resources.animals
print(" ")
print("******************************************************************************")
print("entity:",my_entity.entity_raw.code, df.global.world.raws.creatures.all[my_entity.race].creature_id)
if my_entity==df.historical_entity.find(df.global.ui.civ_id) then
print("Player's Civilization")
end
print(" ")
for k,v in pairs(anmlz.pet_races) do
critter=df.global.world.raws.creatures.all[v]
print("PET",k, critter.creature_id, critter.caste[anmlz.pet_castes[k]].caste_id)
end
for k,v in pairs(anmlz.wagon_races) do
critter=df.global.world.raws.creatures.all[v]
print("WAGON",k, critter.creature_id, critter.caste[anmlz.wagon_castes[k]].caste_id)
end
for k,v in pairs(anmlz.pack_animal_races) do
critter=df.global.world.raws.creatures.all[v]
print("PACK_ANIMAL",k, critter.creature_id, critter.caste[anmlz.pack_animal_castes[k]].caste_id)
end
for k,v in pairs(anmlz.wagon_puller_races) do
critter=df.global.world.raws.creatures.all[v]
print("WAGON_PULLER",k, critter.creature_id, critter.caste[anmlz.wagon_puller_castes[k]].caste_id)
end
for k,v in pairs(anmlz.mount_races) do
critter=df.global.world.raws.creatures.all[v]
print("MOUNT",k, critter.creature_id, critter.caste[anmlz.mount_castes[k]].caste_id)
end
for k,v in pairs(anmlz.minion_races) do
critter=df.global.world.raws.creatures.all[v]
print("MINION",k, critter.creature_id, critter.caste[anmlz.minion_castes[k]].caste_id)
end
for k,v in pairs(anmlz.exotic_pet_races) do
critter=df.global.world.raws.creatures.all[v]
print("EXOTIC_PET",k, critter.creature_id, critter.caste[anmlz.exotic_pet_castes[k]].caste_id)
end
--test=dfhack.lineedit("continue...")
end
end
print(" ")
print("done!")