tModLoader v2024.09
A mod to make and play Terraria mods
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 CABasicParticle
 CAbstractNPCShop
 CAccessorySlotLoaderThis serves as a central place to store equipment slots and their corresponding textures. You will use this to obtain the IDs for your equipment textures.
 CAchievement
 CAchievementAdvisor
 CAchievementAdvisorCard
 CAchievementCondition
 CAchievementHelperID
 CAchievementInitializer
 CAchievementManager
 CAchievementsHelper
 CAchievementsSocialModule
 CAchievementTagHandler
 CAchievementTracker
 CActionGrass
 CActionPlaceStatue
 CActions
 CActionStalagtite
 CActionVines
 CActiveEntityIterator
 CActiveSound
 CActuatorsVisibilityBuilderToggle
 CAddableFloat
 CAdvancedPopupRequest
 CAEntitySource_TileAbstract base class for entities which come from a tile.

 CAggregateException
 CAHoverInteractionChecker
 CAlignment
 CAllDeathCommand
 CAllPersonalitiesModifier
 CAllPVPDeathCommand
 CAlwaysAtleastOneSuccessDropRuleRe-runs all drop rules if none succeeded.
 CAmbienceServer
 CAmbientSky
 CAmbientSkyDrawCache
 CAmbientWindSystem
 CAmmoIDAmmoID entries represent ammo types. Ammo items that share the same AmmoID value assigned to Item.ammo can all be used as ammo for weapons using that same value for Item.useAmmo. AmmoID values are actually equivalent to the ItemID value of the iconic ammo item.
The Basic Ammo Guideteaches more about ammo.
 CAnchorData
 CAnchorDataModule
 CAnchoredEntitiesCollection
 CAnchorTypesModule
 CAnimation
 CAnimationID
 CAnOutlinedDrawRenderTargetContent
 CAnthillEntrance
 CARenderTargetContentByRequest
 CArgumentHelper
 CArgumentListResult
 CArmorIDs
 CArmorShaderData
 CArmorShaderDataSet
 CAShoppingBiome
 CASoundEffectBasedAudioTrack
 CAssemblyResourcesContentSource
 CAssetInitializer
 CAssetSourceController
 CAsyncProvider
 CAsyncProviderStateExtensions
 CAttribute
 CAutoActuateBuilderToggle
 CAutoloadAttributeAllows for types to be autoloaded and unloaded. True to always autoload, false to never autoload, null to use mod default.
 CAutoloadBossHead
 CAutoloadEquipThis attribute annotates a ModItem class to indicate that the game should autoload the specified equipment texture or textures and assign it to this item. The equipment texture is the texture that appears on the player itself when the item is worn and visible. Armor and most accessories will set at least one EquipType, but not every accessory needs on-player visuals. The equipment texture will be loaded from the path made from appending "_EquipTypeNameHere" to ModItem.Texture. An error will be thrown during mod loading if the texture can't be found. For example, a helmet item named "ExampleHelmet" annotated with [AutoloadEquip(EquipType.Head)] will need both a "ExampleHelmet.png" and "ExampleHelmet_Head.png" to work. Note that equipment textures must follow specific layouts, see ExampleMod examplesof similar items to use as a guide.
 CAutoloadHead
 CAutoPaintBuilderToggle
 CAWorkshopEntry
 CAWorkshopProgressReporter
 CAWorkshopPublishInfoState
 CAWorkshopTagsCollection
 CAWorldListItem
 CBackgroundChangeFlashInfo
 CBackgroundColorAttributeSpecifies a background color to be used for the property, field, or class in the ModConfig UI.
 CBackgroundTextureLoaderThis is the class that keeps track of all modded background textures and their slots/IDs. Remember that unless you manually register backgrounds via AddBackgroundTexture(Mod, string), only files found in a folder or subfolder of a folder named "Backgrounds" will be autoloaded as background textures.
 CBallCollision
 CBallCollisionEvent
 CBallPassThroughEvent
 CBallStepResult
 CBasiliskMountJump
 CBestiaryDatabase
 CBestiaryDatabaseNPCsPopulator
 CBestiaryEntry
 CBestiaryPortraitBackgroundBasedOnWorldEvilProviderPreferenceInfoElement
 CBestiaryPortraitBackgroundProviderPreferenceInfoElement
 CBestiaryUICollectionInfo
 CBestiaryUnlockProgressReport
 CBestiaryUnlocksTracker
 CBigEndianReader
 CBigEndianWriter
 CBigProgressBarCache
 CBigProgressBarHelper
 CBigProgressBarInfo
 CBigProgressBarSystem
 CBinaryIO
 CBinaryWriterHelper
 CBiomeConversionID
 CBiomeLoader
 CBiomePreferenceListTrait
 CBirthdayParty
 CBitReader
 CBits64
 CBitsByte
 CBitWriter
 CBlizzardInABottleJump
 CBlizzardShader
 CBlizzardShaderData
 CBlizzardSky
 CBlockBecauseYouAreOverAnImportantTile
 CBlockSwapBuilderToggle
 CBloodMoonScreenShaderData
 CBlueWireVisibilityBuilderToggle
 CBoolTagSerializer
 CBossBarDrawParamsHolds data required for boss bar drawing.
 CBossBarLoader
 CBossBestiaryInfoElement
 CBrainOfCthuluBigProgressBar
 CBrainShader
 CBuffDefinition
 CBuffDrawParamsHolds data required for buff drawing.
 CBufferPool
 CBuffID
 CBuffLoaderThis serves as the central class from which buff-related functions are supported and carried out.
 CBuilderToggleRepresents a builder toggle button shown in the top left corner of the screen while the inventory is shown. These toggles typically control wiring-related visibility or other building-related quality of life features.The Active method determines if the BuilderToggle should be shown to the user and is usually reliant on player-specific values. The CurrentState property represents the current state of the toggle. For vanilla toggles a value of 0 is off and a value of 1 is on, but modded toggles can have NumberOfStates values.
 CBuilderToggleDrawParamsHolds data required for builder toggle drawing.
 CBuilderToggleLoader
 CBuildInfo
 CBuyItemCreationContextCreated in the context of a player buying an item from a shop. Very similar to

See also
RecipeItemCreationContext

in functionality.

 CCachedBuffer
 CCalculatedStyle
 CCamera
 CCameraInfo
 CCameraModifierStack
 CCampsiteBiome
 CCaptureBiome
 CCaptureInterface
 CCaptureManager
 CCaptureSettings
 CCaveHouseBiome
 CCavernShader
 CChainID
 CChains
 CChambersEntrance
 CChatCommandAttribute
 CChatCommandId
 CChatCommandProcessor
 CChatHelperFacilitates sending chat messages from the server to clients. BroadcastChatMessage(NetworkText, Color, int) and SendChatMessageToClient(NetworkText, Color, int) are the most commonly used methods provided.
 CChatInitializer
 CChatLine
 CChatManager
 CChatMessage
 CChatMessageContainer
 CChestRepresents a non-Player inventory, such as chests, portable storage, or NPC shops.
 CChestUI
 CChildSafety
 CChromaCondition
 CChromaHotkeyPainter
 CChromaInitializer
 CChromaShader
 CChumBucketProjectileHelper
 CCinematicManager
 CClassicPlayerResourcesDisplaySet
 CCloneByReferenceIndicates that references to this object can be shared between clones. When applied to a class, applies to all fields/properties of that type.
 CCloning
 CCloud
 CCloudID
 CCloudInABottleJump
 CCloudSocialModule
 CCoinLossRevengeSystem
 CCoinsRule
 CCollision
 CColorHSLSliderAttributeAdd this attribute to a Color item and the UI will present a Hue, Saturation, and Lightness sliders rather than Red, Green, and Blue sliders. Pass in false to skip Saturation and Lightness.
 CColorNoAlphaAttributeAdd this attribute to a Color item and Alpha will not be presented in the UI and will remain as 255 unless manually edited.
 CColors
 CColorSerializer
 CColorSlidersSet
 CColorTagHandler
 CCombatTextRepresents floating text in the game world most typically used for damage numbers and healing numbers.
For non-overlapping in-game text, such as reforge messages, use PopupText instead. Use the NewText(Rectangle, Color, int, bool, bool) or NewText(Rectangle, Color, string, bool, bool) methods to create a new instance.
In multiplayer, ID.MessageID.CombatTextInt and ID.MessageID.CombatTextString network messages can be used to sync a combat text if manually spawned.
 CCombinedHooks
 CCommandCaller
 CCommandLoaderThis serves as the central class from which ModCommand functions are supported and carried out.
 CCommonBossBigProgressBar
 CCommonCode
 CCommonConditions
 CCommonDrop
 CCommonDropNotScalingWithLuck
 CCommonDropWithRerolls
 CCommonEnemyUICollectionInfoProvider
 CCommonResourceBarMethods
 CComparer
 CCompassInfoDisplay
 CConditionFloatTracker
 CConditionIntTracker
 CConditions
 CConditionsCompletedTracker
 CConfigArgsAttribute
 CConfigElement
 CConfigKeyAttribute
 CConfigManager
 CContainerTransferContext
 CContentInstance
 CContentManager
 CContentRejectionFromSize
 CContentSamplesThis class stores instances of various content types in a number of dictionaries. These instances serve as references that can be queried for information. For example, a modder could check ItemsByType[ItemID.Gel].value to check the value of the Gel item rather than creating a new Item instance and then checking. Care must be taken by modders to not use these instances for anything other than as a reference. Modders should not edit the instances in any way.
ContentSamples should only be accessed in code that runs during Mod.PostSetupContent or later, as the entries are not filled in until then.
 CContentSource
 CCoreSocialModule
 CCorruptionBiome
 CCorruptionPitBiome
 CCorruptSurfaceShader
 CCrashDump
 CCrashWatcher
 CCreativeItemSacrificesCatalog
 CCreativePowerManager
 CCreativePowers
 CCreativePowerSettings
 CCreativePowersHelper
 CCreativePowerUIElementRequestInfo
 CCreativeSacrificeParticle
 CCreativeUI
 CCreativeUnlocksTracker
 CCreditsRollComposer
 CCreditsRollEvent
 CCreditsRollSky
 CCrimsonBiome
 CCritterUICollectionInfoProvider
 CCueAudioTrack
 CCultistRitual
 CCultistShader
 CCursorOverrideID
 CCustomCurrencyID
 CCustomCurrencyManager
 CCustomCurrencySingleCoin
 CCustomCurrencySystem
 CCustomEntryIcon
 CCustomFlagCondition
 CCustomFloatCondition
 CCustomIntCondition
 CCustomModConfigItemAttributeUse this attribute to specify a custom UI element to be used for the annotated property, field, or class in the ModConfig UI.
 CCustomModDataException
 CCustomSky
 CDamageClassDamageClass is used to determine the application of item effects, damage/stat scaling, and class bonuses.
 CDamageClassData
 CDamageClassLoader
 CDashIDCorresponds to values assigned to Player.dashType.
 CDD2Event
 CDD2Film
 CDD2Shader
 CDeadMansChestBiome
 CDeathCommand
 CDeathShader
 CDeerclopsBigProgressBar
 CDefaultContractResolver
 CDefaultDamageClass
 CDefaultDictionaryKeyValueAttributeDefines the default key value to be added when using the ModConfig UI to add elements to a Dictionary. Works the same as System.ComponentModel.DefaultValueAttribute, but can't inherit from it because it would break when deserializing any data structure annotated with it. This attribute compliments DefaultListValueAttribute when used annotating a Dictionary.
 CDefaultListValueAttributeDefines the default value to be added when using the ModConfig UI to add elements to a Collection (List, Set, or Dictionary value). Works the same as System.ComponentModel.DefaultValueAttribute, but can't inherit from it because it would break when deserializing any data structure annotated with it.
 CDelegateMethods
 CDepthMeterInfoDisplay
 CDesertBiome
 CDesertDescription
 CDesertHive
 CDesertHouseBuilder
 CDesertShader
 CDeviceParam
 CDisabledAudioSystem
 CDisplayDollSlot
 CDontStarveDarknessDamageDealer
 CDontStarveSeed
 CDoorOpeningHelper
 CDoubleStack
 CDPSMeterInfoDisplay
 CDrawableTooltipLineThis class serves as a way to store information about a line that will be drawn of tooltip for an item. You will create and manipulate objects of this class if you use the draw hooks for tooltips in ModItem and GlobalItem. For examples, see ExampleSword
 CDrawAnimation
 CDrawAnimationVertical
 CDrawData
 CDrawTicksAttributeAdd this attribute and the sliders will show white tick marks at each increment.
 CDrillDebugDraw
 CDrippingShader
 CDroneCameraTracker
 CDropAttemptInfo
 CDropBasedOnExpertMode
 CDropBasedOnMasterAndExpertMode
 CDropBasedOnMasterMode
 CDropLocalPerClientAndResetsNPCMoneyTo0
 CDropNothing
 CDropOneByOne
 CDropPerPlayerOnThePlayer
 CDropRateInfo
 CDropRateInfoChainFeed
 CDrowningShader
 CDSTFilm
 CDukeFishronShader
 CDummyInfoDisplay
 CDunesBiome
 CDungeonBiome
 CDungeonShader
 CDustDust are particles effects used to add visual elements to weapons and other effects. Dust are completely visual and should never be used as a gameplay element. Dust count limits are imposed by the game to keep performance consistent, so Dust are not guaranteed to spawn when code attempts to spawn them.Vanilla Dust are enumerated in the DustID class.New Dust can be implemented using the ModDust class.The Basic Dust Guideteaches the basics on using Dust. In addition, the guide has resources teaching how to discover and use vanilla Dust.
 CDustID
 CDustLoader
 CDyeInitializer
 CEaterOfWorldsProgressBar
 CEffectManager
 CEmojiCommand
 CEmoteBubble
 CEmoteBubbleLoader
 CEmoteButton
 CEmoteCommand
 CEmoteID
 CEmotesGroupListItem
 CEmpressBladeDrawer
 CEmpressShader
 CEmptyDiagnosticsUI
 CEnabledFilterModesExtensions
 CEnchantedSwordBiome
 CEntity
 CEntityDefinitionClasses implementing EntityDefinition serve to function as a way to save and load the identities of various Terraria objects. Only the identity is preserved, no other data such as stack size, damage, etc. These classes are well suited for ModConfig, but can be saved and loaded in a TagCompound as well.
 CEntityGlobalsEnumerator
 CEntityShadowInfo
 CEntitySource_BossSpawnUsed for most vanilla bosses, conveys their initial target, which is normally the closest player.
 CEntitySource_BuffIntended for mods to use when spawning projectiles periodically from buffs.

 CEntitySource_CatchEntity
 CEntitySource_CaughtUsed when NPCs or other entities are caught by things like bug nets. Normally converting the caught entity into an item.
 CEntitySource_DeathUsed when dropping coins and items when a player dies.
Recommended for use by mods when spawning gore.
 CEntitySource_DebugCommand
 CEntitySource_DropAsItemUsed when projectiles convert themselves to items in the world as a result of hitting a block.
 CEntitySource_Film
 CEntitySource_FishedOutUsed when an NPC spawns as a result of fishing.
 CEntitySource_GiftUsed when NPCs or pets/minions give gifts or rewards to a player.
 CEntitySource_HitEffect
 CEntitySource_ItemOpenUsed when opening bags or gifts. Passed to Player.QuickSpawnItem(IEntitySource, Item, int)
 CEntitySource_ItemUseUse the interface, IEntitySource_WithStatsFromItem instead when checking entity sources in OnSpawn

 CEntitySource_ItemUse_OnHurtCombination of IEntitySource_OnHurt and IEntitySource_WithStatsFromItem

 CEntitySource_ItemUse_WithAmmo
 CEntitySource_LootUsed when an NPC or Projectile is killed and drops loot.
Vanilla projectile examples are geodes and life crystal boulders
 CEntitySource_MiscTo be used in cases where no entity is present. See ItemSourceID and ProjectileSourceID for vanilla valuesNOTE: Unlike most other entity sources, this one requires Context to be specified.
 CEntitySource_MountUsed for a effects from a mounted player
 CEntitySource_OldOnesArmy
 CEntitySource_OnHitUse the interface, IEntitySource_OnHit instead when checking entity sources in OnSpawn

 CEntitySource_OnHurtUse the interface, IEntitySource_OnHurt instead when checking entity sources in OnSpawn

 CEntitySource_OverfullChestUsed when attempting to add an item to a chest, but the chest is full so it spills into the world.
Only vanilla use is the gas trap.
 CEntitySource_OverfullInventoryUsed when attempting to add an item to the player's inventory, but it cannot fit so it spawns in the world instead.
Used in vanilla when a fished item can't fit in the player's inventory.
 CEntitySource_ParentUse when the parent can be considered the 'owner' or 'responsible for' the effect.
This is the most important entity source. If in doubt, use it.
 CEntitySource_RevengeSystemUsed when an NPC is respawned from the CoinLossRevengeSystem
 CEntitySource_ShakeTreeUsed when items/bomb projectiles/NPCs fall out of trees being cut down
 CEntitySource_SpawnNPCUsed when an NPC is spawned from NPC.SpawnNPC as part of natural biome/event based spawning.

Note that some bosses incorrectly use this source to spawn minions, and remix world pots use it to spawn slimes. (to be fixed in 1.4.5)
 CEntitySource_SyncUsed when an Item is spawned on the server as a result of MessageID.SyncItemCannotBeTakenByEnemies
Only used by vanilla for lucky coin. Note that the item is spawned client-side with IEntitySource.Context = ItemSourceID.LuckyCoin
 CEntitySource_TileBreakUsed when a tile or wall is broken
 CEntitySource_TileEntityUsed by vanilla for training dummies
 CEntitySource_TileInteractionUsed when an entity interacts with a tile.
Used by vanilla when players activate mechanisms like cannons and fireworks
 CEntitySource_TileUpdateIntended for mods to use when a tile spawns an entity due to periodic/random updating, rather than in response to a specific trigger.
 CEntitySource_TorchGod
 CEntitySource_WiringUsed when wiring activates an effect like a cannon or fireworks
 CEntitySource_WorldEventInconsistently used by vanilla when spawning more exotic things like the lunatic pillars, cultist ritual, fairies etc.
Don't expect this to distinguish between NPCs spawned due to an event/invasion. Most of those use EntitySource_SpawnNPC
 CEntitySource_WorldGenUsed when spawning Town NPCs during world generation
 CEntryFilterer
 CEntryIconDrawSettings
 CEntrySorter
 CEnumerationExtensions
 CEquipLoaderThis serves as a central place to store equipment slots and their corresponding textures. You will use this to obtain the IDs for your equipment textures.
 CEquipmentLoadout
 CEquipTextureThis serves as a place for you to program behaviors of equipment textures. This is useful for equipment slots that do not have any item associated with them (for example, the Werewolf buff). Note that this class is purely for visual effects.
 CException
 CExpandAttributeAffects whether this data will be expanded by default. The default value currently is true. Use the constructor with 2 parameters to control if list elements should be collapsed or expanded.
 CExtendsFromModAttributeExcludes a class from JIT and also from autoloading. Annotate classes that inherit from classes from weakly referenced modswith this attribute to prevent the game from attempting to autoload the class, which would cause load errors otherwise. See this wiki pagefor more information.
 CExtensionFilter
 CExtraBestiaryInfoPageInformation
 CExtraJumpExtraJump is a singleton, defining the properties and behaviour of midair extra jumps.
Fields defining the state of a jump per player are stored in ExtraJumpState
 CExtraJumpLoader
 CExtraJumpStateA structure containing fields used to manage extra jumps

 CExtraSeatInfo
 CExtrasID
 CEyeballShader
 CEyeOfCthulhuShader
 CFadingParticle
 CFancyClassicPlayerResourcesDisplaySet
 CFancyErrorPrinter
 CFancyGolfPredictionLine
 CFartInAJarJump
 CFastConditionSetter
 CFastRandom
 CFavoritesFile
 CFewFromOptionsDropRuleRuns multiple rules if successes.
 CFewFromOptionsNotScaledWithLuckDropRuleRuns multiple rules if successes. Does not use player luck.
 CFewFromRulesRuleRuns multiple drop rules if successes.
 CFileBrowser
 CFileData
 CFileMetadata
 CFileUtilities
 CFilm
 CFilter
 CFilteredArrayEnumerator
 CFilteredSpanEnumerator
 CFilterManager
 CFilterProviderInfoElement
 CFilters
 CFinalFractalHelper
 CFishFinderInfoDisplay
 CFishingAttempt
 CFixedUIScrollbar
 CFixExploitManEaters
 CFlameLashDrawer
 CFlameParticle
 CFlavorTextBestiaryInfoElement
 CFlexibleTileWand
 CFlipperJump
 CFloatElement
 CFloatRange
 CFlowerPacketInfoDetermines the styles of ID.TileID.Plants that an Item creates on certain types of grass.
 CFolderCreationFailedException
 CFontAssets
 CForestBiome
 CFoundWorkshopEntryInfo
 CFrameEventData
 CFrameSkipTest
 CFrameworkVersion
 CFraming
 CFriendsSocialModule
 CFromOptionsWithoutRepeatsDropRule
 CFrostLegionShader
 CFxcReader
 CGame
 CGameAnimationSegment
 CGameConfiguration
 CGameCulture
 CGameEffect
 CGameEventClearedID
 CGameInterfaceLayer
 CGameModeData
 CGameModeID
 CGamepadMainMenuHandler
 CGamepadPageID
 CGamepadPointID
 CGameShaders
 CGameTipDataWrapper class for a LocalizedText and visibility field that has intended use with modification of Game Tips.
 CGameTipIDThis class contains a more human-readable name for every single Game Tip created by Vanilla.
 CGameTipsDisplay
 CGasParticle
 CGemCaveShader
 CGenAction
 CGenBase
 CGenCondition
 CGeneralIssueReporter
 CGenerationProgress
 CGenericDamageClass
 CGenModShape
 CGenPass
 CGenSearch
 CGenShape
 CGenShapeActionPair
 CGenStructure
 CGenVars
 CGetItemSettingsContains settings for the popup text shown when using Player.GetItem(int, Terraria.Item, Terraria.GetItemSettings). The contained static fields can be used to match vanilla behavior for various actions. LongText:
NoText: If true, no PopupText will spawn.
CanGoIntoVoidVault: If true, the item can be placed into the Void Vault.
 CGetLoadableTypesException
 CGlobalBackgroundStyleThis class serves to collect functions that operate on any kind of background style, without being specific to one single background style.
 CGlobalBlockTypeThis is the superclass for GlobalTile and GlobalWall, combining common code
 CGlobalBossBarA class that is used to modify existing boss health bars. To add them, use ModBossBar instead.
 CGlobalBuffThis class allows you to modify the behavior of any buff in the game.
 CGlobalEmoteBubble
 CGlobalHookList
 CGlobalInfoDisplayA class that is used to modify existing info displays (i.e. the things that the Cell Phone uses to communicate information). All vanilla displays can be accessed using InfoDisplay.(name of item).
 CGlobalItemThis class allows you to modify and use hooks for all items, both vanilla and modded.
To use it, simply create a new class deriving from this one. Implementations will be registered automatically.
 CGlobalList
 CGlobalLoaderUtils
 CGlobalLootThis readonly struct is a simple shortcut for modifying global drop rules in an ItemDropDatabase.
 CGlobalNPCThis class allows you to modify and use hooks for all NPCs, both vanilla and modded.
To use it, simply create a new class deriving from this one. Implementations will be registered automatically.
 CGlobalProjectileThis class allows you to modify and use hooks for all projectiles, both vanilla and modded.
To use it, simply create a new class deriving from this one. Implementations will be registered automatically.
 CGlobalPylonGlobal Type that exists for pylons that allows for modification of teleportation steps, map drawing, and other functionality for any pylon that exists, whether it be vanilla or modded.
 CGlobalRecipe
 CGlobalTileThis class allows you to modify the behavior of any tile in the game, both vanilla and modded.
To use it, simply create a new class deriving from this one. Implementations will be registered automatically.
 CGlobalType
 CGlobalTypeLookups
 CGlobalWallThis class allows you to modify the behavior of any wall in the game (although admittedly walls don't have much behavior).
To use it, simply create a new class deriving from this one. Implementations will be registered automatically.
 CGlowMaskID
 CGlyphTagHandler
 CGoatMountJump
 CGoblinArmyShader
 CGoldCritterUICollectionInfoProvider
 CGolemHeadProgressBar
 CGolemShader
 CGolfBallTrackRecord
 CGolfHelper
 CGolfState
 CGore
 CGoreID
 CGoreLoader
 CGraniteBiome
 CGraniteHouseBuilder
 CGreenWireVisibilityBuilderToggle
 CGroupOptionButton
 CHairID
 CHairLoader
 CHairShaderData
 CHairShaderDataSet
 CHairstyleUnlocksHelper
 CHallowBiome
 CHallowSurfaceShader
 CHatRackSlot
 CHeaderAttributeThis attribute adds a label above this property or field in the ModConfig UI that acts as a header. Use this to delineate sections within your config.
Note that fields will be in order, and properties will be in order, but fields and properties will not be interleaved together in the source code order.

Header accept either a translation key or an identifier.
To use a translation key, the value passed in must start with "$".
A value passed in that does not start with "$" is interpreted as an identifier. The identifier is used to construct the localization key "Mods.{ModName}.Configs.{ConfigName}.Headers.{Identifier}"
No spaces are allowed in translation keys, so avoid spaces
Annotations on members of non-ModConfig classes need to supply a localization key using this attribute to be localized, no localization key can be correctly assumed using just an identifier.
 CHelpCommand
 CHelperInfo
 CHerbBagDropsItemDropRuleUsed just by Herb Bag. Horribly hardcoded. Do not use if you can.
 CHideAllWiresBuilderToggle
 CHighestOfMultipleUICollectionInfoProvider
 CHitTile
 CHiveBiome
 CHoneyPatchBiome
 CHookList
 CHorizontalBarsPlayerResourcesDisplaySet
 CHouseBuilder
 CHouseBuilderContext
 CHouseUtils
 CHousingCategoryID
 CIAchievementTracker
 CIAnimationSegment
 CIAnimationSegmentAction
 CIAssetReader
 CIAudioSystem
 CIAudioTrack
 CIBallContactListener
 CIBestiaryBackgroundImagePathAndColorProvider
 CIBestiaryBackgroundOverlayAndColorProvider
 CIBestiaryEntryDisplayIndex
 CIBestiaryEntryFilter
 CIBestiaryInfoElement
 CIBestiaryPrioritizedElement
 CIBestiarySortStep
 CIBestiaryUICollectionInfoProvider
 CIBigProgressBar
 CICameraModifier
 CIceHouseBuilder
 CIceShader
 CIChatCommand
 CIChatMonitor
 CIChatProcessor
 CICloneable
 CIColorable
 CIComparable
 CIComparer
 CIConfigKeyHolder
 CIContentValidator
 CICreativeItemSortStep
 CICreativePower
 CIDownloadProgress
 CIEntitySourceThis object encapsulates context information about the source of a particular spawning event of an Item/Projectile/NPC/etc. Aids in facilitating many modding situations and used in various OnSpawn hooks.
The IEntitySource Guideteaches how and why to use this.
 CIEntitySource_OnHitUsed along with EntitySource_Parent. The Attacker is also the EntitySource_Parent.Entity (owner of the effect)
 CIEntitySource_OnHurtUsed along with EntitySource_Parent. The Victim is also the EntitySource_Parent.Entity (owner of the effect)
 CIEntitySource_WithStatsFromItemUsed along with EntitySource_Parent to indicate that stats from the item should be transferred to spawned entities.
When used to spawn projectiles, a snapshot of the Player and Item stats will be stored on the projectile. See Projectile.ApplyStatsFromSource for implementation
 CIEntityWithGlobals
 CIEntityWithInstances
 CIEntryFilter
 CIEntryIcon
 CIEntrySortStep
 CIEnumerable
 CIEquatable
 CIFileBrowser
 CIFilterInfoProvider
 CIGroupOptionButton
 CIHaveBackButtonCommand
 CIIndexed
 CIInGameNotification
 CIItemBestiaryInfoElement
 CIItemDropRule
 CIItemDropRuleChainAttempt
 CIItemDropRuleCondition
 CIItemEntryFilter
 CILightingEngine
 CILoadableAllows for implementing types to be loaded and unloaded.
 CILoader
 CILocalizedModType
 CILocalizedModTypeExtensions
 CILoot
 CILPatchFailureException
 CImageIO
 CIManuallyOrderedUIElement
 CIMapLayer
 CImmunityCooldownIDEnumerates the different immunity cooldown options for damage affecting a player. Most damage uses General and applies immunity via Player.immune. Other damage immunity cooldowns are tracked in Player.hurtCooldowns indexed by these values.Correct usage of ImmunityCooldownID in ModLoader.ModProjectile.CooldownSlot, ModLoader.ModNPC.CanHitPlayer(Terraria.Player, ref int), and Player.Hurt(DataStructures.PlayerDeathReason, int, int, bool, bool, int, bool, float, float, float) are essential for correctly applying damage to the player.
 CIModType
 CIMultiplayerClosePlayersOverlay
 CIncrementAttributeUse this to set an increment for sliders. The slider will move by the amount assigned. Remember that this is just a UI suggestion and manual editing of config files can specify other values, so validate your values. Defaults are: float: 0.01f - byte/int/uint: 1
 CINeedRenderTargetContent
 CINestedItemDropRule
 CINetDiagnosticsUI
 CInfoDisplayRepresents an informational display toggle typically provided by informational accessories.The Active property determines if the InfoDisplay could be shown to the user. The game tracks the players desired visibility of active InfoDisplay through the Player.hideInfo array.
 CInfoDisplayLoader
 CIngameFancyUI
 CInGameNotificationsTracker
 CIngameOptions
 CInGamePopups
 CInitializationItemCreationContext
 CIntRange
 CInvasionID
 CIOException
 CIOnPlayerJoining
 CIParticle
 CIPCBase
 CIPCClient
 CIPCContent
 CIPCMessage
 CIPCServer
 CIPersistentPerPlayerContent
 CIPersistentPerWorldContent
 CIPlant
 CIPlayerRenderer
 CIPlayerResourcesDisplaySet
 CIPooledParticle
 CIPowerSubcategoryElement
 CIPreferenceProviderElement
 CIProvideItemConditionDescription
 CIProvideReports
 CIProvideSearchFilterString
 CIProvideSliderElement
 CIPylonTileEntityAllows Tile Entities that you want to be included in vanilla's pylon list to actually be added to the list when said TE is extended by this interface. What this means, in short, is that whenever all of the pylons are refreshed by vanilla, Tile Entities that extend this interface will get their own

See also
TeleportPylonInfo

instance and it will be included along-side all of vanilla's pylons and any other modded pylons.

 CIRejectionReason
 CISearchFilter
 CIShopPersonalityTrait
 CIShoppingBiome
 CISimulationConditionSetter
 CISmartInteractBlockReasonProvider
 CISmartInteractCandidate
 CISmartInteractCandidateProvider
 CISocialModule
 CISocket
 CIssueReport
 CIssueReportsIndicator
 CIStaticPortMapping
 CIStaticPortMappingCollection
 CITagHandler
 CItem
 CItemAlternativeFunctionID
 CItemCraftCondition
 CItemCreationContext
 CItemDefinitionItemDefinition represents an Item identity. A typical use for this class is usage in ModConfig, perhaps to facilitate an Item tweaking mod.
 CItemDropAttemptResult
 CItemDropBestiaryInfoElement
 CItemDropDatabase
 CItemDropResolver
 CItemDropRule
 CItemDropWithConditionRule
 CItemFilters
 CItemFromCatchingNPCBestiaryInfoElement
 CItemHoldStyleIDAssign Item.holdStyle to one of these to give your item an animation while not in use, but being held. The Use Style IDs wiki pagehas examples and animations of each of these hold styles, make sure to scroll down to the "Hold styles" section.
If none of these hold animations match what you want, consider using the ModLoader.ModItem.HoldStyle(Player, Microsoft.Xna.Framework.Rectangle) hook to implement a custom animation.
 CItemID
 CItemIO
 CItemLoaderThis serves as the central class from which item-related functions are carried out. It also stores a list of mod items by ID.
 CItemLootThis readonly struct is a simple shortcut to ItemDropDatabase's methods.
 CItemPickupCondition
 CItemRarity
 CItemRarityIDEnumerates the values used with Item.rare
 CItemShopSellbackHelper
 CItemSlot
 CItemSorting
 CItemsSacrificedUnlocksTracker
 CItemSyncPersistentStats
 CItemTagHandler
 CItemTooltip
 CItemTrader
 CItemTransferParticle
 CItemUseStyleIDAssign Item.useStyle to one of these to give your item an animation while in use. The Use Style IDs wiki pagehas examples and animations of each of these use styles.
If none of these animations match what you want, consider making the animation a behavior of a held projectile or use the ModLoader.ModItem.UseStyle hook to implement a custom animation.
 CItemVariantDescribes a variant of an Item.
 CItemVariantsHandles conditional variants for Items, commonly used for secret seeds.
 CITileData
 CITownNPCProfile
 CITree
 CIUpdateBeforeSorting
 CIUPnPNAT
 CIValueProvider
 CIVertexType
 CJITException
 CJITWhenModsEnabledAttributeExcludes a class, method, or property from the load time JITunless the specified mods are also loaded. Use this on any member which directly references a Type from a weakly referenced modthat might not be present. See this wiki pagefor more information.
 CJourneyDuplicationItemCreationContext
 CJsonDefaultDictionaryKeyValueAttributeSimilar to JsonDefaultListValueAttribute, but for assigning to the Dictionary Key rather than the Value.
 CJsonDefaultListValueAttributeSimilar to DefaultListValueAttribute but for reference types. It uses a json string that will be used populate new instances list elements. Defines the default value, expressed as json, to be added when using the ModConfig UI to add elements to a Collection (List, Set, or Dictionary value).
 CJsonDefaultValueAttributeSimilar to DefaultValueAttribute but for reference types. It uses a json string that will be used populate this element when initialized. Defines the default value, expressed as json, to be used to populate an object with the NullAllowed attribute. Modders should only use this in conjunction with NullAllowed, as simply initializing the field with a default value is preferred.
 CJungleBiome
 CJungleHouseBuilder
 CJunglePass
 CJungleShader
 CKeybindLoader
 CKeyCache
 CKeyConfiguration
 CKingSlimeShader
 CLabelArgsAttributeUse to provide values to be interpolated into the label of the annotated property or field.
string arguments starting with "$" are interpreted as localization keys.
Interpolating values can be useful for reusing common labels to keep localization files clean and organized.
For example, if a mod provides toggles for several features, a common label could be used for each with only the provided value being different.
The string formatting section of the Localization wiki pageexplains this concept further.
Scope simplificationcan be used to shorten localization keys passed in.
 CLabelAttribute
 CLabelKeyAttributeA label is the text shown to the user in the ModConfig UI.
This attribute sets a custom localization key for the label of the annotated property, field, or class.
The provided localization key must start with "$".
Without this attribute, the localization key "Mods.{ModName}.Configs.{ConfigName}.{MemberName}.Label" will be assumed for members of ModConfig classes.
Annotations on members of non-ModConfig classes need to supply a custom localization key using this attribute to be localized, otherwise they will appear as the member name directly.
If the translation value of a property or field that is an object is an empty string, the label of the class will be used instead.
Values can be interpolated into the resulting label text using LabelArgsAttribute.
 CLang
 CLangID
 CLanguageContains methods to access or retrieve localization values. The Localization Guideteaches more about localization.
 CLanguageManager
 CLanternNight
 CLanternSky
 CLarvaHoleEntrance
 CLaunchInitializer
 CLavaIndicatorShader
 CLeadingConditionRuleA drop rule that doesn't drop any items by itself, rather it contains just a IItemDropRuleCondition. Use Chains.OnSuccess(IItemDropRule, IItemDropRule, bool), OnFailedConditions, or OnFailedRoll to attach other item drop rules to this rule. This can be useful for avoiding code repetition while writing logical item drop code. See the Chaining Rules section of the Basic NPC Drops and Loot Guidefor more information and examples.
 CLegacyAudioSystem
 CLegacyChatMonitor
 CLegacyGameInterfaceLayer
 CLegacyHairShaderData
 CLegacyLighting
 CLegacyMultiplayerClosePlayersOverlay
 CLegacyNameAttributeAllows for types to be registered with legacy/alias names for lookup via ModContent.Find<T>(string) and similar methods.
When manually loading content, use ModTypeLookup<T>.RegisterLegacyNames(T, string[]) instead.
 CLegacyNetBufferPool
 CLegacyNetDiagnosticsUI
 CLegacyPlayerRenderer
 CLegacySoundPlayer
 CLevenshteinDistance
 CLifeformAnalyzerInfoDisplay
 CLightDiscDrawer
 CLightingThis class manages lighting in the game world. Lighting is calculated and tracked at tile coordinates within the users game view. The most common use of this class is to use GetColor methods to retrieve the light values at a location for drawing a specific entity. Another common usage is adding light to the game world using the AddLight methods.
 CLightingEngine
 CLightMap
 CLineSegment
 CLinkButtonsInitializer
 CLiquid
 CLiquidBuffer
 CLiquidData
 CLiquidDeathModule
 CLiquidID
 CLiquidPlacementModule
 CLiquidRenderer
 CList
 CListPlayersCommand
 CLittleFlyingCritterParticle
 CLoaderServes as a highest-level base for loaders.
 CLoaderManager
 CLoaderUtils
 CLobby
 CLocalizationLoader
 CLocalizedTextContains the localization value corresponding to a key for the current game language. Automatically updates as language, mods, and resource packs change. The Localization Guideteaches more about localization.
 CLockOnHelper
 CLogging
 CLootSimulationItemCounter
 CLootSimulator
 CLowLifeShader
 CLuckyCoinConditionSetter
 CLucyAxeMessage
 CLunarPillarBigProgessBar
 CMagicDamageClass
 CMagicMissileDrawer
 CMagicSummonHybridDamageClass
 CMahoganyTreeBiome
 CMain
 CMapHeadRenderer
 CMapHelper
 CMapIconOverlay
 CMapLegend
 CMapOverlayDrawContext
 CMapTile
 CMarbleBiome
 CMarbleHouseBuilder
 CMartianMadnessShader
 CMartianSaucerBigProgressBar
 CMartianSky
 CMechBossSpawnersDropRule
 CMeleeDamageClass
 CMeleeNoSpeedDamageClass
 CMemberJitAttribute
 CMenuID
 CMenuLoader
 CMessageBuffer
 CMessageDispatcherBase
 CMessageDispatcherClient
 CMessageDispatcherServer
 CMessageID
 CMetalDetectorInfoDisplay
 CMeteoriteShader
 CMethodSequenceListItem
 CMicroBiome
 CMinecart
 CMinecartDiggerHelper
 CMinimapFrame
 CMinimapFrameManager
 CMinimapFrameTemplate
 CMiningExplosivesBiome
 CMiscShaderData
 CMissingEffectException
 CMissingResourceException
 CModMod is an abstract class that you will override. It serves as a central place from which the mod's contents are stored. It provides methods for you to use or override.
 CModAccessorySlotA ModAccessorySlot instance represents a net new accessory slot instance. You can store fields in the ModAccessorySlot class.
 CModAccessorySlotPlayer
 CModBackgroundStyle
 CModBestiaryInfoElement
 CModBiomeThis class represents a biome added by a mod. It exists to centralize various biome related hooks, handling a lot of biome boilerplate, such as netcode.
To check if a player is in the biome, use Player.InModBiome<T>.
Unlike ModSceneEffect, this defaults Music to 0 and Priority to SceneEffectPriority.BiomeLow.
 CModBiomeBestiaryInfoElement
 CModBlockTypeThis is the superclass for ModTile and ModWall, combining common code
 CModBossBarA class that is used to create custom boss health bars for modded and vanilla NPCs.
 CModBossBarStyleA class that is used to swap out the entire boss bar display system with your own implementation
 CModBrowserSortModesExtensions
 CModBrowserTimePeriodExtensions
 CModBuffThis class serves as a place for you to define a new buff and how that buff behaves.
 CModCactusThis class represents a type of modded cactus. This class encapsulates a function for retrieving the cactus's texture and an array for type of soil it grows on.
 CModCommandThis class represents a chat or console command. Use the CommandType to specify the scope of the command.
 CModConfigModConfig provides a way for mods to be configurable. ModConfigs can either be Client specific or Server specific. When joining a MP server, Client configs are kept but Server configs are synced from the server. Using serialization attributes such as [DefaultValue(5)] or [JsonIgnore] are critical for proper usage of ModConfig. tModLoader also provides its own attributes such as ReloadRequiredAttribute and LabelAttribute.
 CModContentManages content added by mods. Liaisons between mod content and Terraria's arrays and oversees the Loader classes.
 CModDownloadItem
 CModDustThis class represents a type of dust that is added by a mod. Only one instance of this class will ever exist for each type of dust you add.
The Basic Dust Guideteaches the basics of making modded dust.
 CModEmoteBubbleRepresents an emote. Emotes are typically used by players or NPC. Players can use the emotes menu or chat commands to display an emote, while town NPC spawn emotes when talking to each other.
 CModGoreThis class allows you to customize the behavior of a custom gore.
 CModHairThis class allows you to define custom hair styles for a player, controlling the associated gender and unlock conditions.
 CModifiers
 CModItemThis class serves as a place for you to place all your properties and hooks for each item.
To use it, simply create a new class deriving from this one. Implementations will be registered automatically. The Basic Item Guideteaches the basics of making a modded item.
 CModKeybindRepresents a loaded input binding. It is suggested to access the keybind status only in ModPlayer.ProcessTriggers.
 CModLoaderThis serves as the central class which loads mods. It contains many static fields and methods related to mods and their contents.
 CModLoaderModItem
 CModMapLayerThis class is used to facilitate easily drawing icons and other things over the map. Pylons and spawn/bed icons are examples of vanilla map layers. Use ModSystem.PreDrawMapIconOverlay(System.Collections.Generic.IReadOnlyList<IMapLayer>, MapOverlayDrawContext) to selectively hide vanilla layers if needed.
 CModMenuA class that is used to customize aesthetic features of the main menu, such as the logo, background and music.
 CModMountThis class serves as a place for you to place all your properties and hooks for each mount.
To use it, simply create a new class deriving from this one. Implementations will be registered automatically. Only one instance of ModMount will exist for each mount, so storing player specific data on the ModMount is not good. Modders can use player.mount._mountSpecificData or a ModPlayer class to store player specific data relating to a mount. Use SetMount to assign these fields. Note that texture autoloading is unique for ModMount, see Texture for more information.
 CModNet
 CModNPCThis class serves as a place for you to place all your properties and hooks for each NPC.
To use it, simply create a new class deriving from this one. Implementations will be registered automatically. The Basic NPC Guideteaches the basics of making a modded NPC.
 CModPacketThis class inherits from BinaryWriter. This means that you can use all of its writing functions to send information between client and server. This class also comes with a Send method that's used to actually send everything you've written between client and server
 CModPalmTreeThis class represents a type of modded palm tree. The palm tree will share a tile ID with the vanilla palm trees (323), so that the trees can freely convert between each other if the sand below is converted. This class encapsulates several functions that distinguish each type of palm tree from each other.
 CModPlayerA ModPlayer instance represents an extension of a Player instance.
To use it, simply create a new class deriving from this one. Implementations will be registered automatically.
You can store fields in the ModPlayer classes, much like how the Player class abuses field usage, to keep track of mod-specific information on the player that a ModPlayer instance represents. It also contains hooks to insert your code into the Player class.
 CModPrefix
 CModProjectileThis class serves as a place for you to place all your properties and hooks for each projectile.
To use it, simply create a new class deriving from this one. Implementations will be registered automatically. The Basic Projectile Guideteaches the basics of making a modded projectile.
 CModPubId_t
 CModPylonExtension to

See also
ModTile

that streamlines the process of creating a modded Pylon. Has all of ModTile's hooks for customization, but additional hooks for Pylon functionality.

 CModRarity
 CModResourceDisplaySetThis class serves as a place for you to define your own logic for drawing the player's life and mana resources.
For modifying parts of the vanilla display sets, use ModResourceOverlay.
 CModResourceOverlayThis class serves as a place for you to customize how the vanilla resource displays (Classic, Fancy and Bars) are drawn.
For implementing your own resource displays, use ModResourceDisplaySet.
 CModSceneEffectModSceneEffect is an abstract class that your classes can derive from. It serves as a container for handling exclusive SceneEffect content such as backgrounds, music, and water styling.
 CModShapes
 CModSideExtensions
 CModSideFilterModesExtensions
 CModsMenuSortModesExtensions
 CModSourceBestiaryInfoElement
 CModSurfaceBackgroundStyleEach background style determines in its own way how exactly the background is drawn. This class serves as a collection of functions for above-ground backgrounds.
 CModSystemModSystem is an abstract class that your classes can derive from. It contains general-use hooks, and, unlike Mod, can have unlimited amounts of types deriving from it.
 CModTexturedTypeThe base type for most modded things with textures.
 CModTileThis class represents a type of tile that can be added by a mod. Only one instance of this class will ever exist for each type of tile that is added. Any hooks that are called will be called by the instance corresponding to the tile type. This is to prevent the game from using a massive amount of memory storing tile instances.
The Basic Tile Guideteaches the basics of making a modded tile.
 CModTileEntityTile Entities are Entities tightly coupled with tiles, allowing the possibility of tiles to exhibit cool behavior. TileEntity.Update is called in SP and on Server, not on Clients.
 CModTreeThis class represents a type of modded tree. The tree will share a tile ID with the vanilla trees (5), so that the trees can freely convert between each other if the soil below is converted. This class encapsulates several functions that distinguish each type of tree from each other.
 CModTypeThe base type for most modded things.
 CModTypeLookupEnables content instances to register with Register(T) towards retrieval via ModContent.Find<T>(string) and similar methods.
 CModUndergroundBackgroundStyleEach background style determines in its own way how exactly the background is drawn. This class serves as a collection of functions for underground backgrounds.
 CModWallThis class represents a type of wall that can be added by a mod. Only one instance of this class will ever exist for each type of wall that is added. Any hooks that are called will be called by the instance corresponding to the wall type.
 CModWaterfallStyleRepresents a style of waterfalls that gets drawn. This is mostly used to determine the color of the waterfall.
 CModWaterStyleRepresents a style of water that gets drawn, based on factors such as the background. This is used to determine the color of the water, as well as other things as determined by the hooks below.
 CModWorkshopEntry
 CMonoModHooks
 CMoonlordDeathDrama
 CMoonLordPortraitBackgroundProviderBestiaryInfoElement
 CMoonLordProgressBar
 CMoonLordScreenShaderData
 CMoonLordSky
 CMoonShader
 CMount
 CMountID
 CMountLoaderThis serves as the central place from which mounts are stored and mount-related functions are carried out.
 CMP3AudioTrack
 CMP3Reader
 CMultiDimArraySerializer
 CMultipleException
 CMultipliableFloat
 CMushroomBiome
 CMushroomHouseBuilder
 CMusicCueHolder
 CMusicID
 CMusicLoader
 CMysticLogFairiesEvent
 CNamePlateInfoElement
 CNameTagHandler
 Cnativefiledialog
 CNativeFileDialog
 CNebulaPillarBigProgressBar
 CNebulaSky
 CNestedUIGrid
 CNetAmbienceModule
 CNetBestiaryModule
 CNetClientSocialModule
 CNetCreativePowerPermissionsModule
 CNetCreativePowersModule
 CNetCreativeUnlocksModule
 CNetCreativeUnlocksPlayerReportModule
 CNetDiagnosticsUI
 CNetGroupInfo
 CNetLiquidModule
 CNetManager
 CNetMessage
 CNetmodeIDCorrespond to Main.netMode values.
 CNetModule
 CNetPacket
 CNetParticlesModule
 CNetPingModule
 CNetplay
 CNetServerSocialModule
 CNetSocialModule
 CNetTeleportPylonModule
 CNetTextModule
 CNetworkInitializer
 CNetworkTextRepresents text that will be sent over the network in multiplayer and displayed to the receiving user in their selected language. Use FromKey(string, object[]) to send a localization key and optional substitutions. LocalizedText.ToNetworkText() can be used directly as well for the same effect.Use FromFormattable(string, object[]) to send a string with string formatting substitutions and associated substitutions. This is typically used with language-agnostic strings that don't need a localization entry, such as "{0} - {1}".Use FromLiteral(string) to send a string directly. This should be used to send text that can't be localized.
 CNeverValidProgressBar
 CNewMultiplayerClosePlayersOverlay
 CNoiseHelper
 CNoJITAttributeExcludes a class, method, or property from the load time JIT.
 CNPC
 CNPCAimedTarget
 CNPCAIStyleID
 CNPCDebuffImmunityDataUnused: Replaced by NPCID.Sets.SpecificDebuffImmunity, NPCID.Sets.ImmuneToAllBuffs , and NPCID.Sets.ImmuneToRegularBuffs

Determines the default debuff immunities of an NPC.
 CNPCDefinition
 CNPCFollowState
 CNPCHappinessThis struct provides access to an NPC type's NPC & Biome relationships.
 CNPCHeadDrawRenderTargetContent
 CNPCHeadID
 CNPCHeadLoaderThis class serves as a central place from which NPC head slots are stored and NPC head textures are assigned. This can be used to obtain the corresponding slots to head textures.
 CNPCHeadRenderer
 CNPCID
 CNPCKillAttempt
 CNPCKillCounterInfoElement
 CNPCKilledCondition
 CNPCKillsTracker
 CNPCLoaderThis serves as the central class from which NPC-related functions are carried out. It also stores a list of mod NPCs by ID.
 CNPCLootThis readonly struct is a simple shortcut to ItemDropDatabase's methods.
 CNPCNetIdBestiaryInfoElement
 CNPCPortraitInfoElement
 CNPCPreferenceTrait
 CNPCShop
 CNPCShopDatabase
 CNPCSmartInteractCandidateProvider
 CNPCSpawnInfoA struct that stores information regarding where an NPC is naturally spawning and the player it is spawning around. This serves to reduce the parameter count for ModNPC.CanSpawn and GlobalNPC.EditSpawnPool.
 CNPCSpawnParams
 CNPCStatsReportInfoElement
 CNPCStrengthHelper
 CNPCUtils
 CNPCWasChatWithTracker
 CNPCWasNearPlayerTracker
 CNullAllowedAttributeThis attribute means the annotated item can possibly be null. This will allow the UI to make the item null. It is up to the modder to make sure the item isn't null in the ModConfig constructor and nested classes.
 COceanBiome
 COGGAudioTrack
 COggReader
 COldAttribute
 COldHookException
 COneFromOptionsDropRule
 COneFromOptionsNotScaledWithLuckDropRule
 COneFromRulesRule
 COptionStringsAttributeBy default, string fields will provide the user with a text input field. Use this attribute to restrict strings to a selection of options.
 COverlay
 COverlayManager
 COverlays
 COverlaySocialModule
 CPacketHistory
 CPaintCoatingID
 CPaintID
 CPaintingEntry
 CParticleOrchestraSettings
 CParticleOrchestrator
 CParticlePool
 CParticleRenderer
 CParticleRendererSettings
 CPartyChatCommand
 CPartySky
 CPasses
 CPassLegacy
 CPayloadHandler
 CPersonalityDatabase
 CPersonalityDatabasePopulator
 CPersonalityProfile
 CPhysicsProperties
 CPillarShader
 CPingMapLayer
 CPirateInvasionShader
 CPirateShipBigProgressBar
 CPitEntrance
 CPlacementHook
 CPlainTagHandler
 CPlanteraShader
 CPlantLoader
 CPlatformSocialModule
 CPlatformUtilities
 CPlayer
 CPlayerDataInitializer
 CPlayerDeathReason
 CPlayerDifficultyID
 CPlayerDrawHelper
 CPlayerDrawLayerThis class represents a DrawLayer for the player. Drawing should be done by adding Terraria.DataStructures.DrawData objects to drawInfo.DrawDataCache in the Draw method.
 CPlayerDrawLayerLoader
 CPlayerDrawLayers
 CPlayerDrawLayerSlot
 CPlayerDrawSet
 CPlayerEyeHelper
 CPlayerFileData
 CPlayerFishingConditions
 CPlayerHeadDrawRenderTargetContent
 CPlayerInput
 CPlayerInputProfile
 CPlayerInteractionAnchor
 CPlayerItemSlotID
 CPlayerLoaderThis is where all ModPlayer hooks are gathered and called.
 CPlayerMovementAccsCache
 CPlayerQueenSlimeMountTextureContent
 CPlayerRainbowWingsTextureContent
 CPlayerResourceSetsManager
 CPlayerResourceSetsManager2
 CPlayerSittingHelper
 CPlayerSleepingHelper
 CPlayerStatsSnapshot
 CPlayerTextureID
 CPlayerTitaniumStormBuffTextureContent
 CPlayerVariantID
 CPoint16
 CPoint16Serializer
 CPointSerializer
 CPopupTextRepresents an in-world floating text object.
 CPortableStoolUsage
 CPortalHelper
 CPosData
 CPotionOfReturnGateHelper
 CPotionOfReturnGateInteractionChecker
 CPotionOfReturnHelper
 CPotionOfReturnSmartInteractCandidateProvider
 CPowerStripUIElement
 CPreferences
 CPrefixDefinition
 CPrefixID
 CPrefixLegacy
 CPrefixLoader
 CPreJITFilterAllows custom JIT logic to be applied to classes in this mod.
 CPressurePlateHelper
 CPrettySparkleParticle
 CPrimitiveRangeElement
 CProfiles
 CProgram
 CProgressionEventCondition
 CProjAIStyleID
 CProjectile
 CProjectileAudioTracker
 CProjectileDefinition
 CProjectileID
 CProjectileLoaderThis serves as the central class from which projectile-related functions are carried out. It also stores a list of mod projectiles by ID.
 CProjectileSmartInteractCandidateProvider
 CPropertyFieldWrapper
 CPunchCameraModifier
 CPVPDeathCommand
 CPylonLoader
 CPylonShopNPCThis is a GlobalNPC native to tML that handles adding Pylon items to NPC's shops, to save on patch size within vanilla.
 CQueenBeeShader
 CQueenSlimeShader
 CQueryParameters
 CRadarInfoDisplay
 CRain
 CRainbowRodDrawer
 CRainShader
 CRandomizedFrameParticle
 CRangeAttributeSpecifies a range for primitive data values. Without this, default min and max are as follows: float: 0, 1 - int/uint: 0, 100 - byte: 0, 255
 CRangedDamageClass
 CRangeElement
 CRareSpawnBestiaryInfoElement
 CRarityLoader
 CRawImgReader
 CRecipeA Recipe is a collection of ingredients, tiles, and a resulting Item. This is how players can craft items in the game.
The Basic Recipes Guideteaches how to add new recipes to the game and how to manipulate existing recipes.
Use Recipe.Create(int, int) to create a Recipe instance resulting in the specified item. Use AddIngredient(int, int) to add ingredients and AddTile(int) to add crafting stations. Finally, use Register to complete the recipe and register it to the game.
Recipes can only be added in ModSystem.AddRecipes, ModItem.AddRecipes, and GlobalItem.AddRecipes.
Recipes should be edited only in ModSystem.PostAddRecipes.
 CRecipeException
 CRecipeGroup
 CRecipeGroupIDContains recipe group ids suitable for use in Recipe.AddRecipeGroup(int, int).
Note that FishForDinner and GoldenCritter are actually unused and won't work. Also note that the ID values shown are incorrect.
 CRecipeItemCreationContextProvides the context of an item being crafted from a recipe. Includes the recipe, consumed items, and destination, facilitating features using data from consumed items to affect the final crafted item.
 CRecipeLoaderThis is where all Recipe hooks are gathered and called.
 CRectangleSerializer
 CRedWireVisibilityBuilderToggle
 CRef
 CReflectiveArmorShaderData
 CRefReadOnlyArray
 CRejectionMenuInfo
 CReloadRequiredAttributeThis attribute hints that changing the value of the annotated property or field will put the config in a state that requires a reload. An overridden ModConfig.NeedsReload can further validate if more complex logic is needed.
 CRemadeChatMonitor
 CRemoteAddress
 CRemoteClient
 CRemoteServer
 CReportServerID
 CResourceDisplaySetLoader
 CResourceDrawSettings
 CResourceLoadException
 CResourceOverlayDrawContext
 CResourceOverlayLoader
 CResourcePack
 CResourcePackContentValidator
 CResourcePackList
 CResourcePackVersion
 CRgbDevice
 CRgbKeyboard
 CRichPresenceState
 CRockPaperScissorsCommand
 CRollCommand
 CRulerGridBuilderToggle
 CRulerLineBuilderToggle
 CSalamanderShellyDadUICollectionInfoProvider
 CSandMound
 CSandstorm
 CSandstormInABottleJump
 CSandstormShader
 CSandstormShaderData
 CSandstormSky
 CSantankMountJump
 CSayChatCommand
 CSceneEffectLoaderThis serves as the central class from which SceneEffect functions are supported and carried out.
 CSceneMetrics
 CSceneMetricsScanSettings
 CScreenDarkness
 CScreenEffectInitializer
 CScreenObstruction
 CScreenShaderData
 CSearchAliasInfoElement
 CSearches
 CSearchFilterModesExtensions
 CSegmentInforReport
 CSegments
 CSelectionHolder
 CSeparatePageAttributeThis specifies that the annotated item will appear as a button that leads to a separate page in the UI. Use this to organize hierarchies.
 CSepiaScreenShaderData
 CSequentialRulesNotScalingWithLuckRuleRuns the provided rules in order, stopping after a rule succeeds.
Does not use player luck.
 CSequentialRulesRuleRuns the provided rules in order, stopping after a rule succeeds.
 CServerJoinRequestsManager
 CSetFactory
 CSettingsForCharacterPreview
 CSextantInfoDisplay
 CShaderData
 CShapeBranch
 CShapeData
 CShapeFloodFill
 CShapeRoot
 CShapeRunner
 CShapes
 CShimmerHelper
 CShimmerTransforms
 CShimmerUnstuckHelper
 CShopHelper
 CShoppingSettings
 CShowDespiteJsonIgnoreAttributeThis attribute indicates that the field or property should be shown in the ModConfig UI despite having a JsonIgnoreAttribute annotation.
 CSign
 CSimpleModGore
 CSimpleOverlay
 CSimpleStructure
 CSimulationConditionSetters
 CSimulatorInfo
 CSkullShader
 CSkyManager
 CSkyShader
 CSliderAttributeAffects whether this data will be presented as a slider or an input field. Add this attribute to use a slider. Currently only affects data of type int.
 CSliderColorAttributeSpecifies a slider color for ModConfig elements that use a slider. The default color is white.
 CSlimeBodyItemDropRule
 CSlimeRainShader
 CSlimeSky
 CSlimeStaffConditionSetter
 CSmartCursorHelper
 CSmartInteractScanSettings
 CSmartInteractSystem
 CSmartSelectGamepadPointer
 CSnapPoint
 CSnowBiome
 CSocialAPI
 CSocialBrowserException
 CSocialBrowserModule
 CSocialSocket
 CSolarFlarePillarBigProgressBar
 CSolarSky
 CSortingSteps
 CSoundEngine
 CSoundID
 CSoundInstanceGarbageCollector
 CSoundPlayer
 CSoundPlaySet
 CSoundStyleThis data type describes in detail how a sound should be played.
Passable to the SoundEngine.PlaySound(in SoundStyle, Vector2?, SoundUpdateCallback?) method.
 CSpawnConditionThis serves as a central class to help modders spawn their NPCs. It's basically the vanilla spawn code if-else chains condensed into objects. See ExampleMod for usages.
 CSpawnConditionBestiaryInfoElement
 CSpawnConditionBestiaryOverlayInfoElement
 CSpawnConditionDecorativeOverlayInfoElement
 CSpawnMapLayer
 CSpelunkerProjectileHelper
 CSpriteDrawBuffer
 CSpriteFrame
 CSpriteRenderTargetHelper
 CSpriteViewMatrix
 CStackedConditionSetter
 CStar
 CStardewValleyAnimation
 CStardustPillarBigProgressBar
 CStardustSky
 CStartBag
 CStatInheritanceData
 CStatModifier
 CStatusID
 CSteamAddress
 CSteamedWraps
 CSteamP2PReader
 CSteamP2PWriter
 CStopwatchInfoDisplay
 CStrayMethods
 CStructureMapUsed during world generation to track and check important world generation features to prevent overlap. Access this via GenVars.structures. The AddProtectedStructure(Rectangle, int) method is used to indicate an area of the world to be protected from other world generation code. The CanPlace(Rectangle, int) method will check if the designated area is free from protected structures as well as any tiles that are not TileID.Sets.GeneralPlacementTiles. This is used to find an area that is unused. It is up to modders to properly use StructureMap to both mark areas as occupied by structures and check for areas free of existing structures. The Structure Map section of the World Generation wiki pagehas more information and useful visualizations.
 CStyleDimension
 CSummonDamageClass
 CSummonMeleeSpeedDamageClass
 CSupportedWorkshopTags
 CSurfaceBackgroundID
 CSurfaceBackgroundStylesLoader
 CSurfaceBiomeShader
 CSurfaceMap
 CSynchronizationContext
 CSystemLoaderThis is where all ModSystem hooks are gathered and called.
 CTagCompoundTag compounds contained named values, serializable as per the NBT spec: NBT spec wiki page
All primitive data types are supported as well as byte[], int[] and Lists of other supported data types
Lists of Lists are internally stored as IList<IList>
Modification of lists stored in a TagCompound will only work if there were no type conversions involved and is not advised
bool is supported using TagConverter, serialized as a byte. IList<bool> will serialize as IList<byte> (quite inefficient)
Additional conversions can be added using TagConverter The Saving and loading using TagCompoundteaches how to properly use the TagCompound class.
 CTagIO
 CTagPrinter
 CTagSerializable
 CTagSerializer
 CTallyCounterInfoDisplay
 CTcpAddress
 CTcpSocket
 CTeamArmorShaderData
 CTEDisplayDoll
 CTEFoodPlatter
 CTEHatRack
 CTEItemFrame
 CTeleportationStyleID
 CTeleportHelpers
 CTeleportPylonInfo
 CTeleportPylonsMapLayer
 CTeleportPylonsSystem
 CTELogicSensor
 CTEModdedPylonThis is a TML provided Tile Entity that acts extremely similar to vanilla's pylon TEs by default. If you plan to make a pylon tile in any capacity, you must extend this TE at least once.
 CTempleShader
 CTerrainPass
 CTestHighFPSIssues
 CTETeleportationPylon
 CTETrainingDummy
 CTEWeaponsRack
 CTextSnippet
 CTextureAssetsContains the Texture2D assets used by the game, each stored as an Asset<Texture2D>. Note that the vanilla entries in Item, Npc, Projectile, Gore, Wall, Tile, ItemFlame, Background, and all of the player equipment and hair related fields are not necessarily loaded. Use the Main.LoadItem(int) or similar methods before attempting to use those texture assets. Modded content in these arrays are always preloaded during mod loading. For example, the following code could be used to access the Acorn item texture asset
 CTexturePackWorkshopEntry
 CThinIceBiome
 CThrowingDamageClass
 CTileA data structure used for accessing information about tiles, walls, wires, and liquids at a single position in the world.Vanilla tile code and a mods tile code will be quite different, since tModLoader reworked how tiles function to improve performance. This means that copying vanilla code will leave you with many errors. Running the code through tModPorter will fix most of the issues, however.For your sanity, all of the changes are well documented to make it easier to port vanilla code.
 CTileBatch
 CTileColorCache
 CTileDataPacking
 CTileDefinition
 CTileDestroyedCondition
 CTileDrawInfo
 CTileDrawing
 CTileDrawSorter
 CTileEntitiesManager
 CTileEntity
 CTileEntityID
 CTileFont
 CTileGolfPhysics
 CTileID
 CTileLightScanner
 CTileLightScannerOptions
 CTileLoaderThis serves as the central class from which tile-related functions are supported and carried out.
 CTilemap
 CTileMaterial
 CTileMaterials
 CTileObject
 CTileObjectAlternatesModule
 CTileObjectBaseModule
 CTileObjectCoordinatesModule
 CTileObjectDataContains tile properties for multitiles dictating how they are placed and how they behave. Multitiles are non-terrain tiles. TileObjectData supports alternate placements as well as tile style-specific behaviors. The TileObjectData section of the Basic Tile wiki guidehas visuals and guides teaching how to use the TileObjectData system.
 CTileObjectDrawModule
 CTileObjectPreviewData
 CTileObjectStyleModule
 CTileObjectSubTilesModule
 CTilePaintSystemV2
 CTilePlacementHooksModule
 CTileReachCheckSettings
 CTileRestingInfoHolds data required for offsetting an entity when it rests on a tile (sitting/sleeping).
 CTileSmartInteractCandidateProvider
 CTileTypeData
 CTileWallBrightnessInvisibilityData
 CTileWallWireStateData
 CTimeLogger
 CTitleLinkButton
 CTModContentSource
 CTmodFile
 CToFromStringConverterThis TypeConverter facilitates converting to and from the string Type. This is necessary for Objects that are to be used as Dictionary keys, since the JSON for keys needs to be a string. Classes annotated with this TypeConverter need to implement a static FromString method that returns T.
 CTooltipArgsAttributeUse to provide values to be interpolated into the tooltip of the annotated property or field.
string arguments starting with "$" are interpreted as localization keys.
Interpolating values can be useful for reusing common tooltips to keep localization files clean and organized.
For example, if a mod provides toggles for several features, a common tooltip could be used for each with only the provided value being different.
The string formatting section of the Localization wiki pageexplains this concept further.
Scope simplificationcan be used to shorten localization keys passed in.
 CTooltipAttribute
 CTooltipKeyAttributeA tooltip is the text shown to the user in the ModConfig UI next to the cursor when they hover over the annotated member (property, field, or class). This can be longer and more descriptive than the Label.
This attribute sets a custom localization key for the tooltip of the annotated property, field, or class.
The provided localization key must start with "$".
Without this attribute, the localization key "Mods.{ModName}.Configs.{ConfigName}.{MemberName}.Tooltip" will be assumed for members of ModConfig classes.
Annotations on members of non-ModConfig classes need to supply a custom localization key using this attribute to be localized, no localization key is assumed. If the translation value of a property or field that is an object is an empty string, the tooltip of the class will be used instead. Passing in just "$" will result in no tooltip entry being added to the localization files.
Values can be interpolated into the resulting label text using TooltipArgsAttribute.
 CTooltipLineThis class serves as a way to store information about a line of tooltip for an item. You will create and manipulate objects of this class if you use the ModifyTooltips hook.
 CTopoSort
 CTorchBiomeBuilderToggle
 CTorchID
 CTownNPCProfiles
 CTownNPCUICollectionInfoProvider
 CTownRoomManager
 CTrackedProjectileReference
 CTrackGenerator
 CTravellingMerchantShop
 CTreePaintingSettings
 CTreePaintSystemData
 CTreeTopID
 CTreeTopsInfo
 CTriggerNames
 CTriggersPack
 CTriggersSet
 CTsunamiInABottleJump
 CTwilightDyeShaderData
 CTwilightHairDyeShaderData
 CTwinsBigProgressBar
 CTwinsShader
 CTypeConverter
 CUIAchievementListItem
 CUIAchievementsMenu
 CUIAlign
 CUIAnimatedImage
 CUIAsyncList
 CUIAutoScaleTextTextPanel
 CUIBestiaryBar
 CUIBestiaryEntryButton
 CUIBestiaryEntryGrid
 CUIBestiaryEntryIcon
 CUIBestiaryEntryInfoPage
 CUIBestiaryFilteringOptionsGrid
 CUIBestiaryInfoItemLine
 CUIBestiaryInfoLine
 CUIBestiaryNPCEntryPortrait
 CUIBestiarySortingOptionsGrid
 CUIBestiaryTest
 CUIBrowserFilterToggle
 CUIBrowserStatus
 CUIButtonA text panel that supports hover and click sounds, hover colors, and alternate colors.
 CUICharacter
 CUICharacterCreation
 CUICharacterListItem
 CUICharacterNameButton
 CUICharacterSelect
 CUIClothStyleButton
 CUIColoredImageButton
 CUIColoredSlider
 CUIColoredSliderSimple
 CUICommon
 CUICreateMod
 CUICreativeInfiniteItemsDisplay
 CUICreativeItemsInfiniteFilteringOptions
 CUICreativePowerButton
 CUICreativePowersMenu
 CUICycleImage
 CUIDifficultyButton
 CUIDynamicItemCollection
 CUIElement
 CUIEmotesMenu
 CUIEvent
 CUIGamepadHelper
 CUIGenProgressBar
 CUIGrid
 CUIHairStyleButton
 CUIHeader
 CUIHorizontalSeparator
 CUIIconTextButton
 CUIImage
 CUIImageButton
 CUIImageFramed
 CUIImageWithBorder
 CUIItemIcon
 CUIItemSlot
 CUIKeybindingListItem
 CUIKeybindingSimpleListItem
 CUIKeybindingSliderItem
 CUIKeybindingToggleListItem
 CUILinkPage
 CUILinkPoint
 CUILinkPointNavigator
 CUILinksInitializer
 CUIList
 CUIManageControls
 CUIModNetDiagnostics
 CUIModsFilterResults
 CUIMouseEvent
 CUIntTagSerializer
 CUIPanel
 CUIParticleLayer
 CUIProgressBar
 CUIReportsPage
 CUIResourcePack
 CUIResourcePackInfoButton
 CUIResourcePackInfoMenu
 CUIResourcePackSelectionMenu
 CUIScrollbar
 CUIScrollWheelEvent
 CUISearchBar
 CUISelectableTextPanel
 CUISlicedImage
 CUISliderBase
 CUISortableElement
 CUIState
 CUIText
 CUITextBox
 CUITextPanel
 CUIToggleImage
 CUIVerticalSeparator
 CUIVerticalSlider
 CUIVirtualKeyboard
 CUIWorkshopHub
 CUIWorkshopImportWorldListItem
 CUIWorkshopPublishResourcePackListItem
 CUIWorkshopPublishWorldListItem
 CUIWorkshopSelectResourcePackToPublish
 CUIWorkshopSelectWorldToPublish
 CUIWorkshopWorldImport
 CUIWorldCreation
 CUIWorldCreationPreview
 CUIWorldListItem
 CUIWorldLoad
 CUIWorldSelect
 CULongTagSerializer
 CUndergroundBackgroundStylesLoaderThis serves as the central class from which ModUndergroundBackgroundStyle functions are supported and carried out.
 CUndergroundBiome
 CUndergroundCorruptionShader
 CUndergroundHallowShader
 CUndergroundMushroomShader
 CUnderworldShader
 CUnicornMountJump
 CUnifiedRandom
 CUnloadedAccessorySlot
 CUnloadedChest
 CUnloadedDresser
 CUnloadedGlobalItem
 CUnloadedGlobalNPC
 CUnloadedItem
 CUnloadedNonSolidTile
 CUnloadedPlayer
 CUnloadedPrefix
 CUnloadedSemiSolidTile
 CUnloadedSolidTile
 CUnloadedSupremeFurniture
 CUnloadedSystem
 CUnloadedTile
 CUnloadedTileEntity
 CUnloadedWall
 CUnlockableNPCEntryIcon
 CUnlockProgressDisplayBestiaryInfoElement
 CUpdateFilterModesExtensions
 CUploadFile
 CUPnPA simple UPnP library See: https://github.com/Rartrin/UwUPnP
 CUPnPNAT
 CUsageException
 CUserInterface
 CUserJoinToServerRequest
 CUShortTagSerializer
 CUtils
 CValueNotTranslationKeyException
 CVanillaBuilderToggle
 CVanillaContentValidator
 CVanillaDamageClass
 CVanillaExtraJump
 CVanillaInfoDisplay
 CVector2TagSerializer
 CVector3TagSerializer
 CVersionSerializer
 CVertexColors
 CVertexStrip
 CVertical64BitStrips
 CVineShader
 CVirtualCamera
 CVirtualKeyboard
 CVoidLensHelper
 CVortexPillarBigProgressBar
 CVortexSky
 CWallDrawing
 CWallID
 CWallLoaderThis serves as the central class from which wall-related functions are supported and carried out.
 CWallOfFleshShader
 CWallTypeData
 CWatchesInfoDisplay
 CWaterfallID
 CWaterfallManager
 CWaterFallStylesLoader
 CWaterShaderData
 CWaterStyleID
 CWaterStylesLoader
 CWAVAudioTrack
 CWavReader
 CWeatherRadioInfoDisplay
 CWeGameAddress
 CWeGameFriendListInfo
 CWeGameHelper
 CWeGameP2PReader
 CWeGameP2PWriter
 CWeightedRandom
 CWellFedHelper
 CWhipSettings
 CWindGrid
 CWindowStateController
 CWingStatsStores the stats and settings for a ID.ArmorIDs.Wing equip.
 CWingStatsInitializer
 CWiresUI
 CWireVisibilityBuilderToggle
 CWiring
 CWoodHouseBuilder
 CWorkshopBranding
 CWorkshopHelper
 CWorkshopIssueReporter
 CWorkshopItemPublishSettings
 CWorkshopProgressReporter
 CWorkshopPublishInfoStateForMods
 CWorkshopPublishInfoStateForResourcePack
 CWorkshopPublishInfoStateForWorld
 CWorkshopPublishingIndicator
 CWorkshopSocialModule
 CWorkshopTagOption
 CWorldFile
 CWorldFileData
 CWorldGen
 CWorldGenConfiguration
 CWorldGenerator
 CWorldGenRange
 CWorldMap
 CWorldSections
 CWorldUIAnchor
 CWorldUtils
 CWorldWorkshopEntry
 CWormShader
 CWscJsonObject
 CYellowWireVisibilityBuilderToggle