Skip to content

Character Files

devyndamonster edited this page Oct 3, 2020 · 28 revisions

Making A Character File

A character consists of two things at minimum:

  1. A picture named "thumb.png", which is the picture displayed in the TNH menu
  2. A text file named "character.txt", which holds all of the information about the character

Any custom loot pool icons will also go in the character file.

Below is a list of properties that a character can have. Additionally, a "character_template.txt" file can be found in the custom character folder, which can be useful for getting started creating a character.

Basic Character Info

DisplayName=

Type: String

Sets what the characters name is in the TNH menu


Group=

Type: Int

Sets what category the character shows up in, with 0 being daring defaults


StartingTokens=

Type: Int

Sets the number of tokens a character starts with


ForceAllAgentWeapons=

Type: Bool

Unkown what this does, but is normally set to false


Description=

Type: String

This is the text that appears below the characters name in the TNH menu


UsesPurchasePriceIncrement=

Type: Bool

If true, then when the player purchases an item it costs one more token to purchase that item again


Has_Weapon_Primary=

Type: Bool

If true, the player will spawn with an item chosen from the Weapon_Primary{ } object


Has_Weapon_Secondary=

Type: Bool

If true, the player will spawn with an item chosen from the Weapon_Secondary{ } object


Has_Weapon_Tertiary=

Type: Bool

If true, the player will spawn with an item chosen from the Weapon_Tertiary{ } object


Has_Item_Primary=

Type: Bool

If true, the player will spawn with an item chosen from the Item_Primary{ } object


Has_Item_Secondary=

Type: Bool

If true, the player will spawn with an item chosen from the Item_Secondary{ } object


Has_Item_Tertiary=

Type: Bool

If true, the player will spawn with an item chosen from the Item_Tertiary{ } object


Has_Item_Shield=

Type: Bool

If true, the player will spawn with an item chosen from the Item_Shield{ } object

Starting Loadouts

Starting loadouts are objects which decide what weapons and items the player starts with. You can have the following starting loadout objects:

  1. Weapon_Primary{ }
  2. Weapon_Secondary{ }
  3. Weapon_Tertiary{ }
  4. Item_Primary{ }
  5. Item_Secondary{ }
  6. Item_Tertiary{ }
  7. Item_Shield{ }

Below are the properties of a starting loadout:


ListOverride[]

Type: List<FVRObject>

This is currently unused (for now), but must still be declared in the character file


Num_Mags_SL_Clips=

Type: Int

Sets the number of magazines or speed loaders the weapon starts with


Num_Rounds=

Type: Int

Sets the number of bullets a weapon starts with (possibly unused if spawned weapon takes magazines)


TableDefs[ ]

Type: List<ObjectTableDef>

A list of object tables which are used to determine what equipment could possibly spawn

Equipment Pools

Equipment pools are objects which contain an ObjectTableDef for spawnable weapons, and also has the properties which decide purchase cost and the levels when the pool appears in the TNH item spawner. Each character has one EquipmentPool object, which has a list of pool entries inside it.

The equipment pool only has one property on it's own, shown below:


Entries[ ]

Type: List<PoolEntry>

This is a list of all possible pools that can show up in the TNH item spawner

Each pool entry has the following properties:


Type=

Type: String (Enum)

This determines where a pool will show up in the item spawner. Firearms show up on the left-most side, Equipment in the middle, and Consumables on the right

Options:

  • Firearm
  • Equipment
  • Consumable

TokenCost=

Type: Int

Cost of purchasing an item from this pool at the TNH item spawner


TokenCost_Limited=

Type: Int

Cost of purchasing an item from this pool at the TNH item spawner (When playing on limited ammo mode)


MinLevelAppears=

Type: Int

The level that this pool can start appearing at. TNH starts at level 0, so if set to 0, this pool will appear on the first level


MaxLevelAppears=

Type: Int

The highest level that this pool can appear at


Rarity=

Type: Int

Sets how likely this pool is to appear. Default is usually 1, and higher values represent rarer pools


TableDef{ }

Type: ObjectTableDef

The object table which determines what kinds of weapons can spawn from this pool entry

Object Tables

Object tables are essentially loot pools, which can either be automatically generated based on set parameters, or manually created using IDOverrides. Below is a list of properties for the ObjectTableDef object


Icon=

Type: String

This is the name of the icon (in your character file) that will be displayed in the TNH item spawner


Category=

Type: String (Enum)

Set this to whatever category of item you want to spawn in this pool

Options:

  • Uncategorized
  • Firearm
  • Magazine
  • Clip
  • Cartridge
  • Attachment
  • SpeedLoader
  • Thrown
  • MeleeWeapon
  • Explosive
  • Powerup
  • Target
  • Tool
  • Firework
  • Ornament

MinAmmoCapacity=

Type: Int

This is the minimum ammo capacity of weapons that will be added to the table

NOTE: If you are spawning something other than weapons in this pool, set this to -1


MaxAmmoCapacity=

Type: Int

This is the maximum ammo capacity of weapons that will be added to the table

NOTE: If you are spawning something other than weapons in this pool, set this to -1


IsBlanked=

Type: Bool

Unknown what this does, but set to false by default


SpawnsInSmallCase=

Type: Bool

If true, items from this object pool will spawn in a small case when purchased at the TNH item spawner


SpawnsInLargeCase=

Type: Bool

If true, items from this object pool will spawn in a large case when purchased at the TNH item spawner


UseIDListOverride=

Type: Bool

If true, this object pool will use items from the IDOverride list instead of automatically generating


IDOverride=

Type: List<String>

A list of ObjectIDs that will be added to this pool. ObjectIDs can be found in the "ObjectIDs.txt" file generated in the CustomCharacter folder


Eras=

Type: List<String>

Set this to the eras of weaponry you want to spawn in this pool

Options:

  • None
  • Colonial
  • WildWest
  • TurnOfTheCentury
  • WW1
  • WW2
  • PostWar
  • Modern
  • Futuristic
  • Medieval

Sets=

Type: List<String>

Set this to the object set of weaponry you want to spawn in this pool

Options:

  • Real
  • GroundedFictional
  • SciFiFictional
  • Meme
  • MF
  • Holiday
  • TNH

Sizes=

Type: List<String>

Set this to the sizes of weaponry you want to spawn in this pool

Options:

  • None
  • Pocket
  • Pistol
  • Compact
  • Carbine
  • FullSize
  • Bulky
  • Oversize

Actions=

Type: List<String>

Set this to the action types on the weaponry you want to spawn in this pool

Options:

  • None
  • BreakAction
  • BoltAction
  • Revolver
  • PumpAction
  • LeverAction
  • Automatic
  • RollingBlock
  • OpenBreach
  • Preloaded
  • SingleActionRevolver

Modes=

Type: List<String>

Set this to the firing modes on the type of weaponry you want to spawn in this pool

Options:

  • None
  • SemiAuto
  • Burst
  • FullAuto
  • SingleFire

ExcludeModes=

Type: List<String>

Set this to the firing modes you don't want on the weaponry you want to spawn in this pool

Options:

  • None
  • SemiAuto
  • Burst
  • FullAuto
  • SingleFire

Feedoptions=

Type: List<String>

Set this to the feed options of weaponry you want to spawn in this pool

Options:

  • None
  • BreachLoad
  • InternalMag
  • BoxMag
  • StripperClip
  • EnblocClip

MountsAvailable=

Type: List<String>

Set this to the mounting types on the weaponry you want to spawn in this pool

Options:

  • None
  • Picatinny
  • Russian
  • Muzzle
  • Stock
  • Bespoke

RoundPowers=

Type: List<String>

Set this to the round powers of the weaponry you want to spawn in this pool

Options:

  • None
  • Tiny
  • Pistol
  • Shotgun
  • Intermediate
  • FullPower
  • AntiMaterial
  • Ordnance
  • Exotic
  • Fire

Features=

Type: List<String>

Set this to the types of attachment features for the attachments you want to spawn in this pool

NOTE: I'm pretty sure this is only used if the pool is for attachments, not weapons

Options:

  • None
  • IronSight
  • Magnification
  • Reflex
  • Suppression
  • Stock
  • Laser
  • Illumination
  • Grip
  • Decoration
  • RecoilMitigation
  • BarrelExtension
  • Adapter
  • Bayonet
  • ProjectileWeapon
  • Bipod

MeleeStyles=

Type: List<String>

Set this to the types of melee styles for melee weapons you want to spawn in this pool

Options:

  • None
  • Tactical
  • Tool
  • Improvised
  • Medieval
  • Shield
  • PowerTool

MeleeHandedness=

Type: List<String>

Set this to the handedness (number of hands used to hold) for melee weapons you want to spawn in this pool

Options:

  • None
  • OneHanded
  • TwoHanded

MountTypes=

Type: List<String>

Set this to the types of mounts that can be attached to for attachments you want to spawn in this pool

Options:

  • None
  • Picatinny
  • Russian
  • Muzzle
  • Stock
  • Bespoke

PowerupTypes=

Type: List<String>

Set this to the types of powerups you want to spawn in this pool

Options:

  • None
  • Health
  • QuadDamage
  • InfiniteAmmo
  • Invicibility
  • GhostMode
  • FarOutMeat
  • MuscleMeat
  • HomeTown
  • SnakeEye
  • Blort
  • Regen
  • Cyclops
  • WheredIGo
  • ChillOut

ThrownTypes=

Type: List<String>

Set this to the types of throwables you want to spawn in this pool

Options:

  • None
  • ManualFuse
  • Pinned
  • Strange

ThrownDamageTypes=

Type: List<String>

Set this to the damage types of throwables you want to spawn in this pool

Options:

  • None
  • Kinetic
  • Explosive
  • Fire
  • Utility

Objs[]

Type: List<FVRObject>

Unused, but still must be declared in the character file

Clone this wiki locally