From faedc88c16c73ea6574a18162beac77b83ac16ad Mon Sep 17 00:00:00 2001 From: rpdeshaies Date: Thu, 7 Dec 2023 10:06:25 -0500 Subject: [PATCH] feat: tension engine --- .../projects/[projectSlug]/pure.tsx | 7 +- bun.lockb | Bin 606153 -> 606153 bytes public/catalog/creators/gamenomicon/index.ts | 7 +- .../gamenomicon/tension-engine/image.jpg | Bin 0 -> 29055 bytes .../tension-engine/images/tension-logo.png | Bin 0 -> 15917 bytes .../tension-engine/images/tension-spring.png | Bin 0 -> 9756 bytes .../gamenomicon/tension-engine/index.md | 553 ++++++++++++++++++ .../gamenomicon/tension-engine/index.ts | 20 + 8 files changed, 584 insertions(+), 3 deletions(-) create mode 100644 public/catalog/creators/gamenomicon/tension-engine/image.jpg create mode 100644 public/catalog/creators/gamenomicon/tension-engine/images/tension-logo.png create mode 100644 public/catalog/creators/gamenomicon/tension-engine/images/tension-spring.png create mode 100644 public/catalog/creators/gamenomicon/tension-engine/index.md create mode 100644 public/catalog/creators/gamenomicon/tension-engine/index.ts diff --git a/app/(pages)/creators/[creatorSlug]/projects/[projectSlug]/pure.tsx b/app/(pages)/creators/[creatorSlug]/projects/[projectSlug]/pure.tsx index 76a8380..9642173 100644 --- a/app/(pages)/creators/[creatorSlug]/projects/[projectSlug]/pure.tsx +++ b/app/(pages)/creators/[creatorSlug]/projects/[projectSlug]/pure.tsx @@ -287,6 +287,9 @@ export function ProjectPage(props: { fontSize: "1.125rem", lineHeight: "1.75rem", }, + "& a": { + textDecoration: "underline", + }, [`& [id='${scrollTo}']`]: { borderBottom: `4px solid`, @@ -431,8 +434,8 @@ export function ProjectPage(props: { props.doc.previousPage && props.doc.nextPage ? "space-between" : props.doc.previousPage - ? "flex-start" - : "flex-end" + ? "flex-start" + : "flex-end" } > {props.doc.previousPage && ( diff --git a/bun.lockb b/bun.lockb index 7e962b993a1b6f0ec0b399ae6632b347a0a6831c..bd21bc21ad258ef0ccde513efc927c3d104da452 100755 GIT binary patch delta 47 zcmX^4U*+U~m4+6^7N!>F7M2#)Eo>*%*%{+3^bGWj+b^iI0Wmueb8Nq$&iPXu0JQTF ASpWb4 delta 47 wcmX^4U*+U~m4+6^7N!>F7M2#)Eo>*%*_jx?p#6e68xXStF~{}`>YP8t0hjL(1poj5 diff --git a/public/catalog/creators/gamenomicon/index.ts b/public/catalog/creators/gamenomicon/index.ts index fd0ae35..3cba003 100644 --- a/public/catalog/creators/gamenomicon/index.ts +++ b/public/catalog/creators/gamenomicon/index.ts @@ -5,7 +5,12 @@ export default function getData(): ICreatorData { name: "Gamenomicon", links: { Website: "https://www.gamenomicon.com/", - twitter: "https://twitter.com/the_gamenomicon", + "Itch.io": "https://gamenomicon.itch.io/", + DriveThruRPG: "https://www.drivethrurpg.com/browse/pub/11735/Gamenomicon", + Threads: "https://www.threads.net/@gamenomicon", + Bluesky: "https://bsky.app/profile/gamenomicon.bsky.social", + Twitter: "https://twitter.com/the_gamenomicon", + Facebook: "https://www.facebook.com/Gamenomicon", }, }; } diff --git a/public/catalog/creators/gamenomicon/tension-engine/image.jpg b/public/catalog/creators/gamenomicon/tension-engine/image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b3edc9f2e4a0cbcce52e807400c9646f64bbb8d4 GIT binary patch literal 29055 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

I<{c3IL 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

A)V~#%!@IYMcA`(k!u` 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 literal 0 HcmV?d00001 diff --git a/public/catalog/creators/gamenomicon/tension-engine/images/tension-logo.png b/public/catalog/creators/gamenomicon/tension-engine/images/tension-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8ccf9f12fdf907ddb78b8f384703609c397ef005 GIT binary patch literal 15917 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 literal 0 HcmV?d00001 diff --git a/public/catalog/creators/gamenomicon/tension-engine/images/tension-spring.png b/public/catalog/creators/gamenomicon/tension-engine/images/tension-spring.png new file mode 100644 index 0000000000000000000000000000000000000000..4e93223cb2491773b677d4144fa37b9b2a4e83a5 GIT binary patch literal 9756 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 JYNaef{|5m6ViW)X literal 0 HcmV?d00001 diff --git a/public/catalog/creators/gamenomicon/tension-engine/index.md b/public/catalog/creators/gamenomicon/tension-engine/index.md new file mode 100644 index 0000000..98d83a6 --- /dev/null +++ b/public/catalog/creators/gamenomicon/tension-engine/index.md @@ -0,0 +1,553 @@ +# What Is The Tension Engine + +The Tension Engine SRD contains the building blocks for a d6 dice pool-based tabletop roleplaying system first used in the horror game Party First. Included here are a variety of rules and example applications as well as some suggested options for customization and hacking of the system. + +The Tension Engine is designed to offer cinematic pacing of building stress that leads to eventual bursts of surprising action, only to build once more. + +## Licensing + +The Tension Engine SRD is licensed under CC BY 4.0. For further information please see the Licensing section at the end of the SRD. + +## Credits + +Original design and development by Will Lentz and Brett Zeiler for Party First published by Gamenomicon. + +## Links + +[Licensing Information](http://creativecommons.org/licenses/by/4.0/) + +[Gamenomicon Itch Page](https://gamenomicon.itch.io/) + +[Gamenomicon DriveThruRPG Page](https://www.drivethrurpg.com/browse/pub/11735/Gamenomicon) + +[Gamenomicon Website](https://gamenomicon.com/) + +[Gamenomicon Facebook](https://www.facebook.com/Gamenomicon) + +[Gamenomicon Threads](https://www.threads.net/@gamenomicon) + +[Gamenomicon Twitter](https://x.com/the_gamenomicon) + +[Gamenomicon Bluesky](https://bsky.app/profile/gamenomicon.bsky.social) + +[Gamenomicon Discord Server](https://discord.gg/MYdMyqAkGv)[Gamenomicon Instagram](https://instagram.com/gamenomicon) + +# The Game + +The Tension Engine is a set of basic building blocks for a pen and paper role-playing game. It's a way to tell a story with others by using physical objects, unlike digital games. Full Tension Engine games provide a backstory and world with rules, and the players craft the details of the story. You'll need to write down details and progress with a pen and paper to keep track. + +## The Players + +Most participants will create a single character to control for the game or that character's life (whichever is shorter). You'll make decisions, converse, and act out as them, like being the main characters in a movie. + +## The Game Master + +The Game Master (GM) is a combination of scriptwriter, director, and supporter. While Players represent the main characters, GMs are the world. They determine the plot and act out the lives of other characters. Everyone is a player, and they are all working together to tell a compelling story. + +## What You Need + +To play a Wound by Tension game (games based on the Tension Engine) you'll need a copy of the appropriate game book, a character sheet for each player, and a way to mark down stats and relevant changes such as damage, several six-sided dice (hereafter called d6) for each player – probably 5-10 each. + +## Safety Tools + +Player safety is an important element of collaborative storytelling. In keeping with the cinematic theme of the Tension Engine, you might think of these tools as being akin to the US movie rating system of G, PG, PG-13, and R. They're a way to help make sure that folks know what they're getting into upfront and avoid content that they may find objectionable or hurtful in some form. And thanks to the live action nature of roleplaying, they can even be employed in the middle of the game to help keep things on track during ongoing scenes. + +There are a variety of safety tool systems available for use. Tension Engine does not advocate the use of any particular one but instead encourages you to check out several and find the option that works best for your group. If you need a starting point, a few examples are the Lines & Veils, Red/Yellow Light, Roses & Thorns, Script Change, and X-Card. + +## Play + +Over the course of the game, players may come into conflict with each other, their adversaries, or even the environment. These moments are when you will need the previously mentioned dice. In most scenarios the GM and one other player will each be building a die pool based on the values of various stats for their characters and then rolling the pools and selecting two dice to use for their total that round. Standard player characters for instance will be selecting the appropriate inherent Attribute of their character plus the appropriate Skill being applied to this situation to make their pool. Full resolution rules are discussed later in the document. + +# Character Creation + +Each player aside from the GM will need to create a character that they will portray. Creation can be distilled down to a simple step-by-step process below. Make sure to record all of your character's chosen stats and abilities on a character sheet for later reference during play. + +## 1: Make Your Plan: + +Think a little bit about what sort of character you would like to play. Decide on the general feel for their personality such as cunning or confrontational and don't forget to give them a name. + +## 2: Choose Your Class: + +Depending on the game, classes may represent your character's occupation, background, or social strata. Select a class for your character and note any specialties and bonuses. + +## 3: Determine Your Attributes: + +Attributes note the inherent body or mental capabilities of a character. All characters start with 2 points in each Attribute, as well as bonuses from their class. Players can allocate 2 more points as they wish, with a maximum of 5 in any Attribute. + +## 4: Determine Your Skills: + +Skills represent the training and experience a character has in various activities. Characters start with 0 points in each Skill, plus bonuses from their class, and players can allocate up to 10 extra points however they like among all Skills. The maximum value of any Skill is 5. + +## 5: Note Your Abilities: + +Each character may have access to unique abilities based on their class. Make note of these abilities and whether they can be used once each game, once each session, or may be used multiple times with no limit. + +## 6: Select Your Advantages: + +Advantages are specific quirks, accomplishments, techniques, and more that a character may have which make them unique. Each character starts with two Advantages. One is dictated by the character's class. The second Advantage may be selected from the full list. + +## 7: Build Your Pools: + +Each character starts with Health and Willpower pools as dictated by their class. Players may allocate an additional 5 points however they would like between their Health and Willpower. + +## 8: Get An Adventure Point: + +Each character begins the game with 1 Adventure Point. Additionally, classes include a narrative prompt that can be used to gain additional Adventure Points throughout the game (in addition to any other means by which a character may obtain Adventure Points). + +## Example Classes + +### The Warrior + +The classic fantasy warrior may be a brute who believes that might makes right or a noble knight fighting to protect those who cannot protect themselves. + +**Attributes:** Vigor +1, Presence +1 + +**Skills:** Aim +1, Athletics +1, Melee +1, Socialize +1 + +**Abilities:** + +_Powerful Blow:_ You may spend an Adventure Point when dealing damage to an Adversary. This damage may not be reduced in any way. + +**Advantage:** Weapon Master + +**Health:** 7 **Willpower:** 3 + +**Gain an Adventure Point when** an order you give is successful. + +### The Wastrel + +Wastrels are rogues and ne'er-do-wells of a variety of stripes from con artists to assassins and everything in between. A few even have a heart of gold. + +**Attributes:** Comprehension +1, Presence +1 + +**Skills:** Aim +1, Hide +1, Investigation +1, Steal +1 + +**Abilities:** + +_Ace Up Your Sleeve:_ Once per session, before rolling dice in a Conflict, you may choose to succeed. Your total is considered to be one higher than your opposition. + +**Advantage:** Master Thief + +**Health:** 5 **Willpower:** 5 + +**Gain an Adventure Point when** you convince someone of a lie. + +### The Wizard + +Wizards actually encompass a wide range of individuals who may get their power through sacred rites, potent bloodlines, or the study of dusty tomes. Regardless, they all have the power of magic. + +**Attributes:** Comprehension +1, Discipline +1 + +**Skills:** Coerce +1, Investigation +1, Knowledge +1, Mysticism +1 + +**Abilities:** + +_Forbidden Ritual:_ Once per game after you defeat an Adversary, you may recover an amount of Health equal to the Adversary's Power and an amount of Willpower equal to the Adversary's Dread. + +**Advantage:** Sorcery + +**Health:** 3 **Willpower:** 7 + +**Gain an Adventure Point when** you uncover a mystic secret. + +## Example Attributes + +Tension Engine characters have four Attributes used to represent their predisposition toward activities. Each character starts with 2 points in each Attribute and may additionally receive points from their chosen class. They can assign two additional points to any Attribute, up to a maximum value of 5. + +The basic Attributes are: + +### Vigor + +Vigor represents a character's physical strength and vitality. The higher this Attribute is the stronger, more agile, or more hearty the character is. + +### Comprehension + +Comprehension represents a character's mental acuity. The higher this Attribute is the more intelligence or wisdom this character possesses. + +### Presence + +Presence represents a character's social standing. The higher this Attribute is the more pull or sway this character has with other people. + +### Discipline + +Discipline represents a character's emotional fortitude. The higher this Attribute is the greater grit, willpower, and grounding in reality the character possesses. + +## Example Skills + +Tension Engine characters have Skills that represent their aptitude in certain tasks. A contested action will use one Skill to add dice to the pool equal to its value. Every character starts with 0 Skill points, along with class bonuses, and 10 points to customize. The maximum Skill value is 5. + +The basic Skills are: + +### Aim + +Use this Skill to fight at long range. Weapons used with this skill could include a thrown knife or bow and arrow. + +### Athletics + +Use this Skill for any strength, dexterity, or stamina-related non-combat maneuver such as balancing on a beam, leaping over an obstacle, or moving a heavy object. + +### Coerce + +Use this Skill for social interactions with a negative connotation such as lying, bribing, or intimidating someone. + +### Hide + +Use this Skill for any attempt to evade detection by people, monsters, or technology. + +### Investigation + +Use this Skill to actively perceive something including detecting lies, surveying a crime scene, or researching a piece of lore in a book. + +### Knowledge + +Use this Skill to recall important and pertinent information on hand, from your memory, or that someone else may have said. + +### Melee + +Use this Skill to fight at close range. Weapons used with this skill could include swords, broken bottles, or bare hands. + +### Mysticism + +Use this Skill for any connection to the otherworldly. This could include priestly prayers and rites, sorcerous rituals, or ancient wizardly magics. + +### Socialize + +Use this Skill for social interactions with a positive connotation such as glad-handing, currying political favor, or complimenting someone. + +### Steal + +Use this Skill for a variety of underhanded and criminal acts including pickpocketing, picking a lock, or embezzlement. + +## Example Advantages + +Advantages are specific qualities that give characters an edge in certain situations. Characters have one Advantage dictated by their class and may choose one more. These can have varied and potent effects. + +### Careful + +When rolling dice in a Conflict, you may spend one Adventure Point. During this Conflict, the GM may not add more than one point to the Tension Pool. + +### Healer + +You may spend a Party Point to attempt to heal an ally. Initiate a Conflict against the Environment. If you succeed, recover an amount or Health or Willpower from an ally equal to the difference in the values of each side. + +### Master Thief + +Spend an Adventure Point to pick a lock, palm an item, or pick a pocket without rolling a Conflict. + +### Sorcery + +Through countless hours studying the eldritch you have learned to use otherworldly powers for yourself. You may always spend an Adventure Point to: + +● Roll an attack against an Adversary as a Conflict. You may roll either Comprehension or Discipline + Mysticism for this attack. + +● The GM tells you the Power, Dread, and Features an Adversary possesses. + +● Reroll a number of dice rolled in a Conflict equal to your Ranks in Mysticism. These dice may not be rerolled again for any reason. + +● Restore Health to an ally equal to your Ranks in Mysticism. + +When you use an effect of Sorcery, you suffer one point of Willpower damage. + +### Weaponmaster + +Select a type of weapon (i.e. bow, halberd, knife, short sword, etc.). When rolling in a conflict while using this type of weapon, you may reroll a number of dice equal to your Vigor. + +## Resource Pools + +There are several resource pools in the Tension Engine, some of which apply to player characters and some which are only used by the GM. + +### Health + +Health evaluates a character's physical capabilities. It's usually determined by class, plus an extra 5 points to allocate between Health and Willpower at character creation. If Health ever reaches 0, that character is eliminated from the game. + +#### Gaining Health + +Characters may gain Health through the use of character abilities or advantages that represent healing in some fashion. They may not go above their current maximum, however. + +### Willpower + +Willpower evaluates a character's mental capabilities. It's usually determined by class, plus an extra 5 points to allocate between Health and Willpower at character creation. If Willpower ever reaches 0, that character is eliminated from the game. + +#### Gaining Willpower + +Characters may gain Willpower through the use of character abilities or advantages that represent restoration in some fashion. They may not go above their current maximum, however. + +### Adventure Points + +Adventure Points measure in-game action potential. When spent and generated, they enable players to use Advantages, Abilities, and Skills in Conflicts. Characters aren't eliminated if the pool reaches 0, but are limited in what they can do. Characters start the game with 1 Adventure Point. + +#### Gaining Adventure Points + +Characters may gain Adventure Points based on die rolls during conflict resolution. By default they gain an Adventure Point for each 6 they roll in a pool. The method of gaining AP is a common tweak in various hacks and a few other options are presented in the Hacks and Options section below. + +### Tension + +Tension is a pool for the GM and will be discussed in detail later in this document, but in short represents the building stress, pressure, and conflict of the world around the characters. + +#### Gaining Tension + +The GM gains Tension Points for the pool based off the rolls of the other player characters – not GM rolls. By default, they gain a Tension for each 1 that rolled in a pool. The method of gaining TP is a common tweak in various hacks and a few other options are presented in the Hacks and Options section below. + +# Conflict Resolution + +At certain moments of conflict or stress in the game, Conflict Resolution becomes a necessary aspect of play. It may be in an indirect form against the Environment such as unlocking a door while a ravening ghoul races toward you. Or it may be a direct depiction of conflict such as attempting to kill a ravening ghoul or attempting to persuade a recalcitrant bureaucrat to take an action they do not want to do. + +The GM will determine when Conflict Resolution is needed, but generally, no roll is necessary for things a character can do during low stress routine. + +## Conflict Versus The Environment + +When a character engages in a Conflict that is not directly opposed by an Adversary, they are considered to be rolling against the Environment. This includes tasks such as trying to pick a lock, climb over a wall, investigating the scene of a crime, etc. + +When rolling against the Environment, follow these steps: + +1: The player declares an Action. + +2: The GM rolls a dice pool equal to the Tension Pool to contest it. + +3: The GM selects two dice and combines their value to create the Environment's total. The GM may spend 1 Tension Point to increase the Environment total by the amount of remaining Tension or pay any number of Tension Points to keep that many additional dice. Either of these actions may be done once per roll but not both. + +4: The player selects one Attribute and one Skill for their action and then rolls a dice pool equal to the combined value. + +5. The player selects two dice and combines their value to create the character's total. They may spend any number of Adventure Points to keep that many additional dice. + +6. Compare the two values: if the character's value is higher, they succeed; if the Environment's value is higher, they don't succeed and the Tension Pool increases by 1. Multiple attempts may be possible if allowed by the narrative, with an additional point added to Tension in order to try the Action again. However, not all Actions permit multiple attempts; an incorrectly deactivated trap is likely to spring on the initial failed attempt. + +## Conflict Versus An Adversary + +When a player is taking an Action to engage in a Conflict with an Adversary, the same general guidelines apply. In this case, any time that a character is directly confronting another human, beast, or monster, then the player rolls against that being rather than the Environment. + +When rolling against an Adversary, follow these steps: + +1: Determine the initiator, who is the one beginning the Conflict. This may be a player character or an adversary depending on the context. + +2: The initiator declares Action. + +3: The initiator builds their die pool, either with Attribute plus Skill if it is a character or using the appropriate Power or Dread Trait if it is an Adversary. + +4: The initiator rolls, then selects two dice and combines their value to create their total. If the initiator is a character, the player may spend Adventure Points to keep an additional die for each Adventure Point they spend. If the initiator is an Adversary, the GM may spend Tension Points to keep additional dice or spend one Tension to increase their total by the total amount of the Tension Pool. As in Environment Conflicts, the GM may only choose one of these two options. + +5: The defender builds their die pool, either with Attribute plus Skill if it is a character or using the appropriate Power or Dread Trait if it is an Adversary. + +6: The defender rolls, then selects two dice and combines their value to create their total. If the initiator is a character, the player may spend Adventure Points to keep additional dice as per #5 above. If the initiator is an Adversary, the GM may spend Tension Points to keep additional dice or increase their total as per #3 above. + +If multiple initiators target a defender with the same Action, the defender rolls once and applies the total to all. If different Actions are used, each initiator must be rolled against separately. + +7: Compare the totals of the initiator and defender. Whichever side rolled the highest is considered to have succeeded at the Action, even if success on the side of the defender is simply avoiding an Action. + +In combat, if the initiator rolls higher than the defender, the difference in value between the two scores is dealt as damage to the defender. If the defender rolls higher, no damage occurs. + +# More For GMs + +**The Tension Pool** + +Tension Points are the stress, pressure, and conflict of being in daring situations. The GM begins the game with a number of Tension Points equal to the number of players and gains more over the course of play each time the players roll a 1 in their pool of dice There is no upper limit on the number of Tension Points that may be in the pool, but it may not be reduced below 2. + +Tension is used to make things more challenging for the players, through conflict rolls against the Environment or being spent to boost Conflict totals or to keep additional dice. As well, many Adversaries may have special abilities called Features which might require Tension Points to be spent to generate effects. + +### Exploding Tension + +The Tension Pool also has another inherent property that players and GMs should watch closely. If the total points in the Tension Pool ever climb to a multiple of ten it explodes! This means that stress has hit a breaking point and _something_ is about to happen. + +Before beginning an Adventure, determine six events that would startle players or make their situation more difficult (nothing should benefit them) and note that on a table. When a Tension Explosion occurs, roll a d6 and work the resulting event into the story secretly. + +While GMs are encouraged to build their own Tension Tables, here is an example: + +**Delving** + +1.An Adversary bursts through an opening, thicket, door, wall, etc., and attacks. + +2.Ominous drumbeats can be heard in the distance. Add two Tension Points to the pool. + +3.A group member experiences a horrific dream or vision. That character cannot use Advantages during the next Conflict. + +4.A shadowy figure is glimpsed but cannot be found or caught. Add one Tension Point to the pool. + +5.The character with the lowest Willpower suffers lethargy and in their next conflict must subtract 2 from their total. + +6.The character with the lowest health is wracked by a powerful coughing fit. They've been infected with something. That character takes one Health damage. + +## Adversaries + +Adversaries are people, beings, and monsters that oppose player characters. They come in different shapes and sizes and are used by the GM to create stress and encourage action. Their statistics are simplified to streamline GM management. + +### Human Or Monster + +Adversaries can be Human or Monster. They have the same Traits and Features, _but Monsters keep three dice in Conflicts instead of two_. Human Adversaries follow the same rules as player characters and the Environment. + +### Traits + +Unlike player characters, Adversaries are made up of very few characteristics. Rather than the list of Attributes and Skills available to player characters, Adversaries are simplified and are made up of only three Traits: Power, Dread, and Stamina. + +Power + +The Adversary's physicality is accounted for by this stat, which creates dice pools for physical tasks and attacks. Attacks made with this stat reduce the player character's Health. + +Dread + +The Adversary's cunning or otherworldly nature is represented by a single stat. It's used to create dice pools for mental tasks, as well as magical and supernatural attacks. These attacks reduce the player character's Willpower. + +Stamina + +This pool is the combined value of the Adversary's Strength and Horror. When the Adversary takes damage, this pool is reduced by that amount. Once it reached zero, the Adversary is defeated. + +### Features + +Features are the various special abilities that a wide swath of Adversaries may have. Some Adversary Features are always on and require no additional activation but some Features require the GM to expend Tension Points when the effect is used. + +Here are a few sample features: + +Armored + +Whether it's due to heavy chainmail or a stony exterior carapace, these Adversaries are very hard to damage. Reduce all damage dealt to this Adversary by 1. + +Ghostly + +These ethereal and spectral forms may be echoes of the afterlife or psychic projections of living beings. If it is night or otherwise dimly lit (such as in an underground cave), this Adversary gains +2 Dread. If it is day or otherwise brightly lit (such as by a floodlight), this Adversary gains -2 Dread. + +Quick + +These Adversaries have a blinding speed and reaction time beyond that of normal humans. Spend 1 Tension Point to take a second action with this Adversary during its turn. + +Regenerating + +Muscle, bone, and sinew regrow and heal at a prodigious rate. Each time a roll generates any number of Tension Points, this Adversary heals one Stamina. + +## Bestiary + +Here are a few sample Adversaries: + +**Bruiser** + +An average human thug. + +2 Power / 0 Dread / 2 Stamina – Human + +**Callous Golem** + +Magically animated from clay or stone, golems are difficult to harm and single-minded in pursuing their assigned task. + +3 Power / 2 Horror / 5 Stamina - Monster + +Armored. + +**Dark Shadow** + +A shadowy form, whispering in the minds of those who catch a glimpse of it, urging them toward acts of depravity. + +0 Power / 4 Dread / 4 Stamina – Monster + +Ghostly. + +**Nimble Thief** + +Supremely talented at their vocation and faster than the average human, these thieves make a living by darting in and out of places they shouldn't be. + +2 Power / 2 Dread / 4 Stamina - Human + +Quick. + +**Troll** + +Massive and thickly muscled, trolls are fearsome when angered – and their tempers are very short. Even worse, their rough, barklike skin is not only difficult to pierce, but heals at a prodigious rate. + +4 Power / 2 Dread / 5 Stamina - Monster + +Regenerating. + +# Hacks And Options + +The previously listed information includes the ground rules for the system with basic engines for Adventure and Tension Point accumulation and expenditures. However, that's not the end of it. Perhaps you'd like to drop the number of Attributes to three or expand with an additional ten skills, or maybe you'd like to experiment with different criteria for Adventure Point generation entirely. Feel free to do so! The sky is the limit. + +Here are a few options to experiment with, many of which are used in Party First. + +## Advancement And Experience + +While the Tension Engine is geared toward single-session and one-shot adventures, some players may wish to advance their characters from adventure to adventure through a longer campaign. In that case, these rules may be used. + +All players receive the same amount of Experience at the end of each session based on the accomplishments of the group as a whole. The following triggers earn Experience: + +● Gain 1 Experience for each character who survived the adventure. + +● Gain 1 Experience if the group encountered a new type of Adversary. + +● Gain 1 Experience if the group learned a new piece of relevant information about an Adversary (such as a weakness or a secret). + +● Gain 1 Experience for each unique type of Adversary defeated. + +Experience may be spent for the following advancements: + +● To raise a Trait spend Experience equal to the new level times 5. + +● To raise a Skill spend Experience equal to the new level times 3. + +● To gain a new Advantage spend 3 Experience. + +● To raise your Health or Willpower spend Experience equal to 2 times the new level. + +## Bonus Points + +A GM can reward players for excellent role-playing with an additional Adventure Point. These should be used sparingly in one-shot adventures, to encourage players to invest in their characters. + +## Keep For Points + +Using the Keep for Points rules replace the default rules for generating Adventure Points and Tension Points as listed in Conflict Resolution. + +This modification allows players greater agency in generating points for the resource pools by making all generation an active choice on their part. If a player keeps a die from their dice pool that rolled a 1, they generate one Adventure Point for themselves. If the player keeps a 6 from their character's dice pool, they generate one Tension Point for the GM. + +## Morale + +Morale is a group resource. It starts with a point for each player and can be spent to use class abilities, Advantages, or to gain extra dice in a conflict just like an Adventure Point. One point is subtracted whenever a character is eliminated from Health or Willpower reaching 0. All characters are eliminated when Morale reaches 0. + +## The Party Skill + +Using the Party Skill rules replace the default rules for generating Adventure Points and Tension Points as listed in Conflict Resolution as well as slightly modifying how character dice pools are built. + +The Party Skills list is determined by the lowest value of each Skill among all players. For example, with a group of player characters that have Aim Ranks of 4, 3, 3, 1, the Party Skill value for Aim would be 1. This is the value all Players use for unmodified rolls in Conflict, and rewards are given for using this Skill value. + +When rolling in a Conflict, players can use the Party Skill or their Personal Skill. Using the Party Skill gives 1 Adventure Point and for each 1 rolled on their dice, + +the GM may buy that as a Tension Point by paying the player an Adventure Point. Using their Personal Skill costs 1 Adventure Point; each 6 rolled adds one point to Morale, and each 1 rolled adds one point to Tension. + +When using the Party Skill, a Player can spend a Party Point to keep extra dice from their roll and add them to their total (at a 1:1 ratio). Using their Personal Skill instead, they can keep any extra dice by generating Tension Points for the GM (also at a 1:1 ratio). + +## Status Effects + +Status effects are tags attached to your character that denote an ongoing condition. They may force penalties, benefits, or open up new options when exposed to a corresponding action. Nearly any adjective can be used as a status, and GMs are encouraged to mix and match some of these examples as well as create their own. + +**Example Use:** By triggering a trap the characters are sprayed with oil and gain the FLAMMABLE status effect. If the characters take time to find a pool, lake, shower, or the like they can remove the status. Later in the adventure all characters that have the FLAMMABLE tag automatically take 2 Health damage if they are exposed to open flame. + +**Status Examples:** Afraid, Blind, Incapacitated, Poisoned, Raging + +**Consequence Examples:** act last, -1 to Conflicts using a specific Attribute, +1 to conflicts as an attacker, cannot attack, cannot spend Adventure Points + +## Time Tables + +Time Tables are used to track the progress of certain events. They are not necessary for all tasks, but the GM should keep an eye out for events where time matters. They do not replace Tension Tables, but should be used in concert. The Tension Table is there to provide a sense of uncertainty and the stress of unknown circumstances and consequences. Time Tables, on the other hand, track specific progression to known events or consequences. + +Tension Tables should be used in every game right from the start, but Time Tables should come and go as appropriate for the present action or scene within the adventure. Time Tables may have a varying number of entries such as three for short travel or ten for carefully discovering secretive information. + +**The Progression of Time** + +Time Tables progress through each step of their entries through the generation of Tension Points during play. Each time a Tension Point is generated, advance the Table Tracker once per point of Tension. It is recommended to utilize a Table Tracker to mark this progression using things like tally marks, shading segments of a clock, or collecting tokens. + +Some Time Tables are slow burns while others are a burst of adrenaline. Time will only go as fast as the number of Tension Points rolled. To induce a furious pace to the tension table the GM must require the players to roll conflicts and lots of them. For a long-term building dread, allow the players a more sandbox approach and let them explore areas, only requiring conflicts if certain situations arise. + +**Danger Time Tables** + +The most basic use of Time Tables in the Tension Engine is to track progress toward a dangerous occurrence or goal of some kind. In this instance, the Table Tracker ticks upward until the dangerous thing happens or the players clearly avert that danger. These Time Tables will list a particular number of successful conflicts of some type that the party must fulfill in order to avert the danger or achieve the goal. The classic example would be the search for the bomb referenced above. The clock steadily fills until the bomb explodes or the players find and defuse the bomb. + +Note that in some situations, players may fail a roll while acting under a Danger Time Table but elect to take the action again. In the bomb defusal example, a player may fail their first attempt while the 3 segment Table Tracker is at 1 and only generate 1 additional Tension. In this case, they may try again while the Tracker is at 2. In this case, if they fail again and generate the Tension necessary to advance to 3, the bomb explodes at last. + +# Licencing + +The Tension Engine SRD is licensed under Creative Commons Attribution CC-BY 4.0. This license requires that reusers give credit to the creator. It allows reusers to distribute, remix, adapt, and build upon the material in any medium or format, even for commercial purposes. Credit must be given to the creator. + +This means that you can use it in whatever project of your own that you would like. Use these base rules as written, rename things, chop it up and rearrange it for your own game. Whatever inspiration directs you to do! Just be sure that you give credit for where the original came from. + +## Attribution + +The Tension Engine © 2023 by William Lentz for Gamenomicon is licensed under CC BY 4.0. To view a copy of this license, visit [https://creativecommons.org/licenses/by/4.0/](https://creativecommons.org/licenses/by/4.0/) + +## Wound By Tension + +If you used the Tension Engine SRD as the basis for your own project, it is encouraged to note that it is "Wound by Tension" to help potential players identify games that share a similar root. This graphic is also provided for your use under the same terms. It is inspired by antique clocks powered by tightly wound springs which would unleash their tension to turn the clock or strike the chimes. diff --git a/public/catalog/creators/gamenomicon/tension-engine/index.ts b/public/catalog/creators/gamenomicon/tension-engine/index.ts new file mode 100644 index 0000000..e16c7ff --- /dev/null +++ b/public/catalog/creators/gamenomicon/tension-engine/index.ts @@ -0,0 +1,20 @@ +import { IProjectData } from "public/catalog/loader"; + +export default function getData(): IProjectData { + return { + name: "Tension Engine", + description: + "Toolkit to wind your own games with tension, creating cinematic pacing of the environment and exciting breaks.", + license: "CC BY 4.0", + links: { + "itch.io": "https://gamenomicon.itch.io/tension-engine-srd", + }, + headingFont: "Oswald", + headingUppercase: true, + textFont: "Quattrocento", + css: ` + @import url('https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;500;700&display=swap'); + @import url('https://fonts.googleapis.com/css2?family=Quattrocento:wght@400;700&display=swap'); + `, + }; +}