https://www.buymeacoffee.com/bovidi
You don't have to do the above (I do this for fun so I don't expect anything).

Anyways, to the notes

Current Version Note:
Version 0.1.1a
	Bug fix for when someone uses the Tribe.exe built for Linux (loading in Linux was handled slightly differently in that exe)
Version 0.1a
	Initial more solid release...the functions all start with Bov...because why not


Functions:
Bov::createConnection(%port)
	%port - A network port number that an UDP packet will be sent out.  This is the port that will broadcast messages out.
	You can use something like python to listen for a response

Bov::broadcast(%message)
	- %message - the message to be sent out
	- Make sure you have created a connection first!

Bov::setTextFormatFont(%object, %fontid[0-9], %fontname/fontTag);
	%object - The object ID or the name of the TextFormatFont you want to change the font of!
	WARNING - Make sure the %object is an actual TextFormatFont...my function doesn't check...if you send in a player
	object it will assume it's still a font and will cause unexpected behaviours
	%fontid - This is a range of 0 - 9...corresponds with the <f1> tags
	%fontname/fontTag - font file name or the currently loaded fontTag


Example Code:

function testFG()
{
	%size = "800x600";
	%sizewidth = String::getsubstr(%size, 0, String::findsubstr(%size, "x"));
	%sizeheight = String::getsubstr(%size, String::findsubstr(%size, "x")+1, String::len(%size));
	newObject(TVTstartup, FearGui::FearGuiBox, %sizewidth/2-150, %sizeheight-180, 300, 150);
	%obj = newObject(TVTText, FearGuiFormattedText, 0, 2, 190, 400);
	AddToSet(TVTstartup, TVTText);
	AddToSet(MainMenuGui, TVTstartup);
	Control::SetValue(TVTText, "<jc><f0>f0<f1>f1<f2>f2<f3>f3<f4>f4<f5>f5");


	Bov::setTextFormatFont(%obj, 1, IDFNT_MR_18B);
	Bov::setTextFormatFont(%obj, 2, IDFNT_CONSOLE);
	Bov::setTextFormatFont(TVTText, 3, "if_dr_18b.pft");
	Bov::setTextFormatFont(TVTText, 4, IDFNT_CONSOLE);
	Bov::setTextFormatFont(TVTText, 5, IDFNT_CONSOLE);
	Control::SetValue(TVTText, "<jc><f0>f0<f1>f1<f2>f2<f3>f3<f4>f4<f5>f5");
}

function testBroadcast() {
	Bov::createConnection(1123);
	Bov::broadcast("Hello");
	Bov::broadcast("World");
}

Python Example:
#Listens to the 1123 socket waiting for Tribes to say something
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("127.0.0.1", 1123))

arr = [None] * 4096

while(True):
    data,  address = s.recvfrom(4096)
    words = str(data).split()
    if b"Game::EndFrame" not in data:
        print(f"{data}");

