I/O Systems and how to use them

I’m a big fan of the Input/Output systems that can be found within source. It is an easy thing to learn, as long as you think logically about the puzzle.

So, here is a thread deigned to help people with i/o systems, and to show off some crazy stuff. Hopefully people can get back into using this stuff instead of relying on LUA for even basic things.

I/O systems run all sorts of things in maps. A door that is opened by a button is a basic i/o system. More complex i/o systems can create power generators that need to be fuelled by specific objects, or even entire gamemodes.

What I have done is create a quick vmf with some common i/o systems that can be adapted to suit any needs. The first system is a door that is controlled by a button. The second is a light that turns on and off, but the skin of the light changes to suit the on/off state. The third is a system that was requested in my events manager thread. When the button is pressed, the system spawns either a shotgun or a magnum. The forth is a valve that fills or empties a pool.

The file can be found here: http://www.filefront.com/16570101/iotuts.rar

The most important thing to remember when creating these systems is the create meaningful naming conventions. Yes, you could call one relay “bob” and another “simon”, but it is a lot easier if the name matches what it does.

If anyone wants me to create a system example for them, ask in here with clear steps as to what you want it to do. There are tons of tutorials out there, and examples can help, but the best stuff is the things you can create yourselves. I’ll update this post every so often with new examples, including (hopefully) a tech demo of a gamemode I have been experimenting with…no lua involved.

And…and old video showing what I/O can do:

This is the block of i/o stuff from the thread on the events manager, the link of which can be found at the end of the quote. People are welcome to use the events manager, but i would rather not see any of the buildings found on the map in any other maps, unless permission is first asked.

Or this little thing I made a long time ago:



the counter contains:
44 logic_relay
4 math_counter
5 logic_case
1 logic_timer
1 logic_auto
35 func_brush
a HELL lot of outputs

It’s a 10 hour digital clock

For anyone who is interested in learning about i/o systems, check out my tutorials on youtube.

@Zyx: Use custom models with skins -> much less outputs -> no relays needed for handling many outputs -> better to look at / less space wasted in Hammer. :wink:

Recently I created 14 different vending machines for a failed L4D2 survival map project:


You use gascans to purchase what’s on the sign, to upgrade it or to gamble (either get the double amount or nothing).

For my current project (an L4D2 campaign) I created moving statues:



(^ no, it won’t look that bland, first the system, then the cosmetics)

They move 64 units in one direction, they can be pulled or pushed and they only move within an area marked by the blue info boxes which will not be rendered ingame (so you can’t push it through obstacles or pull it while being between the statue and an obstacle).

I don’t get why people think the I/O system is limited. It is extremely flexible, and very, very simple as long as you think logically. I love the system myself, I can’t make nice looking maps, but I can make half decent things in I/O.