Complete Script Flowchart: ALL Decisions, Branches, and Outcomes

Complete Script Flowchart: ALL Decisions, Branches, and Outcomes

Introduction

This guide consists of a visualization of all the decisions the game lets you take, and their outcomes. It covers 100% of the game's script, so you can use it to see how to get to any point in the game.

The guide is split up into chapters, with one chapter (day) per section. In some places with many parallel branches, the text may be too small to read; in which case, use your web browser's zoom feature to increase the page zoom, which should make it readable.

This guide has been verified to be accurate for game versions 1.2.1.3 (latest Linux build on itch.io) through 1.2.3.0 (latest Linux build on Steam).

How This Guide Was Created

The contents of this guide (other than my notes in prose, such as this one) is generated by a program. As such, and barring bugs in the program, it should be 100% accurate. The program works by essentially playing the game in every possible way that it can be played. It includes a partial implementation of the Game Maker virtual machine, which allows it to execute the same game code as the one that's executed when running the game normally; but, graphics and sound is stubbed, so that only the game logic which affects what happens next is allowed to run.

For every decision that can be made, the program takes every possible choice, and so on. Because every choice multiplicatively adds to the total number of ways to get to that choice so far, the total number of game states grows exponentially as the game progresses, reaching 22,302,709,934,157,665,233,476,757,707,565,301,760,000 (about twenty-two duodecillion) at the end of the game. Since it would be, of course, unimaginably infeasible to analyze every possible way to play the game naively one-by-one, the program tracks which variables the game accesses at any point in time. Because variables that are neither read nor written don't affect the outcome, the software passes through all of combinations of their values so far, which allows it to compute the full (yet exact) set of possibilities within a reasonable time frame. For this purpose, a special data structure ("mapset") was created, which efficiently holds and allows performing operations on very large sets of game states.

The decision nodes generated in the graphs below do not necessarily correspond to the code that the game uses to make these decisions. Instead of copying the decisions made by the game's code, the software infers which aspects of the current game state lead the game to take which decision, which can lead it to generate simpler questions than those used by the game (while still remaining accurate).

The software used to create this guide can be found here:

https :// gitlab . com / CyberShadow / va-11_hall-a-dialogue (main program)

https :// gitlab . com / CyberShadow / gml_lsp_emu (partial Game Maker VM implementation)

https :// github . com / CyberShadow / ae / blob / next / utils / mapset . d (the data structure)

https :// gitlab . com / PoroCYon / Altar . NET (used to dump the game code for execution)

https :// graphviz . org / (used to render the flowchart images)

https :// github . com / CyberShadow / steamguides (used to upload this guide)

Remove the spaces from the above URLs (Steam completely removes the links otherwise).

Omitted Mechanics

Certain outcomes reoccur frequently throughout the game. Because it would be excessively verbose to include every occurrence in the graphs below, they are instead listed here.

Orders:If Jill doesn't purchase the desired item or pay one of the three subscriptions on the day they're due, order descriptions for the next day will be substituted with a random placeholder message.Mixing:The game keeps track of the total amount of Karmotrine used in mixing drinks (to decide how drunk the clients get).This is shown as "Total Karmotrine used" in the graphs below.

This only happens when mixing one drink at a time. When mixing two drinks, Karmotrine contents is ignored.

Bottled drinks never have any Karmotrine, even if they're otherwise alcoholic.Mixing a Flaming Moai at any time sets a flag (shown as ft_any in the graphs below).

Mixing a Flaming Moai while the current client is Anna or Stella sets a corresponding flag (ft_anna or ft_stella). It is not necessary to actually serve the drink to trigger the effect - resetting, then mixing and serving a different drink preserves the flag.Serving:Serving a Crevice Spike at any time yields a Steam achievement (CREVICE_TROPHY).

Serving a wrong drink at any time yields a Steam achievement (RIGHT_WRONG_TROPHY).

Serving three wrong drinks in a row, with all three being simple drinks (Sugar Rush, Sparkle Star, Blue Fairy, Sunshine Cloud, Frothy Water, or any bottled drink) causes a Game Over. (The ensuing dialogue varies depending on Jill and Dana's current circumstance.)Payout:Payout outcomes are shown in blue nodes in the graphs below. See the legend section below for details.

The logic for serving two drinks is a little different:The shown tip is awarded even if one drink is incorrect.

If both drinks are correct, the "big drink" bonus is awarded in an all-or-nothing (+$200 or $0) manner.

Because of the cash reset bug, mixing the first drink correctly causes the cost of all drinks mixed up to that point (not including the current two drinks) to reset. Only tips are counted.

Legend

Variables:When the game sets a variable to some value, this is shown as "some_variable_name := some_value".

When the game checks the value of a variable, that is shown as "Value of some_variable_name?", with the possible values as branches.Drink outcomes:"Free drink": no charge, no tip, and the drink does not trigger the mistake counter.

"Wrong drink": the mistake counter is incremented. The customer does not pay, and there is no tip.

"+ Big bonus": unless the drink is naturally big ("Marsblast", "Zen Star", "Piano Man" or "Piano Woman"), +$100 is added to the drink price. Note that this happens even if the drink is actually small (though usually the game script checks the drink size first).Unreachable dialogue transitions are indicated with a dotted line.

Prologue - Day 1


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 33
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 34

Prologue - Day 2


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 36
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 37

Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 38

Prologue - Day 3


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 40
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 41

Anna - Demo


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 43
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 44

Anna - Start


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 46

Intro - Anna


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 48

Intro - Tutorial


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 50

Week 1 - Day 1


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 52
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 53
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 54
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 55

Week 1 - Day 2


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 57
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 58
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 59
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 60

Week 1 - Day 3


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 62
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 63
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 64
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 65

Week 1 - Day 4


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 67
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 68
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 69
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 70

Week 1 - Day 5


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 72
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 73

Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 74

Week 1 - Day 6


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 76
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 77

Week 2 - Day 7


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 79
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 80

Week 2 - Day 8


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 82
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 83
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 84

Week 2 - Day 9


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 86
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 87
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 88

Week 2 - Day 10


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 90
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 91

Week 2 - Day 11


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 93
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 94

Week 2 - Day 12


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 96
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 97

Week 2 - Day 13


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 99

Week 3 - Day 14


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 101
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 102
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 103

Week 3 - Day 15


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 105
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 106
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 107

Week 3 - Day 16


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 109

Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 110
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 111

Week 3 - Day 17


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 113
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 114
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 115
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 116

Week 3 - Day 18


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 118
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 119
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 120
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 121

Week 3 - Day 19


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 123

Endings - Epilogues


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 125
Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 126

There is a small artifact here due to how the game checks / awards achievements. It can be ignored.

Endings - Game Over


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 129

Variable Index

You can use this table to reference when variables are set and accessed.

A red circle (🔴) indicates that the variable is set on that day.

A green circle (🟢) indicates that the variable is read on that day.

An orange circle (🟠) indicates that the variable is both set and read on that day.

Variable01234567891011121314151617181920alma5🟠alma6🟠alma7🟠🟢alma8🟠almadrunk1🔴🟢almadrunk2🟠🟢anna1🟠anna2🟠anna3🔴art6🟠art7🔴bettydrunk1🔴🟢brian1🟠brian2🟠db1🟠db2🔴db4🟠db5🔴db6🟠db7🟠db8🔴dogpick🟠dondrunk1🔴🟢🟢dondrunk3🔴🟢dorodrink1🔴🟢🟢dorodrink7🟠dorodrink9🟠🟢🟢🟢🟢dorodrunk1🔴🟢dorothy12🟠dorothy13🟠dorothy14🟠drunkmiki1🔴🟢ft_alma🟢ft_any🟢ft_stella🟢gabyorder🟠housedl🟢ing1🟠ing2🟠ing3🔴ing4🟠🟢ing5🟠🟢ing6🟠ing7🔴ingdrunk1🔴🟢🟢🟢🟢jamie1🟠jamie2🟠jilldrunk1🔴🟢kim1🟠kimdrunk1🔴🟢🟢🟢🟢mario1🟠🟢mario2🟠🟢mario3🔴🟢miki1🔴🟢🟢miki2🟠miki3🔴miki5🟠🟢norma1🟠🟢sei5🟠🟢🟢🟢sei6🟠🟢🟢🟢sei7🟠sei9🔴seidrunk1🔴🟢🟢🟢🟢stel1🟠🟢🟢🟢🟢🟢🟢🟢🟢stel10🟠stel11🔴stel2🟠🟢🟢🟢🟢🟢🟢🟢🟢stel4🟠🟢🟢🟢🟢stel5🟠🟢🟢🟢🟢stel6🟠stel7🟠stel8🔴stel9🟠steldrunk1🟠stream1🟠stream2🟠stream3🟠stream4🟠stream5🟠stream6🔴streamdrunk1🟠🟢🟢truevirgilio1🟠truevirgilio2🔴🟢virgilio6🟠

Final State


Complete Script Flowchart: ALL Decisions, Branches, and Outcomes image 137

The image below is a visual representation of all the possible states that the game can be in when reaching the end of the game.

Every state is represented as a distinct way to travel from the top of the graph to the bottom; the traveled path represents the values of variables from that state.

Bugs

Some bugs were noticed during the creation of this guide, some of which affect the outcomes of choices in the graphs above:

Typos in calculated drink properties leading to inconsistencies:The taste of a Piano Man is "Bitter" instead of "bitter".

When a Piano Woman is mixed as the second drink, its taste is "Sweet" instead of "sweet".

The taste of a big Crevice Spike is "ssour" (sic) instead of "sour".Mixing:Mixing two drinks (with drink 1 being correct) resets all non-tip income from the current day so far.

This does not affect the displayed total income counter (visible in the game), but does affect the amount used for calculating Jill's commission.

This is most evident at the end of Day 3. The last order is two Blue Fairies, which (if completed) causes that day's "Drinks' total" to be only $340 (thus earning Jill a mere $102 commission assuming flawless service).

The "big drink" $100 bonus is awarded even when the drink is small. The script doesn't always check the drink size.

The first example is Ingram's first order, Gut Punch - $180 is cashed in even if Jill mixes a small Gut Punch (which has a base price of $80).

Customers don't pay for orders Jill gets wrong, despite the script occasionally implying otherwise.Script bugs:Tutorial:There is an unreachable dialogue sequence for, apparently, the case that Jill accidentally makes a Sparkle Star instead of a Sugar Rush by mixing it for too long. (The recipe for Sparkle Star differs from Sugar Rush by aging, not blending.)Day 1:Donovan always says "Try to give me a Beer this time" regardless of what Jill served previously.Day 7:Art asks for a Piano Man or something with "lots of alcohol", however, a typo in the game's code causes it to check the wrong variable. It is thus impossible to access the branch in which Art reacts to a drink with a lot of alcohol.Day 11:Script code typo: [XS:ph,1}[E:7] (the } should have been a ]). No visible effect.

Making two Fringe Weavers instead of one Fringe Weaver and one Bloom Light causes Betty to say "Not a single drink right".Day 12:Script code typo: [RES:[XS:jilltalk,1] (missing ]). Causes Jill's "Here you go" line to be silent.Day 15:A second music track starts playing when opening Gaby's note. However, the pre-jukebox theme continues playing in the background, resulting in a cacophony.

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=2241146183					

More VA-11 Hall-A: Cyberpunk Bartender Action guilds