Further logic gates for 2017

In the first of the 2017 logic gate series I described a map hack that creates a multi-way switch, where a gate can be switched between two or more outputs (one of which might not have a target) and then the chosen output be triggered. Today we will look at ways of connecting two or three of these switches together, to make the AND gate, OR gate, and the XOR gate. Continue reading


Masquerading as a door

MissBubbles asked on func_ if it’s possible to create a func_door which inflicts damage when touched – as opposed to just when it is blocked by an entity. func_door is notoriously resistant to map hacks because its spawn function is extremely busy, which locks down lots of the traditional routes to creating a map hack. Challenge accepted! Continue reading

Logic gates for 2017

Logic gates go back a long way in Quake, starting with metlslime’s tutorial for Quake 2 all the way back in 1998. I first came across them on qmap, the now lost predecessor of func_msgboard. In 2013 I wrote a tutorial on this blog on how to create a logic gate using entity hacks, to take some of the computer-made-from-dominoes out of them. Then in 2016 I edited that post to fix some bugs, and it turns out the fix I wrote was over-complex in some ways, and still deficient in other circumstances.

Given that, I’ve decided to write up my latest design for logic gates in a stand-alone article. Apart from providing a single place for new readers to get the design from, I hope that the simplification in the new method and the extra features it offers will be helpful for everyone.
Continue reading

Rapid-fire trigger_hurt

One of the most obvious questions to ask of trigger_hurt is “how do I make it attack faster?”. The current rate of once per second feels wrong for many sources of danger, and can cause issues in situations like a kill trigger in a void, where a backlog can build up if many monsters/players fall in at once. While some mods offer this as an enhancement, today we’ll see how to do it as an entity hack.
Continue reading