Domain: labs.phoom.in.th/wolf or wolf.phoom.in.th
Features
-
Game Session (Villages)
- Create Room -> Get Code
- Join Room by Code
-
Auto Moderator
-
Auto Role Assignment
-
Assign and Tell Player about their Roles
-
Narration Scripts
-
Background Music
-
Live Voting
-
Real-Time Feedback on both "Vote Lynch" and "Confirm Lynch"
-
Notify and Assist players to take action (at Nighttime)
-
Vibrate, or send sound to earphone
-
Game Flow: Nighttime's Flow (Taking Action for each roles)
- Emulate actual moderator's signaling in real time. More Familiar.
- Let them take action instantly on their own device. Quick and Auto.
-
-
Game Timer (Daytime, Nighttime & Gameplay Cycle)
- Synchronized Countdown Clock until each event.
- Role Timer (Time Limit to Take Action)
- Nighttime: Take Action (according to Role)
- E.g. Werewolf kills a player, player uses an ability.
- Daytime
- Discussion
- Voting to Mark for Lynching
- Confession
- Lynch Confirmation
-
Session Card
- Your Name
- Virtual Role Cards
- View Your Role, Hideable
- Timer View
- Day/Night Cycle
- Take Action as your role
- Vote to Kill (at Daytime)
- Player Lists
- Take Note
- Cross Out
- Mark as Role
- Possible Roles
Technicals
Game Loop
onStart: Village Created -> Player Joined -> Game Started -> Game Init
Daytime: 5 Minute Maximum by Default
- Discussion Session
- Villager Voted
- A Player got Lynched
- Enter Nighttime
Nighttime:
- for all players (Blocking in Semi, Async in Auto):
- Take Action: 1 Minute by Default
- (p.role is werewolf) Lynch a Villager
Events
The central server dispatches and emits all event.
-
game-start()
- Initialize game, and fire the daytime() event.
-
daytime()
- Daytime Discussion and Initial Voting Phase start.
- Countdown timer runs at exactly 5 minutes.
- People can discuss, and also start to vote right now.
- They can confess and whatever, but there is no turning back after the vote!
- If the timer runs out or the villagers have voted, fire the nighttime() event.
-
lynch-vote(player)
- Vote a Player for Lynching
-
nighttime()
- Nighttime Phase start.
- Players can use abilities assigned to their role.
- Iterate through all players, and trigger the nighttime-role() event
- After everyone uses their role's abilities, fire the daytime() event.
-
nighttime-role(player | role)
- Nighttime Role Phase start.
- Player uses their abilities by sending requests to /g/a/* endpoint.
- If 1 minute ran out for a player or they've used their abilities, fire the nighttime-role() event to the next player.
-
inflicted(player, ability)
- An ability has been inflicted onto a player. For instance, that might be protection by doctor, kill by priests.
-
killed-by-wolf(player)
- Killed by Werewolf
-
killed-by-vote(player)
- Confirmed and Killed by Villager Vote
- Alternatively: lynch-vote-confirmed(player)
-
killed-by-ability(player, ability)
- Killed by an ability. For instance, priest' holy water.
-
game-ended(code, winners)
- Code: WOLF (werewolf wins), VILLAGER (villager wins), FORCE (force quit, no winners), GROUP (some player wins)
- Winners: Player[]
Entity
-
Village (Room)
- Room Name
- Player[]
- Player Limit (15 people)
- Roles[]
- Must be Balanced to fit the amount of players
- Maximum Time Limit
- Game Duration: Unlimited by Default
- Daytime Duration Limit: 6 Minute by Default
- Nighttime Duration Limit: None by Default
- Night Action Duration Limit: 1 Minute by Default
- Auto Moderator (Full/Semi/Off)
- Fully Auto: No Moderator
- Semi Auto: Moderator acts as a Narrator, but with Script Cues.
- Off: Just for Cards
-
Player:
- Name
- Role
-
Local State (Persist to Client localStorage)
-
Game State (Server-based, Global)
Endpoints
Village Endpoints (/v)
-
/v/new - Create new Village(), return ID
-
/v/join/:id - Join by Room ID
-
/v/leave - Leave the Game
Village Moderation Endpoints (/v/m)
- /v/m/forcedelete - Force Quit and Delete the Game
- /v/m/halt - Halt the Game and Pause the Entire Game Loop
- /v/m/forcekick - Force Kick a Player
Gameplay Action Endpoints (/g)
-
/g/a/* - Take Action by their Roles
-
/g/lynchvote(player) - Vote to Lynch (by Villagers)
- Mark a player for Execution
- If the timer ran out OR everyone have voted:
- If dead > alive, execute the player. Otherwise, let them live.
- If all werewolves are killed, end the game and the villagers win!
-
/g/wolfkill - Kill the Villagers (by Werewolf)
- If count of werewolves == players, end the game and the werewolves win.
Tech Stack
- Vue.js + Feathers/Express
Roles (Cards)
https://www.playwerewolf.co/rules/roles
https://en.wikipedia.org/wiki/Ultimate\_Werewolf#Roles
The numbers in parentheses after each card name are for balancing purposes, with positive cards tending to help the villagers and negative cards aiding the werewolves. A mix of cards which sum to zero make for a balanced game.
After you die, you reveal what role you had.
To keep the game moving along, you can put a time limit to how long a day is, and if the village doesn't chose someone to lynch, they miss the opportunity.
Similarly, as soon as a majority vote confirms that a player has been lynched, they are dead. If they want to protest his innocence or reveal some information (like the seer's visions), they must to do it before the vote goes through.
You should always have 1 Seer, 1 Doctor, and 2 werewolves and the rest of the players should be Villagers.
Grumpy Grandma, Sad Blob, Harlot, Mad Scientist, Sect leader, Leprous Human
Major
-
Moderator: Moderates the game. You cannot play without this role.
-
Werewolf (-6) (12): Eat a villager each night. Try not to let them know.
- Werewolf can see and know other villager.
- The werewolves win if werewolves >= villager teams.
-
Villager (+1) (20): Find the werewolves and lynch them.
-
Seer (+7): Each night, point at a player and learn if they are on the villager team, or the werewolf team.
-
Doctor (+3): Select a player which cannot be killed by the werewolves, because doctor can heal them. You can select yourself. The mod will tell if someone is saved.
Common
-
Witch (+4): You have 2 potions: To Kill or To Save a player. Use once each per game.
- “The Witch comes awake…” and follows this with “The Witch brings someone back to life.” and “The Witch poisons someone.”
-
Tough Guy (+3): You survive an extra day if attacked by werewolves at night.
-
Hunter (+3): If you are killed, take someone down with you.
-
Bodyguard (+3): Choose a different player each night to protect. That player cannot be killed that night.
-
Priest (+3): On the first night, protect a player. The next attempt to kill the player fails. The night after that attempt, you protect a different player.
- Variation: Protect one player from death caused at night, including vampire attacks.
- Alternative: During the day, you can use holy water on the selected victim. If person is werewolf, it dies, else they survives.
-
Prince (+3): You can't be lynched by the werewolf.
-
Mason (+2) (3): You know who the other Masons are.
-
Mayor (+2): Your vote counts twice when voting to lynch a player if you reveal yourself.
- Variation: Everyone can be a mayor
-
Lycan (-1): You are a villager, but you appear falsely to be a werewolf to the Seers and PI.
-
Cupid (-3): Choose two players to be lovers. If one of those players dies, the other dies from a broken heart.
-
Cursed (-3): You are a villager until attacked by werewolves, at which time you become a werewolf.
- Variation: You become a vampire when attacked by vampires.
-
Drunk (+3): You are a villager until the third night, when you remember your real role.
- Alternative: You are constantly drunk and may NOT talk during the game. If you do talk, you die immediately. Others can use this role to create confusion...
Additional (0)
-
Old Man (0): You will die on night X, where X is the number of werewolves in the game plus one.
-
Hoodlum: Indicate two players on the first night. If they die and you are alive at the end of the game, you win.
-
The Amulet of Protection Holder: Anyone who has this won't ever die. You must pass the Amulet to another player each day or else it is destroyed.
-
Wild Child: On the first night, the Wild Child chooses 1 "role model," and if the role model dies, the wild child becomes a werewolf. Until then, the wild child is a normal villager.
-
Fortune Teller: You know the exact roles of your inspectees (wolf man/lycan excepted), and the person you inspect is not made aware of this.
-
Custom Roles (___): Make up 3 roles and write it down.
Additional (+)
-
Bloody Mary (+1): If you die, kill someone from the team that killed you each night.
-
Apprentice Seer (+4): Become the Seer if the Seer is killed.
-
Aura Seer (+3): At night, find the team of one player. (variation: At night, find out if someone has a non-ordinary role and what it is).
-
Beholder (+2): Opens his eyes the first night to see who the seer is.
-
Cult leader (+1): Each night, choose a player to join your cult. If all players are in your cult, you win.
-
The Count (+5): The first night, you are told how many werewolves there are in each half of the village.
-
Diseased (+3): If you are attacked by werewolves, the werewolves do not get fed the following night.
-
Insomniac (+3): each night, learn at least one of your neighbors has woken up during the night.
-
Ghost (+2): Die the first night, then each day, write one letter clues as a message from the beyond (no names or initials).
-
Idiotic Villager (+2): Must always vote for players to die, else he/she dies.
-
Spellcaster (+1): At night, indicate a player who must not use their voice the following day.
-
Thing (+3): Each night, tap a player sitting immediately next to you.
-
Tanner (+1): You only win if you are killed.
-
Leprechaun (+5): You can redirect werewolf attacks to players adjacent to the target(s), but you don't have to.
-
Chupacabra (+4): Each night, select a player. If they are a werewolf, they die. If they aren't a werewolf, they don't die. If all the wolves are dead, kill a player each night.
-
Nostradamus (+1): Predict the winning team on the 1st night. If that team wins AND you are alive at the end of the game, you get a solo win. For the rest of the game you are a villager.
-
P.I. (+3): Once per game, Inspect three players (they must be beside each other). You only know if at least one of them is malicious. (variation: Inspect three adjacent players on one night).
-
Troublemaker (+2): Once per game, choose to have two lynch attempts on one day. If the votes are tied, then you've wasted your chance.
-
Martyr (+3): Take the place of someone who has been killed before their role is revealed.
-
Old Hag (+1): At night, indicate a player who must leave the village the next day.
Additional (-)
-
Big Bad Wolf (-9): If the werewolves target is beside you, you can kill any combination of your adjacent players. However, if the leprechaun redirects the initial attack, none of your adjacent players die.
- Variation: you can attack one person beside the initial werewolf target.
-
Bogeyman (-6): If the wolves can't decide who to kill, you'll do it for them. You win if all the night-active players are dead.
-
Count Dracula (-2): Each night, pick a player to be a wife. If you make it through a day/night cycle with 3 wives, you win.
-
Fruit Brute (-3): If you are the last wolf left alive, you lose your appetite and cannot feed, but you are trying to root out all the villagers.
-
Wolf man (-9) : You Wake With the other Werewolves each night, but the Seer sees you as a Villager
-
Pacifist (-1): You cannot vote when lynching.
-
Sorcerer (-3): You are a seer, but you are on the Werewolf team. You only know if you've found a werewolf, another seer, or something else.
-
Minion (-6): Work with the werewolves or vampires to kill the villagers. The moderator decides whether you work with the werewolves or the vampires.
-
Wolf Cub (-8): If you die, the werewolves get two kills the following night.
-
Dream Wolf (-5): If a werewolf dies, you replace them (you're not allowed to wake up until a werewolf dies.)
-
Doppelgänger (-2): Select a player the first night. If that player dies, you secretly take that role.
-
Lone Wolf (-5): You are a werewolf, but you only win if you are the last wolf team member alive.
-
Vampire (-7) (8): Each night, Choose a player. That player is eliminated when a player gets their 2nd accusation the next day.
-
Little Girl: Like a villager but each night she gets to peek out but be discrete so the wolves don't notice, because they can signal the moderator if they think you are the little girl. You die if the wolves' accusation was correct.
-
Sasquatch (-2): You are a villager until a day ends without a lynch, in which case you become a werewolf.
-
Dire Wolf (-4): On the first night choose a companion. You die if they die, but if you die they don't die. You are on the wolf team. (variation: Put yourself in love on the first night).