CastAs - ScriptObject

From the Fallout4 CreationKit Wiki
Jump to navigation Jump to search

Member of: ScriptObject Script

Attempts to cast this script as a different script, but without adding a dependency on the calling script.

Syntax[edit | edit source]

ScriptObject Function CastAs(string asScriptName) native

Parameters[edit | edit source]

  • asScriptName: The script to cast to

Return Value[edit | edit source]

The casted script, if possible, otherwise None.

Examples[edit | edit source]

; Call "Function MakeACake()" on script "Latrop"
; We use CastAs to make sure we don't depend on the script we want to call the function on
ScriptObject latropScript = FormFromOtherMod.CastAs("Latrop")
if latropScript ; make sure the cast succeeded
  latropScript.CallFunction("MakeACake", new Var[0])
endIf

Notes[edit | edit source]

  • If the script doesn't exist, or isn't attached to the form in question the function will simply return None, just like a cast operation.
  • Unlike a cast operation, you do not have to cast "down" the inheritance tree first. For example, it will let you cast from "ScriptA" directly to "ScriptB" if they are attached to the same form, even if you would normally have to go through "ObjectReference".
  • If two copies of the same script are attached to the same form, it is undefined which one you will get. For example, if both "ScriptA" and "ScriptB" are attached to a reference, both inheriting from "ObjectReference" and you pass "ObjectReference" as the parameter to CastAs, which script you actually get is effectively random.
  • The compiler cannot check the script name for you, so make sure to triple check everything!

See Also[edit | edit source]