Help me Design a Cool Table

So I am enjoying exploring solo games, and I am using the awesome Mythic emulator engine. I am currently working on the fate chart (a yes no answer table) but I am struggling with the right workflow for a table with these complexities. ill upload a screenshot, but to summarize

You have the left column which designates the likely hood you think the question is, then you have a chaos factor for random events and then you have the odds of yes in bold with crit yes on the left and crit noon the right of the number.

Since I'm new, I figured I might be doing this the hard way, so far the only thing i thought of is creating all of those options as seperate tables refereced by a conditinal table with prompt for likelyhood and chaos factor. Please let me know if there is any other way. thanks for all your wisdom



  • edited March 2019

    Here's a quick go of it

    1. Prompt the user for Odds. That is something that should be context sensitive and not random. You could make it random, but that would be unrealistic.
    2. You may need a table for each "Odds" row. Could be other ways of doing it. But, since the basic odds don't seem to be an algebraic expression, I think these need to be put into a set of tables
    3. Prompt the user for the Chaos Rank, but also offer a selection of "random".
    4. Lookup the base success chance by finding item {Chaos} in the table named {Odds}.
    5. Once you have the base chance, calculate the Crit Success and Crit Fail based on 20% of the Base Success and Base Fail chances.
    6. Roll a d100 and use a series of if-then or when-do statements to determine the outcome.

    Here some code that "works". But, it's sending back totally blank output frequently. Can't really debug it right now. But, it's a good basic start, and it really only requires clicking "Run" again if it outputs a blank result. I've written it to output each step to see how it runs. You could just as easy only send the last line to the output (secret GM roll) by using double equals signs (==) in the inline variable assignment calls.

    ; Chaos.ipt
    ; created 3/23/2019 9:56:40 AM
    Prompt: Enter Odds {Has to be|A sure thing|Very likely|Unlikely|Random} Random
    Prompt: Enter Chaos Rank {Random|1|2|3|4|5|6|7|8|9} Random
    Odds are {Odds='[when]{$Prompt1}=Random[do][@RandomOdds][else]{$Prompt1}[end]'}.\n&
    Chaos Rank is {Chaos=[when]{$Prompt2}=Random[do]{1d9}[else]{$Prompt2}[end]}.\n&
    Yes chance is {BaseSuccess=[#{$Chaos} {$Odds}]}%.\n&
    Exceptional Yes chance is {CritYes={floor({{$BaseSuccess}*.2})}}%\n&
    Exceptional No is {CritFail={ceil({100-{100-{$BaseSuccess}}*.2})}}%\n&
    Your roll is a(n) {Score=1d100}\n&
    The result is [when]{$Score}<{$CritYes}[do]Exceptional Yes[else]&
                  [When]{$Score}>{$CritFail}[do]Exceptional No[else]No[end][end][end]
    Has to be
    A sure thing
    Very likely
    Table:Has to be
    Type: Lookup
    1: 80
    2: 85
    3: 90
    4: 95
    5: 95
    6: 100
    7: 100
    8: 130
    9: 145
    Table:A sure thing
    Type: Lookup
    Table:Very likely
    Type: Lookup
    Type: Lookup

    Good luck!

  • Huh, I didn't think you could nest When statements like that, but it seems to work! I don't get any blank outputs here.

  • You can always nest a new "when" statement in the "else" part of the prior when statement. For me, the nesting makes it "feel" more like an Excel "if" statement. Here, to make it read better, I just used the continuation symbol "&" to see the nesting more clearly. The program reads the whole Table:main as a single long line of code.

  • Hey Levendor, I tried it and couldn't get it to work so I messed around with it because I was curious and I finally got it to say something besides 'exceptional yes'.

    I numbered the two prompts and then I replaced the first two under main with the following.

    Odds are {Odds='[when]{$Prompt1}=Random[do][@RandomOdds][else][@RandomOdds][end]'}.\n&

    Chaos Rank is {Chaos=[when]{$Prompt2}=Random[do]{1d9}[else]{1d9}[end]}.\n&

    I had to copy the do into the else space and then it worked for me. See it in the image.

  • I almost forgot, in your copy of the gen the prompts were not labeled like there were in the 'Main' area so that was a huge factor in how I got it to work.

  • Here is what I changed for the most part.

Leave a Comment