Skip to content

[Writing] ‐ Basic

scribblecrumb edited this page Sep 12, 2024 · 34 revisions

by Tiri and Scribble

The Basics

  • Clangen is a game that relies on random event generation. This means that whatever you're writing needs to function for all cats it might generate for, under all circumstances it can be generated in.

Caution

No assumptions should be made about the gender of any cat. Nothing in the game is completely gender-locked, including pregnancy under certain settings, so all text should take this into account.

  • Remember that the focus of this game is allowing players to build their own story! Most of the time, it’s better not to insert character motivations into the text. We want to leave space for the player to explain and expand upon the events that happen in the game. Of course, there are some trait, skill, rank, or age specific texts that can allow more personality to shine through
  • The Dark Forest is not fully implemented yet, and flavor text should not mention it too much at the moment. It exists, but there hasn't been a consensus on the exact implementation yet for things like training in the Dark Forest, or how exactly it operates in Clangen. For example, if it's a secret to all except those who are chosen to train there, or if it's well-known to all Clan cats.
  • If you have something you'd like to do with a patrol or event, but the code doesn't seem to have functionality for it yet, please let a coder know!

Upsetting vs graphic content

Caution

Clangen contains content that is designed to cause distress. There is no way around it, and it is intentional, and it is not malicious. Players are supposed to care about the death of a cat, or a cat being injured, or the Clan not having enough food. Writers for Clangen spend our time trying to provoke emotions in players, both good, positive, happy emotions, and sad ones, or feelings of injustice, or loss. Video games as a medium, especially a story generator like Clangen, are designed to need active investment from a player on many levels, including emotional.

  • There is an important difference between upsetting content and graphic content.
  • Clangen follows the warriors canonical levels of graphic content and gore. This is not a non-graphic book series. For example, in warriors canon Scourge gets an extensive scene where he takes all of Tigerstar(the first)'s lives at once by ripping out his throat. This would be the absolute maximum graphic content allowed in Clangen.
  • However, everyone has far different levels of comfort with regards to graphical content, particularly written graphical content rather than visual. We have needed to edit content to be less graphic before. We will doubtless do so again in the future. When we receive feedback that game text is particularly upsetting, it's important to take that feedback and carefully consider it. This does not always mean removing that content - but we must carefully consider it.
  • Graphical content is not limited to violent content. Illness, injury, pregnancy - no one wants to read a play by play of a cat giving birth in extreme graphical detail.
  • This is one of the reasons the development version of the game exists. By playing the development version, people have accepted they may be exposed to features that aren't ready for the stable release of the game yet, including upsetting content that is being playtested.
  • People have drastically different levels of comfort for graphical content for kittens (and sometimes apprentices) than for adult characters. This does not mean that nothing upsetting should ever be allowed to happen to kittens, but it's worth considering.
  • For distressing content, aim to use text that is emotive and provokes an emotional response, without using descriptive imagery that is likely to provoke disgust. The diarrhea illness progression and reaction texts are a good example of this. It's an illness that's actually reasonably dangerous, but the text tries to communicate that without focusing on the shitting uncontrollably part.

Clangen Biomes

All biomes are different from each other and this should be taken into account when writing (e.g a generalized hunting patrol shouldn't mention fishing in the desert). If the content you're writing is generalized (available in any biome), then you have to be careful to make it truly general in nature, able to be triggered no matter what the circumstances. Therefore, under most circumstances, making biome (or even camp) specific content is preferred for a more detailed, rich gameplay experience. Each biome also has different prey available - see the randomized prey lists for inspiration, but be creative (though realistic) with your own prey choices. Cats cannot take down giraffe, but there's plenty of unique things in the right size range for them to hunt you could include in your content.

Here's a brief overview of our currently planned biomes, and their differences:

  • Seasonality refers to how strongly the seasons affect the biome.
  • Hazardous refers to the overall amount of danger (both in terms of environment and hostile creatures) the biome contains.
  • Herb availability refers to how easy it is to gather herbs.
  • Difficulty of interactions with cats outside the clan refers to both how frequent and how dangerous interactions with rogues and loners are.
  • Amount of Twolegs interactions refers to how often Twolegs are seen in that biome and affect the Clan cats.

Beach

  • Beach is a low seasonality environment.
  • Beach is a medium hazardous environment.
  • Beach has medium herb availability.
  • Beach has a medium difficulty of interactions with cats outside the clan.
  • Beach has a high amount of Twolegs interactions.

Tip

Take into account how seasons will affect the danger of being in the water e.g cold water in leaf-fall vs freezing water in leaf-bare. The clans here will have increased skill checks for the swimmer skill, and interact with the water far more than land based biomes.

Desert

  • Desert is a high seasonality environment.
  • Desert is a high hazardous environment.
  • Desert has low herb availability.
  • Desert has an easy difficulty of interactions with cats outside the clan.
  • Desert has a low amount of Twolegs interactions.

Tip

Take into account how the highly seasonal desert will affect the difficulty of the patrol. Greenleaf is dangerous in the desert - more sunlight is worse for the Clan. This results in the most interesting feature of the desert compared to other biomes - desert has flipped seasons. Leaf-bare, the rainy season, is a time of plenty, while greenleaf, the dry season, is a time of scarcity. Fresh water is an important resource here in ways not experienced in other biomes.

Cats outside the clans and Twolegs are both rare in the desert, as it's not the most hospitable environment. While snow and sleet do fall in the desert on rare occasions, mostly leaf-bare has rain, not snow.

Forest

  • Forest is a medium seasonality environment.
  • Forest is a medium hazardous environment.
  • Forest has medium herb availability.
  • Forest has a medium difficulty of interactions with cats outside the clan.
  • Forest has a medium amount of Twolegs interactions.

Tip

Forest is the 'default' biome, intended to most closely mimic the experience and risks of the warrior cats canon environment. This means that content created for the forest biome should more closely mimic the content in the warriors cat books than other biomes. You should make increased numbers of skill checks for the climber skill in this biome.

Mountainous

  • Mountainous is a high seasonality environment.
  • Mountainous is a high hazardous environment.
  • Mountainous has high herb availability.
  • Mountainous has an easy difficulty of interactions with cats outside the clan.
  • Mountainous has a low amount of Twolegs interactions.

Tip

Living in the mountains isn't easy, but it affords the Clans who can survive there safety and isolation that are more difficult to come by then in other biomes. Snow falls in leaf-fall and newleaf, not just in leaf-bare, and leaf-bare has a deeper and colder chill than is display in warrior cats canon.

Plains

  • Plains are a medium seasonality environment.
  • Plains are a medium hazardous environment.
  • Plains have medium herb availability.
  • Plains have a medium difficulty of interactions with cats outside the clan.
  • Plains has a medium amount of Twolegs interactions.

Tip

While sharing the same difficulty setting as forest, plains has a unique vibe with wide open spaces, a lack of cover, and a great dependence on the seasonal cycle of grass growth. You should create increased numbers of runner skill checks for this biome. These Clans frequently use tunnels to their advantage.

Wetlands

  • Wetlands are a low seasonality environment.
  • Wetlands are a high hazardous environment.
  • Wetlands have high herb availability.
  • Wetlands have a medium difficulty of interactions with cats outside the clan.
  • Wetlands has a medium amount of Twolegs interactions.

Tip

Take into account how seasons will affect the danger of being in the water e.g cold water in leaf-fall vs freezing water in leaf-bare. The wetlands has snow and sleet fall, and frosts, but, similar to beach, snow is unlikely to build up thickly on the ground (the real problem is MUD). While wetlands environments have high herb availability, this is also the environment where is it the most easy to get poisoned or envenomed (chomped by a venomous creature). Wetlands Clans also eat a truly diverse array of frogs, snakes, and fish that makes the canonical ShadowClan diet look very normal and sensible. Expected increased numbers of swimmer skill checks in such a damp biome.

Warriors Terminology

Seasons

Do not capitalize, except when beginning a sentence.

Spell and hyphenate as:

  • newleaf
  • greenleaf
  • leaf-fall
  • leaf-bare

Other Terms

  • Clan and Clanmate is always capitalized, even when Clan is a suffix

  • Gathering is always capitalized

  • StarClan is always capitalized

  • Dark Forest is always capitalized

  • Thunderpath is always capitalized

  • Use Twolegs, capitalized with no hyphen. The singular for Twolegs is Twoleg.

  • Use fresh-kill, always include hyphen

  • Use crowfood, not ‘rotten fresh-kill’

  • If you want the cats to swear, fox-dung and mouse-dung are always hyphenated

Warriors Idioms

Try to use phrases from this list when you can instead of using "our" version of it. Just helps a bit with world-building!

  • "We'll cross that river when we come to it"
  • "Caught two prey with one blow"
  • "Pain in the tail"
  • "Scaredy-mouse"

Other Animal Guidelines

What Animals to Include:

  • Warrior cats canonically doesn't take place in a real setting, having both cougars and English woodland creatures
  • Embrace this! Such wild additions to the game in the past include such favorites as including kea and elephant seals from New Zealand, wolverines from North America, wolves from Definitely Not England, and having swift, kit, and fennec foxes available to find in the desert!
  • Some biomes may require further research in order to give them a diverse set of animals to encounter, such as wetlands and desert which are very different to the original warriors setting. So go wild finding cool animals from those biomes who you want to see in the game!
  • There are some restrictions here, however, such as:
    • We use the European badger, not the American badger
    • Red foxes are European red foxes, not North American. European red foxes are larger than North American
  • We encourage you to include interactions with megafauna, but see the following section for specific guidelines!

Megafauna

  • Megafauna, in the Clangen context, is any creature that is so far out of a cat's size range as to make a contest between a cat and that creature fundamentally pointless.
  • A canon example would be Sharptooth, the mountain lion
  • Examples you might want to include in game are lions, tigers, wolves, bears, elephants, moose, cows, alligators, dolphins, etc.
  • What's important for clangen is that we want to make the game feel like these big creatures exist in the same world as the Clan, but that the Clan is not constantly interacting or in danger from them. So, for example, a plain patrol about scenting lion scat? Great. A plain patrol about being chased by a lion? That one better be rare (and very dangerous).
  • You're encouraged to think of interesting interactions with megafauna that increase their presence in the game without subjecting the player Clan to undue amounts of danger! For example, a mountain Clan scavenging and eating the discarded placenta of a moose in newleaf is a wonderful source of prey, that implies moose are present in the world without requiring the Clan to risk interacting with it. Or what myths might a plains Clan tell about elephant? The beach Clans swap herbs and prey with dolphins without risking getting eaten by them.
  • Basically, we want to feel like there are these massive creatures in the Clan's world, without having to solely focus gameplay on why the Clan isn't immediately getting eaten by a tiger.

How Much Biological Accuracy to Include:

  • Please try and keep animals behaving in a way that is realistic to how they behave in real life. For example, while there are many fox patrols, unfortunately it isn't very realistic to have them befriend the cats (nor is it canonical, with Hollyleaf's fox kit trying to attack her even though she saved its life)
  • If you want to include fun biological facts, this is encouraged! For example, the various fox patrols all have different success likelihoods and have the text explain that particular fox species' size compared to a warrior, so swift foxes are less dangerous than red ones.
  • For patrols:
    • Keep in mind that it's absolutely okay and encouraged to make certain animal encounters restricted to certain seasons, but that if it's possible to encounter an animal, it should be possible to encounter it with any size of patrol - i.e if introducing a dangerous predator, make sure it can still be encountered by single cat patrols, even if those patrols are very lethal and difficult.
    • Keep in mind that the size of a patrol should have a major impact on how difficult things are to accomplish. For example, while any size of patrol can encounter the maned wolf in the plains biome, only a full 6 cat patrol can try to fight the maned wolf
  • There is a difference between venom and poison, as stated by the lovely Zabe: venom is if it bites you and you die, while poison is if you bite it and you die! It won't really matter, but if you want to spruce up your writing!

Animal Names:

Some animals have multiple names that can refer to them, we want to keep our writing consistent by only using a single agreed upon name.

  • Use cougar for mountain lions/cougars

  • Use crayfish for crayfish/crawdads/koura

  • Use deathjaws for alligators, crocodiles, and any other crocodylomorphs!

  • Badgers live in setts, not sets

  • For groups of animals, please use the correct word for a group of those animals, i.e a group of crows is a murder, a group of vultures is a parliament, etc. The sillier the group name, the better, get creative with it and remember that google is your friend!

  • For water-focused biomes like beach and wetlands, please list the type of fish you find, not simply that it is a fish, otherwise text for those biomes will become repetitive. Get creative! There’s a lot of fish in the sea ;)

General Grammar/Writing Standards

  • We use American spelling!
  • Keep it simple! We do not include direct dialogue within our events and we try to keep the word count of each event low.
  • The classics:
    • you're vs your
      • "Your" is always possessive, while “you’re” = “you are”. If you aren’t sure whether “you’re” should be used in a sentence, imagine the same sentence with “you are” in place of “you’re/your” and see if it still makes sense.
    • than vs then
      • "Than" is used to compare things. For instance "I like cake better than pie." On the other hand, "then" relates to time. 1. "First I brushed my teeth, then I went to work." 2. "If there are no apples left, then please go to the store and get some."
    • to vs too vs two
      • “Too” means “in addition”, “as well”, or "excessively". For example, “Bluestar had some prey too.” Or, "The elder was too old to hunt." Two is, of course, only referring to the number. NGL my method for remembering “to” is just “if too should not be used” LOL but it’s kind of a “directional” word if that makes sense. Shows the relationship between two words, the opposite of “from”.
    • its vs it's
      • “Its” is always possessive. "It’s" is an abbreviation for “it is”. Again, if you’re not sure, try imagining the same sentence with “it is” in place of “its/it’s”.
    • their vs they’re vs there
      • "Their" is possessive. “Their tail”, “their prey”, etc. “There” refers to a place. “They’re” is an abbreviation for “they are”.
    • affect vs effect
      • Less common, but always seems to trip people up. “Affect” is a verb. “The poison has affected them quite strongly.” “Effect” is a noun. “They felt the effects of the poison quite strongly.”
    • cats vs cat’s vs cats’
      • Plurals and possessives! Basically, English grammar conventions are hell. I will try to make it not too confusing with the word cat as an example noun. "Cat's" = single cat, possessive. "The cat's tail." "Cats" = plural, multiple cats, not possessive. "The cats gathered around the High Rock." Cats' = plural possessive. "The cats' nests were lined with fresh moss."
      • For singular words that end in S, add an apostrophe to make them possessive. For instance, "the crocus' petals". For a possessive plural of a word that ends in S, add "es" to the end, then apostrophe. Random example sentence: "The actresses' rooms were located across the hall."
      • Basically, anytime there's a possessive, you want an apostrophe in there somewhere. If the word ends in S, plural or singular, the apostrophe goes at the end. If the singular form of the word ends in S and it's a plural possessive, add "es" at the end, then apostrophe. The exception to this is “it’s’ and “its”, where “its” is the possessive form and has no apostrophe.
  • All Clangen game text should follow normal grammar rules for capitalizing the first letter of a sentence, and trying to avoid spelling or grammar typos. We all make typos, don't worry! But this is one of the ways beta testing your new content can help you!
  • If you are struggling with remembering or understanding a grammar rule, even one that isn't mentioned in the above list, feel free to contact zabe#1117 on Discord for one on one help. Either DM or ping in the writing contributor thread, please!
  • The only exception to the above rule is Thoughts! Thoughts should be structured in such a way that they read as a full sentence if the cat’s name is read at the beginning. For example: “Thinks about their past mistakes.” is the correct grammar for a Thought, as you could imagine a name at the beginning of the sentence and it would be grammatically correct. However, the sentence should still be capitalized normally. Event and flavor text should always use Americanized spelling.
  • Text should always use proper punctuation. Note that we are NOT using double spaces. There should only be a single space after all periods.
  • Text should be written in present tense, with the exception of history text and backstories being written in past tense. This is because patrols, events, and thoughts are happening to your cats at this present moment, while history text and backstories are a record of things that happened in the past.
  • We are using the Oxford comma. The Oxford comma is used for a list of three or more items. For instance: "He bought eggs, milk, and bread." This sentence uses the Oxford comma. "He bought eggs, milk and bread." This sentence does NOT use the Oxford comma. Please use the Oxford comma.
  • Advice for fixing typos: control + F and control + shift + F is your friend, and the computer is going to be able to scan the entire document to find every time you wrote “teh” instead of “the” much faster than you can. If you are trying to fix typos in game files in VSCode, you can also use the search tool (magnifying glass on the left sidebar) to find every instance of a specific typo across all files in the currently-open folder and rapidly find and replace. Very useful for patrols, which often have many different iterations of the same text across different files.
  • If a code abbreviation (such as o_c_n) needs an ‘a’ or ‘an’ to precede it, always use “a”. We have code in place to dynamically adjust ‘a’ and ‘an’ depending on the word that replaces the abbreviation.
  • HTML tags for bolding and italicizing are usable. These tags are:
    • <i> and </i> for italicizing
    • <b> and </b> for bolding
  • Keeping a change log: as a writer, people are going to be super excited to experience what you write! Make sure to keep a rough record of what that might be, i.e Tiri has no idea how many fox patrols she has added total, but does know how many species are added are in what biomes, so that when she made the PR to merge them into the game she could mention their existence in the changelog for that PR.
    • An easy way to keep track of your additions is with your commit titles and descriptions. Making commits whenever you reach a ‘milestone’ of sorts and then titling it appropriately will leave you with a nice list of commits to review for your later change log. When I bugfix, for example, I tend to make a commit every time I fix a bug and then title that commit with a short description of the bug I fixed.

Being Mindful of Disabilities

by grif

When writing events related to permanent conditions, we need to be very mindful to avoid ableist rhetoric and inspiration sensationalism. Some key points to avoid are as follows:

  • The idea that a cat is closer to a kitten than an adult

EG: "crawling" for paralysed cats - this implies they are weaker and also implies they are kit-like. This then takes away the paralysed cat's perceived ability to decide for themself, even though it's accidental. INSTEAD: use "clambering", "climbing", "stalking" - these allow a paralysed cat to give themselves agency. EXCEPTIONS: "Dragged" can be used in an emotional usage, such as "Poppyheart... drags herself to her front paws, complaining about dawn patrol".

  • The idea that a cat "isn't" effected by their disability

EG: "Wolfclaw... is proud that they can still work like the rest of the clan." This makes it seem like the cat is comparing themselves to the abled cats, and sets up standards where a disabled cat cannot show their disability. This eventually means you're implying it's somehow "lesser" to be disabled. It might make sense for an insecure cat, but be careful! INSTEAD: Allow the disability to effect them, and focus on their personal achievements rather than comparing them to other cats. EXCEPTIONS: "Raspy lungs", "joint pain", "allergies", "persistent headaches", "constantly dizzy", "recurring shock" - you can reword these into being happy their disability isn't as harsh this moon. These disabilities all come in "waves", where you can have a few days where you aren't as affected, and a few days where you're effected lots.

  • The idea that a disability is only negative

EG: Any thoughts that give the idea that they'd prefer to be dead, excessive sadness about being disabled, etc. INSTEAD: Balance the thoughts out! Give them good thoughts alongside the bad!

  • The idea that disabled cats can't make their own choices

EG: Excessive thoughts that imply a cat asking for another's opinion. INSTEAD: Balance out the thoughts. Treat it like any other cat! EXCEPTIONS: Personality basis - insecure/gloomy/charismatic cats are more likely to ask for other opinions on personal things.

  • The idea that disability is inherently worse than being abled

EG: Thoughts that imply shame or inherent upset about being disabled, comparison to abled cats, etc. INSTEAD: Use benign embarrassment! Maybe a cat with lasting grief fell asleep during a ceremony, or a cat with partial hearing loss misheard a request and brought moss instead of a mole.

When in doubt, please ask for feedback! We have multiple disabled contributors on the team and they've lended us their valuable perspectives time and time again.

Coding Terms for Writers to Know

  • string [str] - Used to refer to a string of text. For example, patrol events have multiple outcomes and each of those outcomes are individual strings. Strings are encased between quotations like so "this is a string.".
  • list - A collection of items held within brackets like so [item0, item1, item2, item3]. Note that code starts counting at 0, not at 1. Also note the comma between each item, this is required for the list to work properly.
  • dictionary [dict] - Used to hold keys and their values. Dictionaries are encased by curly braces. Think of keys as a word in a dictionary, and the value as it's definition. For example:
{
"key0": "I am the key's value",
"key1": ["Values", "can", "be", "lists", "too"],
"key2": "don't forget that key-value pairs need commas between them!",
"key3": {
  "you": "can even put dictionaries",
  "inside": "other dictionaries!"
}
}
  • integer [int] - A number. This cannot be a decimal.

  • parameter - We use a lot of event formats that have multiple sections to fill out. Each of these sections is referred to as a 'parameter' in coding language. You can think of it as directions that tell the code what the event is allowed to do. So in the patrol format, you have the tag parameter, the event text parameter, the success outcomes parameter, the fail outcomes parameter, ect.

  • IDE - A code interpreter. These are programs that allow you to view, run, and edit code, they generally provide shortcuts and point out errors to help speed the process.

  • json - a file type. We use these files to hold strings and other important game info. Nearly all of the strings in the game are held in jsons. Some IDEs, like PyCharm or virtual studio code, are able to help you properly format and spot errors in jsons. I’d recommend using one of those IDEs to help streamline your process.

  • Github Terms

    • github desktop - An application that makes syncing, editing, and committing your code easier. This, along with an IDE, is highly recommended for anyone contributing to the Clangen game files.
    • repository / repo - In many ways, you can think of a Git repository as a directory that stores all the files, folders, and content needed for Clangen. What it actually is, is the object database of the project, storing everything from the files themselves, to the versions of those files, commits, deletions, et cetera. Repositories are not limited by user, and can be shared and copied (see: fork).
    • PR - a Pull Request (PR) is how you will merge your code into a repository. Pull requests ask the repo maintainers to review the commits made, and then, if acceptable, merge the changes upstream. merge - Taking the changes from one branch and adding them into another (traditionally master) branch. These commits are usually first requested via pull request before being merged by a project maintainer.
    • pull - A “pull” happens when adding the changes to the master branch.
    • push - Updates a remote branch with the commits made to the current branch. You are literally “pushing” your changes onto the remote.
    • origin - The conventional name for the primary version of a repository.
    • fork - a fork is a copy of a repository. This fork is unique to your github account and allows you to make edits without changing the original repository.
    • branch - A version of the repository that diverges from the main working project. Branches can be a new version of a repository, experimental changes, or personal forks of a repository for users to alter and test changes.

Pronoun Tags

#TODO: transfer info from pronoun tag doc

Writing Histories

Cats receive history text to go with each scar-able injury as well as possibly-fatal injury and direct deaths. This histories show up in their profile. Many event formats require you to include the history text if a cat is being injured or killed. These typically refer to three different history types: scar, reg_death, lead_death. Following are the guidelines for writing each:

history type guidelines
scar This history is given to a cat who gains a scar from an injury gotten during the event. ONLY INCLUDE if the injury being given is able to scar (i.e a bruise will not scar, but a claw-wound will scar). This should be a single, full sentence specifying how the cat was scarred.
reg_death This history is given to a non-leader cat who is either killed by the event or dies from an injury gotten during the event. This should be a single, full sentence specifying how the cat died. Try not to get too wordy with these.
lead_death This history is given to a leader cat who is either killed by the event or dies from and injury gotten during the event. This should be a sentence fragment. Leaders are able to die multiple times, so on their profiles their deaths are listed in one single sentence. This sentence is formatted as such: "[leader name] lost a life when they [lead_death sentence fragment]" with each following death being added on to create a list with a comma between each item (and the last list item being added with an "and"). Your lead_death text must be able to work within this grammar format and should not include punctuation at the end of the text.

Example of acceptable histories

"scar": "m_c gained a scar from a fox.",
"reg_death": "m_c died from a fox bite.",
"lead_death": "died from a fox bite"

Tag Lists

Our events generally require writers to "tag" certain attributes. These "tags" are fairly universal across all events, so the lists are held here to serve as quick reference.

Illnesses

"seizure", "diarrhea", "fleas", "greencough", "kittencough", "an infected wound", "carrionplace disease", "redcough", "running nose", "whitecough", "yellowcough", "a festering wound", "heat stroke", "heat exhaustion", "stomachache", "constant nightmares", "grief stricken", "malnourished", "starving"

Injuries

"claw-wound", "bite-wound", "cat bite", "beak bite", "snake bite", "rat bite", "tick bites", "blood loss", "broken jaw", "broken bone", "mangled leg", "dislocated joint", "joint pain", "sprain", "mangled tail", "bruises", "cracked pads", "sore", "phantom pain", "scrapes", "small cut", "torn pelt", "torn ear", "frostbite", "recovering from birth", "water in their lungs", "burn", "severe burn", "shock", "lingering shock", "shivering", "dehydrated", "head damage", "damaged eyes", "quilled by a porcupine", "broken back", "poisoned", "bee sting", "headache", "severe headache", "pregnant",

Taggable Injury Pools:

INJURY POOL NAME INJURIES
"battle_injury" "claw-wound", "cat bite", "mangled leg", "mangled tail", "torn pelt"
"minor_injury" "sprain", "sore", "bruises", "scrapes"
"blunt_force_injury" "broken bone", "broken back", "head damage", "broken jaw"
"hot_injury" "heat exhaustion", "heat stroke", "dehydrated"
"cold_injury" "shivering", "frostbite"
"big_bite_injury" "bite-wound", "broken bone", "torn pelt", "mangled leg", "mangled tail"
"small_bite_injury" "bite-wound", "torn ear", "torn pelt", "scrapes"
"beak_bite" "beak bite", "torn ear", "scrapes"
"rat_bite" "rat bite", "torn ear", "torn pelt"

If you’d like a patrol to have an injury from one of the injury pools above, use the pool name (i.e. "battle_injury" for injuries from other cats) instead of the injury. Think we need another pool? Let the senior developers know in the discord developer areas and let's talk. We can have many different pools, there's no limit!

Generally we want to avoid giving a permanent condition to a cat, instead we should give them a condition that can lead to permanence (i.e. give 'broken back' instead of 'paralyzed')

Permanent Conditions

"crooked jaw", "lost a leg", "born without a leg", "weak leg", "twisted leg", "lost their tail, "born without a tail", "paralyzed", "raspy lungs", "wasting disease", "blind", "one bad eye", "failing eyesight", "partial hearing loss", "deaf", "constant joint pain", "seizure prone", "allergies", "constantly dizzy", "recurring shock", "lasting grief", "persistent headaches"

Scars

"ONE", "TWO", "THREE", "TAILSCAR", "SNOUT", "CHEEK", "SIDE", "THROAT", "TAILBASE", "BELLY", "LEGBITE", "NECKBITE", "FACE", "MANLEG", "BRIGHTHEART", "MANTAIL", "BRIDGE", "RIGHTBLIND", "LEFTBLIND", "BOTHBLIND", "BEAKCHEEK", "BEAKLOWER", "CATBITE", "RATBITE", "QUILLCHUNK", "QUILLSCRATCH", "HINDLEG", "BACK", "QUILLSIDE", "SCRATCHSIDE", "BEAKSIDE", "CATBITETWO", "FOUR", "LEFTEAR", "RIGHTEAR", "NOTAIL", "HALFTAIL", "NOPAW", "NOLEFTEAR", "NORIGHTEAR", "NOEAR", ["SNAKE", "TOETRAP", "BURNPAWS", "BURNTAIL", "BURNBELLY", "BURNRUMP", "FROSTFACE", "FROSTTAIL", "FROSTMITT", "FROSTSOCK", "TOE", "SNAKETWO"]

Tip

If you would like a visual reference for how each scar appears on the sprite, please check the Scar Visual Guide.

Backstories

You can use either the backstory pool name, or an individual backstory name. When using a backstory pool, please be sure to check that all the backstories contained within will have text suitable for your needs. You can find the backstory text within resources/dicts/backstories.json

BACKSTORY POOL NAMES BACKSTORIES
"clan_founder_backstories" "clan_founder"
"clanborn_backstories" "clanborn"
"outsider_roots_backstories" "outsider_roots1", "outsider_roots2"
"half_clan_backstories" "halfclan1", "halfclan2"
"loner_backstories" "loner1", "loner2", "loner3", "loner4", "refugee2", "tragedy_survivor4", "guided3", "refugee5", "wandering_healer2"
"rogue_backstories" "rogue1", "rogue2", "rogue3", "refugee4", "tragedy_survivor2", "guided2", "refugee5", "wandering_healer1"
"kittypet_backstories" "kittypet1", "kittypet2", "kittypet3", "kittypet4", "refugee3", "tragedy_survivor3", "guided1", "refugee6"
"former_clancat_backstories" "otherclan1", "otherclan2", "otherclan3", "ostracized_warrior", "disgraced1", "disgraced2", "disgraced3", "retired_leader", "refugee1", "tragedy_survivor1", "medicine_cat", "guided4", "refugee5"
"healer_backstories" "medicine_cat", "wandering_healer1", "wandering_healer2"
"orphaned_backstories" "orphaned1", "orphaned2", "orphaned3", "orphaned4", "orphaned5", "orphaned6"
"abandoned_backstories" "abandoned1", "abandoned2", "abandoned3", "abandoned4"
"outsider_backstories" "outsider1", "outsider2", "outsider3"

Statuses

"newborn", "kitten" "apprentice", "mediator apprentice", "medicine cat apprentice", "warrior", "mediator", "medicine cat", "deputy", "leader", "elder", "any",

Other Statuses

"living", "starclan", "darkforest", "unknownresidence",

"kittypet", "loner", "rogue", "former Clancat", "exiled", "lost", "outside cat", "clancat",

Ages

"newborn", "kitten", "adolescent", "young adult", "adult", "senior adult", "senior",

Traits

"troublesome", "lonesome", "fierce", "bloodthirsty", "cold", "childish", "playful", "charismatic", "bold", "daring", "nervous", "righteous", "insecure", "strict", "compassionate", "thoughtful", "ambitious", "confident", "adventurous", "calm", "careful", "faithful", "loving", "loyal", "responsible", "shameless", "sneaky", "strange", "vengeful", "wise", "arrogant", "competitive", "grumpy", "cunning", "oblivious", "gloomy", "sincere", "flamboyant", "rebellious",

Skills

Note

Remember, skills are formatted as SKILL,#. For example, TEACHER,1 is "quick to help" and SPEAKER,4 is "eloquent speaker".

SKILL, 1 2 3 4
TEACHER, "quick to help", "good teacher", "great teacher", "excellent teacher",
HUNTER, "moss-ball hunter", "good hunter", "great hunter", "renowned hunter",
FIGHTER, "avid play-fighter", "good fighter", "formidable fighter", "unusually strong fighter"
RUNNER, "never sits still", "fast runner", "incredible runner", "fast as the wind",
CLIMBER, "constantly climbing", "good climber", "great climber", "impressive climber",
SWIMMER, "splashes in puddles", "good swimmer", "talented swimmer", "fish-like swimmer",
SPEAKER, "confident with words", "good speaker", "great speaker", "eloquent speaker",
MEDIATOR, "quick to make peace", "good mediator", "great mediator", "skilled mediator"
CLEVER, "quick witted", "clever", "very clever", "incredibly clever"
INSIGHTFUL, "careful listener", "helpful insight", "valuable insight", "trusted advisor"
SENSE, "oddly observant", "natural intuition", "keen eye", "unnatural senses"
KIT, "active imagination", "good kitsitter", "great kitsitter", "beloved kitsitter",
STORY, "lover of stories", "good storyteller", "great storyteller", "masterful storyteller"
LORE, "interested in Clan history", "learner of lore", "lore keeper", "lore master"
CAMP, "picky nest builder", "steady paws", "den builder", "camp keeper"
HEALER, "interested in herbs", "good healer", "great healer", "fantastic healer"
STAR, "curious about StarClan", "connection to StarClan", "deep StarClan bond", "unshakable StarClan link",
DARK, "interested in the Dark Forest", "Dark Forest affinity", "deep Dark Forest bond", "unshakable Dark Forest link",
OMEN, "interested in oddities", "omen seeker", "omen sense", "omen sight"
DREAM, "restless sleeper", "strange dreamer", "dream walker", "dream shaper"
CLAIRVOYANT, "oddly insightful", "somewhat clairvoyant", "fairly clairvoyant", "incredibly clairvoyant"
PROPHET, "fascinated by prophecies", "prophecy seeker", "prophecy interpreter", "prophet"
GHOST, "morbid curiosity", "ghost sense", "ghost sight", "ghost speaker"

Snippet Lists

These abbreviations can be used to insert items from snippet lists into your text. Using an abbr will add 1-3 random items from the given snippet list, formatted as a written list (i.e. "item1, item2, and item3"). The following table also displays certain categories within each snippet list that you can call. To call these categories, you can just add the category after the snippet list abbr, like so: prophecy_list_sight. You can even specify multiple categories, like so: prophecy_list_sight_touch. If you do not add a category, then every category will be used.

Full snippet lists are found in resources/dicts/snippet_collections.json. Feel free to add more options into these lists!

Snippet Sight Sound Smell Emotion Touch Taste
prophecy_list ✔️ ✔️ ✔️ ✔️ ✔️
omen_list ✔️ ✔️ ✔️ ✔️ ✔️
clair_list ✔️ ✔️ ✔️ ✔️ ✔️
dream_list
story_list

prophecy_list

Use this for amorphous, dreamy concepts.

Sense group Examples
sight blood pooling on the ground
a bird's feather
a ghostly pair of eyes
sound a kit's mewl
the rushing sound of a river
a dying promise
smell the smell of the medicine-cat den
the scent of someone long dead
the scent of another Clan
emotional the excitement of an apprentice
the feeling of flight
a half-remembered promise
touch the brush of a pelt against their own
a tail twining with their own
the warmth of a parent

omen_list

Use this for more physical ideas: odd and meaningful but still grounded in reality.

Sense group Examples
sight a five-pointed leaf
a split acorn
a dew-covered spider's web
sound a whispering on the wind
the sound of a cat no longer there
[that's all! please write more!]
smell the scent of spoiled queen's milk
the scent of a long-dead cat
[that's all! please write more!]
emotional a pervasive feeling of dread
the imprint of fangs on skin
the feeling of a hidden onlooker
touch [that's all! please write more!]

clair_list

Use this for amorphous, unclear things that already happened/could happen.

Sense group Examples
sound the rumble of many paws on the ground
a betrayal on the wind
distant wails of grief
smell the smell of kittypet food
the smell of dirt baked by the sun
a strange acidic scent
emotional blood spilt in battle
the ache of an elder's bones
oozing corruption
touch deathly still air
tails entwining
paws heavy with blood
taste the bitter taste of poppy seeds
the lingering taste of iron on the tongue
the volatile taste of berries

dream_list

Use this for dreams. These tend to be shorter, one word or phrase ideas. Examples: faith, excitement, parental pride, wishing on a star


story_list

Use this to pull the name of a story, in the vein of Aesop's Fables. Possible stories are automatically adjusted to the player's biome. Examples: The Cougar's Claws, The Cat Who Became a Porcupine, The Dead's Token


Name Guidelines

#TODO: rules regarding what is or isn't allowed in warrior names, approval processes, and loner/kittypet names

Common Errors

by summoner (clownthoughts)

Extra (trailing) commas

Trailing commas occur whenever a comma is added after a piece of code that has nothing following, in which JSONS are unable to read the rest of the code and throw errors out. Some examples of trailing commas include:

Screenshot 2024-04-17 083130 Screenshot 2024-04-17 083009

To fix trailing commas, a good start is to copy what you have added/edited and paste it into https://jsonlint.com/. The tool checks if there are any fancy characters (non-ASCII), trailing commas, or missing commas, then directs you and what to remove/add.

Screenshot 2024-04-17 181501 Screenshot 2024-04-17 181525

Missing commas

Missing commas occur whenever a comma separating two "keys-values" is deleted or left off, leaving the JSON unable to fully read the code. Some examples include:

Screenshot 2024-04-17 185427

To fix missing commas, a good start is to copy what you have added/edited and paste it into https://jsonlint.com/. As previously mentioned, the tool checks if there is any issues within the JSON, and notifies if there is any.

Screenshot 2024-04-17 185356

Non-ASCII characters

Non-ASCII characters (characters not in the American Standard Code for Information Interchange) are often due to fancy quotation marks (“”) or misplaced characters. Some examples include:

Screenshot 2024-04-17 190152

To fix or identify non-ASCII characters, a good place to start is to copy what you have added/edited and paste it into https://jsonlint.com/. As previously mentioned, the tool checks if there are any issues within the JSON, and notifies if there is any.

Screenshot 2024-04-17 190457

Error2

With the creation of a pronoun system, all new events going into the official developmental version of ClanGen should be pronoun and verb tagged beforehand, just to make the transition smoother. If, while editing or adding new thoughts to any of the jsons, you boot up the game and notice your thought shows "error2" in place of a pronoun or verb, then there was a misspelling or mis-formatting of the code.

Pronoun tags

Pronoun tags are the code replacements for singular they/them within the text, as it sets up a framework for custom pronouns to be used instead of ClanGen relying on being gender neutral within the text. The pronouns are represented by {PRONOUN/cat/pronoun}, with cat representing any acronym that can be replaced by a cats name (m_c, r_c, p_l, s_c, etc) and pronoun representing the type of pronouns used (subjective, objective, possessive, etc). If the code was to get messed up in any way (IE misspelling subjective, or doing r_l), then it creates an error2 message within the thought.

Screenshot 2024-04-17 111107

The best ways to fix this is to first, double check that all the pronouns are properly tagged and rely on copy and pasting the actual filled out versions of the code, or to copy and paste your code into Clangen Pronoun Tag Tester (cgen-tools.github.io), which will show if the thought has an error in the tagging and makes sense given different pronouns

Verb tags

Verb tags, much similar to pronoun tags, serve to procedurally change verbs to match a cat's chosen pronoun. In ClanGen, they/them is used both singular and plural, thus the text uses verbs that make sense grammatically (are instead of is, were instead of was, or have instead of has), however custom pronouns will need their specific verbs. Consequently, verbs that need to be changed when pronouns are changed, are replaced with {VERB/cat/plural/singular}; cat representing any acronym that can be replaced by a cats name (m_c, r_c, p_l, etc) while plural/singular represent the versions of the verb.

Screenshot 2024-04-17 211211

The best ways to fix this is to first, double check that all the pronouns are properly tagged and rely on copy and pasting the actual filled out versions of the code ( {VERB/cat/plural/singular} ), or to copy and paste your code into Clangen Pronoun Tag Tester (cgen-tools.github.io), which will show if the thought has an error in the tagging and makes sense given different pronouns