There is no need for fpt access for servers as logs are directly imported to a mysql database via the server modules.
Basic Idea:
The idea is to have an instance of the server module in the main directory of your unrealtouranament server(s) 1 directory deep (e.g C:/UnrealTournament/NodeUTstatsServer/).
These modules will parse logs and send the data to a database that the website module connects to, there is no limit of how many server modules can be connected to a website module.
You could have 1 server module connected to 1 website module or have 20 servers connected to multiple website modules.
New Build Released: https://drive.google.com/file/d/1AdcpMW ... sp=sharing
REQUIRES NEW DATABASE INSTALL
Change log:
- Build 9d release notes(09/12/19)
- Added best multi kill for each player to match pages.
- Added best killing spree for each player to match pages.
- Build 9c release notes(09/12/19)
- Added flag returns table to ctf matches.
- Build 9B release notes(07/12/19):
- Fixed special events not being counted.
- Build 9 release notes(07/12/19):
- Moved database install to the website module, thanks to ue for pointing how stupid that was. You now have to run "node install" for both modules to install the database(website module), and directories(server module).
- Changed time strings to my new EpochToString module, will now display years - weeks - days - minutes - seconds, it will also not display just 1 day, it will display 1 day and 32 seconds ect.
- Added tool to the admin area that creates thumbnails of all images current stored on server.
- Added bulk image upload to admin area, this can be used to easily upload map screenshot packs(all files are converted and resized to 1920x1080).
- Added single image file upload form next to each missing map name in admin panel, the image name is automatically changed to match the current selected map, and file type is converted to a jpg image.
- Added config options to hide navigation options, Bunnytrack tab is now hidden by default. You can find these in config.js by the bNavDisplay<type>: true/false, restart is required for there settings to take effect.
- Added face image upload in admin area, name is automatically set.
- Changed how monster images are displayed, each different monster needs it's own file now.
- Added monster image upload to admin area.
- Fixed error caused by no frag data in ut server query.
- Added option to merge players to admin area.
- Added option to rename players to admin area.
- Added option to delete players to admin area.
- Gametype class is now saved to database from each match, this should help badly named gametypes to be imported and rendered correctly.
- Fixed CTF events not being loaded in match page if the gametype has a custom name.
- Added ACE support, now ACE logs and screenshots will be imported to the database.
- Added alternative database install script, this can be used if your mysql user doesn't have permission to create databases.
- Fixed empty server query box displaying on home page if no servers are set to be queried.
- Added ACE kick log search to admin area.
- Added basic site analytics to admin area.
- Changed dm scoreboard if the gametype is battle royal.
- Updated the kills match up data on match reports to fit better and bee easier to read.
- Fixed missing mysql queries for installer.
- Fixed weapon stats importing, weapon names are correctly imported now.
- Fixed player profile best multi kill being 1 more than it should be.
- Added option to admin area that allows admin to choose what gametypes are displayed on the rankings page.
- Fixed green and yellow teams being displayed in the team kill graphs even if they were not in the match.
- Added option to admin area that allows admin to choose what record types to display.
- Fixed playtime record not being displayed on the records page.
- Fixed players being on wrong team on match screenshots.
- Added time and efficiency to players on smart ctf scoreboard.
- Fixed duplicate weapon stats data for reconnected players in matches.
- Fixed kills being wrong in matches.
- Fixed weapon totals not being displayed on player pages.
- Added total accuracy stat to player frag performance bar.
- Map images on many parts of the site will now be thumbnail size instead of fullsize when available.
Note: Admin control panel is very basic at the moment with basic search and match delete.
Once you have installed everything you should see the website running at port 1337 unless changed (www.example.com:1337), if you can't access it from outside the server you have to port forward the port number.
Supported gametypes:
- Deathmatch
- Team Deathmatch
- Capture the Flag
- Domination
- Last man standing
- Bunnytrack
- Monsterhunt
- Siege (basic support)
- Coop
Nexgen Stats viewer support added
From version beta 8 there is now support for nexgen stats viewer by using the ulr example.com:1337/nexgenstats
Map screenshot packs
Place the image files in /public/files/maps on the website module.
- Default Deathmatch maps
Possible problems:
- Some custom monsterhunt gametypes may fail to import.
- .tmp files sometimes show errors while importing but are moved successfully.
Github
- Node UTStats Server module (this will be placed in your unreal tournament server directory, there is no limit of how many of these can be connected to a website module)
- Node UTStats Website module (you can use one installation for many servers or have separate instances for different servers )
Change log:
Readme:- Build 9 release notes(07/12/19):
- Moved database install to the website module, thanks to ue for pointing how stupid that was. You now have to run "node install" for both modules to install the database(website module), and directories(server module).
- Changed time strings to my new EpochToString module, will now display years - weeks - days - minutes - seconds, it will also not display just 1 day, it will display 1 day and 32 seconds ect.
- Added tool to the admin area that creates thumbnails of all images current stored on server.
- Added bulk image upload to admin area, this can be used to easily upload map screenshot packs(all files are converted and resized to 1920x1080).
- Added single image file upload form next to each missing map name in admin panel, the image name is automatically changed to match the current selected map, and file type is converted to a jpg image.
- Added config options to hide navigation options, Bunnytrack tab is now hidden by default. You can find these in config.js by the bNavDisplay<type>: true/false, restart is required for there settings to take effect.
- Added face image upload in admin area, name is automatically set.
- Changed how monster images are displayed, each different monster needs it's own file now.
- Added monster image upload to admin area.
- Fixed error caused by no frag data in ut server query.
- Added option to merge players to admin area.
- Added option to rename players to admin area.
- Added option to delete players to admin area.
- Gametype class is now saved to database from each match, this should help badly named gametypes to be imported and rendered correctly.
- Fixed CTF events not being loaded in match page if the gametype has a custom name.
- Added ACE support, now ACE logs and screenshots will be imported to the database.
- Added alternative database install script, this can be used if your mysql user doesn't have permission to create databases.
- Fixed empty server query box displaying on home page if no servers are set to be queried.
- Added ACE kick log search to admin area.
- Added basic site analytics to admin area.
- Changed dm scoreboard if the gametype is battle royal.
- Updated the kills match up data on match reports to fit better and bee easier to read.
- Fixed missing mysql queries for installer.
- Fixed weapon stats importing, weapon names are correctly imported now.
- Fixed player profile best multi kill being 1 more than it should be.
- Added option to admin area that allows admin to choose what gametypes are displayed on the rankings page.
- Fixed green and yellow teams being displayed in the team kill graphs even if they were not in the match.
- Added option to admin area that allows admin to choose what record types to display.
- Fixed playtime record not being displayed on the records page.
- Fixed players being on wrong team on match screenshots.
- Added time and efficiency to players on smart ctf scoreboard.
- Fixed duplicate weapon stats data for reconnected players in matches.
- Fixed kills being wrong in matches.
- Fixed weapon totals not being displayed on player pages.
- Added total accuracy stat to player frag performance bar.
- Map images on many parts of the site will now be thumbnail size instead of fullsize when available.
- Build 8 release notes(10/11/19):
- Added Nexgen Stats Viewer support.
- Made the mutator log a random face texture if PlayerReplicationInfo.TalkTexture == None
- Build 7c release notes(09/11/19):
- Fixed installer script.
- Build 7b release notes(08/11/19):
- Fixed logic error for inserting kills into the database.
- Build 7 release notes(08/11/19):
- Fixed broken flag image links on rankings, records, and match pages.
- Added view image option to admin area for map images.
- Added view image option to admin area for monster images.
- Added face images to admin faces area.
- Added users can now connect directly to a utserver by clicking the server ip link on a server box on the homepage.
- Fixed country flag size on rankings page.
- Fixed country flag size and position on match frag performance area.
- Fixed country flag size and position on match Multi kills and sprees area.
- Fixed country flag size and position on match weapon stats area.
- Fixed country flag size and position on match ranking change area.
- Fixed country flag size and position on match connections area.
- Fixed country flag size and position on match kills match up area.
- Fixed country flag size and position on player search page.
- Fixed country flag size and position on records main page.
- Updated recent match boxes to include the server name (Every page).
- Fixed text overflow on gametype boxes on player pages.
- Updated the style of match pickups.
- Build 6d release notes(06/11/19):
- Fixed broken flag image links on Linux machines.
- Build 6c release notes(05/11/19):
- Fixed match import if killer is empty in log.
- Build 6b release notes(05/11/19):
- Fixed "Can't find package Promise" even when it was installed.
- Fixed crash when no UT Servers are set to be queried.
- Build 6 release notes(04/11/19):
- Added order types to player searches, you can now order by total matches, total time, last seen, and name. This includes ASC and DESC order.
- Fixed searches not returning more that the first page or data for player searches.
- Added more options to map search, you can now search for map name, map title, and map author. You can order the search by map name, map title, map author, total matches, total playtime, last match, and first match in ASC and DESC order.
- Updated style of map search page.
- Updated style of map page.
- Updated style of player search page.
- Updated style of player profile pages.
- Updated the colours for teams throughout the site.
- Added mouse over event for every flag image that displays the country name.
- Fixed client side javascript accessed null on match page.
- Build 5 release notes:
- Fixed crash if a server is added to the query list if the server address is not a valid ip or address (Website).
- Added reimport script, if you upgrade to a new build(that requires a new database) and want to import all previous logs imported, you can
use the command "node reimport" to import all valid logs from ../Logs/imported/
- Build 4 release notes:
- Added player connection events to match pages.
- Added last import time at bottom of home page.
- Build 3 release notes:
- Added UT server queries, you can now specify a number of ut servers you want to query every X minutes.
These will then be displayed on the homepage displaying the map image, current player count, server ip:port, and when the server was last queried.
Servers that use a dynamic dns will still work without problem whenever the server ip changes, and the correct ip:port will be displayed.
- Added a new admin area for managing ut server queries.
- Fixed monster file image status in admin area.
- Added pickups data to match pages, this displays every single weapon, ammo, and powerups for every player.
- Added site hits counter at the bottom of the home page.
- Build 2 release notes
Upgrading from beta build 1:
- The only package that has changed is the website module so there is no need to replace the other packages, or reinstall the databases.
- Added views counter to match pages.
- Added views counter to profile pages.
- Updated the style so data is easier to read.
- Changed the DM scoreboard so it is the same order as in-game.
Original Post:=============================================================================
========================== Node UTStats Beat build 5 ========================
========================= Created By Scott Adkin 2019 =======================
=============================================================================
=============================================================================
============================== Requirements =================================
=============================================================================
- Windows or Linux system.
- Node.js
Download and install from here https://nodejs.org/en/ choose the LTS(long term support) package.
- MYSQL
Download and install from here https://dev.mysql.com/downloads/
- UTStats Mutator
Download and install from here http://ut-files.com/index.php?dir=Stats ... eta428.zip
Skip the website install as it's not needed.
Each package has it's own individual readme included.
=============================================================================
================================= About =====================================
=============================================================================
Node UTStats is a full remake of the old utstats system using the same UTStats mutators, coded in node.js and using updated mysql compared to the original.
There is no need for fpt access for servers as logs are directly imported to a mysql database via the server modules.
Basic Idea:
The idea is to have an instance of the server module in the main directory of your unrealtouranament server(s) 1 directory deep (e.g C:/UnrealTournament/NodeUTstatsServer/).
These modules will parse logs and send the data to a database that the website module connects to, there is no limit of how many server modules can be connected to a website module.
You could have 1 server module connected to 1 website module or have 20 servers connected to multiple website modules.
Your unreal tournament server must be running the UTStats server actors for the minimum support, the NodeUTStats is optional, but will log more data(spawnkills, monsterhunt kills, just to name a few) then the utstats server actors.
============================================================================
========================= Thanks to =========================================
============================================================================
The original UTStats developers zazel, AnthraX and toa.
Main tester esnesi.
Server module:
This will handle all the log parsing, database updates, file sorting/managament. Basically the backend of the system.
The idea is you can have this running on multiple servers, that connect to the website module. Note: This methods will not use ftp.
Website module:
The website the user can interact with that all connected servers send their data to, will include admin control panel.
Would this just be unnecessary, or would it be more convenient?
Notes of what has been done so far:
Log Importer
- Scans the logs directory for .log files, ignoring .tmp files(I can make an options that will allow the admin to import these files, but advanced stats for stats_player events won't be there).
- NUTStats keeps track of all imported files, if the file has already been imported it will be ignored to prevent duplicates.
TODO:
- Let the admin choose what happens to compiled logs, this could be deleting, moving, compressing and moving.