tModLoader v2024.12
A mod to make and play Terraria mods
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345678]
 CItemFilters.AAccessories
 CItemFilters.AArmor
 CAbstractNPCShop
 CAchievement
 CAchievementAdvisor
 CAchievementAdvisorCard
 CAchievementCondition
 CAchievementHelperID
 CAchievementInitializer
 CAchievementManager
 CAchievementsHelper
 CTerraria.Social.Base.AchievementsSocialModule
 CAchievementTracker< float >
 CAchievementTracker< int >
 CActions
 CActiveEntityIterator< T >
 CActiveSound
 CAddableFloat
 CAdvancedPopupRequest
 CAggregateException
 CAHoverInteractionChecker
 CCommonConditions.Alert
 CAlignment
 CAmbienceServer
 CAmbienceServer.AmbienceSpawnInfo
 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
 CSegments.AnimationSegmentWithActions< LooseSprite >
 CSegments.AnimationSegmentWithActions< NPC >
 CSegments.AnimationSegmentWithActions< Player >
 CAnthillEntrance
 CGlobalTypeLookups< TGlobal >.AppliesToTypeSet
 CWorkshopHelper.UGCBased.APublisherInstance
 CTreeTopsInfo.AreaId
 CTilePaintSystemV2.ARenderTargetHolder
 CArgumentHelper
 CArmorIDs
 CArmorShaderDataSet
 CAssetInitializer
 CAssetSourceController
 CAsyncProvider< T >
 CAsyncProvider< TResource >
 CAsyncProviderStateExtensions
 CAttribute
 CAWorkshopEntry
 CAWorkshopProgressReporter
 CAWorkshopPublishInfoState< ResourcePack >
 CAWorkshopPublishInfoState< TmodFile >
 CAWorkshopPublishInfoState< WorldFileData >
 CAWorkshopTagsCollection
 CArmorIDs.Back
 CBackgroundChangeFlashInfo
 CBallCollision
 CBallCollisionEvent
 CArmorIDs.Balloon
 CBallPassThroughEvent
 CBallStepResult
 CItemID.BannerEffectDetermines the strength an NPC's banner has on players' interactions with that NPC. Used in Sets.BannerStrength
 CArmorIDs.Beard
 CBestiaryDatabase
 CBestiaryDatabaseNPCsPopulator
 CBestiaryEntry
 CContentSamples.BestiaryHelper
 CBestiaryUICollectionInfo
 CBestiaryUnlockProgressReport
 CBigProgressBarCache
 CBigProgressBarHelper
 CBigProgressBarInfo
 CBigProgressBarSystem
 CBinaryIO
 CBinaryWriterHelper
 CBiomeConversionID
 CBiomePreferenceListTrait.BiomePreference
 CBestiaryDatabaseNPCsPopulator.CommonTags.SpawnConditions.Biomes
 CBirthdayParty
 CBitReader
 CBits64
 CBitsByte
 CBitWriter
 CArmorIDs.Body
 CCommonConditions.Boss
 CBossBarDrawParamsHolds data required for boss bar drawing.
 CBossBarLoader
 CBuffDrawParamsHolds data required for buff drawing.
 CBufferPool
 CBuffID
 CBuffLoaderThis serves as the central class from which buff-related functions are supported and carried out.
 CBuffID.Sets.BuffMountDataStores data for mount buffs.
 CPlayer.BuilderAccToggleIDs
 CBuilderToggleDrawParamsHolds data required for builder toggle drawing.
 CBuilderToggleLoader
 CBuildInfo
 CChestUI.ButtonID
 CCachedBuffer
 CCalculatedStyle
 CCamera
 CCameraInfo
 CCameraModifierStack
 CCaptureBiome
 CCaptureInterface
 CCaptureSettings
 CEmoteID.CategoryThis class is added by TML for easily adding mod emotes to a specific category.
 CChainID
 CChains
 CChambersEntrance
 CDelegateMethods.CharacterPreview
 CUtils.ChaseResults
 CChatCommandId
 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
 CWorldGen.CheckTreeSettings
 CChestRepresents a non-Player inventory, such as chests, portable storage, or NPC shops.
 CChestUI
 CChildSafety
 CChromaCondition
 CChromaHotkeyPainter
 CChromaInitializer
 CChromaShader
 CChumBucketProjectileHelper
 CCinematicManager
 CCloning
 CCloud
 CCloudID
 CCloudLoader
 CTerraria.Social.Base.CloudSocialModule
 CGolfHelper.ClubProperties
 CCoinLossRevengeSystem
 CCollision
 CColors
 CColorSlidersSet
 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.
 CCommonCode
 CCommonConditions
 CContentSamples.CommonlyUsedContentSamples
 CCommonResourceBarMethods
 CBestiaryDatabaseNPCsPopulator.CommonTags
 CComparer
 CPlayer.CompositeArmData
 CBestiaryDatabaseNPCsPopulator.Conditions
 CConditions
 CConfigManager
 CRecipe.ConsumptionRules
 CContainerTransferContext
 CContentInstance< T >
 CContentManager
 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
 CItemSlot.Context
 CTileID.Sets.Conversion
 CWallID.Sets.Conversion
 CCrashDump
 CCrashWatcher
 CContentSamples.CreativeHelper
 CCreativeItemSacrificesCatalog
 CCreativePowersHelper.CreativePowerIconLocations
 CCreativePowerManager
 CCreativePowers
 CCreativePowerSettings
 CCreativePowersHelper
 CCreativePowerUIElementRequestInfo
 CCreativeUI
 CCreditsRollComposer
 CCreditsRollEvent
 CCommonConditions.CriticalAlert
 CBestiaryDatabaseNPCsPopulator.CrownosIconIndexes
 CCultistRitual
 CMain.CurrentFrameFlags
 CMain.CurrentPlayerOverride
 CCursorOverrideID
 CCustomCurrencyID
 CCustomCurrencyManager
 CCustomCurrencySystem
 CDamageClassData
 CDamageClassLoader
 CDashIDCorresponds to values assigned to Player.dashType.
 CDD2Event
 CDefaultContractResolver
 CPlayer.DefenseStat
 CDelegateMethods
 CCommonConditions.Depth
 CDesertDescription
 CDesertHive
 CDeviceParam
 CPlayer.DirectionalInputSyncCache
 CItem.DisableCloneMethod
 CDisplayDollSlot
 CDontStarveDarknessDamageDealer
 CDontStarveSeed
 CDoorOpeningHelper
 CDoubleStack< T1 >
 CWorkshopHelper.UGCBased.Downloader
 CDrawAnimation
 CDrawData
 CTileFont.DrawMode
 CMapOverlayDrawContext.DrawResult
 CDrillDebugDraw
 CDroneCameraTracker
 CDropAttemptInfo
 CDropRateInfo
 CDropRateInfoChainFeed
 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
 CEffectManager< T >
 CEffectManager< CustomSky >
 CEffectManager< Filter >
 CEffectManager< Overlay >
 CEmoteBubbleLoader
 CEmoteID
 CEmpressBladeDrawer
 CEnabledFilterModesExtensions
 CEntity
 CEntityGlobalsEnumerator< TGlobal >
 CEntityShadowInfo
 CEntitySource_CatchEntity
 CEntitySource_TorchGod
 CAbstractNPCShop.Entry
 CEntryFilterer< T, U >
 CEntryFilterer< BestiaryEntry, IBestiaryEntryFilter >
 CEntryFilterer< Item, IItemEntryFilter >
 CEntryIconDrawSettings
 CEntrySorter< BestiaryEntry, IBestiarySortStep >
 CEntrySorter< int, ICreativeItemSortStep >
 CEnumerationExtensions
 CActiveEntityIterator< T >.Enumerator
 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.
 CChromaInitializer.EventLocalization
 CAchievementHelperID.Events
 CBestiaryDatabaseNPCsPopulator.CommonTags.SpawnConditions.Events
 CCommonConditions.Events
 CException
 CExtensionFilter
 CExtraBestiaryInfoPageInformation
 CExtraJumpLoader
 CExtraJumpStateA structure containing fields used to manage extra jumps

 CExtraSeatInfo
 CExtrasID
 CArmorIDs.Face
 CTileID.Sets.FallingBlockProjectileInfoUsed in FallingBlockProjectile.
 CProjectileID.Sets.FallingBlockTileItemInfoUsed in FallingBlockTileItem.
 CFancyErrorPrinter
 CFancyGolfPredictionLine
 CFastRandom
 CFavoritesFile
 CFileBrowser
 CFileData
 CTmodFile.FileEntry
 CFileMetadata
 CFileUtilities
 CFilm
 CFilteredArrayEnumerator< T >
 CFilteredSpanEnumerator< T >
 CFilters
 CFinalFractalHelper
 CFinalFractalHelper.FinalFractalProfile
 CFishingAttempt
 CFixExploitManEaters
 CFlameLashDrawer
 CFlexibleTileWand
 CFloatRange
 CFlowerPacketInfoDetermines the styles of ID.TileID.Plants that an Item creates on certain types of grass.
 CFontAssets
 CTileID.Sets.ForAdvancedCollision
 CFoundWorkshopEntryInfo
 CFrameEventData
 CFrameSkipTest
 CFrameworkVersion
 CFraming
 CTerraria.Social.Base.FriendsSocialModule
 CArmorIDs.Front
 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
 CGenBase
 CGenerationProgress
 CGenShapeActionPair
 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.
 CGlobalHookList< TGlobal >
 CGlobalList< TGlobal >
 CGlobalLoaderUtils< TGlobal, TEntity >
 CGlobalRecipe
 CGlobalType< EmoteBubble, GlobalEmoteBubble >
 CGlobalType< Item, GlobalItem >
 CGlobalType< NPC, GlobalNPC >
 CGlobalType< Projectile, GlobalProjectile >
 CGlobalType< TGlobal >
 CGlobalTypeLookups< TGlobal >
 CGlowMaskID
 CGolfBallTrackRecord
 CGolfHelper
 CGolfState
 CGore
 CGoreID
 CGoreLoader
 CGroupOptionButton< int >
 CGroupOptionButton< WorkshopItemPublicSettingId >
 CGroupOptionButton< WorldDifficultyId >
 CGroupOptionButton< WorldEvilId >
 CGroupOptionButton< WorldSizeId >
 CWorldGen.GrowTreeSettings
 CMain.CurrentFrameFlags.Hacks
 CHairID
 CHairLoader
 CHairShaderDataSet
 CHairstyleUnlocksHelper
 CProjectile.HallowBossPelletStormInfo
 CArmorIDs.HandOff
 CArmorIDs.HandOn
 CHatRackSlot
 CArmorIDs.Head
 CHelperInfo
 CNPC.HitInfoRepresents a finalized damage calculation for damage about to be applied to an NPC. This is the result of the all modifications done previously in a HitModifiers.
 CNPC.HitModifiersRepresents a damage calculation in the process of being calculated for damage to be applied to an NPC. The final damage calculation will be present in the resulting HitInfo.
 CHitTile
 CHitTile.HitTileObject
 CHjsonExtensions.HjsonStyle
 CHookList< T >
 CPlayer.Hooks
 CWorldGen.Hooks
 CHouseBuilder
 CHouseBuilderContext
 CHouseUtils
 CHousingCategoryID
 CPlayer.HurtInfo
 CPlayer.HurtModifiers
 CCollision.HurtTile
 CIAchievementTracker
 CIAnimationSegment
 CIAnimationSegmentAction< T >
 CIAnimationSegmentAction< NPC >
 CIAnimationSegmentAction< Player >
 CIAnimationSegmentAction< Segments.LooseSprite >
 CIAssetReader
 CIBallContactListener
 CIBestiaryBackgroundImagePathAndColorProvider
 CIBestiaryBackgroundOverlayAndColorProvider
 CIBestiaryEntryDisplayIndex
 CIBestiaryInfoElementProvides a bestiary UI element to show to the user in the bestiary.
 CIBestiaryPrioritizedElement
 CIBestiaryUICollectionInfoProvider
 CIBigProgressBar
 CICameraModifier
 CICategorizedBestiaryInfoElementAllows categorizing Bestiary UI Elements into existing categories. IBestiaryInfoElement that are not vanilla Types without this interface will be placed at the bottom in the UIBestiaryEntryInfoPage.BestiaryInfoCategory.Misc category.
 CIChatCommand
 CIChatMonitor
 CIChatProcessor
 CICloneable
 CIColorable
 CIComparable
 CIComparer
 CIConfigKeyHolder
 CIContentValidator
 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< TGlobal >
 CIEntityWithGlobals< GlobalEmoteBubble >
 CIEntityWithGlobals< GlobalItem >
 CIEntityWithGlobals< GlobalNPC >
 CIEntityWithGlobals< GlobalProjectile >
 CIEntityWithInstances< T >
 CIEntityWithInstances< ModPlayer >
 CIEntryFilter< T >
 CIEntryFilter< BestiaryEntry >
 CIEntryFilter< Item >
 CIEntryIcon
 CIEntrySortStep< BestiaryEntry >
 CIEntrySortStep< int >
 CIEnumerable
 CIEquatable
 CIFileBrowser
 CIFilterInfoProvider
 CIGroupOptionButton
 CIHaveBackButtonCommand
 CIIndexed
 CIInGameNotification
 CIItemDropRule
 CIItemDropRuleChainAttempt
 CILightingEngine
 CILoadableAllows for implementing types to be loaded and unloaded.
 CILoader
 CILocalizedModTypeExtensions
 CILoot
 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
 CArmorIDs.Body.Sets.IncludeCapeFrontAndBackInfoStores Back and Front equips to be worn with a specified Body equip.
Used in IncludeCapeFrontAndBack.
 CINeedRenderTargetContent
 CINestedItemDropRule
 CINetDiagnosticsUI
 CInfoDisplayLoader
 CMain.InfoToSetBackColor
 CIngameFancyUIProvides convenient access to the Main.InGameUI UserInterface class. Use this for in-game non-gameplay fullscreen user interfaces. User interfaces shown using IngameFancyUI hide all other UI. Some examples include the bestiary, emote menu, and settings menus. There can only be one active fullscreen user interface and the user can't play the game normally when active, so this is only useful for non-gameplay UI. Use OpenUIState to show a UIState and Close to close it. There is no need to manage a UserInterface or interface layers when using this approach, but it is more limited in flexibility.
 CInGameNotificationsTracker
 CIngameOptions
 CInGamePopups
 CIntRange
 CInvasionID
 CBestiaryDatabaseNPCsPopulator.CommonTags.SpawnConditions.Invasions
 CIOException
 CTileIO.IOImpl< TBlock, TEntry >
 CTileIO.IOImpl< ModTile, TileEntry >
 CTileIO.IOImpl< ModWall, WallEntry >
 CIOnPlayerJoining
 CIParticle
 CIPCBase
 CIPCContent
 CIPCMessage
 CIPersistentPerPlayerContent
 CIPersistentPerWorldContent
 CIPlayerRenderer
 CIPowerSubcategoryElement
 CIProvideItemConditionDescription
 CIProvideReports
 CIProvideSearchFilterString
 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< BestiaryEntry >
 CISearchFilter< Item >
 CSegments.PlayerSegment.IShaderEffect
 CSegments.SpriteSegment.IShaderEffect
 CIShopPersonalityTrait
 CIShoppingBiome
 CISimulationConditionSetter
 CISmartInteractBlockReasonProvider
 CISmartInteractCandidate
 CISmartInteractCandidateProvider
 CISocialModule
 CISocket
 CIssueReport
 CIssueReportsIndicator
 CIStaticPortMapping
 CITagHandler
 CItemAlternativeFunctionID
 CPlayer.ItemCheckContext
 CItemCreationContext
 CItemDropAttemptResult
 CItemDropDatabase
 CItemDropResolver
 CItemDropRule
 CItemFilters
 CContentSamples.CreativeHelper.ItemGroupAndOrderInGroup
 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
 CSteamedWraps.ItemInstallInfo
 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.
 CItemRarity
 CItemRarityIDEnumerates the values used with Item.rare
 CPrefixLegacy.ItemSetsThese sets determine which vanilla weapons belong to which prefix categories. Modded items should not use these as modded item prefix categories are derived automatically from their Item.DamageType and/or ModItem.MeleePrefix/ModItem.MagicPrefix/ModItem.RangedPrefix/ModItem.WeaponPrefix usage instead. ItemsThatCanHaveLegendary2, however, can be used by modded items if needed.
 CItemShopSellbackHelper
 CItemSlot
 CItemSorting
 CPlayer.ItemSpaceStatus
 CItemSyncPersistentStats
 CItemTooltip
 CItemTrader
 CItemSlot.ItemTransferInfo
 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
 CIUpdateBeforeSorting
 CIUPnPNAT
 CIValueProvider
 CIVertexType
 CKeyCache
 CKeyConfiguration
 CLang
 CLangID
 CLanguageContains methods to access or retrieve localization values. The Localization Guideteaches more about localization.
 CLanguageManager
 CLanternNight
 CLarvaHoleEntrance
 CLaunchInitializer
 CLegacyNetBufferPool
 CLegacySoundPlayer
 CArmorIDs.Legs
 CLevenshteinDistance
 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.
 CLightMap
 CLineSegment
 CLinkButtonsInitializer
 CLiquid
 CLiquidBuffer
 CLiquidDeathModule
 CLiquidID
 CLiquidPlacementModule
 CLiquidRenderer
 CList
 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
 CSegments.LooseSprite
 CLootSimulationItemCounter
 CLootSimulator
 CLucyAxeMessage
 CMagicMissileDrawer
 CMapHelper
 CMapIconOverlay
 CMapLegend
 CMapOverlayDrawContext
 CMapTile
 CMenuID
 CMenuLoader
 CMessageBuffer
 CMessageDispatcherBase
 CMessageDispatcherClient
 CMessageDispatcherServer
 CMessageID
 CLoaderUtils.MethodOverrideQuery< T >
 CMethodSequenceListItem
 CDelegateMethods.Minecart
 CMinecart
 CMinecartDiggerHelper
 CMinimapFrameTemplate
 CCommonConditions.MiscBiome
 CPlayerInput.MiscSettingsTEMP
 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.
 CModBrowserSortModesExtensions
 CModBrowserTimePeriodExtensions
 CModContentManages content added by mods. Liaisons between mod content and Terraria's arrays and oversees the Loader classes.
 CModDownloadItem
 CModifiers
 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.
 CModNet
 CModPubId_t
 CModShapes
 CModSideExtensions
 CModSideFilterModesExtensions
 CModsMenuSortModesExtensions
 CModTypeLookup< T >Enables content instances to register with Register(T) towards retrieval via ModContent.Find<T>(string) and similar methods.
 CMonoModHooks
 CMoonlordDeathDrama
 CMoonlordDeathDrama.MoonlordExplosion
 CMoonlordDeathDrama.MoonlordPiece
 CDelegateMethods.Mount
 CMount
 CMount.MountData
 CMount.MountDelegatesData
 CMountID
 CMountLoaderThis serves as the central place from which mounts are stored and mount-related functions are carried out.
 CMultipliableFloat
 CMusicCueHolder
 CMusicID
 CMysticLogFairiesEvent
 Cnativefiledialog
 CArmorIDs.Neck
 CNetGroupInfo
 CNetManager
 CNetMessage
 CNetmodeIDCorrespond to Main.netMode values.
 CNetModule
 CNetPacket
 CNetplay
 CTerraria.Social.Base.NetSocialModule
 CNetMessage.NetSoundInfo
 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.
 Cnativefiledialog.nfdpathset_t
 CNoiseHelper
 CNPCAimedTarget
 CNPCAIStyleID
 CNPCID.Sets.NPCBestiaryDrawModifiersStores the draw parameters for an NPC type (NPC.type) in the Bestiary.
Do not use default to create this struct. Use new NPCBestiaryDrawModifiers() instead to set proper default values.
 CNPCDebuffImmunityDataUnused: Replaced by NPCID.Sets.SpecificDebuffImmunity, NPCID.Sets.ImmuneToAllBuffs , and NPCID.Sets.ImmuneToRegularBuffs

Determines the default debuff immunities of an NPC.
 CNPCFollowState
 CNPCHappinessThis struct provides access to an NPC type's NPC & Biome relationships.
 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.
 CNPCID
 CNPCKillAttempt
 CNPCLoaderThis serves as the central class from which NPC-related functions are carried out. It also stores a list of mod NPCs by ID.
 CActions.NPCs
 CNPCShopDatabase
 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
 CNPCStrengthHelper
 CNPCUtils
 CAmbientSkyDrawCache.OceanLineCache
 CItemSlot.Options
 CPosData< T >.OrderedSparseLookupBuilderEfficient builder for PosData<T>[] lookups covering the whole world. Must add elements in ascending pos order.
 CPosData< T >.OrderedSparseLookupReader
 CPlayer.OverheadMessage
 COverlays
 CTerraria.Social.Base.OverlaySocialModule
 CPacketHistory
 CPaintCoatingID
 CPaintID
 CPaintingEntry
 CSegments.Panning
 CDropOneByOne.Parameters
 CParticleOrchestraSettings
 CParticleOrchestrator
 CParticlePool< T >
 CParticleRenderer
 CParticleRendererSettings
 CPasses
 CPayloadHandler
 CPersonalityDatabase
 CPersonalityDatabasePopulator
 CPersonalityProfile
 CPhysicsProperties
 CPitEntrance
 CPlacementHook
 CFlexibleTileWand.PlacementOption
 CPlantLoader
 CTerraria.Social.Base.PlatformSocialModule
 CPlatformUtilities
 CBackupIO.PlayerResponsible for archiving player backups
 CPlayerDataInitializer
 CPlayerDeathReason
 CPlayerDifficultyID
 CPlayerDrawHelper
 CPlayerDrawLayerLoader
 CPlayerDrawLayers
 CPlayerDrawSet
 CPlayerEyeHelper
 CPlayerFishingConditions
 CPlayerInput
 CPlayerInputProfile
 CPlayerInteractionAnchor
 CPlayerItemSlotID
 CPlayerLoaderThis is where all ModPlayer hooks are gathered and called.
 CPlayerMovementAccsCache
 CPlayerResourceSetsManager
 CActions.Players
 CPlayerSittingHelper
 CPlayerSleepingHelper
 CPlayerStatsSnapshot
 CPlayerTextureID
 CPlayerVariantID
 CPoint16
 CPopupTextRepresents an in-world floating text object.
 CPortableStoolUsage
 CPortalHelper
 CPosData< T >
 CPosData< ushort >
 CBuilderToggle.Position
 CExtraJump.Position
 CPlayerDrawLayer.Position
 CPotionOfReturnGateHelper
 CPotionOfReturnHelper
 CPreferences
 CPrefixID
 CPrefixLegacy
 CPrefixLoader
 CPreJITFilterAllows custom JIT logic to be applied to classes in this mod.
 CPressurePlateHelper
 CPrimitiveRangeElement< byte >
 CPrimitiveRangeElement< float >
 CPrimitiveRangeElement< int >
 CPrimitiveRangeElement< uint >
 CSceneEffectLoader< T >.SceneEffectInstance.PrioritizedPair
 CProfiles
 CWorldGen.GrowTreeSettings.Profiles
 CProgram
 CProjAIStyleID
 CProjectileAudioTracker
 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.
 CPropertyFieldWrapper
 CWorkshopHelper.UGCBased.PublishedItemsFinder
 CPylonLoader
 CQueryParameters
 CLogging.QuietExceptionHandle
 CPlayer.RabbitOrderFrameHelper
 CRain
 CRainbowRodDrawer
 CPlayer.RandomTeleportationAttemptSettings
 CRarityLoader
 CSteamP2PReader.ReadResult
 CWeGameP2PReader.ReadResult
 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.
 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.
 CRecipeLoaderThis is where all Recipe hooks are gathered and called.
 CShimmerTransforms.RecipeSets
 CLegacyLighting.RectArea
 CRef< T >
 CRef< Effect >
 CRef< int >
 CRefReadOnlyArray< T >
 CChatManager.Regexes
 CRejectionMenuInfo
 CRemoteAddress
 CRemoteClient
 CRemoteServer
 CTextureAssets.RenderTargets
 CReportServerID
 CResourceDisplaySetLoader
 CResourceDrawSettings
 CResourceOverlayDrawContext
 CResourceOverlayLoader
 CResourcePack
 CResourcePackContentValidator
 CResourcePackList
 CCoinLossRevengeSystem.RevengeMarker
 CRgbDevice
 CRgbKeyboard
 CArmorIDs.RocketBoots
 CTileID.Sets.RoomNeeds
 CItemID.Sets.SandgunAmmoInfoUsed in SandgunAmmoProjectileData.
 CSandMound
 CSandstorm
 CWorldGen.SavedOreTiers
 CPlayer.SavedPlayerDataWithAnnoyingRules
 CMain.SceneArea
 CSceneEffectLoader< T >.SceneEffectInstance
 CSceneMetrics
 CSceneMetricsScanSettings
 CScreenDarkness
 CScreenEffectInitializer
 CScreenObstruction
 CSearches
 CSearchFilterModesExtensions
 CNPCUtils.SearchFilters
 CSegmentInforReport
 CSegments
 CSettingsForCharacterPreview.SelectionBasedSettings
 CSelectionHolder< TCycleType >
 CSelectionHolder< IPlayerResourcesDisplaySet >
 CSelectionHolder< MinimapFrame >
 CPlayer.SelectionRadial
 CServerJoinRequestsManager
 CSetFactory
 CPlayer.SetMatchRequest
 CAmmoID.Sets
 CArmorIDs.Back.Sets
 CArmorIDs.Balloon.Sets
 CArmorIDs.Beard.Sets
 CArmorIDs.Body.Sets
 CArmorIDs.Face.Sets
 CArmorIDs.Front.Sets
 CArmorIDs.HandOff.Sets
 CArmorIDs.HandOn.Sets
 CArmorIDs.Head.Sets
 CArmorIDs.Legs.Sets
 CArmorIDs.Shoe.Sets
 CArmorIDs.Waist.Sets
 CArmorIDs.Wing.Sets
 CBuffID.Sets
 CCaptureBiome.Sets
 CGoreID.Sets
 CHairID.Sets
 CItemID.Sets
 CMountID.Sets
 CNPCHeadID.Sets
 CNPCID.Sets
 CPlayerVariantID.Sets
 CPrefixID.Sets
 CProjectileID.Sets
 CTileID.Sets
 CWallID.Sets
 CCaptureInterface.Settings
 CPlayer.Settings
 CWiresUI.Settings
 CSettingsForCharacterPreview
 CPlayerInput.SettingsForUI
 CShaderData
 CShapeData
 CShapes
 CArmorIDs.Shield
 CShimmerHelper
 CShimmerTransforms
 CShimmerUnstuckHelper
 CArmorIDs.Shoe
 CShopHelper
 CShoppingSettings
 CUILinkPointNavigator.Shortcuts
 CGolfHelper.ShotStrength
 CSign
 CSimulationConditionSetters
 CSimulatorInfo
 CSmartCursorHelper
 CPlayer.SmartCursorSettings
 CSmartInteractScanSettings
 CSmartInteractSystem
 CSmartSelectGamepadPointer
 CSnapPoint
 CSocialAPI
 CSocialBrowserModule
 CUILinksInitializer.SomeVarsForUILinkers
 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.
 CBestiaryDatabaseNPCsPopulator.CommonTags.SpawnConditions
 CAchievementHelperID.Special
 CSpelunkerProjectileHelper
 CWorldGen.Spread
 CSpriteDrawBuffer
 CSpriteFrame
 CSpriteRenderTargetHelper
 CActions.Sprites
 CSpriteViewMatrix
 CStar
 CStardewValleyAnimation
 CStatInheritanceData
 CStatModifier
 CStatusID
 CSteamedWraps
 CSteamP2PReader
 CSteamP2PWriter
 CWorkshopHelper.UGCBased.SteamWorkshopItem
 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.
 CStyleDimensionRepresents a dimension, either an absolute pixel size, a percentage of the available space, or a combination of both. For example uiElement.Width.Set(200, 0f); sets an absolute width of 200 pixels. uiElement.Width.Set(0, 0.5f); on the otherhand sets a width of 50% of the parent's avaiable UIElement.GetInnerDimensions. Both values can be set for more complex logic. uiElement.Width.Set(-10, 0.5f); sets the width to 50% of the available space minus 10 pixels. This would leave room between 2 buttons filling a space. uiElement.Height.Set(-100, 1f); would fill the full height of the space but leave 100 pixels at the bottom empty.
 CCaptureBiome.Styles
 CSurfaceBackgroundID
 CCommonConditions.SurfaceBiome
 CSurfaceMap
 CSynchronizationContext
 CSystemLoaderThis is where all ModSystem hooks are gathered and called.
 CTagIO
 CTagPrinter
 CTagSerializable
 CNPCUtils.TargetSearchResults
 CTeleportationStyleID
 CTeleportHelpers
 CSourceManagement.TemplateParameters
 CWorldGen.TenthAnniversaryWorldInfo
 CTestHighFPSIssues
 CMain.TextDisplayCache
 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
 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.
 CTileColorCache
 CTileID.Sets.TileCutIgnore
 CTileDataPacking
 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
 CWorldGen.TileMergeCullCache
 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
 CWorldFile.TilePacker
 CTilePaintSystemV2
 CTilePlacementHooksModule
 CTileReachCheckSettings
 CTileRestingInfoHolds data required for offsetting an entity when it rests on a tile (sitting/sleeping).
 CTileDrawSorter.TileTexPoint
 CTilePaintSystemV2.TileVariationkey
 CTimeLogger
 CBestiaryDatabaseNPCsPopulator.CommonTags.SpawnConditions.Times
 CTitleLinkButton
 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< T >
 CTorchID
 CTownNPCProfiles
 CTownRoomManager
 CTrackedProjectileReference
 CTrackGenerator
 CItemTrader.TradeOption
 CPlayerDrawLayer.Transformation
 CTilePaintSystemV2.TreeFoliageVariantKey
 CTreePaintingSettings
 CTreePaintSystemData
 CTreeTopID
 CTreeTopsInfo
 CTriggerNames
 CTriggersPack
 CTriggersSet
 CTypeConverter
 CWorkshopHelper.UGCBased
 CUIAlign
 CUIAsyncList< ModDownloadItem, UIModDownloadItem >
 CUIAutoScaleTextTextPanel< LocalizedText >
 CUIAutoScaleTextTextPanel< string >
 CUIBrowserFilterToggle< ModBrowserSortMode >
 CUIBrowserFilterToggle< ModBrowserTimePeriod >
 CUIBrowserFilterToggle< ModSideFilter >
 CUIBrowserFilterToggle< SearchFilter >
 CUIBrowserFilterToggle< UpdateFilter >
 CUICommon
 CUIEvent
 CUIGamepadHelper
 CUILinkPage
 CUILinkPoint
 CUILinkPointNavigator
 CUILinksInitializer
 CUIModsFilterResults
 CUITextPanel< FuncStringWrapper >
 CUITextPanel< LocalizedText >
 CUITextPanel< object >
 CUITextPanel< string >
 CCommonConditions.UndergroundBiome
 CAmbientSkyDrawCache.UnderworldCache
 CUnifiedRandom
 CUpdateFilterModesExtensions
 CUploadFile
 CUPnPA simple UPnP library See: https://github.com/Rartrin/UwUPnP
 CUserInterface
 CUserJoinToServerRequest
 CUtils
 CNPC.NPCNameFakeLanguageCategoryPassthrough.V
 CItemVariants.VariantEntry
 CVertexColors
 CVertexStrip
 CVertical64BitStrips
 CVirtualCamera
 CBestiaryDatabaseNPCsPopulator.CommonTags.SpawnConditions.Visuals
 CVoidLensHelper
 CArmorIDs.Waist
 CWallDrawing
 CWallID
 CWallLoaderThis serves as the central class from which wall-related functions are supported and carried out.
 CTilePaintSystemV2.WallVariationKey
 CWaterfallManager.WaterfallData
 CWaterfallID
 CWaterfallManager
 CWaterStyleID
 CCaptureBiome.Sets.WaterStyles
 CCommonConditions.Weather
 CWeGameFriendListInfo
 CWeGameHelper
 CWeGameP2PReader
 CWeGameP2PWriter
 CWeightedRandom< T >
 CWellFedHelper
 CWhipSettings
 CWindGrid
 CWindowStateController
 CArmorIDs.Wing
 CWingStatsStores the stats and settings for a ID.ArmorIDs.Wing equip.
 CWingStatsInitializer
 CWiresUI.WiresRadial
 CWiresUI
 CWiring
 CWorkshopBranding
 CWorkshopHelper
 CWorkshopItemPublishSettings
 CWorkshopPublishingIndicator
 CTerraria.Social.Base.WorkshopSocialModule
 CWorkshopTagOption
 CBackupIO.WorldResponsible for archiving world backups
 CWorldFile
 CWorldGen
 CWorldGenerator
 CWorldGenRange
 CWorldMap
 CWorldSections
 CWorldGen.WorldSize
 CWorldUIAnchor
 CWorldUtils
 CSteamP2PWriter.WriteInformation
 CWeGameP2PWriter.WriteInformation
 CWscJsonObject
 CBinaryReader
 CBinaryWriter
 Cbool?
 CBuilderToggle
 CIDisposable
 CLoader
 CPlayerDrawLayer