Glyph Doors

This tutorial will explain how to make secret doors which are opened by frobbing a glowing glyph in front of the door, like those found in Thief: Deadly Shadows as well as Yandros’ Thief 2 FM What Lies Below.

Eight concrete objects are required, and are listed below. Under each, you’ll find the properties you need to set up on each one, including on archetypes where necessary, plus all required links between the eight objects. In the future, I will add a diagram further showing the links.

Custom Scripts required: Either Gaylesaver’s scripts, or Telliamed’s PublicScript module to support the TrapPhantom and TrapMetaProp scripts.


Glyph Decal

Glyphs parent archetype (under Decorative):

Scripts = TrigWorldFrob, TrapPhantom, ActivateAmbient
Alpha = 0.25
FrobInfo = Script, None, None
DesignNote = alpha_max=1.0; alpha_min=0.0; rate=0.35; curve=1

Individual Glyph archetype:

Model name = whatever (probably one of Vigil’s glyph models)

Glyph concrete object:

AmbientHacked (optional) = 8, 0, NoSharpCurve

Links:

AnimLightPoint

AnimLight:
Mode = smoothly dim
Millisec to brighten = 2000
Max brightness = 250
Min brightness = 0
Radius/Inner rad = 1.5

LightColor = whatever colour you want the glyph to glow

Links:

TrapMetaProp

Be sure to load the custom script module! Create a Marker with:
Scripts = TrapMetaProp

Links:

TimedRelay

Scripts = NVRelayTrap or TrapTimedRelay
DesignNote = “NVRelayDelay=2500” (if using NVRelayTrap) OR
Timing = 2500 (if using TrapTimedRelay)
TrapControlFlags = Once

Links:


If you want to play a VO or show onscreen text as I did in What Lies Below, ControlDevice link this Delay to it as well.

Inverter

Links:

DoorBlocking

DoorBlocking archetype (under slidy_door or a child of it):

Model name = any door model since it’s unrendered and you adjust the dimensions anyway (I used my own res_cube model in WLB, a 4x4x4 cube with reskinnable faces)
MaterialTags = something appropriate, probably Material Stone
FrobInfo = Ignore, None, None
Render type = Not Rendered
Class tags = blank (so it plays no sound when it slides open)

Door > Translating:
Closed = 0
Open = a value sufficient to move it into solid
Base speed = large (like 50) so it moves almost instantly

DoorBlocking concrete object:
Links:

DoorVisible

Tips on doing this well:

DoorVisible archetype (also under slidy_door, but could be elsewhere):

Props are similar to DoorBlocking, but also add:
Scripts = TrapPhantom
DesignNote = alpha_max=1.0; alpha_min=0.0; rate=0.5; curve=1

Links:

SoundTrap

Links:


Magus Yandros 2007/03/08