Skip to content

Components

Slashscreen edited this page Jul 4, 2023 · 2 revisions

Built-In components

These are brief overviews. Please refer to the in-godot documentation for more technical details.

Attributes Component

This stores your entity's Attributes, which are equivalent to the S.P.E.C.I.A.L attributes in the Fallout series, or the classic Dungeons and Dragons Strength, Dexterity, Constitution, Intelligence, and Charisma. You can have whatever setup you like.

Covens Component

This stores what Covens (Skelerealms' equivalent of Factions) this NPC is a part of. Refer to the articles on Covens for more information.

Damageable Component

This allows your entity to be damaged. This is intended to allow for other components to hook into this one and process any damage input.

Equipment Component

The Equipment Component keeps track of items that are "Equipped" by an entity, in a number of equipment slots (like helmet, gloves, etc). These slots can be changed in addons/skelerealms/scripts/misc/equipment_slots.gd.

GOAP Component

This manages the behaviors and planning systems for the GOAP AI system. Refer to the GOAP article for more info.

Interactive Component

This marks your entity as interactive.

Item Component

This marks the entity as an Item, and keeps track of what inventory it's in, as well as any relevant functions and attributes.

Navigator Component

This allows the entity to pathfind using the Granular Navigation system.

NPC Component

one of the most important components in the system, this marks the entity as an NPC and has the barebones framework for NPC AI, intended to be extended using the AI Modules and GOAP systems.

Player Component

This means the entity is the Player.

Puppet Spawner Component

This spawns and manages "puppets", which are an entity's manifestation in the game world. See the relevant articles.

Script Component

The script component allows for unique entity instances to have their own ad-hoc scripts without defining an entire new archetype, which is somewhat cumbersome.

Skills Component

This keeps track of an entity's "skills" (like sneak, one-handed, mercantile, etc.), as well as its "level". A level is calculated as the sum of all skills by default, but allows you to apply your own leveling logic.

Spell Target Component

This allows your entity to be the target of a spell, and gives hooks and callbacks for processing in other components.

Teleport Component

This allows the entity to be teleported.

Vitals Component

This keeps track of an entity's health, magic, and stamina stats.

Writing your own

To write your own, all you need to do is inherit from EntitComponent, and set the node's name in an init function. That's it! There are some hooks and variables provided to you, which you can see in the in-godot documentation. From there, you're free to go.