All Projects → Poyo-SSB → tetrio-bot-docs

Poyo-SSB / tetrio-bot-docs

Licence: CC0-1.0 license
Documentation for TETR.IO's network protocol and other details aiding in the creation of standalone bots.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to tetrio-bot-docs

Spring Cloud Study
SpringCloud源码实战微服务框架(202003更新到SpringCloud的Greenwich版本,即基于SpringBoot2.1.7版本,以及新增SpringCloud Alibaba从入门到精通教程),涉及内容:配置中心,注册中心,服务提供者,服务消费者,熔断器,配置服务,API Gateway,API网关限流ratelimit,服务链路追踪zipkin,hystrix监控,监控聚合中心turbine等
Stars: ✭ 215 (+696.3%)
Mutual labels:  ribbon
spring-microservices
Example of a microservice architecture using Spring Cloud
Stars: ✭ 76 (+181.48%)
Mutual labels:  ribbon
Standard-Toolkit
An update to Component factory's krypton toolkit to support .NET Framework 4.6.2 - 4.8.1 to .NET Core/.NET
Stars: ✭ 194 (+618.52%)
Mutual labels:  ribbon
Springcloudlearning
《史上最简单的Spring Cloud教程源码》
Stars: ✭ 16,218 (+59966.67%)
Mutual labels:  ribbon
improved-osk-gnome-ext
Improved On Screen Keyboard for Gnome Shell
Stars: ✭ 22 (-18.52%)
Mutual labels:  osk
WPFTabTip
Simple TabTip / Virtual Keyboard integration for WPF apps on Win 8.1 and Win 10
Stars: ✭ 85 (+214.81%)
Mutual labels:  osk
Office Ribbonx Editor
An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF
Stars: ✭ 205 (+659.26%)
Mutual labels:  ribbon
microservices-v8
Learn Microservices with Spring Boot - v8
Stars: ✭ 32 (+18.52%)
Mutual labels:  ribbon
WindowsRibbon
Microsoft Ribbon for .NET (Wrapper for C# and VB)
Stars: ✭ 52 (+92.59%)
Mutual labels:  ribbon
spring-cloud-marathon
Spring Cloud integration with Mesos and Marathon
Stars: ✭ 29 (+7.41%)
Mutual labels:  ribbon
Advanced Java
😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识
Stars: ✭ 59,142 (+218944.44%)
Mutual labels:  ribbon
Excel-Timesheet
⏰ This Add-In is used to produce a timesheet file with functionality to import your Google Timeline. The standard timesheet has options for start and end dates, day of week and default start, end and break times. The Google timeline options are start and end dates, UTC selection, daylight savings time parameters and title filter for timeline ent…
Stars: ✭ 25 (-7.41%)
Mutual labels:  ribbon
tictactoe-microservices-example
An example of Spring Cloud Microservices application based on books (see Links section)
Stars: ✭ 23 (-14.81%)
Mutual labels:  ribbon
Saribbon
Ribbon Control on Qt
Stars: ✭ 233 (+762.96%)
Mutual labels:  ribbon
qt-ribbon
A ribbon bar implementation for Qt widgets applications
Stars: ✭ 43 (+59.26%)
Mutual labels:  ribbon
Springcloudexamples
Spring Cloud 学习教程
Stars: ✭ 208 (+670.37%)
Mutual labels:  ribbon
microservices-developer-roadmap
Roadmap for becoming a Microservice Developer in 2017
Stars: ✭ 24 (-11.11%)
Mutual labels:  ribbon
Script-Help
📝 This VSTO Add-In is used for cleaning & creating a script for batch loading records into SQL Server, Oracle, Documentum, Markup or Markdown Languages. The functionality within the ribbon allows a quick way of preparing a bulk data load. Otherwise, the requests can be both time-consuming and error prone. It is written in 3 different versions a…
Stars: ✭ 65 (+140.74%)
Mutual labels:  ribbon
vuepress-plugin-ribbon
🎗️ Add a beautiful ribbon to your vuepress!
Stars: ✭ 14 (-48.15%)
Mutual labels:  ribbon
Excel-Favorites
⭐ This VSTO Add-In creates a custom "Favorites" ribbon. Key distinctive attributes include dedicated buttons for changing the visibility/sort order of sheets, copying visible cells, Excel's camera feature, Snipping Tool, Problem Steps Recorder (PSR) and Windows Calculator. It is written in 3 different versions as a VSTO Add-In in C# and VB.NET a…
Stars: ✭ 37 (+37.04%)
Mutual labels:  ribbon

This version of the documentation is currently up-to-date for version 6.2.0 of TETR.IO (commit id e326977, March 16, 2022, 10:54 PM UTC).

TETR.IO bot documentation

This documentation is not finished. If you wish to contribute, pull requests are welcome.

This repository is dedicated to documenting the network protocol used by TETR.IO, as well as any other information that may be useful when developing a bot for TETR.IO. This is not the only way to develop a bot for TETR.IO—one may also directly interface with or modify the official TETR.IO client, in which case the information in this documentation is largely irrelevant. This documentation is primarily for standalone bots which run without using the official TETR.IO client, but extra non-bot information may be available for elements that could be useful to interface with programmatically and are not in violation of TETR.IO's rules.

Bot application process

Running a bot on a user account is a violation of TETR.IO's community rules and will result in your account being terminated. To run a bot, you must acquire a bot account (e.g.). To get one, message osk on Discord with a short outline of your bot's intended functionality (or email them, but they do not check emails as frequently). osk's contact info can be found here.

What can bots do?

Bots can:

  • Join public custom games.
  • Join private custom games, given the room id.
  • Create their own custom games.
  • Use the social system.

Bots cannot:

  • Play singleplayer modes.
  • Join Quick Play.
  • Play in Tetra League.

Getting started

When venturing to create a bot, I highly recommend using a language which is either dynamic/duck typed (e.g. JavaScript/TypeScript or Python) or one which supports dynamic/duck typing in some form (e.g. C# via dynamic). Do not use a single monolith class to represent every message type. This will cause only pain and suffering. Trust me on this one.

The first and most important thing to do when creating a bot is to make it nontrivial to use unauthorized. This is good practice in general, but especially if your code is open-source it is critical to make sure that it's not easy for anyone without knowledge of code to enter their own user token into the bot and run it on their account. The best way to do this is to make an API call to the users/me API endpoint and refuse to run if the user's role is anything other than "bot".

Once you're done with that, the core of a TETR.IO bot is interfacing with the Ribbon system.

Pages

Disclaimer

Hi! I'm Poyo. I wrote (most of) this documentation. I am not affiliated with TETR.IO or osk. All data here has been gathered via analyzing code and testing responsibly. Use this documentation at your own risk. Please enjoy!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].