• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 11:24
CEST 17:24
KST 00:24
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL22] Ro16 Preview: Holy Diver5[ASL22] Ro16 Preview: Rough Waters10[ASL22] Ro24 Preview: Siren's Call8[ASL22] Ro24 Preview: Summer's End9Serral wins HomeStory Cup 2915
Community News
Weekly Cups (Sep 7-12): SHIN, ByuN, MaxPax double down1StarCraft open world shooter announced at BlizzCon100Weekly Cups (Aug 30-Sep 7): herO thrives amid growing schism10Official StarCraft website teases new content ahead of BlizzCon?179Stellar Fest TWO the Moon (Dec 16-20)9
StarCraft 2
General
38 yo Retired SWE looking to save SC IP I have 0 hope Blizzard doing anything with SC IP SC4ALL II: StarCraft 2 Player Announcement 8/8 Balance hotfix patch 5.0.16b (July 16) The Death of Cheese: From a Professional Cheeser
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament RSL Revival: Season 6 - Qualifiers and Main Event RSL goes to London! 2026 Offline Finals Nov 21-22 SC2 AI Tournament 2026 Fall KSL Week #92
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
Mutation # 543 Enhanced Defenses The PondCast: SC2 News & Results Mutation # 542 The Ascended Mutation # 541 Binary Choice
Brood War
General
Bot on ladder Working 1v1, 2v2, 3v3 Ladder an AI researcher's take on the ladder bot Syncronization issues and can't find games Man Bnet can't even load profile now, WTF
Tourneys
[ASL22] Ro16 Group D [BSL23] SM: Ret vs TerrOr - bo7 - Sunday 9pm CEST [Megathread] Daily Proleagues [ASL22] Ro16 Group C
Strategy
Replay Review Process - What do you do? Simple Questions, Simple Answers Odyssey Mineral Stack Saturation Game Theory for Starcraft
Other Games
General Games
Warcraft III: The Frozen Throne Nintendo Switch Thread Stormgate/Frost Giant Megathread EVE Corporation Diablo IV
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread Canadian Politics Mega-thread Post Your Watch!
Fan Clubs
MarineLorD Fan Club The Creator Fan Club The ShoWTimE Fan Club
Media & Entertainment
Movie Discussion! [Manga] One Piece Diablo Animated Series on Netflix
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
Can Bots Beat Pros?? Starcr…
namkraft
[meme] I finally understa…
LUCKY_NOOB
Virtual Romance, Real-Life C…
TrAiDoS
Regacy Esports:Our Goa…
regacyesports
Dreaming of BW patches (mod…
c3rberUs
Customize Sidebar...

Website Feedback

Closed Threads



Active: 8937 users

The Narrator - Mafia Web API

Forum Index > TL Mafia
Post a Reply
vossy
Profile Joined October 2019
3 Posts
October 15 2019 22:12 GMT
#1
Hey everyone,

Way back in the day, I used to do something with Dota on WC3 and Team Liquid, so this is quite the throwback.

Anyway, I run a mafia web server called The Narrator. It's a project I've been building out for the past 6(?) years? It's super customizable, and has a bunch of integrations like an interactive web UI, mobile UI, discord bot, and a forum integration.

I was wondering if there's any interest here in continuing to build it, use it, or integrate TL with it (for free of course).

Here's the opposite of a TLDR spoiler with a bunch of info
+ Show Spoiler +
narrator.systeminplace.net

The Narrator is a a role madness online version of Mafia, similar to Town of Salem or Epicmafia. However, unlike other versions of Mafia, the Narrator has been designed to be played however you enjoy mafia, whether that be In Real Life, via your favorite browser, Discord, or, your home forum mafia. The Narrator is also the most customizable version of online Mafia in existence.

Currently, I'm looking to connect with anyone that would be interested in expanding the project, whether you're a developer, designer, artist, a mafia community organizer, or just want to provide feedback. It's long past time I ditch the one man team I've got going.

How it all started
The Narrator started back in the day, as a way for me to host more flavorful mafia games in college, without the need for me to sit out, and without the need for extended nighttimes. A first pass was made as a Slack bot, but in 2016, I made a website/UI for it. Since then, it has expanded also into Discord, and as an integration into other forums.

Current Feature set includes
  • 74 unique abilities
  • Support for multiple mafia, cult, mason, architect chats
  • Custom hidden roles, such that the spawn list is hidden from the players until the end of the game
  • Custom roles with customizable abilities
  • Abilities tied to teams
  • Support for hidden attribute settings
  • Customizable faction/team settings
  • 20 Predefined setups that auto add/remove roles from a game based on the player count. This is very important for getting games started QUICKLY.
  • Nighttime system to determine who controls the faction ability if teammates don't agree
  • System of alliances to handle complex win conditions
  • Support for game theming with regards to item/feedback text, death flavor stories, and role names
  • Leaderboard for personal/global best win rate, games played, best roles, point count
  • Ability to review previous games you've played, including a breakdown of what happened each night
  • ITA/day punch support
  • Preferring a role
  • Partial support for giving dead people a way to be 'omniscient' about what's going on in the game.
  • Last Will support
  • Automated tests that test all the abilities and most of the features above
  • An automated process that's running thousands of games per hour to detect possible bugs/crashes I might have not have accounted for
  • System for choosing a more balanced setup vs a less balanced setup, and how to tell the difference between the two
  • Support for host-chosen hidden roles, to not necessarily rely on the above

Tech Stack (for those of you that are interested)
  • Game logic written in Java and tested with JUnit
  • Web layer written in ExpressJS and tested with mocha
  • Database in RDS using MariaDB
  • Discord written with javascript and tested with mocha
  • UI written with JQuery and webpack, and tested with Cypress (wish to move to React/Redux)
  • Linted using eslint
  • CI/CD using gitlab's free service (Would like to go to Github and CircleCI)
  • Repo https://gitlab.com/the-narrator/NarratorNode

Near&Distant Future Plans
  • Continue developing backbone to connect with more forum communities
  • Maybe integrate with Wolffia
  • Get a product manager to help steer feature development
  • Develop state of the art AI to help judge/generate setups
  • Kickstart campaign
  • Add video integration


Join my discord if you want to reach me directly
https://discord.gg/XaWcNzJ


Cheers,
Voss
vossy
Profile Joined October 2019
3 Posts
October 15 2019 22:14 GMT
#2
P.S. I also contacted TL's admins a little while ago, and they didn't have qualms about me posting this. Apologies if this is in the wrong place.
raynpelikoneet
Profile Joined April 2007
Finland43270 Posts
October 15 2019 22:43 GMT
#3
Definitely the right place to post it.
I'll look more closely into it when i get off work. At first glance looks interesting at least.
table for two on a tv tray
ShoCkeyy
Profile Blog Joined July 2008
7815 Posts
October 16 2019 22:10 GMT
#4
How’s the speed? Has jQuery given you any issues? I’m on the phone but would love to take a look at the git repo when I get a chance.
Life?
vossy
Profile Joined October 2019
3 Posts
October 17 2019 15:05 GMT
#5
I'd like to tear this a new one and redo it in react/redux if i'm being honest. I'm putting off the project until I can get a bunch of test coverage for the UI as is. As for speed, jQuery hasn't given me much trouble. Should it?

The commits are probably a better place to look first. Might give you more of an idea of the code structure I've been moving to.
Please log in or register to reply.
Live Events Refresh
Online Event
14:00
BamPatch 1.0 Weekly #2
SHIN 78
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ByuN 379
SHIN 78
MindelVK 24
CosmosSc2 22
StarCraft: Brood War
Shuttle 1160
Mini 463
firebathero 462
Soulkey 446
Soma 296
Stork 290
Last 113
Zeus 84
sSak 59
Dewaltoss 49
[ Show more ]
910 38
Barracks 33
ToSsGirL 24
Sharp 21
PianO 16
yabsab 15
Terrorterran 12
JulyZerg 9
Free 9
Trap 6
Dota 2
Gorgc6113
Dendi1208
Counter-Strike
fl0m268
Heroes of the Storm
crisheroes266
Other Games
singsing1691
FrodaN884
B2W.Neo845
Beastyqt478
Lowko440
Hui .296
KnowMe179
Mew2King65
QueenE64
Trikslyr35
Organizations
Dota 2
PGL Dota 2 - Main Stream6461
PGL Dota 2 - Secondary Stream2957
Other Games
gamesdonequick900
EGCTV795
StarCraft 2
WardiTV270
Other Games
BasetradeTV48
[ Show 14 non-featured ]
StarCraft 2
• poizon28 33
• mYiSmile124
• intothetv
• AfreecaTV YouTube
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• C_a_k_e 3138
League of Legends
• Jankos1578
Other Games
• WagamamaTV182
• Shiphtur8
Upcoming Events
AI Arena Tournament
1h 36m
Replay Cast
8h 36m
GSL
19h 36m
Shopify Rebellion Sundays
23h 36m
Spirit vs Mixu
BSL
1d 3h
Ret vs TerrOr
Replay Cast
1d 8h
Afreeca Starleague
1d 18h
Shine vs Rush
WardiTV Weekly
1d 19h
Monday Night Weeklies
2 days
Sparkling Tuna Cup
2 days
[ Show More ]
Afreeca Starleague
2 days
Light vs EffOrt
PiGosaur Cup
3 days
Kung Fu Cup
3 days
The PondCast
4 days
Replay Cast
5 days
Korean StarCraft League
6 days
CranKy Ducklings
6 days
Liquipedia Results

Completed

Proleague 2026-09-18
Blizzard Classic Cup 2026
Big Dog Cup 2026 Div 1

Ongoing

K-JUNGMAN
ASL Season 22
Super Anchor Qualifying S3
CSL 2026 AUTUMN (S22)
Acropolis #5
Acropolis #5 - GSA
Calamity Invitational
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026

Upcoming

Acropolis #5 - GSB
Acropolis #5 - GSC
SC4ALL II: Brood War
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
Copium Cup
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.