• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 05:35
CEST 11:35
KST 18:35
  • 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
Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12TL.net Map Contest #22 - Voting & Ladder Map Selection7Code S Season 2 (2026) - RO8 Preview5[ASL21] Finals Preview: Two Legacies21
Community News
Weekly Cups (June 8-14): Clem and Solar double, PTR tested0RSL: S6 Finals played at BlizzCon 20269Douyu Cup 2026: $20,000 Legends Event (June 26-28)10[BSL22] Non-Korean Championship from 13 to 28 June4Weekly Cups (May 25-31): Clem doubles, 2v2 circuit heads toward finale0
StarCraft 2
General
RSL: S6 Finals played at BlizzCon 2026 TL Poll: How do you feel about the 5.0.16 PTR balance changes? Weekly Cups (June 8-14): Clem and Solar double, PTR tested Team Liquid Map Contest #22: Results and Winners High level ptr replays? where can I find them?
Tourneys
Douyu Cup 2026: $20,000 Legends Event (June 26-28) Maestros of The Game 2 announcement and schedule ! Sparkling Tuna Cup - Weekly Open Tournament Sea Duckling Open (Global, Bronze-Diamond) GSL Code S Season 2 (2026)
Strategy
[G] Having the right mentality to improve
Custom Maps
[D]RTS in all its shapes and glory <3
External Content
Mutation # 530 One For All The PondCast: SC2 News & Results Mutation # 529 Opportunities Unleashed Mutation # 528 Infection Detected
Brood War
General
Where is EffOrt? BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ vespene.gg — BW replays in browser Quality of life changes in BW that you will like ?
Tourneys
[Megathread] Daily Proleagues [ASL21] Grand Finals [BSL22] Grand Finals - Sunday 21:00 CEST Escore Tournament StarCraft Season 2
Strategy
Relatively freeroll strategies Creating a full chart of Zerg builds Why doesn't anyone use restoration? Any training maps people recommend?
Other Games
General Games
ZeroSpace Megathread Stormgate/Frost Giant Megathread Path of Exile Nintendo Switch Thread PC Games Sales Thread
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
Vanilla Mini Mafia
Community
General
UK Politics Mega-thread US Politics Mega-thread Russo-Ukrainian War Thread Trading/Investing Thread Canadian Politics Mega-thread
Fan Clubs
The HerO Fan Club! The herO Fan Club!
Media & Entertainment
Movie Discussion! [Req][Books] Good Fantasy/SciFi books [TV/BOOK] *SPOILERS* Game of Thrones Discussion [Manga] One Piece
Sports
2024 - 2026 Football Thread TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion Cricket [SPORT] NBA General Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Facing Challenges in Mobile App Development
TL Community
The Automated Ban List
Blogs
Does Workplace Frustration D…
TrAiDoS
An Exploration of th…
waywardstrategy
I'm an arrogant trash talke…
FlaShFTW
Gauntlet SC2: A Retrospectiv…
Ctone23
Why RTS gamers make better f…
gosubay
Customize Sidebar...

Website Feedback

Closed Threads



Active: 10309 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
Next event in 1h 26m
[ Submit Event ]
Live Streams
Refresh
StarCraft: Brood War
Britney 33860
Sea 3622
Soma 284
firebathero 269
Dewaltoss 248
Larva 198
Zeus 130
Nal_rA 125
Mind 76
sorry 36
[ Show more ]
hero 25
yabsab 19
soO 16
Sharp 14
Bale 12
Light 0
Dota 2
Fuzer 91
League of Legends
JimRising 480
Counter-Strike
olofmeister1386
shoxiejesuss822
Super Smash Bros
Mew2King118
Westballz33
Heroes of the Storm
Trikslyr50
Other Games
WinterStarcraft643
Liquid`RaSZi587
Sick221
trigger3
Organizations
Dota 2
PGL Dota 2 - Secondary Stream2958
Other Games
gamesdonequick621
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• Berry_CruncH270
• LUISG 21
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• iopq 6
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Jankos1470
Upcoming Events
WardiTV Spring Champion…
1h 26m
PiGosaur Cup
14h 26m
Replay Cast
23h 26m
The PondCast
2 days
OSC
2 days
CranKy Ducklings
3 days
GSL
4 days
Maru vs ShoWTimE
Classic vs Reynor
herO vs Lambo
Solar vs Clem
BSL22 NKC (BSL vs China)
4 days
XuanXuan vs Jaystar
Mihu vs Messiah
eOnzErG vs Dewalt
Bonyth vs Jaystar
TerrOr vs Messiah
XuanXuan vs Mihu
eOnzErG vs Jaystar
Replay Cast
4 days
GSL
5 days
[ Show More ]
Patches Events
5 days
BSL22 NKC (BSL vs China)
5 days
Dewalt vs Messiah
Bonyth vs Mihu
TerrOr vs XuanXuan
eOnzErG vs Messiah
Jaystar vs Mihu
Dewalt vs XuanXuan
Bonyth vs TerrOr
Replay Cast
5 days
WardiTV Weekly
6 days
Liquipedia Results

Completed

Proleague 2026-06-15
uThermal 2v2 2026 Main Event
Heroes Pulsing #1

Ongoing

IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
CSCL: Masked Kings S4
YSL S3
BSL 22 Non-Korean Championship
SCTL 2026 Spring
Maestros of the Game 2
WardiTV Spring 2026
Murky Cup 2026
Heroes Pulsing #2
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1

Upcoming

CSL 2026 Summer (S21)
CSLAN 4
Blizzard Classic Cup 2026
Kung Fu Cup 2026 Grand Finals
RSL Revival: Season 6
CranK Gathers Season 4: BW vs SC2 Team League
HSC XXIX
Douyu Cup 2026
BCC 2026
Heroes Pulsing #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
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.