PROJECT HACK // HELP

Network Map & AI Tools

Network Map

A visual graph of every server and how they connect to each other, starting from home.

  • Accessible (green) — your hacking level meets the server's requiredHackingSkill; you're allowed to attempt a hack.
  • Locked (red) — your level is too low; hacking is disabled here until you level up.
  • Selected (blue) — the server you currently have focused in the detail panel.
  • Actively hacking (yellow) — a script or manual hack currently has a lock on this server (see Scripting API — only one hack can run against a server at a time).

By default the map only shows servers you can currently reach; a toggle reveals the full network including locked/undiscovered nodes so you can plan ahead. Selecting a server opens a detail panel with its IP, required skill, difficulty, current/max money, and a live regen countdown.

You can trigger a manual hack directly from this panel — see Scripting API for how manual hacking compares to ns.hack().

AI Tools

Unlocked by completing the "Unlock AI" research (see Research). A read-only analysis panel — it doesn't act on your behalf, just surfaces information to help you choose targets.

Scout — Top Targets

Ranks every server you can currently access (level requirement met) by a score:

successChance = min(0.9, playerHacking / hackDifficulty)
score = successChance * server.money * 0.1

This is effectively "expected money per hack attempt" — it rewards servers that are both easy for you and currently sitting on a lot of money, showing the top 5.

Server Analysis

Pick any target from the Scout list (or it defaults to the top-ranked one) to see:

  • Hack success % (same formula as above, without the debuff multiplier since that's a live-combat concern, not a planning one)
  • Current money / max money
  • Expected yield: floor(successChance * money * 0.1)
  • Hack difficulty

Note the Scout/Analysis success-chance shown here is a simplified planning estimate — it doesn't factor in an active hack debuff from a failed boss fight the way the real ns.hack() roll does. Treat it as "expected value if nothing else is going on."