# Introduction
TournamentAssistant is a piece of software which has a backend(TournamentAssistantServer), frontend(TournamentAssistantUI), and in-game plugin(TournamentAssistant). It is important to note before proceeding that TA uses a websocket for connections and DOES NOT have a RESTful API. The websocket uses protobuf, so the packets themseves are not readable by humans naturally. That is why the TA client is important. It includes the proto models and deserialises them.

## Prerequisites
You should probably get familiar with:
- Serialisation - optional, but recommended
- Typescript
- Websocket connections

Since the TA Client is a websocket connection on the coordinator end, it is important to understand when and how connections can break and how to check for this. Typescript is the preferred language to follow this guide in, so having  ablank typescript project or any .ts file that you cna transpile and work with is almost required, although raw javascript also works, but you will have less control.

## The Guide
This guide will show every function within the TournamentAssistant Client and I will also be providing some implementation examples from [ShyyTAUI](/). Keep in mind that you will be seeing code that works in Svelte 4, and I will not always remove irrelevant code, as I want to show direct implementation which includes all of the side-processes being done. I will do my best to keep this documentation as up to date as possible, however TA constantly changes and is still somewhat a work in progress tool. If you beleive something is incorrect in this guide, or would like to make corrections, please contact me on [Discord](https://discord.com/users/469171963236057120).