A terrible game for terrible people: a synced multiplayer Cards Against Humanity clone for up to 10 players. Everything runs in the browser, so it needs only static hosting. Made for SideQuest / AltspaceVR worlds, and it also works in Banter.
There is no server: players stay in sync through the space's shared state, and the game is plain static files served from https://hah.firer.at.
To try it, open https://hah.firer.at in Altspace or Banter.
- More than 70 official and unofficial packs, chosen by the host in game
- Players can rejoin a game in progress and keep their seat
In a Creator SDK world, add an empty GameObject at the origin, click Add Component > BS > Snippet and type hah. Or paste this into Assets/WebRoot/index.html, between the snippet section comments:
<!-- snippet section -->
<bs-snippet name="hah" title="Holograms Against Humanity"
description="Synced multiplayer party card game table."
script="https://hah.firer.at/snippet.js"
room=""
position="0 0 3"
rotation="0 0 0"
debug="false">
<bs-gizmo type="position" attribute="position"/>
<bs-gizmo type="plane" attribute="position" size="3.2 3.2" rotation="90 0 0"/>
</bs-snippet>
<!-- end snippet section -->- Each placement is its own game. Its sync id is
room, or the placement's own id whenroomis empty. Give placements the sameroomto share one game. positionandrotationare Unity world values. The other settings are listed under Settings. An empty setting uses the default.- The Scene-view gizmo shows the table footprint.
- Unity reads the snippet section as XML: quote every attribute, close every element, and write
&as&.
This works in an Altspace world's Assets/WebRoot/index.html (outside the snippet section) and in a Banter space's HTML:
<script src="https://hah.firer.at/hah.js" position="0 -0.4 -5" instance="my-private-game"></script>For more than one table in a space, give each one its own instance:
<script src="https://hah.firer.at/hah.js" instance="table1" position="-4 0 0"></script>
<script src="https://hah.firer.at/hah.js" instance="table2" position="4 0 0"></script>| Setting | Also accepted | Default | Description |
|---|---|---|---|
instance |
hah_game |
Sync id. Tables with the same id share one game. In a snippet, use room instead. |
|
position |
0 0 0 |
Table position (x y z). | |
rotation |
0 0 0 |
Table rotation in degrees (x y z). | |
debug |
false |
true logs extra detail to the console. |
The game starts with the CAH Base Set. The host (or anyone who claims host in an empty room) can change it:
- Click DECK OPTIONS on the centre hub.
- Click packs to turn them on or off (green is on).
- Click SAVE DECKS.
- Click START ROUND.
hah.js: the game.decks/cah-all-compact.json: the cards.Assets/: sounds and models.formatter.html: a tool for building deck files.snippet.js,snippet.html: the Creator SDK snippet and its definition.index.html: a test page with a floor and the game.
- Adapted for AltspaceVR by Derogatory, falkrons, schmidtec
- Ported to Banter by Shane; improved and ported from Glitch by FireRat
- Card data: JSON Against Humanity
See ATTRIBUTION.txt.
CC BY-NC-SA 4.0. See LICENSE.