{"id":3346,"date":"2026-10-01T12:30:00","date_gmt":"2026-10-01T16:30:00","guid":{"rendered":"https:\/\/zero-cooldown.com\/?p=3346"},"modified":"2026-08-23T10:51:36","modified_gmt":"2026-08-23T14:51:36","slug":"rule-lite-ttrpg-design","status":"publish","type":"post","link":"https:\/\/zero-cooldown.com\/fr\/2026\/10\/01\/rule-lite-ttrpg-design\/","title":{"rendered":"I Was Building Something Sol Fracta Already Had"},"content":{"rendered":"<h3 class=\"wp-block-heading\">Rule-Lite TTRPG Design: When the System Already Has the Answer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I was in the middle of designing the construction contribution system when I caught myself doing the thing I specifically built Sol Fracta to prevent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let me back up.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Construction projects in <a href=\"https:\/\/zero-cooldown.com\/fr\/sol-fracta\/\">Sol Fracta<\/a> run on <a href=\"https:\/\/zero-cooldown.com\/fr\/2026\/06\/25\/ttrpg-hit-points-resource\/\" data-type=\"link\" data-id=\"https:\/\/zero-cooldown.com\/2026\/06\/25\/ttrpg-hit-points-resource\/\">EV: \u00c9nergie Vitale<\/a>, the game&#8217;s unified resource that functions as hit points, stamina, time, and narrative currency simultaneously. The colony sheet tracks EV per project. The loop is clean: cycles pass, EV accumulates or drains based on what the players do, buildings rise or collapse accordingly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The question I was wrestling with: how do player characters <em>actively contribute<\/em> to a construction project? Not passively \u2014 not just &#8220;your faction controls this building, so it progresses&#8221; \u2014 but <em>actively<\/em>, with rolls, with stakes, with the feeling that what your character does during a cycle actually matters to the thing being built.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My first instinct was wrong in a very predictable way.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">I started drafting something like: &#8220;The player declares how many EV they&#8217;re investing in the project this cycle. They allocate from their pool. Done.&#8221; Clean, transactional, simulationist. Also completely dead at the table. No tension. No decision. You&#8217;re not playing a character; you&#8217;re moving a resource from one box to another. Nobody signed up for spreadsheet management.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So I pivoted: &#8220;What if it&#8217;s a roll? The player makes a skill check. Success = EV added to the project. Failure = nothing, or partial contribution.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Better, but immediately I hit something uncomfortable. The EV cost on a roll, the 1 EV that a consequence pulls from you, didn&#8217;t quite fit. If you&#8217;re <em>contributing<\/em> EV to a project, and you also <em>spend<\/em> EV as a consequence on the roll&#8230; what does that mean? Are you spending yourself to give to the project? Are there two economies here? Is the consequence EV a <em>tax<\/em> on top of your contribution?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I wrote, to myself: <em>&#8220;Rather than making this clunky, &#8216;I&#8217;m putting my 5 EV into this project this cycle&#8217;, shouldn&#8217;t we just use rolls, but rolls that don&#8217;t necessarily cost EV? I have a bit of a coherence problem.&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That last sentence is doing a lot of work. &#8220;A bit of a coherence problem.&#8221; It&#8217;s the polite version of: <em>I&#8217;m about to bolt a new system onto this game because I forgot how the existing one actually works.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s what happened next, and it&#8217;s a little embarrassing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I was walking through the mechanic with the AI, using it as a sounding board, a design partner, a way to stress-test ideas without calling a playtest session at 11pm on a Tuesday, and it reflected back at me something I had written. Months ago. The consequence system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>&#8220;If there&#8217;s a consequence, you can charge 1 EV per roll to the characters.&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oh.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Right.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The 1 EV on a consequence isn&#8217;t an arbitrary cost. It&#8217;s the game asking: what did this action cost you? Stress. Physical effort. A close call. Something you burned through to make that moment happen. That&#8217;s what EV represents, the totality of a person&#8217;s capacity to act under pressure. And when a player makes a roll to actively contribute to a construction project, and it&#8217;s hard, and they barely pull it off? Yeah. That costs something. It costs exactly 1 EV.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I hadn&#8217;t invented a coherence problem. I&#8217;d invented a solution to a problem I&#8217;d already solved.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">The design insight here isn&#8217;t complicated, but it&#8217;s worth sitting with: <em>a well-designed Rule-Lite system has more depth than its creator keeps in their head at any given moment.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s really incredible. After realizing it, you feel a bit dumb and smart at the same time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sol Fracta runs on one mechanical language. One D10. One threshold. Three outcomes. Consequences that pull from a unified list. No subsystems. No special cases. The discipline of building that way: refusing to add a new rule every time a new fiction demands resolution, means that when you need to handle <em>construction contribution<\/em>, you don&#8217;t build a Construction Contribution Subsystem. You ask: how does the existing language apply here?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And the answer is: a roll. With consequences, like every other roll. Including the 1 EV cost if it&#8217;s not clean. Which creates exactly the texture you want: the engineer who pushes too hard this cycle and arrives at the next one slightly more depleted, slightly more worn down. The game represents that. It always did.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The AI didn&#8217;t invent the solution. It reminded me of my own system. That&#8217;s a different thing. That&#8217;s the value of having an external voice in your design process, not to generate ideas you don&#8217;t have, but to hold the whole system in view while you&#8217;re tunneled into a specific problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I was in the tunnel. The tunnel was &#8220;how do I make construction contribution feel meaningful?&#8221; The answer was two meters to my left. The 1 EV consequence on a consequential roll already does exactly that.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">This keeps happening with Sol Fracta, and I think it&#8217;s a sign that the core is actually solid.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every time I feel the pull toward a new mechanic \u2014 a new subsystem, a new exception, a new rule to handle an edge case \u2014 The discipline of rule-lite <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tabletop_role-playing_game\" target=\"_blank\" rel=\"noopener\">JDR <\/a>design means asking one question before building anything new: does the existing language already handle this? Usually it does. Sometimes it handles it in a way I&#8217;d temporarily forgotten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rule-Lite design isn&#8217;t minimalism for its own sake. It&#8217;s not about being clever or constrained. It&#8217;s about building a system that&#8217;s complete enough to reuse, rather than one that grows a new limb every time it encounters friction. <\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em><a href=\"https:\/\/zero-cooldown.com\/fr\/2026\/06\/04\/ttrpg-elegant-design\/\" data-type=\"link\" data-id=\"https:\/\/zero-cooldown.com\/2026\/06\/04\/ttrpg-elegant-design\/\">Easy to learn, hard to master.<\/a><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The construction contribution mechanic is now exactly what it should be: a roll, with stakes, with consequences, with EV cost when the roll is hard, feeding directly into the project&#8217;s EV tracker. Same language. New application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zero new rules.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Have you ever started designing a new mechanic only to realize you&#8217;d already built the solution somewhere else? How do you keep track of what your own rule-lite TTRPG design system can do before reaching for something new?<\/p>","protected":false},"excerpt":{"rendered":"<p>In the middle of a new mechanic, I realized Sol Fracta&#8217;s rule-lite TTRPG design had already solved the problem six months earlier. Here&#8217;s what that taught me.<\/p>","protected":false},"author":248584093,"featured_media":3745,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","_swt_meta_header_display":false,"_swt_meta_footer_display":false,"_swt_meta_site_title_display":false,"_swt_meta_sticky_header":false,"_swt_meta_transparent_header":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false},"categories":[1449],"tags":[1506,1507,1453,1505,1470,1451,1452,1464],"class_list":["post-3346","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sol-fracta","tag-design-process","tag-ev-system","tag-game-design","tag-indie-rpg-development","tag-rule-lite-rpg","tag-science-fiction","tag-sol-fracta","tag-ttrpg-design"],"jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=1006%2C564&ssl=1",1006,564,false],"thumbnail":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=150%2C150&ssl=1",150,150,true],"medium":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=300%2C168&ssl=1",300,168,true],"medium_large":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=768%2C431&ssl=1",768,431,true],"large":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=1006%2C564&ssl=1",1006,564,true],"1536x1536":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=1006%2C564&ssl=1",1006,564,true],"2048x2048":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=1006%2C564&ssl=1",1006,564,true],"trp-custom-language-flag":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=18%2C10&ssl=1",18,10,true],"newspack-article-block-landscape-large":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=1006%2C564&ssl=1",1006,564,true],"newspack-article-block-portrait-large":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=900%2C564&ssl=1",900,564,true],"newspack-article-block-square-large":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=1006%2C564&ssl=1",1006,564,true],"newspack-article-block-landscape-medium":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=800%2C564&ssl=1",800,564,true],"newspack-article-block-portrait-medium":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=600%2C564&ssl=1",600,564,true],"newspack-article-block-square-medium":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=800%2C564&ssl=1",800,564,true],"newspack-article-block-landscape-intermediate":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=600%2C450&ssl=1",600,450,true],"newspack-article-block-portrait-intermediate":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=450%2C564&ssl=1",450,564,true],"newspack-article-block-square-intermediate":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=600%2C564&ssl=1",600,564,true],"newspack-article-block-landscape-small":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=400%2C300&ssl=1",400,300,true],"newspack-article-block-portrait-small":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=300%2C400&ssl=1",300,400,true],"newspack-article-block-square-small":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=400%2C400&ssl=1",400,400,true],"newspack-article-block-landscape-tiny":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=200%2C150&ssl=1",200,150,true],"newspack-article-block-portrait-tiny":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=150%2C200&ssl=1",150,200,true],"newspack-article-block-square-tiny":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=200%2C200&ssl=1",200,200,true],"newspack-article-block-uncropped":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=1006%2C564&ssl=1",1006,564,true],"mailpoet_newsletter_max":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=1006%2C564&ssl=1",1006,564,true],"woocommerce_thumbnail":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=300%2C300&ssl=1",300,300,true],"woocommerce_single":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=600%2C336&ssl=1",600,336,true],"woocommerce_gallery_thumbnail":["https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?resize=100%2C100&ssl=1",100,100,true]},"uagb_author_info":{"display_name":"Gary","author_link":"https:\/\/zero-cooldown.com\/fr\/author\/gary\/"},"uagb_comment_info":0,"uagb_excerpt":"In the middle of a new mechanic, I realized Sol Fracta's rule-lite TTRPG design had already solved the problem six months earlier. Here's what that taught me.","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfEyfE-RY","jetpack_featured_media_url":"https:\/\/i0.wp.com\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/23-WEBP.webp?fit=1006%2C564&ssl=1","_links":{"self":[{"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/posts\/3346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/users\/248584093"}],"replies":[{"embeddable":true,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/comments?post=3346"}],"version-history":[{"count":6,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/posts\/3346\/revisions"}],"predecessor-version":[{"id":4092,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/posts\/3346\/revisions\/4092"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/media\/3745"}],"wp:attachment":[{"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/media?parent=3346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/categories?post=3346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/tags?post=3346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}