matzman666 / PyPipboyApp

A platform independent and extensible unofficial Fallout 4 Pipboy Companion App
GNU General Public License v3.0
83 stars 20 forks source link

Show and Track Collectables on the global map #30

Closed akamal closed 8 years ago

akamal commented 8 years ago

Magazines and Bobblesheads are (optionally) shown on the globalmap. Users can right click to manually mark as collected, represented by the tick overlay. Markers will automatically be marked as collected if the player picks up the corresponding item (even if not still at that location, ie: Bobbles head already collected, and stored), and will stay marked as collected even if the item is dropped. Collection status of each marker is persisted per character in either case. Supports adding addition collectables and sets of collectables by editing a json file.

Issues\Limitations:

matzman666 commented 8 years ago

Merged with commit ad8229e72c14d8b99197a07630874491a0c03cae.

matzman666 commented 8 years ago

Hey, that really cool. And it even detects when you put collectibles in the inventory and marks them for you. How did you get the data?

akamal commented 8 years ago

Thanks! Getting the data was a bit of slog, far too long spent digging around in Fo4Edit trying to understand the relationships between item instances, items, doors, cells, and worldspaces; and then trying to figure put how it's Delphi based scripting system works. Then a python post processing script to transform the output of the FO4Edit script into something useful (not strictly necessary I found the stripped down delphi scripting excessively painful!).

In the end it's working pretty well, the only ones missing are 'special' in some way: Either they're in a different world (Goodneighbour), or look like locations with script\quest based entrances (Vaults, peoples heads, etc). They will probably need fixing up by hand to the co-ords nearest their entrances, but that shouldn't take too long.

I'll add the scripts to the repo, they may be useful as the basis for something else.