the-hideout / TarkovMonitor

Monitor Tarkov log files to help track progress, queues, and groups
GNU General Public License v3.0
91 stars 16 forks source link

Manually set EFT install location? #59

Closed asandhu3 closed 6 months ago

asandhu3 commented 7 months ago

Would it be possible to add a config to manually point Monitor to my Tarkov install? Attempting to get this working with SPT but Monitor seems to automatically find the live Tarkov install using the registry with no ability to override.

Razzmatazzz commented 7 months ago

It would be possible, but I don't know if SPT writes logs in the same way the live game does. If not, then it wouldn't work anyway. Do you happen to have logs from a SPT play session wherein you completed some tasks?

asandhu3 commented 7 months ago

I have an instance I've played on, yes. At first glance the logs do exist and seem to be named the same as the live ones. Do the logs overwrite themselves over time? If so, I can look through and see if any contain task completion entries, what should I be looking for, and in which log?

Razzmatazzz commented 7 months ago

For how the live game works at least, each time you start the game it creates a new log folder named according to the time the game was started (UTC). Then all the logs for that play session are written in that folder. Logs related to quest completion are in the notifications log.

Razzmatazzz commented 7 months ago

You'd be looking for something like this in the notification log:

2024-02-05 19:03:08.398 -06:00|Info|push-notifications|Got notification | ChatMessageReceived
{
  "type": "new_message",
  "eventId": "65c1854c360703c73104cd8c",
  "dialogId": "5a7c2eca46aef81a7ca2145d",
  "message": {
    "_id": "65c1854c9ebb02cc160de602",
    "uid": "5a7c2eca46aef81a7ca2145d",
    "type": 10,
    "dt": 1707181388,
    "text": "quest started",
    "templateId": "5ac346a886f7744e1b083d67 description",
    "hasRewards": false,
    "maxStorageTime": 604800
  }
}
asandhu3 commented 7 months ago

I do see very similar entries, but not an exact quest_started entry, perhaps because I didn't start a quest last time I played, here's an example entry:

2024-01-05 10:21:24.808 -07:00|Info|push-notifications|Got notification | ChatMessageReceived
{
  "type": "new_message",
  "eventId": "11da3bfbaeeab8a3e58e3fc6",
  "dialogId": "5a7c2eca46aef81a7ca2145d",
  "message": {
    "_id": "11da3bfbaeeab8a3e58e3fc6",
    "uid": "5a7c2eca46aef81a7ca2145d",
    "type": 10,
    "dt": 1704475285,
    "text": "",
    "templateId": "625d6ffaf7308432be1d44c5 description",
    "hasRewards": true,
    "rewardCollected": false,
    "items": {
      "stash": "99e788c08e094c777a022590",
      "data": [
        {
          "_id": "5b133d1f491f5dc690bd8265",
          "_tpl": "63a0b2eabea67a6d93009e52",
          "upd": {
            "StackObjectsCount": 1,
            "SpawnedInSession": true
          },
          "parentId": "99e788c08e094c777a022590",
          "slotId": "main"
        },
        {
          "_id": "fdcd9a623c2b72d7407a0cdc",
          "_tpl": "63a0b2eabea67a6d93009e52",
          "upd": {
            "StackObjectsCount": 1,
            "SpawnedInSession": true
          },
          "parentId": "99e788c08e094c777a022590",
          "slotId": "main"
        },
        {
          "_id": "e9da0db0fea8ec60c88526f7",
          "_tpl": "63a0b2eabea67a6d93009e52",
          "upd": {
            "StackObjectsCount": 1,
            "SpawnedInSession": true
          },
          "parentId": "99e788c08e094c777a022590",
          "slotId": "main"
        },
        {
          "_id": "8ee9d8fe58dd2da8efef4d48",
          "_tpl": "63a0b2eabea67a6d93009e52",
          "upd": {
            "StackObjectsCount": 1,
            "SpawnedInSession": true
          },
          "parentId": "99e788c08e094c777a022590",
          "slotId": "main"
        }
      ]
    },
    "maxStorageTime": 172800
  }
}

One difference in SPT's implementation is that it only stores a single folder in Logs/ for the last time you've played. Searched through their discord and a dev confirms the game clears the Logs/ folder on every boot. I assume this would break your "Read Past Logs" functionality but perhaps that could be a caveat of using this with SPT, that you'd only get the realtime monitoring?

Razzmatazzz commented 7 months ago

That's the quest start message for Network Provider - Part 2, so it does look like the same types of logs are created. Making the logs folder customizable is doable, but you'd still run into some quest ordering problems. The Tarkov.dev API uses SPT's quests.json as the starting point for its quests/tasks data. But we also make some tweaks to the quests to make them accurate to the live game, according to reports we receive from players. Since Tarkov Monitor uses the Tarkov.dev API for quests, you would probably have a different quest progression in SPT than Tarkov Tracker would be expecting.

asandhu3 commented 7 months ago

Ah, I'm assuming you mean if BSG makes changes to quests on live and the SPT instance being tracked doesn't have those changes yet (either because of user not updating or no updated SPT version available yet) then the ordering would be out of sync since tarkov.dev would be up to date automatically.

I suppose that's unavoidable unless there's logic in place to detect an SPT instance and use it's quests.json as the single source of truth. But I suppose the web UI would always use tarkov.dev anyways...