What State Does a Branching Video Start In and End In? Write Entrance and Exit Contracts for Each Shot
Branching video is hard not because of how good it looks, but because the pieces must connect. The fix is to write an entrance and exit contract for every shot: the entrance states where the character is, what they hold, and what they know at the start; the exit states how those three change by the end, plus the final action.

Introduction
The trouble with branching video is not looking good, but connecting. At the end of an upstream clip the character is standing at the door with the invitation still in hand, but the downstream clip opens with them sitting in the living room and an opened envelope on the table; the audience immediately feels the break. The solution is to write an entrance and exit contract for each shot: the entrance states clearly where the character is, what they are holding, and what they know when this segment begins; the exit states clearly what those three become when this segment ends, and what the final action is. The contract is written next to the storyboard or node, shared by the preceding and following clips, and not written into code.
What Four Items Does the Entrance Contract Contain
The entrance contract answers "when the audience clicks into this segment, what is the world already like." All four items are indispensable.
Position: The specific place and posture of the character's body. Write "inside the entryway, facing the front door, standing," not "at home."
Objects in hand: Things on the character's body or within reach that the plot will use, and their states. Write "right hand holds an unopened invitation, left hand empty," not "holding a letter."
Known information: Facts the character already knows before this segment begins. Write "knows the invitation is from an old friend, does not know what is written inside," not "understands the situation."
The last action of the previous segment: Used to align the point in time. Write "the previous segment ends with a knock at the door," so that this segment's first reaction has a basis.
The combined effect of these four items is to define the starting point. When writing a downstream segment, the creator does not need to re-explain why the character is here; they only need to follow the entrance.
What Three Items Does the Exit Contract Contain
The exit contract answers "after this segment ends, what state can the downstream take over from."
The resulting change in position and posture: Where the character moves to and what posture they hold. Write "retreats to in front of the living room sofa, sits down," not "moved."
The final state of objects in hand: Who holds the object, whether it has been opened, whether it has been put down. Write "the invitation has been opened, placed on the coffee table, the letter paper pulled out," not "dealt with the letter."
The final action and the textual consequence it causes: The last visible action, and the change this action brings in relationships or information. Write "after reading the letter, looks up toward the door; the character now knows the old friend will visit next week," not "emotionally complex."
The final action must match the first reaction of the downstream entrance. If the exit is "looks up toward the door," the downstream entrance should allow the character to see or hear something in the direction of the door; if the exit is "stuffs the letter into a pocket," the downstream entrance cannot have the letter appear on the table.
Constructed Example: Handing Over an Invitation
The following is a fictional teaching example, used to illustrate how to write a contract, not actual test data.
Setup: Character A is in the entryway, Character B visits, and A is to hand the invitation to B. The shared process is "B knocks, A opens the door, hands the letter to B, and explains that it was entrusted by an old friend of them both." After this there are two branches: B opens and reads the letter on the spot, or B accepts it but says they will read it after going back.
Shared entrance (the entrance of the upstream segment)
- Position: A is inside the entryway, facing the front door, standing; B is outside the door.
- Objects in hand: A's right hand holds an unopened invitation, the envelope is intact, the left hand is empty.
- Known information: A knows the invitation is from an old friend, does not know the contents; B does not know A has a letter in hand.
- Last action of the previous segment: none (this is the branch starting point), with a knock at the door as the opening.
Exit A: Opens it on the spot
- Position: A takes half a step back, B steps over the threshold into the entryway, the two stand facing each other.
- Objects in hand: The envelope is in B's hands, already opened, the letter paper has been pulled out.
- Known information: Both A and B know the visit time in the letter.
- Final action: B reads out the visit time in the letter, A nods after hearing it, the letter paper is still in B's hands.
- Textual consequence: The two enter a "mutually informed" state; if the downstream writes that A hides the visit time, it conflicts with the exit.
Exit B: Accepts it but says they will read it after going back
- Position: A is still inside the entryway, B retreats to the steps outside the door, the two face each other across the threshold.
- Objects in hand: The envelope is in B's hands, unopened, placed into the inner pocket of the coat.
- Known information: A knows the letter has been handed over; B only knows the envelope is from an old friend, does not know the contents.
- Final action: B turns and walks down the steps, A closes the door.
- Textual consequence: The two are in a "letter transferred but information not shared" state; if the downstream has A directly discuss the contents of the letter, it conflicts with the exit.
The core difference between the two exits is "whether the letter is opened" and "whether the two are mutually informed"; position and final action are also recorded separately. A knows the identity of the sender, and cannot therefore be written as already knowing the visit time; B opening the envelope does not mean A automatically read the contents.
Three Typical Fixes for Contract Violations
Position conflict. The exit writes "B is outside the door," while the downstream entrance writes "B sits in the living room." Fix: either change the downstream entrance to "B stands outside the door, hand just touching the doorknob," or go back to the exit and change the position to "B has already entered the room." Only one of the two can be changed, not both.
Object state conflict. The exit writes "the envelope is unopened," while the downstream entrance writes "B holds the letter paper in hand." Fix: have the downstream first inherit the unopened state, then add opening and reading; or move these two actions upstream and rewrite the exit. Opening the envelope only changes the object; reading is what changes the reader's knowledge. If the action stays downstream, do not retroactively change the upstream exit to known contents; instead update the state after the downstream action occurs.
Final action conflict. The exit writes "A closes the door," while the downstream entrance writes "A is just taking the letter from B's hand." Fix: change the first action of the downstream entrance to "A opens the door again," or change the final action of the exit to "A reaches out to take the letter." Note the time order: taking the letter after the door is closed requires opening the door first, otherwise the actions cannot connect.
Completion Check
After writing a set of branches, check item by item:
- Can each of the four entrance items of every downstream segment find a corresponding item in the upstream exit?
- Do the exit's "final action" and the downstream entrance's "first reaction" hold at the same position and under the same object state?
- Is the exit's "known information" respected by the downstream text? If the downstream contains information the character should not know, add a process of learning such as reading or retelling, or delete the prematurely leaked line.
- Between the two exits, are any objects or information incorrectly shared? For example, Exit B has not opened the letter while Exit A has opened it; the two downstreams cannot share the line "discuss the contents of the letter."
- Is the contract written in a visible place next to the storyboard or node, rather than only kept in the author's head?
Only when all five items pass can the segments be considered connected. If any item does not match, prioritize changing the contract rather than changing the lines, because the contract is the interface shared by the preceding and following parts. After changing the contract, manually check whether the affected old materials still hold; if the upstream exit has changed, downstream completed videos and previews may need to be redone, and old data should be kept but not directly reused.


