Oblivion: Creating Oblivion Gates

The process for creating an Oblivion gate that behaves like other gates in the game can be somewhat confusing. Yes, you could simply place two gates, call them doors, and be done with it. That doesn't really work though if you're a perfectionist like I am. I wanted a gate that worked like expected, including the possibility to have it modify weather while you're near it. In the end, my gate ended up underground, but after getting some help from WillieSea working out the kinks, I figured I'd document exactly what I did so others could do the same.

Here's how you do it:

1. Duplicate the OblivionGatetoOblivion object, and give it a name you can find later.
2. Duplicate the OblivionGatetoTamriel object and give it a name you can find too.
3. You can use this script:

scn SomeCleverScriptName

float timer
short count
short destroyed		; set to 1 after destroyed script runs
short ignore

begin OnLoad
	; reset count
	if count > 0
		set timer to 60
	set count to 0

begin OnActivate
	if isActionRef player == 1
		; we aren't "near" any gate anymore (we're in Oblivion!)
		set MQ00.nearOblivionGate to 0
	set ignore to 1

begin gamemode
	if ignore == 1
		set ignore to 0

	; no need to process further if destroyed
	if destroyed == 1
	if getdestroyed == 1 && destroyed == 0
		set destroyed to 1

	; start churning out creatures when I'm turned on
	if GetDisabled == 0 && GetDestroyed == 0
		if IsAnimPlaying == 0
			playgroup specialidle 1

		if getdistance player < 512
			set MQ00.nearOblivionGate to GetSelf
			set MQ00.nearOblivionGate to 0

	        if timer > 0
			set timer to timer - getsecondspassed
		elseif count < MQ00.maxCreatureCount
			set count to count + 1
			playgroup forward 1
			set timer to 10

4. On your duplicated OblivionGatetoOblivion object, clear all of the worldspaces listed and then drag your Oblivion worldspace into its list. Set it's script to the one above.

5. On your duplicated OblivionGatetoTamriel object, clear out all of the worldspaces, and then drag the interior or worldspace cell for where your gate is located into the list.

6. Place your newly created gate objects where you want them in the respective worldspaces.

7. Create an XMarkerHeading near each one, and set that gate's teleport ref to the XMarkerHeading.

That should be enough to establish the working pair.

If you want to make it closeable with a Sigil stone, you need to find somewhere appropriate and place the following items:

SigilSigilStoneRD004 (probably doesn't specifically matter which one)

The sigil stone needs SigilFireBoom01 set as it's enable parent.
SigilFireBoom01 needs TrigZoneCloseCurrentOblivionGate01 set as its enable parent.
TrigZoneCloseCurrentOblivionGate01 needs CitadelDeadraLordsCenterRing set as its enable parent.

In this manner, taking the sigil stone triggers the chain reaction which will properly close the gate and return you to the entry point in your cell.

That last item, CitadelDeadraLordsCenterRing, it can really be anything you want, but it needs to be an activator with the script that item comes with to be attached to it. If you're not building a sigil tower for your stone, you probably don't want the big bulky chained thing one sits in.

With any luck, you now have yourself a working Oblivion gate system. The gate pair you've just created has one added bonus in that the main quest does not need to still be running for it to work.
"It is pointless to resist, my son." -- Darth Vader
"Resistance is futile." -- The Borg
"Mother's coming for me in the dragon ships. I don't like these itchy clothes, but I have to wear them or it frightens the fish." -- Thurindil

Well. I guess that's that then.

« Ban the Yellow Ribbon
Hardware Woes »

Posted on Jan 8, 2010 2:34 am by Samson in: | 2 comment(s) [Closed]
Ugh. Note to self. Do something about the code tag. Loss of formatting sucks.

Sounds easier than I'd have expected, once the steps are all laid out for you like that anyway. ;)

Agreed about the code tag, though in this case it still doesn't look nearly as bad as some unformatted code I've seen in the past. :D

<< prev 1 next >>
Comments Closed
Comments for this entry have been closed.

Forgot Password?

 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30