menu
Welcome to Eternity's Edge! You are about to embark on an epic adventure in the realm of Aethoria. Your journey begins in the bustling town of Willowhaven, a hub for adventurers and traders.
Type 'create character' to start creating your character.
def contested_roll(player_skill, opponent_skill): player_roll = roll_dice(20, player_skill) opponent_roll = roll_dice(20, opponent_skill) if player_roll > opponent_roll: return "Success" else: return "Failure"
SCENE STARTNARRATOR: “You find yourselves at [location]. The air smells of [scent]. [One NPC or environmental threat] is visible.”
PLAYER A: “[Action or question]” NARRATOR: “[Outcome or new detail]”
PLAYER B: “[Response]” NARRATOR: “[Complication or opportunity]”
(Optional) CONFLICT: [Describe disagreement or challenge]. Use [Rock-Paper-Scissors / d6 roll / Trait comparison].
SCENE END: “As you [action], you hear [sound] in the distance. What do you do next?”generic roleplay gaem script
Wrong: "The King says: I am King George, son of Henry, ruler of the seven seas, eater of pies..." Right: "The King speaks for 10 seconds about taxes. If the players interrupt, he respects them. If they listen, he bores them."
class Player: def __init__(self, name, race="Human"): self.name = name self.race = race self.inventory = [] self.description = "A mysterious traveler." self.room = "Tavern" self.hp = 100 # Optional, for light combat self.status_effects = [] # e.g., "Poisoned", "Asleep"
players = {} # Dictionary to hold online players
Here is a template you can steal for your next zero-prep session. Copy and paste this into your notes app. Welcome to Eternity's Edge
[SCENE 1: The Hook]
[SCENE 2: The Complication]
[SCENE 3: The Setback]
[SCENE 4: The Climax]
[SCENE 5: The Epilogue]
Generic RP often involves persistent world states.
world_flags = "bridge_repaired": False, "dragon_defeated": False, "king_saved": Truedef check_flag(flag_name): return world_flags.get(flag_name, False)
def set_flag(flag_name, value): world_flags[flag_name] = value broadcast(f"* The world changes: flag_name is now value *")