diff --git a/WebHostLib/templates/multiFactorioTracker.html b/WebHostLib/templates/multiFactorioTracker.html
index bc0a977a..e8fa7b15 100644
--- a/WebHostLib/templates/multiFactorioTracker.html
+++ b/WebHostLib/templates/multiFactorioTracker.html
@@ -27,12 +27,14 @@
{% endblock %}
{% block custom_table_row scoped %}
{% if games[player] == "Factorio" %}
-
{% if inventory[team][player][131161] or inventory[team][player][131281] %}✔{% endif %} |
-{% if inventory[team][player][131172] or inventory[team][player][131281] > 1%}✔{% endif %} |
-{% if inventory[team][player][131195] or inventory[team][player][131281] > 2%}✔{% endif %} |
-{% if inventory[team][player][131240] or inventory[team][player][131281] > 3%}✔{% endif %} |
-{% if inventory[team][player][131240] or inventory[team][player][131281] > 4%}✔{% endif %} |
-{% if inventory[team][player][131220] or inventory[team][player][131281] > 5%}✔{% endif %} |
+{% set player_inventory = inventory[team][player] %}
+{% set prog_science = player_inventory[custom_items["progressive-science-pack"]] %}
+{% if player_inventory[custom_items["logistic-science-pack"]] or prog_science %}✔{% endif %} |
+{% if player_inventory[custom_items["military-science-pack"]] or prog_science > 1%}✔{% endif %} |
+{% if player_inventory[custom_items["chemical-science-pack"]] or prog_science > 2%}✔{% endif %} |
+{% if player_inventory[custom_items["production-science-pack"]] or prog_science > 3%}✔{% endif %} |
+{% if player_inventory[custom_items["utility-science-pack"]] or prog_science > 4%}✔{% endif %} |
+{% if player_inventory[custom_items["space-science-pack"]] or prog_science > 5%}✔{% endif %} |
{% else %}
❌ |
❌ |
diff --git a/WebHostLib/tracker.py b/WebHostLib/tracker.py
index 987a96d0..d3fd0fb0 100644
--- a/WebHostLib/tracker.py
+++ b/WebHostLib/tracker.py
@@ -302,10 +302,15 @@ def get_static_room_data(room: Room):
seed_checks_in_area[area] += len(checks)
seed_checks_in_area["Total"] = 249
- player_checks_in_area = {playernumber: {areaname: len(multidata["checks_in_area"][playernumber][areaname])
- if areaname != "Total" else multidata["checks_in_area"][playernumber]["Total"]
- for areaname in ordered_areas}
- for playernumber in multidata["checks_in_area"]}
+ player_checks_in_area = {
+ playernumber: {
+ areaname: len(multidata["checks_in_area"][playernumber][areaname]) if areaname != "Total" else
+ multidata["checks_in_area"][playernumber]["Total"]
+ for areaname in ordered_areas
+ }
+ for playernumber in multidata["checks_in_area"]
+ }
+
player_location_to_area = {playernumber: get_location_table(multidata["checks_in_area"][playernumber])
for playernumber in multidata["checks_in_area"]}
saving_second = get_saving_second(multidata["seed_name"])
@@ -1399,12 +1404,15 @@ def _get_multiworld_tracker_data(tracker: UUID) -> typing.Optional[typing.Dict[s
for (team, player), data in multisave.get("video", []):
video[team, player] = data
- return dict(player_names=player_names, room=room, checks_done=checks_done,
- percent_total_checks_done=percent_total_checks_done, checks_in_area=checks_in_area,
- activity_timers=activity_timers, video=video, hints=hints,
- long_player_names=long_player_names,
- multisave=multisave, precollected_items=precollected_items, groups=groups,
- locations=locations, games=games, states=states)
+ return dict(
+ player_names=player_names, room=room, checks_done=checks_done,
+ percent_total_checks_done=percent_total_checks_done, checks_in_area=checks_in_area,
+ activity_timers=activity_timers, video=video, hints=hints,
+ long_player_names=long_player_names,
+ multisave=multisave, precollected_items=precollected_items, groups=groups,
+ locations=locations, games=games, states=states,
+ custom_locations=custom_locations, custom_items=custom_items,
+ )
def _get_inventory_data(data: typing.Dict[str, typing.Any]) -> typing.Dict[int, typing.Dict[int, int]]: