<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dwarffortresswiki.org/index.php?action=history&amp;feed=atom&amp;title=Angel%2Fscript</id>
	<title>Angel/script - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://dwarffortresswiki.org/index.php?action=history&amp;feed=atom&amp;title=Angel%2Fscript"/>
	<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Angel/script&amp;action=history"/>
	<updated>2026-07-05T11:50:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Angel/script&amp;diff=317018&amp;oldid=prev</id>
		<title>Ziusudra: from 53.15 creatures.lua</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Angel/script&amp;diff=317018&amp;oldid=prev"/>
		<updated>2026-06-30T09:55:45Z</updated>

		<summary type="html">&lt;p&gt;from 53.15 creatures.lua&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
sphere_flavor={&lt;br /&gt;
    AGRICULTURE={add=&amp;quot;it looks constantly to the sky for rain&amp;quot;},&lt;br /&gt;
    ANIMALS={add=&amp;quot;it growls, buzzes, clicks and generally makes a varied racket&amp;quot;},&lt;br /&gt;
    ART={add=&amp;quot;it is decorated with intricate patterns&amp;quot;},&lt;br /&gt;
    BALANCE={add=&amp;quot;it is perfectly symmetric&amp;quot;},&lt;br /&gt;
    BEAUTY={add=&amp;quot;it is strikingly beautiful&amp;quot;},&lt;br /&gt;
    BIRTH={add=&amp;quot;it is covered with a filmy sac&amp;quot;},&lt;br /&gt;
    BLIGHT={add=&amp;quot;nearby vegetation seem to shrink away from it&amp;quot;},&lt;br /&gt;
    BOUNDARIES={add=&amp;quot;the pieces of its body are carefully separated by markings&amp;quot;},&lt;br /&gt;
    CAVERNS={add=&amp;quot;its moans seem to echo no matter where it resides&amp;quot;},&lt;br /&gt;
    CHAOS={add=&amp;quot;it spins wildly, lurching and howling&amp;quot;},&lt;br /&gt;
    CHARITY={add=&amp;quot;it seems very pleasant&amp;quot;},&lt;br /&gt;
    CHILDREN={add=&amp;quot;it never misses an opportunity to jump in puddles&amp;quot;},&lt;br /&gt;
    COASTS={add=&amp;quot;it appears to be covered with rocky crags&amp;quot;},&lt;br /&gt;
    CONSOLATION={add=&amp;quot;it radiates a sad kindness&amp;quot;},&lt;br /&gt;
    COURAGE={add=&amp;quot;it makes those around it feel brave&amp;quot;},&lt;br /&gt;
    CRAFTS={add=&amp;quot;it appears constructed&amp;quot;},&lt;br /&gt;
    CREATION={add=&amp;quot;small objects seem to pop into existence around it&amp;quot;},&lt;br /&gt;
    DANCE={add=&amp;quot;it whirls, skips and jumps whenever it moves&amp;quot;},&lt;br /&gt;
    DARKNESS={add=&amp;quot;it is difficult to see clearly even in bright light&amp;quot;},&lt;br /&gt;
    DAWN={add=&amp;quot;it always turns to welcome the rise of the sun&amp;quot;},&lt;br /&gt;
    DAY={add=&amp;quot;it hums pleasantly when the sun is high in the sky&amp;quot;},&lt;br /&gt;
    DEATH={add=&amp;quot;it has a rattling exhale&amp;quot;},&lt;br /&gt;
    DEFORMITY={add=&amp;quot;its body is bent and misshapen&amp;quot;},&lt;br /&gt;
    DEPRAVITY={add=&amp;quot;it slavers uncontrollably&amp;quot;},&lt;br /&gt;
    DISCIPLINE={add=&amp;quot;it moves with great focus&amp;quot;},&lt;br /&gt;
    DISEASE={add=&amp;quot;it bears malodorous pustules&amp;quot;,odor=&amp;quot;death&amp;quot;},&lt;br /&gt;
    DREAMS={add=&amp;quot;the details of its form are easily forgotten without deliberate concentration&amp;quot;},&lt;br /&gt;
    DUSK={add=&amp;quot;it never looks toward the sun&amp;quot;},&lt;br /&gt;
    DUTY={add=&amp;quot;it is utterly still when not taking deliberate action&amp;quot;},&lt;br /&gt;
    EARTH={add=&amp;quot;it looks very solid and stocky&amp;quot;},&lt;br /&gt;
    FAMILY={add=&amp;quot;it appears to be closely related to every other of its kind&amp;quot;},&lt;br /&gt;
    FAME={add=&amp;quot;fanfare follows it wherever it goes&amp;quot;},&lt;br /&gt;
    FATE={add=&amp;quot;it never appears to be perturbed or surprised by any happening&amp;quot;},&lt;br /&gt;
    FERTILITY={add=&amp;quot;it appears to be very healthy&amp;quot;},&lt;br /&gt;
    FESTIVALS={add=&amp;quot;it skips and twirls as it moves&amp;quot;},&lt;br /&gt;
    FIRE={add=&amp;quot;a sheen around it always seems to rise upward&amp;quot;},&lt;br /&gt;
    FISH={add=&amp;quot;it only looks comfortable when it is in the water&amp;quot;},&lt;br /&gt;
    FISHING={add=&amp;quot;it always moves carefully around water&amp;quot;},&lt;br /&gt;
    FOOD={add=&amp;quot;it has the delicious smell of freshly-baked goods&amp;quot;,odor=&amp;quot;freshly-baked goods&amp;quot;},&lt;br /&gt;
    FORGIVENESS={add=&amp;quot;it is impossible to hold a grudge near it&amp;quot;},&lt;br /&gt;
    FORTRESSES={add=&amp;quot;it is very sturdy-looking&amp;quot;},&lt;br /&gt;
    FREEDOM={add=&amp;quot;it eagerly moves from place to place&amp;quot;},&lt;br /&gt;
    GAMBLING={add=&amp;quot;it changes between two colors intermittently&amp;quot;},&lt;br /&gt;
    GAMES={add=&amp;quot;it giggles at random&amp;quot;},&lt;br /&gt;
    GENEROSITY={add=&amp;quot;it makes those around it want to give up their possessions&amp;quot;},&lt;br /&gt;
    HAPPINESS={add=&amp;quot;it seems to smile constantly&amp;quot;},&lt;br /&gt;
    HEALING={add=&amp;quot;it is surrounded by a gentle atmosphere&amp;quot;},&lt;br /&gt;
    HOSPITALITY={add=&amp;quot;it radiates an aura of welcoming&amp;quot;},&lt;br /&gt;
    HUNTING={add=&amp;quot;it inspects the ground intently as it moves&amp;quot;},&lt;br /&gt;
    INSPIRATION={add=&amp;quot;flashes of energy pulse across its surface intermittently&amp;quot;},&lt;br /&gt;
    JEALOUSY={add=&amp;quot;it appears to be a very bitter creature&amp;quot;},&lt;br /&gt;
    JEWELS={add=&amp;quot;its whole body appears to be faceted in a symmetric fashion&amp;quot;},&lt;br /&gt;
    JUSTICE={add=&amp;quot;it seems eager to pronounce judgment on others&amp;quot;},&lt;br /&gt;
    LABOR={add=&amp;quot;it appears very deliberate in its actions&amp;quot;},&lt;br /&gt;
    LAKES={add=&amp;quot;it moves ponderously&amp;quot;},&lt;br /&gt;
    LAWS={add=&amp;quot;it has a very stark look about it&amp;quot;},&lt;br /&gt;
    LIES={add=&amp;quot;it seems unerringly honest if one does not concentrate&amp;quot;},&lt;br /&gt;
    LIGHT={add=&amp;quot;it returns surrounding light with a new vibrance and intensity&amp;quot;},&lt;br /&gt;
    LIGHTNING={add=&amp;quot;it crackles with energy&amp;quot;},&lt;br /&gt;
    LONGEVITY={add=&amp;quot;it always seems to be looking far into the distance&amp;quot;},&lt;br /&gt;
    LOVE={add=&amp;quot;it stares longingly at those nearby&amp;quot;},&lt;br /&gt;
    LOYALTY={add=&amp;quot;it never abandons its companions&amp;quot;},&lt;br /&gt;
    LUCK={add=&amp;quot;it changes direction suddenly at times&amp;quot;},&lt;br /&gt;
    LUST={add=&amp;quot;it has an unnerving stare&amp;quot;},&lt;br /&gt;
    MARRIAGE={add=&amp;quot;it heckles those it meets that are not married&amp;quot;},&lt;br /&gt;
    MERCY={add=&amp;quot;it always seems like it is on the verge of crying&amp;quot;},&lt;br /&gt;
    METALS={add=&amp;quot;it appears to have sharp shimmering edges on many parts of its body&amp;quot;},&lt;br /&gt;
    MINERALS={add=&amp;quot;it has an angular appearance&amp;quot;},&lt;br /&gt;
    MISERY={add=&amp;quot;it has a distinctly depressing moan&amp;quot;},&lt;br /&gt;
    MIST={add=&amp;quot;it is difficult to see clearly&amp;quot;},&lt;br /&gt;
    MOON={add=&amp;quot;it changes color with the phases of the moon&amp;quot;},&lt;br /&gt;
    MOUNTAINS={add=&amp;quot;it is very solidly built&amp;quot;},&lt;br /&gt;
    MUCK={add=&amp;quot;there is a foul reek about it&amp;quot;},&lt;br /&gt;
    MURDER={add=&amp;quot;it cannot abide anything that lives&amp;quot;},&lt;br /&gt;
    MUSIC={add=&amp;quot;it sounds clear tones as its body moves in time&amp;quot;},&lt;br /&gt;
    NATURE={add=&amp;quot;it seems most at ease when it is outdoors&amp;quot;},&lt;br /&gt;
    NIGHT={add=&amp;quot;it eerily reflects the light of the stars and moon&amp;quot;},&lt;br /&gt;
    NIGHTMARES={add=&amp;quot;it reminds those that look upon it of their most unpleasant memories&amp;quot;},&lt;br /&gt;
    OATHS={add=&amp;quot;it cannot look directly at somebody that has broken an oath&amp;quot;},&lt;br /&gt;
    OCEANS={add=&amp;quot;it always raises a part of its body toward the moon&amp;quot;},&lt;br /&gt;
    ORDER={add=&amp;quot;it moves very stiffly&amp;quot;},&lt;br /&gt;
    PAINTING={add=&amp;quot;its surface is always enlivened with a refreshing play of color&amp;quot;},&lt;br /&gt;
    PEACE={add=&amp;quot;it has an incredibly calm demeanor&amp;quot;},&lt;br /&gt;
    PERSUASION={add=&amp;quot;it rocks back and forth whenever somebody changes their mind in its presence&amp;quot;},&lt;br /&gt;
    PLANTS={add=&amp;quot;it always seems to point toward the sun when it is in the sky&amp;quot;},&lt;br /&gt;
    POETRY={add=&amp;quot;it recites verses in a strange language on occasion&amp;quot;},&lt;br /&gt;
    PREGNANCY={add=&amp;quot;it appears to be expecting&amp;quot;},&lt;br /&gt;
    RAIN={add=&amp;quot;it leaves water wherever it goes&amp;quot;},&lt;br /&gt;
    RAINBOWS={add=&amp;quot;it is strikingly colored&amp;quot;},&lt;br /&gt;
    REBIRTH={add=&amp;quot;it alternates from instant to instant between sluggishness and extreme vibrancy&amp;quot;},&lt;br /&gt;
    REVELRY={add=&amp;quot;it moves with a bouncing rhythm&amp;quot;},&lt;br /&gt;
    REVENGE={add=&amp;quot;it has a fixed and unblinking gaze when interacting&amp;quot;},&lt;br /&gt;
    RIVERS={add=&amp;quot;its outer surface seems to flow about its body&amp;quot;},&lt;br /&gt;
    RULERSHIP={add=&amp;quot;it is hard to disobey&amp;quot;},&lt;br /&gt;
    RUMORS={add=&amp;quot;it always nods eagerly when somebody is speaking&amp;quot;},&lt;br /&gt;
    SACRIFICE={add=&amp;quot;it inspires those around it to acts of great sacrifice&amp;quot;},&lt;br /&gt;
    SALT={add=&amp;quot;it makes nearby water undrinkable&amp;quot;},&lt;br /&gt;
    SCHOLARSHIP={add=&amp;quot;it always seems to be deep in thought&amp;quot;},&lt;br /&gt;
    SEASONS={add=&amp;quot;its form is ever-changing&amp;quot;},&lt;br /&gt;
    SILENCE={add=&amp;quot;it makes absolutely no sound&amp;quot;},&lt;br /&gt;
    SKY={add=&amp;quot;it has a slowly shifting pattern on its surface&amp;quot;},&lt;br /&gt;
    SONG={add=&amp;quot;it sings beautiful songs endlessly&amp;quot;},&lt;br /&gt;
    SPEECH={add=&amp;quot;it pays attention carefully to anybody that is speaking&amp;quot;},&lt;br /&gt;
    STARS={add=&amp;quot;it appears to sparkle after night falls&amp;quot;},&lt;br /&gt;
    STORMS={add=&amp;quot;its movement is the sound of wind and rain&amp;quot;},&lt;br /&gt;
    STRENGTH={add=&amp;quot;it looks solidly built&amp;quot;},&lt;br /&gt;
    SUICIDE={add=&amp;quot;it mutters to itself about death&amp;quot;},&lt;br /&gt;
    SUN={add=&amp;quot;it is difficult to look at directly&amp;quot;},&lt;br /&gt;
    THEFT={add=&amp;quot;it always seems to have its attention on the most valuable object in the area&amp;quot;},&lt;br /&gt;
    THRALLDOM={add=&amp;quot;its movements sound like the rattling of chains&amp;quot;},&lt;br /&gt;
    THUNDER={add=&amp;quot;it is incredibly noisy&amp;quot;},&lt;br /&gt;
    TORTURE={add=&amp;quot;it appears to be covered with sharp hooks and barbs&amp;quot;},&lt;br /&gt;
    TRADE={add=&amp;quot;it seems most content when a fair wind is blowing&amp;quot;},&lt;br /&gt;
    TRAVELERS={add=&amp;quot;it never stops moving completely&amp;quot;},&lt;br /&gt;
    TREACHERY={add=&amp;quot;it is unsettling to be around&amp;quot;},&lt;br /&gt;
    TREES={add=&amp;quot;it is top-heavy&amp;quot;},&lt;br /&gt;
    TRICKERY={add=&amp;quot;it has a tendency to laugh quietly to itself every so often&amp;quot;},&lt;br /&gt;
    TRUTH={add=&amp;quot;it tenses up throughout its entire body whenever somebody tells a falsehood in its presence&amp;quot;},&lt;br /&gt;
    TWILIGHT={add=&amp;quot;it chitters briefly before sunrise and just after nightfall&amp;quot;},&lt;br /&gt;
    VALOR={add=&amp;quot;it always tries to embolden any fighting in its presence with exhortations of bravery, even its foes&amp;quot;},&lt;br /&gt;
    VICTORY={add=&amp;quot;it looks very proud of itself&amp;quot;},&lt;br /&gt;
    VOLCANOS={add=&amp;quot;it seems to glow brightly from within&amp;quot;},&lt;br /&gt;
    WAR={add=&amp;quot;it bellows and cheers without pause&amp;quot;},&lt;br /&gt;
    WATER={add=&amp;quot;it seems to flow as it moves&amp;quot;},&lt;br /&gt;
    WEALTH={add=&amp;quot;it always seems to be counting something&amp;quot;},&lt;br /&gt;
    WEATHER={add=&amp;quot;it changes appearance based on the clouds and precipitation above&amp;quot;},&lt;br /&gt;
    WIND={add=&amp;quot;it is surrounded by an everpresent rush of wind&amp;quot;},&lt;br /&gt;
    WISDOM={add=&amp;quot;it acts with unwavering calm&amp;quot;},&lt;br /&gt;
    WRITING={add=&amp;quot;it is covered with divine writing&amp;quot;},&lt;br /&gt;
    YOUTH={add=&amp;quot;it appears spry and vigorous&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function angel_description(lines,options)&lt;br /&gt;
    local ropar=random_object_parameters&lt;br /&gt;
    local end_str=&amp;quot; It was created by &amp;quot;&lt;br /&gt;
    local add_desc=function(str) end_str=end_str..str end&lt;br /&gt;
    local hf=ropar.source_hf&lt;br /&gt;
    if hf then&lt;br /&gt;
        add_desc(&amp;quot;the &amp;quot;)&lt;br /&gt;
        add_desc(ropar.source_hf_race_adj..&amp;quot; &amp;quot;)&lt;br /&gt;
        if hf.gender==1 then add_desc(&amp;quot;goddess&amp;quot;)&lt;br /&gt;
        elseif hf.gender==0 then add_desc(&amp;quot;god&amp;quot;)&lt;br /&gt;
        else add_desc(&amp;quot;deity&amp;quot;) end&lt;br /&gt;
        add_desc(&amp;quot; &amp;quot;)&lt;br /&gt;
        add_desc(hf.name.translated)&lt;br /&gt;
    else&lt;br /&gt;
        add_desc(&amp;quot;an unknown deity&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    local sch=0&lt;br /&gt;
    for k,v in pairs(options.spheres) do&lt;br /&gt;
        if v then sch = sch+1 end&lt;br /&gt;
    end&lt;br /&gt;
    if sch&amp;gt;0 then&lt;br /&gt;
        add_desc(&amp;quot; and is of a part with &amp;quot;)&lt;br /&gt;
        for k,v in pairs(options.spheres) do&lt;br /&gt;
            add_desc(world.spheres[k].definite_name)&lt;br /&gt;
            sch=sch-1&lt;br /&gt;
            if sch&amp;gt;=2 then add_desc(&amp;quot;, &amp;quot;)&lt;br /&gt;
            elseif sch == 1 then add_desc(&amp;quot; and &amp;quot;)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    add_desc(&amp;quot;.&amp;quot;)&lt;br /&gt;
    return end_str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
angel_names_humanoid_warrior={&lt;br /&gt;
    {&amp;quot;Angel&amp;quot;,&amp;quot;Angels&amp;quot;,&amp;quot;angelic&amp;quot;},&lt;br /&gt;
    {&amp;quot;Soldier&amp;quot;,&amp;quot;Soldiers&amp;quot;,&amp;quot;soldier&amp;quot;},&lt;br /&gt;
    {&amp;quot;Warrior&amp;quot;,&amp;quot;Warriors&amp;quot;,&amp;quot;warrior&amp;quot;},&lt;br /&gt;
    {&amp;quot;Champion&amp;quot;,&amp;quot;Champions&amp;quot;,&amp;quot;champion&amp;quot;},&lt;br /&gt;
    {&amp;quot;Fighter&amp;quot;,&amp;quot;Fighters&amp;quot;,&amp;quot;fighter&amp;quot;},&lt;br /&gt;
    {&amp;quot;Guardian&amp;quot;,&amp;quot;Guardians&amp;quot;,&amp;quot;guardian&amp;quot;},&lt;br /&gt;
    {&amp;quot;Spirit&amp;quot;,&amp;quot;Spirits&amp;quot;,&amp;quot;spirit&amp;quot;},&lt;br /&gt;
    {&amp;quot;Messenger&amp;quot;,&amp;quot;Messengers&amp;quot;,&amp;quot;messenger&amp;quot;},&lt;br /&gt;
    {&amp;quot;Slayer&amp;quot;,&amp;quot;Slayers&amp;quot;,&amp;quot;slayer&amp;quot;},&lt;br /&gt;
    {&amp;quot;Enforcer&amp;quot;,&amp;quot;Enforcers&amp;quot;,&amp;quot;enforcer&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
angel_names_great_beast={&lt;br /&gt;
    {&amp;quot;Beast&amp;quot;,&amp;quot;Beasts&amp;quot;,&amp;quot;beast&amp;quot;},&lt;br /&gt;
    {&amp;quot;Behemoth&amp;quot;,&amp;quot;Behemoths&amp;quot;,&amp;quot;behemoth&amp;quot;},&lt;br /&gt;
    {&amp;quot;Harbinger&amp;quot;,&amp;quot;Harbingers&amp;quot;,&amp;quot;harbinger&amp;quot;},&lt;br /&gt;
    {&amp;quot;Monster&amp;quot;,&amp;quot;Monsters&amp;quot;,&amp;quot;monster&amp;quot;},&lt;br /&gt;
    {&amp;quot;Destroyer&amp;quot;,&amp;quot;Destroyers&amp;quot;,&amp;quot;destroyer&amp;quot;},&lt;br /&gt;
    {&amp;quot;Doom&amp;quot;,&amp;quot;Dooms&amp;quot;,&amp;quot;doom&amp;quot;},&lt;br /&gt;
    {&amp;quot;Bane&amp;quot;,&amp;quot;Banes&amp;quot;,&amp;quot;bane&amp;quot;},&lt;br /&gt;
    {&amp;quot;Catastrophe&amp;quot;,&amp;quot;Catastrophes&amp;quot;,&amp;quot;catastrophe&amp;quot;},&lt;br /&gt;
    {&amp;quot;Ruination&amp;quot;,&amp;quot;Ruinations&amp;quot;,&amp;quot;ruination&amp;quot;},&lt;br /&gt;
    {&amp;quot;Judgment&amp;quot;,&amp;quot;Judgments&amp;quot;,&amp;quot;judgment&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
angel_names_humanoid_generic={&lt;br /&gt;
    {&amp;quot;Servant&amp;quot;,&amp;quot;Servants&amp;quot;,&amp;quot;servant&amp;quot;},&lt;br /&gt;
    {&amp;quot;Assistant&amp;quot;,&amp;quot;Assistants&amp;quot;,&amp;quot;assistant&amp;quot;},&lt;br /&gt;
    {&amp;quot;Attendant&amp;quot;,&amp;quot;Attendants&amp;quot;,&amp;quot;attendant&amp;quot;},&lt;br /&gt;
    {&amp;quot;Minion&amp;quot;,&amp;quot;Minions&amp;quot;,&amp;quot;minion&amp;quot;},&lt;br /&gt;
    {&amp;quot;Helper&amp;quot;,&amp;quot;Helpers&amp;quot;,&amp;quot;helper&amp;quot;},&lt;br /&gt;
    {&amp;quot;Worker&amp;quot;,&amp;quot;Workers&amp;quot;,&amp;quot;worker&amp;quot;},&lt;br /&gt;
    {&amp;quot;Hand&amp;quot;,&amp;quot;Hands&amp;quot;,&amp;quot;hand&amp;quot;},&lt;br /&gt;
    {&amp;quot;Being&amp;quot;,&amp;quot;Beings&amp;quot;,&amp;quot;being&amp;quot;},&lt;br /&gt;
    {&amp;quot;Puppet&amp;quot;,&amp;quot;Puppets&amp;quot;,&amp;quot;puppet&amp;quot;},&lt;br /&gt;
    {&amp;quot;Pawn&amp;quot;,&amp;quot;Pawns&amp;quot;,&amp;quot;pawn&amp;quot;},&lt;br /&gt;
    {&amp;quot;Retainer&amp;quot;,&amp;quot;Retainers&amp;quot;,&amp;quot;retainer&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function angel_end_tokens(lines,options,names_tbl)&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[GO_TO_START]&amp;quot;&lt;br /&gt;
    local hf = random_object_parameters.source_hf&lt;br /&gt;
    local cand={}&lt;br /&gt;
    if hf.name.translated_epithet_compound then &lt;br /&gt;
        cand[#cand+1]={&lt;br /&gt;
            hf.name.translated_epithet_compound,&lt;br /&gt;
            hf.name.native_epithet_compound,&lt;br /&gt;
            false}&lt;br /&gt;
    end&lt;br /&gt;
    if hf.name.translated_epithet_the then&lt;br /&gt;
        cand[#cand+1]={&lt;br /&gt;
            hf.name.translated_epithet_the,&lt;br /&gt;
            hf.name.native_epithet_the,&lt;br /&gt;
            false}&lt;br /&gt;
    end&lt;br /&gt;
    if hf.name.translated_epithet_the_adj1 then&lt;br /&gt;
        cand[#cand+1]={&lt;br /&gt;
            hf.name.translated_epithet_the_adj1,&lt;br /&gt;
            hf.name.native_epithet_the_adj1,&lt;br /&gt;
            false}&lt;br /&gt;
    end&lt;br /&gt;
    if string.len(hf.name.firstname) then&lt;br /&gt;
        cand[#cand+1]={hf.name.firstname,hf.name.firstname,true}&lt;br /&gt;
    end&lt;br /&gt;
    local god_name = pick_random(cand)&lt;br /&gt;
    local add_name,proper_name=&amp;quot;&amp;quot;,false&lt;br /&gt;
    if god_name then&lt;br /&gt;
        add_name=god_name[trandom(2)+1]&lt;br /&gt;
        proper_name=god_name[3]&lt;br /&gt;
    end&lt;br /&gt;
    local using_god_name=false&lt;br /&gt;
    local name_flags={}&lt;br /&gt;
    local have_adjective=false&lt;br /&gt;
    cand={}&lt;br /&gt;
    for k,v in pairs(options.spheres) do&lt;br /&gt;
        if v then cand[#cand+1]=k end&lt;br /&gt;
    end&lt;br /&gt;
    if #cand&amp;gt;0 and (string.len(add_name)==0 or one_in(2)) then&lt;br /&gt;
        proper_name=false&lt;br /&gt;
        if one_in(2) then&lt;br /&gt;
            have_adjective=true&lt;br /&gt;
            add_name=get_random_sphere_adjective(pick_random(cand))&lt;br /&gt;
        else&lt;br /&gt;
            local ret=get_random_sphere_noun(pick_random(cand))&lt;br /&gt;
            name_flags=ret.flags&lt;br /&gt;
            add_name=ret.str&lt;br /&gt;
        end&lt;br /&gt;
    else using_god_name=true&lt;br /&gt;
    end&lt;br /&gt;
    local name,names,name_adj=table.unpack(pick_random(names_tbl))&lt;br /&gt;
    local ntype&lt;br /&gt;
    if using_god_name and proper_name then ntype=trandom(2)+1&lt;br /&gt;
    elseif using_god_name then ntype=2&lt;br /&gt;
    elseif have_adjective or #name_flags==0 then ntype=0&lt;br /&gt;
    else &lt;br /&gt;
        local cand={}&lt;br /&gt;
        if name_flags.PRE then cand[#cand+1]=0 end&lt;br /&gt;
        if name_flags.PREPOS then cand[#cand+1]=1 end&lt;br /&gt;
        if name_flags.OF then cand[#cand+1]=2 end&lt;br /&gt;
        ntype=pick_random(cand) or 0&lt;br /&gt;
    end&lt;br /&gt;
    local ntypes={&lt;br /&gt;
        function()&lt;br /&gt;
            return add_name..&amp;quot; &amp;quot;..name..&amp;quot;:&amp;quot;..add_name..&amp;quot; &amp;quot;..names..&amp;quot;:&amp;quot;..add_name..&amp;quot; &amp;quot;..name_adj&lt;br /&gt;
        end,&lt;br /&gt;
        function()&lt;br /&gt;
            return add_name..&amp;quot;'s &amp;quot;..name..&amp;quot;:&amp;quot;..add_name..&amp;quot;'s &amp;quot;..names..&amp;quot;:&amp;quot;..add_name..&amp;quot;'s &amp;quot;..name_adj&lt;br /&gt;
        end,&lt;br /&gt;
        function()&lt;br /&gt;
            return name..&amp;quot; of &amp;quot;..add_name..&amp;quot;:&amp;quot;..names..&amp;quot; of &amp;quot;..add_name..&amp;quot;:&amp;quot;..name_adj&lt;br /&gt;
        end,&lt;br /&gt;
    }&lt;br /&gt;
    local str=ntypes[ntype+1]()&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NAME:&amp;quot;..str..&amp;quot;]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[CASTE_NAME:&amp;quot;..str..&amp;quot;]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
creatures.angel.humanoid_warrior.default=function(tok)&lt;br /&gt;
    local lines={}&lt;br /&gt;
    local options={&lt;br /&gt;
        can_learn=true,&lt;br /&gt;
        do_sphere_rcm=true,&lt;br /&gt;
        pick_sphere_rcm=true,&lt;br /&gt;
        force_ichor=true,&lt;br /&gt;
        sickness_name=&amp;quot;divine sickness&amp;quot;,&lt;br /&gt;
        forced_color={&lt;br /&gt;
            f=3,&lt;br /&gt;
            b=0,&lt;br /&gt;
            br=1&lt;br /&gt;
        },&lt;br /&gt;
        token=tok,&lt;br /&gt;
    }&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[DIFFICULTY:6]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[CAN_LEARN]&amp;quot;&lt;br /&gt;
    if one_in(2) then lines[#lines+1]=&amp;quot;[CAN_SPEAK]&amp;quot; end&lt;br /&gt;
    add_regular_tokens(lines,options)&lt;br /&gt;
    options.spheres=options.spheres or {}&lt;br /&gt;
    local hf=random_object_parameters.source_hf&lt;br /&gt;
    if hf then&lt;br /&gt;
        if hf.profile and hf.profile.mpp then&lt;br /&gt;
            map_merge(options.spheres,hf.profile.mpp.sphere)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    local skill_amount = (options.spheres.WAR or options.spheres.VALOR or options.spheres.FORTRESSES) and &amp;quot;10&amp;quot; or &amp;quot;6&amp;quot;&lt;br /&gt;
    for k,v in ipairs({&lt;br /&gt;
    &amp;quot;WRESTLING&amp;quot;,&amp;quot;BITE&amp;quot;,&amp;quot;GRASP_STRIKE&amp;quot;,&amp;quot;STANCE_STRIKE&amp;quot;,&lt;br /&gt;
    &amp;quot;MELEE_COMBAT&amp;quot;,&amp;quot;RANGED_COMBAT&amp;quot;,&amp;quot;DODGING&amp;quot;,&amp;quot;SITUATIONAL_AWARENESS&amp;quot;,&lt;br /&gt;
    &amp;quot;AXE&amp;quot;,&amp;quot;SWORD&amp;quot;,&amp;quot;DAGGER&amp;quot;,&amp;quot;PIKE&amp;quot;,&lt;br /&gt;
    &amp;quot;MACE&amp;quot;,&amp;quot;HAMMER&amp;quot;,&amp;quot;WHIP&amp;quot;,&amp;quot;SPEAR&amp;quot;,}) do&lt;br /&gt;
        lines[#lines+1]=&amp;quot;[NATURAL_SKILL:&amp;quot;..v..&amp;quot;:&amp;quot;..skill_amount..&amp;quot;]&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    populate_sphere_info(lines,options)&lt;br /&gt;
    local rcm&lt;br /&gt;
    if one_in(4) then&lt;br /&gt;
        options.humanoidable_only=true&lt;br /&gt;
        rcp=get_random_creature_profile(options)&lt;br /&gt;
    else&lt;br /&gt;
        rcp={&lt;br /&gt;
            type=&amp;quot;GENERAL_HUMANOID&amp;quot;,&lt;br /&gt;
            name_string=&amp;quot;humanoid&amp;quot;,&lt;br /&gt;
            tile='H',&lt;br /&gt;
            body_base=&amp;quot;HUMANOID&amp;quot;,&lt;br /&gt;
            min_size=1,&lt;br /&gt;
        }&lt;br /&gt;
        if options.sphere_rcm then&lt;br /&gt;
            rcp.c_class=&amp;quot;UNIFORM&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            --FOR SKIN/ORGANS AND NO HAIR/FEATHERS AT FIRST&lt;br /&gt;
            rcp.c_class=&amp;quot;AMPHIBIAN&amp;quot;&lt;br /&gt;
            rcp.cannot_have_shell=true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    add_body_size(lines,math.max(rcp.min_size,50000+trandom(4)*10000+trandom(11)*1000),options)&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[CREATURE_TILE:&amp;quot;..((options.body_size&amp;lt;=60000) and &amp;quot;132]&amp;quot; or &amp;quot;142]&amp;quot;) -- ä or Ä&lt;br /&gt;
    options.custom_desc_func=function(options)&lt;br /&gt;
        local add_tbl=sphere_flavor[pick_random_conditional_pairs(sphere_flavor,function(sphere,_,options) &lt;br /&gt;
            return options.spheres[sphere] &lt;br /&gt;
        end,options)]&lt;br /&gt;
        if not add_tbl then add_tbl={add=&amp;quot;it is a divine being&amp;quot;} end&lt;br /&gt;
        if add_tbl.odor then&lt;br /&gt;
            options.always_odor=true&lt;br /&gt;
            options.forced_odor_string=add_tbl.odor&lt;br /&gt;
            options.forced_odor_level=100&lt;br /&gt;
        end&lt;br /&gt;
        return add_tbl.add&lt;br /&gt;
    end&lt;br /&gt;
    options.end_phrase=angel_description(lines,options)&lt;br /&gt;
    build_procgen_creature(rcp,lines,options)&lt;br /&gt;
    angel_end_tokens(lines,options,angel_names_humanoid_warrior)&lt;br /&gt;
    return {raws=lines,weight=1}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
creatures.angel.humanoid_generic.default=function(tok)&lt;br /&gt;
    local lines={}&lt;br /&gt;
    local options={&lt;br /&gt;
        do_sphere_rcm=true,&lt;br /&gt;
        pick_sphere_rcm=true,&lt;br /&gt;
        force_ichor=true,&lt;br /&gt;
        sickness_name=&amp;quot;divine sickness&amp;quot;,&lt;br /&gt;
        forced_color={&lt;br /&gt;
            f=6,&lt;br /&gt;
            b=0,&lt;br /&gt;
            br=0&lt;br /&gt;
        },&lt;br /&gt;
        token=tok,&lt;br /&gt;
    }&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[LARGE_PREDATOR]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[DIFFICULTY:2]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:WRESTLING:4]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:BITE:4]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:GRASP_STRIKE:4]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:STANCE_STRIKE:4]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:MELEE_COMBAT:4]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:RANGED_COMBAT:4]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:DODGING:4]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:SITUATIONAL_AWARENESS:4]&amp;quot;&lt;br /&gt;
    add_regular_tokens(lines,options)&lt;br /&gt;
    options.spheres=options.spheres or {}&lt;br /&gt;
    local hf=random_object_parameters.source_hf&lt;br /&gt;
    if hf then&lt;br /&gt;
        if hf.profile and hf.profile.mpp then&lt;br /&gt;
            map_merge(options.spheres,hf.profile.mpp.sphere)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    populate_sphere_info(lines,options)&lt;br /&gt;
    local rcm&lt;br /&gt;
    if one_in(4) then&lt;br /&gt;
        options.humanoidable_only=true&lt;br /&gt;
        rcp=get_random_creature_profile(options)&lt;br /&gt;
    else&lt;br /&gt;
        rcp={&lt;br /&gt;
            type=&amp;quot;GENERAL_HUMANOID&amp;quot;,&lt;br /&gt;
            name_string=&amp;quot;humanoid&amp;quot;,&lt;br /&gt;
            tile='H',&lt;br /&gt;
            body_base=&amp;quot;HUMANOID&amp;quot;,&lt;br /&gt;
            min_size=1,&lt;br /&gt;
        }&lt;br /&gt;
        if options.sphere_rcm then&lt;br /&gt;
            rcp.c_class=&amp;quot;UNIFORM&amp;quot;&lt;br /&gt;
        else&lt;br /&gt;
            --FOR SKIN/ORGANS AND NO HAIR/FEATHERS AT FIRST&lt;br /&gt;
            rcp.c_class=&amp;quot;AMPHIBIAN&amp;quot;&lt;br /&gt;
            rcp.cannot_have_shell=true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    add_body_size(lines,math.max(rcp.min_size,50000+trandom(4)*10000+trandom(11)*1000),options)&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[CREATURE_TILE:&amp;quot;..((options.body_size&amp;lt;=60000) and &amp;quot;132]&amp;quot; or &amp;quot;142]&amp;quot;) -- ä or Ä&lt;br /&gt;
    options.custom_desc_func=function(options)&lt;br /&gt;
        local add_tbl=sphere_flavor[pick_random_conditional_pairs(sphere_flavor,function(sphere,_,options) &lt;br /&gt;
            return options.spheres[sphere] &lt;br /&gt;
        end,options)]&lt;br /&gt;
        if not add_tbl then add_tbl={add=&amp;quot;it is a divine being&amp;quot;} end&lt;br /&gt;
        if add_tbl.odor then&lt;br /&gt;
            options.always_odor=true&lt;br /&gt;
            options.forced_odor_string=add_tbl.odor&lt;br /&gt;
            options.forced_odor_level=100&lt;br /&gt;
        end&lt;br /&gt;
        return add_tbl.add&lt;br /&gt;
    end&lt;br /&gt;
    options.end_phrase=angel_description(lines,options)&lt;br /&gt;
    build_procgen_creature(rcp,lines,options)&lt;br /&gt;
    angel_end_tokens(lines,options,angel_names_humanoid_generic)&lt;br /&gt;
    return {raws=lines,weight=1}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
creatures.angel.great_beast.default=function(tok)&lt;br /&gt;
    local lines={}&lt;br /&gt;
    local l=get_debug_logger()&lt;br /&gt;
    local options={&lt;br /&gt;
        can_learn=true,&lt;br /&gt;
        do_sphere_rcm=true,&lt;br /&gt;
        pick_sphere_rcm=true,&lt;br /&gt;
        force_ichor=true,&lt;br /&gt;
        beast_only=true,&lt;br /&gt;
        sickness_name=&amp;quot;divine sickness&amp;quot;,&lt;br /&gt;
        forced_color={&lt;br /&gt;
            f=4,&lt;br /&gt;
            b=0,&lt;br /&gt;
            br=1&lt;br /&gt;
        },&lt;br /&gt;
        token=tok,&lt;br /&gt;
    }&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[LARGE_PREDATOR]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[DIFFICULTY:10]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:WRESTLING:14]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:BITE:14]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:GRASP_STRIKE:14]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:STANCE_STRIKE:14]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:MELEE_COMBAT:14]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:RANGED_COMBAT:14]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:DODGING:14]&amp;quot;&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[NATURAL_SKILL:SITUATIONAL_AWARENESS:14]&amp;quot;&lt;br /&gt;
    add_regular_tokens(lines,options)&lt;br /&gt;
    options.spheres=options.spheres or {}&lt;br /&gt;
    local hf=random_object_parameters.source_hf&lt;br /&gt;
    if hf then&lt;br /&gt;
        if hf.profile and hf.profile.mpp then&lt;br /&gt;
            map_merge(options.spheres,hf.profile.mpp.sphere)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    local skill_amount = (options.spheres.WAR or options.spheres.VALOR or options.spheres.FORTRESSES) and &amp;quot;10&amp;quot; or &amp;quot;6&amp;quot;&lt;br /&gt;
    for k,v in ipairs({&lt;br /&gt;
    &amp;quot;WRESTLING&amp;quot;,&amp;quot;BITE&amp;quot;,&amp;quot;GRASP_STRIKE&amp;quot;,&amp;quot;STANCE_STRIKE&amp;quot;,&lt;br /&gt;
    &amp;quot;MELEE_COMBAT&amp;quot;,&amp;quot;RANGED_COMBAT&amp;quot;,&amp;quot;DODGING&amp;quot;,&amp;quot;SITUATIONAL_AWARENESS&amp;quot;,&lt;br /&gt;
    &amp;quot;AXE&amp;quot;,&amp;quot;SWORD&amp;quot;,&amp;quot;DAGGER&amp;quot;,&amp;quot;PIKE&amp;quot;,&lt;br /&gt;
    &amp;quot;MACE&amp;quot;,&amp;quot;HAMMER&amp;quot;,&amp;quot;WHIP&amp;quot;,&amp;quot;SPEAR&amp;quot;}) do&lt;br /&gt;
        lines[#lines+1]=&amp;quot;[NATURAL_SKILL:&amp;quot;..v..&amp;quot;:&amp;quot;..skill_amount..&amp;quot;]&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    populate_sphere_info(lines,options)&lt;br /&gt;
    local rcm&lt;br /&gt;
    rcp=get_random_creature_profile(options)&lt;br /&gt;
    add_body_size(lines,math.max(rcp.min_size,10000000),options)&lt;br /&gt;
    lines[#lines+1]=&amp;quot;[CREATURE_TILE:&amp;quot;..((options.body_size&amp;lt;=60000) and &amp;quot;132]&amp;quot; or &amp;quot;142]&amp;quot;) -- ä or Ä&lt;br /&gt;
    options.custom_desc_func=function(options)&lt;br /&gt;
        local add_tbl=sphere_flavor[pick_random_conditional_pairs(sphere_flavor,function(sphere,_,options) &lt;br /&gt;
            return options.spheres[sphere] &lt;br /&gt;
        end,options)]&lt;br /&gt;
        if not add_tbl then add_tbl={add=&amp;quot;it is a divine being&amp;quot;} end&lt;br /&gt;
        if add_tbl.odor then&lt;br /&gt;
            options.always_odor=true&lt;br /&gt;
            options.forced_odor_string=add_tbl.odor&lt;br /&gt;
            options.forced_odor_level=100&lt;br /&gt;
        end&lt;br /&gt;
        return add_tbl.add&lt;br /&gt;
    end&lt;br /&gt;
    options.end_phrase=angel_description(lines,options)&lt;br /&gt;
    build_procgen_creature(rcp,lines,options)&lt;br /&gt;
    angel_end_tokens(lines,options,angel_names_great_beast)&lt;br /&gt;
    return {raws=lines,weight=1}&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Category|Lua script pages}}{{Category|Creature raw pages}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ziusudra</name></author>
	</entry>
</feed>