All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Plan | Player Analytics

Plan | Player Analytics

by AuroraLS3 • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Logo

Already running on over 5000 servers! :)
> ⚠️ If you downloaded version from this page between *15th of February and 11th of March 2025* the page was controlled by impersonator and was distributing versions with **Opium Backdoor malware**. If you have downloaded Plan from Modrinth during that time frame, please assume your server is fully compromised and take appropriate action. ⚠️ > > The impersonator and project were removed, and got recreated by the original author with the help of Modrinth mod team.

Player Analytics is the ultimate server staff tool to monitor how players are playing your server. A built in webserver displays insights into different aspects on the server such as Online activity, Playerbase and how these change over time.

Plan supports multiple different platforms and versions; Paper, Spigot, Sponge, SpongeForge, Bungeecord, Velocity, Cauldron, NukkitX & all derivatives.

Requires Java 11 or newer - if you can't update to Java 11 use 5.4 build 1722 version (versions 1.7.X - 1.12.2)

Slogans Screenshots Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5

YouTube trailer

Server Set-Up | Bungee Set-Up

After setting up Plan on a server you should consider setting up HTTPS & Login

Special Thanks

Contributors

Supported plugins

Support the Developer

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2
Fabric
22h ago 1
26.3 26.2 26.1.x +9
Bukkit Bungeecord Folia Paper Purpur Spigot Sponge Velocity Waterfall
22h ago 1
26.2
Fabric
22h ago 1
26.2 26.1.x 1.21.x +8
Bukkit Bungeecord Folia Paper Purpur Spigot Sponge Velocity Waterfall
22h ago 1
26.2
Fabric
22h ago 1
26.2 26.1.x 1.21.x +8
Bukkit Bungeecord Folia Paper Purpur Spigot Sponge Velocity Waterfall
22h ago 1
26.2
Fabric
22h ago 1
26.2 26.1.x 1.21.x +8
Bukkit Bungeecord Folia Paper Purpur Spigot Sponge Velocity Waterfall
22h ago 1
26.2
Fabric
22h ago 1
26.2 26.1.x 1.21.x +8
Bukkit Bungeecord Folia Paper Purpur Spigot Sponge Velocity Waterfall
22h ago 1
26.1.x
Fabric
22h ago 1
26.2 26.1.x 1.21.x +8
Bukkit Bungeecord Folia Paper Purpur Spigot Sponge Velocity Waterfall
22h ago 1
26.1.x
Fabric
22h ago 1
26.1.x 1.21.x 1.20.x +7
Bukkit Bungeecord Folia Paper Spigot Sponge Velocity Waterfall
22h ago 1
1.21.x
Fabric
22h ago 1
26.2 26.1.x 1.21.x +8
Bukkit Bungeecord Folia Paper Spigot Sponge Velocity Waterfall
22h ago 1
1.21.x
Fabric
22h ago 1
1.21.x 1.20.x 1.19.x +6
Bukkit Bungeecord Folia Paper Spigot Sponge Velocity Waterfall
22h ago 1
1.21.x
Fabric
22h ago 1
1.21.x 1.20.x 1.19.x +6
Bukkit Bungeecord Folia Paper Purpur Spigot Sponge Velocity Waterfall
22h ago 1
1.21.x
Fabric
22h ago 1
1.21.x 1.20.x 1.19.x +6
Bukkit Bungeecord Folia Paper Purpur Spigot Sponge Velocity Waterfall
22h ago 1
1.21.x 1.20.x 1.19.x +7
Bukkit Bungeecord Folia Paper Purpur Spigot Sponge Velocity Waterfall
22h ago 1
1.21.x
Fabric
22h ago 1
# 5.8 build 3638

This update brings some improvements and bugfixes. **Next update 5.9 will require Java 17 or newer** so this is released before that to get those unable to update as many fixes as possible. bStats is showing Java versions <17 at 0.6% or 35/5300 so consider updating your Java version if you're able.

Special thanks to **Zoriot** and **Minecraft0122** for contributions to this update.

# Change log

## Database

  • Possibly fixed deadlock related to RemoveDuplicateUserInfoTransaction

## Webserver

  • Fixed minor vulnerability where path traversal bypass allowed anyone to read .json files on the system with a tab \t or newline \n character in the file path. This is minor because filesystems often block using those characters in filenames, they are not common with .json files, and attacker would need to know the relative path to the file.

## Extensions

  • Extension metadata is now cached in memory to avoid redundant database updates. Thanks to Minecraft0122 for work on this.
  • Fixed LuckPerms related exception after Plan was reloaded

## Other

  • Zoriot added fabric-permissions-api as an optional dependency to fabric publish
# 5.8 build 3638

This update brings some improvements and bugfixes. **Next update 5.9 will require Java 17 or newer** so this is released before that to get those unable to update as many fixes as possible. bStats is showing Java versions <17 at 0.6% or 35/5300 so consider updating your Java version if you're able.

Special thanks to **Zoriot** and **Minecraft0122** for contributions to this update.

# Change log

## Database

  • Possibly fixed deadlock related to RemoveDuplicateUserInfoTransaction

## Webserver

  • Fixed minor vulnerability where path traversal bypass allowed anyone to read .json files on the system with a tab \t or newline \n character in the file path. This is minor because filesystems often block using those characters in filenames, they are not common with .json files, and attacker would need to know the relative path to the file.

## Extensions

  • Extension metadata is now cached in memory to avoid redundant database updates. Thanks to Minecraft0122 for work on this.
  • Fixed LuckPerms related exception after Plan was reloaded

## Other

  • Zoriot added fabric-permissions-api as an optional dependency to fabric publish
# 5.8 build 3605

Special thanks to **Zoriot**, **Minecraft0122** and **OutHimic** for contributions to this update

# Change log

## Bugfixes

  • Fixed X-Forwarded-For header being read wrong in multi-jump reverse-proxies
  • Fixed SQL syntax error related to database clean task cleaning plugin data
  • Fixed Ping graph not displaying in Server Performance graph
  • Possibly fixed 'Today' and 'Yesterday' showing wrong in frontend

## Locale

  • OutHimic and Minecraft0122 updated CN and ZH_TW locales

## Other

  • Zoriot fixed curseforge release pipeline
# 5.8 build 3605

Special thanks to **Zoriot**, **Minecraft0122** and **OutHimic** for contributions to this update

# Change log

## Bugfixes

  • Fixed X-Forwarded-For header being read wrong in multi-jump reverse-proxies
  • Fixed SQL syntax error related to database clean task cleaning plugin data
  • Fixed Ping graph not displaying in Server Performance graph
  • Possibly fixed 'Today' and 'Yesterday' showing wrong in frontend

## Locale

  • OutHimic and Minecraft0122 updated CN and ZH_TW locales

## Other

  • Zoriot fixed curseforge release pipeline
# 5.8 build 3579

This is a hotfix for a database clean task error

Previous change log
https://github.com/plan-player-analytics/Plan/releases/tag/5.8.3577

Migration guide from 5.7 to 5.8
https://github.com/plan-player-analytics/Plan/wiki/Migration-guide-from-Version-5.7-to-5.8

# Change log

## Bugfixes

  • Fixed database clean task error when there were no plugins to clean
# 5.8 build 3579

This is a hotfix for a database clean task error

Previous change log
https://github.com/plan-player-analytics/Plan/releases/tag/5.8.3577

Migration guide from 5.7 to 5.8
https://github.com/plan-player-analytics/Plan/wiki/Migration-guide-from-Version-5.7-to-5.8

# Change log

## Bugfixes

  • Fixed database clean task error when there were no plugins to clean
# 5.8 build 3577

This update brings new features, refreshes to old features, as well as a big bunch of bugfixes and improvements.

Quick rundown of new big things includes MSPT Jitter, overhauled server performance tab with new performance metrics, overhauled session tabs, date pickers and partial dataload via datapoint endpoint.

Fabric was also updated to support minecraft 26.2 and above.

Special thanks to **AnttiMK & Minecraft0122** for contributions to this update

# Migration from 5.7


# Change log

## Data gathering

### MSPT Jitter (new metric)

MSPT Jitter (Average, Max) is new gathered performance metric. - Jitter is calculated from difference between subsequent tick speeds (milliseconds per tick) Example: MSPT of 35, 36, 34, 80, 37 -> Jitter = 1, 2, 46, 43 -> Average=23, Max=46. Average and maximum for each minute is recorded.

High jitter indicates that tick speed varies greatly between ticks, and can be used along existing MSPT metrics to further assess how high load affects gameplay.

![mspt jitter](https://github.com/user-attachments/assets/0f8a4ecd-fa81-4d1a-9d06-bb4bed140623)

## Database (Breaking changes)

  • Removed plan_settings table (breaking) - This table facilitated serverConfiguration folder on Networks, which has now been removed. - Old versions will error upon trying to store settings. If you need to use older versions those errors can be safely ignored.
  • Added plan_incomplete_registration table - This table now allows the last step of /plan register to work on any server, when previously it only worked on the server Plan webserver was running on.

## Website

### New performance metrics

Performance tab was rewritten to include more interesting metrics that reflect how players and chunks impact server load. The impact of players on Entities and Chunks was also taken into account since some servers unload all chunks without players present.

There is now a help button available on the Performance as Numbers card to explain each metric.

![metrics](https://github.com/user-attachments/assets/058b6bc6-269d-4b53-b83a-be3f2222baaa)

### Updated Server Performance graph

Server performance graph is now less jumpy and you can select any of the data you want to see rather than just some, using either presets on the left, or the labels at the bottom.

![performance graph](https://github.com/user-attachments/assets/a2697c42-d354-4578-a933-006d49482e36)

### New sessions tab

Sessions tab was rewritten on all pages (Network, Server, Player) and it now gets you up to 10k sessions, which can be searched further and exported as CSV. You can choose a date range using the session calendar or the new date picker component.

All of the data on session page will reflect the selected dates. All ongoing sessions within selected date range are shown, even if they didn't start within the date range, but before it.

On the Export website this feature is not available and defaults to most recent data (Similar to before)
![sessions-select-date](https://github.com/user-attachments/assets/a3c83cbb-d7c7-4ae5-b97b-f4fa37f648df)
![sessions-selected-date](https://github.com/user-attachments/assets/0829f493-fcb0-49db-ac64-cf4af53a41b3)

### Other

  • The new date picker component is in use anywhere you can input dates to a text field (Query page)
  • Servers overview (Network) now loads a lot faster (It only gets the data for the server you're looking at)
  • Server overview, Network overview, Online Activity overview, Sessions and Performance tabs all got their number tables changed to get individual values independently from each other.

### Bugfixes

  • Fixed some IPv6 setups being unable to login
  • Fixed Average MSPT not showing if MSPT was under 1ms
  • Fixed Hour by Hour showing Daily new players and not hourly
  • Fixed date saying 'Today' if it was in the future
  • Fixed Alternative_IP.Address changes not being reflected in Javascript due to Cache policy
  • Fixed boolean Extension values causing 'variable t not found' error.
  • Fixed component Extension values erroring
  • Fixed redirects on reverse-proxy setups with subdirectory addresses
  • Fixed value not defined error on Playerstable when showing time or date from plugin data on player table
  • Fixed stacked players online graph not stacking
  • Fixed Players Online tooltip going under table headers

## Fabric 26.2

  • Updated to Fabric 26.2 which required no API changes.
  • AnttiMK implemented Fabric 26.1 support. 1.21.9-1.21.11 are no longer supported by this version.

## Settings

  • serverConfiguration folder and related config sync features have been removed on Networks.
  • Display_options.Sessions.Show_on_page setting has been removed
  • Changed default value for Time.Thresholds.Remove_time_series_after to 3650 on Bungee/Velocity (Default is not automatically replaced)

## Locale

  • CN locale updated by Minecraft0122

## Extensions

  • Fixed error related to Folia and CMI extension
  • Fixed error related to deleting disabled extension data

## Placeholders

  • Fixed error on top list placeholders for playtime or kill count

## Other

  • Added database transaction queue information to /plan info command
  • Fixed deadlock related to ban status update task
  • Fixed /plan db uninstalled printing "success" before completing properly
  • AnttiMK updated Java compile options so that test code can use features from newer JDKs
  • Optimized Playerbase development graph generation query
  • Optimized Players online peak query
  • Possibly fixed TPSTableIdPatch failing on SQLite due to table lock


## Webserver: /v1/datapoint

To implement dynamic date based filtering, new endpoint /v1/datapoint was implemented. It makes implementing new single-value metrics a lot easier, since it's possible to produce tables of metrics by just defining a column 'time slot' and each row as a metric - you can already see impacts with the new metrics that were already added. This endpoint will be further expanded upon in the future.

This endpoint takes in after/afterMillisAgo, before/beforeMillisAgo and server or player parameters. server parameter can take in multiple server uuids comma separated. The endpoint returns 200, 302 (cached by browser) or 400 (invalid type). Please use ETag for caching if calling this endpoint from program code.

Example /v1/datapoint?type=PLAYTIME&afterMillisAgo=86400000&server=uuid will get you playtime for last 24h on a server.

All the supported datapoint types can be found from https://github.com/plan-player-analytics/Plan/blob/master/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/datapoint/DatapointType.java

### Deprecated endpoints

Following endpoints are deprecated in favor of the new /v1/datapoint endpoint:
  • /v1/serverOverview
  • /v1/network/overview
  • /v1/network/servers
  • /v1/onlineOverview
  • /v1/sessionOverview
  • /v1/performanceOverview
  • /v1/network/performanceOverview

Accessing the deprecated endpoints will print a warning on the console (Due to performance impact).

### New Web permissions

/v1/datapoint uses new web permissions data.player, data.server, data.network (and further subdivisions) to control visiblity. These permissions are granted automatically based on existing permissions:

  • access.network -> group is given data.network
  • access.server -> group is given data.server
  • access.player -> group is given data.player

/v1/datapoint will also check for access.player and access.player.self if looking for player specific data.
# 5.8 build 3577

This update brings new features, refreshes to old features, as well as a big bunch of bugfixes and improvements.

Quick rundown of new big things includes MSPT Jitter, overhauled server performance tab with new performance metrics, overhauled session tabs, date pickers and partial dataload via datapoint endpoint.

Fabric was also updated to support minecraft 26.2 and above.

Special thanks to **AnttiMK & Minecraft0122** for contributions to this update

# Migration from 5.7


# Change log

## Data gathering

### MSPT Jitter (new metric)

MSPT Jitter (Average, Max) is new gathered performance metric. - Jitter is calculated from difference between subsequent tick speeds (milliseconds per tick) Example: MSPT of 35, 36, 34, 80, 37 -> Jitter = 1, 2, 46, 43 -> Average=23, Max=46. Average and maximum for each minute is recorded.

High jitter indicates that tick speed varies greatly between ticks, and can be used along existing MSPT metrics to further assess how high load affects gameplay.

![mspt jitter](https://github.com/user-attachments/assets/0f8a4ecd-fa81-4d1a-9d06-bb4bed140623)

## Database (Breaking changes)

  • Removed plan_settings table (breaking) - This table facilitated serverConfiguration folder on Networks, which has now been removed. - Old versions will error upon trying to store settings. If you need to use older versions those errors can be safely ignored.
  • Added plan_incomplete_registration table - This table now allows the last step of /plan register to work on any server, when previously it only worked on the server Plan webserver was running on.

## Website

### New performance metrics

Performance tab was rewritten to include more interesting metrics that reflect how players and chunks impact server load. The impact of players on Entities and Chunks was also taken into account since some servers unload all chunks without players present.

There is now a help button available on the Performance as Numbers card to explain each metric.

![metrics](https://github.com/user-attachments/assets/058b6bc6-269d-4b53-b83a-be3f2222baaa)

### Updated Server Performance graph

Server performance graph is now less jumpy and you can select any of the data you want to see rather than just some, using either presets on the left, or the labels at the bottom.

![performance graph](https://github.com/user-attachments/assets/a2697c42-d354-4578-a933-006d49482e36)

### New sessions tab

Sessions tab was rewritten on all pages (Network, Server, Player) and it now gets you up to 10k sessions, which can be searched further and exported as CSV. You can choose a date range using the session calendar or the new date picker component.

All of the data on session page will reflect the selected dates. All ongoing sessions within selected date range are shown, even if they didn't start within the date range, but before it.

On the Export website this feature is not available and defaults to most recent data (Similar to before)
![sessions-select-date](https://github.com/user-attachments/assets/a3c83cbb-d7c7-4ae5-b97b-f4fa37f648df)
![sessions-selected-date](https://github.com/user-attachments/assets/0829f493-fcb0-49db-ac64-cf4af53a41b3)

### Other

  • The new date picker component is in use anywhere you can input dates to a text field (Query page)
  • Servers overview (Network) now loads a lot faster (It only gets the data for the server you're looking at)
  • Server overview, Network overview, Online Activity overview, Sessions and Performance tabs all got their number tables changed to get individual values independently from each other.

### Bugfixes

  • Fixed some IPv6 setups being unable to login
  • Fixed Average MSPT not showing if MSPT was under 1ms
  • Fixed Hour by Hour showing Daily new players and not hourly
  • Fixed date saying 'Today' if it was in the future
  • Fixed Alternative_IP.Address changes not being reflected in Javascript due to Cache policy
  • Fixed boolean Extension values causing 'variable t not found' error.
  • Fixed component Extension values erroring
  • Fixed redirects on reverse-proxy setups with subdirectory addresses
  • Fixed value not defined error on Playerstable when showing time or date from plugin data on player table
  • Fixed stacked players online graph not stacking
  • Fixed Players Online tooltip going under table headers

## Fabric 26.2

  • Updated to Fabric 26.2 which required no API changes.
  • AnttiMK implemented Fabric 26.1 support. 1.21.9-1.21.11 are no longer supported by this version.

## Settings

  • serverConfiguration folder and related config sync features have been removed on Networks.
  • Display_options.Sessions.Show_on_page setting has been removed
  • Changed default value for Time.Thresholds.Remove_time_series_after to 3650 on Bungee/Velocity (Default is not automatically replaced)

## Locale

  • CN locale updated by Minecraft0122

## Extensions

  • Fixed error related to Folia and CMI extension
  • Fixed error related to deleting disabled extension data

## Placeholders

  • Fixed error on top list placeholders for playtime or kill count

## Other

  • Added database transaction queue information to /plan info command
  • Fixed deadlock related to ban status update task
  • Fixed /plan db uninstalled printing "success" before completing properly
  • AnttiMK updated Java compile options so that test code can use features from newer JDKs
  • Optimized Playerbase development graph generation query
  • Optimized Players online peak query
  • Possibly fixed TPSTableIdPatch failing on SQLite due to table lock


## Webserver: /v1/datapoint

To implement dynamic date based filtering, new endpoint /v1/datapoint was implemented. It makes implementing new single-value metrics a lot easier, since it's possible to produce tables of metrics by just defining a column 'time slot' and each row as a metric - you can already see impacts with the new metrics that were already added. This endpoint will be further expanded upon in the future.

This endpoint takes in after/afterMillisAgo, before/beforeMillisAgo and server or player parameters. server parameter can take in multiple server uuids comma separated. The endpoint returns 200, 302 (cached by browser) or 400 (invalid type). Please use ETag for caching if calling this endpoint from program code.

Example /v1/datapoint?type=PLAYTIME&afterMillisAgo=86400000&server=uuid will get you playtime for last 24h on a server.

All the supported datapoint types can be found from https://github.com/plan-player-analytics/Plan/blob/master/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/datapoint/DatapointType.java

### Deprecated endpoints

Following endpoints are deprecated in favor of the new /v1/datapoint endpoint:
  • /v1/serverOverview
  • /v1/network/overview
  • /v1/network/servers
  • /v1/onlineOverview
  • /v1/sessionOverview
  • /v1/performanceOverview
  • /v1/network/performanceOverview

Accessing the deprecated endpoints will print a warning on the console (Due to performance impact).

### New Web permissions

/v1/datapoint uses new web permissions data.player, data.server, data.network (and further subdivisions) to control visiblity. These permissions are granted automatically based on existing permissions:

  • access.network -> group is given data.network
  • access.server -> group is given data.server
  • access.player -> group is given data.player

/v1/datapoint will also check for access.player and access.player.self if looking for player specific data.
# 5.7 DEV build 3558

This dev release introduces MSPT Jitter, performance graph rewrite, MC version 26.2 on fabric, bugfixes and improvements.

Special thanks to **AnttiMK & Minecraft0122** for contributions to this update

# Change log

## Website

### MSPT Jitter

Added new metric called MSPT Jitter which displays the average and maximum difference between subsequent tick speeds (Milliseconds Per Tick). Example: MSPT of 35, 36, 34, 80, 37 -> Jitter = 1, 2, 46, 43 -> Average=23, Max=46.

<img width="417" height="99" alt="image" src="https://github.com/user-attachments/assets/0f8a4ecd-fa81-4d1a-9d06-bb4bed140623" />

### New performance metrics

<img width="1654" height="1364" alt="image" src="https://github.com/user-attachments/assets/058b6bc6-269d-4b53-b83a-be3f2222baaa" />

Performance tab was rewritten to include more interesting metrics that reflect how players and chunks impact server load. The impact of players on Entities and Chunks was also taken into account since some servers unload all chunks without players present.

There is now a help button available on the Performance as Numbers card to explain each metric.

### Updated Server Performance graph

<img width="1655" height="531" alt="image" src="https://github.com/user-attachments/assets/a2697c42-d354-4578-a933-006d49482e36" />

Server performance graph is now less jumpy and you can select any of the data you want to see, using either presets on the left, or the labels at the bottom.

Under the hood the graph no longer renders 6 different HighCharts graphs, instead changing a single instance whenever you pick data. This also means the graph date-range no longer jumps in annoying way when you switch what you are viewing.

### New sessions tab

Sessions tab was rewritten on all pages (Network, Server, Player) and it now gets you up to 10k sessions, which can be searched further and exported as CSV. You can choose a date range using the session calendar or the new date picker component.

All of the data on session page will reflect the selected dates. All ongoing sessions within selected date range are shown, even if they didn't start within the date range, but before it.

<img width="1901" height="949" alt="image" src="https://github.com/user-attachments/assets/a3c83cbb-d7c7-4ae5-b97b-f4fa37f648df" />
<img width="1903" height="955" alt="image" src="https://github.com/user-attachments/assets/0829f493-fcb0-49db-ac64-cf4af53a41b3" />

On the Export website this feature is not available and defaults to most recent data (Similar to before)

### Other

The new date picker component is in use anywhere you can input dates to a text field

<img width="1920" height="954" alt="image" src="https://github.com/user-attachments/assets/92c6b8e5-0ef3-423a-a4bc-03004ce98c50" />

Also
  • Servers overview (Network) now loads a lot faster (It only gets the data for the server you're looking at)
  • Server overview, Network overview, Online Acctivity overview, Sessions and Performance tabs all got their number tables changed to get individual values independently from each other. This speeds up loading of data since you no longer need to wait for the slowest query to see all data.

### Bugfixes

  • Fixed some IPv6 setups being unable to login
  • Fixed Average MSPT not showing if MSPT was under 1ms
  • Fixed Hour by Hour showing Daily new players and not hourly
  • Fixed date saying 'Today' if it was in the future
  • Fixed Alternative_IP.Address changes not being reflected in Javascript due to Cache policy
  • Fixed boolean Extension values causing 'variable t not found' error.
  • Fixed component Extension values erroring
  • Fixed redirects on reverse-proxy setups with subdirectory addresses
  • Fixed value not defined error on Playerstable when showing time or date from plugin data on player table
  • Fixed stacked players online graph not stacking
  • Fixed Players Online tooltip going under table headers

## /v1/datapoint

To implement dynamic date based filtering seen above, new endpoint /v1/datapoint was implemented. It makes implementing new single-value metrics a lot easier, since it's possible to produce tables of metrics by just defining a column 'time slot' and each row as a metric - you can already see impacts with the new metrics that were already added. This endpoint will be further expanded upon in the future.

This endpoint takes in after/afterMillisAgo, before/beforeMillisAgo and server or player parameters. server parameter can take in multiple server uuids comma separated. The endpoint returns 200, 302 (cached by browser) or 400 (invalid type). Please use ETag for caching if calling this endpoint from program code.

Example /v1/datapoint?type=PLAYTIME&afterMillisAgo=86400000&server=uuid will get you playtime for last 24h on a server.

All the supported datapoint types can be found from https://github.com/plan-player-analytics/Plan/blob/master/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/datapoint/DatapointType.java

### Deprecated endpoints

Following endpoints are deprecated in favor of the new /v1/datapoint endpoint:
  • /v1/serverOverview
  • /v1/network/overview
  • /v1/network/servers
  • /v1/onlineOverview
  • /v1/sessionOverview
  • /v1/performanceOverview
  • /v1/network/performanceOverview

Accessing the deprecated endpoints will print a warning on the console (Due to performance impact).

### New Web permissions

This will be expanded upon in the future. This endpoint uses data.player, data.server, data.network (and further subdivisions) to control visiblity. These permissions are granted automatically based on existing permissions:

  • access.network -> group is given data.network
  • access.server -> group is given data.server
  • access.player -> group is given data.player

/v1/datapoint will also check for access.player and access.player.self if looking for player specific data.

## Fabric 26.2

  • Updated to Fabric 26.2 which required no API changes.
  • AnttiMK implemented Fabric 26.1 support. 1.21.9-1.21.11 are no longer supported by this version.

## Config

  • Display_options.Sessions.Show_on_page setting has been removed
  • Changed default value for Time.Thresholds.Remove_time_series_after to 3650 on Bungee/Velocity (Default is not automatically replaced)

## Locale

  • CN locale updated by Minecraft0122

## Extensions

  • Fixed error related to Folia and CMI extension

## Other

  • Added database transaction queue information to /plan info command
  • Fixed deadlock related to ban status update task
  • Fixed /plan db uninstalled printing "success" before completing properly
  • AnttiMK updated Java compile options so that test code can use features from newer JDKs
  • Optimized Playerbase development graph generation query
  • Optimized Players online peak query
  • Possibly fixed TPSTableIdPatch failing on SQLite due to table lock
# 5.7 DEV build 3558

This dev release introduces MSPT Jitter, performance graph rewrite, MC version 26.2 on fabric, bugfixes and improvements.

Special thanks to **AnttiMK & Minecraft0122** for contributions to this update

# Change log

## Website

### MSPT Jitter

Added new metric called MSPT Jitter which displays the average and maximum difference between subsequent tick speeds (Milliseconds Per Tick). Example: MSPT of 35, 36, 34, 80, 37 -> Jitter = 1, 2, 46, 43 -> Average=23, Max=46.

<img width="417" height="99" alt="image" src="https://github.com/user-attachments/assets/0f8a4ecd-fa81-4d1a-9d06-bb4bed140623" />

### New performance metrics

<img width="1654" height="1364" alt="image" src="https://github.com/user-attachments/assets/058b6bc6-269d-4b53-b83a-be3f2222baaa" />

Performance tab was rewritten to include more interesting metrics that reflect how players and chunks impact server load. The impact of players on Entities and Chunks was also taken into account since some servers unload all chunks without players present.

There is now a help button available on the Performance as Numbers card to explain each metric.

### Updated Server Performance graph

<img width="1655" height="531" alt="image" src="https://github.com/user-attachments/assets/a2697c42-d354-4578-a933-006d49482e36" />

Server performance graph is now less jumpy and you can select any of the data you want to see, using either presets on the left, or the labels at the bottom.

Under the hood the graph no longer renders 6 different HighCharts graphs, instead changing a single instance whenever you pick data. This also means the graph date-range no longer jumps in annoying way when you switch what you are viewing.

### New sessions tab

Sessions tab was rewritten on all pages (Network, Server, Player) and it now gets you up to 10k sessions, which can be searched further and exported as CSV. You can choose a date range using the session calendar or the new date picker component.

All of the data on session page will reflect the selected dates. All ongoing sessions within selected date range are shown, even if they didn't start within the date range, but before it.

<img width="1901" height="949" alt="image" src="https://github.com/user-attachments/assets/a3c83cbb-d7c7-4ae5-b97b-f4fa37f648df" />
<img width="1903" height="955" alt="image" src="https://github.com/user-attachments/assets/0829f493-fcb0-49db-ac64-cf4af53a41b3" />

On the Export website this feature is not available and defaults to most recent data (Similar to before)

### Other

The new date picker component is in use anywhere you can input dates to a text field

<img width="1920" height="954" alt="image" src="https://github.com/user-attachments/assets/92c6b8e5-0ef3-423a-a4bc-03004ce98c50" />

Also
  • Servers overview (Network) now loads a lot faster (It only gets the data for the server you're looking at)
  • Server overview, Network overview, Online Acctivity overview, Sessions and Performance tabs all got their number tables changed to get individual values independently from each other. This speeds up loading of data since you no longer need to wait for the slowest query to see all data.

### Bugfixes

  • Fixed some IPv6 setups being unable to login
  • Fixed Average MSPT not showing if MSPT was under 1ms
  • Fixed Hour by Hour showing Daily new players and not hourly
  • Fixed date saying 'Today' if it was in the future
  • Fixed Alternative_IP.Address changes not being reflected in Javascript due to Cache policy
  • Fixed boolean Extension values causing 'variable t not found' error.
  • Fixed component Extension values erroring
  • Fixed redirects on reverse-proxy setups with subdirectory addresses
  • Fixed value not defined error on Playerstable when showing time or date from plugin data on player table
  • Fixed stacked players online graph not stacking
  • Fixed Players Online tooltip going under table headers

## /v1/datapoint

To implement dynamic date based filtering seen above, new endpoint /v1/datapoint was implemented. It makes implementing new single-value metrics a lot easier, since it's possible to produce tables of metrics by just defining a column 'time slot' and each row as a metric - you can already see impacts with the new metrics that were already added. This endpoint will be further expanded upon in the future.

This endpoint takes in after/afterMillisAgo, before/beforeMillisAgo and server or player parameters. server parameter can take in multiple server uuids comma separated. The endpoint returns 200, 302 (cached by browser) or 400 (invalid type). Please use ETag for caching if calling this endpoint from program code.

Example /v1/datapoint?type=PLAYTIME&afterMillisAgo=86400000&server=uuid will get you playtime for last 24h on a server.

All the supported datapoint types can be found from https://github.com/plan-player-analytics/Plan/blob/master/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/datapoint/DatapointType.java

### Deprecated endpoints

Following endpoints are deprecated in favor of the new /v1/datapoint endpoint:
  • /v1/serverOverview
  • /v1/network/overview
  • /v1/network/servers
  • /v1/onlineOverview
  • /v1/sessionOverview
  • /v1/performanceOverview
  • /v1/network/performanceOverview

Accessing the deprecated endpoints will print a warning on the console (Due to performance impact).

### New Web permissions

This will be expanded upon in the future. This endpoint uses data.player, data.server, data.network (and further subdivisions) to control visiblity. These permissions are granted automatically based on existing permissions:

  • access.network -> group is given data.network
  • access.server -> group is given data.server
  • access.player -> group is given data.player

/v1/datapoint will also check for access.player and access.player.self if looking for player specific data.

## Fabric 26.2

  • Updated to Fabric 26.2 which required no API changes.
  • AnttiMK implemented Fabric 26.1 support. 1.21.9-1.21.11 are no longer supported by this version.

## Config

  • Display_options.Sessions.Show_on_page setting has been removed
  • Changed default value for Time.Thresholds.Remove_time_series_after to 3650 on Bungee/Velocity (Default is not automatically replaced)

## Locale

  • CN locale updated by Minecraft0122

## Extensions

  • Fixed error related to Folia and CMI extension

## Other

  • Added database transaction queue information to /plan info command
  • Fixed deadlock related to ban status update task
  • Fixed /plan db uninstalled printing "success" before completing properly
  • AnttiMK updated Java compile options so that test code can use features from newer JDKs
  • Optimized Playerbase development graph generation query
  • Optimized Players online peak query
  • Possibly fixed TPSTableIdPatch failing on SQLite due to table lock
# 5.7 DEV build 3506

This dev release introduces new performance metrics, new sessions tab, MC version 26.1 on fabric, and lots of bugfixes and improvements.

Special thanks to **AnttiMK & Minecraft0122** for contributions to this update

# Change log

## Website

### New performance metrics

<img width="1654" height="1364" alt="image" src="https://github.com/user-attachments/assets/058b6bc6-269d-4b53-b83a-be3f2222baaa" />

Performance tab was rewritten to include more interesting metrics that reflect how players and chunks impact server load. The impact of players on Entities and Chunks was also taken into account since some servers unload all chunks without players present.

### New sessions tab

Sessions tab was rewritten on all pages (Network, Server, Player) and it now gets you up to 10k sessions, which can be searched further and exported as CSV. You can choose a date range using the session calendar or the new date picker component.

All of the data on session page will reflect the selected dates. All ongoing sessions within selected date range are shown, even if they didn't start within the date range, but before it.

<img width="1901" height="949" alt="image" src="https://github.com/user-attachments/assets/a3c83cbb-d7c7-4ae5-b97b-f4fa37f648df" />
<img width="1903" height="955" alt="image" src="https://github.com/user-attachments/assets/0829f493-fcb0-49db-ac64-cf4af53a41b3" />

On the Export website this feature is not available and defaults to most recent data (Similar to before)

### Other

The new date picker component is in use anywhere you can input dates to a text field

<img width="1920" height="954" alt="image" src="https://github.com/user-attachments/assets/92c6b8e5-0ef3-423a-a4bc-03004ce98c50" />

Also
  • Servers overview (Network) now loads a lot faster (It only gets the data for the server you're looking at)
  • Server overview, Network overview, Online Acctivity overview, Sessions and Performance tabs all got their number tables changed to get individual values independently from each other. This speeds up loading of data since you no longer need to wait for the slowest query to see all data.

### Bugfixes

  • Fixed some IPv6 setups being unable to login
  • Fixed Average MSPT not showing if MSPT was under 1ms
  • Fixed Hour by Hour showing Daily new players and not hourly
  • Fixed date saying 'Today' if it was in the future
  • Fixed Alternative_IP.Address changes not being reflected in Javascript due to Cache policy
  • Fixed boolean Extension values causing 'variable t not found' error.
  • Fixed component Extension values erroring
  • Fixed redirects on reverse-proxy setups with subdirectory addresses
  • Fixed value not defined error on Playerstable when showing time or date from plugin data on player table

## /v1/datapoint

To implement dynamic date based filtering seen above, new endpoint /v1/datapoint was implemented. It makes implementing new single-value metrics a lot easier, since it's possible to produce tables of metrics by just defining a column 'time slot' and each row as a metric - you can already see impacts with the new metrics that were already added. This endpoint will be further expanded upon in the future.

This endpoint takes in after/afterMillisAgo, before/beforeMillisAgo and server or player parameters. server parameter can take in multiple server uuids comma separated. The endpoint returns 200, 302 (cached by browser) or 400 (invalid type). Please use ETag for caching if calling this endpoint from program code.

Example /v1/datapoint?type=PLAYTIME&afterMillisAgo=86400000&server=uuid will get you playtime for last 24h on a server.

All the supported datapoint types can be found from https://github.com/plan-player-analytics/Plan/blob/master/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/datapoint/DatapointType.java

### Deprecated endpoints

Following endpoints are deprecated in favor of the new /v1/datapoint endpoint:
  • /v1/serverOverview
  • /v1/network/overview
  • /v1/network/servers
  • /v1/onlineOverview
  • /v1/sessionOverview
  • /v1/performanceOverview
  • /v1/network/performanceOverview

Accessing the deprecated endpoints will print a warning on the console (Due to performance impact).

### New Web permissions

This will be expanded upon in the future. This endpoint uses data.player, data.server, data.network (and further subdivisions) to control visiblity. These permissions are granted automatically based on existing permissions:

  • access.network -> group is given data.network
  • access.server -> group is given data.server
  • access.player -> group is given data.player

/v1/datapoint will also check for access.player and access.player.self if looking for player specific data.

## Fabric 26.1

AnttiMK implemented Fabric 26.1 support. 1.21.9-1.21.11 are no longer supported by this version.

## Config

  • Display_options.Sessions.Show_on_page setting has been removed
  • Changed default value for Time.Thresholds.Remove_time_series_after to 3650 on Bungee/Velocity (Default is not automatically replaced)

## Locale

  • CN locale updated by Minecraft0122

## Extensions

  • Fixed error related to Folia and CMI extension

## Other

  • Added database transaction queue information to /plan info command
  • Fixed deadlock related to ban status update task
  • Fixed /plan db uninstalled printing "success" before completing properly
  • AnttiMK updated Java compile options so that test code can use features from newer JDKs
  • Optimized Playerbase development graph generation query
  • Optimized Players online peak query
# 5.7 DEV build 3506

This dev release introduces new performance metrics, new sessions tab, MC version 26.1 on fabric, and lots of bugfixes and improvements.

Special thanks to **AnttiMK & Minecraft0122** for contributions to this update

# Change log

## Website

### New performance metrics

<img width="1654" height="1364" alt="image" src="https://github.com/user-attachments/assets/058b6bc6-269d-4b53-b83a-be3f2222baaa" />

Performance tab was rewritten to include more interesting metrics that reflect how players and chunks impact server load. The impact of players on Entities and Chunks was also taken into account since some servers unload all chunks without players present.

### New sessions tab

Sessions tab was rewritten on all pages (Network, Server, Player) and it now gets you up to 10k sessions, which can be searched further and exported as CSV. You can choose a date range using the session calendar or the new date picker component.

All of the data on session page will reflect the selected dates. All ongoing sessions within selected date range are shown, even if they didn't start within the date range, but before it.

<img width="1901" height="949" alt="image" src="https://github.com/user-attachments/assets/a3c83cbb-d7c7-4ae5-b97b-f4fa37f648df" />
<img width="1903" height="955" alt="image" src="https://github.com/user-attachments/assets/0829f493-fcb0-49db-ac64-cf4af53a41b3" />

On the Export website this feature is not available and defaults to most recent data (Similar to before)

### Other

The new date picker component is in use anywhere you can input dates to a text field

<img width="1920" height="954" alt="image" src="https://github.com/user-attachments/assets/92c6b8e5-0ef3-423a-a4bc-03004ce98c50" />

Also
  • Servers overview (Network) now loads a lot faster (It only gets the data for the server you're looking at)
  • Server overview, Network overview, Online Acctivity overview, Sessions and Performance tabs all got their number tables changed to get individual values independently from each other. This speeds up loading of data since you no longer need to wait for the slowest query to see all data.

### Bugfixes

  • Fixed some IPv6 setups being unable to login
  • Fixed Average MSPT not showing if MSPT was under 1ms
  • Fixed Hour by Hour showing Daily new players and not hourly
  • Fixed date saying 'Today' if it was in the future
  • Fixed Alternative_IP.Address changes not being reflected in Javascript due to Cache policy
  • Fixed boolean Extension values causing 'variable t not found' error.
  • Fixed component Extension values erroring
  • Fixed redirects on reverse-proxy setups with subdirectory addresses
  • Fixed value not defined error on Playerstable when showing time or date from plugin data on player table

## /v1/datapoint

To implement dynamic date based filtering seen above, new endpoint /v1/datapoint was implemented. It makes implementing new single-value metrics a lot easier, since it's possible to produce tables of metrics by just defining a column 'time slot' and each row as a metric - you can already see impacts with the new metrics that were already added. This endpoint will be further expanded upon in the future.

This endpoint takes in after/afterMillisAgo, before/beforeMillisAgo and server or player parameters. server parameter can take in multiple server uuids comma separated. The endpoint returns 200, 302 (cached by browser) or 400 (invalid type). Please use ETag for caching if calling this endpoint from program code.

Example /v1/datapoint?type=PLAYTIME&afterMillisAgo=86400000&server=uuid will get you playtime for last 24h on a server.

All the supported datapoint types can be found from https://github.com/plan-player-analytics/Plan/blob/master/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/datapoint/DatapointType.java

### Deprecated endpoints

Following endpoints are deprecated in favor of the new /v1/datapoint endpoint:
  • /v1/serverOverview
  • /v1/network/overview
  • /v1/network/servers
  • /v1/onlineOverview
  • /v1/sessionOverview
  • /v1/performanceOverview
  • /v1/network/performanceOverview

Accessing the deprecated endpoints will print a warning on the console (Due to performance impact).

### New Web permissions

This will be expanded upon in the future. This endpoint uses data.player, data.server, data.network (and further subdivisions) to control visiblity. These permissions are granted automatically based on existing permissions:

  • access.network -> group is given data.network
  • access.server -> group is given data.server
  • access.player -> group is given data.player

/v1/datapoint will also check for access.player and access.player.self if looking for player specific data.

## Fabric 26.1

AnttiMK implemented Fabric 26.1 support. 1.21.9-1.21.11 are no longer supported by this version.

## Config

  • Display_options.Sessions.Show_on_page setting has been removed
  • Changed default value for Time.Thresholds.Remove_time_series_after to 3650 on Bungee/Velocity (Default is not automatically replaced)

## Locale

  • CN locale updated by Minecraft0122

## Extensions

  • Fixed error related to Folia and CMI extension

## Other

  • Added database transaction queue information to /plan info command
  • Fixed deadlock related to ban status update task
  • Fixed /plan db uninstalled printing "success" before completing properly
  • AnttiMK updated Java compile options so that test code can use features from newer JDKs
  • Optimized Playerbase development graph generation query
  • Optimized Players online peak query
# 5.7 DEV build 3341

This dev release includes support for mc version 26.1 on fabric, new sessions tab and bugfixes.

Special thanks to **AnttiMK & Minecraft0122** for contributions to this update

# Change log

## Website

### New sessions tab

Sessions tab was rewritten on all pages (Network, Server, Player) and it now gets you up to 10k sessions, which can be searched further and exported as CSV. You can choose a date range using the session calendar or the new date picker component.

All of the data on session page will reflect the selected dates. All ongoing sessions within selected date range are shown, even if they didn't start within the date range, but before it.

<img width="1901" height="949" alt="image" src="https://github.com/user-attachments/assets/a3c83cbb-d7c7-4ae5-b97b-f4fa37f648df" />
<img width="1903" height="955" alt="image" src="https://github.com/user-attachments/assets/0829f493-fcb0-49db-ac64-cf4af53a41b3" />
<img width="1903" height="955" alt="image" src="https://github.com/user-attachments/assets/1a4d1dcf-a073-4f28-8e3f-9351e265b3dd" />

On the Export website this feature is not available and defaults to most recent data (Similar to before)

### New Web permissions

To implement dynamic date based filtering seen above, new endpoint /v1/datapoint was implemented. This will be expanded upon in the future. This endpoint uses data.player, data.server, data.network (and further subdivisions) to control visiblity. These permissions are granted automatically based on existing permissions:

  • access.network -> group is given data.network
  • access.server -> group is given data.server
  • access.player -> group is given data.player

/v1/datapoint will also check for access.player and access.player.self if looking for player specific data.

### Other

The new date picker component is in use anywhere you can input dates to a text field

<img width="1920" height="954" alt="image" src="https://github.com/user-attachments/assets/92c6b8e5-0ef3-423a-a4bc-03004ce98c50" />

### Bugfixes

  • Fixed Average MSPT not showing if MSPT was under 1ms
  • Fixed date saying 'Today' if it was in the future
  • Fixed Alternative_IP.Address changes not being reflected in Javascript due to Cache policy
  • Fixed boolean Extension values causing 'variable t not found' error.

## Fabric 26.1

AnttiMK implemented Fabric 26.1 support. 1.21.9-1.21.11 are no longer supported by this version.

## Config

  • Display_options.Sessions.Show_on_page setting has been removed
  • Changed default value for Time.Thresholds.Remove_time_series_after to 3650 on Bungee/Velocity (Default is not automatically replaced)

## Locale

  • CN locale updated by Minecraft0122
# 5.7 DEV build 3341

This dev release includes support for mc version 26.1 on fabric, new sessions tab and bugfixes.

Special thanks to **AnttiMK & Minecraft0122** for contributions to this update

# Change log

## Website

### New sessions tab

Sessions tab was rewritten on all pages (Network, Server, Player) and it now gets you up to 10k sessions, which can be searched further and exported as CSV. You can choose a date range using the session calendar or the new date picker component.

All of the data on session page will reflect the selected dates. All ongoing sessions within selected date range are shown, even if they didn't start within the date range, but before it.

<img width="1901" height="949" alt="image" src="https://github.com/user-attachments/assets/a3c83cbb-d7c7-4ae5-b97b-f4fa37f648df" />
<img width="1903" height="955" alt="image" src="https://github.com/user-attachments/assets/0829f493-fcb0-49db-ac64-cf4af53a41b3" />
<img width="1903" height="955" alt="image" src="https://github.com/user-attachments/assets/1a4d1dcf-a073-4f28-8e3f-9351e265b3dd" />

On the Export website this feature is not available and defaults to most recent data (Similar to before)

### New Web permissions

To implement dynamic date based filtering seen above, new endpoint /v1/datapoint was implemented. This will be expanded upon in the future. This endpoint uses data.player, data.server, data.network (and further subdivisions) to control visiblity. These permissions are granted automatically based on existing permissions:

  • access.network -> group is given data.network
  • access.server -> group is given data.server
  • access.player -> group is given data.player

/v1/datapoint will also check for access.player and access.player.self if looking for player specific data.

### Other

The new date picker component is in use anywhere you can input dates to a text field

<img width="1920" height="954" alt="image" src="https://github.com/user-attachments/assets/92c6b8e5-0ef3-423a-a4bc-03004ce98c50" />

### Bugfixes

  • Fixed Average MSPT not showing if MSPT was under 1ms
  • Fixed date saying 'Today' if it was in the future
  • Fixed Alternative_IP.Address changes not being reflected in Javascript due to Cache policy
  • Fixed boolean Extension values causing 'variable t not found' error.

## Fabric 26.1

AnttiMK implemented Fabric 26.1 support. 1.21.9-1.21.11 are no longer supported by this version.

## Config

  • Display_options.Sessions.Show_on_page setting has been removed
  • Changed default value for Time.Thresholds.Remove_time_series_after to 3650 on Bungee/Velocity (Default is not automatically replaced)

## Locale

  • CN locale updated by Minecraft0122
# 5.7 build 3306

Hotfix for config update bug in build 3288.

# Change log

  • Fixed config resetting some values to default on reload
  • Fixed table sorting with alphabetical things
  • Minor dependency updates
  • CI pipelines for releasing to Ore, Hangar and Modrinth
# 5.7 build 3306

Hotfix for config update bug in build 3288.

# Change log

  • Fixed config resetting some values to default on reload
  • Fixed table sorting with alphabetical things
  • Minor dependency updates
  • CI pipelines for releasing to Ore, Hangar and Modrinth
5.7 DEV build 3298

DEV build to test new publishing pipelines to Ore, Hangar and Modrinth.

No changes compared to DEV build 3294/3295 https://github.com/plan-player-analytics/Plan/releases/tag/5.7.3295
5.7 DEV build 3298

DEV build to test new publishing pipelines to Ore, Hangar and Modrinth.

No changes compared to DEV build 3294/3295 https://github.com/plan-player-analytics/Plan/releases/tag/5.7.3295
# 5.7 build 3288

This release contains bugfixes to build 3265 and a new theme.

Special thanks to **Kopo, Leolebleis & Guinness_Akihiko** for contributions to this update

# Change log

## Website

  • Improved readability of World Pie on servers that have over 7 worlds
  • Improved readability of Server Pie on networks that have over 7 servers
  • Moved Performance graph loading to Web Worker (async threading in browsers) - This should improve rendering times slightly
  • Fixed issue where Join Address Groups would reset when using HTTPS
  • Fixed a couple of instances where Trend was not properly showing
  • Fixed 'showPlayersOnline is not defined' when viewing network page on networks with multiple Proxy servers
  • Fixed a bug with Change history floating on top of the Save button in Theme Editor when using Night mode.
  • Fixed CUSTOM locale defaulting to Chinese locale for time/date/country localization due to "Best match" in browser matching.
  • Fixed Swagger documentation not showing
  • Fixed 'New player retention' label in Server overview
  • Fixed typo in a locale key
  • Fixed Low TPS Insights showing entities instead of CPU
  • Leolebleis fixed reverse-proxy https address not being recognized as correct address

## Fabric

Kopo updated Fabric to use Mojang mappings (Tested with 1.12.9-1.12.11)

## Themes

Added solarized theme based on https://github.com/altercation/solarized

<img width="1903" height="955" alt="solarized theme" src="https://github.com/user-attachments/assets/2f74fc03-76b1-4bd6-9ff4-1e45ec195c42" />

## Config

  • Possibly fixed a race condition that caused server identity to be reset, creating duplicate servers when server was shut down during Database patching
  • Fixed trailing comments removing part of config setting value.
  • Fixed some config changes being applied every time

## Locale

  • Guinness_Akihiko updated KO locale

## Other

  • Builds now require JDK 25 for switch to Mojang mappings.
# 5.7 build 3288

This release contains bugfixes to build 3265 and a new theme.

Special thanks to **Kopo, Leolebleis & Guinness_Akihiko** for contributions to this update

# Change log

## Website

  • Improved readability of World Pie on servers that have over 7 worlds
  • Improved readability of Server Pie on networks that have over 7 servers
  • Moved Performance graph loading to Web Worker (async threading in browsers) - This should improve rendering times slightly
  • Fixed issue where Join Address Groups would reset when using HTTPS
  • Fixed a couple of instances where Trend was not properly showing
  • Fixed 'showPlayersOnline is not defined' when viewing network page on networks with multiple Proxy servers
  • Fixed a bug with Change history floating on top of the Save button in Theme Editor when using Night mode.
  • Fixed CUSTOM locale defaulting to Chinese locale for time/date/country localization due to "Best match" in browser matching.
  • Fixed Swagger documentation not showing
  • Fixed 'New player retention' label in Server overview
  • Fixed typo in a locale key
  • Fixed Low TPS Insights showing entities instead of CPU
  • Leolebleis fixed reverse-proxy https address not being recognized as correct address

## Fabric

Kopo updated Fabric to use Mojang mappings (Tested with 1.12.9-1.12.11)

## Themes

Added solarized theme based on https://github.com/altercation/solarized

<img width="1903" height="955" alt="solarized theme" src="https://github.com/user-attachments/assets/2f74fc03-76b1-4bd6-9ff4-1e45ec195c42" />

## Config

  • Possibly fixed a race condition that caused server identity to be reset, creating duplicate servers when server was shut down during Database patching
  • Fixed trailing comments removing part of config setting value.
  • Fixed some config changes being applied every time

## Locale

  • Guinness_Akihiko updated KO locale

## Other

  • Builds now require JDK 25 for switch to Mojang mappings.
# 5.7 build 3247

This update brings a big bunch of new features and improvements, such as Theme Editor, Milliseconds per Tick, Players online -tooltip, Database move/merge rewrite and many others.

Special thanks to **Kopo, SaolGhra, TWJohnJohn20116, Shadowhackercz, Vankka, DrexHD, Jsinco & julianvdhogen** for contributions to this update

# Change log

The theme settings have changed.
See https://github.com/plan-player-analytics/Plan/wiki/Migration-guide-from-Version-5.6-to-5.7 for what might need changing in the config.

## Website

### Fixed vulnerabilities

  • Fixed potential XSS injected through malicious plugin. (User would have had to click the link to activate XSS) [What is XSS](https://owasp.org/www-community/attacks/xss/)
  • Fixed potential Session hijack vulnerability after successful XSS where attacker could read authentication cookie through javascript.
  • It is recommended to run /plan logout * after the update to protect against this vulnerability, even if the sessions will eventually expire.

There has not been reports of exploitation of these vulnerabilities.

### Theme Editor

You can now create your own themes for Plan without needing Html Customization. This is the main new feature of this version and is documented [here](https://github.com/plan-player-analytics/Plan/wiki/Themes).

<img alt="image" src="https://github.com/user-attachments/assets/6574c4fe-75e6-4feb-acb3-336e34d91c55" />

  • theme.yml has now been deprecated and will be deleted if it only contains default values

### MSPT (Milliseconds per Tick)

<img width="903" height="507" alt="image" src="https://github.com/user-attachments/assets/cf799d02-efe0-4647-b954-501a3892e714" />

Milliseconds per Tick (average/95th percentile) have been added to performance metrics on all applicable platforms.

### Players online -tooltip

<img width="418" height="301" alt="image" src="https://github.com/user-attachments/assets/1f288e4f-3bdc-459b-a384-677995689cfb" />

You can now hover over Players online graph to see who was online at specific time (up to 63 players).

### Query page improvements

<img width="1659" height="422" alt="image" src="https://github.com/user-attachments/assets/993ad0b7-4d97-4981-a394-39c168e58f6c" />

  • New filters have been added
  • Played on date
  • Activity group on date
  • Last seen between
  • All 'between' filters now support 'Before' and 'After' by deselecting one of the checkboxes (e.g. played between -> played before)
  • Multi-select components have been replaced with a mobile friendly, text searchable alternative that no longer requires pressing Shift for multi-selection
  • Fixed timezone inconsistency between View time input fields and the graph

### Performance graph improvements

![performance-tab-graph-linking](https://github.com/user-attachments/assets/e45a1e36-9f38-44e7-a30d-e2bc24394d99)

  • Performance graph tabs now sync the graph range-finder so that you can view different data for same time easier
  • Network performance graph colors now vary between servers to be easier to read
  • Fixed extra Series label appearing in HTTP mode on Performance graph (This was the plugin version history series in HTTPS mode)
  • Added Uptime data to Performance as Numbers tables

### Other

  • Kills table can now be searched/sorted/exported and gets up to 25000 entries from the database
<img alt="image" src="https://github.com/user-attachments/assets/4cb0d003-d67e-44f5-99e3-3e5fbb741ae6" />

  • Added support for nickname search in player tables
  • Fixed some night mode text invisibility issues
  • SaolGhra fixed error r.includes is not a function related to Litebans
  • Fixed 'View full query' button in the modal that opens when clicking Server calendar
  • Fixed clicking Server calendar results including players who played on other servers during selected days

## Config

  • Changed default Display_options.Player_head_image_url to https://crafthead.net/helm/${playerUUIDNoDash}/120 (Existing configs need to be manually updated)
  • Jsinco updated 'Data_gathering.Join_addresses_.Filter_out_from_data' to support regex. Note that any existing setting values with . (dot character) will now match any character.
  • Display_options.Theme (default "default") now refers to theme name in the theme editor rather than "What theme.yml to copy values from"
  • Display_options.Night_mode (default false) added

## Data

  • MSPT average and 95th percentile added to plan_tps table
  • Register date 0 (1970-01-01) is now regarded as invalid.
  • Ban status is now updated by an automatic task that cycles through all known players small amount at a time

## Sponge

  • Sponge API 14 is now used, API 8 is no longer supported.

## Fabric

  • Fabric was updated to 1.12.9 by DrexHD (Supports 1.12.11 as well)

## Velocity

  • Velocity was updated to 3.5.0-SNAPSHOT

## Database

### Database move system rewrite

Rewrote the system responsible for copying data from one database to another since previous system would crash under large datasets. The goal of this was to allow copying large SQLite databases to MySQL even on larger servers. The system was tested against a 3 GB MySQL database on a server with 1 GB of allocated memory. (Sidenote: Please don't try to run your server off 3 GB large database.db SQLite file)

  • /plan db move, /plan db backup, /plan db restore use the new system
  • Added /plan db merge command (permission: plan.data.merge) which allows merging SQLite data to existing MySQL. This is useful for those merging multiple servers into a network when all servers had Plan installed on separate SQLite databases.

### Other

  • id column added to old plan_tps tables that did not have it yet via Patch.
  • Lock hints for selections inside transactions to reduce deadlocks
  • Fixed 1020 "Record has changed since last read in table" error on MariaDB 11.8.3
  • Fixed dyplicate key violation related to AllowListBounce
  • Possibly fixed ShutdownDataPreservationTransaction failing on existing join address insert
  • Fixed playtime queries where session started before view window or ended after.

## Locale

  • Dates, time amounts & country names are now translated based on the selected locale. (If specific ones aren't please report it as a bug)
  • HighCharts & Calendar are now translated based on the selected locale
  • TWJohnJohn20116 updated zh_TW locale
  • Shadowhackercz updated CS locale
  • julianvdhogen updated NL locale

## Extensions

  • Fixed ArithmeticException related to LibertyBans when bans were infinite
  • Fixed an issue related to rendering boolean values
  • Updated Jobs extension to support newer version
  • Added Time.Periodical_tasks.Extension_player_data_refresh_every setting (default 15 MINUTES) which only affects plugins that decide to support it.
  • Made gathered PlaceholderAPI data update periodically

## Placeholders

  • Fixed network_players_online always saying 0

## Other

  • Added Typescript support.
  • Vankka updated DependencyDownload to clean up libraries folder of old versions
  • Kopo updated the build system to speed up builds & IDE indexing performance

# 5.7 build 3247

This update brings a big bunch of new features and improvements, such as Theme Editor, Milliseconds per Tick, Players online -tooltip, Database move/merge rewrite and many others.

Special thanks to **Kopo, SaolGhra, TWJohnJohn20116, Shadowhackercz, Vankka, DrexHD, Jsinco & julianvdhogen** for contributions to this update

# Change log

The theme settings have changed.
See https://github.com/plan-player-analytics/Plan/wiki/Migration-guide-from-Version-5.6-to-5.7 for what might need changing in the config.

## Website

### Fixed vulnerabilities

  • Fixed potential XSS injected through malicious plugin. (User would have had to click the link to activate XSS) [What is XSS](https://owasp.org/www-community/attacks/xss/)
  • Fixed potential Session hijack vulnerability after successful XSS where attacker could read authentication cookie through javascript.
  • It is recommended to run /plan logout * after the update to protect against this vulnerability, even if the sessions will eventually expire.

There has not been reports of exploitation of these vulnerabilities.

### Theme Editor

You can now create your own themes for Plan without needing Html Customization. This is the main new feature of this version and is documented [here](https://github.com/plan-player-analytics/Plan/wiki/Themes).

<img alt="image" src="https://github.com/user-attachments/assets/6574c4fe-75e6-4feb-acb3-336e34d91c55" />

  • theme.yml has now been deprecated and will be deleted if it only contains default values

### MSPT (Milliseconds per Tick)

<img width="903" height="507" alt="image" src="https://github.com/user-attachments/assets/cf799d02-efe0-4647-b954-501a3892e714" />

Milliseconds per Tick (average/95th percentile) have been added to performance metrics on all applicable platforms.

### Players online -tooltip

<img width="418" height="301" alt="image" src="https://github.com/user-attachments/assets/1f288e4f-3bdc-459b-a384-677995689cfb" />

You can now hover over Players online graph to see who was online at specific time (up to 63 players).

### Query page improvements

<img width="1659" height="422" alt="image" src="https://github.com/user-attachments/assets/993ad0b7-4d97-4981-a394-39c168e58f6c" />

  • New filters have been added
  • Played on date
  • Activity group on date
  • Last seen between
  • All 'between' filters now support 'Before' and 'After' by deselecting one of the checkboxes (e.g. played between -> played before)
  • Multi-select components have been replaced with a mobile friendly, text searchable alternative that no longer requires pressing Shift for multi-selection
  • Fixed timezone inconsistency between View time input fields and the graph

### Performance graph improvements

![performance-tab-graph-linking](https://github.com/user-attachments/assets/e45a1e36-9f38-44e7-a30d-e2bc24394d99)

  • Performance graph tabs now sync the graph range-finder so that you can view different data for same time easier
  • Network performance graph colors now vary between servers to be easier to read
  • Fixed extra Series label appearing in HTTP mode on Performance graph (This was the plugin version history series in HTTPS mode)
  • Added Uptime data to Performance as Numbers tables

### Other

  • Kills table can now be searched/sorted/exported and gets up to 25000 entries from the database
<img alt="image" src="https://github.com/user-attachments/assets/4cb0d003-d67e-44f5-99e3-3e5fbb741ae6" />

  • Added support for nickname search in player tables
  • Fixed some night mode text invisibility issues
  • SaolGhra fixed error r.includes is not a function related to Litebans
  • Fixed 'View full query' button in the modal that opens when clicking Server calendar
  • Fixed clicking Server calendar results including players who played on other servers during selected days

## Config

  • Changed default Display_options.Player_head_image_url to https://crafthead.net/helm/${playerUUIDNoDash}/120 (Existing configs need to be manually updated)
  • Jsinco updated 'Data_gathering.Join_addresses_.Filter_out_from_data' to support regex. Note that any existing setting values with . (dot character) will now match any character.
  • Display_options.Theme (default "default") now refers to theme name in the theme editor rather than "What theme.yml to copy values from"
  • Display_options.Night_mode (default false) added

## Data

  • MSPT average and 95th percentile added to plan_tps table
  • Register date 0 (1970-01-01) is now regarded as invalid.
  • Ban status is now updated by an automatic task that cycles through all known players small amount at a time

## Sponge

  • Sponge API 14 is now used, API 8 is no longer supported.

## Fabric

  • Fabric was updated to 1.12.9 by DrexHD (Supports 1.12.11 as well)

## Velocity

  • Velocity was updated to 3.5.0-SNAPSHOT

## Database

### Database move system rewrite

Rewrote the system responsible for copying data from one database to another since previous system would crash under large datasets. The goal of this was to allow copying large SQLite databases to MySQL even on larger servers. The system was tested against a 3 GB MySQL database on a server with 1 GB of allocated memory. (Sidenote: Please don't try to run your server off 3 GB large database.db SQLite file)

  • /plan db move, /plan db backup, /plan db restore use the new system
  • Added /plan db merge command (permission: plan.data.merge) which allows merging SQLite data to existing MySQL. This is useful for those merging multiple servers into a network when all servers had Plan installed on separate SQLite databases.

### Other

  • id column added to old plan_tps tables that did not have it yet via Patch.
  • Lock hints for selections inside transactions to reduce deadlocks
  • Fixed 1020 "Record has changed since last read in table" error on MariaDB 11.8.3
  • Fixed dyplicate key violation related to AllowListBounce
  • Possibly fixed ShutdownDataPreservationTransaction failing on existing join address insert
  • Fixed playtime queries where session started before view window or ended after.

## Locale

  • Dates, time amounts & country names are now translated based on the selected locale. (If specific ones aren't please report it as a bug)
  • HighCharts & Calendar are now translated based on the selected locale
  • TWJohnJohn20116 updated zh_TW locale
  • Shadowhackercz updated CS locale
  • julianvdhogen updated NL locale

## Extensions

  • Fixed ArithmeticException related to LibertyBans when bans were infinite
  • Fixed an issue related to rendering boolean values
  • Updated Jobs extension to support newer version
  • Added Time.Periodical_tasks.Extension_player_data_refresh_every setting (default 15 MINUTES) which only affects plugins that decide to support it.
  • Made gathered PlaceholderAPI data update periodically

## Placeholders

  • Fixed network_players_online always saying 0

## Other

  • Added Typescript support.
  • Vankka updated DependencyDownload to clean up libraries folder of old versions
  • Kopo updated the build system to speed up builds & IDE indexing performance

# 5.6 build 2965

> ⚠ **Someone was impersonating AuroraLS3 on Modrinth, if you have previously downloaded versions from this project, you should take appropriate precautions to protect your server from potential malware** ⚠
>
> The Modrinth team was swift once this was brought to my and their attention, and removed the impersonator as well as the project, I appreciate the person who contacted me and content moderator who resolved the matter.
>
> This is a reupload of the project by the original author. Original release notes below.

This build has a second hotfix for SQLite performance regression since it was reverted to wrong version that still had the regression.
Please see https://github.com/plan-player-analytics/Plan/releases/tag/5.6.2959 for change log of the previous version.

# Change log

  • Reverted SQLite driver to version 3.42.0.1 due to performance regression (Thanks to Vankka for pointing out my mistake)

# 5.6 build 2965

> ⚠ **Someone was impersonating AuroraLS3 on Modrinth, if you have previously downloaded versions from this project, you should take appropriate precautions to protect your server from potential malware** ⚠
>
> The Modrinth team was swift once this was brought to my and their attention, and removed the impersonator as well as the project, I appreciate the person who contacted me and content moderator who resolved the matter.
>
> This is a reupload of the project by the original author. Original release notes below.

This build has a second hotfix for SQLite performance regression since it was reverted to wrong version that still had the regression.
Please see https://github.com/plan-player-analytics/Plan/releases/tag/5.6.2959 for change log of the previous version.

# Change log

  • Reverted SQLite driver to version 3.42.0.1 due to performance regression (Thanks to Vankka for pointing out my mistake)

Plan | Player Analytics Icon
Download Plan | Player Analytics
Select game version
Select platform