Skip to content

Full documentation

Pardons Julien edited this page Sep 24, 2013 · 25 revisions

Information

This document is for developpers / integrator for the eBot tools.

eBot Scheme

To understand how eBot works, you need to understand the scheme. eBot has 2 distingued parts:

  • The PHP daemon + NodeJS server
  • The web pannel

eBot can works without the web pannel, this is just to control eBot and see the results / stats. You can develop one on your own !

CS:GO & log stream

To understand how the eBot works, you need to know how the bot grab the datas. CS:GO have a log stream in UDP that we read. With a simple rcon commands, the bot add his own server address/port that it listen and the server begin to send the data.

Major common issue is a firewall who is blocking the UDP stream between the server and eBot, if you don't have any output on the eBot daemon, it's that kind of issue.

eBot runtime

The eBot daemon works like this:

  • Each 3 seconds, it check in the database for new matchs
  • Each loop time, it read from the UDP Socket
  • Each loop time, the TaskManager is executed to process all tasks

eBot has a control interface trought the UDP server. Here is the list of the commands available:

  • stop
  • stopNoRs
  • executeCommand
  • passknife
  • forceknife
  • forceknifeend
  • forcestart
  • stopback
  • pauseunpause
  • fixsides
  • streamerready
  • goBackRounds
  • skipmap

We will see later how to communicate and send this kind of command

NodeJS server: The NodeJS server is just a forwarder, it forward some messages to all connected users. It's the bot who send the datas. The server can send too some commands to the eBot server, it's not required, you can make it on your own. The NodeJS server is required for the auto demos upload, when a match end, the demos it pushed to the server, who archive and rename the file into the right dir.

Database scheme

Matchs structure

Teams & Seasons

Adverts

Query sample

Clone this wiki locally