Summonable Player House

Post » Sat Nov 17, 2012 5:29 am

Hi. I'd like some guidance on how to set this up.

What I would like to do is have a spell that will summon a box (or marker of some sort) that will act as a door to a house. It can be bigger on the inside. The intent is to act as convenient storage for people like me who like to hoard. I can mine a bunch of ore or loot bandits without having to head back to a city. I also want a trophy room of sorts, so that's why I'm looking for a house instead of a larger inventory. If I have a box there anyway, I would also like the ability to teleport to it, like a mark and recall spell for the 'fetch me a pizza' type quests.

I have a box with a collision and everything. The box is an activator in the CK (BlueBoxAct below). I can summon it with the property defined as an activator, but the script is
 ObjectReference BlueBox = akTarget.PlaceAtMe(BlueBoxAct, 1, false, false)
So it becomes an ObjectReference instead of an activator in game, which means I can't activate it. This has the problem of summoning multiple boxes too, and I can only have one. I can't seem to use 'PlaceAtMe' or 'MoveTo' on an activator. I've tried attaching an object to 'explosion' but that doesn't work right either.

Any thoughts on how to get this to work?
User avatar
Kerri Lee
 
Posts: 3404
Joined: Sun Feb 25, 2007 9:37 pm

Post » Sat Nov 17, 2012 8:10 am

use moveto instead of placeatme. place the box inside a holding cell initially, and move it back to the holding cell once the player has travelled into the house. declare the placed activator as an objectreference property and not an activator

on the box itself, on the OnActivate block you should use Activate() on a door objectreference property to activate a hidden load door that is connected somewhere in tamriel (also hidden and invisible) if you want. the load doors should be finalized with the navmesh. the purpose of this is to let followers come into the house with you (otherwise they will never be able to find the house if it is not in some way connected to skyrim)
User avatar
Taylor Bakos
 
Posts: 3408
Joined: Mon Jan 15, 2007 12:05 am

Post » Fri Nov 16, 2012 5:41 pm

Couldn't you just summon the door that is linked to the house and have that teleport you? Then maybe throw a script on there that would dismiss the door after you activate it.
User avatar
Je suis
 
Posts: 3350
Joined: Sat Mar 17, 2007 7:44 pm

Post » Fri Nov 16, 2012 4:05 pm

i think that's what midas magic does. it's all a matter of whether or not that's the look you want.

you could also make the blue box a door object instead of an activator. you would of course need to place it somewhere in tamriel connected to an existing navmesh, but you can also set the door to be initially disabled so that you dont ever see it until it is summoned.

if you're going to go the navmesh route (its only necessary if you want your house accessible by followers) i would suggest finding the most remote BFE/least desirable location in skyrim, on a navmesh that is still connected to the mainland and not an island (in other words dont put it in riverwood/whiterun)
User avatar
Loane
 
Posts: 3411
Joined: Wed Apr 04, 2007 6:35 am

Post » Sat Nov 17, 2012 8:13 am

Please make a Dr. Who mod. Thank you.
User avatar
Ana Torrecilla Cabeza
 
Posts: 3427
Joined: Wed Jun 28, 2006 6:15 pm

Post » Sat Nov 17, 2012 4:17 am

you could also make the blue box a door object instead of an activator. you would of course need to place it somewhere in tamriel connected to an existing navmesh, but you can also set the door to be initially disabled so that you dont ever see it until it is summoned.
As far as a door for the blue box, I think he should use the sigil stone you use in amethyst hollows as a teleport stone. Just seems like a cool object to use as the door, also if you need the script let us know and I'll post the script if someone else hasn't yet.
User avatar
Jordan Fletcher
 
Posts: 3355
Joined: Tue Oct 16, 2007 5:27 am

Post » Sat Nov 17, 2012 7:29 am

Thanks guys. I can now summon my box and activate it (it's just a message box at the moment). It turns out, I think I set up the activator reference wrong instead of scripting it wrong. Now I'm starting to think Papyrus is easy and the CK is difficult. I'll work on the door part this evening and start building an interior.
User avatar
Pete Schmitzer
 
Posts: 3387
Joined: Fri Sep 14, 2007 8:20 am

Post » Sat Nov 17, 2012 6:08 am

I've been having an odd issue. It's been fairly common, too, so I expect it will be re-creatable. I currently have my box set as a door, and then i summon it out of some stock interior cell with PaceAtMe. This mostly works for quite a while, I try to break it by casting in different places, quitting the game and starting over, whatever I can think of, but everything is good.

Then I tried to replace the stock interior with my interior. There is something broken with my interior, either materials, no navmesh, or collision, or something. I haven't narrowed what but I expect I can figure it out. When I put my interior in, it makes the summon no longer work at all. I think it's the interior part, because I can start over somehow by fiddling with stuff and get it to work again, then if I add the interior even far outside of the render area of the stock interior, it still makes the spell not work. It breaks long before the interior wants to render. I can cast the spell, but the effect in the "magic effect" part doesn't show up. So, I guess it seems that the spell itself works, but it doesn't get to the effect for some reason? Can I really break a magic effect by only changing an interior model?

I've had this happen a few times, but for some odd reason I can't figure out what I did to get it back. It seems to involve rebuilding pretty much the whole thing. It would be nice if I could figure out what's going wrong, because I expect it will take me a few tries to see what's wrong with my interior. Any idea what's happening?

I didn't know Midas already had this. Probably easier to just take his, but I've come far enough with this one to try and finish it, and I think I can make one I'll like better.

Also thanks for you work on showing how crap stays behind on saves Amethyst. I've been messing around a lot just trying to see how stuff works, so I had no idea I was cluttering stuff up as bad as I have been.
User avatar
James Hate
 
Posts: 3531
Joined: Sun Jun 24, 2007 5:55 am

Post » Sat Nov 17, 2012 7:57 am

if you enable papyrus logs you might be able to get some clues to where the script fails

you should also use MoveTo instead of placeatme to move your door around (placeatme creates a new clone each time)

somehow this sounds vaguely familiar to an issue SluckyD had with is3Dloaded when he was getting his drivable ship to work


if this is the is3Dloaded glitch i'm thinking of, you may have to use PlaceAtMe and drop new clones each time, but you must stay on top of it so as to not clutter the save game with multiple doors. you can call self.delete in the OnActivate after the player has activated the door teleportation so that the door deletes itself after it sends the player into the house. this is very risky though, because there are a number of ways the Delete function can fail and the door will never get deleted

a safer alternative (but more complex setup) is to make the door as a reference alias using a forced specific reference type. it will stay permanently persistent and the is3dloaded issue wont matter
User avatar
Damned_Queen
 
Posts: 3425
Joined: Fri Apr 20, 2007 5:18 pm

Post » Sat Nov 17, 2012 7:51 am

Sorry, it's MoveTo rather than PlaceAtMe. I've run a lot of variations and got confused :). The papyrus log is empty. For whatever reason, the spell is stopping after the hand movement for casting but before the effect, so there is no papyrus error yet (it didn't get called before it stopped itself).

I will google and forum search is3dLoaded to see what that is. What is a forced specific reference type? My thought was the the object is already persistent. The Base Object is "BlueBoxDoor" and the Reference Editor ID for the box I'm calling from the interior is "BlueBoxLocal," so the magic effect calls "BlueBoxLocal" as a property in the script. It should be the same box every time rather than a new spawn of the base box. The idea is that I have to get from the interior door back to the blue box, so I can't change the Ref ID of the box.

I got this to work again for a minute somehow, but then found out the teleport link between my bluebox door and the interior door was broken, so I linked them and it quit working again. I don't recall removing the link on purpose. So I removed the link, deleted the interior door, everything I could think and it's still broken again. Once it breaks, even deleting the entire interior cell and starting over with a new one doesn't fix it for some reason.
User avatar
Stephanie Valentine
 
Posts: 3281
Joined: Wed Jun 28, 2006 2:09 pm

Post » Sat Nov 17, 2012 6:04 am

normally objectreferences are supposed to remain permanently persistent, and load doors by default will become permanently persistent when their teleport markers are created. but for some strange reason papyrus will fail due to an is3Dloaded returning false on an objref that is a certain number of cells away from the player (persistent refs are never supposed to unload from memory so the is3dloaded doesnt make much sense in regards to a moveto function call). there was a lengthy post by Slucky from a while back that illustrates this glitch in detail. i dont think there was ever a reasonable conclusion other than it just plain seems wonky

although this might not actually be the same issue you are having if your papyrus log is clean

try double checking the property to make sure its still filled (ive had properties inexplicably unfill themselves before). also make sure you are loading a save that has no history of the mod you are testing. each iteration of changes pollutes the save game, so you should always load a clean game to ensure you are testing for the right thing
User avatar
Allison Sizemore
 
Posts: 3492
Joined: Wed Jul 19, 2006 6:09 am

Post » Fri Nov 16, 2012 8:47 pm

This was all working well this morning. I could summon my blue box, and it was even a "target location." Something was off with my spell for teleporting back to the box so I added like 2 lines to that script, and the box summon spell quit working.

Where I'm at now is that the moveto part of the script just isn't working. I mostly rebuilt the whole thing today trying to get it working again, and if I go back to "cast on self" it works ok. For some reason, i can get an object to appear with the explosion in the spell and I can get a script to run on it just fine. I can also get an object to work with "moveto" from somewhere in the tamriel worldspace (specifically a foodbarrel from the cloud district. they won't miss it.) however, none of the objects from the interior space I created can be moved. I've been using the same clean save I have been using since I found out saves are not clean. The spells all start as spell tomes, so I have to read the book for the first time every time I test just so I know there is less chance of something hidden screwing me up.

did something change? if this has been working fine for a while now, why would it go all bonkers?
User avatar
ijohnnny
 
Posts: 3412
Joined: Sun Oct 22, 2006 12:15 am


Return to V - Skyrim