Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Getting [COPY_TAGS_FROM] to work  (Read 1102 times)

Shonai_Dweller

  • Bay Watcher
    • View Profile
Getting [COPY_TAGS_FROM] to work
« on: August 12, 2017, 11:12:18 pm »

So, I was happily making evil variants of various critters for my hobbits to play with (and cook) when I got to 'Evil Mountain Goat' and it stopped working. Crash when placing in Arena with this error:
Quote
*** Error(s) found in the file "raw/objects/creature_evil-critters.txt"
EVIL_GOAT_MOUNTAIN:Unrecognized Creature Copy (Order is important!): GOAT_MOUNTAIN

I hadn't done anything particularly different to my previous evil geckos, toads and various birds and they're working fine. I spent some fruitless hours searching for spelling mistakes until I figured it out.
Taking "order is important" as the key, I renamed my evil critters file to "creature_z_evil-critters.txt" and now it works again. Because order of the file names is important, I guess. Laughing I went to check the only real modding guide that exists, dfwiki, but can't seem to find this useful bit of info anywhere. 

So, I'm left thinking that either:
1) It's left off the wiki because it's 'common knowledge' to all modders who like to smirk at hapless amateurs whenever this comes up.
2) It's on the wiki and I just can't find it
3) It's not on the wiki, because if I were modding properly this wouldn't happen.

If 3, please let me know the proper way to use the variations files and [copy_tags_from] tag.

Here's my raws:
Code: [Select]
creature_evil-critters

[OBJECT:CREATURE]

[CREATURE:EVIL_LEOPARD_GECKO]
[COPY_TAGS_FROM:GECKO_LEOPARD]
[APPLY_CREATURE_VARIATION:EVIL_CRITTER]
[CV_REMOVE_TAG:CHANGE_BODY_SIZE_PERC]
[APPLY_CURRENT_CREATURE_VARIATION]
[GO_TO_END]
[SELECT_CASTE:ALL]
[CHANGE_BODY_SIZE_PERC:4000]
[GO_TO_START]
[NAME:dark leopard gecko:dark leopard geckos:dark leopard gecko]
[CASTE_NAME:dark leopard gecko:dark leopard geckos:dark leopard gecko]
[DESCRIPTION:A larger, more evil variant of the common gecko.]
[POPULATION_NUMBER:100:200]
[CLUSTER_NUMBER:10:20]
[CREATURE_TILE:'g']
[COLOR:6:0:1]
[PET_EXOTIC]
[PETVALUE:500]
[GO_TO_END]
[PREFSTRING:evil sticky feet]
[PREFSTRING:demonic coloration]
[USE_MATERIAL_TEMPLATE:POISON:CREATURE_EXTRACT_TEMPLATE]
[STATE_NAME:ALL_SOLID:frozen evil gecko venom]
[STATE_ADJ:ALL_SOLID:frozen evil gecko venom]
[STATE_NAME:LIQUID:evil gecko venom]
[STATE_ADJ:LIQUID:evil gecko venom]
[STATE_NAME:GAS:boiling evil gecko venom]
[STATE_ADJ:GAS:boiling evil gecko venom]
[PREFIX:NONE]
[ENTERS_BLOOD]
[SYNDROME]
[SYN_NAME:evil gecko bite]
[SYN_AFFECTED_CLASS:GENERAL_POISON]
[SYN_IMMUNE_CREATURE:EVIL_LEOPARD_GECKO:ALL]
[SYN_INJECTED]
[CE_PAIN:SEV:75:PROB:100:RESISTABLE:SIZE_DILUTES:LOCALIZED:VASCULAR_ONLY:START:10:PEAK:50:END:1200]
[CE_DIZZINESS:SEV:50:PROB:100:RESISTABLE:SIZE_DILUTES:START:30:PEAK:100:END:1200]
[CE_DROWSINESS:SEV:50:PROB:100:RESISTABLE:SIZE_DILUTES:START:30:PEAK:100:END:1200]
[CE_PARALYSIS:SEV:100:PROB:100:RESISTABLE:SIZE_DILUTES:START:60:PEAK:100:END:1200]
[APPLY_CREATURE_VARIATION:EVIL_BITE_ATTACK]
[APPLY_CREATURE_VARIATION:STANDARD_QUADRUPED_GAITS:900:657:438:219:1900:2900] 15 kph
[APPLY_CREATURE_VARIATION:STANDARD_SWIMMING_GAITS:2990:2257:1525:731:4300:6100] 5 kph
[APPLY_CREATURE_VARIATION:STANDARD_CRAWLING_GAITS:2990:2257:1525:731:4300:6100] 5 kph
[APPLY_CREATURE_VARIATION:STANDARD_CLIMBING_GAITS:2990:2257:1525:731:4300:6100] 15 kph

[CREATURE:EVIL_GOAT_MOUNTAIN]
[COPY_TAGS_FROM:GOAT_MOUNTAIN]
[APPLY_CREATURE_VARIATION:EVIL_CRITTER]
[CV_REMOVE_TAG:CHANGE_BODY_SIZE_PERC]
[APPLY_CURRENT_CREATURE_VARIATION]
[GO_TO_END]
[SELECT_CASTE:ALL]
[CHANGE_BODY_SIZE_PERC:1120]
[GO_TO_START]
[NAME:dark mountain goat:dark mountain goats:dark mountain goat]
[CASTE_NAME:dark mountain goat:dark mountain goats:dark mountain goat]
[GENERAL_CHILD_NAME:dark mountain goat kid:dark mountain goat kids]
[DESCRIPTION:A larger, more evil variant of the common goat.]
[POPULATION_NUMBER:15:30]
[CLUSTER_NUMBER:1:4]
[CREATURE_TILE:'g']
[COLOR:7:0:1]
[PET_EXOTIC]
[PETVALUE:500]
[GO_TO_END]
[PREFSTRING:demonic beards]
[PREFSTRING:evil horns]
[PREFSTRING:supernatural surefootedness]
[USE_MATERIAL_TEMPLATE:POISON:CREATURE_EXTRACT_TEMPLATE]
[STATE_NAME:ALL_SOLID:frozen evil goat venom]
[STATE_ADJ:ALL_SOLID:frozen evil goat venom]
[STATE_NAME:LIQUID:evil goat venom]
[STATE_ADJ:LIQUID:evil goat venom]
[STATE_NAME:GAS:boiling evil goat venom]
[STATE_ADJ:GAS:boiling evil goat venom]
[PREFIX:NONE]
[ENTERS_BLOOD]
[SYNDROME]
[SYN_NAME:evil goat bite]
[SYN_AFFECTED_CLASS:GENERAL_POISON]
[SYN_IMMUNE_CREATURE:EVIL_GOAT_MOUNTAIN:ALL]
[SYN_INJECTED]
[CE_PAIN:SEV:75:PROB:100:RESISTABLE:SIZE_DILUTES:LOCALIZED:VASCULAR_ONLY:START:10:PEAK:50:END:1200]
[CE_DIZZINESS:SEV:50:PROB:100:RESISTABLE:SIZE_DILUTES:START:30:PEAK:100:END:1200]
[CE_DROWSINESS:SEV:50:PROB:100:RESISTABLE:SIZE_DILUTES:START:30:PEAK:100:END:1200]
[CE_PARALYSIS:SEV:100:PROB:100:RESISTABLE:SIZE_DILUTES:START:60:PEAK:100:END:1200]
[APPLY_CREATURE_VARIATION:EVIL_BITE_ATTACK]
[APPLY_CREATURE_VARIATION:STANDARD_QUADRUPED_GAITS:900:750:600:439:1900:2900] 20 kph
[APPLY_CREATURE_VARIATION:STANDARD_SWIMMING_GAITS:2990:2257:1525:731:4300:6100] 12 kph
[APPLY_CREATURE_VARIATION:STANDARD_CRAWLING_GAITS:2990:2257:1525:731:4300:6100] 12 kph
Geko works fine, goat breaks.
Here's the variations raws:
Code: [Select]
c_variation_badcrits

[OBJECT:CREATURE_VARIATION]

Order of application:
Remove tags are applied starting from the bottom, then convert tags from the bottom, then add tags from the top.

Arguments:
If APPLY_CREATURE_VARIATION in the creature raws sends in arguments, you can use them below as !ARG1, !ARG2, etc.  The GAIT variations below have some examples.  In the creature raws, if an argument is of the form "5|6", for example, it'll be converted to "5:6" in the creature variation, so you can handle variable-token arguments with the | character.

Conditional tags:
Change TAG to CTAG and add, for example, CV_REMOVE_CTAG:1:YES:<regular stuff> to require !ARG1 to be YES to execute the changes.

[CREATURE_VARIATION:EVIL_CRITTER]
[CV_REMOVE_TAG:NAME]
[CV_REMOVE_TAG:GENERAL_CHILD_NAME]
[CV_REMOVE_TAG:GENERAL_BABY_NAME]
[CV_REMOVE_TAG:CASTE_NAME]
[CV_REMOVE_TAG:CHILDNAME]
[CV_REMOVE_TAG:BABYNAME]
[CV_REMOVE_TAG:POPULATION_NUMBER]
[CV_REMOVE_TAG:CLUSTER_NUMBER]
[CV_REMOVE_TAG:COLOR]
[CV_REMOVE_TAG:MOUNT]
[CV_REMOVE_TAG:MOUNT_EXOTIC]
[CV_REMOVE_TAG:SOUND]
[CV_REMOVE_TAG:SMALL_REMAINS]
[CV_REMOVE_TAG:DESCRIPTION]
[CV_REMOVE_TAG:CREATURE_TILE]
[CV_REMOVE_TAG:PET]
[CV_REMOVE_TAG:PETVALUE]
[CV_REMOVE_TAG:PENETRATEPOWER]
[CV_REMOVE_TAG:VERMIN_EATER]
[CV_REMOVE_TAG:VERMIN_HATEABLE]
[CV_REMOVE_TAG:VERMIN_GROUNDER]
[CV_REMOVE_TAG:VERMIN_FISH]
[CV_REMOVE_TAG:VERMIN_SOIL]
[CV_REMOVE_TAG:VERMIN_SOIL_COLONY]
[CV_REMOVE_TAG:VERMIN_ROTTER]
[CV_REMOVE_TAG:VERMIN_NOTRAP]
[CV_REMOVE_TAG:FISHITEM]
[CV_REMOVE_TAG:TRIGGERABLE_GROUP]
[CV_REMOVE_TAG:PET_EXOTIC]
[CV_REMOVE_TAG:NOT_BUTCHERABLE]
[CV_REMOVE_TAG:PREFSTRING]
[CV_REMOVE_TAG:SPEED]
[CV_REMOVE_TAG:SWIM_SPEED]
[CV_REMOVE_TAG:MUNDANE]
[CV_REMOVE_TAG:GAIT]
[CV_REMOVE_TAG:UBIQUITOUS]
[CV_REMOVE_TAG:ATTACK]
[CV_NEW_TAG:LARGE_ROAMING]
[CV_NEW_TAG:EVIL]
[CV_NEW_TAG:SELECT_CASTE:ALL]
[CV_NEW_TAG:CHANGE_BODY_SIZE_PERC:1000]
Logged

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: Getting [COPY_TAGS_FROM] to work
« Reply #1 on: August 13, 2017, 12:35:40 am »

Just checked and you are correct: copy_tags_from only works for creatures declared earlier in that file or in an alphabetically earlier creature file.
Logged

Shonai_Dweller

  • Bay Watcher
    • View Profile
Re: Getting [COPY_TAGS_FROM] to work
« Reply #2 on: August 13, 2017, 12:59:35 am »

I wonder if there are any other tags that work like this?
Easy enough to work around, but rather annoying at first.

Well, at least my dark goats are now happily in the arena kicking each other's teeth in and spreading their evil venom around.
Logged

Putnam

  • Bay Watcher
  • DAT WIZARD
    • View Profile
Re: Getting [COPY_TAGS_FROM] to work
« Reply #3 on: August 13, 2017, 01:13:04 am »

I wonder if there are any other tags that work like this?

No, which is why the error explicitly tells you "Order is important!"

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: Getting [COPY_TAGS_FROM] to work
« Reply #4 on: August 13, 2017, 01:22:51 pm »

Errors for the Errorgod, Raws for the Raw Throne!
Logged