Skip to content

Free Hit Counter / Death Counter that is running in the background, so you can focus on your stream. No need to keep any windows open for a window capture any more. Initially designed for Dark Souls and similar games but supports any game.

License

Notifications You must be signed in to change notification settings

leftyJ/HitCounterManager

 
 

Repository files navigation

HitCounterManager - A Dark Souls inspired Hit Counter

Free Hit Counter that is running in the background, so you can focus on your stream.
No need to keep any windows open for a window capture any more.
Initially designed for Dark Souls and similar games but supports any game.
Just add the local HTML file to you broadcasting software and the setup is done.
Works completely offline, no account or login required.

To see some screenshots of this application go to the Wiki pages.
To see how to use the application watch the Tutorial on YouTube.

Preview

Releases GitHub Releases GitHub

Key-Features

  • Offline application
  • No window capture needed for stream integration
  • Hot key support for seamless use ingame (Windows only)
  • Easy to use profile management
  • On the fly configurable design

Features in detail

  • Configurable keyboard hot keys can be used while running fullscreen games (like Dark Souls III):
    • Increase/Decrease hit count of the current split (boss hits and hits on the way separately)
    • Go to next/previous split
    • Reset the run (sets all hit counts to 0 and selects first split)
    • Save the run as your PB (personal best)
  • One single save file: HitCounterManagerSave.xml
    • Holds all your settings, profiles and is designed to work in newer/upcoming versions, too. Save and restore this file at any time.
  • Create profiles for each challenge or game
    • Keeps the current progress and your personal bests saved
    • Keep track of each profile how many runs/attempts your already started
    • Multiple profiles can be created and switched very easily (e.g. multiple games for Dark Souls trilogy runs)
      • Switching to other profiles will remember the hit counts of the currently selected profile
  • Combine profiles in a succession, e.g. for Dark Souls Trilogy (means: take over hits from last run)
  • Keep track of furthest progress in the current session

Pre-defined profiles

  • Bloodborne + The old hunters
  • Dark Souls 1 Prepare To Die Edition
  • Dark Souls 2
  • Dark Souls 3 + Ashes of Ariandel + The Ringed City
  • Demon's Souls
  • Salt and Sanctuary
  • Sekiro
  • The Surge + A walk in the park

Design configurations

The appearance of all designs can be modified via GUI on the fly:

Updates run with an interval of 1.5 seconds to spare performance
Previews can be found at the Wiki pages.

  • Purpose

    • Act as split counter (traditional no hit runs)
    • Death counter (Very basic death counter)
    • Checklist (Simple boss or split checklist)
  • Choose severity of hits (ends up in differnt split colors)

    • Any hit counts as a critical hit
    • Boss hits are critical, hits on the way count normal
    • Splits having hits less than PB count normal, otherwise critically
  • Appearance

    • Show/Hide amount of runs that has already been started
    • Show/Hide the headline and/or footer
    • Show/Hide the session progress icon
    • Show/Hide progress bar
    • Show the hits separately or as a combination of boss hits and hits on the way
    • Show numbers or images to represent hits
    • Show/Hide the personal best
  • Readability (e.g. for lower bitrates or mobile devices)

    • Limit the visible splits when you have lots of splits
    • Enable/Disable transparency
    • Enable/Disable colored split names
    • Enable/Disable superscripted PB sum
  • Custom design

    • Switch to a different font
    • Choose an alternative CSS file (pink colored alternative available)

Designs animation

Get the software

All available releases can be found at the Releases page on GitHub.

Installation

Systemrequirements

  • OS: Windows Vista, Windows Server 2003 or newer (32/64 bit)
  • OS: Any (32/64 bit)
    • Portable version (ZIP)
      • Mono (tested with 5.14.0)
        Run the application in the application's directory with mono HitCounterManager.exe
        Note: The Non-Windows / Mono version does not support global hot keys

Designs / Fonts

A specific font can be selected at the appearance dialog in two ways:

  • The font is already installed locally on the system
    • (Not required but recommended) Clear the field for the font URL as no external font must be loaded
    • Enter your font family name of choice at the font name field and hit Apply

    Example: sans-serif or courier

  • The font is not installed locally and must be loaded from an external @font-face ressource
    • Enter the URL to the ressource into the font URL field
    • Enter the matching font family name at the font name field and hit Apply

    Example: URL https://fonts.googleapis.com/css?family=Fontdiner+Swanky and name Fontdiner Swanky

To find suitable fonts I can recommend Google's font collection: https://fonts.google.com.
Search for one of your liking and see the embedded font and/or CSS instruction as you can simply copy URL and name from there into the application. For the previous example the instructions looked like this (the part to copy in bold):

URL from Embed Font instructions:
<link href="https://fonts.googleapis.com/css?family=Fontdiner+Swanky" rel="stylesheet">
Name from CSS instructions:
font-family: 'Fontdiner Swanky', cursive;

Setting up Broadcasting software

Streamlabs OBS (SLOBS)

  • Add a Browser Source to your scene
  • Check the Local file checkbox
  • Insert the HTML's filepath of a design file into the Local File field.

Example: C:\MyHitCounter\Designs\HitCounterNumeric.html
Note: It was tested with some beta versions up to 0.11.1, so the instruction may change in newer versions.

OBS Studio

  • Add a Browser Source to your scene
  • Insert the HTML's filepath of a design file into the URL field including this prefix that allows access to local files: http://absolute/

Example: http://absolute/C:/MyHitCounter/Designs/HitCounterNumeric.html

Open Broadcaster Software (OBS, not OBS Studio!)

  • Add a CLR Browser to your scene
  • The opacity can be set to 100% because the background will be rendered transparent, so no color-keying is required.
  • Insert the HTML's filepath of a design file into the URL field.

Example: C:\MyHitCounter\Designs\HitCounterNumeric.html

  • If you experience troubles with the rendering of the HTML file (flickering or misplacement), try removing the CSS overrides of the CLR Brower instance.
  • When no data is displayed, there could be a problem with the cross-domain security settings. This is because the HTMLs are rendered via file:// protocol instead of http://, so maybe you need to change some deeper settings of the CLR browser under OBS -> Settings -> Browser -> Instance -> ...
    • FileAccessFromFilesUrls (Set to Enabled)
    • UniversialAccessFromFilesUrls (Set to Enabled, but should also work when disabled)
    • WebSecurity (Set to Disabled, but should also work when enabled)

Modders and developers

Using standalone web browser instead of broadcasting software

  • When no data is displayed, there could be a problem with cross-domain security settings that can be avoided by allowing acces to local files in general:
    • Chrome
      • Start with command line option --allow-file-access-from-files

      Example: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files

    • Firefox
      • Change the security policy in the browser settings about:config -> security.fileuri.strict_origin_policy -> false

      Note: This is a global settings, means you should enable this only for offline/trusted websites!

    • Internet Explorer 11
      • Accepting the initially blocked execution of the script should be sufficient
    • Edge
      • No issues here so far

Changing layout and design

You can modify or create new custom designs. Simply modify or create a new HTML, CSS or Javascript files based on any of the pre-delivered designs. For example, the style like background color, font color or sizes can be easily modified in the CSS files.
You can modify the HitCounter.template which comes with the installation or you can create an own template file to set custom settings for your designs at a single location.

The application is using JavaScript syntax when writing data into the output file. Therefore the template has to have a line with the text HITCOUNTER_LIST_START which is the starting mark. The mark with all further lines will be replaced with the JavaScript equivalent of the application's current data. This replacement is done until the HITCOUNTER_LIST_END text mark is reached.
Eventually it means you are 100% free in the design of your hit counter.

Anything is missing, something is annoying/can be improved or you just found a bug?

Message me via GitHub / e-mail or simply open an issue and I will try to help you out. Alternatively you can also send me a whipser on Twitch: GeneralGunrider

Special thanks

I would never have created this tool without the inspiration by watching the awesome 0 hit and no death runners...
Thanks to (in alphabetical order):

Praise the sun! ☀️ . . . 🔥 . . . 🏃 💨

About

Free Hit Counter / Death Counter that is running in the background, so you can focus on your stream. No need to keep any windows open for a window capture any more. Initially designed for Dark Souls and similar games but supports any game.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 73.0%
  • HTML 11.4%
  • JavaScript 6.0%
  • CSS 5.6%
  • Shell 2.3%
  • Batchfile 1.7%