NeutronPlus

Description

Fully automated diablo clone solution for acquiring mass quantities of annis!
  • Hunts, sells sojs / perms out, kills, mules, etc
  • Scheduled walking periods to avoid suspicion.
  • Integrates with iDB to send completed anni accounts.
  • Auto‐convert classic characters to expansion, in case you forgot!

Sample Walk

Link

Configuration

Killer & Muler Ratio

You could function with just 1 killer and 1 muler but it will be a slow process. Best is to scale up at a 1:1 ratio so like 2 killers and 2 mulers, or 3 killers and 3 mulers, etc. Also remember to reserve a key/proxy for the game holder (holds open the normal game for SOJ seller to come into) and the SOJ seller itself. The rest of your keys/proxies can be dedicated to hunters.

Modules Per Proxy

Highly recommend a value of 1, which means 1 module per proxy. There is a separate setting per module type — ModulesPerGroupForGameHolders, ModulesPerGroupForHunters, ModulesPerGroupForKillers and ModulesPerGroupForMulers.

Game Creation

Most defaults should work fine except game creation delays which are optimized for less extreme scenarios.. By default, these are 120 seconds, that is because most people don't like to wait around for slow game create/join to avoid r/d. However, for NeutronPlus you will be creating many games and if you have 120, you will get r/d because you'll go over 20 games per hour. Instead, set these to 180 for hunter, killer, muler, etc - that way it is guaranteed that you'll only get 20 games/hour and low chance of getting r/d. If you did 2 keys to 1 ip then I would say double the delays (to 360) so that for every proxy, only 20 games in total per hour.

SOJ & Hunter Account Format

[name]/[password]
[name]/[password]/[character index]

  • Hunters must be characters capable of creating games in hell
  • SOJs can be in inventory or stash
  • SOJs can be unperm
  • SOJ accounts can be added during a walk

Killer Account Format

[name]/[password]
[name]/[password]/[character index]
[name]/[password]/[character index]/[resurrect mercenary]

Examples:
  • killer1/123/1/merc if there is a mercenary
  • killer1/123 if there isn't a mercenary
Notes:
  • Only supports Javazons and Smiters, Javazons are far superior for killing dclone, well-geared can kill in 5 seconds!
  • All killers require the act 2 waypoint to the Arcane Sanctuary

Login Retry

If a hunter or killer fails to login, you'll see a window like this that lets you set the correct password and restart it, or disable the module for the rest of the walk.

Scheduling

Schedules are per-team and live in the Team Configuration window. Each one is a start and end time of day, and a team may have several as long as they don't overlap. A team with no schedules at all is allowed to walk at any hour.

Estimated Walk Time (default 90 minutes) is what keeps a walk from starting when it can't finish. A walk only starts if both the current time and the current time plus the estimated walk time land inside the same window — so with a 22:00–02:00 schedule and a 90 minute estimate, the last walk of the night begins no later than 00:30. Set it to a realistic length for your team; too low and you'll start walks that run past the window, too high and you'll waste the tail of every slot.

  • Windows are local time of day and cannot cross midnight — split them into two schedules if you need that.
  • If a walk is still running when the window closes, the team logs Ran out of time in our scheduling slot, terminating early. and stops right away.
  • That early stop does not consume a walk from the Start Counter, so a team with walks remaining picks up again at the start of the next window without you doing anything.
  • While a team is waiting for its next window the phase readout shows Phase: Waiting for schedule slot.

Triggers

  • Walk Trigger checks Found Games >= Walk Trigger's Games and Time Passed >= Walk Trigger's Time
    Example: Walk Trigger (80 games, 0 minutes) and Walk Trigger (0 games, 120 minutes) = either 80 games or 2 hours, whichever comes first
  • Stop Trigger checks Found Games <= Stop Trigger's Games and Time Passed >= Stop Trigger's Time
    Example: Stop Trigger (20 games, 120 minutes) = always get 20 or more annis from walk
For example, this will hunt for 200 games but if 7 hours pass and less than 120 games found, the walk will be immediately stopped:
Notes:
  • Triggers can be modified during a walk

Identifying

The first step to enabling this feature is toggling on the ID Annis checkbox in the Team Configuration window:
If you save, you might be shown this message:
.. which basically means that even though the hunters are set to ID annis, the killers aren't configured to buy ID tomes and give them to the hunters. So the first walk might be fine because each character has a starting ID scroll, but later walks would fail. To remedy this, you should change the UseIDTome property in the options:
Now if you want to set a global pickit filter to run against your ID'd annis, you can do that here:
Or if you want to override on a team-by-team basis, you can do that in the Team Configuration window.

Options Reference

Everything below is a global setting from the Configure > Options window. Anything that varies per team — cores, accounts, triggers, schedules, muler count, the anni filter override — lives in Team Configuration instead.

General

Setting Default What it does
StartHuntersAfterAllOthers true Holds the hunters back at start and launches them as a batch once every non-hunter is in the lobby, so a big block of hunter logins isn't competing with the game holders and killers for the queue. See Lobby Gate.
HuntStartRequirement AllModules Who the lobby gate waits for. NonHuntersOnly lets game holders start creating games without waiting on every hunter. See Lobby Gate.
ModulesPerGroupForGameHolders
ModulesPerGroupForHunters
ModulesPerGroupForKillers
ModulesPerGroupForMulers
1 How many modules of that type share a proxy. 1 is strongly recommended — see Modules Per Proxy above.
SeparateGroupForKillersAndMulers false When on, mulers start a fresh proxy group instead of filling out the last killer group. Only matters if you run more than one module per group.
DisableWholeTeamOnModuleIssue false When on, a module problem (wrong core, classic, dead hardcore, non-hell character) stops the whole team. When off, only that module is disabled, and the team stops only if the walk has become impossible.
StopTriggerAffectsCurrentWalkOnly true When on, a stop trigger ends the current walk and the team continues with its remaining walks. When off, a stop trigger zeroes the Start Counter and the team won't walk again until you start it manually.
StopWalkOnRealmGoingDown true Stops active walks when Battle.net announces the realm is going down in 2 minutes.
DelayBetweenCharacters 10000 ms Pause between character switches on one account. Used by game holders, mulers and SOJ sellers.
GlobalAnniFilter AllStats >= 10 & AllResist >= 10 & AddExperience >= 5 Pickit filter applied to identified annis. Only has an effect with ID Annis on — see Identifying above. A team can override it in Team Configuration.
ReportDataToChannelDemon false Reports your SOJ sales and walks to *channeldemon for community DClone tracking.

Hunter

Setting Default What it does
On DNE Pause For 60 s How long a hunter sits out after a game-does-not-exist or tagged response. Raising this slows a hunter that is burning game creates against a bad name; 0 disables the pause.
Game Count Before Restart 0 Restart the module after this many games, to shed accumulated state. 0 means never.
AutoConvertIfClassic true Converts hell-capable classic hunters to expansion during startup instead of disabling them.

Killer

Setting Default What it does
TimeoutToKillDiabloClone 60 s How long a killer keeps attacking before giving up and rejoining. A well-geared Javazon kills in a few seconds, so a timeout being hit usually means a gear or positioning problem.
Warning Gold 150,000 Below this the killer logs a warning to the team summary that it is running low on gold.
Disable Gold 50,000 Below this the killer stops and opens the login retry window, so you can add gold and restart it or disable it for the rest of the walk.
Game Count Before Restart 0 Restart the module after this many games. 0 means never.

Muler

Setting Default What it does
AnnisPerAccount 8 How many annis a mule account holds before the muler moves to a new one. Also decides which accounts land in the FullAccounts file versus PartialAccounts after the walk.
Start New Account Every Walk false Closes the mule accounts at the start of every walk instead of continuing to fill partial ones. Same effect as running Close Accounts manually before each walk.
Game Count Before Restart 0 Restart the module after this many games. 0 means never.

SOJ Seller

Setting Default What it does
DelayBetweenSellingSOJs 1000 ms Pause between individual SOJ sales while dumping SOJs at the end of a walk.
DelayBetweenSellingSOJsForIpTest 60 min Longest the seller will wait before selling a test SOJ during the hunt. Only used on shared-IP realms — see IP Verification.
Perm Out true Whether the SOJ seller perms out through its paired game holder.
Game Count Before Restart 0 Restart the module after this many games. 0 means never.

Transfer Game

The transfer game is where hunters drop annis and mulers pick them up. These caps keep it from getting crowded enough to lose items or draw attention.

Setting Default What it does
Max Annis 2 A hunter waits before dropping if this many annis are already on the ground. 0 removes the limit. Keep it low — items on the ground expire.
Max Hunters 3 Hunters allowed in the transfer game at once; the rest queue for a spot. Range 1–6.
Max Mulers 3 Mulers allowed in the transfer game at once. Range 1–6.

Other

Setting Default What it does
CharacterType
Account/Character Creation
Amazon Class used for the throwaway characters created on mule accounts.
GameViewRefresh 1000 ms How often the Game View window redraws.

Walk Timeline

A walk moves through five phases. Each phase is a flag that latches on and stays on until the team is started again — so the moment a gate opens, every module waiting on it is released at once, and any module that arrives later sails straight through instead of getting stuck. Gates are re-checked on every UI tick, which is why flipping a setting mid-walk takes effect within a second or two.

The current phase is always shown in the team summary panel as Phase: ....

Phases

Phase What's happening What opens the next gate
Loading into lobby Every module logs in and reaches the chat lobby. Nothing else happens yet — each module's lobby thread is parked until the lobby gate opens. Everything the team is waiting on is in the lobby. See Lobby Gate below.
Game holder(s) creating game(s) Game holders create/join the game that will hold the IP open for the SOJ seller. In Mule mode this is the transfer game instead. Every enabled core's game holder is sitting in a game.
Hunting Hunters create and join games looking for the target IP. In Auto mode the SOJ seller sells test SOJs to confirm which hunters are actually on the hot IP; confirmed games are what the trigger counts. Hunters and killers whose re-enable time has passed get restarted here. A walk trigger fires: found games >= the trigger's games and minutes since hunt start >= the trigger's time.
Selling or waiting for SOJs to be sold Hunters stop taking new games and shut down as their current game ends. In Auto mode the SOJ seller is restarted if needed so it can dump the rest of its SOJs and push the counter over. Diablo Clone actually walks — any module in a game sees the "walks the earth" message. The number of open games at that instant is snapshotted as the expected anni count.
Killing and muling Killers wait up to 30 seconds for Battle.net to distribute the walk notification to all hunters, then go kill. Hunters carrying an anni head for the transfer game; mulers take responsibility for each anni and collect it. Nothing is left in flight: no hunter holding an anni, no muler responsible for one, no games left and no annis on the ground. The Start Counter is decremented and the team stops.

Mule mode skips the middle entirely — the lobby and walk gates are all opened at start, so the team goes straight to transferring annis off the hunters you flagged.

Lobby Gate

This is the gate people get stuck on most often, because one hunter sitting in a login queue can hold up the entire walk. Two settings control it.

StartHuntersAfterAllOthers (on by default) holds the hunters back at start. Once every non-hunter is in the lobby, the hunters are launched as a batch. This keeps a big block of hunter logins from competing with the game holders and killers for the login queue.

HuntStartRequirement decides who the lobby gate actually waits for:

  • AllModules (default) — every hunter, killer, muler and game holder must reach the lobby. Safest, but one stuck hunter stalls the walk.
  • NonHuntersOnly — only the game holders, killers and mulers have to make it. Game holders start creating games immediately and hunters join the hunt as they arrive. Use this when you routinely have more hunters than will reliably log in inside your schedule window.

Two module types are never waited on regardless of the setting: the SOJ seller (it joins its game on its own schedule), and any login that is toggled off or was disabled earlier in the walk.

If you started with AllModules and it becomes clear the last few hunters aren't going to make it, you don't have to restart the walk — use Tools > Proceed Without All Hunters:

  • It switches that team to NonHuntersOnly for the rest of the walk and the gate opens on the next tick.
  • Hunters still logging in are picked up as they arrive — nothing is lost by moving forward.
  • Teams that are stopped, already past the lobby phase, or already set to NonHuntersOnly are greyed out.
  • The team summary logs the switch, and the phase readout changes to Phase: Loading into lobby (not waiting on hunters).

The setting itself is only the starting value for each walk — every start re-reads it from the options, so a mid-walk switch never leaks into the next walk.

IP Verification

Phase 3 is where "found games" gets its number, and how a game is counted depends on the realm. Every Battle.net realm except Asia gives each game server its own IP, so the target IP alone identifies the server. On Asia the game servers share a single IP, so the IP tells you nothing — which is why Specific IP mode is greyed out when you start a team on Asia. The team picks one of two verification strategies at start based on this, and you don't configure it directly.

Realms with per-server IPs (everything except Asia)

  • In Auto mode the target IP is whatever the SOJ core's game holder lands on — that's the IP shown in the phase readout. Hunters only join games on that IP.
  • A hunter that gets into a game on the target IP counts as a found game immediately. No test selling is needed.
  • The SOJ seller doesn't even join a game until the walk trigger fires. Its whole job is dumping SOJs at the end to push the counter over.

Realms with shared IPs (Asia)

A hunter can't tell whether it landed on the right server, so the SOJ seller proves it by selling a test SOJ and seeing which hunters observe the count change:

  1. A hunter enters a game and is marked ready for verification.
  2. The SOJ seller sells one SOJ. It sells as soon as every enabled hunter is in a game and at least one is waiting to be verified; otherwise it waits up to DelayBetweenSellingSOJsForIpTest (default 60 minutes) and sells anyway. If no hunter is actually waiting on verification when the timer expires, the timer resets instead.
  3. Ten seconds later it compares its own SOJ count against each waiting hunter's. Matching hunters are confirmed and their game is counted as found. Non-matching hunters are on the wrong server and leave with Must be in wrong IP, SOJ seller sold and we didn't see message. in their log.
  4. A hunter that rejoins an already-confirmed game is counted again without re-testing.

Practical consequences on Asia: every confirmed game costs a SOJ, so budget SOJ accounts accordingly, and a long DelayBetweenSellingSOJsForIpTest makes hunters sit unverified — which means they aren't counting toward your walk trigger yet even though they're in games. The In verified game counter on the main window is the number that matters, not In lobby.

Operation

Modes

  • Specific IP lets you hunt an IP you choose, wait for SOJs to be sold, kill and mule. SOJ Seller module won’t be started. Useful if maybe you see on d2jsp that a person says they are going to walk an IP, so you can get free walk.
  • Auto will pick an IP for you, hunt, sell SOJs, kill and mule.
  • Mule is for cleaning hunters if they have any leftover annis on them (you should rarely have to use this, maybe if the app crashes or your PC reboot in the middle of a walk). First you would go into Game View:
    Highlight all the chars you suspect need to be cleaned, check Has Anni, then you'd start the team in Mule mode. The modules with Has Anni checked will enter game and transfer anni to mule if found.

Reasons for Automatic Termination

  • If account login fails, the module will be disabled.
  • If character selection fails, the module will be disabled.
  • If account is wait-lined, the module will be disabled and re-enabled when not wait-lined.
  • If character core (softcore vs hardcore, classic vs expansion, ladder vs non-ladder) don't match the team, the module will be disabled.
  • If character is hardcore and dead, the module will be disabled. [hunter and killer only]
  • If character is not in hell, the module will be disabled. [hunter and killer only]
  • If character is not amazon or paladin, the module will be disabled. [killer only]
  • If character runs out of gold, the module will be disabled. [killer only]
  • If character is missing arcane waypoint, the module will be disabled. [killer only]

  • If there are 0 enabled hunters and 0 enabled killers, the walk will be immediately terminated.
  • If sojs run out, team summary will show "No more SOJ accounts available." and wait for more accounts to be added. The walk won't be terminated.

Manually Controlling Modules

During a walk if you find some module is misbehaving and bot is not handling it properly, you can right-click on the Game View for some options:
You can also control and monitor killers with the Killer View:

Post-Operation

Mule accounts are saved into txt files in the main folder:
  • Annis.[Team Name].[Core (SCL, etc)].Characters.[Timestamp].txt
  • Annis.[Team Name].[Core (SCL, etc)].FullAccounts.[Timestamp].txt
  • Annis.[Team Name].[Core (SCL, etc)].PartialAccounts.[Timestamp].txt
If you don't Close Accounts after a walk, then next walk will start off at same spot in the mule account string:

iDB Integration

iDB's default HTTP-Port is 7338 so configure NeutronPlus like this:
If you change any settings, make sure that you restart the app to let them take effect.

Make sure that iDB's HTTP processor is enabled.
If everything is configured correctly, you'll see this on NeutronPlus:
And this on iDB:

Changelog

2026-08-07: v1.0.0.186

  • ADD Added HuntStartRequirement (default AllModules) to determine which modules must reach the lobby before the team moves past the lobby phase. NonHuntersOnly lets game holders create games without waiting on every hunter. Can also be switched mid-walk from Tools > Proceed Without All Hunters.

2021-07-18: v1.0.0.181

  • FIX Fixed Mule mode which was broken upon introducing StartHuntersAfterAllOthers

2021-05-26: v1.0.0.177

  • FIX Retry windows are auto-closed when walk ends

2021-05-19: v1.0.0.176

  • ADD Added support for stashing items if hunter has full inventory

2021-05-17: v1.0.0.174

  • FIX Fixed a concurrency bug that occasionally occurs while starting a team

2021-05-12: v1.0.0.173

  • FIX Fixed inaccurate count being reported to ChannelDemon

2021-05-07: v1.0.0.171

  • ADD Added ReportDataToChannelDemon to report soj sales and walks (as well as ladder/non-ladder status of IPs) (default is false)

2021-05-04: v1.0.0.169

  • ADD Added Enable All buttons for hunters and killers

2021-04-28: v1.0.0.168

  • ADD Added StartHuntersAfterAllOthers (default is true)

2021-03-23: v1.0.0.163

  • UPD Changed killers to restart after 2 FTJs and stopping the hunter if 2 more FTJs
  • UPD Split ModulesPerGroup into ModulesPerGroupForHunters, ModulesPerGroupForKillers, ModulesPerGroupForMulers and ModulesPerGroupForGameHolders

2021-03-23: v1.0.0.162

  • ADD Added log message for when walk counter decreases
  • UPD Changed default selection when starting team
  • UPD Technical improvements

2021-03-17: v1.0.0.161

  • ADD Clicking on Retry window's text lets you copy Account Name to clipboard

2021-03-06: v1.0.0.160

  • FIX Fixed rare bug while archiving anni logs

2020-12-09: v1.0.0.154

  • UPD Disabled asia-specific game verification (since asia has separate IPs once again)

2020-12-08: v1.0.0.153

  • UPD Ignore empty lines in Hunter/Killer inputs

2020-11-23: v1.0.0.152

  • ADD Added detection for game server SOJ count bug

2020-11-23: v1.0.0.151

  • FIX Fixed killers getting stuck if anni in stash

2020-11-20: v1.0.0.150

  • ADD Added Killer View which allows full monitoring and control over killers

2020-09-23: v1.0.0.148

  • FIX Fixed bug where hunters rejoining games incorrectly report that they found game after server walked and then leave

2020-07-12: v1.0.0.143

  • ADD Added StopWalkOnRealmGoingDown

2020-06-13: v1.0.0.140

  • UPD Retry window stays on top of screen now

2020-05-29: v1.0.0.139

  • FIX Fixed 'in verified game' visual counter

2020-05-28: v1.0.0.138

  • FIX If killer is unable to join, hunter is forced to drop

2020-05-25: v1.0.0.137

  • ADD Added Enabled column to Game View

2020-05-25: v1.0.0.136

  • FIX Fixed critical bug with hunters not reporting on their game status
  • UPD Changed GlobalAnniFilter default to 10/10/5

2020-04-28: v1.0.0.135

  • UPD No longer disconnect from BNCS after entering lobby

2020-03-31: v1.0.0.133

  • ADD Added retry popup for no gold

2020-03-29: v1.0.0.132

  • ADD Added attack configuration validation

2020-03-14: v1.0.0.127

  • FIX Added state machine for IP verification

2020-03-12: v1.0.0.126

  • ADD Added DelayBetweenSellingSOJsForAsiaIPTest

2020-03-12: v1.0.0.124

  • ADD Added Asia support (true IP testing by selling SOJ)

2020-01-20: v1.0.0.122

  • ADD Added startup retry for hunters/killers (to allow user to enter different password or kill module, etc)

2020-01-16: v1.0.0.121

  • ADD Added TimeoutToKillDiabloClone to configuration

2019-12-09: v1.0.0.112

  • ADD Added AutoConvertIfClassic to configuration

2019-10-17: v1.0.0.109

  • ADD Added detection of missing waypoint to disable killers

2019-05-14: v1.0.0.88

  • ADD Added iDB integration

2019-03-30: v1.0.0.85

  • ADD Disabled hunters/killers automatically re-enable when ready

2019-03-05: v1.0.0.81

  • ADD Hunters pickup anni before it expires on ground

2019-02-06: v1.0.0.80

  • ADD Added Mule mode

2018-12-24: v1.0.0.75

  • ADD Allow manual killing games

2018-11-04: v1.0.0.68

  • ADD Added MulerStartNewAccountEveryWalk to configuration

2018-11-03: v1.0.0.67

  • ADD Added Close Accounts button

2017-06-02: v1.0.0.0

  • ADD Initial