Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MRC SDK

From The Bottomless Abyss BBS Wiki

Intro

April 11th 2026

Today will mark the release of a huge milestone in the life of MRC. For the past few years, I have been working on a connector protocol (initially I called it services) to allow custom creators to create content for MRC, like bots, games, apps, etc.

In the past, creators had to go thru protocol documentation, dissect packet structure and have limited access to MRC feature-set, restricting the richness of the content they could create.

A new connector system will be pushed in beta today to greatly enhance the features available to content creators.

Live test content (deployed at beta)

I have created 2 games with this Content Creator Building Pack in order the test the feature-set.

Texas Hold'em

  • Live multiplayer Texas Hold'Em poker
  • Up to 8 players can seat at the table
  • Others can watch the game
  • Features a bank and everything you need to play
  • Scores reporting into central scoring
  • Requires MRC Trust to play, anyone can watch

Chess

  • Multi-game chess room
  • Allows async games with up to 7 days between moves
  • Ability to play in multiple games
  • Using the python-chess module for simplicity
  • Scores reporting into central scoring
  • Requires MRC Trust to play, anyone can watch

Multiple modes

Mode 1

  • Room interaction bot (like any other user)
  • This allows a bot to connect via the connectors port
  • Interact with users in a defined room
  • Send/recv broadcasts, set topic, send/recv direct messages, etc
  • Same features as a user, but without the issues.
  • Good for bots and simple helpers

Mode 2

  • This is the game changer
  • Full-room context and control, the room becomes an app
  • This mode allows to create individual sessions for each users in a room
  • Maintain chat ability between users if desired
  • Each user have it's own session with the connector engine
  • This is the mode used for the 2 games (Texas Hold'em and Chess) deployed at beta
  • Allows the creation of a game on your own server, hosted in an MRC room.
    • MUD
    • Trading game
    • Trivia
    • etc

Mode 3 (still under development)

  • Outbound connection
  • Each users connecting to the room can have an established session using Telnet, RLogin or SSH
  • Connects to a pre-defined host/port
  • Support login recipes
    • Pre-feed user/passwords
  • Certain restrictions apply
    • Remote service must not have client paging ("More" prompts)
    • No screen positioning
    • ANSI colors are translated to MCI, everything else is stripped
    • UTF-8 is translated to ASCII or stripped
  • This mode can only be configured by the administrator

Authentication

  • Connectors have to be pre-configured
  • Requires TLS 1.2+
  • Authenticated using an individual token
  • Connectors needs to be tested in dev first, dev token and required information will be provided.

Permissions available

  • All of these are set by the admin
  • Permissions are provided per connector, these permissions set:
    • Connector name
    • Connector slug or id if you wish
    • Room to connector can interact with
    • MRC rights
      • Send PM
      • Recv PM
      • Send Broadcast
      • Recv Broadcast
      • Set Topic
      • Kick user (future)
      • Interact with room (default for all connectors)

Other features

  • Visibility into MRC Trust status
    • This allow the developer to decide whether users without MRC Trust can do certain things or not (bank operation, etc)
  • Control local room echo (if MRC send the message or only the connector, so they can handle it)
    • No need to only use direct messages
  • Configurable command prefix (must be different than / or !, by default it will be .)
  • Central scores reporting
    • A central !games helper will be present
    • Games connectors can submit scores to central scoreboard
    • Scores are then available via the !games helper

Developers and SDK

I went the extra mile of creating it as simple as possible using an easy to use python module.

No need to dissect protocol, just call the functions with the right decorators and you're good.

Built-in functions for all the commands, final tweaks pending.

In a few days, I will make this package available for testing,

Next steps

In the next few weeks, any bots will have to migrate to this new controller protocol.

After the migration is complete, any new bot connecting without this connector will get disconnected.