Repository navigation
Home
ScryMirror lets you send prompts and information to an audience in a flexible way, which you can adapt and use as part of game design or event facilitation.
Scrying is an ancient practice of divination and fortune telling: crystal balls are the famous option, but black mirrors were a popular choice. With the modern "black mirror" (ahaha jokes), your audience will likely see something pop up on their phone screen before the Twitch stream.
Players play here. Currently online at https://glooplab.live/ , you'll direct your audience here to interact with the stream. Commands you send to the API affect this webpage; causing questions and info boxes and junk like that to appear.
A JSON endpoint on the ScryMirror server. The Players and The Game Runner interact with this. When players answer a question, it's sent to the API. When the Game Runner (more info on the next line but hint hint, that's you), collect answers or start questions or do anything, you do it through the API. It's located at https://glooplab.live/api/scryGameData (for player clients) and https://glooplab.live/api/scryGameData/gameControllerCommand/ (for Game Runners, aka you), but you'll need to send some JSON to make it do anything interesting.
This is something, anything, that can talk to the API and run the show. This is the thing that YOU build! Go get 'em, Tiger! The ScryMirror website and API are "dumb." They don't know the "rules" to your big game idea, and they never really will. That's good: it keeps the platform flexible. This means the "Game Runner" is what's in control of the whole situation, the server and game clients follow along.
The Game Runner can be anything that can talk to a JSON API: Godot, Unity, node.js, fancy Excel script, yelling ones and zeroes up a phone line.
Running a game requires an admin key. Whenever The Game Runner gives the server a command, the admin name and key must be included. Ask Gloop!
Godot Plugin. You'll need a file at the project root called adminDeets.json containing your name and number formatted like below. The Plugin will use this to talk to the server.
{
"creatorName": "yourNameHere",
"key": 123456789,
} The API: Every command you send to the server will need to include your name and key. Here's an example JSON blurp that would make ScryMirror stop your game.
{
"creatorName": "yourNameHere",
"key": 123456,
"command": "stopGame"
}To make things easier, there's a Godot plugin. This plugin is not required. The Godot plugin talks to the API for you, and provides some function to make a starry-eyed dev's life a little easier. Examples on this page will show you both the direct API method and the Godot plugin method. The plugin is a singleton and you can call it from anywhere, in other words ScryMirror.whatever_function_here() can be wherever makes sense for your project.