JarheadHME-LogLibrary icon

LogLibrary

A Library for all your logs

Last updated 2 months ago
Total downloads 1468
Total rating 1 
Categories Client Mods
Dependency string JarheadHME-LogLibrary-1.1.2
Dependants 3 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_GTFO-3.2.1 icon
BepInEx-BepInExPack_GTFO

BepInEx pack for GTFO. Preconfigured and includes Unity Base DLLs.

Preferred version: 3.2.1
Panthr75-CustomMenuBarButtons-0.1.1 icon
Panthr75-CustomMenuBarButtons

API for Plugin Devs to add buttons to the top menu bar

Preferred version: 0.1.1

README

View in-game logs without needing to visit their terminal!

This mod adds another button along the bar at the top, called "Library", which allows you to reread the logs you've gotten. They're separated by Rundown, and by Expedition. You can also play the attached audio file if it has one, and can adjust the dialog volume if you'd like it to be louder or quieter.

This tracks the logs you've gotten for the D-Lock Block Decipherer achievement, so you can also use it to get an idea of where the logs you've missed are.

It will also separate rather long logs (the specific requirement is >200 line breaks) into different pages (though I believe the only log in vanilla to make use of this is 000-000-000 in R2B2)

Supports Modded (if set up by rundown dev)

  • If you are playing a modded rundown, and the rundown developer has included the proper file (read below), then this will track which logs you've gotten and save them to a file so that it persists between game startups (a la LocalProgression).

Special Thanks

  • randomuserhi: was a massive homie and helped me with a significant amount of stuff, and I really don't think I would've managed to make certain parts work without his help :)
  • Flaff: gave me code to create a new page and saved me a ton of headache trying to even get this started, and also made CustomMenuBarButtons
  • Andocas: Provided the vanilla log information on their website -> https://andocas.com/gtfo/log-tracker/

For Rundown Devs: How to set up your log files

Firstly, this specifically uses TextDB ids to track when you've gotten them, so if you placed your log contents directly into LevelLayout, then this more than likely won't work well (getting the ids you need and them staying consistent mainly), so you'll need to migrate to those.

Secondly, you need to make a new folder and .json file in your rundown's Custom folder, as such: plugins/YourRundown/Custom/LogLibrary/Logs.json

Then, format Logs.json following this template:

{
    "Name": "FileName", // Replace this with whatever the file to save your logs progress should be. It should be unique, so I'd recommend using your mod's name
    // If left blank or unspecified, a warning will go off in the BepInEx console and will default to `UNSET`
    "HideUngotten": false, // This, when set to true, makes it function a little more like a "library". If you used it before it'll function like that where ungotten logs with simply display as a bunch of question marks. When set to false, it'll function more like a log tracker where it'll show the log name and zone anyway.
    "RundownLogs": [
        {
            "SectionName": "Button Text", // This will display on the buttons to show the log from this section, for ex. if you have different campaigns
            "Expeditions": [
                {
                    "expedition": "A1", // This is simply the header text for the different sections in the log select windows
                    "logs": [
                        {
                            "filename": "File1.log", // Doesn't need to be accurate, but I recommend it be for clarity. Also shown in the reader window header
                            "id": 123456, // The TextDataBlock entry for the text in this log. This is used to get the text to show
                            "zone": "Zone 10", // Zone information to be shown in the library to help differentiate where you got them, can
                            // The format shown in the window is `{filename} - Found in {zone}`, so feel free to make it say whatever you want
                            "audio": 123456 // The audio event id for the attached audio file. Use the same number you use in the terminal log data in LevelLayout
                        },
                        {
                            "filename": "123-ABC-456",
                            "id": 222222,
                            "zone": "Zone 123"
                        } // audio can be omitted, and will be assumed to be 0
                    ]
                },
                {
                    "expedition": "A2",
                    "logs": [
                        {
                            "filename": "E2B-5WIK-998",
                            "id": 691923721,
                            "zone": "Zone 53"
                        }
                    ]
                }
            ]
        },
        {
            "SectionName": "Second Button",
            "Expeditions": [
                {
                    "expedition": "B1",
                    "logs": [
                        {
                            "filename": "ABC-456-DEF",
                            "id": 44444444,
                            "zone": "Zone 7 (Alt. Dimension)" // Again, you can put whatever you really want here, so if you'd like extra info
                            // to jog memory on where they got it, feel free
                        },
                        {
                            "filename": "BAD-GTFO-LOG",
                            "id": 1337,
                            "zone": "Desert"
                        }
                    ]
                },
                {
                    "expedition": "Finale",
                    "logs": [
                        {
                            "filename": "Congrats",
                            "id": 10101010101,
                            "zone": "The first zone"
                        }
                    ]
                }
            ],
        }
    ],
    "Dev": false // A test field for if you want to see what your library looks like completely filled.
    // Basically just skips over whether or not you got the log, and disables saving the log as gotten
}

The progress files are saved in %AppData%/GTFO-Modding/LogLibrary