tModLoader v2024.03
A mod to make and play Terraria mods
ModType< TEntity, TModType > Class Template Referenceabstract

The base type for most modded things. More...

Inherits IModType, ILoadable, ModType< TEntity, TModType >, and ModType< TEntity >.

Inherited by TagSerializer< bool, byte >, TagSerializer< Color, int >, TagSerializer< Array, TagCompound >, TagSerializer< Point16, TagCompound >, TagSerializer< Point, TagCompound >, TagSerializer< Rectangle, TagCompound >, TagSerializer< T, TagCompound >, TagSerializer< uint, int >, TagSerializer< ulong, long >, TagSerializer< ushort, short >, TagSerializer< Vector2, TagCompound >, TagSerializer< Vector3, TagCompound >, TagSerializer< Version, string >, DamageClass, ExtraJump, GlobalBackgroundStyle, GlobalBlockType, GlobalBossBar, GlobalBuff, GlobalInfoDisplay, GlobalPylon, GlobalType< TEntity, TGlobal >, ModAccessorySlot, ModBackgroundStyle, ModBossBarStyle, ModCommand, ModMapLayer, ModMenu, ModPrefix, ModRarity, ModResourceDisplaySet, ModResourceOverlay, ModSceneEffect, ModSystem, ModTexturedType, ModType< TEntity, TModType >, PlayerDrawLayer, and TagSerializer< T, S >.

Public Member Functions

virtual TModType Clone (TEntity newEntity)
 Create a copy of this instanced global. Called when an entity is cloned. More...
 
virtual bool IsLoadingEnabled (Mod mod)
 Allows you to stop Mod.AddContent from actually adding this content. Useful for items that can be disabled by a config. More...
 
virtual void Load ()
 Allows you to perform one-time loading tasks. Beware that mod content has not finished loading here, things like ModContent lookup tables or ID Sets are not fully populated. More...
 
virtual TModType NewInstance (TEntity entity)
 Create a new instance of this ModType for a specific entity More...
 
string PrettyPrintName ()
 
virtual void SetStaticDefaults ()
 Allows you to modify the properties after initial loading has completed. More...
 
virtual void SetupContent ()
 If you make a new ModType, seal this override, and call SetStaticDefaults in it. More...
 
virtual void Unload ()
 Allows you to safely unload things you added in Load. More...
 
virtual bool IsLoadingEnabled (Mod mod)
 Whether or not this type should be loaded when it's told to. Returning false disables Mod.AddContent from actually loading this type. More...
 
abstract void Load (Mod mod)
 Called when loading the type. More...
 
abstract void Unload ()
 Called during unloading when needed. More...
 
- Public Member Functions inherited from ModType< TEntity, TModType >
virtual TModType Clone (TEntity newEntity)
 Create a copy of this instanced global. Called when an entity is cloned. More...
 
virtual bool IsLoadingEnabled (Mod mod)
 Allows you to stop Mod.AddContent from actually adding this content. Useful for items that can be disabled by a config. More...
 
virtual void Load ()
 Allows you to perform one-time loading tasks. Beware that mod content has not finished loading here, things like ModContent lookup tables or ID Sets are not fully populated. More...
 
virtual TModType NewInstance (TEntity entity)
 Create a new instance of this ModType for a specific entity More...
 
string PrettyPrintName ()
 
virtual void SetStaticDefaults ()
 Allows you to modify the properties after initial loading has completed. More...
 
virtual void SetupContent ()
 If you make a new ModType, seal this override, and call SetStaticDefaults in it. More...
 
virtual void Unload ()
 Allows you to safely unload things you added in Load. More...
 
- Public Member Functions inherited from ModType< TEntity >
virtual TModType Clone (TEntity newEntity)
 Create a copy of this instanced global. Called when an entity is cloned. More...
 
virtual bool IsLoadingEnabled (Mod mod)
 Allows you to stop Mod.AddContent from actually adding this content. Useful for items that can be disabled by a config. More...
 
virtual void Load ()
 Allows you to perform one-time loading tasks. Beware that mod content has not finished loading here, things like ModContent lookup tables or ID Sets are not fully populated. More...
 
virtual TModType NewInstance (TEntity entity)
 Create a new instance of this ModType for a specific entity More...
 
string PrettyPrintName ()
 
virtual void SetStaticDefaults ()
 Allows you to modify the properties after initial loading has completed. More...
 
virtual void SetupContent ()
 If you make a new ModType, seal this override, and call SetStaticDefaults in it. More...
 
virtual void Unload ()
 Allows you to safely unload things you added in Load. More...
 

Protected Member Functions

abstract TEntity CreateTemplateEntity ()
 
virtual void InitTemplateInstance ()
 Create dummy objects for instanced mod-types More...
 
override void InitTemplateInstance ()
 Create dummy objects for instanced mod-types More...
 
abstract void Register ()
 If you make a new ModType, seal this override. More...
 
virtual void ValidateType ()
 Check for the correct overrides of different hook methods and fields and properties More...
 
- Protected Member Functions inherited from ModType< TEntity, TModType >
abstract TEntity CreateTemplateEntity ()
 
virtual void InitTemplateInstance ()
 Create dummy objects for instanced mod-types More...
 
override void InitTemplateInstance ()
 Create dummy objects for instanced mod-types More...
 
abstract void Register ()
 If you make a new ModType, seal this override. More...
 
virtual void ValidateType ()
 Check for the correct overrides of different hook methods and fields and properties More...
 
- Protected Member Functions inherited from ModType< TEntity >
abstract TEntity CreateTemplateEntity ()
 
virtual void InitTemplateInstance ()
 Create dummy objects for instanced mod-types More...
 
override void InitTemplateInstance ()
 Create dummy objects for instanced mod-types
 
abstract void Register ()
 If you make a new ModType, seal this override. More...
 
virtual void ValidateType ()
 Check for the correct overrides of different hook methods and fields and properties More...
 

Properties

virtual bool CloneNewInstances [get]
 Whether to create new instances of this mod type via Clone(TEntity) or via the default constructor Defaults to false (default constructor).
 
TEntity Entity [get, set]
 
string FullName [get]
 The internal name of this, including the mod it is from. More...
 
virtual bool IsCloneable [get]
 Whether or not this type is cloneable. Cloning is supported if
all reference typed fields in each sub-class which doesn't override Clone are marked with [CloneByReference]
 
Mod Mod [get, set]
 The mod this belongs to. More...
 
virtual string Name [get]
 The internal name of this. More...
 
- Properties inherited from IModType
string FullName [get]
 => $"{Mod.Name}/{Name}" More...
 
Mod Mod [get]
 The mod this belongs to. More...
 
string Name [get]
 The internal name of this instance. More...
 
- Properties inherited from ModType< TEntity, TModType >
virtual bool CloneNewInstances [get]
 Whether to create new instances of this mod type via Clone(TEntity) or via the default constructor Defaults to false (default constructor).
 
TEntity Entity [get, set]
 
string FullName [get]
 The internal name of this, including the mod it is from. More...
 
virtual bool IsCloneable [get]
 Whether or not this type is cloneable. Cloning is supported if
all reference typed fields in each sub-class which doesn't override Clone are marked with [CloneByReference]
 
Mod Mod [get, set]
 The mod this belongs to. More...
 
virtual string Name [get]
 The internal name of this. More...
 
- Properties inherited from ModType< TEntity >
virtual bool CloneNewInstances [get]
 Whether to create new instances of this mod type via Clone(TEntity) or via the default constructor Defaults to false (default constructor).
 
TEntity Entity [get, set]
 
string FullName [get]
 The internal name of this, including the mod it is from. More...
 
virtual bool IsCloneable [get]
 Whether or not this type is cloneable. Cloning is supported if
all reference typed fields in each sub-class which doesn't override Clone are marked with [CloneByReference]
 
Mod Mod [get, set]
 The mod this belongs to. More...
 
virtual string Name [get]
 The internal name of this. More...
 

Detailed Description

The base type for most modded things.

Type Constraints
TModType :ModType 
TModType :TEntity 
TModType :TModType 

Member Function Documentation

◆ Clone()

virtual TModType ModType< TEntity, TModType >.Clone ( TEntity  newEntity)
virtual

Create a copy of this instanced global. Called when an entity is cloned.

Parameters
newEntityThe new clone of the entity
Returns
A clone of this mod type

Reimplemented from ModType< TEntity >.

Reimplemented in ModType< TEntity, TModType >.

◆ CreateTemplateEntity()

abstract TEntity ModType< TEntity, TModType >.CreateTemplateEntity ( )
protectedpure virtual

Implements ModType< TEntity >.

◆ InitTemplateInstance() [1/2]

virtual void ModType< TEntity, TModType >.InitTemplateInstance ( )
protectedvirtual

Create dummy objects for instanced mod-types

Reimplemented from ModType< TEntity >.

Reimplemented in ModType< TEntity, TModType >, and ModType< TEntity, TModType >.

◆ InitTemplateInstance() [2/2]

override void ModType< TEntity, TModType >.InitTemplateInstance ( )
protectedvirtual

Create dummy objects for instanced mod-types

Reimplemented from ModType< TEntity >.

◆ IsLoadingEnabled()

virtual bool ModType< TEntity, TModType >.IsLoadingEnabled ( Mod  mod)
virtual

Allows you to stop Mod.AddContent from actually adding this content. Useful for items that can be disabled by a config.

Parameters
modThe mod adding this content

Implements ILoadable.

Reimplemented in ModType< TEntity, TModType >.

◆ Load()

virtual void ModType< TEntity, TModType >.Load ( )
virtual

Allows you to perform one-time loading tasks. Beware that mod content has not finished loading here, things like ModContent lookup tables or ID Sets are not fully populated.

Use SetStaticDefaults when you need to access content.

Reimplemented from ModType< TEntity >.

Reimplemented in ModType< TEntity, TModType >.

◆ NewInstance()

virtual TModType ModType< TEntity, TModType >.NewInstance ( TEntity  entity)
virtual

Create a new instance of this ModType for a specific entity

Parameters
entityThe entity instance the mod type is being instantiated for
Returns

Reimplemented from ModType< TEntity >.

Reimplemented in ModType< TEntity, TModType >, and GlobalType< TEntity, TGlobal >.

◆ Register()

◆ SetStaticDefaults()

virtual void ModType< TEntity, TModType >.SetStaticDefaults ( )
virtual

◆ SetupContent()

◆ Unload()

virtual void ModType< TEntity, TModType >.Unload ( )
virtual

Allows you to safely unload things you added in Load.

Implements ILoadable.

Reimplemented in UnloadedSystem, and ModType< TEntity, TModType >.

◆ ValidateType()

virtual void ModType< TEntity, TModType >.ValidateType ( )
protectedvirtual

Check for the correct overrides of different hook methods and fields and properties

Reimplemented from ModType< TEntity >.

Reimplemented in GlobalType< TEntity, TGlobal >, InfoDisplay, ModItem, ModPlayer, ModSystem, and ModType< TEntity, TModType >.

Property Documentation

◆ FullName

string ModType< TEntity, TModType >.FullName
get

The internal name of this, including the mod it is from.

Implements IModType.

◆ Mod

Mod ModType< TEntity, TModType >.Mod
getset

The mod this belongs to.

Implements IModType.

◆ Name

virtual string ModType< TEntity, TModType >.Name
get

The internal name of this.

Implements IModType.