Difference between revisions of "OBSE Wish List"
Jump to navigation
Jump to search
Moved a lot of stuff to the wishlist
imported>Argomirr |
imported>Shademe (Moved a lot of stuff to the wishlist) |
||
Line 13: | Line 13: | ||
Tweaks to functions already present in the scripting language: | Tweaks to functions already present in the scripting language: | ||
*'''PlayMagicShaderWeapon''' - Similar to the standard "PlayMagicShaderVisuals", but plays a magic shader only on an actor's equipped weapon; Not the body, not the scabbard, just the weapon. Like an enchantment shader. Could be abbreviated to "pmsw", much like how the template can be shortened to "pms". May require a contingency for when the equipped weapon are unarmed/fists (IE: nothing happens). | *'''PlayMagicShaderWeapon''' - Similar to the standard "PlayMagicShaderVisuals", but plays a magic shader only on an actor's equipped weapon; Not the body, not the scabbard, just the weapon. Like an enchantment shader. Could be abbreviated to "pmsw", much like how the template can be shortened to "pms". May require a contingency for when the equipped weapon are unarmed/fists (IE: nothing happens). | ||
*'''StopMagicShaderWeapon''' - The counterpart to the above command, it acts like "StopMagicShaderVisuals". Like its template, and like the counterpart requested function, it could be shortened to "smsw" for convenience. | *'''StopMagicShaderWeapon''' - The counterpart to the above command, it acts like "StopMagicShaderVisuals". Like its template, and like the counterpart requested function, it could be shortened to "smsw" for convenience. | ||
Line 19: | Line 18: | ||
*'''castNoAnim''' - When called on an actor, the actor casts the spell without playing the casting animation. | *'''castNoAnim''' - When called on an actor, the actor casts the spell without playing the casting animation. | ||
*'''castut''' - when called, the actor casts a spell in the direction he/she is facing without needing a target. | *'''castut''' - when called, the actor casts a spell in the direction he/she is facing without needing a target. | ||
*'''[ref].On[blocktype] [ObjectID]''' Would be used as a block type in quest scripts which would run as if the block type is used in the reference or object's script. | *'''[ref].On[blocktype] [ObjectID]''' Would be used as a block type in quest scripts which would run as if the block type is used in the reference or object's script. | ||
*'''DeleteClonedForm''' - Delete the reference and base object of a cloned form like DeleteFullActorCopy | *'''DeleteClonedForm''' - Delete the reference and base object of a cloned form like DeleteFullActorCopy | ||
*'''SetObjectAlpha''' - Just like SetActorAlpha except works on any object, not just actors. | *'''SetObjectAlpha''' - Just like SetActorAlpha except works on any object, not just actors. | ||
Line 32: | Line 28: | ||
*'''EnablePlayerControls2/DisablePlayerControls2''' - Acts like the original functions but without hiding UI. | *'''EnablePlayerControls2/DisablePlayerControls2''' - Acts like the original functions but without hiding UI. | ||
*'''Resurrect2''' - Like Resurrect but doesn't remove all of your abilities when called on the player. | *'''Resurrect2''' - Like Resurrect but doesn't remove all of your abilities when called on the player. | ||
* '''PushActorAway2''' - just like [[PushActorAway]] except that the calling ref don't have to be an [[Actor]] | * '''PushActorAway2''' - just like [[PushActorAway]] except that the calling ref don't have to be an [[Actor]] | ||
==Modifications/Extensions of OBSE Functions== | ==Modifications/Extensions of OBSE Functions== | ||
*'''IsKeyPressed2+3''' - IsKeyPressed2 can pick up tapped keys, IsKeyPressed3/IsControlPressed can pick up disabled keys. Combining them into one IsKeyPressed4 function would be nice, but more to the point being able to do both with an IsControlPressed2 would make coding much easier. | *'''IsKeyPressed2+3''' - IsKeyPressed2 can pick up tapped keys, IsKeyPressed3/IsControlPressed can pick up disabled keys. Combining them into one IsKeyPressed4 function would be nice, but more to the point being able to do both with an IsControlPressed2 would make coding much easier. | ||
*'''MessageBoxEx Force Upper/Lower case''' - Add two new commands - %u and %l - to force the first character of a variable to be either upper or lower case. For example, using %u %pp at the start of a sentence would print as His, Her ot Its, instead of his, her or its. | *'''MessageBoxEx Force Upper/Lower case''' - Add two new commands - %u and %l - to force the first character of a variable to be either upper or lower case. For example, using %u %pp at the start of a sentence would print as His, Her ot Its, instead of his, her or its. | ||
Line 51: | Line 37: | ||
*'''SetRaceNthSpell''' - Sets the race's Nth spell. Useful for adding spells to races without conflicting with other mods, when used in combination with GetRaceSpellCount. | *'''SetRaceNthSpell''' - Sets the race's Nth spell. Useful for adding spells to races without conflicting with other mods, when used in combination with GetRaceSpellCount. | ||
*'''MessageBoxEx Silent Menu''' - Add a way to set the box to silent, so no sound plays when the menu pops up and no sound plays when you click a button. Useful for mods where you want to play your own custom sound for just one menu, or want to play a sound while the menu is there, without being cut off by the sound the MessageBox makes. | *'''MessageBoxEx Silent Menu''' - Add a way to set the box to silent, so no sound plays when the menu pops up and no sound plays when you click a button. Useful for mods where you want to play your own custom sound for just one menu, or want to play a sound while the menu is there, without being cut off by the sound the MessageBox makes. | ||
==Language Enhancements== | ==Language Enhancements== | ||
Line 72: | Line 50: | ||
Functions dealing with music and sound: | Functions dealing with music and sound: | ||
*'''stopSound''' - stops a looping sound from playing. | *'''stopSound''' - stops a looping sound from playing. | ||
*'''EnableTrivialSound/DisableTrivialSound''' - While disabling trivial sounds, the sounds played by the functions in scripts like ''AddItem, RemoveItem, EquipItem, Activate'' (while picking up items), and even for the actions done by the player like while equiping or picking up items. Mainly for script writers to avoid these interface sounds with a simple way when they want something to be done in the background. | *'''EnableTrivialSound/DisableTrivialSound''' - While disabling trivial sounds, the sounds played by the functions in scripts like ''AddItem, RemoveItem, EquipItem, Activate'' (while picking up items), and even for the actions done by the player like while equiping or picking up items. Mainly for script writers to avoid these interface sounds with a simple way when they want something to be done in the background. | ||
Line 81: | Line 55: | ||
Functions dealing with combat, crime, detection, and AI: | Functions dealing with combat, crime, detection, and AI: | ||
*'''setHitBy''' ''actorID, damage'' - damages the actor and updates AI as if the calling actor had attacked them. The [[Kill]] function might provide a shortcut to implementing this function, as it allows an actorID parameter to be specified as the attacker. | *'''setHitBy''' ''actorID, damage'' - damages the actor and updates AI as if the calling actor had attacked them. The [[Kill]] function might provide a shortcut to implementing this function, as it allows an actorID parameter to be specified as the attacker. | ||
*'''SetHostile''' - would force the calling actor to behave as if they perceived a hostile threat, assuming such states can be imposed in the absence of real combat. | *'''SetHostile''' - would force the calling actor to behave as if they perceived a hostile threat, assuming such states can be imposed in the absence of real combat. | ||
==Animation and Graphics Functions== | ==Animation and Graphics Functions== | ||
Functions dealing with animations or game rendering: | Functions dealing with animations or game rendering: | ||
*'''forceDismount''' - Forces a mounted actor to dismount. | *'''forceDismount''' - Forces a mounted actor to dismount. | ||
*'''ReloadCell''' or '''UpdateLighting''' - Reloads the cell as if the player had just entered or as if he were moved out of and then back into the cell; or updates the illumination of lights on static objects. Kind of a specific request to eliminate issues with disabled and re-enabled lights not illuminating properly. | *'''ReloadCell''' or '''UpdateLighting''' - Reloads the cell as if the player had just entered or as if he were moved out of and then back into the cell; or updates the illumination of lights on static objects. Kind of a specific request to eliminate issues with disabled and re-enabled lights not illuminating properly. | ||
*'''Get/SetFacialData''' - Returns/sets facial data of the calling actor. | *'''Get/SetFacialData''' - Returns/sets facial data of the calling actor. | ||
*'''GetShader''': Returns shader(s) active on PC camera (e.g. nighteye, hitshader/blur, etc). | *'''GetShader''': Returns shader(s) active on PC camera (e.g. nighteye, hitshader/blur, etc). | ||
*'''ForcePickIdle''' - force an Idle to be played even if the player is not on the ground or under any other circumstance that would usually block pickidle. | *'''ForcePickIdle''' - force an Idle to be played even if the player is not on the ground or under any other circumstance that would usually block pickidle. | ||
*'''SetCellAmbientLight''': Accepts 3 integer values that set the red, green, and blue ambient light values in an interior cell. A GetCellAmbientLight function would also be nice. | *'''SetCellAmbientLight''': Accepts 3 integer values that set the red, green, and blue ambient light values in an interior cell. A GetCellAmbientLight function would also be nice. | ||
==Functions Returning a Reference== | ==Functions Returning a Reference== | ||
Functions that return a reference: | Functions that return a reference: | ||
*'''getLastAttacked''' - Returns a reference to the actor last attacked by the calling actor. | *'''getLastAttacked''' - Returns a reference to the actor last attacked by the calling actor. | ||
*'''getLastActivated''' - Returns a reference to the last object activated by the player or calling actor. | *'''getLastActivated''' - Returns a reference to the last object activated by the player or calling actor. | ||
*'''(reference).GetLastKilled''' - Returns the reference of the last actor killed by the player/an actor. | *'''(reference).GetLastKilled''' - Returns the reference of the last actor killed by the player/an actor. | ||
Line 118: | Line 79: | ||
Functions which read or alter the state of an actor: | Functions which read or alter the state of an actor: | ||
*'''SetRace''' - Allows you to change the race of an actor | *'''SetRace''' - Allows you to change the race of an actor | ||
*'''DropEquipped [slot]''' - Drops the equipped item according to the given equipment slot. This function keeps the item's statuses like RemoveMe or disarmament. | *'''DropEquipped [slot]''' - Drops the equipped item according to the given equipment slot. This function keeps the item's statuses like RemoveMe or disarmament. | ||
*'''GetKilledBy''' - Get the reference by whom the actor was killed. Should be available in blocks like ''actorId.GetDead == 1''. | *'''GetKilledBy''' - Get the reference by whom the actor was killed. Should be available in blocks like ''actorId.GetDead == 1''. | ||
*'''GetHitBy''' - Returns the reference whom just hit the actor. | *'''GetHitBy''' - Returns the reference whom just hit the actor. | ||
Line 130: | Line 86: | ||
==UI Functions== | ==UI Functions== | ||
*'''SelectDialogResponse''' - Choose a particular answer in a dialog (e.g. Yes, No, Cancel, Optionx, etc.) | *'''SelectDialogResponse''' - Choose a particular answer in a dialog (e.g. Yes, No, Cancel, Optionx, etc.) | ||
==Other Functions== | ==Other Functions== | ||
Line 149: | Line 101: | ||
*'''RevertName''' - Called on a reference or base object with the 'Named' property to revert its name to its original definition in the construction set. Examples: if setname or setnameex is used on Shadowmere to name her "Darkness", calling RevertName on 'ShadowmereRef' or 'Dark10Horse' would reset her name to "Shadowmere". Likewise, if a mod is loaded that explicitly sets the name property of Shadowmere to "Black Beauty" using the CS (and assuming her name is then set (in game) to "Darkness" using setname or setnameex), calling RevertName on her should set her name to "Black Beauty". I.E. The name should be set to whatever is defined in the construction set, with regard to installed mods. | *'''RevertName''' - Called on a reference or base object with the 'Named' property to revert its name to its original definition in the construction set. Examples: if setname or setnameex is used on Shadowmere to name her "Darkness", calling RevertName on 'ShadowmereRef' or 'Dark10Horse' would reset her name to "Shadowmere". Likewise, if a mod is loaded that explicitly sets the name property of Shadowmere to "Black Beauty" using the CS (and assuming her name is then set (in game) to "Darkness" using setname or setnameex), calling RevertName on her should set her name to "Black Beauty". I.E. The name should be set to whatever is defined in the construction set, with regard to installed mods. | ||
*'''GetModRecords''' - With the advent of arrays in OBSE v17, this request seems possible. The function returns an array of the records introduced by a particular mod. For example, the first level of the array would store an array for each of Actors, Items, Magic, Miscellaneous, and WorldObjects. The contents of each subarray would be the records that each CS category contains that are new/introduced by the mod. For example, If there is a mod loaded that adds 5 books to the game, and the mod is 8th in this imaginary load order, calling GetModRecords, passing 08 as the mod index, should return an array, and let's call it arItems. arItems[Actors], arItems[Magic], etc. would be empty, but arItems[Items] would contain 5 records (numeric keys are used as opposed to labels, this is just for illustration). These 5 records should be the FormID's of the five books. In this way, one could search a mod for records, and make use of them in-game using placeatme or additem. | *'''GetModRecords''' - With the advent of arrays in OBSE v17, this request seems possible. The function returns an array of the records introduced by a particular mod. For example, the first level of the array would store an array for each of Actors, Items, Magic, Miscellaneous, and WorldObjects. The contents of each subarray would be the records that each CS category contains that are new/introduced by the mod. For example, If there is a mod loaded that adds 5 books to the game, and the mod is 8th in this imaginary load order, calling GetModRecords, passing 08 as the mod index, should return an array, and let's call it arItems. arItems[Actors], arItems[Magic], etc. would be empty, but arItems[Items] would contain 5 records (numeric keys are used as opposed to labels, this is just for illustration). These 5 records should be the FormID's of the five books. In this way, one could search a mod for records, and make use of them in-game using placeatme or additem. | ||
*'''SetIsPersistent''' - allows persistence to be toggled via script.* | *'''SetIsPersistent''' - allows persistence to be toggled via script.* | ||
*'''[optional reference].AutocalSpellMagickaCost spellID''' - autocalculates spell cost including area factor, duration factor, and range factor based on the formula in [[FMagicCasterSkillCostMult]]. If optional reference is included, also calculates in the skill factor for that actor (including luck). | *'''[optional reference].AutocalSpellMagickaCost spellID''' - autocalculates spell cost including area factor, duration factor, and range factor based on the formula in [[FMagicCasterSkillCostMult]]. If optional reference is included, also calculates in the skill factor for that actor (including luck). | ||
*'''LoadObject''' - Forcibly cache/load an object, or '''LoadCellBuffer''' which would load/cache an entire cell, sort of opposite to [[PurgeCellBuffers]] | *'''LoadObject''' - Forcibly cache/load an object, or '''LoadCellBuffer''' which would load/cache an entire cell, sort of opposite to [[PurgeCellBuffers]] | ||
*'''EquipMe''' - Makes the actor holding the calling reference equips it. Even better if it can trigger OnEquip blocks. | *'''EquipMe''' - Makes the actor holding the calling reference equips it. Even better if it can trigger OnEquip blocks. | ||
*'''Get/SetCellFogNear''' & '''Get/SetCellFogFar''' - Get and set interior cell fog distance. | *'''Get/SetCellFogNear''' & '''Get/SetCellFogFar''' - Get and set interior cell fog distance. | ||
*'''GetStartingCell''' ''CellID'' - Returns true if editor cellID is the same a the parameter specified. | *'''GetStartingCell''' ''CellID'' - Returns true if editor cellID is the same a the parameter specified. | ||
*'''GetGroundPos''' - Returns the groundlevel co-ordinate of the current cell. | *'''GetGroundPos''' - Returns the groundlevel co-ordinate of the current cell. | ||
*'''Add/RemoveMajorSkill''' - Adds or removes major skill on calling actor. | *'''Add/RemoveMajorSkill''' - Adds or removes major skill on calling actor. | ||
*'''Add/RemoveClassSkill''' - Adds or removes class skill for indicated class (If above request is prohibitive) | *'''Add/RemoveClassSkill''' - Adds or removes class skill for indicated class (If above request is prohibitive) | ||
*'''GetDimension [x|-x|y|-y|z|-z] ''' - returns the distance from the object 'origin' to its outer limit in the requested axis and direction - very useful when moving/placing/aligning/spacing references by script. (a typical NPC with the origin at the feet would return 125 to Z (origin to top) and 0 to -Z (origin to bottom) | *'''GetDimension [x|-x|y|-y|z|-z] ''' - returns the distance from the object 'origin' to its outer limit in the requested axis and direction - very useful when moving/placing/aligning/spacing references by script. (a typical NPC with the origin at the feet would return 125 to Z (origin to top) and 0 to -Z (origin to bottom) | ||
*'''GetCollidingRefs''' - returns an array of the references colliding with the calling reference. <OR> '''GetFirst/NextCollidingRef''' - returns one at a time. | *'''GetCollidingRefs''' - returns an array of the references colliding with the calling reference. <OR> '''GetFirst/NextCollidingRef''' - returns one at a time. | ||
==Questionable Requests== | ==Questionable Requests== |