User talk:Ashileedo

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search

PLEASE PUT NEW COMMENTS AT BOTTOM WITH ITS OWN HEADING. THANKS.


Comments[edit source]

It really is a good idea. If everyone uses this wiki to share their hard-earned knowledge about the Construction Set, it will become a valuable community resource.--Mozz 22:11, 26 March 2006 (EST)

Documentation Requests[edit source]

User:Doppelganger 20:29, 3 April 2006 (EDT): The reason for my experimentation with ModActorValue and erronous conclusion was a lack of documentation. I had tried posting a couple of threads on the TES CS forum, but they quickly get buried with no response. With this in mind, there is no outlet (that I know of) to get even the kernel of the truth, and I resorted to simply being more accusational to draw fire. Can there be some sort of way to address this ad hoc means of obtaining information?

I also wrote here because I requested in the ModActorValue about how I could access the various script/magic modifiers.

I understand your frustration but please ask for your patience. The community is still learning about the Construction Set and the game, and we ourselves have other commitments internally that will take priority over this wiki. Which is why we made it a wiki - so that it could grow along with the modding community. I only ask that we keep the information posted on the site as factual and unbiased as possible. We will try to provide as much information as quickly as we can, but it will never be as fast as you or the fans will like, and I apologize for that. I will say that keeping your tone and attitude accusational to "draw fire" is not the best way to ask developers to put in extra time to answer questions. --Ashileedo]] 23:45, 3 April 2006

(EDT)

Doppelganger 07:13, 6 April 2006 (EDT): Best, relative to what, however? It did get me results quickly, and that was my honest assessment of what I was seeing, the main thorn in my understanding being that functions called via console don't have the same side effects as when they are called from a script. I appreciate that in the wiki page that there was an attempt to explain why this was, even though I still think it's a little insane, and a warning should certainly be plastered on the function list about functions that have this exceptional (I hope) property. There was not really much frustration, but unnecessary experimentation. I was skeptical of my own analysis given the fact that I was operating on no information, but perhaps you find it understandable why I came to this conclusion when the console's behavior seemed correct and a contrived script that, if run via console, exhibited the "bug." The other thorn was that there was no procedure for what to do to request information. I would have been content to wait for a while IF I knew precisely what I should do.
Again, we're not going to be able to provide you answers fast enough. Your best bet is to ask on forums or on Talk pages on here. You can disagree with our decisions, but please keep the info on the WIKI factual and unbiased, and keep opinions to the Talk pages.--Ashileedo 11:25, 6 April 2006 (EDT)


Just a heads up, you might want to post something prominent on the front page explaining that you are adding as much data as you can as time permits. That should help head off the flame fest. A lot of us developed things for morrowind and we got virtually no support, a lot of people still have the mindset that "the game developers don't care about us, they already have our money." It's little things, like telling us what's going on, that let the community know you're engaged. --Halo112358 02:02, 4 April 2006 (EDT)

Just wondering why there is no script method to expose generic references. I would like to be able to increment through the actor or object references in my local area, and I know a lot of people would also like that ability, it would allow all kinds of new options for modding. I was just wondering why this wasn't made available to modders as it seems so necessary for non-quest mods. --Tegid 10:52, 4 April 2006 (EDT)

There were discussions about this but we never had a need for it. What specific functionality are you trying to do? We may already have a model you can use as reference. --Ashileedo 13:27, 4 April 2006 (EDT)
A lot of people (myself included) would like to be able to determine which actors are in the area when we are IsInCombat so that we can make determinations about the people we are fighting. Also of interest would be a way to determine the weapon we are holding currently. Another mod I've seen is the Auto Harvesting mod, which currently has to add a script to all the plants so that they auto activate when the player is within a distance of 500 from them. If we could cycle through the Refs around us, instead of every plant running a script, a ring or spell could check for nearby plants and harvest them. I can see why it wouldn't be useful when you are generally setting up actions in regards to the player since you exposed the player ref. An NPC or Creature can tell their distance to me, if they are in combat with me, all kinds of things. I as a player cannot do any of those things. So if I want to, for instance, tell what range I was at when my arrow hit an enemy, I have to enchant the arrow. If I do that, the enchantment is run on the Actor I hit, and since HE knows how to refer to me (player) I can do what I need, but I have to add that enchantment to every arrow in the game. --Tegid 16:27, 4 April 2006 (EDT)
Another example: currently, there's no way to loop through an actor's inventory that I can tell, which is too bad: for instance, if I want a spell that unequips somebody's armor, I currently have to do something like:
AddItem SomeShirt, 1
EquipItem SomeShirt
UnequipItem SomeShirt
RemoveItem SomeShirt, 1
Problem is, I don't know if or what I just unequipped by replacing it with the shirt, so I can't easily re-equip the item (I hacked this by creating a dummy package with the unequip armor set to true, which, when it ends, usually causes them to reequip the armor. This solution is inconsistant at best. It also means they walk around naked, when it would be cooler to replace the armor with whatever clothing they have in their inventory, which would mean I'd need to iterate through their clothing. --lbeefus


I also want to loop through all actors/enemies in a cell. I want to make something that shows up if I'm in a LOS with an enemy, rather than the enemy has a LOS with me (kinda like sneaking). I've explained it in more detail [here]. --decswxaqz
--Kkuhlmann 07:38, 5 April 2006 (EDT): There's no looping of any kind in the scripting system. It would have required a complete paradigm shift that wasn't necessary (we didn't need any of the functionality you're talking about to build the game). If you're ever wondering why the script system doesn't do something, the short answer is always "Because we didn't need it to do that." We had many demands on our time just to get the game out; we didn't have time to add features (and test them, which is not insignificant) which we were not planning on using.
Tegid 08:50, 5 April 2006 (EDT): Even if we had a fixed set of "Reference Registers" that we had to check explicitly it would be really helpful. As I said in my previous note, I can completely see why you didn't need it, since you were doing everything in relation to the player for whom you made an external reference available. At the least it would be useful to have some number of registers that contained for instance the Actors currently in combat with you. Oh, and it appears you can construct a rudimentary looping mechanism with ScriptEffectUpdate.
Tegid 09:20, 6 April 2006 (EDT): Heads up, I have some preliminary "Actor Reference Registers" that I've scripted and will be releasing in the next few days I hope. There are still some lingering issues that I need to work out, but I have proven that I can gain access to the References of nearby Actors/Creatures (I have no way to get objects that I'm aware of). I may end up releasing a proof of concept, but I hope to have it slightly more full featured before I release it. Just for my own edification, is there a way to print a reference value in a Message or MessageBox. I can see why it wouldn't be too valuable to do normally (for game mechanics) but it seems it would be valuable for debug purposes.

SDK[edit source]

Doppelganger 07:59, 6 April 2006 (EDT): I'm pessimistic, but this has to be asked. To stave off the inevitable slaving over the Oblivion binaries, will there be at some time a SDK that will give us additional power? Such a thing would break from what TES3 did to be sure, but the ability to compile our own libraries to supplant our modification power would be truly awesome, if a large task to be made possible. Even if the API is hard to use, it's going to be easier than what eventually happened for Morrowind anyway, which was some completely masochistic reverse engineering. The fact of the matter is that as it stands I can't even (or so I've been lead to believe) access basic information like the magnitude of the player's fortified health without whining enough to get it turned into a script-accessible function. How about the ability to create new UI elements? There has been efforts to improve the UI for PC, but many things are beyond us, and I fully understand that BethSoft would want to have no part in the maintenance nightmare of forking more code than absolutely necessary...so let us do it instead, if possible. Given the proliferation of some extensive and painfully written modifications in the very short time since release, in my layman judgment there seems to be a considerable amount of momentum.

I also realize that there is a lot of copyright issues exposed since not all of what you have compiled is your own, so that may make this whole thing intractable regardless. But I guess hopes may well be dashed thoroughly and completely upfront with clarity. Any justification as to why such a thing is an impossibility, even including the usual suspects such as it being too time consuming, difficult, and prickled with legal barbs would be appreciated, and probably prevent any future questions. (Or future questions could probably just be deflected to the response given at this time)

You could even preempt some conspiracy theories that some may inclined to think, such as "BethSoft doesn't want to give us power so that they can sell their next expansion/micromod with a killer app that we cannot replicate such as a better UI for X” A similar such vein runs with the no-show NIF exporter, apparently causing some of the more visually oriented community considerable angst, even though barely any time has passed since launch. Regular and brief explanation of intention, difficulties, and possible futures will sow empathy among much of the community and may be appropriate if placating us concerns you in the slightest.

We will release more information about future downloads for modders as soon as we can, but right now I have no information that I can tell you. This isn't what you want to here, but its all I can say. If you must flame, we ask that you do it on the forums to maintain the factual integrity of the wiki;)--Ashileedo 10:30, 6 April 2006 (EDT)
Doppelganger 16:21, 6 April 2006 (EDT): Not much of a flamer, I'm afraid. Never quite had the flair for it. Well, I guess that beats "no."

TES is quite a nifty tool, but it's obvious that the scripting system wasn't well designed and it looks like functions got added on the fly if, and only if, quest designers asked for them. That's a good enough approach for the game itself, but the lack of a well designed API makes life very difficult for modders.

Of course, modders will always want more than developers are able to give them - it's simply unrealistic to expect major rewrites of the whole game engine. But, let's say modders come up with a wishlist of functions - no new functionality, no new block types, no new variable types, nothing that would affect the game in the original master file, just simple functions that provide access to functionality which already exists in the game. Functions from such a list could be implemented in a relatively short time and released as a patch.

So, the question is: if modders invest energy in constructing a realistic wishlist, would it be realistic to expect of the developpers to implement it? EagleEye 10:10, 8 April 2006 (EDT)

The short answer is probably not. I can't say we would never implement a feature request since we are currently looking into a few things that folks have asked for (and no, I won't tell you what they are or when they will be released). We would love to see a wishlist of features, but I can't say whether we would implement any of them until we see them, and couldn't give any timeframe due to milestones and other priorities. Apologies if I'm being too vague, but I cannot release information before we're sure about anything and we much prefer to underpromise and overdeliver, then vice versa. --Ashileedo 10:24, 10 April 2006 (EDT)
I went ahead and created a wish list. Mrflippy 12:56, 10 April 2006 (EDT)

Mods intercompatibility[edit source]

I originally posted this on category discussion: data files, but that page doesn't seem to get much traffic. Is it true that there is absolutely no way to reference objects added in one plugin from another plugin? This seem extraordinarily restrictive, and seems to me that it would cause a great amount of mod incompatibility solvable only by merging mods. Which has its own problems, including the legality of merging with the official mods and the problems that arise if you only want the effects of one of several mods that had to be merged together. --JHunz 16:11, 6 April 2006 (EDT)

We don't have an easy solution for this issue at this time. It would require major reworking of how the system works. We did not have any need for this functionality during development. We are looking into workarounds and will let you guys know if we come up with anything. --Ashileedo 16:16, 6 April 2006 (EDT)
I don't know if there's anything inherently preventing this, but would it be possible to release the official DLC as master files instead of plugin files? That would at least solve a lot of the compatibility problems with officially released content --JHunz 23:27, 6 April 2006 (EDT)
That won't work due to technical issues. --Ashileedo 10:07, 7 April 2006 (EDT)
It's obvious you didn't have any need for this functionnality since all the game content is stuffed inside the master file. How hard would it be to add a shared keyword? Refering to the Resource mods example from Wrye's post on the TESCS forum: the set of clothing marked as shared would maintain its formID through other mods.--xebeth 06:35, 8 April 2006 (EDT)
That won't work, sorry. We're still looking into it. That's all I can say. --Ashileedo 10:27, 10 April 2006 (EDT)
Update: I know this is an old discussion, but there is significant new info available now that pertains. It appears the problem can largely be overcome using a bait-and-switch technique to trick an ESP into considering another ESP as if it were a master. See Mod De-Isolation.--Dev akm 13:39, 26 January 2007 (EST)

disable[edit source]

I would like a little more information on the Disable command. (or other ways of removing objects from the world) Mainly I'm worried whether creating objects with PlaceAtMe and then removing them with Disable is a bad thing or not. Will this use up resources because the disabled object is still hanging around somewhere, and is there another way of destroying objects? Thanks. Mrflippy 14:34, 7 April 2006 (EDT)

We use disable a lot on environment that is already there (it may start enabled and be disabled later, or some variation of this) - but the art is already loaded in the scene, you just can't always see it right away until there is change of state. We don't use it with placeatme very often, I can't think of any example off hand. Need to be careful if you are allowing player to call objects that aren't loaded already, esp if you are calling actors (npcs or creatures) as they are very expensive. If player is in middle of memory intensive scene, summoning more art could adversely affect framerate.
So the real danger is actually the summoning and not the disabling? Or am I misunderstanding? If I summon and disable 50 iron shortswords, will there be 50 disabled instances floating around? Mrflippy 15:01, 7 April 2006 (EDT)
The danger is summong 50 iron swords at the wrong time and running out of memory. However, if you disable something that you've placeatme'd, I believe it gets thrown out -- I don't think right away, but our memory management code will clear it out when you hit your next load (though we'd have to check the code to be absolutely sure its at your NEXT load. But I am sure it does get cleared away. It most definitely will go away when the cell you summoned the objects in gets unloaded from memory). But the bigger risk here is if you placeatme something that is too expensive -- especially if player does it over and over and over again consecutively. --Ashileedo 15:08, 7 April 2006 (EDT)
--Omzy I have an instance where I need to do this. I need to cast a spell on a player right after a conversation and act like it is "from the gods" so I will create a ring or other small object under the player and use it as the object to cast the spell. The goal is not to have any actors cast the spell, and since the location of this occurrence could be anywhere, i'll need to create an object out of thin air, right? Then i will disable the object at the end of the script. The player should never know it was there since they cannot move (its a paralysis spell). Would this work? --Omzy
Why not just use a global script to randomly add the spell (a paralysis ability) on the player, then after three or however many seconds later, the script removes the ability. Maybe have the script check every game hour, have a one in ten odds every hour or something like that. TheImperialDragon 18:58, 7 June 2006 (EDT)
--Omzy I created a new miscitem object with no .NIF (mesh for graphic so it is invisible) and made a script for this object that calls the spells I want casted on the player. In my quest result script, I set the quest variable curse to 1 to trigger the object's trap on the player and then used the line "Player.PlaceAtMe VoduniusNucciusCurseObject, 1. The following object script works:
ScriptName VoduniusNucciusCurseObjectScript
Begin OnLoad
if VoduniusNucciusQuest.curse == 1
Cast VoduniusNucciusDwemerCurse Player
PlaySound VoduniusNucciusCurseSound
Set VoduniusNucciusQuest.curse to 0
Disable
endif
End

Getting out of the tower of indents... I always use Kill, Disable, then DeleteFullActorCopy as a safety. A wise person once told me that's what Bethseda does for items, among other things. --MaXiMiUS 23:43, 7 June 2006 (EDT)

--Omzy You can use the kill and deletefullactor copy on items?

Apparently so, it doesn't cause any errors or crashing. --MaXiMiUS 00:10, 8 June 2006 (EDT)

Ref.(Owner)Id[edit source]

I would like to add doorknockers to several houses with an attached script, which calls the owner to the door. My idea is to set the owner of the doorknocker to the same as the owner of the house. The script of the doorknocker would set a global variable to the owner of the house. Every HouseOwner would have an AI package which checks whether its door was knocked or not and act accordingly. With this I have two problems:

  • I need to set a global variable to the ownerId of an item, but I can not find a function like getOwnerId
  • I need to check a current NPC id and the global variable to act only if the NPCs door was knocked.

I've managed to create the doorknocker to a specific NPC, but I would like to create more generic scripts which I can add to every houseowner throughout Oblivion. Any help would be welcome. Thanks. --pionere 11:17, 8 April 2006 (CET)

--Kkuhlmann 15:40, 10 April 2006 (EDT): You may want to consider using parent refs instead. If you make the owner of the house the parent of the knocker (activator), you may be able to use a single generic activator and script to cover all houses. You use GetParentRef to get a hold of the parent (in this case the NPC owner), and then do whatever you want to them. You set the parent of a reference from the reference itself.

Determining what actor/object attacked or cast a spell[edit source]

One of the things we have been trying to figure out lately is how to determine who was the attacker or caster of a spell. For example, Actor A casts a targeted spell at Actor B. I have set the spell up to use a script, so Actor B is actually running the script. How can the script determine that Actor A was the caster?

We have figured out a couple workaround solutions, but they require global variables/persistant entities, but, as such, are not easily scalable. This makes it quite difficult to make spells or objects that work for more than 1 actor at a time. This same limitation seems to exist for standard weapon attacks as well. Thanks for your time! --Mrflippy 08:50, 11 April 2006 (EDT)

Format for contributing to the Solutions section[edit source]

I have this prepackaged solution (an esp file containing template code and a wordy explanation of how the parts interact) for creating a fairly accurate summon creature-like effect (save that it only affects the player) that I've been linking people to on the forums for the last couple of weeks. The common phrase "wasn't on the wiki" kept popping up, so I'm thinking it might find a home here. One thing I notice, though, is that all of the articles in the Solutions section are all short, self-contained blurbs of text.

Two/Three questions, then:

1) How do you make a new page on the wiki? I've edited a few, but don't know how to create a new one from scratch (or how to build in links, for that matter)

see Help:Contents for instructions on how to use the wiki. the fastest way to create a page is just to type it into the URL. You can also create a keyword on a exiting page to creat a page, as well. if you've never used a wiki, read the help page before trying any of this.--Ashileedo 09:42, 17 April 2006 (EDT)

2a) Is there some way I can upload the file with the mod template, or should I just forget about that and post the text?

you can link to the mod template from a separate host -- we only allow uploads of jpg files.--Ashileedo 09:42, 17 April 2006 (EDT)

2b) Would it be appropriate for me to post the (long) walkthrough text up there, or should I just give a brief description and point to a download link. Thanks! --Millinghordesman 21:13, 16 April 2006 (EDT)

write as much as you want! just keep it factual with no opinion or bias. keep questions and speculation to the Talk pages. --Ashileedo 09:42, 17 April 2006 (EDT)
Thanks! --Millinghordesman 10:03, 17 April 2006 (EDT)

Spam[edit source]

Looks like we're getting some more spam. (for example User:Aaaas has put links in invisible tags in at least one page. I'm not sure what the best course of action for this is.

Most likely to simply remove them, and perhaps kick repeat offenders... but that would require more people to monitor this... (that's why Wikipedia doesn't have this problem - they've got a ton of people checking everything). --DragoonWraith 17:36, 22 May 2006 (EDT)
User:Ceas is another spammer, with naughty link spam. --MaXiMiUS 19:22, 14 June 2006 (EDT)
What is there to stop spammers from creating another account if we kick them out though? It seems to me we need some way of dealing with these guys. The Imperial Dragon 20:02, 14 June 2006 (EDT)
Its a permenant IP ban. Don't know if it stops people that change their IP, though--Omzy 20:25, 14 June 2006 (EDT).
User:Ceas's spam links to what sounds like a porn site went unchanged and undeleted for a full 3 1/2 hours today, before anyone logged in and found that it was there and deleted it. I think we need some sort of recruited moderating team to help delete posts such as these, as they are innappropriate for the content of this site, and such content si not likely to go unnoticed on Talk:Main Page for a full three hours. It is clear that something needs to be done about this, though I'm not entirely sure what. For starters, User:Ceas shouldn't be allowed to post on this wiki anymore if that is all he'll do. The Imperial Dragon 16:13, 21 June 2006 (EDT)
When I deleted the spam I looked for it on the main page and didn't see it anywhere. Must be in a link somewhere. Anyhoo, its frustrating but at least its not easily visible to the passerby. --Omzy 17:18, 21 June 2006 (EDT)

Entim 02:16, 10 June 2007 (EDT): We keep track of spammers at the Spammers Category. Can it be helpful for the wiki admins? Should we continue this work?

Linking Category:About Modding Etiquette on the Main Page?[edit source]

ShadowDancer 10:17, 16 July 2006 (EDT): We were wondering if it would be possible for the About Modding Etiquette to be added to the Main Page? Ideally it would be up on the main page, either under the Getting Started link like My First Dungeon is or maybe having its own link on the main page near the Getting Started link. We are trying to set some Good Modding Practices guidelines and feel that this would be extremely useful for other modders to easily see and be able to access when they first get to the The Elder Scrolls Construction Set Wiki Main Page.

good idea. done. --Ashileedo 11:48, 1 February 2007 (EST)

Search Tips & Results: Comments & Link[edit source]

Since this site has pages for short words like If, would you tweak the ft_min_word_len setting? At least to 3 so we could search things like SAA. Default is 4.

If not, would you add a comment about it in the search results or tips, and fix the link to SEARCHING... to the actual page instead of the edit version? Or would you add an index of functions that have a 3 letter shortcut?

Also, would you add Categories to the Navigation box?

Felic 07:39, 2 February 2007 (EST)