I'm not sure what's going on, but I have a bot here which cannot be forcibly reproduced - however, it's due to something on the bot itself, not its DNA. If I start a new sim with that DNA, it can reproduce. If I start a new sim and insert the saved organism, it cannot reproduce.
Each cycle repro remains at 50 without changing, and the bot does not reproduce.
This screenshot shows odd discrepancies between everything shown on the bot info panel, and what the console returns:
The console is for the bot shown there, of course.
Along with the values shown in the console, slime, shell, venom, and poison are all 0. The bot panel shows energy as 16025, which is what refnrg from the bot to the northeast also shows, whereas the console shows .nrg as 3307. The bot panel shows body different from the console, as well, and waste too.
I attempted to set .shoot and .shootval to -4 and 100 respectively, to get the bot to fire its waste to see if that was causing the oddness, but it didn't work - the values are persisting from cycle to cycle, it is not shooting, and waste is not changing.
I even tried setting .up to 1000 and running one cycle. The bot didn't move (and the console reports .fixed as 0), but .up at least did reset to 0.
I can upload the organism somewhere if someone wants to look at it. Or I could upload a sim file which is filled with bots suffering from this...
My best guess is that something is going completely and totally FUBAR and causing the memory inputs to be mostly ignored, and causing most of the memory outputs to not be updated properly.
Edit: For further testing, I'm trying setting memory locations and then checking them (on the console), while the sim is actively running. I theorized that memory writing is breaking down at some point, since .up appeared to be getting properly cleared, so I began looking for the location where it breaks.
I only checked memory locations below 20:
Memory locations that are being overwritten (which is usually normal): .up (1), .dn (2), .sx (3), .dx (4), .robage(9), .mass (10), .maxvel(11), 12 (Not in sysvars list on wiki... hmm, this is apparently a robage which wraps around to -32000 when it exceeds 32000!)
Memory locations that are not being overwritten if I write to them in the console: .aimdx (5), .aimsx (6), .shoot (7), .shootval (
, .aim (18), .setaim (19)
Edit again: If another bot rams one of these, it bounces off without affecting these, even though fixed does not appear to be set (according to the console, which doesn't mean much, I suppose).
One affected bot's DBO file, zipped:
http://shadowlord13.googlepages.com/wontrepro.dbo.zipEdit more: Upkeep is being run, as evidenced by the energy shown on the robot data panel decreasing over time. Therefore the bot is not a corpse (corpse mode is disabled, anyhow). If BotDNAManipulation was being run, the mkvirus memloc being set would start vtimer counting down - but it isn't. BotDNAManipulation is run if the bot is not a corpse and doesn't have DisableDNA set (and if the robot exists).
It LOOKS like the affected bots may have somehow wound up with DisableDNA set. I don't know how that's possible, though - These bots were not DNA disabled when the sim was started, yet somehow they act as if they are DNA disabled now.
Additionally, by checking older save files, I've determined that at 28k cycles, some of the bots had just become affected by this (their console .nrg and robot data panel energy were not decreasing in sync, but were still very close), whereas other bots in the sim were still not affected. At 48k cycles, all or almost all of the bots in the sim that I checked (except the shepherds) were suffering from this. After 48k cycles, the bot population and dna conditions graph lines became a flat horizontal line, indicating that birth, death, and evolution in general had been completely halted by this problem.
It's like the bots evolved DNA disabling as a means of avoiding being culled. D: