Error updating mod for Factorio 2.0 (continued)

Place to get help with not working mods / modding interface.
Keysivi
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Feb 07, 2022 5:29 pm
Contact:

Error updating mod for Factorio 2.0 (continued)

Post by Keysivi »

This is a continuation of the topic viewtopic.php?f=25&t=121247

I moved it to a separate topic, because I'm afraid that in a large number of comments it will disappear.

I tried to return to the reanimation of this mod but reached the point where the brain is completely dislocated:

Here is the first error:

Code: Select all

The mod The Ruins Mod (1.1.6) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event AbandonedRuins::on_tick (ID 0)
Unknown collision-layer name: item-layer
stack traceback:
	[C]: in function 'count_tiles_filtered'
	__AbandonedRuins__/spawning.lua:152: in function 'clear_area'
	__AbandonedRuins__/spawning.lua:175: in function 'spawn_ruin'
	__AbandonedRuins__/spawning.lua:189: in function 'spawn_random_ruin'
	__AbandonedRuins__/control.lua:58: in function <__AbandonedRuins__/control.lua:53>
He complains about this:

Code: Select all

local function clear_area(half_size, center, surface)
  local area = util.area_from_center_and_half_size(half_size, center)
  -- exclude tiles that we shouldn't spawn on
  if surface.count_tiles_filtered{ area = area, limit = 1, collision_mask = {"item-layer", "object-layer"} } == 1 then
     return false
  end
  for _, entity in pairs(surface.find_entities_filtered({area = area, type = {"resource"}, invert = true})) do
    if (entity.valid and entity.type ~= "tree") or math.random() < (half_size / 14) then
      entity.destroy({do_cliff_correction = true, raise_destroy = true})
    end
  end
  return true
end
Here is the fix:

Code: Select all

local function clear_area(half_size, center, surface)
  local area = util.area_from_center_and_half_size(half_size, center)
  -- exclude tiles that we shouldn't spawn on
  if surface.count_tiles_filtered{ area = area, limit = 1, collision_mask = {layers = {item = true, object = true}} } == 1 then
     return false
  end

  for _, entity in pairs(surface.find_entities_filtered({area = area, type = {"resource"}, invert = true})) do
    if (entity.valid and entity.type ~= "tree") or math.random() < (half_size / 14) then
      entity.destroy({do_cliff_correction = true, raise_destroy = true})
    end
  end

  return true
end
Second error:

Code: Select all

The mod The Ruins Mod (1.1.6) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event AbandonedRuins::on_tick (ID 0)
Invalid CollisionLayerIdentification: expected LuaCollisionLayerPrototype or string.
stack traceback:
	[C]: in function 'count_tiles_filtered'
	__AbandonedRuins__/spawning.lua:152: in function 'clear_area'
	__AbandonedRuins__/spawning.lua:170: in function 'spawn_ruin'
	__AbandonedRuins__/spawning.lua:184: in function 'spawn_random_ruin'
	__AbandonedRuins__/control.lua:58: in function <__AbandonedRuins__/control.lua:53>
What am I doing wrong?!!! :-x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x :x
User avatar
IsaacOscar
Filter Inserter
Filter Inserter
Posts: 840
Joined: Sat Nov 09, 2024 2:36 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by IsaacOscar »

Well, first thing to do is check the documentation of the problematic function call:
https://lua-api.factorio.com/latest/cla ... s_filtered

Now the arguments type of that function is documented here:
https://lua-api.factorio.com/latest/con ... lters.html

Now it should be obvious the error is with the 'collision_mask' part, so check the expected type of that in the documentation with what you put.
Keysivi
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Feb 07, 2022 5:29 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by Keysivi »

IsaacOscar wrote: ↑Sat Dec 14, 2024 1:12 pm Well, first thing to do is check the documentation of the problematic function call:
https://lua-api.factorio.com/latest/cla ... s_filtered

Now the arguments type of that function is documented here:
https://lua-api.factorio.com/latest/con ... lters.html

Now it should be obvious the error is with the 'collision_mask' part, so check the expected type of that in the documentation with what you put.
Judging by the API, I did everything correctly. Unfortunately, your advice did not help me much - I could not identify the error.

I ran into this:
https://lua-api.factorio.com/latest/typ ... ector.html

Specifically:

Code: Select all

 Most common collision mask of buildings:
collision_mask = {layers = {item = true, meltable = true, object = true, player = true, water_tile = true, is_object = true, is_lower_object = true}}
Maybe I misunderstood you?... I'm just not a programmer. I only understand code a little...
User avatar
IsaacOscar
Filter Inserter
Filter Inserter
Posts: 840
Joined: Sat Nov 09, 2024 2:36 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by IsaacOscar »

Keysivi wrote: ↑Sat Dec 14, 2024 4:00 pm
IsaacOscar wrote: ↑Sat Dec 14, 2024 1:12 pm Well, first thing to do is check the documentation of the problematic function call:
https://lua-api.factorio.com/latest/cla ... s_filtered

Now the arguments type of that function is documented here:
https://lua-api.factorio.com/latest/con ... lters.html

Now it should be obvious the error is with the 'collision_mask' part, so check the expected type of that in the documentation with what you put.
Judging by the API, I did everything correctly. Unfortunately, your advice did not help me much - I could not identify the error.

I ran into this:
https://lua-api.factorio.com/latest/typ ... ector.html

Specifically:

Code: Select all

 Most common collision mask of buildings:
collision_mask = {layers = {item = true, meltable = true, object = true, player = true, water_tile = true, is_object = true, is_lower_object = true}}
Maybe I misunderstood you?... I'm just not a programmer. I only understand code a little...
No where in that documentation I linked does it mention ClllisionMaskConnector

Your problem is that collision_mask should be:
  • CollisionLayerID
  • array[CollisionLayerID]
  • dictionary[CollisionLayerID β†’ true]
None of those options invovle a 'layers = {...}' thing.
So just try something like this:

Code: Select all

 collision_mask = {item = true, meltable = true, object = true, player = true, water_tile = true, is_object = true, is_lower_object = true}
Keysivi
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Feb 07, 2022 5:29 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by Keysivi »

Thanks for the tip! Unfortunately, it's hard for me to figure out such nuances... I substituted collision_mask = {item = true, object = true} - the error disappeared.

A new one has appeared though:

Code: Select all

The mod The Ruins Mod (1.1.6) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event AbandonedRuins::on_tick (ID 0)
LuaGameScript doesn't contain key entity_prototypes.
stack traceback:
	[C]: in function '__index'
	__AbandonedRuins__/spawning.lua:91: in function 'spawn_entities'
	__AbandonedRuins__/spawning.lua:172: in function 'spawn_ruin'
	__AbandonedRuins__/spawning.lua:184: in function 'spawn_random_ruin'
	__AbandonedRuins__/control.lua:58: in function <__AbandonedRuins__/control.lua:53>

As I understand it, it swears at this function:

Code: Select all

local function spawn_entities(entities, center, surface, vars)
  if not entities then return end

  local prototypes = game.entity_prototypes

  for _, entity_info in pairs(entities) do
    spawn_entity(entity_info[1], entity_info[2], center, surface, entity_info[3] or {}, vars, prototypes)
  end
end
I tried to figure it out:
here https://lua-api.factorio.com/latest/cla ... cript.html
here viewtopic.php?p=621179#p621179
and here 116184

But I couldn't find anything about 'entity_prototypes'. It's not clear what to do with it...
User avatar
IsaacOscar
Filter Inserter
Filter Inserter
Posts: 840
Joined: Sat Nov 09, 2024 2:36 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by IsaacOscar »

Thats bexause game.entity_prototypes has been deleted, see https://lua-api.factorio.com/1.1.110/cl ... prototypes for what it used to do.

You may find this (which I found from looking at your other forum post) helpful: https://github.com/tburrows13/factorio- ... iltered.md
Just change game.entity_prototypes to prototypes.entity
Keysivi
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Feb 07, 2022 5:29 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by Keysivi »

Thank you! Sorry for my stupidity. I don't speak English, and with Google Translate my head is already a complete mess.

I made this and several similar edits. But there is something that is not in the specified topic:

Code: Select all

Line 15: game.players[index].print(modmashsplinter.convert_to_string(message))
Line 17: for i = 1, #game.players do local p = game.players[i]
Line 49: local player = game.get_player(event.player_index)

Line 118: local neutral_force = game.forces["neutral"]
Line 120: local claimants_force = game.get_player(event.player_index).force
Line 230: game.print("old: ​​" .. old_force.name .. " new: " .. new_force.name)
Line 245: game.print("old: ​​" .. old_force.name .. " new: " .. new_force.name)

Line 83: for _, force in pairs(game.forces) do
 Line 93: for _, force in pairs(game.forces) do
 Line 103: local enemy_force = game.forces["AbandonedRuins:enemy"] or game.create_force("AbandonedRuins:enemy")
Can I register?

Code: Select all

game.players - prototypes.players
game.get_player - prototypes.get_player
game.print - prototypes.print
game.forces - prototypes.forces
game.create_force - prototypes.create_force

User avatar
IsaacOscar
Filter Inserter
Filter Inserter
Posts: 840
Joined: Sat Nov 09, 2024 2:36 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by IsaacOscar »

Keysivi wrote: ↑Sun Dec 15, 2024 9:48 am Can I register?

Code: Select all

game.players - prototypes.players
game.get_player - prototypes.get_player
game.print - prototypes.print
game.forces - prototypes.forces
game.create_force - prototypes.create_force

(did you mean '=' instead of '-')? No you can't do that sadly, as 'game' isn't a norma Lua Table.
User avatar
IsaacOscar
Filter Inserter
Filter Inserter
Posts: 840
Joined: Sat Nov 09, 2024 2:36 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by IsaacOscar »

Keysivi wrote: ↑Sun Dec 15, 2024 9:48 am Thank you! Sorry for my stupidity. I don't speak English, and with Google Translate my head is already a complete mess.

I made this and several similar edits. But there is something that is not in the specified topic:

Code: Select all

Line 15: game.players[index].print(modmashsplinter.convert_to_string(message))
Line 17: for i = 1, #game.players do local p = game.players[i]
Line 49: local player = game.get_player(event.player_index)

Line 118: local neutral_force = game.forces["neutral"]
Line 120: local claimants_force = game.get_player(event.player_index).force
Line 230: game.print("old: ​​" .. old_force.name .. " new: " .. new_force.name)
Line 245: game.print("old: ​​" .. old_force.name .. " new: " .. new_force.name)

Line 83: for _, force in pairs(game.forces) do
 Line 93: for _, force in pairs(game.forces) do
 Line 103: local enemy_force = game.forces["AbandonedRuins:enemy"] or game.create_force("AbandonedRuins:enemy")
I'm sorry, I don't actually understand your question here.
Keysivi
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Feb 07, 2022 5:29 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by Keysivi »

Sorry. I've overdone it. I only needed to edit the scripts where 'game. ..._prototype'. And I stupidly started editing all the scripts where 'game. ...' .

This question is no longer relevant. I'll only confuse you and myself

I have another real problem. I corrected the function:
was:

Code: Select all

  local recipe
  if extra_options.recipe then
    if not game.recipe_prototypes[extra_options.recipe] then
      util.debugprint("recipe " .. extra_options.recipe .. " does not exist")
    else
      recipe = extra_options.recipe
    end
  end
became:

Code: Select all

  local recipe
  if extra_options.recipe then
    if not prototypes.recipe[extra_options.recipe] then
      util.debugprint("recipe " .. extra_options.recipe .. " does not exist")
    else
      recipe = extra_options.recipe
    end
  end
And then it showed another error:

Code: Select all

The mod The Ruins Mod (1.1.6) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event AbandonedRuins::on_tick (ID 0)
__AbandonedRuins__/spawning.lua:38: attempt to index field 'recipe' (a nil value)
stack traceback:
	__AbandonedRuins__/spawning.lua:38: in function 'spawn_entity'
	__AbandonedRuins__/spawning.lua:94: in function 'spawn_entities'
	__AbandonedRuins__/spawning.lua:172: in function 'spawn_ruin'
	__AbandonedRuins__/spawning.lua:184: in function 'spawn_random_ruin'
	__AbandonedRuins__/control.lua:58: in function <__AbandonedRuins__/control.lua:53>
It complains about this line:

Code: Select all

if not prototypes.recipe[extra_options.recipe] then
User avatar
IsaacOscar
Filter Inserter
Filter Inserter
Posts: 840
Joined: Sat Nov 09, 2024 2:36 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by IsaacOscar »

Keysivi wrote: ↑Sun Dec 15, 2024 1:49 pm Sorry. I've overdone it. I only needed to edit the scripts where 'game. ..._prototype'. And I stupidly started editing all the scripts where 'game. ...' .
Don't do that! Only some things have moved from game to prototypes, not everything!

This question is no longer relevant. I'll only confuse you and myself
Keysivi wrote: ↑Sun Dec 15, 2024 1:49 pm
Error while running event AbandonedRuins::on_tick (ID 0)
__AbandonedRuins__/spawning.lua:38: attempt to index field 'recipe' (a nil value)
stack traceback:
__AbandonedRuins__/spawning.lua:38: in function 'spawn_entity'
__AbandonedRuins__/spawning.lua:94: in function 'spawn_entities'
__AbandonedRuins__/spawning.lua:172: in function 'spawn_ruin'
__AbandonedRuins__/spawning.lua:184: in function 'spawn_random_ruin'
__AbandonedRuins__/control.lua:58: in function <__AbandonedRuins__/control.lua:53>[/code]

It complains about this line:

Code: Select all

if not prototypes.recipe[extra_options.recipe] then
Well that field definitely exists according to https://lua-api.factorio.com/latest/cla ... tml#recipe, so without seeing the entire code, my best guess is you've shadowed/redefined prototypes.
Have you got anything nearby that looks like:

Code: Select all

local prototypes = some-code
Or:

Code: Select all

function something(some-code, prototypes, some-code)
   more code
end
If so, the easiest fix I can come up with is: at the very top of your file write:

Code: Select all

local new_prototypes = prototypes
Then use new_prottoypes.recipe instead of prototypes.recipe.

(The correct fix is probably to rename the 'prototypes' local/function-parameter, but explaining how to do that correctly to a non-programmer will be a nightmare).
Keysivi
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Feb 07, 2022 5:29 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by Keysivi »

Have you got anything nearby that looks like:

Code: Select all

Code: Select all

local prototypes = some-code
Or:

Code: Select all

Code: Select all

function something(some-code, prototypes, some-code)
   more code
end
Unfortunately, I didn’t find anything like that. I overridden in the following functions:

First:

Code: Select all

local function spawn_entities(entities, center, surface, vars)
  if not entities then return end

  local prototypes = prototypes.entity

  for _, entity_info in pairs(entities) do
    spawn_entity(entity_info[1], entity_info[2], center, surface, entity_info[3] or {}, vars, prototypes)
  end
end
Changed line

Code: Select all

  local prototypes = prototypes.entity
Second:

Code: Select all

local function spawn_tiles(tiles, center, surface)
  if not tiles then return end

  local prototypes = prototypes.tile
  ---@type Tile[]
  local valid = {}
  for _, tile_info in pairs(tiles) do
    local name = tile_info[1]
    local pos = tile_info[2]
    if prototypes[name] then
      valid[#valid+1] = {name = name, position = {center.x + pos.x, center.y + pos.y}}
    else
      util.debugprint("tile " .. name .. " does not exist")
    end
  end

  surface.set_tiles(
    valid,
    true, -- correct_tiles,                Default: true
    true, -- remove_colliding_entities,    Default: true
    true, -- remove_colliding_decoratives, Default: true
    true) -- raise_event,                  Default: false
end
Changed line

Code: Select all

  local prototypes = prototypes.tile
Just in case, the whole spawning.lua page:

Code: Select all

local util = require("__AbandonedRuins__/utilities")
local expressions = require("__AbandonedRuins__/expression_parsing")

local spawning = {}

---@param half_size number
---@param center MapPosition
---@param surface LuaSurface
local function no_corpse_fade(half_size, center, surface)
  local area = util.area_from_center_and_half_size(half_size, center)
  for _, entity in pairs(surface.find_entities_filtered({area = area, type={"corpse", "rail-remnants"}})) do
    entity.corpse_expires = false
  end
end

---@param entity EntityExpression|string
---@param relative_position MapPosition
---@param center MapPosition
---@param surface LuaSurface
---@param extra_options EntityOptions
---@param vars VariableValues
---@param prototypes LuaCustomTable<string,LuaEntityPrototype>
local function spawn_entity(entity, relative_position, center, surface, extra_options, vars, prototypes)
  local entity_name = expressions.entity(entity, vars)

  if not prototypes[entity_name] then
    util.debugprint("entity " .. entity_name .. " does not exist")
    return
  end

  local force = extra_options.force or "neutral"
  if force == "enemy" then
    force = util.get_enemy_force()
  end

  local recipe
  if extra_options.recipe then
    if not prototypes.recipe[extra_options.recipe] then
      util.debugprint("recipe " .. extra_options.recipe .. " does not exist")
    else
      recipe = extra_options.recipe
    end
  end

  local e = surface.create_entity
  {
    name = entity_name,
    position = {center.x + relative_position.x, center.y + relative_position.y},
    direction = defines.direction[extra_options.dir] or defines.direction.north,
    force = force,
    raise_built = true,
    create_build_effect_smoke = false,
    recipe = recipe
  }

  if extra_options.dmg then
    util.safe_damage(e, extra_options.dmg, expressions.number(extra_options.dmg.dmg, vars))
  end
  if extra_options.dead then
    util.safe_die(e, extra_options.dead)
  end
  if extra_options.fluids then
    local fluids = {}
    for name, amount_expression in pairs(extra_options.fluids) do
      local amount = expressions.number(amount_expression, vars)
      if amount > 0 then
        fluids[name] = amount
      end
    end
    util.safe_insert_fluid(e, fluids)
  end
  if extra_options.items then
    local items = {}
    for name, count_expression in pairs(extra_options.items) do
      local count = expressions.number(count_expression, vars)
      if count > 0 then
        items[name] = count
      end
    end
    util.safe_insert(e, items)
  end
end

---@param entities RuinEntity[]
---@param center MapPosition
---@param surface LuaSurface
---@param vars VariableValues
local function spawn_entities(entities, center, surface, vars)
  if not entities then return end

  local prototypes = prototypes.entity

  for _, entity_info in pairs(entities) do
    spawn_entity(entity_info[1], entity_info[2], center, surface, entity_info[3] or {}, vars, prototypes)
  end
end

---@param tiles RuinTile[]
---@param center MapPosition
---@param surface LuaSurface
local function spawn_tiles(tiles, center, surface)
  if not tiles then return end

  local prototypes = prototypes.tile
  ---@type Tile[]
  local valid = {}
  for _, tile_info in pairs(tiles) do
    local name = tile_info[1]
    local pos = tile_info[2]
    if prototypes[name] then
      valid[#valid+1] = {name = name, position = {center.x + pos.x, center.y + pos.y}}
    else
      util.debugprint("tile " .. name .. " does not exist")
    end
  end

  surface.set_tiles(
    valid,
    true, -- correct_tiles,                Default: true
    true, -- remove_colliding_entities,    Default: true
    true, -- remove_colliding_decoratives, Default: true
    true) -- raise_event,                  Default: false
end

-- Evaluates the values of the variables.
---@param vars Variable[]
---@return VariableValues
local function parse_variables(vars)
  if not vars then return end
  local parsed = {}

  for _, var in pairs(vars) do
    if var.type == "entity-expression" then
      parsed[var.name] = expressions.entity(var.value)
    elseif var.type == "number-expression" then
      parsed[var.name] = expressions.number(var.value)
    else
      error("Unrecognized variable type: " .. var.type)
    end
  end

  return parsed
end

---@param half_size number
---@param center MapPosition
---@param surface LuaSurface
---@return boolean @Whether the area is clear and ruins can be spawned
local function clear_area(half_size, center, surface)
  local area = util.area_from_center_and_half_size(half_size, center)
  -- exclude tiles that we shouldn't spawn on
  if surface.count_tiles_filtered{ area = area, limit = 1, collision_mask = {item = true, object = true} } == 1 then 
     return false
  end

  for _, entity in pairs(surface.find_entities_filtered({area = area, type = {"resource"}, invert = true})) do
    if (entity.valid and entity.type ~= "tree") or math.random() < (half_size / 14) then
      entity.destroy({do_cliff_correction = true, raise_destroy = true})
    end
  end

  return true
end

---@param ruin Ruin
---@param half_size number
---@param center MapPosition
---@param surface LuaSurface
spawning.spawn_ruin = function(ruin, half_size, center, surface)
  if surface.valid and clear_area(half_size, center, surface) then
    local vars = parse_variables(ruin.variables)
    spawn_entities(ruin.entities, center, surface, vars)
    spawn_tiles(ruin.tiles, center, surface)
    no_corpse_fade(half_size, center, surface)
  end
end

---@param ruins Ruin[]
---@param half_size number
---@param center MapPosition
---@param surface LuaSurface
spawning.spawn_random_ruin = function(ruins, half_size, center, surface)
  --spawn a random ruin from the list
  spawning.spawn_ruin(ruins[math.random(#ruins)], half_size, center, surface)
end

return spawning
I also overridden:

Code: Select all

AbandonedRuins_1.1.6\spawning.lua
Line 38: if not prototypes.recipe[extra_options.recipe] then
Line 91: local prototypes = prototypes.entity
Line 104: local prototypes = prototypes.tile

AbandonedRuins_1.1.6\expression_parsing.lua
Line 48: for k in pairs(prototypes.get_entity_filtered({{filter = "type", type = t.entity_type}})) do

AbandonedRuins_1.1.6\utilities.lua
Line 55: local fluids = prototypes.fluid
Given these inputs, is your recommendation still relevant?
User avatar
IsaacOscar
Filter Inserter
Filter Inserter
Posts: 840
Joined: Sat Nov 09, 2024 2:36 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by IsaacOscar »

Keysivi wrote: ↑Sun Dec 15, 2024 2:27 pm Given these inputs, is your recommendation still relevant?
Yup, my random guess was right, the source of your problem is this line:

Code: Select all

local function spawn_entity(entity, relative_position, center, surface, extra_options, vars, prototypes)
In particular the 'prototypes' at the end. This is defining a paramater called prototypes, which makes the 'prototypes' thing defined by factorio inaccessible within the function (prototypes.recipe will look for a recipe field in that function parameter).
Keysivi
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Feb 07, 2022 5:29 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by Keysivi »

Thank you very much! I'm not doing this because I have a good life. Unfortunately, the creator of this mod does not want to update his mod at the moment...

If I manage to revive this mod. I will try to contact its creator to determine what to do with it further - should I make my own fork, or will he update the original himself..

The latter, of course, is the best. Because it is very difficult for me to support complex mods. For example, I had to abandon this fork https://mods.factorio.com/mod/Realistic ... balance_K2...
User avatar
IsaacOscar
Filter Inserter
Filter Inserter
Posts: 840
Joined: Sat Nov 09, 2024 2:36 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by IsaacOscar »

Keysivi wrote: ↑Sun Dec 15, 2024 2:51 pm Thank you very much! I'm not doing this because I have a good life. Unfortunately, the creator of this mod does not want to update his mod at the moment...

If I manage to revive this mod. I will try to contact its creator to determine what to do with it further - should I make my own fork, or will he update the original himself..

The latter, of course, is the best. Because it is very difficult for me to support complex mods. For example, I had to abandon this fork https://mods.factorio.com/mod/Realistic ... balance_K2...
Well I find programming things fun, but I don't have the attention span to maintain anything complex, so I usually keep any complex code I write to myself...

If you're going to modify mods a lot though, you should probably read a book on programming or something that also gets you to write programs.
Keysivi
Fast Inserter
Fast Inserter
Posts: 108
Joined: Mon Feb 07, 2022 5:29 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by Keysivi »

It seems that all the errors have been fixed.... Thank you very much for your help. If I make a fork, I will definitely write about everyone who helped me in this work.

Your advice is very useful. True, there is a nuance. It is too late for me to change my profession... And in order to write programs well, it is not enough to read one book.

I am used to learning new directions by solving small, but personally interesting problems for me.. Exactly as I am doing it now.... This is how I have mastered Adobe Photoshop to perfection... I have also mastered HTML and CSS to perfection... And a little familiarity with the JS jQuery framework allows me to work with Lua mods now

And if I start with "Hello World" - I'm afraid I will quickly get bored. And working this way, I can even, in parallel, bring a little benefit to the Factorio community...
User avatar
IsaacOscar
Filter Inserter
Filter Inserter
Posts: 840
Joined: Sat Nov 09, 2024 2:36 pm
Contact:

Re: Error updating mod for Factorio 2.0 (continued)

Post by IsaacOscar »

Keysivi wrote: ↑Sun Dec 15, 2024 3:40 pm It seems that all the errors have been fixed.... Thank you very much for your help.
That was quick, I think I only needed to help you with 3 errors.
Keysivi wrote: ↑Sun Dec 15, 2024 3:40 pm It is too late for me to change my profession...
It's never too late to start a hobby!!
Keysivi wrote: ↑Sun Dec 15, 2024 3:40 pm And if I start with "Hello World" - I'm afraid I will quickly get bored. And working this way, I can even, in parallel, bring a little benefit to the Factorio community...
Fair enough, I'm sure there are many books out there that deal with solving different kinds of problems.
The first programming language book I read was about programming games. But I find programming itself to be interesting, even if I have no interest in what the program actually does (but I also like abstract mathematics, so I'm wierd).
Post Reply

Return to β€œModding help”