Hive Mind

by Klonan

Take control of the biters and lead them to victory against the invading engineers.

Content
3 years ago
0.17 - 1.1
4.02K
Enemies

b Crash on loading

5 years ago
(updated 5 years ago)
  42.987 Mods to disable:Failed to load mods: __Hive_Mind__/data.lua:3: __Hive_Mind__/data/entities/entities.lua:1: __Hive_Mind__/data/entities/biter_player.lua:129: attempt to call field 'copy' (a nil value)
stack traceback:
    __Hive_Mind__/data/entities/biter_player.lua:129: in main chunk
    [C]: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:1: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:3: in main chunk
    [C]: in function 'require'
    __Hive_Mind__/data.lua:3: in main chunk
stack traceback:
    [C]: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:1: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:3: in main chunk
    [C]: in function 'require'
    __Hive_Mind__/data.lua:3: in main chunk
stack traceback:
    [C]: in function 'require'
    __Hive_Mind__/data.lua:3: in main chunk

Mods to be disabled:
• Hive_Min

I tried looking through the modlist to see if anything is redefining utils but I wasn't able to find anything on a cursory grep. Checking the games data/core/lualib/utils.lua does not have any copy function defined within it (only a deepcopy). Scanning for function .*copy( in all mod files as well as in the entirety of the game's data directory reveals no function named copy that is not exposed outside of its defined file (only instance found was in stdlib_1.0.3/stdlib/vendor/beholder.lua where it is a local function that is not exposed out of the module, used only within that module as a helper function). And looking through the results of a grep search of \bcopy\b and I eventually found Hive_Mind_0.3.6/script/script_util.lua:util.copy = util.table.deepcopy, so it seems that the only place that file is required is at control.lua:util = require("script/script_util"), so it is only available in the control stage, and is not available in the data stage, hence why it seems to be failing. Likely this mod should not be using copy and should instead just be using deepcopy as it is already defined and available at this stage of loading, but otherwise data.lua needs to util = require("script/script_util") as well.

The version of Hive_Mind being used, as from the log file itself:

  41.919 Loading mod Hive_Mind 0.3.6 (data.lua)

Which is the latest version as of this post with Hive_Mind having last been updated 19 hours ago.

5 years ago

And indeed adding util = require("script/script_util") to the blank line 2 of data.lua does indeed correct the issue, however now the mod has another loading error:

  49.029 Mods to disable:Failed to load mods: __Hive_Mind__/data.lua:4: __Hive_Mind__/data/entities/entities.lua:1: __Hive_Mind__/data/entities/biter_player.lua:88: attempt to call field 'ground_unit_collision_mask' (a nil value)
stack traceback:
    __Hive_Mind__/data/entities/biter_player.lua:88: in function 'make_biter_player'
    __Hive_Mind__/data/entities/biter_player.lua:129: in main chunk
    [C]: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:1: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:3: in main chunk
    [C]: in function 'require'
    __Hive_Mind__/data.lua:4: in main chunk
stack traceback:
    [C]: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:1: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:3: in main chunk
    [C]: in function 'require'
    __Hive_Mind__/data.lua:4: in main chunk
stack traceback:
    [C]: in function 'require'
    __Hive_Mind__/data.lua:4: in main chunk

Mods to be disabled:
• Hive_Min

I'm noticing the logs seem to be cutting off the last character on some of the stack trace reports (hence why the d is being cut out of the name Hive_Mind at the end of the stack trace report, this happens with other stack trace reports as well, even if there are later lines), but this is irrelevant to this mod issue and is just an interesting notice.

Also, of note is that the version of factorio being used is 0.17.38 on linux x64.

5 years ago

The util.ground_unit_collision_mask appears to be defined at:

Hive_Mind_0.3.6/data/tf_util/tf_util.lua:util.ground_unit_collision_mask = function()

However the tf_util is only required in other files and not in the data/entities/biter_player.lua file.
This data/tf_util/tf_util.lua file is already included in other entity files, so it looks like there should not actually be a util include in data.lua, so I removed my prior edit, and instead added a local util = require("data/tf_util/tf_util") to the top of the data/entities/biter_player.lua file on the empty line 2.

Upon testing the game at this stage then it appears to load past this issue, and now there is another new error:

  43.944 Mods to disable:Failed to load mods: __Hive_Mind__/data.lua:3: __Hive_Mind__/data/entities/entities.lua:1: __Hive_Mind__/data/tf_util/tf_util.lua:265: attempt to index local 'layer' (a string value)
stack traceback:
    __Hive_Mind__/data/tf_util/tf_util.lua:265: in function 'shift_layer'
    __Hive_Mind__/data/entities/pollution_lab.lua:44: in main chunk
    [C]: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:1: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:8: in main chunk
    [C]: in function 'require'
    __Hive_Mind__/data.lua:3: in main chunk
stack traceback:
    [C]: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:1: in function 'require'
    __Hive_Mind__/data/entities/entities.lua:8: in main chunk
    [C]: in function 'require'
    __Hive_Mind__/data.lua:3: in main chunk
stack traceback:
    [C]: in function 'require'
    __Hive_Mind__/data.lua:3: in main chunk

Mods to be disabled:
• Hive_Min

And at this point I think I have to bow out, it's getting late and I'll just leave this disabled on the server for now. ^.^;

5 years ago

seems like another mod is overwriting things in util, not sure what I can do about it

5 years ago
(updated 5 years ago)

I tried doing searching via a large set of grep regex's but I couldn't find another mod setting anything in the global util module, only Hive_Mind and Unit_Control were doing that, and both were doing it only in the control stage, not the data stage (even though this mod was trying to use one of those added functions from within the data stage.

New response