Guidelines for TR Questers (Morrowind)

Quests that have been claimed are found in this forum. Please post your claim progress here.

Moderator: Lead Developers

Locked
User avatar
theviking
Developer Emeritus
Posts: 2145
Joined: Mon Jan 08, 2007 2:49 pm
Location: Alphen aan den Rijn, the Netherlands

Guidelines for TR Questers (Morrowind)

Post by theviking »

Guidelines for TR Questers (Morrowind)
(last updated 18/01/09)

This file is intended as a summary of information for Tamriel Rebuilt Morrowind questers. The first
section (hopefully) covers any questions you might have about what is expected of questers and
how quests are made for TR. The second section contains general hints and reminders about good
practice for creating quests.

Find the file below. Enjoy!


BC: assuming control of this thread

The file appears to have vanished, as discussed below.

As and when I (or future heads of quests) remember, key facts and etiquette may be added below.

Use of Master Files

Very important!

If your file needs to be reliant on an .esm, use the most recent version of TR_Mainland.esm.

However, it can be more efficient, and help avoid problems during the merge, if you make your file 'dependent' on the most recent private version of TR_Mainland.esp. Do this by loading TR_Mainland.esp alongside your plug-in, but ensuring that it is your plug-in that is the Active File, not Mainland.

In this mode you can add new dialogue, items and NPCs. You cannot, however, delete or move existing references. Any existing references which need to be moved, deleted or otherwise modified should be recorded in a .txt file and provided alongside your final file for the claim. These changes can then be made directly by the merger to TR_Mainland.esp.

If this method is used, remember that each time you load the CS, you must manually reselect TR_Mainland.esp to load alongside your file. Unlike an .esm, the CS will not automatically load it.

Naming Conventions

For an object, script, NPC etc:

TR_mX_q_#_myobject (TR_m3_q_8_RewardAmulet)

whilst a quest added directly to an NPC claim uses

TR_mX_q_A#_myobject (TR_m3_q_A5_RewardAmulet)

note the lower-case m


For a journal:

TR_mX_[Initials]_Name
Initials are faction initials(TR_m3_FG_RatProblem) or town initials (TR_m3_Me_Tunnels).

Further examples:

FG=Fighters Guild
HI=House Indoril
EEC=East Empire Company

Me=Meralag
Am=Almalexia
OE=Old Ebonheart

Greetings Conventions

When adding greetings, there are really only three of the 9 possible 'Greetings' topics which you should be adding to, without a very clear reason as to your deviation.

Greeting 7: Generic local dialogue, of the kind created in an NPC claim. If your quest needs to add some non quest related greetings, or modify the dialogue of an existing NPC claim, such greetings will be found here.

Greeting 1: Greetings which are known to be prompted by a ForceGreeting should go here. ForceGreetings are 'once only' events, so if the intended greeting gets hijacked by a Diseased, Unclothed or Vampire greeting, it may well break your quest. Therefore ForceGreetings, or any others which should not be filtered out in favour of the above, should go high up in the Greetings chart.

Greeting 6: Non-quest greetings that belongs to an important faction NPC, or are shared among NPCs in a certain faction (location), go here. Any quest-related greetings should still go in Greeting 5 though.

Greeting 5: All other quest related greetings should be placed here.
MMMowSkwoz
Developer
Posts: 835
Joined: Mon Oct 27, 2008 11:18 pm
Location: London

Post by MMMowSkwoz »

Updated version, fixing an error on my part.
Attachments
Morrowind Quester Guidelines.pdf
(17.67 KiB) Downloaded 499 times
MaMeeshkaMowSkwoz - choose your syllables
Why
Lead Developer
Posts: 1654
Joined: Sat Jul 04, 2009 3:18 am
Location: Utrecht

Post by Why »

Hey guys, where did the file go? I'm getting a 404:File Not Found when trying to download. Not much of a problem right now since I should have a copy saved somewhere but probably something we might want to fix.
User avatar
Bloodthirsty Crustacean
Developer Emeritus
Posts: 3869
Joined: Fri Feb 02, 2007 7:30 pm
Location: Elsewhere

Post by Bloodthirsty Crustacean »

Oh, dunno. Must have been purged by the forum, or MowSkwoz may have de-uploaded it somehow. I know I occasionally clear out my backlog of uploads in the hope it might save some bandwidth.

If you've got a copy, feel free to post it back up. I don't think I have one lying around.
a man builds a city
with
Banks and Cathedrals
a man melts the sand so he
can see the world outside


"They destroyed Morrowind? Fiddlesticks! Now we're going to have to rebuild it again!"
User avatar
Thrignar Fraxix
Developer Emeritus
Posts: 10644
Joined: Mon Dec 06, 2004 10:30 pm
Location: Silnim
Contact:

Post by Thrignar Fraxix »

Actually, it is gone due to a forum wide problem the admins will work on fixing tomorrow.
Reviewing Administrator
Morrowind Reviews: 1640
Completed MW Interiors: 29

The just man frowns, but never sneers. We can understand anger, but not malevolence - Victor Hugo, Les Miserables

The abuse of greatness is when it disjoins remorse from power - Brutus, Julius Caesar

Fun is bad - Haplo
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Post by arvisrend »

I am kinda necromancing this, but can we PLEASE add a guideline/recommendation to give unique names to topics? Unique not only in the sense of "no other quest does it", but also in the sense of "no other mod probably does it". Due to Morrowind's engine being a fuck-up, not only do two mods editing one and the same topic lead to messed-up ordering of the replies (yes, it can happen that the order of replies from one and the same mod becomes reversed ingame just because another mod using the same topic is loaded; details on [url=http://lovkullen.net/Emma/Comprehensive_Dialogue.htm]Emma[/url]), but also it can happen that the topic won't always be linked from greetings.

Concrete case: At the moment we have three quests in TR that use the "help me" topic. Unsurprisingly, the LGNPC Pelagiad mod uses it as well (I am more surprised that no other LGNPC mod does it). When both mods are used (apparently no matter in which order!), the "help me" topic is not linked from TR greetings even when the greetings contain "help me" and at least 1 reply has valid conditions. This makes 3 quests impossible to start (it has been bugreported at least twice). In this concrete case, we can declare LGNPC Pelagiad an incompatibility, but wait until P:C or SHOTN come up with the idea of using that topic...
User avatar
Andres Indoril
Senior Developer
Posts: 1459
Joined: Fri Jan 13, 2006 9:01 pm
Location: Lost.... Somewhere?
Contact:

Post by Andres Indoril »

Have addTopic "help me" or whatever in the results of the greetings? Idk.
[url=http://andresindoril.blogspot.com/][img]http://i45.photobucket.com/albums/f94/Andres_Indoril/siggyleft.jpg[/img][/url][url=http://www.youtube.com/user/AndresIndoril][img]http://i45.photobucket.com/albums/f94/Andres_Indoril/siggyright.jpg[/img][/url]
"You guys are no fun, I'll start my own TR with dead children and toy guars!" -Why
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Post by arvisrend »

Andres Indoril wrote:Have addTopic "help me" or whatever in the results of the greetings? Idk.
This has two problems:
1) It only works the second time you talk to the person (or you have to give him a "Continue"d greating).
2) The topic still doesn't appear in blue.

TBH I prefer a clean solution. It seems that, additionally to LGNPC, there is some conflict inside TR_mainland which also prevents the topic from being highlighted (this wasn't the case on the map1 version).
User avatar
Not
Lead Developer
Posts: 542
Joined: Thu Mar 01, 2012 10:43 pm
Location: Elsewhere

Post by Not »

I thought it was in the guidelines somewhere not to use vague topics like that anyways specifically because of this reason. I could be wrong, I may have read it on a different forum somewhere.

Anyways, I think you're probably going to have to end up changing the topic to something more unique.
Not another memory

...And so my bad karma gets worse
abot
TR Tester
Posts: 94
Joined: Sun Nov 30, 2008 11:58 pm
Contact:

Post by abot »

arvisrend wrote:
Andres Indoril wrote:Have addTopic "help me" or whatever in the results of the greetings? Idk.
This has two problems:
1) It only works the second time you talk to the person (or you have to give him a "Continue"d greating).
2) The topic still doesn't appear in blue.

TBH I prefer a clean solution. It seems that, additionally to LGNPC, there is some conflict inside TR_mainland which also prevents the topic from being highlighted (this wasn't the case on the map1 version).
Maybe for such "critical" widely used topics, try a global autostart script? At least it would solve point 1.
e.g.
begin TR_OnLoadScript

addtopic "help me"
stopscript TR_OnLoadScript

end
User avatar
Not
Lead Developer
Posts: 542
Joined: Thu Mar 01, 2012 10:43 pm
Location: Elsewhere

Post by Not »

While most of the time we will only ever be using guidelines for greetings 1 and 5 as far as quests go, (and 7 if you're NPCing) I feel that it's important to actually know what the other tabs are for.

This is how Bethesda used the tabs:

---------------------------------------------------------

Greetings 0: Npc is alarmed
Greetings 1: Force greetings and quests where it doesn't matter if the NPC is a criminal or vampire etc.
Greetings 2: Player is a vampire/player is nude
Greetings 3: Traitors to the Morag Tong
Greetings 4: Crime and disease
Greetings 5: Quests
Greetings 6: Factions
Greetings 7: Classes, Endgame, Slaves
Greetings 8: Clothes (general greetings concerning how player is dressed)
Greetings 9: Locations.

Just a few things to keep in mind here as far as the greetings go. Greeting 6 is for faction specific dialogue, but that doesn't include faction quests, they would still go into greeting 5 like the rest of the quests.
Greeting 6 is for dialogue entries such as: "You here to join the Fighter's Guild?" or generic faction responses such as advancement and general topics concerning the factions.

Also, I feel I should mention that while greetings 8 and 9 are used for the reasons listed above, they are useless and will never be played if the player becomes the Nerevarine, instead you get the typical "E-excuse me but are you the nerevarine?" greetings (not word for word but you get my point.)

So my point is, while we do only stick with greetings 1, 5, and 7 as outlined in another thread, I feel it's imortant to know of the other tabs and what they are there for.
Not another memory

...And so my bad karma gets worse
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Post by arvisrend »

Not sure if this is the best topic for it, but I've collected all semi-useful information from the [url=http://www.tamriel-rebuilt.org/old_forum/viewtopic.php?t=21859]old TR_Mainland thread[/url] here. It's rather unsystematic and incomplete; I hope that we can eventually incorporate it into a proper questing & NPCing tutorial.

Some of these are ridiculously commonsense, some are my personal preferences, some are secrets revealed to me on #tamriel, some are the experience of famous scripters. All of them are mixed together in this one post. Sorry for that.

Note that [url=http://www.tamriel-rebuilt.org/old_forum/viewtopic.php?t=19165]an internal thread about M2 NPCing[/url] also has a lot of good instructions.

********

Some scripts on NPCs in TR_Mainland.esm have code segments like this:

Code: Select all

if ( TR_Map == X )
    return
endif

set TR_Map to X
(for X being the number of the map). This piece of code ensures that the "TR_Map" variable on the NPC is set to X as soon as this NPC is loaded; this variable determines the replies to some dialogue topics (for instance, it ensures that NPCs on map 1 know about the settlements on map 1, while those near Necrom can tell you about the Sacred Lands, etc.). Due to the "return" in the above code segment, it is important not to place any other code below that segment (or else it will never be executed except in the very first frame after the NPC has been loaded). An equivalent version for the above code which does not create this problem is this:

Code: Select all

if ( TR_Map != X )
    set TR_Map to X
endif
**********

CREATURES:

If you want to place a respawning but fixed (in the sense of: always the same) creature in the world, go to "Leveled Creatures" and look for a leveled list (starting with "TR_stc_") which contains only this one creature. Such lists have been made for most "standard" creatures we have.

Leveled creatures of fixed difficulty (e. g., a leveled list which spawns alits, wild guars and nixhounds but no rats or kagoutis) begin with "TR_stat_" ("stat" means static difficulty). They are sorted by region, with "wild" meaning "can be more or less anywhere". The numbers ("d01", "d05", "d09") mean difficulty (or danger, or damage). The ending "orp" means "or peaceful"; that is, the leveled list contains peaceful creatures as well. The ending "sleep" means that it's the sleep creature of the corresponding region (you can still put it in the world, too). The ending "ap"

Leveled creature of variable difficulty (aka levelscaled creatures in the classical sense) start either with "TR_LC_" (leveled lists consisting of similar/related creatures) or with "TR_r_" (leveled lists for particular regions). Many of these lists are subpar. I prefer not to see any variable-difficulty leveled creatures at all -- at least not in exteriors.

If you really want to make leveled creatures, make sure that they don't intersect with escort quests. NPCs in escort quests usually don't level with the player, so the environment shouldn't get tougher either, or else the escorted NPC will be ever harder to protect. Also keep in mind that if you put a creature next to a corpse, people will assume the creature is responsible for the corpse:
Andres wrote: 5/3/2012 (17:52) TR_Mainland.ESP TR_m2_q_A9_3_Doril00000000 Haddadalmalu, Inner Shrine 5442 5852 10882 "This location could do with some non-random Daedra, so the scout would not have been killed by Scamps. Scamp is a wonderful modder, but he does not have it in him to slay scouts."
When you put creatures in the landscape, please ensure that roads (the important ones, not the ones less travelled by) are at least slightly less dangerous than the deep wilderness. Bethesda seemed to have done the opposite, but I don't think it helped the immersion very much.

Maybe it's an MWCP issue, but water creatures (dreugh, slaughterfish etc.) seem to have a very high attack radius. In low-level areas there shouldn't be too many of them close to each other.

Please be careful with placing leveled water creatures into interiors (or narrow spots in exteriors). Dreugh need a certain amount of space, or else they are stuck in the floor/wall/rocks/whatever. If in doubt, use TR_stc_slaughterfish and TR_stc_slaughterfish_small.

When you put a leveled creature into a place, please make sure that even the biggest creature on the leveled list won't get stuck in that place due to its size (most important in caves).

Don't put skeletons or other tomb guardians too close to roads (unless the only purpose of the road is to lead to the tomb).

There's no blight on Mainland. Don't put blighted creatures on Mainland. Don't put leveled lists that contain blighted creatures on Mainland.

************

Locking a door with lock level 0 isn't the same as leaving it unlocked. A door locked with lock level 0 can only be opened by spells. For all practical purposes, lock level 0 = bug.

**********

This is just me, but I prefer every ancestral tomb or similar place around low-level territory (Thirr River Valley, coast of Heartland, Roth Roryn) to have at least some piece of loot (possibly hidden) which cannot be obtained easily by grinding respawning enemies (to not create the impression that visiting tombs is a waste of time). If you don't want to make it uber, it can be a first barrier belt or something like that; it needs not be expensive or particularly useful.

I also believe that the same should hold for quest rewards: they don't have to be very valuable, they don't have to be very useful, but they shouldn't be things the player can get trivially by grinding, unless the story of the quest requires it to be that way. For example, a bounty hunting mission for the guard is most likely to only give gold as a reward, which is boring but logical; but guild quests and chores for mages should almost always net the player something more interesting.

************

I believe that armor and weapons on baddies should be deterministically chosen, rather than leveled/randomized. The player shouldn't face harder enemies, nor get better loot from them just because he has a higher level (although we can't really change the loot part of this, since most loot in containers is leveled).

***********

When you give ownership to all references in a cell, make sure to remove it again from all unscripted activators except for beds, or else activating these activators will give the player a bounty. (This was the reason for bug reports like "when I activate an Indoril gong, I get a bounty").

***********

Personal preference here: Quests shouldn't require the "latest rumors" topic to start, unless it's necessitated by logic (check if you really can't imagine anyone giving you the quest except through rumors). "Latest rumors" is one of the most bug-prone topics and one of the topics most likely to get in conflict with other mods, and many people just don't have the patience to ask repeatedly for "latest rumors" until they have seen any possible reply.

**********

The book bk_ForMyGodsandEmperor is Vvardenfell-centric and should not be used in the Mainland except in relation to NPCs which have a lot of contact with Vvardenfell. For all others, use TR_bk_ForMyGodsandEmperor instead.

*********
arvisrend wrote: I was about to ask you whether you are sure that accessing a variable on a reference requires this reference to be persistent.
abot wrote: To be able to reference any object id (player excluded probably) a unique object reference of that id should be already placed in game (in the CS, not by script).
If used from dialog result scripting, it is true that script commands there are not pre-compiled but interpreted on the fly, but I think it may silently fail (which is bad because you don't realize it) or crash (which is bad for player) if NPC is not placed in game, it is probably better to comment it/remind in comment that NPC reference has to be placed in CS for it to work as intended.
************
abot wrote: Yes, I never use it MWEdit to save (except with small mods/scripting enhancer code needed), but I find MWEdit essential for finding/fixing scripting errors, indentation and enforcing syntax coherence/style.
When code is fixed in MWEdit, never overwrite the original big mod, instead copy/paste fixed scripts to CS (or to .mws txt files and import back with Mash) and finally recompile/save original mod with fixed scripts from CS only.
***********
abot wrote:[url=http://lgnpc.org/downloads]ESParser[/url]. Give it a try, it's probably the best export/import tool to date for easier dialog spellchecking and dialog result script fixing from a text-editor friendly format.
It does not risk to truncate topic info text as Mash, and does not have the possible reversed order import problem of CS, is fast and probably safe enough, as it has been developed for/used with the LGNPC mods.

[About diffing dialogue: -- arvisrend]

[EDIT]If you decide to try it, just to spare you some problems, remember that it needs the same ids in the text version and in the .esp/.esm version to import back correctly, so procedure is usually:
1. load last version of the mod, export to original.txt
2. compare original.txt with fixed.txt (fixed but probably exported from a earlier version e.g. Mortimer's Trmainlanddialogue.txt), change as you see fit using winmerge or similar tools [e. g., kdiff3 -- arvisrend], but be sure to keep ids structure of original.txt (the last exported one) before trying to import back.
3. import back and hopefully save
abot wrote:
arvisrend wrote:Whenever I export dialogue with ESParser, it does NOT export the result scripts, while in your case it has done so
I think dialog result management has been introduced in [url=http://lgnpc.org/tools/esparser_beta.rar]1.3beta[/url]. If you are using the older version, that could be the reason.
arvisrend wrote:The beta doesn't run on my rig (COMCTL32.OCX not found).
abot wrote:
arvisrend wrote:The beta doesn't run on my rig (COMCTL32.OCX not found).
Try the [url=http://lgnpc.org/tools/esparser_setup.rar]setup version[/url], then overwrite the ES Parser.exe with the new beta version.
***********
BC wrote: Just did a test, and for when the Necrom NPCs file is merged [into Mainland -- arvisrend], it seems as long as my .esp is the Active File merging works normally. If Mainland is set to Active, the new dialogue gets shifted to the bottom of the list irritatingly, but no actual bugs are introduced.
**********

The "Auto Calculate Stats" option on NPCs entails that their spells, too, are auto-calced. This often leads to unpredictable and ugly results, because it is hard to control which spells end up being calculated. This option should never be used on spell teachers, or else they will teach these auto-calced spells to the player.

**********

When adding greetings 7, please ensure that you're not putting them behind the standard Nerevarine greetings (the ones starting with "E-e--e-excuse me, sera. But..." and the ones below that)!! Otherwise these greetings will be completely blocked after the player has finished Morrowind's mainquest.

**********
arvisrend wrote: Why do many of our creatures have an "immune to disease" ability? I know that vanilla does it, but we don't have to repeat every nonsense Beth does. It's not like we get paid for the size of our ESM files...
**********
arvisrend wrote: - Apparently, if a script moves a wall using "setpos z", then you save your game, exit Morrowind and reload, the wall is back [at] the old place. This messed up the Sword of Taldeus quest. Fixed by using BOTH "setpos z" and "disable".
***********

MERCHANTS AND RESTOCKING ITEMS:

The easiest way to add restocking items to a merchant is by adding them to his inventory. To make them restock, enter a negative amount (for example, -10 Kwama eggs means 10 restocking Kwama eggs). Note that this makes the inventory fill up every time you trade with the merchant, even if you bought up his whole supplies a few seconds ago. But this is how Beth does it. There might be a subtler way to do restocking ingredients, using the respawn and organic-container mechanisms on merchant containers, but normally I don't find it worth the hassle.

Any serious weaponsmiths/armorers/fletchers should restock at least on basic arrows, basic darts, basic bolts and basic (apprentice-journeyman) hammers. Basic means iron, usually steel, possibly silver. Armor can restock in smaller quantities, too (enchanters need an infinite supply of armor for their experiments).

Enchanters have a selection of non-uber scrolls (which can and should differ among different enchanters) which should also restock. Maybe also restocking supplies of paper (not many people would notice, but those who would will appreciate: paper is the "base armor" for scrolls).

Soul gems up to Common can be sold by enchanters and other magic suppliers (but also regular merchants). Again, these should normally restock. (I don't think that soul gems higher than Common should restock. Tribunal's Elbert Nermarc sells restocking Grand Soul Gems, but Tribunal is hardly a paragon of balancing.)

Not sure if books should ever restock; surely not the rare ones. Vanilla Morrowind offers an endless supply of (certain) books from the Mages' Guild equipment chests, so at least the idea isn't totally off track.

Alchemists should restock on most potions and certain ingredients. I don't know whether it was a good thing to do, but I made the alchemist in Bisandryon restock on a lot of ingredients, and many more easily accessible alchemists also have formidable restocking supplies. Particularly the really mundane stuff like kwama eggs, bread, mudcrab meat etc. should really be easy to get in arbitrary quantities.

I believe that Thieves Guild servicepeople, particularly in places where the TG has a foothold, should restock on lockpicks and probes.

Should clothiers restock on their produce? If I'm seeing it right, vanilla Morrowind did it this way for common and two pieces of expensive clothing. I made Llonise Sarem (the Fine Clothier in Sailen) restock on all clothes up to Expensive. If you ask me, I wouldn't mind having *all* clothing restock, including Extravagant and Exquisite; the player shouldn't be punished for experimenting with enchantment on exquisite clothes. But I'm not sure others would agree.

**********

Some of the skills have a *lot* more trainers than others. If you want to counteract this by adding a trainer, you might want to start by finding out what skills have the least trainers. Using the "File / Export Data / Hint Guide" menu option of the CS, you can get a list of trainers.

***********

In all but the rarest cases, corpses (NPCs who are dead from the start) should be marked "corpses persist", or else they would disappear after 3 days. Also, corpses don't need TR_Map and nolore variables.

************

If you accidentally click on an NPC while in pathgridding mode, the CS generates a gridpoint at unreasonable coordinates (usually far out of the level). Here is how to find out if you have such buggy points in your cell:
john.moonsugar wrote: A while ago you mentioned it would be handy to be able to test for bad
pathgrid points. I just reverse engineered most of the pathgrid record
structure, and put up a testing version of tes3cmd, if you want to try
it:

tes3cmd-testing-2012-09-23.7z:

http://code.google.com/p/mlox/downloads/detail?name=tes3cmd-testing-2012-09-23.7z&can=2&q=

For example, this gives a summary list of Pathgrid records that have
at least one pathgrid point with zero connections (nconn:0):

tes3cmd dump -l --type pgrd --match nconn:0 myplugin.esp

[...] I think any point with zero
connections can be considered a mistake.
I think this isn't 100% true (there are some uses for gridpoints with 0 connections), but you can easily find out if your 0-connected gridpoint is a bug.

Finding such points in the CS, once you know there are some, is often easy (zoom out of your cell and rotate the camera around it)

***********

If a "detective" quest asks you to steal some evidence from a suspect, it is not always a good idea to make the evidence owned by the suspect. While this does add to the difficulty of the quest (at least if there's somebody around to see the theft), it has the consequence that the evidence can be confiscated by the guards, which is not always accounted for by the quest design.

*********

Finally, here are three random things I've posted long ago but in the wrong context. I'm now moving this post here.

A good source for such things is [url=http://www.mediafire.com/?fwlu7km56clj8wk]MSFD9 (searchable PDF)[/url]. Unfortunately, only scripting is covered, but it is covered very well (I tend to have MSFD open whenever I am scripting to check every single command I am writing for unwanted repercussions and bugs).

Scripting/dialogue: Removeitem. Don't removeitem any stuff from the player without making sure he HAS this stuff in the first place. Doing this reduces the weight of the player's inventory without actually removing anything.

Dialogue: Random100. Any dialogue topic should, at any stage of the story, either have no valid reply at all (by "valid" I mean that the conditions are satisfied), or have at least one reply which does not depend on Random100. Otherwise the following can happen: The topic name appears in blue during a frame in which the Random100 condition is satisfied. After a few seconds, the player clicks on the blue topic name. But the Random100 condition is not satisfied anymore (since Random100 changes with time), and there is no valid answer anymore. The game crashes. (Thanks to peachykeen for explaining me this problem.)

NPCing: Merchants. This might be somewhat subjective, but I think that each merchant should have (1) some kind-of unique items (unique does not mean uber or strong; just don't let the player lose his motivation to visit shops!), and (2) a number of items (usually common and consumable items, such as arrows, potions and standard ingredients) which respawn (respawning is achieved by a negative count of the respective item in the container; -5 arrows means 5 respawning arrows). The player should never be able to buy a merchant completely out of stock for good! Look at vanilla containers like com_chest_02_v_armor11, com_chest_02_v_weapon08 and crate_01_falanaamo (except that randomized respawning stuff is a bad idea, since it does not seem to be randomly re-determined when respawning!) This is most important for ingredients, potions, clothing, weapons and armor, which a player is actually likely to buy in large amounts (for alchemy, drinking and enchanting). For ingredients, probably all flora the player can pick without walking into Mordor is fair game. Kwama eggs are encouraged, since they are supposed to form the backbone of the economy or something like that. :) For clothing, vanilla Morrowind has all kind of clothing up to Expensive on Respawn; thus it is probably okay for TR to go up to Extravagant in major trading centers such as Baan Malur. As for potions, weapons and armor, probably everything that is not an artefact should be okay to respawn (vanilla does it this way very often).

****************
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Post by arvisrend »

Courtesy of rot:

GetSoundPlaying is a quirky command. It can be used to control sounds like this:

Code: Select all

	if ( GetSoundPlaying "Machinery" == 0 )

		PlayLoopSound3DVP "Machinery", 1.0, 1.0

	endif
without making any problems, but when you use it to detect NPCs casting spells:

Code: Select all

; The NPC casts a spell (that is supposed to look like teleportation to the
; player, although technically is telekinesis) and disappears.
if ( controlQ == 3 )

	Cast, "telekinesis", player

	set controlQ to 4

ElseIf ( controlQ == 4 )

	if ( GetSoundPlaying "mysticism hit" == 1 )

		PositionCell -26 617 -117 252 "Cephorad Keep, Interior"

		set controlQ to 5

	endif

endif
you should keep in mind that it can fail for two reasons:

(1) it generally tends to fail on certain systems;
(2) if the player leaves the cell before the NPC can cast the spell, and then returns, the NPC might have already forgotten that he was about to cast the spell, and as a result, GetSoundPlaying never becomes 1.

Here is a way to at least ensure that this doesn't break the quest:

Code: Select all

; The NPC casts a spell (that is supposed to look like teleportation to the
; player, although technically is telekinesis) and disappears.
; I've added an "if ( timer > 10 )" loop to account for the chance of getSoundPlaying
; failing to fire. -- arvisrend, 20 Nov 2012
if ( controlQ == 3 )
	Cast, "telekinesis", player
	set timer to 0
	set controlQ to 4
ElseIf ( controlQ == 4 )
	if ( GetSoundPlaying "mysticism hit" == 1 )
		set controlQ to 5
		PositionCell -26 617 -117 252 "Cephorad Keep, Interior"
	elseif ( timer > 10 )
		set controlQ to 5
		PositionCell -26 617 -117 252 "Cephorad Keep, Interior"
	endif
	set timer to ( timer + GetSecondsPassed )
endif
Note that this required the introduction of a new timer variable. If that variable is used elsewhere in the same script, it should be set to 0 after it is used. In some cases, getDistance Player can be used instead of the timer.
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Post by arvisrend »

While I guess most of people here know this, just in case someone doesn't: When you press F while in pathgridding mode, it's not the grid point that gets Fed, but rather the marked reference (i. e., the last reference you marked before going into pathgrid mode). This was probably the cause of most of the bugs I introduced in Mainland, including Leon's favorite pile of floating rocks...
arvisrend
Lead Developer
Posts: 1971
Joined: Mon Oct 04, 2010 11:39 am
Location: substitutional world

Post by arvisrend »

The "sethealth 1" instruction seems to inexplicably kill some NPCs (might be due to buggy floating point comparisons). If you want to make an NPC killable with one hit, try "sethealth 2" instead.
rot
Lead Developer
Posts: 696
Joined: Sun Oct 21, 2012 10:34 pm

Post by rot »

Don't be afraid to use Greeting 1 during quests. On choosing which Greeting to use:

- When ForceGreeting, always use Greeting 0, for obvious reasons.
- If your NPC's Greeting is in any way critical to advance the quest, make sure it doesn't get skipped by things that shouldn't skip it:
Greeting 2 has default greetings for vampires, and for nudity at the bottom. Keep this in mind and place your greetings above the default ones if your quest is supposed to be playable by vampires. Or nudists. (vampires are notably tolerated by the Mages Guild and the Telvanni)
Greeting 4 are default greetings when you're diseased (at the top) or a known criminal, further down. For instance: if your questgivers are themselves diseased and it makes no sense for your initial quest dialogue to be skipped by disease, place it above Greeting 4 but still under Greeting 2.

Recap: Greeting 5 is overall still the best to start misc quests with (to keep the initial default attitude towards vampires, criminals and the diseased), but once the quest has been started feel free to use Greeting 1 - greetings that won't get skipped by disease (4) or nudity (2) if skipping them could risk breaking the quest.


Also, some useful info for questmaking:

[url=http://morrowind.nexusmods.com/mods/42296/?]List of voice files[/url] sorted for race, including those not placed in vanilla. Makes it easy to look at the various Voices available (can be played whenever on NPCs using the function Say)

[url=http://mw.modhistory.com/download-95-631]Various questmaking advice[/url]. Might not be up-to-date,
Locked