SKSE Wish List

Revision as of 12:35, 4 February 2015 by imported>Jaxonz (→‎Modifications of Existing Functions)


Note : Function requests are better made in the current SKSE discussion thread. Search for Skyrim Script Extender (SKSE) at the BGS forums to find the latest one.


This wish list is a place to put ideas for inclusion in SKSE. It will be kept organized, consistent, and clean as possible. That means your contribution may be edited or deleted in order to keep this list manageable. Contributions will only be deleted if they are redundant - either because Skyrim came with a function for this, or because the function has already been requested. Contributions may be edited for a large variety of reasons, from consistency to aesthetics. Please do not take this personally.

Care will be taken to include a name with any requested function if that request is signed. If you don't care about having your name attached, please do not sign your request, since it will keep the list neater.

If, for any reason, you disagree with a change or deletion from this list, please discuss this in the Talk page - we are not infallible, it is entirely possible that we misunderstood the need or use of a given function, and we need that explained so that the contribution can be reverted into its original form and/or be changed into something more appropriate.

To keep the list more manageable, requests have been broken down into categories according to the type of function and, in some cases, the probable ease of implementation. Requested functions which can be accomplished with existing functions appear in a separate section at the bottom of the list.

To avoid requesting a feature which is already available, first consult the SKSE documentation and the list of SKSE Wishes Fulfilled.

Modifications of Existing Functions

Tweaks to functions already present in the scripting language:

  • Game.IsObjectFavorited - Override to allow an ObjectReference as input and provide a definitive response. As presently implemented the function is ambiguous. If 2 different items exist, each with identical base forms, and one is favorited but the other is not, the function incorrectly returns true for both.

Modifications/Extensions of SKSE Functions

Language Enhancements

Audio Functions

Functions dealing with music and sound:

AI Functions

Functions dealing with combat, crime, detection, and AI:

Animation and Graphics Functions

Functions dealing with animations or game rendering:

Functions Returning a Reference

Functions that return a reference:

Forms

Base Object Types

Armor

Weapon

Perk

Cell

Location

  • GetCells - Access to cells belonging to a location. Return either as an array or with the GenNum../GetNth.. iteration pattern.

Faction

Ammo

  • GetEquippedAmmo - Checks to see what ammo the player has equipped for a bow or crossbow. Aim of function is to be used as an object reference.
  • IsAmmoEquipped - Checks if the player has equipped an ammunition of some sort for a projectile weapon.

Misc

ObjectReferences

Actors

Aliases

ReferenceAliases

LocationAliases

UI Functions

Other Functions

Functions which don't fit into other categories:

Game

  • GetFavorites - A means to iterate through favorited items/spells. Return specific ObjectReference rather than Form when possible. Return either as an array or with GenNum../GetNth.. iteration pattern.

Math

StringUtils

  • StringReplace - Replace characters/substrings in an existing string.
  StringReplace (String sOriginal, String sOldSubstr, String sNewSubstr, int Flags)
Flags for case sensitivity, etc.
Easy enough to do this in Papyrus, but could be more efficient in C++.

Misc

  • IIf - Simple in-line If statement. A concise way to replace 5 lines of code with one statement.
 IIf (expr, truepart, falsepart)
May have to implement as IffString, IffFloat, etc. since Papyrus has no overloading.
 String Function IIfString (bool bTestExpr, String sValIfTrue, String sValIfFalse)
 Float Function IIfFloat (bool bTestExpr, Float fValIfTrue, Float fValIfFalse)

Questionable Requests

"Questionable" is not meant to be demeaning. These requests may be unclear, or it may be possible to implement them using existing functions, thus they receive lower priority. If you disagree with a function's classification here, discuss it on the TALK page:

Requests that can be implemented with current functions

Unclear requests

Highly Unlikely Requests

  • Form.Add/RemoveKeyword() - Would involve writing own code to edit the size of the keyword refs on the object, and would be a big project with the possibility of bugs creeping into the code. Could be replaced with a function that substitutes one keyword or more for another one or set from a form (ReplaceKeyword(Form theFormToChange, Keyword toRemove, Keyword toAdd))