[MOD 0.16] Beltlayer

Topics and discussion about specific mods
Post Reply
User avatar
Therax
Filter Inserter
Filter Inserter
Posts: 331
Joined: Sun May 21, 2017 6:28 pm
Contact:

[MOD 0.16] Beltlayer

Post by Therax » Tue Sep 18, 2018 8:48 pm

Type: Mod
Name: Beltlayer
Description: Route your belts freely underground.
License: LGPL 3.0 (https://choosealicense.com/licenses/lgpl-3.0/)
Version: 0.1.6
Release: 2018-10-17
Tested-With-Factorio-Version: 0.16.51
Category: Item
Tags: Logistics
Download-Url: https://mods.factorio.com/mods/therax/b ... /downloads
Website: https://github.com/mspielberg/factorio-beltlayer

Description

Ever wanted your underground belts to turn corners?

Image

Ever wanted to run underground belts long distances without periodically popping up above ground?

Image

Ever wondered why underground belts cost the same whether you run them under one tile or their full length?

If the answer to any of these questions is yes, then you need Beltlayer.

How to use
  • Place down two Underground belt connectors of the desired belt speed, one at the entrance and one at the exit. Connectors are researched at the same time as the normal underground belts of the same speed and use the same recipe. You can use any rotation for these connectors.
  • Change the connectors between input and output mode with the rotation key (normally R).

    Image
  • As the description for the connector indicates, press CONTROL+B (rebindable) to show the editor interface. You will see the underground endpoints of the two connectors you placed. The editor interface carries over all passive belt entities (belts and normal underground belts; no splitters or loaders) that were in your inventory.

    Image
  • Place belts in the glorious freedom of the underground between the two connectors, using the belt mechanics you are already familiar with.

    Image
  • Press CONTROL + B again to return to your character in the overworld.
  • Profit!

    Image
How it works

Each underground belt connector is a pair of loaders, one on the surface and one on the special underground surface. Each loader is connected to an invisible chest. Periodic Lua scripting teleports items from the chest on the surface to the matching chest underground, or vice versa. The mod takes special care to minimize the UPS impact by transferring multiple stacks of items at once, and minimizing the amount of processing required.

Caveats
  • Items are mixed randomly in the left and right lanes of output belts. This makes Beltlayer only usable with belts carrying the same item in both lanes, or "sushi belt" designs that don't have any item placement requirements. This is a limitation of Factorio's loader entities. This may be possible to change in 0.17 if these feature requests are implemented:
  • If your belts are not full, you will clearly be able to see the bursts when items are transferred from one surface to the other, with a 50% saturated belt becoming alternately fully saturated and empty.
  • Connectors buffer quite a lot of items to allow multiple stacks to be transferred at once. When running with saturated belts, you will notice some strange gaps in belt flow when these buffers are being filled, but after a few update cycles the flow will stabilize.
  • Mining connectors, or mining belts from the editor interface, puts mined items into your character's inventory. If there is insufficient room, they will be spilled on the ground at your character's feet.
  • Connectors can only be placed on the main overworld map. No, you can't use these in space, Factorissimo buildings, or any other custom surfaces that may be added by other mods.
  • Blueprinting and deconstruction is implemented with Black Magic. There are almost certainly bugs. There are also a huge variety of possible scenarios in which you might encounter problems. Please report [cur]exactly[/cur] what you did leading up to a bug, including:
    • a screenshot showing the precise area selected with the blueprint or deconstruction tool,
    • a screenshot of the below ground editor matching the above ground screenshot,
    • the filter settings of the deconstruction tool, if applicable,
    • a screenshot of the blueprint setup window, if applicable, and
    • a description of what you expected to happen, and what happened instead.
Comparison to similar mods

Subterrain
  • Beltlayer belts can turn corners.
  • Beltlayer belts are blueprintable and can be built with construction robots.
Subterra
  • Subterra allows players and fluids to be transferred through the ground, as well as items.
  • Subterra allows splitters, assemblers, and complete subterranean bases.
  • Subterra preserves lane-identity for belts.
  • Beltlayer is substantially more UPS-efficient.
  • Beltlayer belts are blueprintable and can be built with construction robots.
FAQ

What's with the name of the mod?

A pipelayer is a person who installs ("lays down") pipes in underground areas. It is also a reference to the separate underground layer where the belts are routed.

Isn't this a little bit cheaty?

Yes, it absolutely is! The straight-line and length limitations of standard underground belts are part of Factorio's design challenge. Overuse of this mod may result in an unintended shortage of spaghetti in your factory.

On the other hand, you still have to move items on the surface to split, balance, and route items into and out of assembling machines, so the potentional for abuse is somewhat limited. Using this mod also introduces a new layer of complexity, where keeping track of where items are routed is no longer obvious just from looking at the surface. If you're not careful, you can make your own factory layout very confusing to navigate.
Last edited by Therax on Wed Oct 17, 2018 10:04 pm, edited 1 time in total.
Miniloader — UPS-friendly 1x1 loaders
Bulk Rail Loaders — Rapid train loading and unloading
Beltlayer & Pipelayer — Route items and fluids freely underground

User avatar
db48x
Fast Inserter
Fast Inserter
Posts: 103
Joined: Wed Mar 13, 2013 12:15 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by db48x » Sun Sep 30, 2018 3:02 pm

I haven't actually played a game with this mod yet, but I'm curious about your decision not to allow splitters on the underground level. Why not? it seems like a logical thing to do.

User avatar
Therax
Filter Inserter
Filter Inserter
Posts: 331
Joined: Sun May 21, 2017 6:28 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Therax » Tue Oct 02, 2018 7:17 pm

db48x wrote:
Sun Sep 30, 2018 3:02 pm
I haven't actually played a game with this mod yet, but I'm curious about your decision not to allow splitters on the underground level. Why not? it seems like a logical thing to do.
From a realism/suspension of disbelief perspective, splitters are active components with complex moving mechanical parts (the animation shows metal arms and doors), electronic circuits as internal components, and adjustable filter capability. It's not the sort of thing you bury underground, or it would be unmaintainable. The main goal is to remove the "unrealistic" restrictions on underground belt length and direction changes, which frequently take complex paths under the floor of actual industrial factories.

From a game balance perspective, I am not intending to allow anything more powerful than is already possible with normal underground belts, except allow them to be routed freely. I specifically did not want to trivialize the entire puzzle of belt system design, which includes finding sufficient open space to do balancing and distribution of resources between different belts, but just to simplify the sub-problem of belt routing through crowded spaces like beaconed assembler layouts.
Miniloader — UPS-friendly 1x1 loaders
Bulk Rail Loaders — Rapid train loading and unloading
Beltlayer & Pipelayer — Route items and fluids freely underground

User avatar
db48x
Fast Inserter
Fast Inserter
Posts: 103
Joined: Wed Mar 13, 2013 12:15 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by db48x » Wed Oct 03, 2018 7:11 am

I suppose that's fair, although I feel compelled to point out that the belt is a mechanical component that would require occasional inspection and service too. :)

User avatar
Therax
Filter Inserter
Filter Inserter
Posts: 331
Joined: Sun May 21, 2017 6:28 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Therax » Wed Oct 03, 2018 4:11 pm

The nice thing about simple linear belts is that you can put the motor and transmission at one end, above ground, and the payload is motionless with respect to the belt itself. Then the only underground moving parts are sealed rollers under the belt which can be designed for very long life.

A splitter has to be a active component at the point of the split, i.e. underground, and interact directly with the payload, exposing it to dust, rocks, etc. That's my justification, at least. :)
Miniloader — UPS-friendly 1x1 loaders
Bulk Rail Loaders — Rapid train loading and unloading
Beltlayer & Pipelayer — Route items and fluids freely underground

Master-Guy
Burner Inserter
Burner Inserter
Posts: 7
Joined: Sun May 27, 2018 8:10 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Master-Guy » Sat Oct 27, 2018 8:22 am

I've been trying to use Beltlayer for a few weeks now, but I keep getting an error:

Failed to load mods:
__beltlayer__/data-updates.lua:4:
__beltlayer__/prototypes/recipes.lua:46: bad argument #1 to 'ipairs' (table expected, got nil)

When I look at the code, I don't see root.ingredients being defined anywhere.
Can you please check this?

User avatar
Therax
Filter Inserter
Filter Inserter
Posts: 331
Joined: Sun May 21, 2017 6:28 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Therax » Mon Oct 29, 2018 1:17 am

Master-Guy wrote:
Sat Oct 27, 2018 8:22 am
I've been trying to use Beltlayer for a few weeks now, but I keep getting an error:

Failed to load mods:
__beltlayer__/data-updates.lua:4:
__beltlayer__/prototypes/recipes.lua:46: bad argument #1 to 'ipairs' (table expected, got nil)

When I look at the code, I don't see root.ingredients being defined anywhere.
Can you please check this?
root is the different root parts of the recipe, including "normal" and "expensive" variants for recipes that include those. What other mods are you using, because it sounds like one of your other mods contains an invalid recipe (i.e. one without any ingredients).
Miniloader — UPS-friendly 1x1 loaders
Bulk Rail Loaders — Rapid train loading and unloading
Beltlayer & Pipelayer — Route items and fluids freely underground

Master-Guy
Burner Inserter
Burner Inserter
Posts: 7
Joined: Sun May 27, 2018 8:10 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Master-Guy » Mon Oct 29, 2018 5:23 am

Therax wrote:
Mon Oct 29, 2018 1:17 am
Master-Guy wrote:
Sat Oct 27, 2018 8:22 am
I've been trying to use Beltlayer for a few weeks now, but I keep getting an error:

Failed to load mods:
__beltlayer__/data-updates.lua:4:
__beltlayer__/prototypes/recipes.lua:46: bad argument #1 to 'ipairs' (table expected, got nil)

When I look at the code, I don't see root.ingredients being defined anywhere.
Can you please check this?
root is the different root parts of the recipe, including "normal" and "expensive" variants for recipes that include those. What other mods are you using, because it sounds like one of your other mods contains an invalid recipe (i.e. one without any ingredients).
I'm using a huge mod pack, and yea there are multiple items without ingredients. Those items are free to hand-craft, but not to create in a ASM.
Simply suggesting to test if not (root.ingredients == nil), so you can be compatible with more/all mods.

Code: Select all

4_Way_Underground_Pipe_0.0.1.zip
aai-industry_0.2.4.zip
aai-motor-speed-tweak_0.0.2.zip
aai-programmable-structures_0.4.4.zip
aai-programmable-vehicles_0.4.8.zip
aai-signals_0.3.3.zip
aai-vehicles-chaingunner_0.3.1.zip
aai-vehicles-flame-tank_0.2.1.zip
aai-vehicles-flame-tumbler_0.3.1.zip
aai-vehicles-hauler_0.3.1.zip
aai-vehicles-laser-tank_0.3.1.zip
aai-vehicles-miner_0.3.5.zip
aai-vehicles-warden_0.2.1.zip
aai-zones_0.3.4.zip
AfraidOfTheDark_1.0.20.zip
angelsaddons-oresilos_0.4.0.zip
angelsaddons-petrotrain_0.3.3.zip
angelsaddons-pressuretanks_0.3.0.zip
angelsaddons-warehouses_0.3.0.zip
angelsbioprocessing_0.5.9.zip
angelsindustries_0.1.0.zip
angelsinfiniteores_0.7.3.zip
angelspetrochem_0.7.12.zip
angelsrefining_0.9.14.zip
angelssmelting_0.4.6.zip
auto-research_4.3.0.zip
AutoDeconstruct_0.1.11.zip
[beltlayer_0.1.6]
beltlayer_0.1.6.zip
BeltUpgrader_0.9.9.zip
bobangels-pipe-fix_0.16.6.zip
bobassembly_0.16.1.zip
bobclasses_0.16.2.zip
bobelectronics_0.16.0.zip
bobenemies_0.16.0.zip
bobgreenhouse_0.16.0.zip
bobinserters_0.16.8.zip
boblibrary_0.16.6.zip
boblogistics_0.16.23.zip
bobmining_0.16.0.zip
bobmodules_0.16.0.zip
bobores_0.16.2.zip
bobplates_0.16.5.zip
bobpower_0.16.8.zip
bobrevamp_0.16.3.zip
bobtech_0.16.6.zip
bobvehicleequipment_0.16.2.zip
bobwarfare_0.16.7.zip
Bottleneck_0.9.3.zip
cargo-ships_0.0.17.zip
CliffDeconstruct_0.0.5.zip
clock_0.16.0.zip
CraftingPriority_0.2.0.zip
dangOreus_1.5.4.zip
DeleteEmptyChunks_0.3.3.zip
DivOresity_1.0.1.zip
er-quickprint_0.1.3.zip
Factorissimo2_2.2.3.zip
far-reach_0.0.8.zip
FNEI_0.1.9.zip
GDIW_0.16.2.zip
helmod_0.7.11.zip
LB-Modular-Chests_0.16.6.zip
LogisticTrainNetwork_1.9.3.zip
Miner_Planner_0.10.1.zip
miniloader_1.6.4.zip
mod-list.json
mod-settings.dat
Modpack_Yi_Angel_0.16.0.zip
Nanobots_2.0.7.zip
NuclearRobots_0.0.5.zip
only-smelting_0.1.7.zip
OSave_0.0.3.zip
PCP_0.0.9.zip
PrivateBufferChest_0.0.5.zip
railloader_0.5.5.zip
recursive-blueprints_0.16.2.zip
Single-Splitter_0.0.13.zip
Squeak Through_1.2.2.zip
StromTL_0.1.2.zip
Subterranean_0.5.1.zip
Todo-List_16.5.1.zip
UltimateBelts_0.16.4.zip
upgrade-planner2_1.6.1.zip
upgrade-planner_1.5.3.zip
yi_engines_0.6.28.zip
yi_railway_0.6.21.zip
Yuoki_0.6.74.zip
z_yira_american_0.6.8.zip
z_yira_UP_0.6.10.zip
z_yira_yuokirails_0.6.12.zip

User avatar
Therax
Filter Inserter
Filter Inserter
Posts: 331
Joined: Sun May 21, 2017 6:28 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Therax » Mon Oct 29, 2018 11:40 pm

Master-Guy wrote:
Sat Oct 27, 2018 8:22 am
I've been trying to use Beltlayer for a few weeks now, but I keep getting an error:
This should be fixed in 0.1.8. There was a very odd interaction between AAI Industry and Bob's Logistics.
Miniloader — UPS-friendly 1x1 loaders
Bulk Rail Loaders — Rapid train loading and unloading
Beltlayer & Pipelayer — Route items and fluids freely underground

Master-Guy
Burner Inserter
Burner Inserter
Posts: 7
Joined: Sun May 27, 2018 8:10 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Master-Guy » Tue Oct 30, 2018 5:17 am

Therax wrote:
Mon Oct 29, 2018 11:40 pm
Master-Guy wrote:
Sat Oct 27, 2018 8:22 am
I've been trying to use Beltlayer for a few weeks now, but I keep getting an error:
This should be fixed in 0.1.8. There was a very odd interaction between AAI Industry and Bob's Logistics.
Just updated:

Code: Select all

Failed to load mods:
__beltlayer__/data-updates.lua:5:
__beltlayer__/prototypes/technologies.lua:40: syntax error near <eof>
Line 40:

Code: Select all

enddd
When the last two extra d's are removed, there are no errors. However, when I load the game, it does not place the undergrounds on the belt-plane.

User avatar
Therax
Filter Inserter
Filter Inserter
Posts: 331
Joined: Sun May 21, 2017 6:28 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Therax » Tue Oct 30, 2018 5:34 am

Master-Guy wrote:
Tue Oct 30, 2018 5:17 am
Line 40:

Code: Select all

enddd
When the last two extra d's are removed, there are no errors. However, when I load the game, it does not place the undergrounds on the belt-plane.
No idea how that typo snuck through my testing. I can't reproduce your problem with undergrounds not getting placed on both layers, however.
Miniloader — UPS-friendly 1x1 loaders
Bulk Rail Loaders — Rapid train loading and unloading
Beltlayer & Pipelayer — Route items and fluids freely underground

Master-Guy
Burner Inserter
Burner Inserter
Posts: 7
Joined: Sun May 27, 2018 8:10 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Master-Guy » Tue Oct 30, 2018 5:40 am

Therax wrote:
Tue Oct 30, 2018 5:34 am
Master-Guy wrote:
Tue Oct 30, 2018 5:17 am
Line 40:

Code: Select all

enddd
When the last two extra d's are removed, there are no errors. However, when I load the game, it does not place the undergrounds on the belt-plane.
No idea how that typo snuck through my testing. I can't reproduce your problem with undergrounds not getting placed on both layers, however.
To make sure I disabled all mods, except for beltlayer, and it still does not place the undergrounds on the 2nd plane.
It does show that layer, and the first time I have to load it, it needs to chart the map, but the 2nd plane does load when pressing CTRL+B. It just doesn't show the undergrounds. Will try to do some short testing myself as well

Master-Guy
Burner Inserter
Burner Inserter
Posts: 7
Joined: Sun May 27, 2018 8:10 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Master-Guy » Tue Oct 30, 2018 5:43 am

Master-Guy wrote:
Tue Oct 30, 2018 5:40 am
To make sure I disabled all mods, except for beltlayer, and it still does not place the undergrounds on the 2nd plane.
It does show that layer, and the first time I have to load it, it needs to chart the map, but the 2nd plane does load when pressing CTRL+B. It just doesn't show the undergrounds. Will try to do some short testing myself as well
Nevermind.. I made a mistake myself there. It's a separate item, not the regular undergrounds of course.. When using the connectors, it does work properly.

LutraMage
Manual Inserter
Manual Inserter
Posts: 2
Joined: Sat Dec 08, 2018 7:59 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by LutraMage » Sat Dec 08, 2018 8:11 pm

TheRax, I'm uploading the save game as discussed. Many thanks for taking the time to look at this, I think your Beltlayer Mod is awesome, and would very much like to be able to use it again. Thanks.

User avatar
Therax
Filter Inserter
Filter Inserter
Posts: 331
Joined: Sun May 21, 2017 6:28 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by Therax » Sun Dec 09, 2018 1:45 am

LutraMage wrote:
Sat Dec 08, 2018 8:11 pm
TheRax, I'm uploading the save game as discussed. Many thanks for taking the time to look at this, I think your Beltlayer Mod is awesome, and would very much like to be able to use it again. Thanks.
Doesn’t look like you uploaded anything?
Miniloader — UPS-friendly 1x1 loaders
Bulk Rail Loaders — Rapid train loading and unloading
Beltlayer & Pipelayer — Route items and fluids freely underground

LutraMage
Manual Inserter
Manual Inserter
Posts: 2
Joined: Sat Dec 08, 2018 7:59 pm
Contact:

Re: [MOD 0.16] Beltlayer

Post by LutraMage » Sun Dec 09, 2018 5:15 pm

This is frustrating, I keep loading the zipped game save and it doesn't appear in the message. I've uploaded it using the 'Attachments' tab and I've tried dragging and dropping it into the message box, It appears in the list of added files, but when I submit the Post, the attachment is not appearing. I'll try it one more time with this message.

___________

I think I understand the problem. The 'game save' file is actually a zipped folder with several files in it. I tried to attach some of them but the Message Board won't let me upload the level.dat file or the other dat files, it says they are invalid file extensions. Many thanks for your help with this, but I think I'll just leave it, don't want to take up any more of your time. Cheers.

Protheus7
Burner Inserter
Burner Inserter
Posts: 14
Joined: Sun Aug 19, 2018 8:49 am
Contact:

Re: [MOD 0.16] Beltlayer

Post by Protheus7 » Thu Dec 27, 2018 9:23 am

upon loading the game with version: beltlayer_0.2.5 I get below error (screenshot)

In line 66 of prototypes/entities:

Change: belflayer_buffer.selection_box = nil
to: beltlayer_buffer.selection_box = nil

and all should load fine.
Attachments
Capture8.JPG
Capture8.JPG (30.26 KiB) Viewed 379 times

Post Reply

Return to “Mods”

Who is online

Users browsing this forum: No registered users and 7 guests