Logistic Network Channels


Adds communication channels to logistic networks. Logistic entities can be assigned to different channels, and will only form a network with other entities on the same channel. This allows for creating separate logistic networks in areas where they would normally overlap and be merged by the game into one network.

4 months ago
0.17 - 1.1
6187
Owner:
ceresward
Source:
https://github.com/ceresward/factorio...
Homepage:
https://github.com/ceresward/factorio...
License:
MIT
Created:
2 years ago
Latest Version:
1.1.1 (4 months ago)
Factorio version:
0.17 - 1.1
Downloaded:
6187 times

Description

Logistic Network Channels adds to logistic networks the concept of communication channels. Logistic entities can be assigned to different channels, and entities will only form a network with other entities on the same channel. This allows the player to create separate logistic networks in areas where they would normally overlap and be merged by the game into one network. Separate networks are useful because logistic bots are often faster and more power efficient when they can be focused on specific tasks, instead of being constantly reassigned to fulfill different requests from the entire network.

How it works

The mod works by creating factions for each channel that are linked with the main player faction(s). For example, when an entity of the player faction is assigned to channel 1, that entity gets transferred to faction player.channel.1. The channel factions are configured to have mutual friend and cease-fire relationships with the main player faction, which allows the player to continue interacting with the entities as thought they were still part of the main player faction. Channel 0 is special - entities on channel 0 are assigned to the main player force, as they normally are. And if the channel limit is reduced while a map is running, any entities that get orphaned get reassigned back to channel 0.

Features

  • Assign logistics entities to up to 50 different network channels using the entity GUI
  • Map-configurable setting for the channel limit (1-50; setting the channel limit to 1 disables mod features)
  • Copy channel setting when copy-pasting entity settings
  • Mod checks in a generic way for logistics entities, so modded entities should just work
  • Use the channel changer to quickly view and change channel settings

Limitations

  • Factorio has a limit of 60 forces per map. So the maximum channel limit is set conservatively at 50 channels. Note that other mods may also add forces to the game, so the effective limit may be even lower. Also, in multiplayer, there may be multiple player forces. Each player force will have its own set of channels, so take that into account. Example: in a PVP map with three player forces, the channel limit should be set no higher than 18 (18 * 3 = 54).
  • Some logistics-related functionality will only work with networks and entities assigned to the default channel (channel 0):
    • Personal logistic requests will only be served from the default channel
    • Map mode will only highlight networks on the default channel
    • The Logistic Networks GUI (L key) will only show networks on the default channel
    • Construction bots will only build ghosts when operating on the default channel. They can repair entities from non-default channels, but only if they are operating on that same channel.
  • Channel force diplomacy (friend/cease-fire) is not currently being kept in sync with the main force diplomacy. For example, suppose a new force foobar is created mid-game, and is given cease-fire with the player force. The cease-fire is not currently propagated to channel forces (player.channel.# ). This means entities from foobar may incorrectly attack the player's logistic network entities on non-default channels, due to the missing diplomacy rule.
  • Channel force entities cannot be blueprinted with the vanilla blueprint tool. This can be partially worked around using the Friend Blueprints mod

Roadmap

Please see the Github project for the development roadmap

Attribution