EntityControl Fields¶
This page aims to document the different fields available to EntityControl and their expected usage. Note: internal here means both EntityControl and NPCControl's concerns, not just EntityControl. A field being public doesn't necessarily mean it can safely be used externally. This document will clarify when a field can safely be set externally.
Object hiearchy¶
These fields are intended to ease the navigation and accesses of the different key components and objects of the Entity. They can be as simple as avoiding a GetComponent call or just a way to verify the presence of an optional structure like a model. They are not intended to be set externally unless otherwise stated, but their properties can be set.
Name | Type | Description |
---|---|---|
transform | Transform | The transform of the root object of the entity, assigned on CreateNewEntity and Start |
npcdata | NPCControl | The optional NPCControl of the entity. This must be set externally or on CreateEntities |
ccol | CapsuleCollider | The capsule collider of the root object, assigned on CreateNewEntity and Start. The height and radius are loaded on CreateEntities |
rigid | RigidBody | The rigid body of the root object, assigned on Start |
rotater | Transform | The transform of the Rotater object which controls alignement, the first child of the root object, assigned on Start |
sprite | SpriteRenderer | The sprite renderer of the sprite object, assigned on CreateNewEntity |
spritetransform | Transform | The transform of the Sprite object, a child of the Rotater object, assigned on CreateNewEntity |
emoticon | Animator | The animator component of the Emoticon object which is an icon that appears at the top of the entity for interactions, a child of the Rotater object, assigned on Start |
emoticonsprite | SpriteRender | The sprite renderer component of the Emoticon object, a child of the Rotater object, assigned on Start |
moverotater | Transform | The transform of the MoveRotater object which is used for movement alignment, a child of the root object, assigned on CreateNewEntity and Start |
shadow | SpriteRender | The sprite renderer of the shadow object, a child of the root object. Assigned on Start during CreateShadow |
shadowtransform | Transform | The transform of the shadow object, a child of the root object. Assigned on Start during CreateShadow |
hpbar | Transform | The transform of the hp bar when applicable, a child of the root object. Assigned on CreateHPBar |
hpbarfont | DynamicFont | A DynamicFont of the hpbar that shows the HP, Assigned on CreateHPBar |
defstat | DynamicFont | A DynamicFont of the hpbar that shows the defense, Assigned on CreateHPBar |
icecube | GameObject | The object of an ice cube when the entity is frozen, a child of the root object. Assigned on Freeze |
movesmoke | Transform | The transform of an instance of Prefabs/Particles/WalkDust a child of the root object. Assigned when applicable on LateStart |
detect | BoxCollider | The BoxCollider of the Detector object with a RayDetector that is used to detect walls via hitwall, a child of the root object. Assigned by CreateDetector |
feet | GroundDetector | The GroundDetector of an instance of Prefabs/GroundDetector a child of the root object used to detect being on the ground via onground. Assigned on CreateFeet with this entity as the parent |
flowerbed | GameObject | An instance of Prefabs/Particles/flowerbed , a child of of the root object. Assigned during OnTriggerStay when the other collider has the FlowerBed tag |
sound | AudioSource | The audio source of the root object, assigned on Start, but can be reassigned externally |
Animations and AnimIDs¶
These fields manages the animations according to the animid.
Name | Type | External set? | Description |
---|---|---|---|
animid | int | Yes | The AnimID of the entity, dictates the animation controller to use via the anim field. Can be set via CreateEntities. For an item entity, this is the item type |
originalid | int | No | The AnimID at the start of CheckSpecialID which may not be the same then the effective value from the animid field |
animstate | int | Yes | The animstate of the entity, dictates the animation clip to play on the controller of the anim field. For an item entity, this is the item id and set via CreateEntities |
basestate | int | Yes | The animstate to consider as the Idle one which overrides the default of 0, assigned during CheckSpecialID when applicable |
walkstate | int | Yes | The animstate to consider as the Walk one which overrides the default of 1, assigned during CheckSpecialID when applicable |
changedstate | bool | Yes | Determines if the animstate was changed externally and thus should bypass the landing on ground logic of UpdateAirAnim for all entities with an npcdata. This is only used in the Anim SetText command. |
animspeed | float | Yes | The time in second to transition between animations during SetAnim |
anim | Animator | No | The animator the entity uses. This will use the controller of the animid field. This is first assigned on Start or AddModel , but it can be changed later via ForceAnimator (more details at Animator change) |
hasiceanim | bool | No | Whether or not the entity has an ice animation clip present to play when the inice field is true. Assigned on CheckSpecialID from endata |
diganim | bool | No | Determines if this entity has animations when digging, assigned on CheckSpecialID from endata |
flyinganim | bool | Yes | Determines if the entity should be playing the flying version of the current animstate |
forcefire | bool | No | Forces the fire variant of the entity's animid if it exist. This is only assigned to true during Enemies data loading for FireCape, FireWarden and FireKrawler. Enforced in CheckSpecialID when applicable |
talking | bool | Yes | Determines if the entity is currently talking. This must be set externally to have an effect during UpdateSprite |
notalk | bool | No | Determines if this entity should never have SetAnim called with a t (talking) argument assigned on CheckSpecialID when endata 's Object is true |
bounceanim | Coroutine | Yes | Exposes a way to store the BounceAnim call to know if the entity is currently in a BounceAnim, set to null before a yield break or return |
specialanim | Coroutine | Yes | Exposes a way to store a coroutine call to know if the entity is currently in a special animations requiring a coroutine, set to null before a yield break or return |
Force move¶
These fields manages both the process of ForceMove and MoveTowards which are considered force move as they are game controlled movement of the entity to a specific target.
Name | Type | External set? | Description |
---|---|---|---|
forcemoving | Coroutine | Yes | Exposes a way to store a ForceMove call to know if the entity is currently in a ForceMove, set to null before a yield break or return |
forcemove | bool | Yes | Determines if the entity is currently in a force move process via MoveTowards |
forcetarget | Vector3 | Yes | The target position of a forcemove via MoveTowards |
forcemultiplier | float | No | The multiplier to the speed when moving during a forcemove via MoveTowards if the caller specified one. This defaults to 1.0 |
forceanim | int | No | The animstate to use during the forcemove via MoveTowards if the caller specified one. This defaults to walkstate |
forcestop | int | No | The animstate to use when the forcemove via MoveTowards is completed if the caller specified one. This defaults to basestate |
forcetimer | float | No | The time remaining in frames before triggering the forcemove failsafe via MoveTowards, decreased on LateUpdate when applicable unless disabletimer is true |
disabletimer | bool | Yes | Determines if the forcetimer should decrease on LateUpdate if applicable |
looktowards | Vector3 | No | The position the entity looks at during a forcemove via MoveTowards, null if not applicable |
extratimer | bool | No | Determines if the forcetimer should be doubled when a forcemove is started which gives more time before triggering the failsafe. This can be assigned to true on Start with the TIME Modifiers |
forcejump | bool | Yes | Determines if the entity should attempt to jump during a force move when hitwall and onground are true and jumpcooldown is expired. This must be set externally |
ignorey | bool | Yes | Determines if the entity should ignore the y axis during the forcemove via MoveTowards if the caller specified one. |
Height management¶
These fields operate with the concept of height which is a visual vertical offset between the root transform
and the spritetransform
. This is accomplished by setting the local position of the latter upwards which won't affect physics, but affects visual rendering.
Name | Type | External set? | Description |
---|---|---|---|
height | float | Yes | The vertical offset of the spritetransform to the transform. Set to initialheight on CreateEntities, but overridden to minheight on Start when applicable |
minheight | float | Yes | The minimum height which is enforced on Start and in CheckSpecialID where it is also assigned from endata |
initialheight | float | Yes | The starting height, assigned to height on Start and on CreateEntities |
tempheightoverride | bool | No | This is only used during Drop when the entity is frozen in the air and therefore should drop to 0.0 instead of minheight |
bobrange | float | Yes | The range of the oscillation done during UpdateHeight when the height is higher than 0.1, assigned on CreateEntities or on CheckSpecialID from endata |
bobspeed | float | Yes | The speed of the oscillation done during UpdateHeight when the height is higher than 0.1, assigned on CreateEntities or on CheckSpecialID from endata |
startbf | float | No | The initial bobrange, assigned to bobrange on LateStart but also on CheckSpecialID and AnimSpecificQuirks when applicable. The bobrange is restored to this on Drop and BreakIce, but it is possible to do so externally |
startbs | float | No | The initial bobspeed, assigned to bobspeed on LateStart but also on CheckSpecialID and AnimSpecificQuirks when applicable. The bobspeed is restored to this on Drop and BreakIce, but it is possible to do so externally |
Logic overrides¶
These fields allows to bypass common logic of the entity during its lifecycle. They act as toggles and most of them can be operated externally which allows to gain more control over the entity from outside EntityControl.
Name | Type | External set? | Description |
---|---|---|---|
overrideanim | bool | Yes | Determines if the entity should not have its animstate changed automatically which means only explicit writes to the animstate are allowed. This also prevents the sprite to be disabled and its sprite to be set to null when the animid becomes -1 (None). Assigned to true on CheckSpecialID if it's a KeyL , KeyR or Tablet |
overridemovesmoke | bool | Yes | Determines if the movesmoke should never be positioned at the root object during UpdateMoveSmoke. Set to true on Start and CheckSpecialID when applicable |
overrideshadow | bool | Yes | Forces the creation and updates of shadow as long as iskill is false, assigned in CheckSpecialID from endata or to true when applicable. This needs to be set as part of the startup process or shadow will never be created |
overrideanimfunc | bool | Yes | Determines if the entity should not be affected by a call to AnimationFunctions.ExtraAnims, assigned to true on CheckSpecialID if it's a KeyL , KeyR or Tablet |
overrridejump | bool | Yes | Determines if the entity should not have its animstate changed to Jump or Fall automatically during UpdateAirAnim, assigned at several places internally notably on CheckSpecialID from endata |
overrideflip | bool | Yes | Determines if the entity should skip any UpdateFlip cycle |
overrideonlyflip | bool | Yes | Determines if the entity should skip regular flip handling in the UpdateFlip cycle (this means any updates other than digging when spin is zero) |
overrideheight | bool | Yes | Determines if the entity should skip any UpdateHeight cycle even if it isn't the player and not an npcdata of type Object |
overrideanimspeed | bool | Yes | Determines if the standard animation speed logic should be bypassed on Update, must be set externally or by EntityControl Methods > Overrides |
overridefollow | bool | Yes | Determines if the entity should not be controlled by the Follow logic |
overrideshieldpos | Vector3? | Yes | Overrides the default bubbleshield position if assigned. This must be set externally |
overridefly | bool | No | Determines if the entity will never attempt to play a fly animation or receive UpdateAirAnim cycles, assigned on CheckSpecialID from endata |
Extras and optional objects¶
These fields manages optional objects that the entity maintains. They are usually created and used on a per AnimID needs.
Name | Type | External set? | Description |
---|---|---|---|
extras | GameObject | No | An array of extra objects to keep track of. Assigned with a variable length on CheckSpecialID and during the AnimSpecific updates |
spinextra | Vector3[] | No | An array of extra angles to add to the extras and extralines assigned on CheckSpecialID and AnimSpecificQuirks when applicable |
extraanims | Animator[] | No | An array of extra animator to use which is required for certain AnimIDs. Assigned if applicable on UpdateAnimSpecific |
extrasprites | SprtiteRender[] | No | An array of extra sprite render to use which is required for certain AnimIDs. Assigned if applicable on AnimSpecificQuirks |
extralines | LineRenderer[] | No | A set of extra lines the entity can use, only used for DeadLanderB during AnimSpecificQuirks |
line | LineRenderer | No | The line renderer of the Line object, childed to the parent sent to AddLine or to the spritetransform if null. AddLine must be called to have this assigned which it is on CheckSpecialID for RizGrandpa |
subentity | EntityControl[] | No | An array of sub entities that this entity has access to. This is specifically used for SeedlingKing |
firepart | Transform | Yes | The particles object involved in a condition's visual effect when applicable. This is not used internally and is left to null. This must be set and used externally |
Ice¶
These fields manages any ice related event, particularly during Freeze handling.
Name | Type | External set? | Description |
---|---|---|---|
inice | bool | Yes | Determines if the entity is affected by an ice related event, set to true on Start if the current map's icemap is true |
icecubeprefab | GameObject | No | An instance of Prefabs/Objects/icecube , assigned on Start |
nofallfrozen | bool | No | Determines if the entity should stay in place when Drop occurs while the entity is frozen |
freezesize | Vector3 | No | The size of the ice cube when the entity is frozen, assigned on CreateEntities, Enemies data loading or CheckSpecialID from endata |
freezeoffset | Vector3 | No | The offset of the ice cube when the entity is frozen, assigned on CreateEntities, Enemies data loading or CheckSpecialID from endata |
initialfrezeoffset | Vector3 | No | The initial offset of the ice cube when the entity is frozen, assigned on CheckSpecialID to freezeoffset |
shakeice | bool | Yes | Determines if the icecube should shake when being rendered if applicable |
Rendering and alignment¶
These fields changes the way the entity is rendered or aligned horizontally.
Name | Type | External set? | Description |
---|---|---|---|
speed | float | Yes | The movement speed of the entity, assigned on CreateEntities or during CheckSpecialID when applicable. This defaults to 5.0 |
flip | bool | Yes | Whether the sprite should be rendered flipped by 180 degrees on the y axis, must be set externally, by CreateEntities or if needed internally |
alwaysflip | bool | No | Determines if UpdateFlip should be called each LateUpdate even without an incamera update, assigned to true on Start with the ALF Modifiers |
spin | Vector3 | Yes | The rotation in angles to apply on the next UpdateFlip when not digging and overrideflip is false, assigned on CheckSpecialID for a CrystalBerry |
lockrotater | bool | No | Determines whether to lock the y angle of the rotater object instead of letting it rotate to the main camera y angle, assigned to true on Start with the ROT Modifiers |
spritebasecolor | Color | Yes | The suggested color to render the sprite, assigned to fully opaque white on EntityControl Creation |
hologram | bool | Yes | Determines if the entity should be rendered as a hologram. This can be assigned to true on Start with the Holo or COT Modifiers |
cotunknown | bool | Yes | Determines if the entity should be rendered as a silhouette during the Cave of Trials. This can be assigned to true on Start with the COT Modifiers |
refreshedcotu | bool | No | Indicates that the entity processed a RefreshCOT call |
stopspinonground | bool | Yes | A fire and forget flag to stop the spin on the next LateUpdate |
startscale | Vector3 | Yes | The base scale of the entity. truescale will be set to this during LateUpdate which will cause the spritetransform to be scaled by it during UpdateFlip. The default is Vector3.one, writing to it will change the scale on the next UpdateFlip |
truescale | Vector3 | No | The Vector3 that will be used to scale spritetransform on the next LateUpdate using the startscale value. Initially set on LateStart to startscale |
modelscale | Vector3 | No | The scale of the model if applicable, assigned on AddModel to the model's actual scale. This is never set once startup finishes. |
shrink | bool | Yes | Determines if the entity should be progressively shrunk on UpdateVelocity by setting startscale towards zero |
nomodel | bool | No | Determines if this entity should be considred to not have a model and to not attempt to load any, only set to true on CheckSpecialID if it's a KeyL , KeyR or Tablet |
trail | bool | Yes | Determines if the entity has a trail which are rendered copies of the entity with half transparency as they move |
traildata | TrailData | No | The data of the trails if applicable, managed by RefreshTrail |
Physics and movement handling¶
These fields manages any physics related tasks, particularly movement, but also collisions.
Name | Type | External set? | Description |
---|---|---|---|
startvelocity | Vector3 | No | The starting velocity of the rigid, assigned on Start |
deltavelocity | Vector3 | No | The last velocity observed since the last Move |
startpos | Vector3 | Yes | The last starting position of the entity. Initially set on CreateEntities or to the transform's position on Start or to the point a raycast will hit from the transform heading down with the COG Modifiers or on LateStart to the transform position if it still isn't set. This is also set on SetPosition and it is used to restore the transform position if needed, but it can be done externally |
onground | bool | Yes | The result of the feet's GroundDetector which determines if the entity is on the ground. It it can be forced externally to force the result. The default value is true, but it is overridden to false on Start with the NGS Modifiers |
hitwall | bool | Yes | The result of the detect's RayDetector which determines if the entity has hit a wall, but it can be set externally to force the result. |
walktype | WalkType | No | The type of walking of this entity during Move |
jumpheight | float | Yes | The height of a Jump for this entity. Also used to clamp the y velocity in UpdateVelocity, set to 10.0 by default |
jumpcooldown | float | No | The time in frames to wait before the entity is allowed to jump again since the last Jump, decreased towards 0 by UpdateGround |
springcooldown | bool | No | Determines if the entity is currently in ascension after touching a JumpSpring |
offgroundframes | float | Yes | The amount of time in frames this entity observed onground being false, updated on LateUpdate, but reset to 0.0 if it reaches 1000.0 |
initialcenter | Vector3 | No | The center of the ccol initially when Start occurs |
initialcolliderdata | Vector2 | No | The height and radius (in x and y respectively) of the ccol when Start occurs |
fixedentity | bool | Yes | Determines if this entity should be fixed in position, assigned to true on Start if the entity is a TestSign or with the Fixed or FxdCol Modifiers |
ignorewater | bool | No | Determines whether this entity is not affected by water Hazards, assigned when applicable on CheckSpecialID |
leiffly | bool | No | Determines if the entity is Moth and he is currently in his flying animation. Used during FixedUpdate to set his position as he flies |
Previous values¶
These fields stores the previous values of other fields observed at particular points in the entity lifecycle. Most of them shouldn't be set externally, but some can be set to force some kind of update.
Name | Type | External set? | Description |
---|---|---|---|
oldid | int | No | The last animid observed since the last animation updates of UpdateSprite |
laststate | string | No | The last effective animstate played including the arguments of SetAnim. Set only when playing an animation from SetAnim |
lastvelocity | Vector3 | No | The velocity last observed when pausing happened on Update and then used as the rigid's velocity on Update after unpause before going back to null |
lastgravity | bool | No | The gravity's enabling that was last observed when pausing happened on Update and then used as the rigid's useGravity on Update after unpause |
lastvolume | float | No | The sound's volume that was last observed when pausing happened on Update and then used as the sound's volume on Update after unpause |
pausepos | Vector3 | No | The position last observed when pausing happened on Update and set to null when unpausing happened on Update. Used to lock the position when paused unless activeonpause is true, we are in an event, iskill is true or the entity is dead |
lastshadow | Vector3 | No | The last position of the transform when RefreshShadow updated the shadow |
oldback | bool | No | The last backsprite observed since the last animation updates of UpdateSprite |
oldttalk | bool | No | The last talking observed since the last animation updates of UpdateSprite |
lastice | bool | No | The last inice observed since the last animation updates of UpdateSprite |
oldstate | int | Yes | The last animstate observed by the last animation update of UpdateSprite |
lastpos | Vector3 | Yes | The last transform's position observed since the last LateUpdate assigned to startpos on CreateEntities or on Start |
oldfly | bool | Yes | The last flyinganim observed since the last animation updates of UpdateSprite |
oldtalk | bool | Yes | The last value of talking observed during the last UpdateSprite |
Digging¶
These fields manages the process of digging underground.
Name | Type | External set? | Description |
---|---|---|---|
digging | bool | Yes | Determines if the entity is digging underground which is used on several update methods. |
digtime | float | Yes | The time in frames since the entity started digging underground |
digscale | Vector3 | Yes | The scale to render digpart[1] which is the digging object when fully underground. The default is Vector3.one |
digpart | GameObject[] | No | An array of 2 objects which are both children of the root object. The first is an instance of Prefabs/Particles/DirtFlying when starting a dig and the second is an instance of Prefabs/Particles/Digging when fully digging. Assigned to a length of 2 on Start |
nodigpart | bool | No | Determines if digpart should be created and handled while digging during UpdateFlip. Set to true during Follow |
instdig | bool | No | Determines if the entity should immediately start digging??? TODO: this might not be practically used because the only possible usage implies a throw during UpdateFlip |
Identification¶
These fields provides more information about who this entity is.
Name | Type | External set? | Description |
---|---|---|---|
isplayer | bool | No | Determine if this is the player entity with the PlayerControl, assigned to true on LateStart if the entity has the Player tag |
mainparty | bool | Yes | Determines if the entity is part of the main party when created which means the party members that follow the player excluding the player itself. Must be set externally and is only used in CloseMove during a Follow |
playerentity | bool | No | Determines if this entity is related or is the player, assigned to true on Start if the entity has the Player or PFollower tag |
isfollower | bool | No | Determines if the entity is a follower, assigned on LateStart when the entity has the PFollower tag |
tempfollower | bool | No | Determines if the entity is a temporary follower, set to true when the entity was created using AddFollower |
battle | bool | Yes | Determines if this is a battle entity, must be set externally or during CheckSpecialID when applicable |
battleid | int | Yes | The index of the entity in the current battle's enemydata, -1 when not applicable |
Emoticon and status icons¶
These fields manages both the emoticon to show in emoticon
or the status condition / medal icon to show during battle.
Name | Type | External set? | Description |
---|---|---|---|
emoticonid | int | Yes | The id of the emoticon to play on the next UpdateEmoticon when emoticoncooldown hasn't expired yet |
emoticonoffset | Vector3 | Yes | The offset to render the emoticon from the height during UpdateEmoticon, assigned on CheckSpecialID from endata 's freezeflipoffset when applicable and on CreateEntities |
emoticoncooldown | float | Yes | The period in frames to listen for emoticon changes and play the one in emoticonid during UpdateEmoticon |
statusid | int | No | The id of the current status icon to show from statusicons until statuscooldown expires |
statusicons | Transform[] | Yes | The status transforms of the status icons attached to the entity |
statuscooldown | float | No | The time in frames left to display the statusid current status icon from statusicons |
nocondition | bool | Yes | Determines if the entity shouldn't render any condition icons during UpdateStatusIcons. Set to true at the start of Death and to false in Revive |
Follow¶
These fields configures the Follow system and allow access to the follow chain.
Name | Type | External set? | Description |
---|---|---|---|
following | EntityControl | Yes | The Entity to follow which involves physically moving it such that it follows it during Follow |
followedby | Transform | Yes | The entity that follows this one, null if not followed by anyone. This must be set externally which is typically by MainManager |
followoffset | float | Yes | The distance to be away from the following entity |
tempfollowerid | int | Yes | This is specific to Chompy to determine who she follows. This must be set externally |
Camera active range info¶
These fields manages the concept of an entity being "active" which means they receive more attention during the update cycle. This is typically due to being in the range of the camera, but it can be forced on.
Name | Type | External set? | Description |
---|---|---|---|
incamera | bool | No | Determines if the entity is in the main camera range, updated every 3 frames on LateUpdate, stays true when alwaysactive is true |
camdistance | float | No | The distance from the entity to the main camera, updated every 3 frames on LateUpdate |
campos | Vector3 | No | The viewport position of the entity from the main camera, updated every 3 frames on LateUpdate |
alwaysactive | bool | Yes | Determines if this entity should always be considered active by overriding incamera to true during UpdateCamPos (called by LateUpdate). This also forces the forcetimer to decrease and UpdateHeight to be called from LateUpdate when they apply. Assigned to true on Start with the ALW Modifiers or during CheckSpecialID when applicable |
activeonpause | bool | Yes | Determines if this entity should receive updates and late updates when paused, minipaused, message lock being active or dead, assigned to true on Start with the PAU Modifiers |
Shadow¶
These fields handles the shadow
object.
Name | Type | External set? | Description |
---|---|---|---|
hasshadow | bool | Yes | Determines if shadows should be rendered for this entity, assigned on CheckSpecialID to true or overridden from endata / false if applicable. If this was false by the end of CheckSpecialID, the shadow will never be created |
shadowsize | float | Yes | The maximum base scale of the shadow object assigned on CheckSpecialID from endata |
Sound¶
These fields configure the sounds to play using sound
.
Name | Type | External set? | Description |
---|---|---|---|
soundonpause | bool | No | Determines if the entity should be muted when it goes out of range or the game is paused, assigned by NPCControl's SetUp when it is a Geizer |
soundvolume | float | No | The volume to play the next sounds clips from the sound AudioSource. PlaySound must be called to set this |
Death¶
These fields manages the concept of Death and also configures it when it occur.
Name | Type | External set? | Description |
---|---|---|---|
dead | bool | Yes | Determines if the entity is currently dead which is assigned to true at the start of Death |
iskill | bool | Yes | Determines if the entity is killed, similar to death, but is only optionally set during Death when requested. |
spitexp | int | Yes | The amount of EXP orb to drop when Death occur. This must be set externally |
spitmoney | int | Yes | The amount of berries to drop when Death occur. This must be set externally |
Item¶
These fields are specific to item entities.
Name | Type | External set? | Description |
---|---|---|---|
item | bool | Yes | Determines if this entity is an item entity. This should be set before Start alongside animstate . If not, itemstate must also be set to the animstate |
showitem | bool | No | Indicates that this entity must render an item sprite. This can be set to true on Start using the shwKEY Modifiers |
itemstate | int | Yes | The item id, only applicable for item entity and should have the same value as the animstate |
Drop¶
These fields are related to the Drop procedure.
Name | Type | External set? | Description |
---|---|---|---|
shakeondrop | bool | No | Determines if the entity should cause a screen shake, a sound and smoke effects to happen when Drop has dropped the entity to the ground, Assigned on CheckSpecialID from endata |
droproutine | Coroutine | Yes | Exposes a way to store the Drop call to know if the entity is dropping, set to null before a yield break or return |
Bubble shield¶
These fields are related to the use of the bubble shield.
Name | Type | External set? | Description |
---|---|---|---|
shieldenabled | bool | Yes | Determines if the entity has an active bubble shield which will grow bubbleshield to its scale. This must be set externally |
bubbleshield | DialogueAnim | No | The DialogueAnim of an instance of Prefabs/Objects/BubbleShield childed to the Rotater object when battle and isplayer are both true on Start |
Dialogue bleep¶
These fields dictate the default sound to use during SetText's bleep and its Bleep command.
Name | Type | External set? | Description |
---|---|---|---|
dialoguebleepid | int | Yes | The bleep sound id to use in the Bleep SetText command, assigned from endata on Start during SetDialogueBleep |
bleeppitch | int | Yes | The bleep pitch to use in the Bleep SetText command, assigned from endata on Start during SetDialogueBleep |
Late transform¶
The late transform is a special transform the entity has available that lives completely separately to the regular update cycle. These fields manages that concept.
Name | Type | External set? | Description |
---|---|---|---|
latetrans | Transform | Yes | A transform that gets positioned by latepos every LateUpdate |
latepos | Vector3 | Yes | The position to set latetrans on LateUpdate |
Miscellaneous¶
Name | Type | External set? | Description |
---|---|---|---|
originalmap | Transform | No | The transform of the current map observed on LateStart |
setup | bool | No | Determines if LateStart has executed. Assigned to true at the end of it. |
icooldown | float | Yes | The period in frames left to the invulnerability |
noclock | bool | Yes | Related to PlatformNoClock ??? This must be set externally |
destroytype | DeathType | Yes | The type of death process used for Death. This is normally loaded from map entity data |
Used only by NPCControl¶
These fields are declared in EntityControl Creation, but aren't actually used there outside of declaration with optional initialization.They are only useful in NPCControl, only what happens on EntityControl Creation is documented here.
Name | Type | Description |
---|---|---|
hideinside | bool | Assigned to true on Start with the HIDE Modifiers |
alwaysemoticon | bool | Assigned to true on Start with the ShwEm Modifiers |
spawnpoint | Vector3 | Set to the transform's position on Start |
overrideminheight | bool | Determines if the entity should not have minheight affect its height. This is only used by NPCControl |
activeinevents | bool | Left to default (false) |
killonfall | bool | Left to default (false) |
Practically unused fields¶
These fields are present, but they do not have any practical uses in the game. They can still impact logic if they are changed externally or they are used as constant value meaning they should never be changed.
Name | Type | Description |
---|---|---|
noemoticon | bool | This can allow to opt out of having an emoticon object if set to true on Start. The field is functional, but never set |
preloadedobjects | GameObject[] | Contains the array of preloaded objects assigned on CheckSpecialID from endata . This field's sole purpose is to cache ressources loading for later |
preloadedsprites | Sprite[] | Contains the array of preloaded sprites assigned on CheckSpecialID from endata . This field's sole purpose is to cache ressources loading for later |
oldground | bool | The last onground value observed since the last LateUpdate |
mapentity | bool | Presumably, this would indicate that the entity is from a map, but this is covered by npcdata not being null |
flipspeed | float | The speed to flip the angles of the sprite during a regular flip handling of UpdateFlip. This is left to its default value which is 0.2 |
extraoffset | Vector3 | An additional offset to apply on UpdateHeight, UpdateEmoticon and the ShakeSprite Coroutine. This is left to its default value of Vector3.zero |
speedbuffer | float[] | This is only used for DeadLanderB during AnimSpecificQuirks with a value always being { 0.5, 0.34, 0.15, 0.3, 0.6 } |
followlimit | float | The maximum square distance in units of a Follow |
followdistance | float | The minimum square distance in units of a Follow |
followjump | float | The minimum square distance in units of a Follow |
soundidstance | float | The maximum distance in units where the new volume of sound during UpdateSound will be 0 when reached or exceeded from the camdistance. This is left to the default value of 25.0 |
lockback | bool | Determines if the entity shouldn't change its backsprite on FaceTowards unless it is forced. This is functional, but never set to true |
usebuffer | bool | This is never set to true, but it has an unknown usage in DoFollow |
soundfix | bool | This is set to true during a ScrewSwitch update, but it is never read from |