SpawnerTask Script: Difference between revisions
Jump to navigation
Jump to search
imported>DavidJCobb (created) |
m (Convert source tags to syntaxhighlight) |
||
| Line 6: | Line 6: | ||
== Definition == | == Definition == | ||
< | <syntaxhighlight lang="papyrus"> | ||
ScriptName SpawnerTask Hidden | ScriptName SpawnerTask Hidden | ||
</ | </syntaxhighlight> | ||
== SKSE Global Functions == | == SKSE Global Functions == | ||
| Line 28: | Line 28: | ||
== Example == | == Example == | ||
< | <syntaxhighlight lang=papyrus> | ||
Static Property XMarker Auto | Static Property XMarker Auto | ||
{Auto-fill.} | {Auto-fill.} | ||
| Line 50: | Line 50: | ||
EndIf | EndIf | ||
EndFunction | EndFunction | ||
</ | </syntaxhighlight> | ||
== Notes == | == Notes == | ||
Latest revision as of 21:22, 5 September 2026
Minimum required SKSE Version: 1.7.3
A scripted SKSE interface that allows you to spawn objects (e.g. PlaceAtMe) in bulk, such that none of the spawns have to wait on each other.
Definition[edit | edit source]
ScriptName SpawnerTask HiddenSKSE Global Functions[edit | edit source]
- Int Create()
- Creates a new SpawnerTask and returns the handle. If the handle is zero or a negative number, then SKSE failed to create a SpawnerTask.
- AddSpawn(Int handle, Form formToPlace, ObjectReference target, Float[] positionOffset, Float[] rotation, Int count = 1, Bool bForcePersist = false, Bool bInitiallyDisabled = false)
- Queues an object to spawn at the target when the SpawnerTask is run.
- The positionOffset array is a world-relative offset from the target.
- The rotation is a world-relative rotation to be applied to the new object.
- Queues an object to spawn at the target when the SpawnerTask is run.
- ObjectReference[] Run(Int handle)
- Executes the SpawnerTask, spawning all queued objects and returning an array.
- Cancel(Int handle)
- Aborts the SpawnerTask.
Example[edit | edit source]
Static Property XMarker Auto
{Auto-fill.}
Function SomeFunction()
Float fPosition = new Float[3]
Float fRotation = new Float[3]
fPosition[2] = 128
Int iHandle = SpawnerTask.Create()
If (iHandle > 0)
Int iIterator = 0
While iIterator < 5
SpawnerTask.AddSpawn(iHandle, XMarker, fPosition, fRotation)
fRotation[2] += 24
iIterator += 5
EndWhile
;
ObjectReference[] kResults = SpawnerTask.Run()
EndIf
EndFunctionNotes[edit | edit source]
- A SpawnerTask may only be used from the same call stack that created it. If you create a SpawnerTask while responding to one event, you cannot manipulate that SpawnerTask from a different event.
- If a call stack expires without running or canceling its SpawnerTask, SKSE will automatically destroy the SpawnerTask the next time the player saves and loads the game, to prevent it from hanging around in memory forever.