For some reason, the tissue_template_default isn't generating all of the tissue templates. In fact, I am only getting 10 templates. Is there something more I need to do for the template to generate fully?
@Outlawshadow27: You are right!, what is generated is
tissue_template_default
# Automatically generated, do not edit!
# Source: addons:dir:Bases/Base/tissue_template_default.txt
[OBJECT:TISSUE_TEMPLATE]
[TISSUE_TEMPLATE:CHEEK_WHISKERS_TEMPLATE]
[TISSUE_NAME:cheek whisker:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:CHIN_WHISKERS_TEMPLATE]
[TISSUE_NAME:chin whisker:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:MOUSTACHE_TEMPLATE]
[TISSUE_NAME:moustache:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:SIDEBURNS_TEMPLATE]
[TISSUE_NAME:sideburns:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:EYEBROW_TEMPLATE]
[TISSUE_NAME:eyebrow:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:EYELASH_TEMPLATE]
[TISSUE_NAME:eyelash:eyelashes]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:CLAW_TEMPLATE]
[TISSUE_NAME:claw:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:CLAW]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:TALON_TEMPLATE]
[TISSUE_NAME:talon:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:TALON]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:IVORY_TEMPLATE]
[TISSUE_NAME:ivory:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:IVORY]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:SPINE_TEMPLATE]
[TISSUE_NAME:spine:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SPINE]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
instead of
tissue_template_default
[OBJECT:TISSUE_TEMPLATE]
[TISSUE_TEMPLATE:SKIN_TEMPLATE]
[TISSUE_NAME:skin:NP]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SKIN]
[RELATIVE_THICKNESS:1]
Lower is faster.
[HEALING_RATE:100]
[VASCULAR:1]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:FAT_TEMPLATE]
[TISSUE_NAME:fat:NP]
[THICKENS_ON_ENERGY_STORAGE]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:FAT]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[INSULATION:100]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:MUSCLE_TEMPLATE]
[TISSUE_NAME:muscle:muscles]
[THICKENS_ON_STRENGTH]
[ARTERIES]
[SCARS]
[MUSCULAR]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:MUSCLE]
[RELATIVE_THICKNESS:3]
[HEALING_RATE:100]
[VASCULAR:5]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:BONE_TEMPLATE]
[TISSUE_NAME:bone:NP] Whether it has a plural depends on exact part
[STRUCTURAL]
[CONNECTIVE_TISSUE_ANCHOR]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:BONE]
[RELATIVE_THICKNESS:2]
[HEALING_RATE:1000]
[VASCULAR:3]
[PAIN_RECEPTORS:50]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[SETTABLE]
[SPLINTABLE]
[TISSUE_TEMPLATE:SHELL_TEMPLATE]
[TISSUE_NAME:shell:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SHELL]
[RELATIVE_THICKNESS:2]
[HEALING_RATE:1000]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[SETTABLE]
[SPLINTABLE]
[TISSUE_TEMPLATE:HORN_TEMPLATE]
[TISSUE_NAME:horn:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HORN]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:HOOF_TEMPLATE]
[TISSUE_NAME:hoof:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HOOF]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:CARTILAGE_TEMPLATE]
[TISSUE_NAME:cartilage:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:CARTILAGE]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:HAIR_TEMPLATE]
[TISSUE_NAME:hair:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:1]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[INSULATION:100]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:CHEEK_WHISKERS_TEMPLATE]
[TISSUE_NAME:cheek whisker:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:CHIN_WHISKERS_TEMPLATE]
[TISSUE_NAME:chin whisker:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:MOUSTACHE_TEMPLATE]
[TISSUE_NAME:moustache:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:SIDEBURNS_TEMPLATE]
[TISSUE_NAME:sideburns:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:EYEBROW_TEMPLATE]
[TISSUE_NAME:eyebrow:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:EYELASH_TEMPLATE]
[TISSUE_NAME:eyelash:eyelashes]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
[TISSUE_TEMPLATE:FEATHER_TEMPLATE]
[TISSUE_NAME:feather:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:FEATHER]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[INSULATION:100]
[TISSUE_SHAPE:FEATHERS]
[TISSUE_TEMPLATE:SCALE_TEMPLATE]
[TISSUE_NAME:scale:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SCALE]
[SCARS]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:1]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:SCALES]
[TISSUE_TEMPLATE:NAIL_TEMPLATE]
[TISSUE_NAME:nail:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:NAIL]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:CLAW_TEMPLATE]
[TISSUE_NAME:claw:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:CLAW]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:TALON_TEMPLATE]
[TISSUE_NAME:talon:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:TALON]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:TOOTH_TEMPLATE]
[TISSUE_NAME:tooth:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:TOOTH]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:IVORY_TEMPLATE]
[TISSUE_NAME:ivory:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:IVORY]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:EYE_TEMPLATE]
[TISSUE_NAME:eye tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:EYE]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:NERVE_TEMPLATE]
[TISSUE_NAME:nervous tissue:NP]
[FUNCTIONAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:NERVE]
[RELATIVE_THICKNESS:1]
[VASCULAR:3]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:BRAIN_TEMPLATE]
[TISSUE_NAME:brain tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:BRAIN]
[RELATIVE_THICKNESS:1]
[VASCULAR:3]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:LUNG_TEMPLATE]
[TISSUE_NAME:lung tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:LUNG]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:8]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:HEART_TEMPLATE]
[TISSUE_NAME:heart tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HEART]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:10]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:LIVER_TEMPLATE]
[TISSUE_NAME:liver tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:LIVER]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:8]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:GUT_TEMPLATE]
[TISSUE_NAME:gut:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:GUT]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:STOMACH_TEMPLATE]
[TISSUE_NAME:stomach tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:STOMACH]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:GIZZARD_TEMPLATE]
[TISSUE_NAME:gizzard tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:GIZZARD]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:PANCREAS_TEMPLATE]
[TISSUE_NAME:pancreatic tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:PANCREAS]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:SPLEEN_TEMPLATE]
[TISSUE_NAME:spleen tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SPLEEN]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:5]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:KIDNEY_TEMPLATE]
[TISSUE_NAME:kidney tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:KIDNEY]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:8]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:FLAME_TEMPLATE]
[TISSUE_NAME:flames:NP]
[MUSCULAR]
[FUNCTIONAL]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:FLAME]
[TISSUE_MAT_STATE:GAS]
[RELATIVE_THICKNESS:1]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:CHITIN_TEMPLATE]
[TISSUE_NAME:chitin:NP]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:CHITIN]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:1]
[PAIN_RECEPTORS:5]
[CONNECTS]
[CONNECTIVE_TISSUE_ANCHOR]
[STRUCTURAL]
[TISSUE_SHAPE:LAYER]
[SETTABLE]
[SPLINTABLE]
[TISSUE_TEMPLATE:SPINE_TEMPLATE]
[TISSUE_NAME:spine:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SPINE]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[TISSUE_TEMPLATE:SPONGE_TEMPLATE]
[TISSUE_NAME:sponge:NP]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SPONGE]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[INSULATION:100]
[TISSUE_SHAPE:LAYER]
but the addons\bases\base\tissue_template_default.txt is correct
[OBJECT:TISSUE_TEMPLATE]
{!SHARED_TISSUE_TEMPLATE;SKIN_TEMPLATE;
[TISSUE_NAME:skin:NP]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SKIN]
[RELATIVE_THICKNESS:1]
Lower is faster.
[HEALING_RATE:100]
[VASCULAR:1]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;FAT_TEMPLATE;
[TISSUE_NAME:fat:NP]
[THICKENS_ON_ENERGY_STORAGE]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:FAT]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[INSULATION:100]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;MUSCLE_TEMPLATE;
[TISSUE_NAME:muscle:muscles]
[THICKENS_ON_STRENGTH]
[ARTERIES]
[SCARS]
[MUSCULAR]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:MUSCLE]
[RELATIVE_THICKNESS:3]
[HEALING_RATE:100]
[VASCULAR:5]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;BONE_TEMPLATE;
[TISSUE_NAME:bone:NP] Whether it has a plural depends on exact part
[STRUCTURAL]
[CONNECTIVE_TISSUE_ANCHOR]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:BONE]
[RELATIVE_THICKNESS:2]
[HEALING_RATE:1000]
[VASCULAR:3]
[PAIN_RECEPTORS:50]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[SETTABLE]
[SPLINTABLE]
}
{!SHARED_TISSUE_TEMPLATE;SHELL_TEMPLATE;
[TISSUE_NAME:shell:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SHELL]
[RELATIVE_THICKNESS:2]
[HEALING_RATE:1000]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
[SETTABLE]
[SPLINTABLE]
}
{!SHARED_TISSUE_TEMPLATE;HORN_TEMPLATE;
[TISSUE_NAME:horn:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HORN]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;HOOF_TEMPLATE;
[TISSUE_NAME:hoof:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HOOF]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;CARTILAGE_TEMPLATE;
[TISSUE_NAME:cartilage:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:CARTILAGE]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;HAIR_TEMPLATE;
[TISSUE_NAME:hair:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:1]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[INSULATION:100]
[TISSUE_SHAPE:STRANDS]
}
{!SHARED_TISSUE_TEMPLATE;CHEEK_WHISKERS_TEMPLATE;
[TISSUE_NAME:cheek whisker:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
}
{!SHARED_TISSUE_TEMPLATE;CHIN_WHISKERS_TEMPLATE;
[TISSUE_NAME:chin whisker:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
}
{!SHARED_TISSUE_TEMPLATE;MOUSTACHE_TEMPLATE;
[TISSUE_NAME:moustache:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
}
{!SHARED_TISSUE_TEMPLATE;SIDEBURNS_TEMPLATE;
[TISSUE_NAME:sideburns:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
}
{!SHARED_TISSUE_TEMPLATE;EYEBROW_TEMPLATE;
[TISSUE_NAME:eyebrow:NP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
}
{!SHARED_TISSUE_TEMPLATE;EYELASH_TEMPLATE;
[TISSUE_NAME:eyelash:eyelashes]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HAIR]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[COSMETIC]
[STYLEABLE]
[TISSUE_SHAPE:STRANDS]
}
{!SHARED_TISSUE_TEMPLATE;FEATHER_TEMPLATE;
[TISSUE_NAME:feather:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:FEATHER]
[RELATIVE_THICKNESS:2]
[SUBORDINATE_TO_TISSUE:SKIN]
[INSULATION:100]
[TISSUE_SHAPE:FEATHERS]
}
{!SHARED_TISSUE_TEMPLATE;SCALE_TEMPLATE;
[TISSUE_NAME:scale:STP]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SCALE]
[SCARS]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:1]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:SCALES]
}
{!SHARED_TISSUE_TEMPLATE;NAIL_TEMPLATE;
[TISSUE_NAME:nail:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:NAIL]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;CLAW_TEMPLATE;
[TISSUE_NAME:claw:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:CLAW]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;TALON_TEMPLATE;
[TISSUE_NAME:talon:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:TALON]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;TOOTH_TEMPLATE;
[TISSUE_NAME:tooth:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:TOOTH]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;IVORY_TEMPLATE;
[TISSUE_NAME:ivory:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:IVORY]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;EYE_TEMPLATE;
[TISSUE_NAME:eye tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:EYE]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;NERVE_TEMPLATE;
[TISSUE_NAME:nervous tissue:NP]
[FUNCTIONAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:NERVE]
[RELATIVE_THICKNESS:1]
[VASCULAR:3]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;BRAIN_TEMPLATE;
[TISSUE_NAME:brain tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:BRAIN]
[RELATIVE_THICKNESS:1]
[VASCULAR:3]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;LUNG_TEMPLATE;
[TISSUE_NAME:lung tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:LUNG]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:8]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;HEART_TEMPLATE;
[TISSUE_NAME:heart tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:HEART]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:10]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;LIVER_TEMPLATE;
[TISSUE_NAME:liver tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:LIVER]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:8]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;GUT_TEMPLATE;
[TISSUE_NAME:gut:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:GUT]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;STOMACH_TEMPLATE;
[TISSUE_NAME:stomach tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:STOMACH]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;GIZZARD_TEMPLATE;
[TISSUE_NAME:gizzard tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:GIZZARD]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;PANCREAS_TEMPLATE;
[TISSUE_NAME:pancreatic tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:PANCREAS]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;SPLEEN_TEMPLATE;
[TISSUE_NAME:spleen tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SPLEEN]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:5]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;KIDNEY_TEMPLATE;
[TISSUE_NAME:kidney tissue:NP]
[FUNCTIONAL]
[STRUCTURAL]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:KIDNEY]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:8]
[PAIN_RECEPTORS:5]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;FLAME_TEMPLATE;
[TISSUE_NAME:flames:NP]
[MUSCULAR]
[FUNCTIONAL]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:FLAME]
[TISSUE_MAT_STATE:GAS]
[RELATIVE_THICKNESS:1]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;CHITIN_TEMPLATE;
[TISSUE_NAME:chitin:NP]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:CHITIN]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:1]
[PAIN_RECEPTORS:5]
[CONNECTS]
[CONNECTIVE_TISSUE_ANCHOR]
[STRUCTURAL]
[TISSUE_SHAPE:LAYER]
[SETTABLE]
[SPLINTABLE]
}
{!SHARED_TISSUE_TEMPLATE;SPINE_TEMPLATE;
[TISSUE_NAME:spine:NP]
[STRUCTURAL]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SPINE]
[RELATIVE_THICKNESS:2]
[CONNECTS]
[TISSUE_SHAPE:LAYER]
}
{!SHARED_TISSUE_TEMPLATE;SPONGE_TEMPLATE;
[TISSUE_NAME:sponge:NP]
[SCARS]
[TISSUE_MATERIAL:LOCAL_CREATURE_MAT:SPONGE]
[RELATIVE_THICKNESS:1]
[HEALING_RATE:100]
[VASCULAR:3]
[PAIN_RECEPTORS:5]
[CONNECTS]
[INSULATION:100]
[TISSUE_SHAPE:LAYER]
}
so the error should be in the file adddons\Lib\Base\aaa_sobject_libs_base.pre.lua or in the Rubble framework
-- SHARED_OBJECT, the single most important template in all of Rubble,
-- also a bunch of related templates.
rubble.template("!SHARED_OBJECT", [[
local id, raws = rubble.targs({...}, {"", ""})
local data = rubble.registry["Libs/Base:!SHARED_OBJECT"].table
if data[id] ~= nil then
rubble.parse(raws)
return ""
else
data[id] = rubble.parse(raws)
return "{_INSERT_SHARED_OBJECT;"..id.."}"
end
]])
rubble.template("!SHARED_OBJECT_DUPLICATE", [[
local oid, nid, edit = rubble.targs({...}, {"", "", "true"})
local data = rubble.registry["Libs/Base:!SHARED_OBJECT"].table
if data[oid] == nil then
rubble.abort("Call to !SHARED_OBJECT_DUPLICATE trying to duplicate an object that does not exist. Make sure this template is parsed *after* the object you want to extend.")
end
local raws = data[oid]
if edit == "true" then
-- Replace the first tag in the object with a new one
local tags = rubble.rparse.parse(raws)
for _, tag in ipairs(tags) do
if not tag.CommentsOnly then
tag.Params[0] = nid
break
end
end
raws = rubble.rparse.format(tags)
end
if data[nid] ~= nil then
return ""
else
data[nid] = raws
return "{_INSERT_SHARED_OBJECT;"..nid.."}"
end
]])
local soexist = [[
local id, t, e = rubble.targs({...}, {"", "", ""})
local data = rubble.registry["Libs/Base:!SHARED_OBJECT"].table
if data[id] ~= nil then
return rubble.parse(t)
end
return rubble.parse(e)
]]
rubble.template("SHARED_OBJECT_EXISTS", soexist)
rubble.template("#SHARED_OBJECT_EXISTS", soexist)
function rubble.libs_base.sharedobject_add(id, raws)
local data = rubble.registry["Libs/Base:SHARED_OBJECT_ADD"].table
data[id] = (data[id] or "").."\n\t"..rubble.parse(raws)
return
end
function rubble.libs_base.sharedobject_walk(id, action)
local data = rubble.registry["Libs/Base:!SHARED_OBJECT"].table
local tags = rubble.rparse.parse(data[id])
for _, tag in ipairs(tags) do
action(tag)
end
data[id] = rubble.rparse.format(tags)
end
rubble.template("SHARED_OBJECT_KILL_TAG", [[
local id, target = rubble.targs({...}, {"", ""})
rubble.libs_base.sharedobject_walk(id, function(tag)
if tag.ID == target and not tag.CommentsOnly then
local repl = "-"..tag.ID
for _, v in ipairs(tag.Params) do
repl = repl..":"..v
end
tag.Comments = repl.."-"..tag.Comments
tag.CommentsOnly = true
end
end)
]])
rubble.template("SHARED_OBJECT_REPLACE_TAG", [[
local id, target, repl = rubble.targs({...}, {"", "", ""})
rubble.libs_base.sharedobject_walk(id, function(tag)
if tag.ID == target and not tag.CommentsOnly then
tag.Comments = repl..tag.Comments
tag.CommentsOnly = true
end
end)
]])
rubble.template("SHARED_OBJECT_MERGE", [[
local id, rules, source = rubble.targs({...}, {"", "", ""})
local data = rubble.registry["Libs/Base:!SHARED_OBJECT"].table
data[id] = rubble.rawmerge(rules, source, data[id])
]])
rubble.template("SHARED_OBJECT_ADD", [[
rubble.libs_base.sharedobject_add(rubble.targs({...}, {""}))
]])
rubble.template("REGISTER_REACTION_CLASS", [[
local id, class = rubble.targs({...}, {"", ""})
rubble.libs_base.sharedobject_add(id, "[REACTION_CLASS:"..class.."]")
]])
rubble.template("REGISTER_REACTION_PRODUCT", [[
local id, class, mat = rubble.targs({...}, {"", "", ""})
rubble.libs_base.sharedobject_add(id, "[MATERIAL_REACTION_PRODUCT:"..class..":"..mat.."]")
]])
rubble.template("_INSERT_SHARED_OBJECT", [[
local id = rubble.targs({...}, {""})
local data = rubble.registry["Libs/Base:!SHARED_OBJECT"].table
data[id] = rubble.parse(data[id])
return "{#_INSERT_SHARED_OBJECT;"..id.."}"
]])
rubble.template("#_INSERT_SHARED_OBJECT", [[
local id = rubble.targs({...}, {""})
local out = rubble.parse(rubble.registry["Libs/Base:!SHARED_OBJECT"].table[id])
local add_data = rubble.registry["Libs/Base:SHARED_OBJECT_ADD"].table
if add_data[id] ~= "" then
out = out..rubble.parse(add_data[id])
end
return out
]])
rubble.template("!SHARED_OBJECT_CATEGORY", [[
local id, cat = rubble.targs({...}, {""})
local data = rubble.registry["Libs/Base:!SHARED_OBJECT_CATEGORY:"..cat]
if data.table[id] == nil then
data.list[#data.list] = id
end
data.table[id] = "t"
]])
-- Returns a sequence listing all shared objects in a certain category.
-- List order is deterministic (in this case it follows declaration order).
-- If category does not exist returns nil.
function rubble.libs_base.sharedobject_listcategory(cat)
if rubble.registry.exists["Libs/Base:!SHARED_OBJECT_CATEGORY:"..cat] then
local rtn = {}
local data = rubble.registry["Libs/Base:!SHARED_OBJECT_CATEGORY:"..cat]
for _, k in ipairs(data.list) do
if data.table[k] == "t" then
table.insert(rtn, k)
end
end
return rtn
end
return nil
end
function rubble.libs_base.sharedobject_incategory(id, cat)
if rubble.registry.exists["Libs/Base:!SHARED_OBJECT_CATEGORY:"..cat] then
local ok = rubble.registry["Libs/Base:!SHARED_OBJECT_CATEGORY:"..cat].table[id]
return ok ~= nil and ok == "t"
end
return nil -- So you can tell a missing category from a item that is not listed.
end
-- Specialized versions of SHARED_OBJECT
local variants = {
"CREATURE",
"PLANT",
"INORGANIC",
"MATERIAL_TEMPLATE",
"CREATURE_VARIATION",
"TISSUE_TEMPLATE",
"BODY_DETAIL_PLAN",
"INTERACTION",
"BODY",
}
for _, v in ipairs(variants) do
rubble.usertemplate("!SHARED_"..v, {{"id", ""}, {"raws", ""}},
"{!SHARED_OBJECT;%{id};\n"..
"["..v..":%{id}]\n"..
" %{raws}\n"..
"}{!SHARED_OBJECT_CATEGORY;%{id};"..v.."}"
)
end
-- SHARED_ITEM has it's own file.
In both cases only Milo can correct the bug because I dont see where the error is in the cited lua file, maybe the new rule based automatic syntax checking that Milo is developing is silently thrashing any preraws considered malformed by the actual set of rules that is not feature complete at the moment...
@milo christiansen: trying to Rubblize the mod Deeper dwarven domestication the line
{SHARED_OBJECT_REPLACE_TAG;MAKE_MEAD;REAGENT:honey;[REAGENT:honey:150:LIQUID_MISC:NONE:CREATURE_MAT:NONE:HONEY][HAS_MATERIAL_REACTION_PRODUCT:DRINK_MAT]}
Fails silently (no error but it does not the requested replace), I need to modify only one of the many reagents that the vanilla reaction MAKE_MEAD has, to enable the MEAD reactions of the Dewbettle and the vanilla bumblebee.
Sure I could delete this vanilla reaction and recreate it like I need; but this use case where one object has many different instances of one token and you need to target only one of those happens a lot so if you can do something it would be of use.
Briefly, what I need is to replace in the vanilla reaction MAKE_MEAD the REAGENT line whose id is honey -> REAGENT:honey
[REACTION:MAKE_MEAD]
[NAME:make mead]
[BUILDING:STILL:CUSTOM_M]
[REAGENT:honey:150:LIQUID_MISC:NONE:CREATURE_MAT:HONEY_BEE:HONEY]
[UNROTTEN]
[REAGENT:honey container:1:NONE:NONE:NONE:NONE]
[CONTAINS:honey]
[PRESERVE_REAGENT]
[DOES_NOT_DETERMINE_PRODUCT_AMOUNT]
[REAGENT:barrel/pot:1:NONE:NONE:NONE:NONE]
[EMPTY]
[FOOD_STORAGE_CONTAINER] barrel or any non-absorbing tool with FOOD_STORAGE
[PRESERVE_REAGENT]
[DOES_NOT_DETERMINE_PRODUCT_AMOUNT]
[PRODUCT:100:5:DRINK:NONE:GET_MATERIAL_FROM_REAGENT:honey:DRINK_MAT]
[PRODUCT_TO_CONTAINER:barrel/pot]
[PRODUCT_DIMENSION:150]
[SKILL:BREWING]
The line
[REAGENT:honey:150:LIQUID_MISC:NONE:CREATURE_MAT:HONEY_BEE:HONEY]
By the line
[REAGENT:honey:150:LIQUID_MISC:NONE:CREATURE_MAT:NONE:HONEY][HAS_MATERIAL_REACTION_PRODUCT:DRINK_MAT]
If it is more easy to develop we could go with the more verbose and less resilient face to the vanilla changes
{SHARED_OBJECT_REPLACE_TAG;MAKE_MEAD;[REAGENT:honey:150:LIQUID_MISC:NONE:CREATURE_MAT:HONEY_BEE:HONEY];[REAGENT:honey:150:LIQUID_MISC:NONE:CREATURE_MAT:NONE:HONEY][HAS_MATERIAL_REACTION_PRODUCT:DRINK_MAT]
Thats is
{SHARED_OBJECT_REPLACE_TOKEN;<ID>;<source preraws>;<destination preraws>}