Tutorial


The tracker

Wait wha-... You don't know how to use the tracker?!??
Alright... I'll teach you how to use it. It's pretty simple.

EJO Tracker Universal Tutorial Image

[1] - Main Menu.
    This is the main menu, it allows you to view the credits, by pressing the credits' menu item. And allows you to change various options, by pressing the options' menu item (Not implemented yet).

[2] - Server Info
    This allows you to view the server's information, like the IP and Port of the server, and where it is located.

[3] - Player Info
    This allows you to view the player information, like how many players are currently online, how many bots are on the server, and the total number.
    If you have a ping of 0, the tracker will think you're a bot... I'm looking at you (>+<)Paawan...

[4] - Online Players
    The actual players' information, you can see who's on top!
    Tells you the position, name, score, and ping, of each player.

[5] - Game Info
    This allows you to know the current map the server is on, the gametime, the fraglimit, as well as the timelimit, and the mod the server has currently installed.


Tray icon, and pop up menu

EJO Tracker Universal Tutorial Image

This is the tray icon. If your desktop or laptop or whatever you're using allows it, you will see this little icon on the taskbar. This allows the application to send notifications when a player is online.

If your device also allows the popup menu to be displayed, you will be able to right click (or if you're on macOS I guess you use Left Click? Thanks Phoenix for letting me know) the tray icon to show the menu. This menu has a few options, including, the EJO Clan's official website, the EJO Tracker's official website, a link to the patch notes if you'd like to see what's new, and an exit option, if you'd like to close the application.

As you can see, it's pretty simple to use.


There's really not much to say about it... But again, if you have any questions about the tracker (or if you want to talk... I guess) you can message me on Discord.


Tracker's configuration file

{
  "AllowNotifications": true,
  "RefreshTime": 30000,
  "AdvancedNotificationMode": false,
  "AllowMultipleNotifications": true,
  "SendNewNotificationTime": 30,
  "BodyParkedOnServerMode": false,
  "LogPlayers": false
}

This is what the inside of the config.json file looks like. You open the file with notepad, or any text editing program, and then you can edit it.

What do the settings mean?

The AllowNotifications setting allows the tracker to send notifications to the desktop.
Possible values: true, false.
Default value: true.

The RefreshTime is the time, in milliseconds, which the tracker must wait before sending a new request for information to the server.
Therefore it is also the amount of time which the tracker waits before updating the players, and other information.
Possible values: >= 30000.
Default value: 30000.

The AdvancedNotificationMode setting, allows the tracker to send notifications everytime a player joins or leaves the server.
Possible values: true, false.
Default value: false.

The AllowMultipleNotifications is a setting that allows the tracker to send multiple notifications.
If set to false, the tracker will "refresh" the old notification.
(Tested on windows, please provide feedback about this)
Possible values: true, false.
Default value: true.

The SendNewNotificationTime is the time, in minutes, which the tracker must wait before sending a new notification after a player joined.
This will be ignored if AdvancedNotificationMode is set to true.
Possible values: >= 30.
Default value: 30.

The BodyParkedOnServerMode setting, simply allows the tracker to send notifications when there is 1 player or more on the server, if set to false, or 2 players or more, if set to true.
This allows you to join the server without a notification popping up, which means you could AFK on the server, while waiting for other players to join.
Possible values: true, false.
Default value: false.

The LogPlayers is a setting for more advanced users.
This allows you to log players into a file, each time the tracker refreshes.
Beware that the default RefreshTime is 30 seconds, which means the log files might occupy a lot of space on your disk, if the tracker is left open.
Possible values: true, false.
Default value: false.


Log Players (Advanced users)

I do not mean to scare you with the "Advanced users" part, although, if you do not know what a .json file is, you might have a harder time understanding this.

JSON is widely used to store data, and is easy to use, so I decided to go with this aproach.

This is what a .json file looks like, specifically, what a Player Log from the tracker looks like.

The files can be located at the config/Logs/ folder, from the tracker's directory. The name of the files that the tracker creates have a specific format.

PlayerLog_yyyyMMdd.json, where yyyy is the year, MM is the month, and dd is the day. (In case you didn't notice =))

That means the tracker seperates the logs by day.

Now for the juicy part...

The file starts with a "[...]", that is called a JSON Array, and inside that there are a few "{...},{...},{...}", those are called JSON Objects.

So basically the Array stores a bunch of Objects, seperated by a comma, each Object representing a snapshot of the server's player information.

Inside each Object you have a few fields like:

  • "NumRealPlayers", which is the number of real players at that moment.
  • "NumPlayers", which is the total number of players at that moment. (Real Players, and Bots)
  • "Timestamp", which is the timestamp of the moment, in seconds. If you'd like to convert it into a "readable" date, use this. Simply input the timestamp into the "timestamp" field and press convert! It will tell you the time at UTC.
  • "NumBots", which is the number of bots at that moment.
  • And "Players", which represent the players at that moment.

As you can see (I'm assuming you opened the .json file =)) the "Players" field has a JSON Array as its value, with a bunch of JSON Objects inside.

Each Object inside the Array of "Players", represent each player/bot.

It will tell you:

  • The score of the player/bot at that moment.
  • The ping of the player at that moment. (Bots have 0 ping, if you're like (>+<)Paawan, and get 0 ping, and if the tracker catches it, it will think you're a bot)
  • If the player is a bot or not. (Read the parenthesis above...)
  • And the name of the player/bot.

And this just repeats in the outside JSON Array.

I hope I made it clear, if not, let me know, I'm always open to feedback as long as it's constructive.

You can also Google what a json file "is" and/or "looks like", and learn something about it.