Wishray Wiki

A central hub for intelligent game design and play.

User Tools

Site Tools


fabio:fabio

This is an old revision of the document!


Introduction

FabIO is a C++ Discord bot using Sleepy Discord (docs at: https://yourwaifu.dev/sleepy-discord/documentation.html). Internally it hosts a LUA state for game programming, and renders flat html files to visuals. It is meant as a step towards the Zero Project, and allows a wide variety of rpg and board-like games to be played via Discord chat.

Given you have access to this forum, you can program the bot using the guide below. Essentially it is as simple as making a wiki page for your game, and then telling the bot to load the code from that wiki page.

Programming Details

I am not going to list all the programming details here for the bot, but the general overview. If you are working on these scripts I'm sure you'll be in Discord to ask any specific questions you might have. Also, I'm recording a bit here to make sure I remember how things work!

Basic Concepts

The FabIO bot runs LUA scripts at its core. It is just a frame for them, and allows those scripts to be called from Discord and then output an html view that is fed to a local server. In this way the scripts are the 'magic' between Discord and that webpage. To organize this all in a useful way, the bot supports: games and instances.

  • Games: These are groups of scripts that are all loaded to support the functions of a game. They also contain embedded themes for the web view, but those can be overridden by an instance itself. So a game is just a bunch of scripts.

Game Code Pages

  • std-lite - A generic all purpose game with support for a lot of very basic stuff. Counters, Dice, Sheets, etc. Maintained by JasonP.
fabio/fabio.1585323629.txt.gz · Last modified: 2020/03/27 08:40 by jasonp