Giter VIP home page Giter VIP logo

gbfr-logs's Introduction

gbfr-logs

GitHub Release GitHub Downloads Discord GitHub License

Buy Me A Coffee

Overlay DPS parser/meter for Granblue Fantasy: Relink, based initially on the reverse engineering work from naoouo/GBFR-ACT.

How to install

  • Go to Releases
  • Download the latest .msi installer and run it.
  • Open GBFR Logs after the game is already running.

Screenshots

DPS Overlay

Meter

Skill Tracking (with skill grouping)

Meter

Historical Logs (with filtering)

Logs

DPS Charts

Charts

SBA Tracking

SBA Tracking

Equipment Tracking

Equipment Loadouts

Multi-language Support

Simplified Chinese

Settings / Customization

Settings

Frequently Asked Questions

Q: I closed the meter, but it's still running?

When you close the windows, GBFR Logs continues to run in your task tray in the bottom right of your desktop.

This task tray functionality is meant to give you more options for customizing:

  • This lets you close the logs window, but be able to reopen it again later.
  • You can toggle clickthrough of the overlay as well.

Q: The meter isn't updating or displaying anything.

Try running the program after the game has been launched. Be sure to run the program as admin.

Q: The application is not working / launching.

GBFR Logs uses your built-in Microsoft Edge Webview2 Runtime to run the application. This keeps the app relatively small as we don't have to package in a browser.

However, you may have an out-of-date or missing "Webview2 Runtime":

Q: Is this safe? My antivirus is marking the installation as a virus / malware.

As always, this is up to you to trust GBFR Logs. The program can trigger false positive flags. There are reasons why it can give such alerts:

  • GBFR Logs does code DLL injection into the running game process which can look like a virus-like program.
  • GBFR Logs reads game memory and modifies game code at runtime in order to receive parser data.
  • I recommend adding an exception / whitelisting for the installation folder so that your anti-virus does not delete it while your game is running, but you may not need to do so if you haven't ran into this issue.

See how to add an exclusion to Windows Defender.

Q: How do I update?

Launching the application will automatically check for new updates!

Same as with installing, you can download the latest release and run the installer again and it will update over your old installation.

Q: How do I uninstall?

You can uninstall GBFR Logs the normal way through the Control Panel or by running the uninstall script in the folder where you installed it to. You may also want to remove these folders.

  • %AppData%\gbfr-logs

Q: How do I add/edit my language?

Read src-tauri/lang/README.md for more information on how to add/edit language support!

Q: My issue isn't listed here, or I have a suggestion.

Feel free to create a new GitHub issue or join the Discord server.

For Developers

  • Install nightly Rust (rustup.rs) + Node.js.
  • Install NPM dependencies with npm install
  • npm run tauri dev

Under the hood

This project is split up into a few subprojects:

  • src-hook/ - Library that is injected into the game that broadcasts essential damage events.
  • src-tauri/ - The Tauri Rust backend that communicates with the hooked process and does parsing.
  • protocol/ - Defines the message protocol used by hook + back-end.
  • src/ - The JS front-end used by the Tauri web app

Supporting the Project

GBFR Logs will always be kept free and open-source (MIT). However, if you want to support me directly, you can buy me a coffee! πŸ™‡

Credits

This project would not have been possible without the following folks:

  • nyaoouo/GBFR-ACT for the original reverse engineering work.
  • Harkain for their work on formatting and translating skills to friendly English names.

Disclaimer

Please keep in mind that this tool is meant to improve the experience that Cygames has provided us and is not meant to cause them or anyone other players damage. GBFR Logs modifies your running game client and is not guaranteed to work after game patches, in which case you may experience instability or crashes.

gbfr-logs's People

Contributors

aristocratmc avatar brunolm avatar bvoo avatar false-spring avatar harkains avatar idiotbaka avatar jisamcom avatar ryanbuccellato avatar samsa0562 avatar shimonami avatar skpc9 avatar wkxiaoze avatar xwth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gbfr-logs's Issues

Add compression for log blobs

Logs are saved as raw binary blobs in the SQLite DB, which really is just a raw serialized version of the parser. There should be an intermediary step where the serialized data is compressed by something like zstd before storing.

Issue with Cagliostro's Damage Meter

Cagliostro's damage is showing as lower than it should. I don't know if this is happening with any other character.

Here is the picture of the overlay parser:
image_2024-02-27_184641933

This is the actual parsed damage from dvorak321's parser (forked from nyaoouo):
image_2024-02-27_184901054

Everyone else seems to be accurate except for Cagliostro's.

Dynamically load language files instead of being baked into the executable

Currently, language files are built as part of the executable package. This can make it difficult for contributors to work and improving these translation files as they would have to setup a development environment.

Instead..

  • Move the language files to a folder in the application installation folder, alongside the executable. (/lang)
  • Watch the directory for changes using tauri-plugin-fs-watch
  • Update translation files in real-time to i18next

This will allow any average user to modify the translation files and see their changes in real-time, making it easier for them to contribute changes to the project.

Issue with Ferry's Umlauf damage

-Ferry's Umlauf damage (green boxed) should not be so high, I suspect this is Ferry pets damage
-Ferry's Umlauf damage (green boxed) didn't show up on my other 3 friends gbfr-logs program [only visible on me(the ferry user) gbfr-logs]

Umlauf

Add ability to ignore certain skill

I think that would be great if we had an option to automatically ignore certain skill of our chosing in the parse and dmg calculation (namely Ether Round from Proto Baha)

Opening more than one instance of GBFR Logs doesn't do anything

It's a bit confusing to close all the windows and not realize that GBFR Logs is running in your tray, so when you go to open another instance of GBFR Logs, it doesn't give you any feedback and doesn't show anything. This makes it seem like the app doesn't launch / work.

Instead, when you launch another version of GBFR Logs, it should reopen all windows of the existing running instance.

Would there be an Open Source License?

I'd really like to appreciate the developers of this awesome project and contribute to this project. I just wonder that whether this project will be released under some Open Source Licenses like MIT, Apache or GPL? I think it would be great if this project is under those licenses for more contributors.

Damage charts

Add ability to view damage over time in a chart display.

Add display of task name and boss name

Thanks for your great work!

It would be helpful if the logs show task name and boss name in its ui, such as overlay and dps charts. I always forgot what task I have taken part in after a day or two. Thank you~

hook.dll is not found when using `npm run tauri dev` as described in the readme

The instruction for devs in the readme is great, however when using npm run tauri dev the build fails under windows. It says error could not compile typenum due to previous error, the previous error being a missing hook.dll.

You need to build hook.dll manually and then move it into the src-tauri directory. If there was a way to automate this process using cargo it would be great.

The workaround I use is a batch file for now.

cd src-hook
cargo build
cd ..
copy target\debug\hook.dll src-tauri /Y
npm run tauri dev

Garbled characters appear upon long Chinese nickname

Thanks for your great work!

As the picture shows below, I played as IO and the other three are NPCs. When my nickname lenth is 2, its display is correct(in the later record). However when my nickname lenth is 10, garbled characters appear(in the earlier record).

screenshot1

Skill Name Problem

I just tested the new 0.0.3 version, and I encountered 1 problem.
Some skills were not named correctly (It was for Yodarha in this case).
I'll add a screenshot. Hope this can help you ^^
image

Add stun damage tracking

Track how much stun damage is being applied per dmg event. Only real stun damage dealt, and not while stun bar is locked.

Add translation file for Simplified Chinese Translation

I see there are users want this tool in other languages. For somebody who wants to start the simplified chinese localization file, here is how you can help:

  • Create a new zh-CN.json, look at the format of en.json.

If no one adds this soon, I will also work on pulling some translations from the game files directly.

Party slots are incorrect in mixed Online<> NPC lobbies

With the 0.0.7 release this will be more apparent, but there is an issue with our strategy of "sort the actor ID and use it to determine party order".

This is not always the case in mixed lobbies that contain online + NPC party members. Sometimes, NPC party members can get a smaller actor ID than online players, which messes up our inferred party slot ordering.

image

Hide functionality

Hey ! Thanks for the parse !
I was wondering, would it be possible to get a hide keybind, for when we're menuing ?
For exemple, CTRL + Down arrow, would make it disappear/reappear

Unable to run the installation program

I am a Win10 Home Edition user, every time I try to run the installation program, a window will prompt me that "This app can’t run on your PC". Any possible reasons or solutions given would be appreciated.

Add simplified text output

It would be nice to have a text export format that excluded the skill information. This is useful for capturing a quick overview of the encounter.

This should be an additional option over the existing full text export.

Example format:

Encounter Time: 3m20s
Zeta#4839 - 21,200,335 total damage - 211.1k/s - 44.99%
Eugen#4857 - 18,214,220 total damage - 181.3k/s - 38.65%
Ghandagoza#4821 - 7,706,198 total damage - 77.7k/s - 16.35%

Meter Not Working

Meter isn't updating, logs are not saved as well.

Program runs fine, compared file repository to my working version on another computer, no files are missing.

Steps taken:

  1. Downloaded latest .msi file.
  2. Added exclusion in Windows Defender to ensure no files are quarantined.
  3. Installed GBFR Logs using (1), ensured path is as specified in (2).
  4. Ensured MSFT Edge Runtime WebView2 is installed.
  5. Launch GBFR.
  6. Launch GBFR Logs as Administrator.

And countless loops of restarts and reinstallations.
Unable to pinpoint issue, assistance is appreciated.

System tray menu items should show checkmark when "Always on top" or "Clickthrough" is enabled

This would be helpful to see at a glance what options are enabled or not.

struct AlwaysOnTop(AtomicBool);
#[tauri::command]
fn toggle_always_on_top(window: tauri::Window, state: State<AlwaysOnTop>) {
let always_on_top = &state.0;
let new_state = !always_on_top.load(Ordering::Acquire);
always_on_top.store(new_state, Ordering::Release);
window.set_always_on_top(new_state).unwrap();
}
struct ClickThrough(AtomicBool);
#[tauri::command]
fn toggle_clickthrough(window: tauri::Window, state: State<ClickThrough>) {
let click_through = &state.0;
let new_state = !click_through.load(Ordering::Acquire);
click_through.store(new_state, Ordering::Release);
window.set_ignore_cursor_events(new_state).unwrap();
}

Should be able to get the system tray through window.app_handle().tray_handle(), tray_handle.get_item(id), and then item.set_title

Add german translation

In addition to the other languages please add the JSON for german translation and add it as an option into the app.

exe does not run

μŠ€ν¬λ¦°μƒ·(793)

I tried for several days but failed to run the exe.

GBFR Logs 0.0.9 version.

game is 1.1.2 version.

run as admin.

game is running.

I turned off all Windows Defender and anti-virus software and tried install and run exe.

there is no reaction. nothing happens

I know this is a very vague problem, but I would appreciate any help you can give me.

everyone is enjoying GBFR Logs, but I'm a loser :(

Track SBA gauge + usage

Track how much SBA gauge is gained and track when SBA is consumed.

This is useful to compare between different SBA builds + characters. It will also be nice to see SBA strategies (2/2, 1/1/1/1, etc.).

Add reset button

It would be nice to be able to reset the parser without having to change areas.

Portable version

Would be nice to have a self contained portable version that stores logs inside a single folder with the app

Split out supplementary damage

Right now, supplementary damage is counted as part of the skill it triggered from.

Instead, we should check the flags and determine if the damage event was from supplementary damage to split it out from the skill.

Player ID

show [Guest] instead of [0] or [1], and idk if this is expected
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.