Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Why does this creature cause world-gen crashes? (Solved?)  (Read 1466 times)

D_E

  • Bay Watcher
    • View Profile
Why does this creature cause world-gen crashes? (Solved?)
« on: May 11, 2017, 01:08:42 pm »

As I may have mentioned once or twice, the Zelda mod has suffered from mysterious, hard to track down world gen crashes for years now.

It now appears that some still-unknown number of different creatures are behind the crashes; however, I have located one creature who's presence in the raws is sufficient to crash an otherwise vanilla world-gen.

Does anyone know why it is that this creature causes world gen crashes?

Creature:
Code: [Select]
[CREATURE:JELLY]
[DESCRIPTION:An aggressive gelatinous blob that shoots rocks while slowly move away from creatures.]
PRONE_TO_RAGE:50 Instead shoots rocks at pretty much anything.
[NAME:jelly:jellies:jelly]
[CASTE_NAME:jelly:jellies:jelly]
[CREATURE_TILE:'j'][COLOR:2:0:1]
[PETVALUE:100]
[FREQUENCY:10]
[ALL_ACTIVE] UBIQUITOUS
[CARNIVORE][NATURAL]
[LARGE_PREDATOR]
[CANNOT_UNDEAD]
[LARGE_ROAMING]
[EXTRAVISION][NOBREATHE][NOSTUN][NONAUSEA][NOEMOTION]
[NOBONES]
[BIOME:ANY_FOREST]
[POPULATION_NUMBER:20:50]
[CLUSTER_NUMBER:2:5]
[PREFSTRING:green jelly]
[BODY:BASIC_1PARTBODY_THOUGHT]
[APPLY_CREATURE_VARIATION:UNHOLY_MATERIAL_VULN]
[CAN_DO_INTERACTION:JELLY_MATERIAL_EMISSION]
[CDI:ADV_NAME:Shoot rock]
[CDI:VERB:spit a rock:spits a rock:NA]
CDI:USAGE_HINT:AT WILL
[CDI:MATERIAL:INORGANIC:SANDSTONE:SOLID_GLOB]
[CDI:TARGET:C:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:C:15]
[CDI:MAX_TARGET_NUMBER:C:1]
[CDI:WAIT_PERIOD:30][CDI:FREE_ACTION]
[CREATURE_CLASS:JELLY_CLASS]
[USE_MATERIAL_TEMPLATE:GOOSKIN:GOOSKIN_TEMPLATE]
[USE_TISSUE_TEMPLATE:GOOSKIN:GOOSKIN_TEMPLATE]
[USE_MATERIAL_TEMPLATE:FLUID:CREATURE_EXTRACT_TEMPLATE]
[STATE_NAME:ALL_SOLID:frozen jelly fluid]
[STATE_NAME_ADJ:ALL_SOLID:frozen jelly fluid]
[STATE_NAME:LIQUID:jelly fluid]
[STATE_NAME_ADJ:LIQUID:jelly fluid]
[STATE_NAME:GAS:boiling jelly fluid]
[STATE_NAME_ADJ:GAS:boiling jelly fluid]
[STATE_COLOR:ALL:GREEN]
[PREFIX:NONE]
[TISSUE:FLUID]
[TISSUE_NAME:fluid:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:FLUID]
[TISSUE_MAT_STATE:LIQUID]
[MUSCULAR]
[FUNCTIONAL]
[STRUCTURAL]
[RELATIVE_THICKNESS:100]
[CONNECTS]
[TISSUE_LEAKS]
[TISSUE_SHAPE:LAYER]
[TISSUE_LAYER:BY_CATEGORY:ALL:GOOSKIN]
[TISSUE_LAYER_UNDER:BY_CATEGORY:ALL:FLUID]
[SECRETION:LOCAL_CREATURE_MAT:FLUID:LIQUID:BY_CATEGORY:ALL:GOOSKIN]
[APPLY_CREATURE_VARIATION:STANDARD_WALK_CRAWL_GAITS:6561:6115:5683:1755:7456:8567] 5 kph
[APPLY_CREATURE_VARIATION:STANDARD_CRAWLING_GAITS:6561:6115:5683:1755:7456:8567] 5 kph
[BODY_SIZE:0:0:1000]
[ALL_ACTIVE] UBIQUITOUS
[NO_SLEEP]
[NO_DIZZINESS]
[NO_FEVERS]
[CASTE:FEMALE]
[CASTE_COLOR:2:0:1]
[SET_TL_GROUP:BY_CATEGORY:ALL:GOOSKIN]
[TL_COLOR_MODIFIER:GREEN:1]
[TLCM_NOUN:skin:SINGULAR]
[CASTE:MALE]
[CASTE_COLOR:2:0:1]
[SET_TL_GROUP:BY_CATEGORY:ALL:GOOSKIN]
[TL_COLOR_MODIFIER:GREEN:1]
[TLCM_NOUN:skin:SINGULAR]


Tissue:
Code: [Select]
[TISSUE_TEMPLATE:GOOSKIN_TEMPLATE]
[TISSUE_NAME:skin:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:GOOSKIN]
[TISSUE_MAT_STATE:SOLID]
[STRUCTURAL][FUNCTIONAL]
[RELATIVE_THICKNESS:1]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[VASCULAR:10]


Material:
Code: [Select]
[MATERIAL_TEMPLATE:GOOSKIN_TEMPLATE]
[STATE_COLOR:ALL_SOLID:GRAY]
[STATE_NAME:ALL_SOLID:skin]
[STATE_ADJ:ALL_SOLID:skin]
[STATE_COLOR:LIQUID:GRAY]
[STATE_NAME:LIQUID:n/a]
[STATE_ADJ:LIQUID:n/a]
[STATE_COLOR:GAS:GRAY]
[STATE_NAME:GAS:n/a]
[STATE_ADJ:GAS:n/a]
[DISPLAY_COLOR:7:0:0]
[MATERIAL_VALUE:1]
[SPEC_HEAT:4181]
[IGNITE_POINT:10508]
[MELTING_POINT:NONE]
[BOILING_POINT:NONE]
[HEATDAM_POINT:10250]
[COLDDAM_POINT:9900]
[MAT_FIXED_TEMP:NONE]
[SOLID_DENSITY:1000]
[LIQUID_DENSITY:NONE]
[MOLAR_MASS:NONE]
[IMPACT_YIELD:10000]
[IMPACT_FRACTURE:10000]
[IMPACT_STRAIN_AT_YIELD:50000]
[COMPRESSIVE_YIELD:10000]
[COMPRESSIVE_FRACTURE:10000]
[COMPRESSIVE_STRAIN_AT_YIELD:50000]
[TENSILE_YIELD:10000]
[TENSILE_FRACTURE:10000]
[TENSILE_STRAIN_AT_YIELD:50000]
[TORSION_YIELD:10000]
[TORSION_FRACTURE:10000]
[TORSION_STRAIN_AT_YIELD:50000]
[SHEAR_YIELD:20000] used data for human skin
[SHEAR_FRACTURE:20000]
[SHEAR_STRAIN_AT_YIELD:50000]
[BENDING_YIELD:10000]
[BENDING_FRACTURE:10000]
[BENDING_STRAIN_AT_YIELD:50000]
[MAX_EDGE:0]
[ABSORPTION:100]
This lets the game know to use this item to determine the exact material type for the leather product in the tanning reaction.
This lets the game know that an animal was likely killed in the production of this item.
[IMPLIES_ANIMAL_KILL]
[ROTS]

Interaction:
Code: [Select]
[INTERACTION:JELLY_MATERIAL_EMISSION]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:MATERIAL]
[IT_MATERIAL:CONTEXT_MATERIAL]
[I_TARGET:B:LOCATION]
[IT_LOCATION:CONTEXT_LOCATION] <-- this is always the emitter for now
[I_TARGET:C:CREATURE]
[IT_LOCATION:CONTEXT_CREATURE]
[IT_IMMUNE_CLASS:JELLY_CLASS]
[IT_MANUAL_INPUT:target]
[I_EFFECT:MATERIAL_EMISSION]
[IE_TARGET:A]
[IE_TARGET:B]
[IE_TARGET:C]
[IE_IMMEDIATE]

« Last Edit: May 15, 2017, 02:38:28 pm by D_E »
Logged
Mods I've done:
Zelda mod-mod, Beta in the Wild DF 47.04
Illithid Empire mod DF 31.25 (update canceled)
Spotter's Guide to Illithids (Genesis mod-mod) genesis 3.19a4 (update canceled)

newtonsolo313

  • Bay Watcher
    • View Profile
Re: Why does this creature cause world-gen crashes?
« Reply #1 on: May 12, 2017, 08:47:27 am »

As I may have mentioned once or twice, the Zelda mod has suffered from mysterious, hard to track down world gen crashes for years now.

It now appears that some still-unknown number of different creatures are behind the crashes; however, I have located one creature who's presence in the raws is sufficient to crash an otherwise vanilla world-gen.

Does anyone know why it is that this creature causes world gen crashes?

Creature:
Code: [Select]
[CREATURE:JELLY]
[DESCRIPTION:An aggressive gelatinous blob that shoots rocks while slowly move away from creatures.]
PRONE_TO_RAGE:50 Instead shoots rocks at pretty much anything.
[NAME:jelly:jellies:jelly]
[CASTE_NAME:jelly:jellies:jelly]
[CREATURE_TILE:'j'][COLOR:2:0:1]
[PETVALUE:100]
[FREQUENCY:10]
[ALL_ACTIVE] UBIQUITOUS
[CARNIVORE][NATURAL]
[LARGE_PREDATOR]
[CANNOT_UNDEAD]
[LARGE_ROAMING]
[EXTRAVISION][NOBREATHE][NOSTUN][NONAUSEA][NOEMOTION]
[NOBONES]
[BIOME:ANY_FOREST]
[POPULATION_NUMBER:20:50]
[CLUSTER_NUMBER:2:5]
[PREFSTRING:green jelly]
[BODY:BASIC_1PARTBODY_THOUGHT]
[APPLY_CREATURE_VARIATION:UNHOLY_MATERIAL_VULN]
[CAN_DO_INTERACTION:JELLY_MATERIAL_EMISSION]
[CDI:ADV_NAME:Shoot rock]
[CDI:VERB:spit a rock:spits a rock:NA]
CDI:USAGE_HINT:AT WILL
[CDI:MATERIAL:INORGANIC:SANDSTONE:SOLID_GLOB]
[CDI:TARGET:C:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:C:15]
[CDI:MAX_TARGET_NUMBER:C:1]
[CDI:WAIT_PERIOD:30][CDI:FREE_ACTION]
[CREATURE_CLASS:JELLY_CLASS]
[USE_MATERIAL_TEMPLATE:GOOSKIN:GOOSKIN_TEMPLATE]
[USE_TISSUE_TEMPLATE:GOOSKIN:GOOSKIN_TEMPLATE]
[USE_MATERIAL_TEMPLATE:FLUID:CREATURE_EXTRACT_TEMPLATE]
[STATE_NAME:ALL_SOLID:frozen jelly fluid]
[STATE_NAME_ADJ:ALL_SOLID:frozen jelly fluid]
[STATE_NAME:LIQUID:jelly fluid]
[STATE_NAME_ADJ:LIQUID:jelly fluid]
[STATE_NAME:GAS:boiling jelly fluid]
[STATE_NAME_ADJ:GAS:boiling jelly fluid]
[STATE_COLOR:ALL:GREEN]
[PREFIX:NONE]
[TISSUE:FLUID]
[TISSUE_NAME:fluid:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:FLUID]
[TISSUE_MAT_STATE:LIQUID]
[MUSCULAR]
[FUNCTIONAL]
[STRUCTURAL]
[RELATIVE_THICKNESS:100]
[CONNECTS]
[TISSUE_LEAKS]
[TISSUE_SHAPE:LAYER]
[TISSUE_LAYER:BY_CATEGORY:ALL:GOOSKIN]
[TISSUE_LAYER_UNDER:BY_CATEGORY:ALL:FLUID]
[SECRETION:LOCAL_CREATURE_MAT:FLUID:LIQUID:BY_CATEGORY:ALL:GOOSKIN]
[APPLY_CREATURE_VARIATION:STANDARD_WALK_CRAWL_GAITS:6561:6115:5683:1755:7456:8567] 5 kph
[APPLY_CREATURE_VARIATION:STANDARD_CRAWLING_GAITS:6561:6115:5683:1755:7456:8567] 5 kph
[BODY_SIZE:0:0:1000]
[ALL_ACTIVE] UBIQUITOUS
[NO_SLEEP]
[NO_DIZZINESS]
[NO_FEVERS]
[CASTE:FEMALE]
[CASTE_COLOR:2:0:1]
[SET_TL_GROUP:BY_CATEGORY:ALL:GOOSKIN]
[TL_COLOR_MODIFIER:GREEN:1]
[TLCM_NOUN:skin:SINGULAR]
[CASTE:MALE]
[CASTE_COLOR:2:0:1]
[SET_TL_GROUP:BY_CATEGORY:ALL:GOOSKIN]
[TL_COLOR_MODIFIER:GREEN:1]
[TLCM_NOUN:skin:SINGULAR]


Tissue:
Code: [Select]
[TISSUE_TEMPLATE:GOOSKIN_TEMPLATE]
[TISSUE_NAME:skin:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:GOOSKIN]
[TISSUE_MAT_STATE:SOLID]
[STRUCTURAL][FUNCTIONAL]
[RELATIVE_THICKNESS:1]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[VASCULAR:10]


Material:
Code: [Select]
[MATERIAL_TEMPLATE:GOOSKIN_TEMPLATE]
[STATE_COLOR:ALL_SOLID:GRAY]
[STATE_NAME:ALL_SOLID:skin]
[STATE_ADJ:ALL_SOLID:skin]
[STATE_COLOR:LIQUID:GRAY]
[STATE_NAME:LIQUID:n/a]
[STATE_ADJ:LIQUID:n/a]
[STATE_COLOR:GAS:GRAY]
[STATE_NAME:GAS:n/a]
[STATE_ADJ:GAS:n/a]
[DISPLAY_COLOR:7:0:0]
[MATERIAL_VALUE:1]
[SPEC_HEAT:4181]
[IGNITE_POINT:10508]
[MELTING_POINT:NONE]
[BOILING_POINT:NONE]
[HEATDAM_POINT:10250]
[COLDDAM_POINT:9900]
[MAT_FIXED_TEMP:NONE]
[SOLID_DENSITY:1000]
[LIQUID_DENSITY:NONE]
[MOLAR_MASS:NONE]
[IMPACT_YIELD:10000]
[IMPACT_FRACTURE:10000]
[IMPACT_STRAIN_AT_YIELD:50000]
[COMPRESSIVE_YIELD:10000]
[COMPRESSIVE_FRACTURE:10000]
[COMPRESSIVE_STRAIN_AT_YIELD:50000]
[TENSILE_YIELD:10000]
[TENSILE_FRACTURE:10000]
[TENSILE_STRAIN_AT_YIELD:50000]
[TORSION_YIELD:10000]
[TORSION_FRACTURE:10000]
[TORSION_STRAIN_AT_YIELD:50000]
[SHEAR_YIELD:20000] used data for human skin
[SHEAR_FRACTURE:20000]
[SHEAR_STRAIN_AT_YIELD:50000]
[BENDING_YIELD:10000]
[BENDING_FRACTURE:10000]
[BENDING_STRAIN_AT_YIELD:50000]
[MAX_EDGE:0]
[ABSORPTION:100]
This lets the game know to use this item to determine the exact material type for the leather product in the tanning reaction.
This lets the game know that an animal was likely killed in the production of this item.
[IMPLIES_ANIMAL_KILL]
[ROTS]

Interaction:
Code: [Select]
[INTERACTION:JELLY_MATERIAL_EMISSION]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:MATERIAL]
[IT_MATERIAL:CONTEXT_MATERIAL]
[I_TARGET:B:LOCATION]
[IT_LOCATION:CONTEXT_LOCATION] <-- this is always the emitter for now
[I_TARGET:C:CREATURE]
[IT_LOCATION:CONTEXT_CREATURE]
[IT_IMMUNE_CLASS:JELLY_CLASS]
[IT_MANUAL_INPUT:target]
[I_EFFECT:MATERIAL_EMISSION]
[IE_TARGET:A]
[IE_TARGET:B]
[IE_TARGET:C]
[IE_IMMEDIATE]

N/A should be NONE
Logged

D_E

  • Bay Watcher
    • View Profile
Re: Why does this creature cause world-gen crashes?
« Reply #2 on: May 13, 2017, 07:35:44 pm »

Fair point.  The error log doesn't complain, though.  Are you sure that NONE is actually a special token?

At any rate, that is not the cause of the crash.  The gooskin material can be replaced with regular skin and the crash keeps happening.

It's also not the fluid tissue, nor the fact that the gooskin tissue contains "TISSUE_MAT_STATE:SOLID", which I thought was rather odd.
Logged
Mods I've done:
Zelda mod-mod, Beta in the Wild DF 47.04
Illithid Empire mod DF 31.25 (update canceled)
Spotter's Guide to Illithids (Genesis mod-mod) genesis 3.19a4 (update canceled)

scamtank

  • Bay Watcher
    • View Profile
Re: Why does this creature cause world-gen crashes?
« Reply #3 on: May 13, 2017, 09:24:44 pm »

What's that vulnerability creature variation about?

Does it keep crashing if you take out its interaction system?
Logged

D_E

  • Bay Watcher
    • View Profile
Re: Why does this creature cause world-gen crashes?
« Reply #4 on: May 13, 2017, 11:03:07 pm »

What's that vulnerability creature variation about?

Does it keep crashing if you take out its interaction system?

In the actual mod, the creature variation ups the effective impact velocity of Master Sword-type materials, making monsters take more damage from the special swords.  In the test case it is nonfunctional, due to me not transferring over the required variation/materials.

Just to be sure, I pulled it for a test: it is not the source of the crash, either.

The interaction is also not the source of the crash.

...It's also not the lack of MALE and FEMALE tokens.
Logged
Mods I've done:
Zelda mod-mod, Beta in the Wild DF 47.04
Illithid Empire mod DF 31.25 (update canceled)
Spotter's Guide to Illithids (Genesis mod-mod) genesis 3.19a4 (update canceled)

YetAnotherLurker

  • Bay Watcher
    • View Profile
Re: Why does this creature cause world-gen crashes?
« Reply #5 on: May 15, 2017, 04:55:16 am »

Lack of brackets around the PRONE_TO_RAGE:50, UBIQUITOUS, and CDI:USAGE_HINT tokens, perhaps? Also, I'm seeing [ALL_ACTIVE] twice. That might be causing problems.
Logged

Quietust

  • Bay Watcher
  • Does not suffer fools gladly
    • View Profile
    • QMT Productions
Re: Why does this creature cause world-gen crashes?
« Reply #6 on: May 15, 2017, 06:56:30 am »

Lack of brackets around the PRONE_TO_RAGE:50, UBIQUITOUS, and CDI:USAGE_HINT tokens, perhaps? Also, I'm seeing [ALL_ACTIVE] twice. That might be causing problems.
Lack of brackets will simply cause the token to be omitted, which shouldn't cause problems for most of those. Lack of CDI:USAGE_HINT might be a problem, though I wouldn't expect a crash, just an interaction that the creature will never attempt to use.
Logged
P.S. If you don't get this note, let me know and I'll write you another.
It's amazing how dwarves can make a stack of bones completely waterproof and magmaproof.
It's amazing how they can make an entire floodgate out of the bones of 2 cats.

D_E

  • Bay Watcher
    • View Profile
Re: Why does this creature cause world-gen crashes? (Solved?)
« Reply #7 on: May 15, 2017, 02:37:49 pm »

Lack of brackets around the PRONE_TO_RAGE:50, UBIQUITOUS, and CDI:USAGE_HINT tokens, perhaps? Also, I'm seeing [ALL_ACTIVE] twice. That might be causing problems.
Lack of brackets will simply cause the token to be omitted, which shouldn't cause problems for most of those. Lack of CDI:USAGE_HINT might be a problem, though I wouldn't expect a crash, just an interaction that the creature will never attempt to use.

It's the reverse actually: an interaction without a usage hint will be used whenever there is a valid target (at least, whenever there is a valid target and the creature's AI is checking for usable interactions.  In the most recent version, this is only when the creature has its combat AI turned on).

Also, I'm seeing [ALL_ACTIVE] twice. That might be causing problems.

Doubling-up tokens doesn't do anything bad.  Even adding contradictory tokens just results in the most recent one taking precedence.

__________________________________________________________________________________________________

Bafflingly, it seems to be [BODY:BASIC_1PARTBODY_THOUGHT].

Adding any other external bodypart to the jelly's body fixes the crash, including adding a tail, a head, or replacing the jelly's body plan with a humanoid body.  Adding internal bodyparts doesn't fix the crash.

The crash appears to have something to do with the interaction of creatures and civilizations.  Adding [UBIQUITOUS] to the creature makes the crash more frequent, and worlds where all civs are wiped out or pushed to the brink don't crash.

This may explain why this bug is not an issue in vanilla: as far as I can tell, both 1partbody-only creatures in vanilla (floating guts and flesh balls) only exist bellow the first cavern layer, which as I understand it means they don't take part in world gen.

For the purposes of the mod, I have changed the body as follows:     [BODY:BASIC_1PARTBODY_THOUGHT:BASIC_HEAD:2EYES], where BASIC_HEAD just attaches itself to any upperbody.  Making this change to all 1partbody creatures in the Zelda mod appears to fix the worldgen crashes.

Logged
Mods I've done:
Zelda mod-mod, Beta in the Wild DF 47.04
Illithid Empire mod DF 31.25 (update canceled)
Spotter's Guide to Illithids (Genesis mod-mod) genesis 3.19a4 (update canceled)