Dalamud plugin to track your loot in FFXIV.
kalilistic / kapture Goto Github PK
View Code? Open in Web Editor NEWTrack your loot.
License: MIT License
Track your loot.
License: MIT License
I need your help to get logs for FR support. If interested, follow the steps below and send me the logs here or on discord.
Sample Message
{"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Recherche de l'objet “ Matéria de la parade stratégique VII”...","MessageParts":["Recherche de l'objet “",""," Matéria de la parade stratégique VII","”..."],"ItemId":25190,"ItemName":"Matéria de la parade stratégique VII","IsHq":false}
I need your help to get logs for JP support. If interested, follow the steps below and send me the logs here or on discord.
Sample Message
{"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Recherche de l'objet “ Matéria de la parade stratégique VII”...","MessageParts":["Recherche de l'objet “",""," Matéria de la parade stratégique VII","”..."],"ItemId":25190,"ItemName":"Matéria de la parade stratégique VII","IsHq":false}
I'm using the custom HTTP end point to run a loot tracker for my static. I decided to try and separate greed rolls vs the assigned ones as we don't count greed towards our loot distribution.
I thought I could determine this via LootEventType or Roll being non-zeor or LootMessageType but all 3 are the same across both loot events. I've settled on parsing the message for "claims" to mean loot master and "obtains" for rolls, but I think they really should be separate LootEventTypes.
Example loot messages below (with player names redacted)
{"Timestamp":1643259383414,"LootMessage":{"XivChatType":4158,"LogKind":62,"LogKindName":"LootNotice","LootMessageType":4158,"LootMessageTypeName":"OtherPlayerObtainLoot","Message":"obtains an Asphodelos hand gear coffer.","MessageParts":["","Ultros obtains an ","","Asphodelos hand gear coffer","."],"ItemId":35737,"ItemName":"Asphodelos Hand Gear Coffer","IsHq":false},"LootEventType":9,"LootEventTypeName":"Obtain","IsLocalPlayer":false,"PlayerName":"","World":"Ultros","PlayerDisplayName":"","Roll":0,"TerritoryTypeId":1007,"ContentId":807,"LootEventId":"c373d358-c020-46ec-8095-ec638e934d4b","ItemName":"Asphodelos Hand Gear Coffer"}
{"Timestamp":1643259328016,"LootMessage":{"XivChatType":4158,"LogKind":62,"LogKindName":"LootNotice","LootMessageType":4158,"LootMessageTypeName":"OtherPlayerObtainLoot","Message":"claims the Asphodelos leg gear coffer.","MessageParts":["","Famfrit claims the ","","Asphodelos leg gear coffer","."],"ItemId":35738,"ItemName":"Asphodelos Leg Gear Coffer","IsHq":false},"LootEventType":9,"LootEventTypeName":"Obtain","IsLocalPlayer":false,"PlayerName":"","World":"Famfrit","PlayerDisplayName":"","Roll":0,"TerritoryTypeId":1007,"ContentId":807,"LootEventId":"502217bd-c2d1-4573-96f3-e05ed73c3b95","ItemName":"Asphodelos Leg Gear Coffer"}
Are there any plans to implement the function to send information to the server via http, which was available in the ACT version?
I used to use this feature a lot.
Report: When reflecting in Discord, it shows even the items I have used. Please tell me how to make it only show furnace items. By the way, "Use" is not checked in "Events" tab
It would be nice to have an additional column in the logger that tells the quantity of an item obtained. Which is a prereq for my next request: tracking the amount of gil obtained.
A couple things I like to track is loot from treasure maps and bunny fates in Eureka. Adding gil to the logger will help in keeping track of how much profit is made from these methods.
based on the list in the gist
----------------------------------------------------------------
To add a language, I need logs for these scenarios:
----------------------------------------------------------------
1. You search for an item
2. Item added to loot list in dungeon
3. Unable to obain item (drops to floor in dungeon)
4. You purchase an item from market board
5. You discard / throw away item
6. You obtain item from deynsthesis
7. You retrieve materia from gear
8. You fail to retrieve materia from gear
9. You obtain loot in dungeon
10. You cast lot on loot
11. You roll need on loot
12. You roll greed on loot
13. Other player obtains loot in dungeon
14. Other player casts lot on loot
15. Other player rolls need on loot
16. Other player rolls greed on loot
17. Other player rolls greed on loot (from different world)
18. You desynthesize an item
19. Orchestration added to your list
20. You sell an item to npc
21. You use an item
22. You obtain an item from coffer
23. Other player uses an item
24. You meld materia
25. You extract materia
26. You quicksynth
27. You gather item (btn or min)
28. You catch fish
29. You craft an item
30. Other player crafts an item
here the german translations (if something does not match, please let me know and i can recapture them)
1. [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Der Salzwasser-Universalköder wird gesucht.","MessageParts":["Der ",""," Salzwasser-Universalköder"," wird gesucht."],"ItemId":27592,"ItemName":"Salzwasser-Universalköder","IsHq":false}
2. [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Ihr habt Beutegut (eine geplünderte Schutzbrille) erhalten.","MessageParts":["Ihr habt Beutegut (eine ",""," geplünderte Schutzbrille",") erhalten."],"ItemId":2683,"ItemName":"Geplünderte Schutzbrille","IsHq":false}
3. [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Du konntest den geplünderten Bindegürtel nicht erhalten.","MessageParts":["Du konntest den ",""," geplünderten Bindegürtel"," nicht erhalten."],"ItemId":3977,"ItemName":"Geplünderter Bindegürtel","IsHq":false}
4. [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Du hast eine Notenrolle von „Below“ gekauft.","MessageParts":["Du hast eine ",""," Notenrolle von „Below“"," gekauft."],"ItemId":33130,"ItemName":"Notenrolle von „Below“","IsHq":false}
5. [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Du wirfst eine abgenutzte Notenrolle von „Riptide“ weg.","MessageParts":["Du wirfst eine ",""," abgenutzte Notenrolle von „Riptide“"," weg."],"ItemId":14275,"ItemName":"Abgenutzte Notenrolle von „Riptide“","IsHq":false}
6. [Kapture] {"XivChatType":2105,"LogKind":57,"LogKindName":"System","LootMessageType":2105,"LootMessageTypeName":"AddDesynthSell","Message":"Du hast ein Paar Akolythen-Trippen verwertet!","MessageParts":["Du hast ein ",""," Paar Akolythen-Trippen"," verwertet!"],"ItemId":3787,"ItemName":"Akolythen-Trippen","IsHq":false}
7. [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Du hast die Fechtkunst-Materia VIII zurückgewonnen!","MessageParts":["Du hast die ",""," Fechtkunst-Materia VIII"," zurückgewonnen!"],"ItemId":26731,"ItemName":"Fechtkunst-Materia VIII","IsHq":false}
8. [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Die Fechtkunst-Materia VIII zerfällt zu wertlosem Staub...","MessageParts":["Die ",""," Fechtkunst-Materia VIII"," zerfällt zu wertlosem Staub","..."],"ItemId":26731,"ItemName":"Fechtkunst-Materia VIII","IsHq":false}
9. [Kapture] {"XivChatType":2110,"LogKind":62,"LogKindName":"LootNotice","LootMessageType":2110,"LootMessageTypeName":"LocalPlayerObtainLoot","Message":"Du hast eine geplünderte Schutzbrille erhalten.","MessageParts":["Du hast eine ",""," geplünderte Schutzbrille"," erhalten."],"ItemId":2683,"ItemName":"Geplünderte Schutzbrille","IsHq":false}
10. [Kapture] {"XivChatType":2113,"LogKind":65,"LogKindName":"LootRoll","LootMessageType":2113,"LootMessageTypeName":"LocalPlayerRoll","Message":"Du würfelst um das Paar geplünderte Ohrringe.","MessageParts":["Du würfelst um das ",""," Paar geplünderte Ohrringe","."],"ItemId":4207,"ItemName":"Geplünderte Ohrringe","IsHq":false}
11. [Kapture] {"XivChatType":2113,"LogKind":65,"LogKindName":"LootRoll","LootMessageType":2113,"LootMessageTypeName":"LocalPlayerRoll","Message":"Du würfelst um das Paar Akolythen-Chausses.","MessageParts":["Du würfelst um das ",""," Paar Akolythen-Chausses","."],"ItemId":3330,"ItemName":"Akolythen-Chausses","IsHq":false}
12. [Kapture] {"XivChatType":2113,"LogKind":65,"LogKindName":"LootRoll","LootMessageType":2113,"LootMessageTypeName":"LocalPlayerRoll","Message":"Du würfelst um die geplünderte Schutzbrille.","MessageParts":["Du würfelst um die ",""," geplünderte Schutzbrille","."],"ItemId":2683,"ItemName":"Geplünderte Schutzbrille","IsHq":false}
13. [Kapture] {"XivChatType":4158,"LogKind":62,"LogKindName":"LootNotice","LootMessageType":4158,"LootMessageTypeName":"OtherPlayerObtainLoot","Message":"Hans Yolo hat ein Paar Vollstrecker-Leggins erhalten.","MessageParts":["Hans Yolo"," hat ein ",""," Paar Vollstrecker-Leggins"," erhalten."],"ItemId":3786,"ItemName":"Vollstrecker-Leggins","IsHq":false}
14. [Kapture] {"XivChatType":4161,"LogKind":65,"LogKindName":"LootRoll","LootMessageType":4161,"LootMessageTypeName":"OtherPlayerRoll","Message":"Hans Yolo würfelt um das Paar Akolythen-Chausses.","MessageParts":["Hans Yolo"," würfelt um das ",""," Paar Akolythen-Chausses","."],"ItemId":3330,"ItemName":"Akolythen-Chausses","IsHq":false}
15. [Kapture] {"XivChatType":4161,"LogKind":65,"LogKindName":"LootRoll","LootMessageType":4161,"LootMessageTypeName":"OtherPlayerRoll","Message":"Hans Yolo würfelt mit „Bedarf“ eine 54 auf das Paar geplünderte Ohrringe.","MessageParts":["Hans Yolo"," würfelt mit „Bedarf“ eine 54 auf das ",""," Paar geplünderte Ohrringe","."],"ItemId":4207,"ItemName":"Geplünderte Ohrringe","IsHq":false}
16. [Kapture] {"XivChatType":4161,"LogKind":65,"LogKindName":"LootRoll","LootMessageType":4161,"LootMessageTypeName":"OtherPlayerRoll","Message":"Hans Yolo würfelt um das Paar Vollstrecker-Leggins.","MessageParts":["Hans Yolo"," würfelt um das ",""," Paar Vollstrecker-Leggins","."],"ItemId":3786,"ItemName":"Vollstrecker-Leggins","IsHq":false}
17. [Kapture] {"XivChatType":4161,"LogKind":65,"LogKindName":"LootRoll","LootMessageType":4161,"LootMessageTypeName":"OtherPlayerRoll","Message":"Cassandra MiyumiLich würfelt mit „Bedarf“ eine 88 auf das Paar Vollstrecker-Leggins.","MessageParts":["Cassandra Miyumi","Lich würfelt mit „Bedarf“ eine 88 auf das ",""," Paar Vollstrecker-Leggins","."],"ItemId":3786,"ItemName":"Vollstrecker-Leggins","IsHq":false}
18. [Kapture] {"XivChatType":2105,"LogKind":57,"LogKindName":"System","LootMessageType":2105,"LootMessageTypeName":"AddDesynthSell","Message":"Du hast einen Sternenglobus des Lichts verwertet!","MessageParts":["Du hast einen ",""," Sternenglobus des Lichts"," verwertet!"],"ItemId":30609,"ItemName":"Sternenglobus des Lichts","IsHq":false}
19. [Kapture] {"XivChatType":2105,"LogKind":57,"LogKindName":"System","LootMessageType":2105,"LootMessageTypeName":"AddDesynthSell","Message":"Die Notenrolle von „Below“ wurde deinem Orchestrion hinzugefügt.","MessageParts":["Die ",""," Notenrolle von „Below“"," wurde deinem Orchestrion hinzugefügt."],"ItemId":33130,"ItemName":"Notenrolle von „Below“","IsHq":false}
20. [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Du hast eine Flasche Mineralwasser für 1 Gil verkauft.","MessageParts":["Du hast eine ",""," Flasche Mineralwasser"," für 1 Gil verkauft."],"ItemId":4751,"ItemName":"Mineralwasser","IsHq":false}
21. [Kapture] {"XivChatType":2092,"LogKind":44,"LogKindName":"Item","LootMessageType":2092,"LootMessageTypeName":"LocalPlayerUse","Message":"Du verwendest einen Kaffeekeks .","MessageParts":["Du verwendest einen ",""," Kaffeekeks ","."],"ItemId":27878,"ItemName":"Kaffeekeks","IsHq":true}
22. [Kapture] {"XivChatType":2092,"LogKind":44,"LogKindName":"Item","LootMessageType":2092,"LootMessageTypeName":"LocalPlayerUse","Message":"Du verwendest eine Kiste mit legerer Kleidung.","MessageParts":["Du verwendest eine ",""," Kiste mit legerer Kleidung","."],"ItemId":33144,"ItemName":"Kiste mit legerer Kleidung","IsHq":false}
22. [Kapture] {"XivChatType":2105,"LogKind":57,"LogKindName":"System","LootMessageType":2105,"LootMessageTypeName":"AddDesynthSell","Message":"Eine legere Jacke wurde deinem Inventar hinzugefügt.","MessageParts":["Eine ",""," legere Jacke"," wurde deinem Inventar hinzugefügt."],"ItemId":30759,"ItemName":"Legere Jacke","IsHq":false}
22. [Kapture] {"XivChatType":2105,"LogKind":57,"LogKindName":"System","LootMessageType":2105,"LootMessageTypeName":"AddDesynthSell","Message":"Eine legere Hose wurde deinem Inventar hinzugefügt.","MessageParts":["Eine ",""," legere Hose"," wurde deinem Inventar hinzugefügt."],"ItemId":30760,"ItemName":"Legere Hose","IsHq":false}
22. [Kapture] {"XivChatType":2105,"LogKind":57,"LogKindName":"System","LootMessageType":2105,"LootMessageTypeName":"AddDesynthSell","Message":"Ein Paar legerer Schuhe wurde deinem Inventar hinzugefügt.","MessageParts":["Ein ",""," Paar legerer Schuhe"," wurde deinem Inventar hinzugefügt."],"ItemId":30761,"ItemName":"Legere Schuhe","IsHq":false}
23. Other player uses an item (this does not work, ingame chat shows char used the item, xllog did not show anything e.g. potion flytext was displayed in xllog)
24. [Kapture] {"XivChatType":2114,"LogKind":66,"LogKindName":"Crafting","LootMessageType":2114,"LootMessageTypeName":"FastCraft","Message":"Du hast die Fechtkunst-Materia VIII in das Paar Edenmorgen-Stiefel der Magie eingesetzt!","MessageParts":["Du hast die ",""," Fechtkunst-Materia VIII"," in das ",""," Paar Edenmorgen-Stiefel der Magie"," eingesetzt!"],"ItemId":26731,"ItemName":"Fechtkunst-Materia VIII","IsHq":false}
25. [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Du hast die Materia von dem Paar Edenmorgen-Stiefel der Magie entfernt.","MessageParts":["Du hast die Materia von dem ",""," Paar Edenmorgen-Stiefel der Magie"," entfernt."],"ItemId":32334,"ItemName":"Edenmorgen-Stiefel der Magie","IsHq":false}
26. [Kapture] {"XivChatType":2114,"LogKind":66,"LogKindName":"Crafting","LootMessageType":2114,"LootMessageTypeName":"FastCraft","Message":"Du hast erfolgreich ein Mythrit-Nugget hergestellt.","MessageParts":["Du hast erfolgreich ein ",""," Mythrit-Nugget"," hergestellt."],"ItemId":12518,"ItemName":"Mythrit-Nugget","IsHq":false}
27. [Kapture] {"XivChatType":2115,"LogKind":67,"LogKindName":"Gathering","LootMessageType":2115,"LootMessageTypeName":"Gather","Message":"Du hast einen Mythrit-Sandklumpen erhalten.","MessageParts":["Du hast einen ",""," Mythrit-Sandklumpen "," erhalten."],"ItemId":12531,"ItemName":"Mythrit-Sandklumpen","IsHq":true}
28. [Kapture] {"XivChatType":2115,"LogKind":67,"LogKindName":"Gathering","LootMessageType":2115,"LootMessageTypeName":"Gather","Message":"Du hast eine limsische Sardelle (6,1 Ilme) gefangen.","MessageParts":["Du hast eine ",""," limsische Sardelle"," (6,1 Ilme) gefangen."],"ItemId":4870,"ItemName":"Limsische Sardelle","IsHq":false}
29. [Kapture] {"XivChatType":2242,"LogKind":66,"LogKindName":"Crafting","LootMessageType":2242,"LootMessageTypeName":"LocalPlayerSynthesize","Message":"Du hast erfolgreich eine Kiste Mythrit-Nieten hergestellt.","MessageParts":["Du hast erfolgreich eine ",""," Kiste Mythrit-Nieten "," hergestellt."],"ItemId":12528,"ItemName":"Mythrit-Nieten","IsHq":true}
30. [Kapture] {"XivChatType":8258,"LogKind":66,"LogKindName":"Crafting","LootMessageType":8258,"LootMessageTypeName":"OtherPlayerSynthesize","Message":"Other User hat erfolgreich einen ästhetischen Vorschlaghammer hergestellt.","MessageParts":["Other User"," hat erfolgreich einen ",""," ästhetischen Vorschlaghammer "," hergestellt."],"ItemId":30459,"ItemName":"Ästhetischer Vorschlaghammer","IsHq":true}
31. Buy item from NPC [Kapture] {"XivChatType":57,"LogKind":57,"LogKindName":"System","LootMessageType":57,"LootMessageTypeName":"System","Message":"Du hast eine Flasche Mineralwasser für 4 Gil gekauft.","MessageParts":["Du hast eine ",""," Flasche Mineralwasser"," für 4 Gil gekauft."],"ItemId":4751,"ItemName":"Mineralwasser","IsHq":false}
32. Other Player optained lood direaclty from chest [Kapture] {"XivChatType":4158,"LogKind":62,"LogKindName":"LootNotice","LootMessageType":4158,"LootMessageTypeName":"OtherPlayerObtainLoot","Message":"Hans Yolo hat eine Flasche Grottenwasser erhalten.","MessageParts":["Hans Yolo"," hat eine ",""," Flasche Grottenwasser"," erhalten."],"ItemId":7036,"ItemName":"Grottenwasser","IsHq":false}
Would you consider implementing a way to sort the loot monitor so new events are at the top instead of the bottom? A timestamp column for events might also be useful. Thanks
It's not working at the moment for treasure maps. I need some logs though to help confirm this.
Turn on logging
Ensure all filters are off.
Trigger/Save Chat Messages
Installed and configured discord bridge as required, added ipc and tested other chat types to make sure it worked.
Nothing from kapture shows up however.
_plugin.DataManager.path locate at default XIVLauncher pluginConfig, but my pluginConfig is not there. Same issue with pricecheck, Anna's plugins like Macroogy and DalamudPython (I guess others would have the same issue)
I am having an issue with Kapture not seeming to record who obtained items, etc. I can see the data on items being added to the loot, and I can see the events like "obtained" but it doesn't show the player names.
I have the log window settings set to "Full Name" and I have the same config setting in the /lootconfig screen.
Any ideas what might be causing this?
Would it be possible to include the player's world and server Id? I want to use this for a tool that receives LootEvent data over http in order to assign received loot to players.
The world and serverId should be available in the PlayerPayload of messages.
I'd love for a version of the loot/roll overlays as just a semi-transparent pane with the last N Loot Items and current rolls, with mouse clickthrough so that I don't ever accidentally click on it while I'm in combat...
I see this done in the DailyDuty plugin, which makes for a much easier to work with overlay.
(sorry for below close/reopen spam, I misclicked.)
Hey, it seems while having this plugin turned on now. it causes a 50% FPS drop at all times.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.