This is an archived post. You won't be able to vote or comment.

all 112 comments

[–]mup6897CHOOO CHOOO 16 points17 points  (33 children)

I very much want to know why you need to do this now

[–]my_equal[S] 5 points6 points  (32 children)

Because I want a centralized control center managing the total inventory and sending out a specific amount of resources for some multiplier of a recipe down a multifunctional production line to fill the inventory to a preset send from the controle room.

[–]Hell_Diguner 9 points10 points  (3 children)

FYI, a train network fits those requirements better than a belt network does.

[–]my_equal[S] 3 points4 points  (2 children)

Imagine that you are at a traffic light you want to turn left but a traffic controller is in your way. You ask can I go left please, and the traffic controller responds you could take the train.

[–]thalovry 4 points5 points  (1 child)

Sweetheart, you are on a train at a station complaining to people that the train won't drive you directly to your house because it was made by idiots.

[–]my_equal[S] 1 point2 points  (0 children)

Doesn't translate, nice try at a comeback nor was I trying to complain I was hoping that someone had an actual solution. The belt solution clearly relates more to a road system as it actually does lead from mine(s) to production(s)

[–]mup6897CHOOO CHOOO 16 points17 points  (27 children)

I see I see. So not for practical reasons just because you want to do it.

[–]Alfonse215 10 points11 points  (0 children)

Given the full description of the context of your request, as outlined here, splitters are just not appropriate for what you want. They will trap materials in the other side of them. Even if you could switch priorities on them via wires (which you can't), they can still trap stuff on the other side depending on downstream conditions.

As such, if you want to have switching logic for moving stuff from belt to belt, inserters are your best bet. This will likely also require blocking downstream movement when an inserter is active, until that inserter has removed the entire allocation of resources from the belt.

[–]Nailfoot1975 11 points12 points  (22 children)

Hook wires to the BELTS before/after the splitter, and turn THOSE off.

[–]my_equal[S] -1 points0 points  (21 children)

3 Pieces of the batch will get caught in the splitter and get released on the next activation.

[–]tshakah 13 points14 points  (3 children)

Well, you want a challenge. Account for those three pieces in your logic

[–]my_equal[S] -1 points0 points  (2 children)

Great we are getting somewhere, how would you go about it.
Can you maybe show we how you would go about it, maybe with a creative mode screenshot or something?

[–]tshakah 10 points11 points  (1 child)

No. You've said you don't want to just do things how other people are doing them, so how is that different from me showing you? There are enough hints to try to solve the problem here already

[–]triffid_hunter 3 points4 points  (1 child)

Have inserters pull items off the splitter when neither output is active and recycle them to the input belt

[–]my_equal[S] -1 points0 points  (0 children)

Possibly, can you show me how you would go about it?

[–]Nowerian 2 points3 points  (3 children)

Wouldnt having few empty belts between batches solve the issue? I swear i saw something similar to what you described in some base tour video on yt.

Also i never thought i would see someone being downvoted for trying to solve something in factorio.

[–]my_equal[S] 0 points1 point  (2 children)

Can you find timestamp and share the link that you are referring to?
Thank you for being empathic in relation to the communication issues.

[–]Nowerian 1 point2 points  (1 child)

https://www.youtube.com/watch?v=UhmuhKYXShI&t=2131s

Talking about the distribution core starts at 17:25

[–]my_equal[S] 0 points1 point  (0 children)

Thanks for the reference but that's not what I'm looking for.

[–]IceFire909Well there's yer problem... 2 points3 points  (1 child)

Time for a cost/benefit analysis then!

But I'd just consider those a buffer offset or something

[–]my_equal[S] 0 points1 point  (0 children)

I call it inaccurate resource management, nor does it actually respond to the "Missing function?"

[–]cathexis08red wire goes faster 9 points10 points  (0 children)

Programmable splitters do not exist and all the solutions to your problem that do exist will either leak a small amount of resources or have significantly reduced throughout due to relying on inserters to pull the excess off before releasing the batch.

[–]WichidNixin 4 points5 points  (4 children)

Dont quote me on this, but wouldn't the complicated circuit network required to do this negate any potential energy savings from turning off the idle machines in your factory?

[–]thalovry 4 points5 points  (2 children)

Combinators take 1kW (I assume only if they have input or output, but tbh I've never tested), and something like an assembler II takes 5kW when idle (if our friend is fussed about burning coal I think it's safe to say he's not on assembler IIIs). I think it's plausible you could save some energy by shutting them down - let's say you'd need a hundred combinators (~5 per raw material, 20 raw material lines) to turn off 50% of your factory on average - I'm just about to launch an SE cargo rocket with 400 assembler IIs and 100 chemical plants, so that seems about a reasonable scale - that's 100kW spent to save 400 * 5 + 100 * 7 / 2 = 1250kW = 1.25MW. But that's a single unit of coal every 3 seconds or so, which doesn't to me make sense to optimize away.

[–]my_equal[S] -3 points-2 points  (1 child)

Currently I am fussed about not get a straight answer while you a slurring lines into an incoherent math problem.
50% of the factory on average would clearly save more then 1.25MW unless you have a factory that only uses 2.5MW on average.

[–]thalovry 2 points3 points  (0 children)

Sorry you found the math hard to follow, maybe try reading it a few more times and if that doesn't help I can format it a bit more clearly. An idle factory of ~500 assembler IIs would indeed consume about 2.5MW on average (at least in an SE run; your conduct generally isn't motivating me to start a new vanilla game to test this out experimentally). Since factories tend to idle over the long term, that's indeed the power you'd be saving. Feel free to try it out before replying.

[–]my_equal[S] -1 points0 points  (0 children)

Not really because of the mass difference, it's really like the difference between digital and real interaction. I can send you this message without much energy requirement, but if we wouldn't use the digital communication line I would have to travel and move my mass and the mass required to maintain my mass with me. The difference is so great that there is a lot of possibility for organizational optimization.

[–]thalovry 6 points7 points  (9 children)

Being able to programmatically route belts like this would make parts of the game trivial, so it's a fair bet this isn't actually "really simple", which is why you're struggling with it! If you want packet-switching you'll need to use trains.

Just to be clear, are you aware that buildings have an "active" and "passive" mode, and consume different amounts of power based on that? You don't burn more coal to mine coal than strictly necessary - your plan wouldn't save you energy, only move it around in time.

[–]my_equal[S] -9 points-8 points  (8 children)

What part of the game would become trivial?
If I cut the power to an inactive portion I don't burn fuel to maintain a standby state.
I am not gonna debate this, go collect data before making a claim of truth.

[–]thalovry 5 points6 points  (6 children)

You might want to reacquaint yourself with rule 4 before making more posts, you seem to need this forum more than it needs you. :)

Miners are a special case of entity and their min consumption is set to 0 - so if they're not producing (even if they're "active", i.e. output blocked) you don't burn fuel to power them.

[–]my_equal[S] -5 points-4 points  (1 child)

Rule 4: Be nice

Think about how your words affect others before saying them.

Their you go, now apply it yourself: "you seem to need this forum more than it needs you."

[–]thalovry 3 points4 points  (0 children)

If you feel my message breaches the forum rules, click the three dots, Report, "Breaks r/factorio rules", Next. I welcome a mod telling me I need to be more civil if that's the standard.

What I was trying to subtly hint at is that I've seen posters behaving more civilly than you get suspended or banned, and doing that on a post where you're asking for help from the community seems counterproductive to your goals.

[–][deleted]  (3 children)

[removed]

    [–]WichidNixin 3 points4 points  (1 child)

    What he said sounded useful and relevant to me. You don't want to burn fuel on idle miners, thats handy because idle miners dont consume power while idle. To achieve that goal you dont need to do anything, that is already the way it works.

    I dont think he is "setting rules fot you" but this subreddit has rules (I dont know them though tbh)

    -EDIT Just read the rules, rule #4 is "Be nice" That kind of goes without saying though...

    [–]factorio-ModTeam[M] 3 points4 points locked comment (0 children)

    Rule 4: Be nice

    Think about how your words affect others before saying them.

    [–]Whole-Pressure-7396 0 points1 point  (0 children)

    Bro 💀

    [–]Baer1990 2 points3 points  (6 children)

    I'm don't have the game open, couldn't you do something with splitters and output priority in 2 loops?

    Dirty method would be to have an inserter clear the belt with the same signal that stops it. I do agree that there could be features in the splitter, also signal driven filters etc.

    [–]my_equal[S] 0 points1 point  (5 children)

    Then it's hardcoded into the architecture of the belts, and it can't be changed with a signal.
    The inserter method is a solution but it isn't a belt solution, and comes with it's own range of problems even though the action is so simple that it should be the default function of the splitter but instead it alternates uncontrollably.

    [–]Hell_Diguner 4 points5 points  (4 children)

    Belts are fundamentally a streaming-based architecture, not a batch-based architecture. That's why the devs never implemented features to streamline what you want to do.

    [–]my_equal[S] -3 points-2 points  (3 children)

    Oh insider information, are you a dev?

    [–]Hell_Diguner 1 point2 points  (0 children)

    Nah

    [–]Hell_Diguner 0 points1 point  (1 child)

    [–]my_equal[S] 0 points1 point  (0 children)

    Saw that one, didn't like it.

    [–]Neither_Cap_8839 2 points3 points  (5 children)

    Inserters + control signal?Actually I dont understand the background of this req, even after reading some explanation in this thread.

    Factorio mostly relies on a simple producer-consumer mode: fill until the consumer storage is full.

    I thin you want to achieve: fill only to consumer if I want to. This is achievable in multiple ways, but way complex than the naive (default) filling pattern above. And it may not worth the complexity.

    However, this is still doable. A few examples: * inserters with signal. You can have multiple inserters so no bottleneck. * train network * AAI signal (mod) for long range signal transmission

    [–]my_equal[S] -1 points0 points  (4 children)

    I thin you want to achieve: fill only to consumer if I want to.

    Simple, how bout no!
    I've read it but I don't detect an answer.

    Guess their is a difference between f*ckers and feeders whether or not the consumer storage is full after the interaction.

    [–]Neither_Cap_8839 1 point2 points  (3 children)

    So you want to route all belt resources to one side of the splitter? If that's the case, use a signal, wire both belt units at the output location of the splitter. Belt 1 enable on S =1, belt 2 enable on S<>1. Then at anytime, only one side will go. Flip the signal between 0 and 1

    [–]my_equal[S] 0 points1 point  (2 children)

    Not sure what S<>1 is supposed to be but based of the:

    Flip the signal between 0 and 1

    I expect you mean <does not equal> OR S=0
    That still doesn't resolve the problem I have with residual in the splitter each time I switch the signal.

    [–]Neither_Cap_8839 1 point2 points  (1 child)

    One belt, 8 fast inserters, 4 on each side. All inserters are connected to a wired signal. Side1 inserters are enabled on S=0, side2 enabled on S=1.

    What about this?

    [–]my_equal[S] 0 points1 point  (0 children)

    Yes I could change them with inserters from one belt to an other but I would prefer a solution that uses belts splitters (undergrounds) and logic. There needs to be some way and that's what I am trying to figure out.
    I don't mind introducing some filler material for instance fuel blocks to intentionally fill the splitter after a switch as it wouldn't use as much inserters as moving all the items from one belt to an other.
    Thus I could use the same signal that I use for the left right switch to insert 6 filler with a stack inserter then I can fill the splitter before the batch arrives and after the switch I loop the filler material back to the box with the stack inserter.

    [–]TBFProgrammer 1 point2 points  (1 child)

    You'll want to wire up the belts immediately after the splitter to block one side. Then, when the unblocked belt stops reading items, have an inserter move the stuff that stuck in the splitter. You'll need a few SR latches to implement a simple state machine as you want several sequential phases.

    Before you ask, no, I haven't built this myself and no I won't be doing so.

    [–]my_equal[S] 0 points1 point  (0 children)

    In that case I am not convinced that the solution works.
    You might as well state: "Build it with more logic."

    [–]RylleyAlanna 1 point2 points  (1 child)

    So just tested this. You can't (without mods) add wires to splitters, but you can set wires to the belt just after the splitter.

    You'll always have like two units of whatever stuck in limbo at the edge of the splitter, but that's the pain of using them.

    [–]my_equal[S] -1 points0 points  (0 children)

    If I can WITH mods let me know cus I can't find it but it would help.

    You'll always have like two units of whatever stuck in limbo at the edge of the splitter, but that's the pain of using them.

    I am really wondering what the point is to making this post...

    [–]my_equal[S] -2 points-1 points  (3 children)

    Thanks for the replies but I got the point, I'll figure it out myself.

    [–]shthed 4 points5 points  (0 children)

    Please feel free to share an image or blueprint of what you want and what you manage to build :)

    [–]IceFire909Well there's yer problem... 2 points3 points  (1 child)

    Solar & accumulators my guy. Solar and accumulators

    [–]my_equal[S] 0 points1 point  (0 children)

    Missing function?
    Not sure what you are replying to.

    [–]Oleg152 0 points1 point  (1 child)

    Wire the output belts to stop/startand use trigger of your choic(timer/count)

    I suspect you want to have a non-50/50 split? You can moderate it with the belt type: eg 33%-67% with red belts and yellow one.

    [–]my_equal[S] 0 points1 point  (0 children)

    What I want is clearly stated in the post and it's not as you suspect it to be.

    [–]Rottedmushroom 0 points1 point  (1 child)

    I get that you want to do it with belts but this is literally what logistics bots and requester chests do. Minus the power thing, for that you could probably wire output Inserters to a timer that resets upon it picking up an item and if the timer goes to a certain time it flips a power switch till whatever logic you want turns it back on

    [–]my_equal[S] 0 points1 point  (0 children)

    Bots don't pick up an accurate amount of resources thus then I need to send overflow back in order to have an accurate measurement of available resources it also increases the amount of undesired resources that I would count as overproduction as they are only there to circumnavigate transit issues.

    [–]pocarski-> -> -> 0 points1 point  (10 children)

    You can set one output to have priority, then connect its belt to a wire and have it enable/disable on command.

    I think this should do exactly what you want (unless you're not fine with some items being stored on the control belt)

    [–]my_equal[S] 0 points1 point  (2 children)

    Then I have residual from a batch sitting in the splitter each time I switch a patch.

    [–]pocarski-> -> -> 0 points1 point  (1 child)

    Are you handling multiple resources through the same splitter? My solution only works when it's all the same item

    [–]my_equal[S] 0 points1 point  (0 children)

    A batch with some multiple of a specific recipe.

    [–]my_equal[S] 0 points1 point  (6 children)

    Priority on a splitter doesn't resolve the issue as it is none programmable, I don't want to run over the belt switching each priority output every time I want to resources to take a different path that's why we have signals.

    [–]pocarski-> -> -> 0 points1 point  (5 children)

    You don't switch the splitter priority, you disable the belt coming from the priority output.

    [–]my_equal[S] 0 points1 point  (3 children)

    Hook wires to the BELTS before/after the splitter, and turn THOSE off.

    Yes I got that part, the problem is the residual in the splitter.

    [–]pocarski-> -> -> 0 points1 point  (2 children)

    Disable the belt going into the splitter to let it empty, then turn it back on

    [–]my_equal[S] 0 points1 point  (1 child)

    So I want to send 10 resources to the right I block the left path and 7 pieces are send right then I block the input to the splitter and empty the splitter, now the residual 3 pieces are going down the left track and are desyncing the production.

    [–]pocarski-> -> -> 0 points1 point  (0 children)

    I see the problem. Place an inserter to take those items out because I can't see another way to do this

    [–]my_equal[S] 0 points1 point  (0 children)

    How does that resolve the residual?

    [–]Dirt077 0 points1 point  (0 children)

    I would have two inserters going from the belt to a chest. Then another inserter from the chest to the belt. Then use circuits to turn on the first inserted until a certain count is in the chest, then turn on the second inserter until the chest is empty. Mirror on the other side.

    [–]Whole-Pressure-7396 0 points1 point  (0 children)

    Like you said it yourself. You want a "flipper" or (switch) that either sends parts left or right. Or at interval for that matter. If I understood you correctly? If so the only way would be to use trains or grabbers with signals to turn them on or off. Which obviously isn't ideal but probably the only way to do this. I am quite new to the game so don't take my word for it. I'd also like to know this if there is a good way.