Guns of Icarus Caster Companion - formerly GoIStreamToolRedux - is a cross-platform application designed to assist Guns of Icarus tournament broadcasters with their interfaces and overlays. It includes UI management for teams, maps, timers, and tournament info that all ties into an output folder, providing OBS (or other casting tool) with static file paths to read from. The GoICC project started as an adaptation of the original closed-course Windows application GoiStreamTool by GoI player and caster Urz.
GoICC is a free and open-source software. As such, community contributions to the application source and its supporting material is welcome, and feedback is appreciated to help grow the application. See contributing for more info.
Select up to four currently playing teams, each with their own name, logo, and abbreviation.
Lobby Timer & Custom Timer
Control a fully-featured timer, with quick switching between two timer lengths
Select between any of the Guns of Icarus maps, along with their spawns (see input folder for pre-built maps). Additional map meta-data (size, gamemode) coming in future release.
Set the current tournament number. More tournament features are planned for future.
Solely the native installer - no input folder included
Map & Team Bundle
Pre-built input folder containing high quality map and spawn map images. Recommended for all new users
- Input Folder: input.zip
- Thanks to DKR for help procuring updated maps, and creating spawn location images for each.
The most important thing to know is that Cmd+S will save data on the current page. Upon editing a value, nothing is changed until the save keystroke is pressed. This is to allow casters to queue up content before saving it.
The following sections will detail the contents of the
output folders, and provide documentation for their use.
input folder is the directory that enables the application to do its job.
It contains all of the data on teams, maps, applications settings, and the like.
After initial setup, the only file an average user will modify would be the
teams.txt and corresponding file in
Any files marked with an (*), are recommended to be left alone.
The map images folder contains an image of each map, along with an image of each spawn (optional). Each file is named specifically with the same name as found in the maps.txt, along with the file's extension. Spawn images are names the same but with "
Spawn" appended before the file extension.
Any inconsistencies between the map image name and the name as found in
maps.txt will result in undefined behaviour.
The maps text file contains the exact name of each map. See
map_images for more details.
The team logos folder contains an image for each team, preferably in PNG format, but the application can handle some conversions. Each file is named specifically with the same name as found in the teams.txt (the section before the "|" on each line). Any inconsistencies between a team's logo name and the name as found in teams.txt will result in no image being displayed for that team.
Contains the name an abbreviation of each team. formatted as:
teamName1|ABBREVIATION1Teams are allowed to have no image associated with them, but it is recommended. The image name (minus the extension) must be identical to the team name in
output folder is where the application does its changes, and where the end-user points their streaming tool for source files.
Image of the current map.
Name of the current map.
Logo for team X.
Name of team X.
Abbreviated name of team X. Often overlain on the top right team color ribbons to show which team is which.
Current timer value in
The current tournament name. e.g., "SCS" or "Sunday Community Skirmish."
The current tournament number. e.g., to be appended to the end of "SCS: #", to get "SCS: #336."
The Teams page contains dropdowns for four different teams. Upon choosing a team a preview will be given of their logo and short name. The selected teams will not be saved to disk until the “Save” button is clicked or ⌘ + S or Ctrl + S is pressed. Not all dropdowns have to have a selection, some can be left blank.
The Map page contains a singular dropdown listing all of the maps in the input folder.
Ticking the show spawn checkbox will swap over to the spawn version of the map.
In order for a map to show up in the dropdown it must be in both the Map.txt file, and have a PNG in the
The main controls for the timer at at the top of the page. To customize the length of the timer, edit either of the integer spinners at the bottom. Make sure to save your changes with the “save” button or ⌘ + S or Ctrl + S. Once you have the changes saved, set the switch to the timer length you would like to use. An example usage for this dual-timer system would be having a lobby timer and a game timer that can be set beforehand, and quickly swapped between. Note that only one timer may be running at a time and their states are not saved between runs. If you switch timers you must either ‘stop’ then ‘start’ or just ‘restart’ the timer before the new timer starts. The timer will continue running in the background as long as the application is not closed - so feel free to change tabs and edit other aspects while the timer is counting down.
Simple enough, the two editable fields here change the
The settings page shows some basic information about the setup of the app and the machine it is running on. If you ever want to see the version of the app you are running, you can see that here.
The numerous buttons on the page allow you to open, set, and reset, the input and output folders separately. It is one-hundred percent valid to have completely different paths for your input and output folder. Just remember that changing your I/O folders does not carry the data to the new location – that must be done manually by you. If the new location does not contain the right files, the app will create an empty file in its place.
The theme switcher allows you to easily change between different looks for the app. The “Skyborne Light” theme is the default and most actively updated theme, followed by “Skyborne Dark,” and the original app theme, “Monochrome Ocean.”
Contributing to source
Contributions from anyone with experience in Java (esp. File IO), JavaFX, FXML/XML, CSS, or generating/compiling native executables. Pull Requests are encouraged.