[Idea] Circuit network connectable object that pauses game

This is the place to request new mods or give ideas about what could be done.
Post Reply
User avatar
pointa2b
Long Handed Inserter
Long Handed Inserter
Posts: 73
Joined: Sun Feb 28, 2016 9:05 am
Contact:

[Idea] Circuit network connectable object that pauses game

Post by pointa2b »

Image

Why
With the upcoming expansion and the vast amount of material processing required for quality, megabases and advanced research, a lot of people will be running the game AFK. Despite the huge benefit this brings, it comes with an obvious problem: entropy! We all know the variety of ways a base can grind to a halt (or perish completely) if left unattended:
  • Resources or items can run dry
  • Traffic jams on rail networks
  • Ammo running out for defenses
  • Defenses overrun entirely
  • etc...
Circuitry can be used in all kinds of clever ways to alert you of this. Having an automated trigger to pause the game in times like this would save a lot of headache in times when the base needs you! On the other hand, maybe you're grinding up for that legendary spidertron or box of legendary modules, and you want the game paused once you get that.

How it works
Functionally its pretty similar to a speaker. It has the triggering logic GUI just as any other circuit network object uses to activate it. Just like speakers function, for ease of locating it after it fires, hardwire it flashing on the map as well as in the main circuit GUI for some ample amount of time. Graphic icon can be customized in the object's GUI. Output text can also be customized, just like a speaker. There should be some trivial amount of electric consumption required, perhaps in line with other circuit network combinators if not slightly more.

Visual Appearance
Completely up to you, but in my mind it was a several foot wide satellite dish pointed up at the sky, sitting on either a concrete pad or a utility box like you'd see in a neighborhood. 1x1 would be nice, otherwise 2x2?

Use in game
There is no limit to placing these, just as any other item. Players will either have one centralized 'pauser' that all triggers route into, or they'll be distributed throughout the map, closest to the places that warrant triggering pause.

Additional notes
Include a mod option to set the timeout for how often pauses can be triggered with this item. This is to prevent pause from being fired continuously, and can give some padding of however many seconds/minutes/hours you want that acts as a timer for the next time pause can be triggered.

Conclusion
For those of us serious about the game who want to push our bases to the limit in the upcoming expansion, this will be a valuable tool that gives an added level of protection and control when the game runs unattended.
Last edited by pointa2b on Mon Oct 09, 2023 10:50 pm, edited 1 time in total.

Qon
Smart Inserter
Smart Inserter
Posts: 2158
Joined: Thu Mar 17, 2016 6:27 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by Qon »

A great idea! I could use this for making debugging breakpoints in my circuits as well, without adding massive and complicated ways to partially pause the execution of the combinator network that doesn't really work anyways since it can't stop all combinators and the interaction with other objects.

I could make a rough prototype fairly quickly since I have done other combinator mods before. Would just need to alter a few lines.
My mods: Capsule Ammo | HandyHands - Automatic handcrafting | ChunkyChunks - Configurable Gridlines
Some other creations: Combinassembly Language GitHub w instructions and link to run it in your browser | 0~drain Laser

Qon
Smart Inserter
Smart Inserter
Posts: 2158
Joined: Thu Mar 17, 2016 6:27 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by Qon »

Beta release! Pause Combinator by Qon
Read description. You have been warned.
My mods: Capsule Ammo | HandyHands - Automatic handcrafting | ChunkyChunks - Configurable Gridlines
Some other creations: Combinassembly Language GitHub w instructions and link to run it in your browser | 0~drain Laser

User avatar
pointa2b
Long Handed Inserter
Long Handed Inserter
Posts: 73
Joined: Sun Feb 28, 2016 9:05 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by pointa2b »

Very nice, you got that up quite fast! I didn't even know it was possible to freeze the game in the way that does, I figured there it would be some mod API thing that goes the normal pause route. I think I like your way even better, provided there is eventually some kind of persistent notice on the screen the game is paused.

Good work.

User avatar
pointa2b
Long Handed Inserter
Long Handed Inserter
Posts: 73
Joined: Sun Feb 28, 2016 9:05 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by pointa2b »

I wasn't sure whether to post this or not since it can be done with additional circuit logic-

One more thing that would make this easier to use- an option on each pause combinator/emitter to only fire once per given signal. Meaning if the signal to pause is constant and the cooldown time has been reached, it won't activate. It would only fire if the cooldown is reached AND it is a 'new' signal (ie, the condition for activation became false and then true again).

As an example, if its triggered by a tank of oil getting low and someone has already seen/unpaused, it won't keep constantly bothering someone every x interval as they fix the problem. It would only activate again if disabled and then enabled again.

Just throwing that out there if you think its a good idea.

Qon
Smart Inserter
Smart Inserter
Posts: 2158
Joined: Thu Mar 17, 2016 6:27 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by Qon »

Sounds like a great idea! For my use case I don't really need any more safety features since I'm always in editor. But I think most users will use it more like you, and for your usecase triggering only on rising edge would probably help more than a cooldown. But a cd is still needed as well for you.

I might take a bit more time on updates though. Adding just a cd is more work than all the work I've spent on the mod so far. I just renamed artillery combinator and that was 99% of the work lol.
My mods: Capsule Ammo | HandyHands - Automatic handcrafting | ChunkyChunks - Configurable Gridlines
Some other creations: Combinassembly Language GitHub w instructions and link to run it in your browser | 0~drain Laser

User avatar
pointa2b
Long Handed Inserter
Long Handed Inserter
Posts: 73
Joined: Sun Feb 28, 2016 9:05 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by pointa2b »

No worries! There is still quite a lot of time so its no rush at all. Maybe someone else who sees value in this could volunteer as well. Otherwise I can learn lua at some point and do what I can (I'm pretty experienced with Python, hopefully it isn't too big of a leap).

Qon
Smart Inserter
Smart Inserter
Posts: 2158
Joined: Thu Mar 17, 2016 6:27 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by Qon »

Learning lua if you know python is pretty easy. The work you have to do is learning the basic mod structure, factorio data lifecycle and how to build the proper data structures to maintain data for safe and quick retrieval. After that it it's just a bit of learning how the API is structured so you can find the right thing quick in the docs.
My mods: Capsule Ammo | HandyHands - Automatic handcrafting | ChunkyChunks - Configurable Gridlines
Some other creations: Combinassembly Language GitHub w instructions and link to run it in your browser | 0~drain Laser

EustaceCS
Fast Inserter
Fast Inserter
Posts: 169
Joined: Tue Dec 15, 2020 5:41 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by EustaceCS »

Additional notes
Include a mod option to set the timeout for how often pauses can be triggered with this item. This is to prevent pause from being fired continuously, and can give some padding of however many seconds/minutes/hours you want that acts as a timer for the next time pause can be triggered.
Query: why would it need a built-in timeout?

In my head, if SOMETHING was deemed worthy to put the WHOLE game into a halt state, then it's SOMETHING the player woudln't want to pause the game AUTOMATICALLY again until the cause is fixed.
(especially if it's something so serious so a mere warning from Programmable speaker about impending problem can't cover this)
I. e. multiple pauses from manually (including circuit network signal) rearm'able combinators = yay.
Auto-pause-again through some built-in feature which is not controllable otherwise = nay.

If I'd ever assemble such mod for myself, I'd probably use it as "consumable" building (landmine style): if it procs, it's gone for good. And you can cancel auto-rebuild as necessary during a pause. Which seems to cover ALL probable use cases I can think of.

Qon
Smart Inserter
Smart Inserter
Posts: 2158
Joined: Thu Mar 17, 2016 6:27 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by Qon »

EustaceCS wrote:
Sat Oct 28, 2023 3:24 pm
Additional notes
Include a mod option to set the timeout for how often pauses can be triggered with this item. This is to prevent pause from being fired continuously, and can give some padding of however many seconds/minutes/hours you want that acts as a timer for the next time pause can be triggered.
Query: why would it need a built-in timeout?
It's answered in the text you quoted, read it!
You basically lose your entire save if there is no unpause. Permanent pause = bad.
Yes you can go into editor to end it, but if you are playing without editor then that isn't a real option.
EustaceCS wrote:
Sat Oct 28, 2023 3:24 pm
If I'd ever assemble such mod for myself, I'd probably use it as "consumable" building (landmine style): if it procs, it's gone for good. And you can cancel auto-rebuild as necessary during a pause. Which seems to cover ALL probable use cases I can think of.
If you are going to force the player to go into editor mode to unpause, why would any feature at all matter to you, except pausing?
The mod doesn't need unpause, because you can do that from editor.
The mod doesn't need a cooldown or a single-use mechanic, because you can remove the item from the editor.
My mods: Capsule Ammo | HandyHands - Automatic handcrafting | ChunkyChunks - Configurable Gridlines
Some other creations: Combinassembly Language GitHub w instructions and link to run it in your browser | 0~drain Laser

EustaceCS
Fast Inserter
Fast Inserter
Posts: 169
Joined: Tue Dec 15, 2020 5:41 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by EustaceCS »

You basically lose your entire save if there is no unpause. Permanent pause = bad.
I don't see how it can be deduced from
Include a mod option to set the timeout for how often pauses can be triggered with this item.
, honestly.

Especially, since my response implies some form of unpause already and concerns pausing the game repeatedly.

Maybe we both need to take a really deep breath and try again.

Qon
Smart Inserter
Smart Inserter
Posts: 2158
Joined: Thu Mar 17, 2016 6:27 am
Contact:

Re: [Idea] Circuit network connectable object that pauses game

Post by Qon »

EustaceCS wrote:
Sun Oct 29, 2023 3:13 am
Especially, since my response implies some form of unpause already and concerns pausing the game repeatedly.

Maybe we both need to take a really deep breath and try again.
If the pause combinators were disabled after being triggered then the game wouldn't accidentally be permanently paused (infinitely re-paused). That is true. I got lost a bit in the first part, sorry.

But I don't want to manually re-enable the pause combinators each time, that isn't a good solution for my use cases. And cooldowns aren't really my thing either. But I plan on having a separate unpause hotkey/button that disables the pause combinators that were triggered (switches output state to off, and doesn't trigger in this state). For those that prefer that or as another way to get out when you get trapped in a pause loop.

I use the pause combinators for breakpoints in a circuit, I want to be able to step through the loops with just a button. And it triggering quickly is a wanted feature if the loops go fast. I wouldn't have time to find and enable the pause combinator again (to catch the next time condition is met) in the maybe 10 ticks (might take longer so I can't just step through 10 ticks) it would take for the condition to happen again sometimes. And it would be seriously annoying to do it 20 times when I can just press a key on my keyboard over and over much easier.

I might have 1 pause combinator that can be triggered by several conditions, and the pause combinator might not be near any of the triggering conditions.
Say I have 1 central pause combinator in a base, and some triggering conditions in outpost to warn me when they get breached. If the combinators get disabled then my warning system stops functioning for all other outposts when I go fix the first breached outpost.

In Qonclusion: Neither cooldowns, edge detection or disabling works for all use cases. So I'll have to add several so each user gets what they want.
I'm not sure cooldowns really will be that useful with edge detection and disabling though.
My mods: Capsule Ammo | HandyHands - Automatic handcrafting | ChunkyChunks - Configurable Gridlines
Some other creations: Combinassembly Language GitHub w instructions and link to run it in your browser | 0~drain Laser

Post Reply

Return to “Ideas and Requests For Mods”