[{"data":1,"prerenderedAt":1672},["ShallowReactive",2],{"docs-navigation":3,"docs-page:\u002Fdocs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-playingcards-io":401},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,12,44,64,254,300,349,375],{"title":10,"path":6,"stem":11},"Overview","docs\u002Findex",{"title":13,"path":14,"stem":15,"children":16,"order":18},"API Overview","\u002Fdocs\u002Fapi","docs\u002Fapi\u002Findex",[17,19,24,29,34,39],{"title":13,"path":14,"stem":15,"order":18},7,{"title":20,"path":21,"stem":22,"order":23},"Assets API","\u002Fdocs\u002Fapi\u002Fassets","docs\u002Fapi\u002Fassets",3,{"title":25,"path":26,"stem":27,"order":28},"Authentication","\u002Fdocs\u002Fapi\u002Fauthentication","docs\u002Fapi\u002Fauthentication",1,{"title":30,"path":31,"stem":32,"order":33},"Components API","\u002Fdocs\u002Fapi\u002Fcomponents","docs\u002Fapi\u002Fcomponents",4,{"title":35,"path":36,"stem":37,"order":38},"Error Handling","\u002Fdocs\u002Fapi\u002Ferrors","docs\u002Fapi\u002Ferrors",5,{"title":40,"path":41,"stem":42,"order":43},"Games API","\u002Fdocs\u002Fapi\u002Fgames","docs\u002Fapi\u002Fgames",2,{"title":45,"path":46,"stem":47,"children":48,"order":38},"Automation","\u002Fdocs\u002Fautomation","docs\u002Fautomation\u002Findex",[49,50,60],{"title":45,"path":46,"stem":47,"order":38},{"title":51,"path":52,"stem":53,"children":54,"order":43},"Sequences","\u002Fdocs\u002Fautomation\u002Fsequences","docs\u002Fautomation\u002Fsequences\u002Findex",[55,56],{"title":51,"path":52,"stem":53,"order":43},{"title":57,"path":58,"stem":59},"Steps","\u002Fdocs\u002Fautomation\u002Fsequences\u002Fsteps","docs\u002Fautomation\u002Fsequences\u002Fsteps",{"title":61,"path":62,"stem":63,"order":28},"Triggers","\u002Fdocs\u002Fautomation\u002Ftriggers","docs\u002Fautomation\u002Ftriggers",{"title":65,"path":66,"stem":67,"children":68,"order":33},"Entities","\u002Fdocs\u002Fentities","docs\u002Fentities\u002Findex",[69,70,160,202],{"title":65,"path":66,"stem":67,"order":33},{"title":71,"path":72,"stem":73,"children":74},"Pieces","\u002Fdocs\u002Fentities\u002Fpieces","docs\u002Fentities\u002F01.pieces\u002Findex",[75,76,90,104,138],{"title":71,"path":72,"stem":73},{"title":77,"path":78,"stem":79,"children":80},"Dice","\u002Fdocs\u002Fentities\u002Fpieces\u002Fdice","docs\u002Fentities\u002F01.pieces\u002Fdice\u002Findex",[81,82,86],{"title":77,"path":78,"stem":79},{"title":83,"path":84,"stem":85},"Polyhedral Die","\u002Fdocs\u002Fentities\u002Fpieces\u002Fdice\u002Fpolyhedral-die","docs\u002Fentities\u002F01.pieces\u002Fdice\u002Fpolyhedral-die",{"title":87,"path":88,"stem":89},"Spinner","\u002Fdocs\u002Fentities\u002Fpieces\u002Fdice\u002Fspinner","docs\u002Fentities\u002F01.pieces\u002Fdice\u002Fspinner",{"title":91,"path":92,"stem":93,"children":94},"Tiles and Stacks","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftiles-and-stacks","docs\u002Fentities\u002F01.pieces\u002Ftiles-and-stacks\u002Findex",[95,96,100],{"title":91,"path":92,"stem":93},{"title":97,"path":98,"stem":99},"Stack","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftiles-and-stacks\u002Fstack","docs\u002Fentities\u002F01.pieces\u002Ftiles-and-stacks\u002Fstack",{"title":101,"path":102,"stem":103},"Tile","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftiles-and-stacks\u002Ftile","docs\u002Fentities\u002F01.pieces\u002Ftiles-and-stacks\u002Ftile",{"title":105,"path":106,"stem":107,"children":108},"Tokens","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftokens","docs\u002Fentities\u002F01.pieces\u002Ftokens\u002Findex",[109,110,114,118,122,126,130,134],{"title":105,"path":106,"stem":107},{"title":111,"path":112,"stem":113},"Block","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftokens\u002Fblock","docs\u002Fentities\u002F01.pieces\u002Ftokens\u002Fblock",{"title":115,"path":116,"stem":117},"Disc","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftokens\u002Fdisc","docs\u002Fentities\u002F01.pieces\u002Ftokens\u002Fdisc",{"title":119,"path":120,"stem":121},"Image Token","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftokens\u002Fimage-token","docs\u002Fentities\u002F01.pieces\u002Ftokens\u002Fimage-token",{"title":123,"path":124,"stem":125},"Model Token","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftokens\u002Fmodel-token","docs\u002Fentities\u002F01.pieces\u002Ftokens\u002Fmodel-token",{"title":127,"path":128,"stem":129},"Pawn","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftokens\u002Fpawn","docs\u002Fentities\u002F01.pieces\u002Ftokens\u002Fpawn",{"title":131,"path":132,"stem":133},"Pyramid","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftokens\u002Fpyramid","docs\u002Fentities\u002F01.pieces\u002Ftokens\u002Fpyramid",{"title":135,"path":136,"stem":137},"Ring","\u002Fdocs\u002Fentities\u002Fpieces\u002Ftokens\u002Fring","docs\u002Fentities\u002F01.pieces\u002Ftokens\u002Fring",{"title":139,"path":140,"stem":141,"children":142},"Utility Pieces","\u002Fdocs\u002Fentities\u002Fpieces\u002Futility-pieces","docs\u002Fentities\u002F01.pieces\u002Futility-pieces\u002Findex",[143,144,148,152,156],{"title":139,"path":140,"stem":141},{"title":145,"path":146,"stem":147},"Bag","\u002Fdocs\u002Fentities\u002Fpieces\u002Futility-pieces\u002Fbag","docs\u002Fentities\u002F01.pieces\u002Futility-pieces\u002Fbag",{"title":149,"path":150,"stem":151},"Counter","\u002Fdocs\u002Fentities\u002Fpieces\u002Futility-pieces\u002Fcounter","docs\u002Fentities\u002F01.pieces\u002Futility-pieces\u002Fcounter",{"title":153,"path":154,"stem":155},"Timer","\u002Fdocs\u002Fentities\u002Fpieces\u002Futility-pieces\u002Ftimer","docs\u002Fentities\u002F01.pieces\u002Futility-pieces\u002Ftimer",{"title":157,"path":158,"stem":159},"Token Bowl","\u002Fdocs\u002Fentities\u002Fpieces\u002Futility-pieces\u002Ftoken-bowl","docs\u002Fentities\u002F01.pieces\u002Futility-pieces\u002Ftoken-bowl",{"title":161,"path":162,"stem":163,"children":164},"Spaces","\u002Fdocs\u002Fentities\u002Fspaces","docs\u002Fentities\u002F02.spaces\u002Findex",[165,166,180],{"title":161,"path":162,"stem":163},{"title":167,"path":168,"stem":169,"children":170},"Layouts","\u002Fdocs\u002Fentities\u002Fspaces\u002Flayouts","docs\u002Fentities\u002F02.spaces\u002Flayouts\u002Findex",[171,172,176],{"title":167,"path":168,"stem":169},{"title":173,"path":174,"stem":175},"Hex Grid","\u002Fdocs\u002Fentities\u002Fspaces\u002Flayouts\u002Fhex-grid","docs\u002Fentities\u002F02.spaces\u002Flayouts\u002Fhex-grid",{"title":177,"path":178,"stem":179},"Square Grid","\u002Fdocs\u002Fentities\u002Fspaces\u002Flayouts\u002Fsquare-grid","docs\u002Fentities\u002F02.spaces\u002Flayouts\u002Fsquare-grid",{"title":181,"path":182,"stem":183,"children":184},"Placement Spaces","\u002Fdocs\u002Fentities\u002Fspaces\u002Fplacement-spaces","docs\u002Fentities\u002F02.spaces\u002Fplacement-spaces\u002Findex",[185,186,190,194,198],{"title":181,"path":182,"stem":183},{"title":187,"path":188,"stem":189},"Box Space","\u002Fdocs\u002Fentities\u002Fspaces\u002Fplacement-spaces\u002Fbox-space","docs\u002Fentities\u002F02.spaces\u002Fplacement-spaces\u002Fbox-space",{"title":191,"path":192,"stem":193},"Hex Space","\u002Fdocs\u002Fentities\u002Fspaces\u002Fplacement-spaces\u002Fhex-space","docs\u002Fentities\u002F02.spaces\u002Fplacement-spaces\u002Fhex-space",{"title":195,"path":196,"stem":197},"Orb Space","\u002Fdocs\u002Fentities\u002Fspaces\u002Fplacement-spaces\u002Forb-space","docs\u002Fentities\u002F02.spaces\u002Fplacement-spaces\u002Forb-space",{"title":199,"path":200,"stem":201},"Point Space","\u002Fdocs\u002Fentities\u002Fspaces\u002Fplacement-spaces\u002Fpoint-space","docs\u002Fentities\u002F02.spaces\u002Fplacement-spaces\u002Fpoint-space",{"title":203,"path":204,"stem":205,"children":206},"Annotations","\u002Fdocs\u002Fentities\u002Fannotations","docs\u002Fentities\u002F03.annotations\u002Findex",[207,208,218,244],{"title":203,"path":204,"stem":205},{"title":209,"path":210,"stem":211,"children":212},"Freehand Annotations","\u002Fdocs\u002Fentities\u002Fannotations\u002Ffreehand-annotations","docs\u002Fentities\u002F03.annotations\u002Ffreehand-annotations\u002Findex",[213,214],{"title":209,"path":210,"stem":211},{"title":215,"path":216,"stem":217},"Freehand Annotation","\u002Fdocs\u002Fentities\u002Fannotations\u002Ffreehand-annotations\u002Ffreehand-annotation","docs\u002Fentities\u002F03.annotations\u002Ffreehand-annotations\u002Ffreehand-annotation",{"title":219,"path":220,"stem":221,"children":222},"Shape Annotations","\u002Fdocs\u002Fentities\u002Fannotations\u002Fshape-annotations","docs\u002Fentities\u002F03.annotations\u002Fshape-annotations\u002Findex",[223,224,228,232,236,240],{"title":219,"path":220,"stem":221},{"title":225,"path":226,"stem":227},"Arrow Annotation","\u002Fdocs\u002Fentities\u002Fannotations\u002Fshape-annotations\u002Farrow-annotation","docs\u002Fentities\u002F03.annotations\u002Fshape-annotations\u002Farrow-annotation",{"title":229,"path":230,"stem":231},"Box Annotation","\u002Fdocs\u002Fentities\u002Fannotations\u002Fshape-annotations\u002Fbox-annotation","docs\u002Fentities\u002F03.annotations\u002Fshape-annotations\u002Fbox-annotation",{"title":233,"path":234,"stem":235},"Hex Annotation","\u002Fdocs\u002Fentities\u002Fannotations\u002Fshape-annotations\u002Fhex-annotation","docs\u002Fentities\u002F03.annotations\u002Fshape-annotations\u002Fhex-annotation",{"title":237,"path":238,"stem":239},"Orb Annotation","\u002Fdocs\u002Fentities\u002Fannotations\u002Fshape-annotations\u002Forb-annotation","docs\u002Fentities\u002F03.annotations\u002Fshape-annotations\u002Forb-annotation",{"title":241,"path":242,"stem":243},"Triangle Annotation","\u002Fdocs\u002Fentities\u002Fannotations\u002Fshape-annotations\u002Ftriangle-annotation","docs\u002Fentities\u002F03.annotations\u002Fshape-annotations\u002Ftriangle-annotation",{"title":245,"path":246,"stem":247,"children":248},"Text Annotations","\u002Fdocs\u002Fentities\u002Fannotations\u002Ftext-annotations","docs\u002Fentities\u002F03.annotations\u002Ftext-annotations\u002Findex",[249,250],{"title":245,"path":246,"stem":247},{"title":251,"path":252,"stem":253},"Text Annotation","\u002Fdocs\u002Fentities\u002Fannotations\u002Ftext-annotations\u002Ftext-annotation","docs\u002Fentities\u002F03.annotations\u002Ftext-annotations\u002Ftext-annotation",{"title":255,"path":256,"stem":257,"children":258,"order":28},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started\u002Findex",[259,260,264,268,296],{"title":255,"path":256,"stem":257,"order":28},{"title":261,"path":262,"stem":263,"order":43},"Tutorial 2: Build a Deck of Cards","\u002Fdocs\u002Fgetting-started\u002Fbuild-a-deck-of-cards","docs\u002Fgetting-started\u002Fbuild-a-deck-of-cards",{"title":265,"path":266,"stem":267,"order":23},"Tutorial 3: Use Your Own Images","\u002Fdocs\u002Fgetting-started\u002Fcustom-images","docs\u002Fgetting-started\u002Fcustom-images",{"title":269,"path":270,"stem":271,"children":272,"order":274},"Why Playtest Parlor?","\u002Fdocs\u002Fgetting-started\u002Fwhy-playtest-parlor","docs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Findex",[273,275,279,283,287,291],{"title":269,"path":270,"stem":271,"order":274},-2,{"title":276,"path":277,"stem":278,"order":33},"Compared to In-Person Playtesting","\u002Fdocs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-in-person","docs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-in-person",{"title":280,"path":281,"stem":282,"order":23},"Compared to PlayingCards.io","\u002Fdocs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-playingcards-io","docs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-playingcards-io",{"title":284,"path":285,"stem":286,"order":43},"Compared to Screentop.gg","\u002Fdocs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-screentop","docs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-screentop",{"title":288,"path":289,"stem":290,"order":28},"Compared to Tabletop Simulator","\u002Fdocs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-tts","docs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-tts",{"title":292,"path":293,"stem":294,"order":295},"Platform Comparison","\u002Fdocs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcomparison-matrix","docs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcomparison-matrix",0,{"title":297,"path":298,"stem":299,"order":28},"Tutorial 1: Your First Game","\u002Fdocs\u002Fgetting-started\u002Fyour-first-game","docs\u002Fgetting-started\u002Fyour-first-game",{"title":301,"path":302,"stem":303,"children":304,"order":43},"Interface","\u002Fdocs\u002Finterface","docs\u002Finterface\u002Findex",[305,306,310,315,319,323,328,332,336,341,345],{"title":301,"path":302,"stem":303,"order":43},{"title":307,"path":308,"stem":309,"order":33},"The Action Dock","\u002Fdocs\u002Finterface\u002Faction-dock","docs\u002Finterface\u002Faction-dock",{"title":311,"path":312,"stem":313,"order":314},"Finding Your Discord User ID","\u002Fdocs\u002Finterface\u002Fdiscord-id","docs\u002Finterface\u002Fdiscord-id",10,{"title":316,"path":317,"stem":318,"order":18},"The Entity Browser","\u002Fdocs\u002Finterface\u002Fentity-browser","docs\u002Finterface\u002Fentity-browser",{"title":320,"path":321,"stem":322,"order":38},"The Minimap","\u002Fdocs\u002Finterface\u002Fminimap","docs\u002Finterface\u002Fminimap",{"title":324,"path":325,"stem":326,"order":327},"The Player Hand","\u002Fdocs\u002Finterface\u002Fplayer-hand","docs\u002Finterface\u002Fplayer-hand",6,{"title":329,"path":330,"stem":331,"order":23},"The Players Panel","\u002Fdocs\u002Finterface\u002Fplayers-panel","docs\u002Finterface\u002Fplayers-panel",{"title":333,"path":334,"stem":335},"Sequences Panel","\u002Fdocs\u002Finterface\u002Fsequences-panel","docs\u002Finterface\u002Fsequences-panel",{"title":337,"path":338,"stem":339,"order":340},"Session Notebook","\u002Fdocs\u002Finterface\u002Fsession-notebook","docs\u002Finterface\u002Fsession-notebook",8,{"title":342,"path":343,"stem":344,"order":28},"The Table","\u002Fdocs\u002Finterface\u002Ftable","docs\u002Finterface\u002Ftable",{"title":346,"path":347,"stem":348,"order":43},"The Toolbar","\u002Fdocs\u002Finterface\u002Ftoolbar","docs\u002Finterface\u002Ftoolbar",{"title":350,"path":351,"stem":352,"children":353,"order":23},"Playtests","\u002Fdocs\u002Fplaytests","docs\u002Fplaytests\u002Findex",[354,355,359,363,367,371],{"title":350,"path":351,"stem":352,"order":23},{"title":356,"path":357,"stem":358,"order":43},"Inviting players","\u002Fdocs\u002Fplaytests\u002Finviting-players","docs\u002Fplaytests\u002Finviting-players",{"title":360,"path":361,"stem":362,"order":38},"Player count guidelines","\u002Fdocs\u002Fplaytests\u002Fplayer-count-guidelines","docs\u002Fplaytests\u002Fplayer-count-guidelines",{"title":364,"path":365,"stem":366,"order":33},"Reviewing outcomes","\u002Fdocs\u002Fplaytests\u002Freviewing-outcomes","docs\u002Fplaytests\u002Freviewing-outcomes",{"title":368,"path":369,"stem":370,"order":28},"Starting a playtest","\u002Fdocs\u002Fplaytests\u002Fstarting-a-playtest","docs\u002Fplaytests\u002Fstarting-a-playtest",{"title":372,"path":373,"stem":374,"order":23},"Surveys","\u002Fdocs\u002Fplaytests\u002Fsurveys","docs\u002Fplaytests\u002Fsurveys",{"title":376,"path":377,"stem":378,"children":379,"order":43},"Setting up a Table","\u002Fdocs\u002Fsetting-up-a-table","docs\u002Fsetting-up-a-table\u002Findex",[380,381,385,389,393,397],{"title":376,"path":377,"stem":378,"order":43},{"title":382,"path":383,"stem":384,"order":28},"Adding pieces to a table","\u002Fdocs\u002Fsetting-up-a-table\u002Fadding-pieces-to-a-table","docs\u002Fsetting-up-a-table\u002Fadding-pieces-to-a-table",{"title":386,"path":387,"stem":388,"order":43},"Building your first table layout","\u002Fdocs\u002Fsetting-up-a-table\u002Fbuilding-your-first-table-layout","docs\u002Fsetting-up-a-table\u002Fbuilding-your-first-table-layout",{"title":390,"path":391,"stem":392,"order":33},"Importing from The Game Crafter","\u002Fdocs\u002Fsetting-up-a-table\u002Fimporting-from-the-game-crafter","docs\u002Fsetting-up-a-table\u002Fimporting-from-the-game-crafter",{"title":394,"path":395,"stem":396,"order":38},"Importing with manual uploads","\u002Fdocs\u002Fsetting-up-a-table\u002Fimporting-with-manual-uploads","docs\u002Fsetting-up-a-table\u002Fimporting-with-manual-uploads",{"title":398,"path":399,"stem":400,"order":23},"Saving a table configuration","\u002Fdocs\u002Fsetting-up-a-table\u002Fsaving-a-table-configuration","docs\u002Fsetting-up-a-table\u002Fsaving-a-table-configuration",{"id":402,"title":280,"body":403,"description":1666,"extension":1667,"meta":1668,"navigation":1669,"path":281,"seo":1670,"stem":282,"__hash__":1671},"docs\u002Fdocs\u002Fgetting-started\u002Fwhy-playtest-parlor\u002Fcompared-to-playingcards-io.md",{"type":404,"value":405,"toc":1651},"minimark",[406,410,413,418,530,533,537,716,719,723,926,929,932,1049,1052,1056,1162,1165,1169,1250,1253,1257,1377,1380,1384,1466,1469,1473,1557,1560,1564,1622,1625,1629,1644,1648],[407,408,409],"p",{},"PlayingCards.io is a free, browser-based virtual tabletop for playing card and board games online. Playtest Parlor is a playtesting platform for developing games. Both run in the browser with zero install, but they solve different problems.",[407,411,412],{},"If you are a game designer who needs to prototype, playtest, and iterate, here is how the two compare.",[414,415,417],"h2",{"id":416},"getting-testers-to-the-table","Getting testers to the table",[419,420,421,436],"table",{},[422,423,424],"thead",{},[425,426,427,430,433],"tr",{},[428,429],"th",{},[428,431,432],{},"Playtest Parlor",[428,434,435],{},"PlayingCards.io",[437,438,439,453,465,486,498,514],"tbody",{},[425,440,441,448,451],{},[442,443,444],"td",{},[445,446,447],"strong",{},"Install",[442,449,450],{},"None -- opens in a browser",[442,452,450],{},[425,454,455,460,463],{},[442,456,457],{},[445,458,459],{},"Cost for testers",[442,461,462],{},"Free",[442,464,462],{},[425,466,467,472,480],{},[442,468,469],{},[445,470,471],{},"Account required",[442,473,474],{},[475,476,479],"span",{"className":477},[478],"cmp-win","No -- guest join via link",[442,481,482],{},[475,483,485],{"className":484},[478],"No -- join via room code",[425,487,488,493,496],{},[442,489,490],{},[445,491,492],{},"Time to first play",[442,494,495],{},"Under 60 seconds",[442,497,495],{},[425,499,500,505,511],{},[442,501,502],{},[445,503,504],{},"Mobile support",[442,506,507],{},[475,508,510],{"className":509},[478],"Yes -- touch-native controls",[442,512,513],{},"Works but keyboard-centric controls limit usability",[425,515,516,521,527],{},[442,517,518],{},[445,519,520],{},"Max players",[442,522,523],{},[475,524,526],{"className":525},[478],"16 + spectators",[442,528,529],{},"No enforced limit (~8 recommended)",[407,531,532],{},"Both platforms nail zero-friction access. No install, no purchase, no account. The difference shows up in mobile usability: Playtest Parlor is designed for touch, while PlayingCards.io relies on keyboard shortcuts for rotation and other controls that do not translate well to phones and tablets.",[414,534,536],{"id":535},"playtesting-tools","Playtesting tools",[419,538,539,550],{},[422,540,541],{},[425,542,543,546,548],{},[428,544,545],{},"Feature",[428,547,432],{},[428,549,435],{},[437,551,552,572,590,608,626,644,662,680,698],{},[425,553,554,559,565],{},[442,555,556],{},[445,557,558],{},"Live Markup",[442,560,561],{},[475,562,564],{"className":563},[478],"Draw and write directly on any component",[442,566,567],{},[475,568,571],{"className":569},[570],"cmp-lose","Not available",[425,573,574,579,585],{},[442,575,576],{},[445,577,578],{},"Playtest records",[442,580,581],{},[475,582,584],{"className":583},[478],"Structured session records with outcomes and notes",[442,586,587],{},[475,588,571],{"className":589},[570],[425,591,592,597,603],{},[442,593,594],{},[445,595,596],{},"Post-session surveys",[442,598,599],{},[475,600,602],{"className":601},[478],"Built-in feedback forms for fun, clarity, pace, balance",[442,604,605],{},[475,606,571],{"className":607},[570],[425,609,610,615,621],{},[442,611,612],{},[445,613,614],{},"Session replay",[442,616,617],{},[475,618,620],{"className":619},[478],"Full timeline playback with scrubbing",[442,622,623],{},[475,624,571],{"className":625},[570],[425,627,628,633,639],{},[442,629,630],{},[445,631,632],{},"Marked moments",[442,634,635],{},[475,636,638],{"className":637},[478],"Timestamped in-game note-taking tagged to events",[442,640,641],{},[475,642,571],{"className":643},[570],[425,645,646,651,657],{},[442,647,648],{},[445,649,650],{},"Event logging",[442,652,653],{},[475,654,656],{"className":655},[478],"Every action recorded with timestamp and actor",[442,658,659],{},[475,660,571],{"className":661},[570],[425,663,664,669,675],{},[442,665,666],{},[445,667,668],{},"Game resources",[442,670,671],{},[475,672,674],{"className":673},[478],"Attach rules PDFs, videos, and links to sessions",[442,676,677],{},[475,678,571],{"className":679},[570],[425,681,682,687,693],{},[442,683,684],{},[445,685,686],{},"Session notebook",[442,688,689],{},[475,690,692],{"className":691},[478],"Rich notes with event tagging and categories",[442,694,695],{},[475,696,571],{"className":697},[570],[425,699,700,705,711],{},[442,701,702],{},[445,703,704],{},"Playtest analytics",[442,706,707],{},[475,708,710],{"className":709},[478],"Session duration, action frequency, component heatmaps, cross-session trends",[442,712,713],{},[475,714,571],{"className":715},[570],[407,717,718],{},"This is the widest gap between the two platforms. PlayingCards.io describes itself as a \"synchronized playspace\" -- it gives you a shared surface and components, and that is it. None of the structured playtesting features exist because PlayingCards.io was built for playing games, not developing them. Designers who use it for playtesting must rely on external screen recording, manual note-taking, and separate feedback forms.",[414,720,722],{"id":721},"game-components","Game components",[419,724,725,735],{},[422,726,727],{},[425,728,729,731,733],{},[428,730],{},[428,732,432],{},[428,734,435],{},[437,736,737,753,769,784,796,807,823,834,853,871,889,907],{},[425,738,739,744,750],{},[442,740,741],{},[445,742,743],{},"Tiles\u002Fcards",[442,745,746],{},[475,747,749],{"className":748},[478],"Multi-face with SVG shapes and sleeves",[442,751,752],{},"Double-sided with layer-based customization",[425,754,755,760,766],{},[442,756,757],{},[445,758,759],{},"Stacks\u002Fdecks",[442,761,762],{},[475,763,765],{"className":764},[478],"Full deck operations with visual spread options",[442,767,768],{},"Holders with pile, spread, grid, and freeform layouts",[425,770,771,775,781],{},[442,772,773],{},[445,774,77],{},[442,776,777],{},[475,778,780],{"className":779},[478],"3D rendered with seeded RNG",[442,782,783],{},"Configurable sides with custom faces",[425,785,786,791,794],{},[442,787,788],{},[445,789,790],{},"Counters",[442,792,793],{},"Built-in component",[442,795,793],{},[425,797,798,803,805],{},[442,799,800],{},[445,801,802],{},"Timers",[442,804,793],{},[442,806,793],{},[425,808,809,814,820],{},[442,810,811],{},[445,812,813],{},"Spinners",[442,815,816],{},[475,817,819],{"className":818},[478],"Built-in component with full customization",[442,821,822],{},"Limited -- preset outcome counts, one size",[425,824,825,830,832],{},[442,826,827],{},[445,828,829],{},"Action buttons",[442,831,793],{},[442,833,793],{},[425,835,836,841,847],{},[442,837,838],{},[445,839,840],{},"3D tokens and pawns",[442,842,843],{},[475,844,846],{"className":845},[478],"3D rendered tokens",[442,848,849],{},[475,850,852],{"className":851},[570],"2D game pieces only",[425,854,855,860,866],{},[442,856,857],{},[445,858,859],{},"SVG-shaped tiles",[442,861,862],{},[475,863,865],{"className":864},[478],"Arbitrary shapes via SVG paths with accurate hit detection",[442,867,868],{},[475,869,571],{"className":870},[570],[425,872,873,878,884],{},[442,874,875],{},[445,876,877],{},"Bags and bowls",[442,879,880],{},[475,881,883],{"className":882},[478],"Hidden containers for blind draws",[442,885,886],{},[475,887,571],{"className":888},[570],[425,890,891,896,902],{},[442,892,893],{},[445,894,895],{},"Sleeves",[442,897,898],{},[475,899,901],{"className":900},[478],"Two-sided holders for card crafting games",[442,903,904],{},[475,905,571],{"className":906},[570],[425,908,909,914,920],{},[442,910,911],{},[445,912,913],{},"Component shapes",[442,915,916],{},[475,917,919],{"className":918},[478],"Rectangle, hex, circle, and custom SVG",[442,921,922],{},[475,923,925],{"className":924},[570],"Rectangle only",[407,927,928],{},"Both platforms cover the basics -- cards, dice, counters, and buttons. PlayingCards.io has a capable layer system for customizing card faces and backs, but it stays strictly 2D. Playtest Parlor goes further with 3D tokens, SVG-shaped tiles, sleeves, bags, bowls, and hex components.",[414,930,45],{"id":931},"automation",[419,933,934,944],{},[422,935,936],{},[425,937,938,940,942],{},[428,939],{},[428,941,432],{},[428,943,435],{},[437,945,946,962,978,996,1012,1031],{},[425,947,948,953,959],{},[442,949,950],{},[445,951,952],{},"Approach",[442,954,955],{},[475,956,958],{"className":957},[478],"Visual sequence builder, no code",[442,960,961],{},"Sequential button steps",[425,963,964,969,975],{},[442,965,966],{},[445,967,968],{},"Step types",[442,970,971],{},[475,972,974],{"className":973},[478],"38+ built-in step types",[442,976,977],{},"15 step types",[425,979,980,985,991],{},[442,981,982],{},[445,983,984],{},"Conditional logic",[442,986,987],{},[475,988,990],{"className":989},[478],"Stop-if, only-if, switch-case dispatch",[442,992,993],{},[475,994,571],{"className":995},[570],[425,997,998,1003,1009],{},[442,999,1000],{},[445,1001,1002],{},"Player prompts",[442,1004,1005],{},[475,1006,1008],{"className":1007},[478],"Confirmation, number input, choose from list",[442,1010,1011],{},"Number and object selection popups",[425,1013,1014,1019,1025],{},[442,1015,1016],{},[445,1017,1018],{},"Reactive triggers",[442,1020,1021],{},[475,1022,1024],{"className":1023},[478],"Visual event triggers that fire automatically",[442,1026,1027],{},[475,1028,1030],{"className":1029},[570],"Not available -- buttons only",[425,1032,1033,1038,1044],{},[442,1034,1035],{},[445,1036,1037],{},"Sub-sequences",[442,1039,1040],{},[475,1041,1043],{"className":1042},[478],"Reusable automation chains",[442,1045,1046],{},[475,1047,571],{"className":1048},[570],[407,1050,1051],{},"PlayingCards.io has basic automation -- you can set up buttons that deal cards, shuffle decks, and roll dice. But it has no conditionals, no variables, no event-driven triggers, and no way to compose reusable sequences. Anything beyond \"click this button to deal 5 cards\" requires players to enforce the rules manually. Playtest Parlor's sequence builder supports branching logic, reactive triggers, and sub-sequence composition, covering far more of the game's rules without code.",[414,1053,1055],{"id":1054},"asset-management","Asset management",[419,1057,1058,1068],{},[422,1059,1060],{},[425,1061,1062,1064,1066],{},[428,1063],{},[428,1065,432],{},[428,1067,435],{},[437,1069,1070,1089,1108,1127,1146],{},[425,1071,1072,1077,1083],{},[442,1073,1074],{},[445,1075,1076],{},"Image hosting",[442,1078,1079],{},[475,1080,1082],{"className":1081},[478],"Managed -- upload or import from TGC",[442,1084,1085],{},[475,1086,1088],{"className":1087},[570],"External URLs only -- no built-in hosting",[425,1090,1091,1096,1102],{},[442,1092,1093],{},[445,1094,1095],{},"Reliability",[442,1097,1098],{},[475,1099,1101],{"className":1100},[478],"Permanent",[442,1103,1104],{},[475,1105,1107],{"className":1106},[570],"Breaks when external hosts go down",[425,1109,1110,1115,1121],{},[442,1111,1112],{},[445,1113,1114],{},"Optimization",[442,1116,1117],{},[475,1118,1120],{"className":1119},[478],"Checksums, deduplication, sprite sheets, thumbnails",[442,1122,1123],{},[475,1124,1126],{"className":1125},[570],"None",[425,1128,1129,1134,1140],{},[442,1130,1131],{},[445,1132,1133],{},"Upload options",[442,1135,1136],{},[475,1137,1139],{"className":1138},[478],"Individual images, sprite sheets, or The Game Crafter import",[442,1141,1142],{},[475,1143,1145],{"className":1144},[570],"URL references only",[425,1147,1148,1153,1159],{},[442,1149,1150],{},[445,1151,1152],{},"Bulk data import",[442,1154,1155],{},[475,1156,1158],{"className":1157},[478],"The Game Crafter integration",[442,1160,1161],{},"CSV import for card text layers",[407,1163,1164],{},"This is a major practical difference. PlayingCards.io does not host images at all. Every card face, board, and custom component must point to an image URL you host somewhere else -- Imgur, a personal server, Google Drive (with the right sharing settings). If that host goes down or changes its URL structure, your game breaks. Playtest Parlor manages all assets directly with deduplication, optimization, and permanent storage.",[414,1166,1168],{"id":1167},"networking-and-reliability","Networking and reliability",[419,1170,1171,1181],{},[422,1172,1173],{},[425,1174,1175,1177,1179],{},[428,1176],{},[428,1178,432],{},[428,1180,435],{},[437,1182,1183,1199,1215,1231],{},[425,1184,1185,1190,1196],{},[442,1186,1187],{},[445,1188,1189],{},"Architecture",[442,1191,1192],{},[475,1193,1195],{"className":1194},[478],"Server-authoritative",[442,1197,1198],{},"Server-based",[425,1200,1201,1206,1212],{},[442,1202,1203],{},[445,1204,1205],{},"Host disconnects",[442,1207,1208],{},[475,1209,1211],{"className":1210},[478],"Game continues, host reconnects",[442,1213,1214],{},"Not documented",[425,1216,1217,1222,1228],{},[442,1218,1219],{},[445,1220,1221],{},"State persistence",[442,1223,1224],{},[475,1225,1227],{"className":1226},[478],"Server-backed",[442,1229,1230],{},"Server-backed (rooms persist)",[425,1232,1233,1238,1244],{},[442,1234,1235],{},[445,1236,1237],{},"Room expiration",[442,1239,1240],{},[475,1241,1243],{"className":1242},[478],"No expiration",[442,1245,1246],{},[475,1247,1249],{"className":1248},[570],"2 weeks (no account), 30 days (free account), never (subscriber)",[407,1251,1252],{},"Both platforms are server-based, which is better than peer-to-peer alternatives. The key difference is room expiration: PlayingCards.io rooms expire after 2 weeks of inactivity on the free tier, which can be a problem for playtesting cycles that happen sporadically. Playtest Parlor sessions persist without time limits.",[414,1254,1256],{"id":1255},"game-development-workflow","Game development workflow",[419,1258,1259,1269],{},[422,1260,1261],{},[425,1262,1263,1265,1267],{},[428,1264],{},[428,1266,432],{},[428,1268,435],{},[437,1270,1271,1290,1309,1328,1346,1364],{},[425,1272,1273,1278,1284],{},[442,1274,1275],{},[445,1276,1277],{},"Collaboration",[442,1279,1280],{},[475,1281,1283],{"className":1282},[478],"Multiple designers, real-time sync, permissions",[442,1285,1286],{},[475,1287,1289],{"className":1288},[570],"Anyone with the room code can edit",[425,1291,1292,1297,1303],{},[442,1293,1294],{},[445,1295,1296],{},"Access control",[442,1298,1299],{},[475,1300,1302],{"className":1301},[478],"Role-based permissions",[442,1304,1305],{},[475,1306,1308],{"className":1307},[570],"Edit lock requires paid subscription",[425,1310,1311,1316,1322],{},[442,1312,1313],{},[445,1314,1315],{},"Version tracking",[442,1317,1318],{},[475,1319,1321],{"className":1320},[478],"Import revision history",[442,1323,1324],{},[475,1325,1327],{"className":1326},[570],"None -- manual .pcio file exports",[425,1329,1330,1335,1341],{},[442,1331,1332],{},[445,1333,1334],{},"Undo",[442,1336,1337],{},[475,1338,1340],{"className":1339},[478],"Full undo\u002Fredo with checkpoint snapshots + trash recovery",[442,1342,1343],{},[475,1344,1214],{"className":1345},[570],[425,1347,1348,1353,1359],{},[442,1349,1350],{},[445,1351,1352],{},"Player presence",[442,1354,1355],{},[475,1356,1358],{"className":1357},[478],"Colored presence glows and grab indicators",[442,1360,1361],{},[475,1362,571],{"className":1363},[570],[425,1365,1366,1371,1374],{},[442,1367,1368],{},[445,1369,1370],{},"Export\u002Fimport",[442,1372,1373],{},"Game definitions",[442,1375,1376],{},".pcio files (ZIP\u002FJSON)",[407,1378,1379],{},"PlayingCards.io has a simple export\u002Fimport system using .pcio files, and a community has formed around sharing these files. But there is no version control, no role-based access, and no undo history. On the free tier, anyone who joins the room can enter edit mode and modify the game -- including your playtesters. Locking editing requires a paid subscription.",[414,1381,1383],{"id":1382},"communication","Communication",[419,1385,1386,1396],{},[422,1387,1388],{},[425,1389,1390,1392,1394],{},[428,1391],{},[428,1393,432],{},[428,1395,435],{},[437,1397,1398,1413,1431,1449],{},[425,1399,1400,1404,1407],{},[442,1401,1402],{},[445,1403,952],{},[442,1405,1406],{},"Discord integration",[442,1408,1409],{},[475,1410,1412],{"className":1411},[570],"No built-in communication",[425,1414,1415,1420,1426],{},[442,1416,1417],{},[445,1418,1419],{},"Voice",[442,1421,1422],{},[475,1423,1425],{"className":1424},[478],"Discord-grade voice",[442,1427,1428],{},[475,1429,571],{"className":1430},[570],[425,1432,1433,1438,1444],{},[442,1434,1435],{},[445,1436,1437],{},"Text chat",[442,1439,1440],{},[475,1441,1443],{"className":1442},[478],"Discord channels",[442,1445,1446],{},[475,1447,571],{"className":1448},[570],[425,1450,1451,1456,1461],{},[442,1452,1453],{},[445,1454,1455],{},"Persistent history",[442,1457,1458],{},[475,1459,1443],{"className":1460},[478],[442,1462,1463],{},[475,1464,571],{"className":1465},[570],[407,1467,1468],{},"PlayingCards.io has no communication tools at all. The platform explicitly tells users to arrange their own voice or video chat via Zoom, Skype, or phone. Playtest Parlor integrates with Discord for voice, text, screen sharing, and persistent history.",[414,1470,1472],{"id":1471},"table-and-visual-tools","Table and visual tools",[419,1474,1475,1485],{},[422,1476,1477],{},[425,1478,1479,1481,1483],{},[428,1480],{},[428,1482,432],{},[428,1484,435],{},[437,1486,1487,1503,1521,1539],{},[425,1488,1489,1494,1500],{},[442,1490,1491],{},[445,1492,1493],{},"Custom table backgrounds",[442,1495,1496],{},[475,1497,1499],{"className":1498},[478],"Upload images with fill, fit, tile, and center options",[442,1501,1502],{},"Custom board images",[425,1504,1505,1510,1516],{},[442,1506,1507],{},[445,1508,1509],{},"Measure tool",[442,1511,1512],{},[475,1513,1515],{"className":1514},[478],"Point-to-point measurement in configurable units",[442,1517,1518],{},[475,1519,571],{"className":1520},[570],[425,1522,1523,1528,1534],{},[442,1524,1525],{},[445,1526,1527],{},"Freehand annotations",[442,1529,1530],{},[475,1531,1533],{"className":1532},[478],"Draw on the table surface with persistent, movable strokes",[442,1535,1536],{},[475,1537,571],{"className":1538},[570],[425,1540,1541,1546,1552],{},[442,1542,1543],{},[445,1544,1545],{},"Snap-to-point",[442,1547,1548],{},[475,1549,1551],{"className":1550},[478],"Spaces define snap points, grids, and spatial layouts",[442,1553,1554],{},[475,1555,571],{"className":1556},[570],[407,1558,1559],{},"PlayingCards.io lets you set a background image, but it has no measurement tools, no annotations, and no spatial layout system. Components are placed freely on the surface with no snap-to-point support.",[414,1561,1563],{"id":1562},"pricing","Pricing",[419,1565,1566,1576],{},[422,1567,1568],{},[425,1569,1570,1572,1574],{},[428,1571],{},[428,1573,432],{},[428,1575,435],{},[437,1577,1578,1590,1609],{},[425,1579,1580,1585,1588],{},[442,1581,1582],{},[445,1583,1584],{},"Free tier",[442,1586,1587],{},"Free to create and play",[442,1589,1587],{},[425,1591,1592,1597,1603],{},[442,1593,1594],{},[445,1595,1596],{},"Ads",[442,1598,1599],{},[475,1600,1602],{"className":1601},[478],"No ads",[442,1604,1605],{},[475,1606,1608],{"className":1607},[570],"Popup ads approximately twice per hour",[425,1610,1611,1616,1619],{},[442,1612,1613],{},[445,1614,1615],{},"Paid features",[442,1617,1618],{},"Subscription plans",[442,1620,1621],{},"Subscription -- removes ads, locks editing, non-expiring rooms",[407,1623,1624],{},"Both platforms are free to use. PlayingCards.io shows popup ads roughly twice per hour on the free tier, which can disrupt a playtesting session. Playtest Parlor does not show ads.",[414,1626,1628],{"id":1627},"where-playingcardsio-has-an-edge","Where PlayingCards.io has an edge",[407,1630,1631,1632,1635,1636,1639,1640,1643],{},"PlayingCards.io has a ",[445,1633,1634],{},"large existing user base"," from COVID-era adoption and an active community sharing .pcio game files via GitHub and itch.io. Its ",[445,1637,1638],{},"room code system"," is dead simple for casual play. And its ",[445,1641,1642],{},"layer-based card builder"," with CSV import is a quick way to get a deck of custom cards on a table without needing to create individual images.",[414,1645,1647],{"id":1646},"the-bottom-line","The bottom line",[407,1649,1650],{},"PlayingCards.io and Playtest Parlor share the same starting point -- browser-based, no install, free for players. From there they diverge sharply. PlayingCards.io is a synchronized surface for pushing cards and pieces around. It does that job well and does it for free. But it has no playtesting tools, no asset hosting, no communication, no conditional automation, and no access control on the free tier. Playtest Parlor was built for the full playtesting workflow: import your game, get testers to the table, capture structured feedback, replay sessions, analyze patterns, and iterate. If you need more than a shared surface, Playtest Parlor was designed for that job.",{"title":1652,"searchDepth":43,"depth":43,"links":1653},"",[1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665],{"id":416,"depth":43,"text":417},{"id":535,"depth":43,"text":536},{"id":721,"depth":43,"text":722},{"id":931,"depth":43,"text":45},{"id":1054,"depth":43,"text":1055},{"id":1167,"depth":43,"text":1168},{"id":1255,"depth":43,"text":1256},{"id":1382,"depth":43,"text":1383},{"id":1471,"depth":43,"text":1472},{"id":1562,"depth":43,"text":1563},{"id":1627,"depth":43,"text":1628},{"id":1646,"depth":43,"text":1647},"How Playtest Parlor compares to PlayingCards.io for board game playtesting.","md",{},{"order":23},{"title":280,"description":1666},"fAI0x1AVzipRA6TNUzdNqKe-Bet0jV9LkiqWg0IxAiI",1778263811545]