Readme¶
morrowind scripts categorized and writes
partially copy pasting from from MSFD and wikis
activate
can force player activation on ID by activate, player (vanilla usage without unload cell reference)(2099)
not restricted inside if (onactivate == 1) as in vanilla (needs checking)
animation
- playgroup, gruop
plays the animation group in kf file applying it to function target
is the same behavior for 1st and 3rd person view (npc and player alike) referred
don’t loop animations with no loop keys (revision 8bc7eb55)(2223)(2304)
LoopGroup
AI
- setflee, -attack, -etc
- (distance dependancy?)
- getAIpackagedone
- return 1 if the package is done vanilla/openmw repair: returns value when next package is called to bypass skipped frame.
- startcombat, target
starts the comnat with given target
- vanilla: in scripts only works to existing references and first found target.
- also placeatme and placeatpc are untargetable
works in console workaround to place reference to somewhere and use positiocell when needed
openmw: striggering when the id is found ingame (ie. not giving error of unfound id before) should be possible as position needs unique id, but could overlap if the position from other cell is anyway used. leading to fix for referencing any id in any cell interfere.
placeatpc and placeatme could also be used in mod as way to safeguard from one from dublicate id otherwise after 1.0 it could be fixed with keywork to handle multiple targets and so on out of the bucket
TEST : current status
- equip, objectID
equips the given item in the owner inventory
vanilla: works randomly differing in script and console ie. potions and armors, repair hammers and such
openmw: should work without problems.
TEST : creatures?
check variables
- onpcequip
-check after item is equipped to prevent stack contamination (2969) -working with addfunctions inside menumode + realtime updating screens (2967) -don’t set onpcequip for items that failed to equip (revision 992b7703)
revent’s walse alarm in worn item check (2776)-use on equip function (revision c04a8afc) -run the script after setting OnPcEquip, but before actually equipping the item to allow setting onPCskipequip (Bug #3016) not exactly right bug (mentions)
- revision 7983b07b (bk_treasurereport script)
- check also on using enchanted (any) items pcskipeguip variable handling ( 1 = skip equipping, 0 = allow ) execute item script once, immediately after getting onpceguip bypass after skipped with pcskipequip and pcskipequip set to 0 allowing afterhand equip (same script?)
movement
- setangle, axis, angle
- workings ingame and via scripts?
- getangle, axis
- returns the angle in relation to given world axis
- rotate, axis, speed
- reference’s axis
- rotateworld, axis, speed
- global axis
difference in local and global rotation in openmw?
- face, target
- makes the npc face the desired target
position
-interior and exterior behaviour when using underground, outside or in allowed space -if something fails, player is teleported to coe 0,0 , daedric ruin with scamp running around
- coe, centeronexterior and coc, centeroncell
- -don’t copy the height info when teleporting causing possible death on ground level
- position
- effect of water and groundlevel on behavior
- positioncell
places the reference inside the cell into given coordinates
vanilla: buggy. accepting float variables is picky and moving object from far away cell is not guaranteed to load + arbitary move can cause crash on activation
openmw: should work right out of the bucket with variables and loading + script execution
- placeatpc, ID, distance, direction
- places given object
- fixme unimplemented (1421)
- hard to detect collision at random relocation
messsagebox
- behavior at different tages
- on screen script dialogue multiples (almost impossible to detect on runtime)
getbuttonpressed
dialogue
inventory related
addsoulgem, creature, soulgem
vanilla: referencded soulgem need to be in target inventory for function to work openmw: adds soulgem if not alredy in inventory
if
no nested if / elseif limit like in vanilla or script lenght for that matter
elseif
while
will execute after whole script is run once due to structure preventing getting getbuttonpressed from inside while loop for if condition
unittest
requests: (wishlist)
unequip like function / disable / setdelete on worn items (2960)
base scripts need removeitem and additem for all similar content in inventory losing script variable data, nonunique reference being unrefencelable