BREWVENTURE

BREWVENTURE / DOCS

OPERATOR GUIDE

Everything you need to go from signed up to live — embedding your world, configuring your venue, and wiring up loyalty.

01 · GETTING STARTED

BrewVenture provisions your venue world and gives you an embed URL. From there, you control everything through the tenant admin at /manage.

01

ACCEPT YOUR INVITE

Check your email for an invite from hello@brewventure.com.au. Click the link to create your admin account. If it's expired, email us for a fresh one.
02

CONFIGURE YOUR WORLD

Log in at /manage. Set your brand colours, arrival copy, and Square loyalty options. Changes take effect immediately — no rebuild.
03

GENERATE YOUR MAP

Go to /manage/map. Enter your venue's bounding box (we pre-fill it from your address). Click Render — the overworld map generates from OpenStreetMap data in about 30 seconds.
04

EMBED ON YOUR SITE

Copy the iframe snippet from /manage and paste it into any page on your website. Add your domain to the allowedOrigins list so the CSP header permits the embed. That's it.

02 · EMBEDDING

BrewVenture embeds via a standard iframe. The game runs at /embed/<slug> on the BrewVenture domain and communicates with your page via postMessage for arrival events.

IFRAME SNIPPET

<iframe
  src="https://westside.brewventure.com.au/embed"
  width="100%"
  style="aspect-ratio: 16/9; border: none; max-width: 1280px;"
  allow="fullscreen"
  title="Westside Ale Works — BrewVenture"
></iframe>

ALLOWED ORIGINS

The embed is protected by a Content-Security-Policy: frame-ancestors header. Your site's origin must be in the allowlist or the browser will block the embed.

Update embedding.allowedOrigins in your tenant config via /manage/config:

"embedding": {
  "allowedOrigins": [
    "https://yourvenue.com.au",
    "https://www.yourvenue.com.au"
  ]
}

Changes to allowedOrigins take effect on the next page load — no redeploy required. Empty allowlist = frame-ancestors 'none' (blocks all embedding).

RESPONSIVE SIZING

The game renders at a fixed 16:9 aspect ratio up to 1280×720px. Use aspect-ratio: 16/9 on the iframe so it scales fluidly. On portrait mobile the game requests landscape orientation — a rotation prompt appears automatically.

03 · TENANT CONFIG

All venue configuration lives in a single JSON document validated against the BrewVenture Zod schema. The key sections are below. Edit via /manage/config or ask us to update it directly.

IDENTITY

"identity": {
  "displayName": "Westside Ale Works",
  "tagline": "South Melbourne's neighbourhood brewery",
  "slug": "westside"
}

BRANDING

"branding": {
  "colors": {
    "primary": "#728062",   // used in UI accents
    "secondary": "#cf7728"
  },
  "showPoweredByMark": true  // false = hides the BrewVenture credit
}

GAMEPLAY

"gameplay": {
  "playerSpeed": 160,
  "goal": { "label": "Westside Ale Works" },
  "sprint": {
    "enabled": true,
    "speedMultiplier": 1.5,   // SHIFT key sprint speed
    "thirstMultiplier": 2.0   // sprint fills thirst 2× faster
  }
}

THIRST METER

"thirstMeter": {
  "fillRatePerSecond": 0.02,   // how fast thirst fills
  "beerReduction": 0.25,       // how much a beer reduces it
  "criticalThreshold": 0.75    // amber warning threshold
}

FEATURE FLAGS

"featureFlags": {
  "enableThirstMeter": true,
  "enableBuzzEffect": true,
  "enableNpcDialogue": true,
  "enableAudio": false         // flip true once audio files land
}

04 · SQUARE INTEGRATION

When a player arrives at your venue, BrewVenture can trigger a Square loyalty comp — a free pint, a stamp, or a custom reward — via the Square Loyalty API.

PREREQUISITES

  • A Square seller account with Loyalty enabled
  • OAuth credentials provisioned by BrewVenture (we handle the OAuth flow)
  • At least one reward tier configured in your Square Dashboard

CONFIG

"arrivalCta": {
  "square": {
    "loyaltyEnabled": true,
    "rewardCopy": "one free pint of our core range",
    "expiryDays": 30,
    "marketingOptInCopy": "Tell me when new beers drop",
    "fallbackManualComp": true  // if API fails, show a barcode
  }
}

loyaltyEnabled: false — arrival shows an email capture form instead of the Square comp flow. Useful before OAuth is connected.

OAUTH SETUP

Contact us at hello@brewventure.com.au to start the OAuth provisioning. We'll walk you through authorising the BrewVenture app in your Square Dashboard — takes about 5 minutes.

05 · MAP EDITOR

The map editor at /manage/map renders your overworld from OpenStreetMap data and lets you place gameplay objects — spawn points, beer pickups, landmarks, NPCs, and your goal pin.

RENDER PIPELINE

BBOXSet your venue bounding box (lat/lng). We pre-fill from your address — adjust to include nearby landmarks.
FETCHOverpass API pulls roads, buildings, and water features for the area.
RASTERISEOur pipeline converts the OSM data into the BrewVenture 16-bit tile grid using your brand colours.
CACHEThe rendered map is cached in Supabase Storage. Re-render any time if the area changes.

PLACING OBJECTS

Use the OBJECTS tool (keyboard shortcut O) to place pins on the map canvas. Each object type has a colour code:

SPAWN     orange circle   — player start positions
LANDMARK  yellow diamond  — named points of interest
BEER      amber square    — collectible beer pickup spots
NPC       blue circle     — dialogue character positions
GOAL      green flag      — your venue arrival target

Objects placed on building tiles (collidable terrain) show a dashed red ring. Move them to walkable tiles before publishing — the engine will block players from reaching them otherwise.

MULTI-CHUNK MAPS

Large venues or multi-location groups can use multiple map chunks. Each chunk is rendered independently and stitched at runtime. Contact us to enable multi-chunk for your account — it requires Growth tier or above.

06 · SUPPORT

BREWVENTURE DOCS