Contents:
Quick Start
Main Window
Leagues: Edit
Fixtures: Teams Finals Pyramid Pyramid Round
Games
Reports Report Types: Ladders Game reports Pyramid reports etc.
Web Server

Torn 5

Torn 5 is a laser tag tournament scores manager, and can read data from Nexus, Helios and Laserforce systems. It requires .NET Framework 4.7.

Changes from Torn 4

If you're familiar with Torn 4, here's the very quick guide:

Quick Start

Run the program. Click Preferences. If you have a lasergame system, select the appropriate system and enter the laser game database server address.

Click OK. Click Latest. This will cause Torn to query the lasergame server. A list of games should appear.

On the Leagues toolbar, click New or Open. Torn 5 can open Torn 4 .Torn files. When it saves those files it will write extra information. The latest version of Torn 4 will ignore all that extra information, so you should be able to open the file in one, make changes, then open it in the other, and then back again. But after Torn 4 has opened the file, made changes and saved it again, the extra Torn 5 data will be missing.

For your new (or newly opened) .Torn file, click in the Tag cell at the left of the .Torn file's row in the Leagues list. Enter a tag. This will be used as a sub-folder for this league's reports exports, so use a tag name that is a legal folder name (i.e. does not contain special characters like /\:*?"<>|).

If you like, you can open more league files. You can have several league files open at once.

Click a game to see its packs/players. Now you can do all the usual Torn things — right-click on a team box and Remember that team, Commit the game, Edit the league, etc.

You can select multiple games. Some features work on all selected games — e.g. Forget will remove all the selected games from whatever league they had been committed to. Set Description lets you title committed games or groups of games: "Round 1", "Repechage 3", "Cascade 2", "Finals", etc. These titles will be shown in reports. Games present in the game server are shown in white. Games only present in Torn files are shown slightly greyed.

When you click Report, Torn 5 will export a default set of reports to a folder. Note that these will include details of each team, game and player. If you would like to configure different reports for the selected league, click Configure and then add reports as desired. You can select the output format of your reports: HTML SVG is prettiest, but cannot be imported into Excel etc.

If you select multiple leagues (select one, then hold down the Ctrl key as you select more) and click Report, all the selected leagues will have reports exported.

If you have enabled the web server under Preferences, any web browser that can see the machine Torn is running on can view reports directly from Torn 5's latest data, without you needing to click Report. If you're running Torn on a computer called mymachine and you've left it on the default port of 8080, point a web browser at http://mymachine:8080 to see these interactive reports.

For P&C systems, for games that are still in the lasergame server, more data is shown: each game has a "heat map" showing who shot who and a "worm" showing teams' scores. But this (extensive) data is not stored in the .Torn file, so once the lasergame server purges that data and Torn is restarted, a fresh report will not contain this additional detail.

The Main Window

Torn's window is divided into several areas. At the top is the "ribbon" bar.

At the left is the Leagues list, showing the currently open leagues, with details on the currently focused league shown below it. (There's a splitter between the list and the details.)

To the right of the Leagues list is the Games list showing all the games Torn knows about (because they exist in an open .Torn file, or in the lasergame server database, or both). Clicking a game will show its details to the right.

To the right of the games list is the unallocated players box: players who are in the game focused in the games list but not yet allocated to a team will show here.

To the right of this are the team boxes. These hold players from a single team. If you need more team boxes, Click Add Row or Add Column in the Teams toolbar. Right-click on a team box for a variety of functions, including changing the identity of the team or of a player, or applying a handicap.

Leagues

To Torn, a league is a collection of games, teams, players and scores. Each league is saved as a .Torn file.

New: create a new league and its coresponding .Torn file. Once you've done this you'll likely want to click in the Tag cell in the Leagues list and give this league a Tag. This will be used as a sub-folder for this league's reports exports, so use a tag name that is a legal folder name (i.e. does not contain special characters like /\:*?"<>|).

Open: Open one or more existing .Torn files. (This dialog supports multi-select.)

Save: Commit the .Torn file to disk. Most of the time you don't need this button: if you Commit a game, Edit the league, etc., your changes will be automatically saved.

Close: Remove the selected leagues from the Leagues list. (Of course, you can re-Open them later.)

Edit: Here you can set a title for the league file, edit team names and player line-ups, and so on.

Some buttons on this dialog are self-explanatory. The Paste Teams button will paste text or spreadsheet cells from the clipboard, making a new team for each line of text or row of cells. The only thing it creates is the team name.

There are seven tabs on this dialog. League lets you configure details that apply to the whole league, including victory points. Victory points need not be whole numbers. "Proportional" shares out the given number of victory points proportional to teams' scores in the game, allowing you to reward a bigger victory margin with more victory points. You can also set details for scoring in elimination games. "Sweep VPs" is a bonus for the sole surviving team in a game.

Scores shows you a list of scores for the team or player you have selected at the left.

The next three tabs, Handicap, Grades and Points to % work together to configure Western Australian-style grading: each player is assigned a grade; each grade is worth a certain number of grade points; a team's players' grade points are summed to give a grade point total, and that total is converted to a percentage handicap for the team. There is an extra grade point adjustment that can be applied to a team that has multiple players of grades marked as "penalty" — the penalty is applied once for each player beyond the first. Similarly, teams with more than one player with a grade marked as "Bonus" will receive that bonus for every player beyond the first. Thre can also be a penalty applied for teams that are missing player(s).

The Terminations tab lets you set values that will be used when you right-click on a player in a game and select Manage Terms.

Preferences: brings up the Preferences dialog. These preferences are global to all of Torn, and are not specific to a league.

Fixtures

The Fixtures dialog is "non-modal" — you can flip back to Torn's main window without closing this one. It has four tabs: Teams, Finals, Pyramid, and Pyramid Round.

Teams

On the Teams tab, you'll see a list of teams that the fixture system already knows about. If your league has teams, they will appear here. If not, you can go to the Edit dialog and use Add or Paste Teams. Here, you can generate fixtures. Once generated, Torn 5 will serve a list of these games from its internal web server, and can export the fixtures as HTML for upload to the web. It will also endeavour to keep track of where you are up to in your fixtures — the Now page from its internal web server will endeavour to identify the game just played (from lasergame server data) and the next game (from fixtures) automatically.

To generate fixtures, set desired values, click Generate, wait a while, then click Stop. If you want to leave some teams out of the fixture, untick the checkbox next to their name before you generate.

There are several sub-tabs available: Settings, Tuning and Sessions. Settings lets you select a number of teams to generate a fixture for that is different from the teams you have ticked. You can also select how many games each team plays, what colours will be used, whether you want referee spots assigned, and if you would like Torn to attempt to optimise by iteratively shuffling the fixture. The Tuning tab lets you adjust how much weight various different factors will be given as it shuffles. Sessions lets you specify when groups of games start and end. You'll likely want to set the start time of your first game here.

You can click one of the Presets to set values in the above tabs appropriately for various scenarios such as league night, cascade, etc. The Add Referees preset lets you create a fixture in two steps: first, set up who plays when, then click Add Referees and Generate again. When you click Generate, Torn will create an initial fixture. Then, if you selected one or more Shuffle options on the Settings tab, it will attempt to improve that initial fixture by shuffling things around. It uses the values you set in the Tuning tab to decide what constitutes an improvement. When you are happy enough with the generated fixture, click Stop. If you like, you can stop, change values, and Generate some more. It will pick up where it left off. If you'd like to start from fresh, click Clear. Details are visible at the bottom, showing progress. Drag the splitter up to see more, or double-click on the details text. This will show you a dialog with the full text, and copy that text to the clipboard, so you can paste it into an editor with a fixed-width font.

To change how the fixture is displayed, tick or untick the Game Grid and Game List boxes.

Lord of the Ring

To generate Lord of the Ring-style fixtures, in which several small games are run in parallel, click Rings and specify the desired number and/or colour of rings. At the moment, only 2 to 6 rings are supported, and only 6 games per team is supported. Setting Referee to a number greater than 0 will attempt to assign as many referees to each game as there are players in that game. Note that your starting league file should have team names in randomised order — if not, teams near each other on the list will play each other more. Team names ending with an '*' will not be assigned refereeing spots. If you select no Shuffle options, players will mostly referee immediately before playing, so most players will referee 6 games, and you can tell players to referee the colour ring they're about to play. If you select one or more Shuffle options, Torn may be able to optimise to e.g. reduce day length for players, but the "referee before you play" pattern will be lost.

Finals

The Finals page lets you set up finals schemes, such as Ascension, Format D, etc. Click the buttons for the various named finals schemes, or individually adjust parameters such as how many teams should be cut from each elimination game, how many tracks there should be, etc.

The team list shown at the left of the finals grid is from your team ladder. Untick teams to remove them from your finals fixture.

Pyramid

The Pyramid tab lets you create an overall fixture for a tournament that successively eliminates teams in each round (such as solos, doubles and triples). In the Australasian ZLTAC tournament, we use three rounds, with each round being followed by a second chance repêchage round — so: round 1, repêchage 1, round 2, repêchage 2, round 3, repêchage 3, finals.

Fill in the number of Starting teams in the tournament. The number of rounds (and repêchages) in the tournament is currently at most three. At ZLTAC, we give each team two games in their first round — this is to guarantee that everybody gets at least three games. Set Games per team in Round 1 to the appropriate value for your tournament.

Now iteratively adjust the values in the enabled numeric boxes: number of games in each round, number of teams to advance from each round to the next, number of games in each repêchage, number of teams to advance from each repêchage to the next round. Other numbers are updated automatically based on your choices. If you would prefer for a round to not be followed by a repêchage, untick the Repêchage box for that round.

The number of teams in finals is determined by the values you set in the last round and repêchage before finals.

As you vary these values, you'll see various boxes show with an orange or red background. Hover the mouse over a coloured box to see why it is showing orange or red, and you'll see a description of the problem. It's often not possible to solve all the problems simultaneously — it will be necessary to accept some trade-offs.

You'll also see a text description at the right-hand side update, and the visual display of the fixture update. You can copy the descriptive text and paste it to where you're publishing it to players, and you can save or print the visual display.

Pyramid Round

The Pyramid round tool lets you rapidly create a draw for the next round (or repêchage) in a pyramid-style tournament.

To construct a repêchage round, select games in the list at the right and click on Edit Game(s). This pops a dialog where you can define details for the game, including how many teams from this particular game go to the repêchage. If your rule is “top 2 teams from each game advance” then you would fill this value in. For a game with 7 teams you would mark 5 teams to go to the repêchage; for a game with 8 teams you would mark 6 teams to go the repêchage; etc. Note that as you select games (and optionally specify number of teams from each), the value at the left for Number of teams from last round will change appropriately.

You can select multiple games by holding down Ctrl and/or Shift as you select. Then when you Edit Game(s), you will be editing all the games you have selected at once.

Set choices at the left, for the number of games, teams, etc., overriding the automatic values if necessary. For example, if your scheme is "top 10 teams overall advance" and you have 50 teams in the round, you would set Number of teams from last round to 40. Under Top or bottom, you want bottom for a repêchage – the way to get into the repêchage is to be low-scoring or low-ranking. Under Score or Rank, select appropriately for your nominated scheme. If you would like Torn to assign colours to teams, tick the Colour tick box.

As you make changes, a sample draw is updated in the bottom half of the window. Keep changing settings until it looks correct. We zig-zag down, so the top-ranked team in the draw (in the case of the repêchage, this is the "best of the worst" team) is at the top left, then we work across the games until we run out of games, then down to the second row, and right-to-left back across the second row.

When editing games, the priority you select will determine what order the teams appear in the next round: teams set as priority Round will appear first, then teams set as Repêchage, then Plan B. Plan B is special: teams that have already appeared in a game subsequent to the one they are being picked from will not be selected. So when setting up Repêchage 3, you might mark your Repêchage 2 games as priority Plan B. Teams that have already gone from those Repêchage 2 games to Round 3 will not be taken — instead, the teams immediately below them will be taken.

Your selections in this window are remembered as long as you keep this window open. So as you approach the end of the round, you can set up the repêchage with the last game of the round not yet decided, as a "practice" run. Before you display the draw to players, ensure that the results seem sensible: the bottom team is low on the draw, the team that just barely missed the cut is at the top left of the draw, teams appears only once each, etc.

For a round draw, you typically want to take the top teams from each game in the previous round, and the top teams from each repêchage game.

If you would like for a player or team to not appear in the next round, click Withdraw... and untick the team in question.

Games

Latest: clicking this button re-queries the lasergame server, and selects the most recent game in the list.

Commit: this button commits the details of this game, as shown in the team boxes at the right, to Torn's list of remembered games.

Set Description: lets you title committed games: "Round 1", "Repechage 3", "Cascade 2", "Finals", etc. These titles will be shown in reports.

Forget: removes the selected games from the league.

Teams

Add Row: Adds a row of team boxes.

Remove Row: Removes a row of team boxes.

Add Column: Adds a column of team boxes.

Remove Column: Removes a column of team boxes.

Remember Teams: for any teams in this game that aren't already on the list of teams in this league, Torn will add those teams to the league. You can then edit them under Leagues ▸ Edit.

Reports

Report: generates and saves a set of HTML reports for the selected leagues. If you have not used the Configure button to configure reports for a league, a default set will be used, which may include a team ladder, a games list, a games pyramid or games grid, and a solo ladder. Exactly what reports are in the default set depends on the type of league: if Torn recognises that you're using a pyramid-style fixture, it will include a games pyramid. If not, it won't. If it detects that you're titling groups of games, it will include a report for your semifinals and a report for your grand finals; if not, it won't. In addition to these "overview" reports, detailed reports will be generated for each game, team and player.

The first time you generate reports Torn will ask what folder to export to. You can change this in PreferencesReports.

Upload: All files in the reports folder will be uploaded to the web site you specified in Preferences.

Print: Print whatever reports you have configured. Windows has print-to-PDF available as a default printer device, so if you'd like to save reports as a PDF, that's how to do it.

Configure: If this dialog is empty, reports for this league will be the default set described above. If you add reports here, those will be used instead. These are configured per-league. This dialog does not have an OK button — changes you make here are immediate. You can select the output format of your reports: HTML SVG is prettiest, but cannot be imported into Excel etc.

Ad Hoc: Choose a report type and set its various settings, and you'll see the report shown in a floating window. From the floating window you can save or print that report. That floating window doesn't block Torn -- it's "non-modal". That means you can do other things in Torn while the floating window is still open, including generating more ad hoc reports to their own floating windows.

Export Json gets data about games from the lasergame server and saves it as JSON files. games.json contains a list of games; players.json contains a list of players; and there's a JSON file for each game, with details. This is the same data available from Torn's internal web server, except that detailed game files have _ in their name instead of : because Windows doesn't like filenames with : in them. This button is currently disabled.

Misc

Help: this document.

About: a brief About dialog.

Report Types

Reporting is my favourite part of the software, so it gets all the attention. There are a variety of report types available, detailed below.

For a report you can manually set a title. If you don't set one, Torn will make up a title based on the league name and the report type.

Filters

In the Filters section you can limit reports to games within a certain date/time range. You can also limit reports to games that you've given a particular description back on the main screen: if you've told Torn that a group of games are "Round Robin", and you set the report to only show games with description "Round Robin", that's what you'll get. There's no way to tell it to only show games with no description, so... give your games descriptions.

Drops

You can tell Torn to drop some scores: for example, drop each team's worst game. You can specify by number of games or by percentage. If each team has played four games and you want to drop their worst, but one team missed out a game and thus you want to count just the three they played, tell Torn to drop the worst 25% of games for each team. For teams that played all four games, that'll drop one game; for the team that played three, it'll drop zero games.

Chart Types

You can choose various chart types for various reports, though not every type makes sense for every report. Bar chart will show little embedded bar charts in the background of each cell. These are good where each cell holds a single value -- for example, in a game grid. Where cells hold many values (for example in a team ladder, where "Average Score" is, well, an average of many scores) the bar will show the aggregate (e.g. the average). Rug shows a series of "tick marks" along the bottom of the cell showing each value. So in a team ladder, that would be every individual score. Wikipedia has more. In Torn, if several tick marks coincide or nearly coincide, they stack vertically, into a sort of drunk histogram. Speaking of which, there's also an actual histogram option, which does what you'd expect. Much more technical is the kernel density estimate, only useful for large amounts of data (e.g. the Pack Report).

Clickability

If you export reports as HTML SVG or HTML tables, your reports will contain hyperlinks, which users can click to go to the appropriate place. Anywhere you see a team name, click it to see that team's stats page. Anywhere you see a player's name, click it to see that player's stats. Anywhere you see a game title or game time, click it to see details of that game.

Team Ladder

Team ladder to end of Round Robin from 28/02/2019 to 3/03/2019 Rank Team Points Average score Games 1 Spartans 70 43,459 12 2 Wolfpack 68 44,202 12 3 Brisbane Beavers 66 43,502 12

Illustration shown at left.

Rank teams by average score, score ratio, or victory points (with average score or score ratio as a tie-breaker).

You can tick a box to scale up teams with less games. This is useful when you are halfway through a round and you want to show a comparison of how well each team is going so far.

If you tick show colours you'll get columns in the report showing how many times each team places first, second, third, etc. on each colour. Whatever colours are used in your league are shown in the report.

You can limit the report to show only the top n teams, or to show only teams with at least n games.

If you tick longitudinal chart you'll get an extra column at the right of the report that shows how well each team did in each game.

Multi Team Ladder

2019 ZLTAC Team Ladders Round Robin Cascade 1 Cascade 2 Rank Team Points Average score Games Team Points Average score Games Team 1 Spartans 70 43,459 12 Wolfpack 100 42,248 6 Brisbane Beavers 2 Wolfpack 68 44,202 12 Spartans 100 39,705 6 Spartans 3 Brisbane Beavers 66 43,502 12 Brisbane Beavers 98 39,917 6 Wolfpack 4 GP 66 40,531 12 WA Grizzlies 90 37,419 6 GP 5 Queensland Ducks 64 39,320 12 GP 88 37,808 6 NZ Cobras

If you have set descriptions for groups of games, this report will show you several incremental ladders, showing the state of play at the end of each group of games. It also has arrows showing how teams rose and fell between groups. If a group description mentions "final" it will be ranked as if it were a grand final (i.e. scores from previous games don't count). If a group description mentions "semifinal", "semi final", "ascension", "format " or "track" it will be ranked as if it were an ascension (i.e. teams that survive longer are ranked higher).

Teams vs teams

2019 ZLTAC Teams vs Teams Team Spartans Brisbane Beavers GP Wolfpack Dragons Spartans 5/9 4/4 6/10 Brisbane Beavers 4/9 2/4 6/10 GP 0/4 2/4 1/6 Wolfpack 4/10 4/10 5/6

This report (illustrated) shows a square array of teams versus teams. Each cell within the array shows how many times those teams have won against each other. If a cell represents one game (because those teams have played each other exactly once), it will be hyperlinked, and clicking the link will take you to that game. If you choose the show average victory points option, then in addition to the number of wins you'll also see the average number of victory points the team scored in games against the other team.

Solo Ladder

The solo ladder has most of the same options as the team ladder. No show colours option though.

Game Reports

2019 ZLTAC Team Games from 28/02/2019 to 8/03/2019 Game Team Score Pts Team 28/02/2019 Round Robin 9:56 AM Spartans 53,400 6 WASP Round Robin 10:12 AM Sydney Basilisk 40,386 6 1up Round Robin 10:27 AM Dragons 49,139 6 Adelaide Aftershock Round Robin 10:43 AM Spartans 45,926 6 Box Hill Sentinels

Grand Finals for 8/03/2019 Grand Finals Rank Team 4:51 PM 5:12 PM 5:30 PM Average 1 Wolfpack 23,684 21,312 27,984 24,327 2 Brisbane Beavers 25,173 27,623 19,101 23,966 3 Spartans 22,772 27,774 21,003 23,850

A Game by game report (illustrated) shows games as a list, with each game being a single row in the list. It's useful when there's only a few teams in a game (e.g. a team game), and when there are lots of games in the league. It's not so good when there's lots of teams in a game (e.g. solos or doubles).

A Game grid (illustrated) shows results in a grid, with a row for each team and a column for each game. It's good when there's lots of teams in each game, but not all that many games (say 20 or less). It also has a column at the end for average score. If you configure the report to drop best/worst games, then the average will be on only the games not dropped. So this is handy for e.g. a finals series where you get to drop your worst score or whatever.

The Game grid condensed report (see Pyramid condensed illustration below right) is like the game grid, with each row being a team's results, but columns are condensed, so that each team's games are just shown in consecutive columns. If you have set descriptions for groups of games, then there will be groups of columns for each named group of games. The condensed grid is good when there are too many games for an ordinary game grid, but each team plays just a few games.

Pyramids

2019 ZLTAC Solos Games for 1/03/2019 Round 1 Rank Team Time Score Rank Time Score Rank 1 ninja 12:08 PM 6,750 1 1:13 PM 4,070 7 2 Bootza 12:42 PM 7,120 1 2:24 PM 5,730 3 3 lakeo 1:13 PM 5,020 2 2:49 PM 6,520 1 4 Blitz 1:02 PM 5,430 4 3:00 PM 2,840 18

The pyramid report is useful when you're running a competition that gradually eliminates teams that fail to make the cut each round. (We do this for ZLTAC solos, doubles and triples.) It's laid out in a similar way to the game grid: there is a row for each team and a column for each game. It ranks teams by the last round they survived into, and within rounds by average score. You'll need to set descriptions for the games, so the report can figure out which games are in each round.

The Pyramid condensed report (illustrated) still has a row for each team, but similar to the game grid condensed, it doesn't try to put each game in a column; instead just listing all a team's games across that team's row.

Ascension

An ascension report is like a game grid, with one team per row and one game per column, but teams are ranked by the last game they survived in. This is useful for semifinals series.

Colours

2019 ZLTAC Team Colour Performance Rank Green Red Blue 1st 113 110 90 2nd 104 108 101 3rd 96 95 122

In an arena where a particular colour may have an advantage or disadvantage because of arena layout, this report (illustrated) shows how many times each colour got each placing. This report can be good to give to teams before they have to make colour choices for e.g. semifinals or finals games.

Sanity Check Report

This report helps you pick up common errors: games with atypical numbers of players, players who have not been identified, games with no victory points where subsequent games do have victory points, etc.

Pack Report

[redacted] Pack Report Rank Pack Tag Ratio t p Count 1 [redacted] 174% 3.81 0.00014 58 2 [redacted] 119% 2.81 0.0049 131 3 [redacted] 115% 1.53 0.13 109

The pack report (illustrated) endeavours to tell you how "good" or "bad" packs are. It does this via Student's t-test.

Select one or more leagues (hold down the Ctrl key to select additional leagues), then click Ad Hoc and select Pack Report.

If Torn 5 has hit data, it will fill in columns for tag ratios. Here's how those are calculated: first we generate a solo ladder showing how "good" each player is. Then, for each pack in each game, we scale the number of tags that pack scored against other players by the "goodness" of the player waering it: if the pack scored 50 hits in a game but was being worn by a player who was 125% as good as the average player, we scale that to 50 / 1.25 = 40 hits. Then we take the ratio of that to the number of tags the pack received during the game.

If Torn 5 does not have hit data (because this is Laserforce data, or because this is a Torn 4 file), it will show you the score ratio instead. This is calculated in exactly the same way as tag ratio. Score ratio isn't as good as tag ratio, because we're interested here in how good the pack is at tagging other packs versus how good it is at getting tagged, but if you don't have tag data it's a reasonable proxy.

You'll see t values and p values. The t value is how many standard deviations this pack is from the mean. Look at the p value — when this is very small, there's a high chance that this pack is "good" or "bad". Any p value greater than 0.01 can be ignored — it's likely due to chance, or to that pack being a favourite of particular players, etc. (You often see a level of p < 0.05 being used, but this is only appropriate when we're testing a single variable. Here we're testing one variable for each pack. The description at the bottom of the report offers a conservative p value threshold for the number of packs shown.)

Small p values will be highlighted in pink. Very small p values will be highlighted in red. These red packs are of concern — a "good" pack might have some faulty sensors; a "bad" pack might have weak IR, etc.

If pack hardware has been re-arranged (e.g. you've swapped guns between packs) or renumbered midway through data collection (e.g. you re-ID'ed packs to prevent players from picking favourites), these things will of course limit data quality.

If you tick the longitudinal checkbox, you'll get an extra column showing when each pack played and how well it did. Higher is better.

Tech Report

This report shows the number of times each pack got hit in each location in the average game. Like the pack report, if you generate this from Ad Hoc, you can select more than one league as input. But if you do this, be sure to only select leagues that are comparable to each other -- players are going to get hit a lot less in an elimination game format, for example.

If you see a pack getting hit a lot less than other packs in its left shoulder, for example, that pack might have a problem.

Everything Report

List every player in every game. Useful for data export. Export to TSV (tab-separated values) for easiest import into other tools.

Web Server

Torn 5 has an internal web server. You can enable/disable it from Preferences. You can also set its port number. The default, 8080, is a common port number for web servers that don't want to get in the way of anything else on the same machine that might be using port 80. If you're confident that nothing else is using port 80, you can set it to that if you like.

If you're running Torn on a computer called mymachine and you've left it on the default port of 8080, point a web browser at http://mymachine:8080. From the computer running Torn 5, you can use http://localhost:8080. Click links from there.

There's a scoreboard showing the most recent committed game at http://localhost:8080/[tag]/scoreboard.html, where [tag] is the tag you set for this league file.

In addition to HTML, Torn 5's internal web server will serve JSON.

The object of all this is to eventually allow a remote copy of Torn 5 to pull the statistics it needs from a lasergame server via a local copy of Torn 5 — the local copy pulls results from the lasergame server and in turn passes them as JSON to the remote copy of Torn 5. This avoids any need to directly expose the lasergame server to the internet. But this feature isn't well tested. It's also eventually intended to be able to push these files from the local Torn 5 to a web location, so that a remote Torn 5 can query those static files from an ordinary web server. This isn't implemented.

Download

Torn 5 can be downloaded from my Apps page. The source code is available from my GitHub page.