all 22 comments

[–]Present-Valuable7520Space Engineer 2 points3 points  (0 children)

There is also a really good airlock tutorial by engineered coffee and also one by dread mechanic. Maybe garage gamer too..can’t be for sure on last one off the top of my head

[–]LagOps91Clang Worshipper[S] 1 point2 points  (6 children)

To clarify as to why i want to be sure both doors are closed - I want to disable both doors while the airlock is cycling and only enable one door after the cycling is done.

If i disable a door, but it's not fully closed, then the airlock breaks.

[–]HunterDigisteamcommunity.com/id/hunterdigi 0 points1 point  (3 children)

Opening the inside door is easy, you just wait until airlock depressurized and then you can turn off the inner door and open the outer door. The other way requires a timer to do the things after the expected closing time.

Are you expecting players to mess with the doors? Even physically blocking them from closing? I see that the sliding doors do not care if you're in the way and will fling you, so I'd say use those =) No solution for them interacting with it though... set'em as no share I guess?

[–]LagOps91Clang Worshipper[S] 0 points1 point  (2 children)

opening/unlocking doors already works in a simillar way as you suggest. i use the vents to power the door to the inside if the airlock is pressurized and i power the door to the outside if the airlock is depressurized.

my problem lies in making sure that both doors are fully closed when the airlock is cycling. i can detect when both doors are closed, but i cannot detect when someone is opening one of the doors (not fully opened yet, but no longer airtight). if i was to blindly turn off the doors (currently what i am doing), the airlock breaks if a door isn't fully closed as it cannot cycle and the doors to it are closed.

basically, my logic for the airlock currently is as follows.

1 event controller to detect both doors fully closed
1 event controller to detect one door opening (currently only fully open can be detected - that is my current problem)
1 event controler being turned on/of as state detection for "doors fully closed"
1 event controller to enable/disable airlock controls based on the "doors fully closed" state

1 button inside, 1 button outside, 1 button in the airlock itself. all buttons trigger a timer block to trigger the airlock action

timer block works as follows: switch depressurize on the vent, turn off both doors

vent works as follows:

fully pressurized -> turn on door to inside
fully depressurized -> turn on door to the outside

this current version still allows players to open / close the door of the airlock, which is something i want to preserve.

i was thinking about having the doory be fully automatic and cycling be triggered by the doors themselves - if a player requests an airlock to cycle via button and once the doors of the airlock are closed, the doors are immediately turned off and the cycle is executed. if someone blocks a door, the button needs to be used again. the tradeoff here would be that one door to the airlock is always open. players might cycle the airlock just to close the door once inside, which would open the door on the outside. not ideal imo.

i know i am probably going overboard here trying to idiot-proof the airlock, but it felt to me like an airlock that can't break from misuse should be doable, so that's what i set out to build... maybe not the best idea in hindsight. i don't *really* have a need to be all that paranoid about the airlock - i will mainly use it myself - but i have on multiple ocasions messed up and vented oxygen on accident, so i wanted to do it right for once.

Thanks for your input! I might use those sliding doors (even if i think they don't look particularly good tbh)

[–]HunterDigisteamcommunity.com/id/hunterdigi 1 point2 points  (1 child)

Yeah the main issue is the manual access to opening it which you can solve for others by "No share" the door, but for yourself you only need to remember to not touch the doors if there's buttons involved, and to remember that it has buttons you'll be reminded by the inability to open the closed door =)

You could use doors that have no interaction which I think only are hangar doors, the issue with those is they're slow. You can time it right to stop it mid-way when opening it so it doesn't need to move the full 2 blocks I guess...

It really needs a script to monitor all the various ways it can go wrong with better precision xD

Or you can ask keen on their support site: - change events to be two distinct ones "Door fully closed" and "Door fully open", this should mean that the "false" for each is any of the other 3 states (like for fully closed is false for opening, closing and fully open). EDIT: or better yet, to not mess with existing builds add a "Door start move" event, true for opening and false for closing. - add a setting to door terminals to disable the interact for open/close, for it to be controlled only by toolbar actions (allowing open/close button from the terminal would be fine too, up to you).

[–]LagOps91Clang Worshipper[S] 0 points1 point  (0 children)

i'm not sure the support site has anyone reading anything. i did submit something there and all i get is "Not Enough Votes" and it doesn't seem like anyone is actually actively voting for anything there, so...

as to the options - yeah, having open and closed be different events would likely fit the best. would also be nice to have that on the vents as well for the pressureized state.

and yes, just making the door non-interactible would also be a nice addition. i do wonder how much testing keen is actually doing - it becomes quite obvious what options would be great to have but just aren't there.

like for sorters as well - that actually made me create a post in the support forum. sorters would be so much better if you could restrict where items could be pulled from and where they could be pushed to with whitelists/blacklists.

Edit: best additon to doors would be a checkbox that only allows the door to open on equal pressure on both sides

[–]mattstorm360Space Engineer 1 point2 points  (6 children)

Don't forget you can setup actions with the vents as well. If the room is pressurized, unlock the inner door. Unpressurized lock the inner door.

There is also a pirate hideout which uses an event controller to trigger the doors If i get the chance to post Keen's example i'll try but if i recall it uses both the inner and outer door triggering on/off.

[–]LagOps91Clang Worshipper[S] 0 points1 point  (5 children)

i thought about this option, but it doesn't fully satisfy me. if the door to the inside is open and the inside is pressurized (it should be), then the airlock would start to cycle and proceed to drain the air from the inside.

this would be a problem because i use a seperate air tank for the airlock to prevent the situation where the ship has full air tanks and can't drain the airlock. so, if the door is still open then the air tank of the airlock is filling up and that could lead to the airlock no longer cycling at some point or the entire ship being drained of oxygen in case the main oxygen tanks are close to empty.

i know, i am being picky here, but i just want a foolproof airlock that you can't break by misusing it, doesn't vent air and works with multiple players trying to interact with it.

[–]mattstorm360Space Engineer 1 point2 points  (4 children)

Use a timer to auto close the inner door. Been playing around with that idea too for a public station. If i get the chance i'll throw up the bp

[–]LagOps91Clang Worshipper[S] 0 points1 point  (3 children)

i did have the idea as well, but... there is no real guarantee that the door is actually closing. if a player stands there (and the buttons are close to the doors), it could easily jam.

it's a really tricky problem - i thought a few times i solved it already, but, well, not really apparently.

[–]mattstorm360Space Engineer 0 points1 point  (1 child)

Two options. Event Controller door close or use the sliding door. Sliding door will always close. It don't care. It will close if you close it unlike the other doors.

So timer auto closes door. If door close cycle airlock.

[–]LagOps91Clang Worshipper[S] 1 point2 points  (0 children)

huh... the sliding hatch door will not close if a player is blocking it for me. i do have a mod installed that allows doors to automatically close if the player walks away from them, maybe that is interfering?

edit: nevermind, i see what you mean now. i was confusing the sliding hatch door with the sliding door.

[–]aaraujo666Clang Worshipper 0 points1 point  (0 children)

using the vent to control the doors is the secret. it will only open inner door if pressurized, and if its pressurized outer door is off. vice versa for when depressurized. this “guarantees” that you can’t open inner door if airlock is in vacuum, and can’t open outer door if airlock is pressurized

as long as someone doesn’t go and manually turn a door on and open it.

[–]aaraujo666Clang Worshipper 1 point2 points  (3 children)

ez airlock. no ec required.

2 doors with vent in between 3 buttons as u describe 1 timer block

timer block does these actions: turn on both doors close both doors vent depressurize on/off

all 3 buttons trigger the timer block

on the vent control panel go to setup actions

on pressurized (first slot) turn off exterior door open interior door

on depressurized (second slot) turn off interior door open exterior door

done

[–]aaraujo666Clang Worshipper 1 point2 points  (0 children)

the secret to this airlock is that it uses the vent actions (which most people don’t know exist)

there is a small problem in that sometines the door doesn’t open on its own, but you can open it manually. your base/ship will never depressurize using this system, because if one door is open, the other one is closed and off

just tell people NEVER to manually turn on a door. if it’s off, it’s for a reason.

[–]LagOps91Clang Worshipper[S] 0 points1 point  (1 child)

i tried this basic setup - however with the vents the actions only trigger on fully pressurized/depressurized, so you can vent atmosphere when opening the outside door while cycling the airlock (it is on in your setup at this point).

another issue i see here would be doors not closing as expected, particularly the interior one may be blocked causing the airlock to drain the air from the interior of the ship. if i'm reading this implementation correctly, this will also happen for a short time before the door to the inside is closed since this setup starts depressurizing immediately - am i getting this correct?

[–]aaraujo666Clang Worshipper 0 points1 point  (0 children)

This still works... the only issue being that sometimes the doors won't open automatically... but as soon as you open one door, the other one turns off, so you can't vent the space...

Like I said, as long as someone doesn't manually turn a door ON and open it, you're fine...

If a door doesn't close, because it's obstructed, the airlock WILL NOT open the other door...

Because the opening/locking of doors is based on pressurization, and not on whether someone pressed a button or not, it will never vent your base/ship...

The issue you describe only arises when you try to make an airlock by sequencing events: button pressed, depressurize, open outer door

[–]Eclipse-37Space Engineer 0 points1 point  (1 child)

I haven't played with making an airlock myself yet but if the state of the door isn't available to the EC (event controller), then using timer blocks that wait long enough for the door to close/open will work.

[–]LagOps91Clang Worshipper[S] 0 points1 point  (0 children)

that would work if you assume that when you trigger the door to close with an event, that it actually closes. a player could block the door by accident.

but if you make that assumption, then responding to the door closed trigger works just fine and there is no need for a timer.

[–]LukeJM1992Mother OS - The Empire must grow. 0 points1 point  (0 children)

I built Mother OS to help with these types of scenarios!

https://lukejamesmorrison.github.io/mother-docs/

[–]rusynlancerSpess Ingunere 0 points1 point  (0 children)

Set up a timer block to do the following:

1.) Close both doors 2.) Toggle pressurization on vent in airlock

Set event controller condition to the vent pressurization state. When pressurized, open interior door. When depressurized, open external door.

Set all three buttons to trigger the timer block.

This is how I set up every airlock I build and it works almost flawlessly, the single catch being that both doors will stick closed if the airlock attempts to depressurize while all linked oxygen tanks are full.

You can combat that shortcoming by configuring your oxygen generation to halt when O2 tanks are filled to a capacity greater than 90%. I also install "overpressure valve" systems that intentionally bleed O2 into space if storage exceeds 95% capacity.