A Satisfactory mod that adds a HUD arrow pointing straight at the nearest uncollected collectible: Somersloops, Mercer Spheres, Power Slugs, and Hard Drives (drop pods).
- Main arrow always points directly at the nearest uncollected item of an enabled type, with distance and elevation (up/down) shown alongside it.
- Potential entrance arrow — when the target is enclosed (e.g. inside a cave), a second arrow points at a nearby opening to the surface, plus a yellow trail showing the route from that opening to the item. This is sourced from a pre-computed cave-entrance data set that ships compiled into the mod (see "How it works" below) — no extra download or setup needed.
- Hard Drive requirements — while standing near a drop pod, the item or power requirement to open it is read directly from the pod and shown next to its arrow.
- Per-type toggles and range limit (Off / Near / Far / whole map) configurable from the in-game Mods menu.
- Install SML (Satisfactory Mod Loader) via the Satisfactory Mod Manager if you haven't already.
- Install ItemTracker through the Satisfactory Mod Manager, or download the release zip from the
releases page / ficsit.app and extract it into your
<Satisfactory>/FactoryGame/Modsfolder. - Launch the game. Configure tracked item types and range from the in-game Mods menu.
- Satisfactory (this mod targets game build
>=491125— checkItemTracker.upluginfor the exact minimum as new versions ship) - SML
^3.12.0or newer
- Item locations come from the game's own scannable/drop-pod registry (
AFGScannableSubsystem). - The "potential entrance" arrow and route are read from a cave-entrance data set that's baked offline and compiled directly into the mod, so every player gets correct, verified routes with no extra setup, wait, or dependency on their own machine's performance. This data set covers every collectible present as of this mod's current release; a future in-game update that adds or moves collectibles would need a new data set baked before those specific items get routed (their main arrow would still work regardless — only the "potential entrance" arrow depends on this data).
- Drop pod requirements are read live from
AFGDropPod::GetUnlockCost()on the actual pod actor once it's loaded (i.e. once you're close enough).
This repo builds as a standard SML plugin/module. A few things specific to testing or extending the pathing:
- Cave-entrance routes ship pre-baked and compiled into the mod. The tools that produced them
(teleport-and-search every item, verify routes on foot, manually correct one by hand) are real
console commands, but disabled by default via a single flag in
ItemTracker.cpp:Set it to#define ITEMTRACKER_ENABLE_DEV_CONSOLE_COMMANDS 0
1and rebuild to getItemTracker.BakeCaveData(withStepOnce/Recheck/FalsePos/Fixsub-commands) andItemTracker.ManualFixback. - With those enabled,
ItemTracker.BakeCaveDatawalks every remaining tracked item and records its route;ItemTracker.BakeCaveData StepOnceteleports you to an already-baked entry so you can walk and eyeball a specific route at normal speed;ItemTracker.ManualFix Start/Mark/Finishlets you fly to an item, trace the real route by hand, and record it directly. - Visual diagnostics:
UItemTrackerHUDWidgethas three debug-draw toggles, off by default (bDrawCaveSearchDebugRays,bDrawPathfinderSteps,bDrawVoxelGrid) — enable one and rebuild to see the search's sky/void-check rays, its step-by-step DFS trail, or the full explored open/blocked voxel grid drawn directly in the world while a live search runs (requiresbUseLiveCaveSearchon, since these only populate during a real search, not from baked data). - Diagnostic logging is under its own
LogItemTrackercategory (silent by default) — addLogItemTracker=Verboseunder[Core.Log]inDefaultEngine.inito see it without a rebuild.
Unlicense — public domain. Use it however you like.
Nicklas Bjälemark