Classes and their Members

Some are listed in a pseudo MSON format (the values are missing unless there is consistent default), and some are just copy/pasted from the C# code.

Spawner

// Spawner.MonBehaviour
{
	npcTemplate :  // NPCTemplate
	npcTemplateName :  // System.String  //deprecated
	spawnDelaySeconds :  // System.Single
	maxSpawns : 1 // System.Int32
	// If true, then will not respawn if they die during level.
	bDontRespawn : true  // System.Boolean  
	isPersistentCorpse : false // System.Boolean

	//public enum CorpsePose {
	random, faceUp, faceDown, 
	//	named, // corpseAnimName contains the string name of the animation
	//}
	corpsePose :  // Spawner+CorpsePose
	corpseAnimName :  // System.String

	combatGroup :  // System.String
	sleepRadius :  // System.Single
	doNotSleepManage :  // System.Boolean
	// Is this is a dumm spawner for a CNPC that was booted from the party and is now an NPC.	isExCNPC : false // System.Boolean

	//these values override the corresponding NPCTemplate values.
	overrideDisplayName :  // System.String
	overridePortrait :  // UnityEngine.Texture2D
	overrideFaction :  // Faction
	overrideDropSet :  // DropSet
	overrideCastId :  // System.String
	overrideCombatTextName :  // System.String
	overrideEquipment :  // ItemTemplate_Equipment[]
	overrideEquipmentNames :  // System.String[]
	//deprecated.  ref by name and get from AnimSetManager now.
	overrideAnimSets :  // System.Collections.Generic.List`1[AnimSet]
	overrideAnimSetNames :  // System.Collections.Generic.List`1[System.String]
	overrideDescriptorRadius :  // System.Single
	overrideInvestigatesSounds :  // System.Boolean
	overrideLooksAtSounds :  // System.Boolean
	overrideHeadLook :  // System.Boolean
	overridePerceptionFOV :  // System.Int32
	overridePerceptionRadius :  // System.Int32
	overrideSleepRadius :  // System.Single
	overrideFactionAnger :  // System.Int32
	noCombatAnim :  // System.Boolean
	overrideSkinColor :  // MobTemplate+SkinColor
	SkillExamineDifficulty :  // SkillLevelCategory
	SkillExamineDifficultyOffset :  // System.Int32
	overrideScaleSize :  // System.Single
	overrideMobSize :  // MobTemplate+MobSize
	overrideXp :  // System.Int32

	spawnAnimation :  // System.String
	spawnerObject :  // SpawnerObject


	//true to use corresponding override value.
	bOverrideDisplayName :  // System.Boolean
	bOverridePortrait :  // System.Boolean
	bOverrideFaction :  // System.Boolean
	bOverrideDropSet :  // System.Boolean
	bOverrideCastId :  // System.Boolean
	bOverrideWeapon :  // System.Boolean
	bOverrideWeaponSecondary :  // System.Boolean
	bOverrideAmmo :  // System.Boolean
	bOverrideAmmoSecondary :  // System.Boolean
	bOverrideCombatTextName :  // System.Boolean
	bOverrideEquipment :  // System.Boolean
	bOverrideAnimSets :  // System.Boolean
	bModifyDeathWSUpdate :  // System.Boolean
	bOverrideDescriptorRadius :  // System.Boolean
	bOverrideInvestigatesSounds :  // System.Boolean
	bOverrideLooksAtSounds :  // System.Boolean
	bOverridePerceptionFOV :  // System.Boolean
	bOverridePerceptionRadius :  // System.Boolean
	bOverrideSleepRadius :  // System.Boolean
	bOverrideSkinColor :  // System.Boolean
	bOverrideSkillExamineDifficulty :  // System.Boolean
	bOverrideScaleSize :  // System.Boolean
	bOverrideMobSize :  // System.Boolean
	bOverrideFactionAnger :  // System.Boolean
	bOverrideHeadLook :  // System.Boolean
	bOverrideXp :  // System.Boolean

	bSetSpawnAnimation :  // System.Boolean
	bSetSpawnerObject :  // System.Boolean

	//advanced combat behaviour options
	hasTacticalPosition :  // System.Boolean
	tacticalPositions :  // UnityEngine.Transform[]
	hasCombatWaitTrigger :  // System.Boolean
	waitToJoinEndsCombat :  // System.Boolean
	combatWaitTriggers :  // CombatWaitTrigger[]

	bUseUniversalDeath : false // System.Boolean
	universalDeathName :  // System.String

	//override Death World State Update
	additionalOnDeathWSUpdate :  // System.String[]
	ignoreOnDeathWSUpdate :  // System.String[]

	enableOnCNPCJoin : false // System.Boolean

	drama :  // Drama

	descriptorRadius :  // System.Single
	idleAI :  // System.Type

	// Below inherited from MonoBehaviour 
	useGUILayout :  // System.Boolean
	enabled :  // System.Boolean
	tag :  // System.String
	name :  // System.String
	hideFlags :  // UnityEngine.HideFlags
}

DropSet

//A DropSet is a list of Drops.
//An NPCTemplate points to a DropSet so the NPC can drop loot.  The DropSet can be overridden on the spawner also.
//If the percent of all drops in the set doesn't add up to 100%, the remaining % is the chance to drop nothing.
// DropSet
{
	drops :  // System.Collections.Generic.List`1[Drop]
	associatedSkill :  // DropSet+DropSkills
	name :  // System.String
	hideFlags :  // UnityEngine.HideFlags
}

Drop

public class Drop
{
	public List dropItems = new List();
	public int dropClass = 0;

	public int minRolls = 1;
	public int maxRolls = 1;

	public int chanceToDrop = 100;
	public int minSkill = 0;

	private const int SKILL_BONUS = 2;  //bonus given for a high skill.
}

DropItem

public class DropItem
{
	public enum DropType
	{
		//try to make this extensible, in case they want other things. current equipment, for example.
		ITEM,
		DS,	// DropSet (why didn’t you just call this "DROPSET"?)
	}

	//percent chance to drop.
	public int percent = 100;
	
	//item to drop.
	public DropType myType = DropType.ITEM;
	public ItemTemplate item;
	public DropSet dropset;
	
	//number of items to drop.
	public int min = 1;
	public int max = 1;
}

ItemTemplate_WeaponAoe

// ItemTemplate_WeaponAoe
{
        //action point cost to attack with this weapon.
        actionPointCost: // System.Int32
    
        //the default miss cone angle size
        baseMissAngle : // = 5 // System.Int32
    
        //the AOE radius of the blast
        aoeRadius : // System.Int32
    
        // 1 - 5 for drama destroyable objects
        explosiveLevel : // System.Int32
        
        //can the blast hit the mob that attacked - turn off for slicerdicer aoe, etc
        hitsSelf : // System.Boolean
        
        //instant death if it hits yourself
        killsSelf : // System.Boolean
    
        ignoreVisibility : // System.Boolean
        
        //for the hobo throwable bottles - the arc hits the target in the chest, not an aoe splash on the ground    
        hitsTargetDirectly : // System.Boolean


prefab : // UnityEngine.GameObject weaponType : // WeaponType animType : // WeaponAnimType inventoryWeaponType : // InventoryWeaponType damageType : // DamageType skill : // System.String attackRange : // System.Int32 optimalRange : // System.Int32 pointBlankRange : // System.Int32 hitChanceAtPointBlankRange : // System.Int32 hitChancePastOptimalRange : // System.Int32 minDamage : // System.Int32 maxDamage : // System.Int32 criticalHitBonusChance : // System.Int32 criticalHitDamageMultiplier : // System.Single armorPenetration : // System.Int32 noiseRadius : // System.Int32 statusEffect : // StatusEffect[] percentToApplyStatusEffect : // System.Int32 modClass : // WeaponModClass stripDropSet : // DropSet missSFX : // MissSFXType alwaysHits : // System.Boolean knockback : // System.Boolean knockbackDistance : // System.Single bloodyMessChance : // System.Single knockDown : // System.Boolean shake : // WeaponShake IsNotLootable : // System.Boolean slot : // EquipmentSlot upgradeTier : // System.Int32 stats : // SerializableDictionary_StringInt requiredAttributeValues : // SerializableDictionary_StringInt validMods : // System.Collections.Generic.List`1[ModSlot] displayName : // System.String grammaticalName : // System.String tier : // System.Int32 description : // System.String price : // System.Int32 atlas : // UIAtlas spriteName : // System.String weight : // System.Single wsUByteToIncrement : // System.String partyNoDrop : // System.Boolean gridWidth : // System.Int32 gridHeight : // System.Int32 maxStackSize : // System.Int32 rare : // System.Boolean junk : // System.Boolean tags : // System.Collections.Generic.List`1[System.String] soundCategory : // System.String modioUpdateStatus : // ModIO+UpdateStatus useGUILayout : // System.Boolean enabled : // System.Boolean tag : // System.String name : // System.String hideFlags : // UnityEngine.HideFlags
}

ItemTemplate_WeaponRanged

// ItemTemplate_WeaponRanged 
{
	clipSize :  // System.Int32
	actionPointCostToReload :  // System.Int32
	firingModeInfos :  // ItemTemplate_WeaponRanged+FiringModeInfo[]
	caliber :  // Caliber
	baseMissAngle :  // System.Int32
	delayBetweenBullets :  // System.Single
	bulletSpeed :  // System.Single
	burstingAdditionalMissAngle :  // System.Int32[]
	chanceToJam :  // System.Int32
	actionPointCostToUnjam :  // System.Int32
	prefab :  // UnityEngine.GameObject
	weaponType :  // WeaponType
	animType :  // WeaponAnimType
	inventoryWeaponType :  // InventoryWeaponType
	damageType :  // DamageType
	skill :  // System.String
	attackRange :  // System.Int32
	optimalRange :  // System.Int32
	pointBlankRange :  // System.Int32
	hitChanceAtPointBlankRange :  // System.Int32
	hitChancePastOptimalRange :  // System.Int32
	minDamage :  // System.Int32
	maxDamage :  // System.Int32
	criticalHitBonusChance :  // System.Int32
	criticalHitDamageMultiplier :  // System.Single
	armorPenetration :  // System.Int32
	noiseRadius :  // System.Int32
	statusEffect :  // StatusEffect[]
	percentToApplyStatusEffect :  // System.Int32
	modClass :  // WeaponModClass
	stripDropSet :  // DropSet
	missSFX :  // MissSFXType
	alwaysHits :  // System.Boolean
	knockback :  // System.Boolean
	knockbackDistance :  // System.Single
	bloodyMessChance :  // System.Single
	knockDown :  // System.Boolean
	shake :  // WeaponShake
	IsNotLootable :  // System.Boolean
	slot :  // EquipmentSlot
	upgradeTier :  // System.Int32
	stats :  // SerializableDictionary_StringInt
	requiredAttributeValues :  // SerializableDictionary_StringInt
	validMods :  // System.Collections.Generic.List`1[ModSlot]
	displayName :  // System.String
	grammaticalName :  // System.String
	tier :  // System.Int32
	description :  // System.String
	price :  // System.Int32
	atlas :  // UIAtlas
	spriteName :  // System.String
	weight :  // System.Single
	wsUByteToIncrement :  // System.String
	partyNoDrop :  // System.Boolean
	gridWidth :  // System.Int32
	gridHeight :  // System.Int32
	maxStackSize :  // System.Int32
	rare :  // System.Boolean
	junk :  // System.Boolean
	tags :  // System.Collections.Generic.List`1[System.String]
	soundCategory :  // System.String
	modioUpdateStatus :  // ModIO+UpdateStatus
	useGUILayout :  // System.Boolean
	enabled :  // System.Boolean
	tag :  // System.String
	name :  // System.String
	hideFlags :  // UnityEngine.HideFlags
}

ItemTemplate_WeaponEnergy

ItemTemplate_WeaponEnergy derives from ItemTemplate_WeaponRanged, so it has all the field from ItemTemplate_WeaponRanged plus the ones listed below.
public class ItemTemplate_WeaponEnergy : ItemTemplate_WeaponRanged
{
    
    public float energyPenetratedMultiplier = 0.5f; // damage multiplier if hit penetrates armor (penetration value > armor class)
    public float energySameMultiplier = 1.0f; // damage multiplier if penetration value matches armor class
    public float energyNoPenetrationMultiplier = 2.0f; //damage multiplier if penetration value < armor class
    public int energyLevel = 0; // must match or exceed energyLevel of targets that can be damaged by energy in order to do damage.
}   

JournalEntryTemplate

// JournalEntryTemplate
{
	importance :  // JournalEntryTemplate+Importance
	descriptions :  // System.Collections.Generic.List`1[JournalDescriptorInfo]
	details :  // System.Collections.Generic.List`1[JournalDetailInfo]
	name :  // System.String
	hideFlags :  // UnityEngine.HideFlags
}

NPCTemplate

// NPCTemplate'MobTemplate 
{
		//components share their name with their GameObject.  I need the name of 
	// the NPCTemplate preserved so I can spawn animal followers.
	templateName :  // System.String

	spawnerGuid :  // System.String

	tier : 0 // System.Int32
	descriptionText :  // System.String

	//the Mob model will vary in size by +/- 5%
	//only for random Mob spawns, not named NPCs or robots
	randomizeSize : false // System.Boolean

	aiWeightTemplate :  // AIWeightTemplate
	specialAttacks :  // SpecialAttack[]
	isSynth :  // System.Boolean

		//armor class.
	armor :  // System.Int32
	conductive :  // System.Boolean

		//% chance to hit an enemy.
	chanceToHit : 50 // System.Int32
	//% chance for a critical hit.
	chanceToEvade : 10 // System.Int32

	//% chance for a critical hit.
	chanceToCriticalHit : 10 // System.Int32

	criticalHitDamageMultiplier : 2.0f // System.Single

	maxHP : 5 // System.Single
	walkSpeed : 3 // System.Single
	runSpeed : 5 // System.Single
	//how many squares per Action Point can be moved
	combatSpeed : 2  // System.Single
	perceptionFOV : 20 // System.Int32
	perceptionRadius : 10 // System.Int32
	descriptorRadius : 6.0f // System.Single
	//how much xp is this npc worth?
	xpValue : 1 // System.Int32
	actionPoints : 1 // System.Int32
	combatInitiative : 10 // System.Int32
	combatStartRandomness : 0 // System.Int32
	ignoresCombat : false // System.Boolean
	//0-100 - how much will faction be adjusted if this mob is attacked by a PC
	factionAnger : 0 // System.Int32

	canUseLadders :  // System.Boolean
	expandCanBeHitRange :  // System.Boolean

	//for hostiles only, do they walk towards sounds PCs make
	//set to false for hostile who should not move
	investigatesSounds : false // System.Boolean
	looksAtSounds : false // System.Boolean

	// loot
	dropSet :  // DropSet
	//guaranteed loot - item instances added at run time
	guaranteedDrops :  // System.Collections.Generic.List`1[ItemInstance]
	DontDropWeapon : false // System.Boolean
	SubstituteWeaponDrop : null // ItemTemplate_Weapon


	//if true, use the equipment array to display the model.
	useEquipment :  // System.Boolean
	// = new ItemTemplate_Equipment[System.Enum.GetNames(typeof(EquipmentSlot)).Length];
	equipment :  // ItemTemplate_Equipment[]
	//how many of the projectile AOE weapons this NPC has
	aoeAmmo :  // System.Int32

	//skill helpers
	SkillExamineDifficulty : None // SkillLevelCategory
	SkillExamineDifficultyOffset : 0 // System.Int32

	//if this is a Synth, what level is needed to turn this to the player's side during combat
	synthTechSkillDifficulty : VeryEasy // SkillLevelCategory
	synthTechSkillOffset : 0 // System.Int32

	animalWhispererSkillDifficulty : VeryEasy // SkillLevelCategory
	animalWhispererSkillOffset : 0 // System.Int32

	explodeOnDeathAoeTemplate :  // ItemTemplate_WeaponAoe
	noCorpse : false // System.Boolean

	// names of WSInt WorldStates to increment on death
	UpdateWSOnDeath :  // System.String[]

	// True if can convert to CNPC to join party
	isCNPC :  // System.Boolean
	cnpcCharismaRequirement : 0 // System.Int32

	animalFollowerEffect :  // StatusEffect

	// Precision attacks allowed on this NPC
	allowPrecisionArm : true // System.Boolean
	allowPrecisionHead : true // System.Boolean
	allowPrecisionTorso : true // System.Boolean
	allowPrecisionLegs : true // System.Boolean

	// Overrides to default body part names (e.g. for dog says "forelimb" instead of "arm")
	armLabelOverride :  // System.String
	headLabelOverride :  // System.String
	torsoLabelOverride :  // System.String
	legsLabelOverride :  // System.String

// Below are inherited from MobTemplate

	// public enum MobType { Human, Animal, Synth, Mutant, Cat}
	
	// public enum SkinColor { Caucasian, Native, Black, Asian, Albino, SicklyYellow, Mutant, VeryBlack }
	
	// public enum MobSize { Normal, Small, VerySmall, Large, VeryLarge, Huge}
	
	//public class MobImmunities
	//{
	//	public MobTemplate.MobType myType;
	//	public StatusEffectChanger mySEC;
	//	public StatusEffect.EffectClass[] classImmunities;
	//}	
				
	// This is still used but is set by init code based on CastID string.
	castId :  // Cast+ID
	// string version of enum
	CastID :  // System.String
	faction :  // Faction
	portraitTexture :  // UnityEngine.Texture2D

	idleAI :  // System.String
	combatAI :  // System.String
	size :  // MobTemplate+MobSize

	// e.g. "<@>meggamaggot{N}" (Note: the {N} indicates grammatical gender (N, F, or M)
	displayName :  // System.String
	// True if displayName is proper name (e.g. Joe Smith). 
	// Auto-set based on case of gender tag ( "{m}"->false, "{M}"->true).
	isProperName :  // System.Boolean
	// For number/gender agreement, with number variants separated by '/'. 
	// Example for larva: "<@>(larva/larvae)"
	grammaticalName :  // System.String
	// defaults to name of the template. Can be overriden by spawner.
	combatTextName :  // System.String

	//character prefab has the character's mesh and some common components, like a NavMeshAgent.
	characterPrefab :  // UnityEngine.GameObject

	mobType :  // MobTemplate+MobType
	skinColor :  // MobTemplate+SkinColor


	//if any AnimSets are specified, the animation component on the character prefab
	//  will be rebuilt using the animations in the AnimSets.
	//AnimSets are applied in order, so an AnimSet at the end of the list will override
	//  an AnimSet at the beginning of the list if they have animations with the same name.	

	//deprecated.  now loaded from AnimSetManager by name.
	animSets :  // System.Collections.Generic.List`1[AnimSet]
	animSetNames :  // System.Collections.Generic.List`1[System.String]

	statusEffects :  // System.Collections.Generic.List`1[StatusEffect]

	// The SFX we try to play are based on the soundCategoryName, usually done by 
	//  appending an appropriate suffix to the soundCategoryName.
	// The SFX name is inside the controller, but DOES NOT HAVE TO MATCH anything
	//  about the controller. 
	// By convention, the AudioController for a specfic mob will be based on this name, 
	//  so "AudioController_soundCategoryName" will be spawned, 
	// and we'll play "soundCategoryName_SFXName."  Ta-daaaaaaaaa!
	soundCategoryName : "" // System.String
	//will cause a looping SFX to play while the mob moves
	useLoopingMoveSFX : false // System.Boolean
	//will cause a looping SFX to play while the mob is alive
	useLoopingAliveSFX : false // System.Boolean

	useHeadLook : true // System.Boolean
	noMeshCollider : false // System.Boolean
	audioControllerNames :  // System.String[]
	audioControllerPartyBarkAZ :  // System.String
	audioControllerPartyBarkCA :  // System.String
	loadedAudioControllers :  // System.Collections.Generic.List`1[UnityEngine.Object]
	mySEC :  // StatusEffectChanger

	// Below inherited from MonoBehaviour 
	useGUILayout :  // System.Boolean
	enabled :  // System.Boolean
	tag :  // System.String
 
	// Below inherited from UnityEngine.Object
	name :  // System.String
	hideFlags :  // UnityEngine.HideFlags
}

AIWeightTemplate

public class AIWeightTemplate:MonoBehaviour
{
	public int hitPercent = 0; //desired hit percent to apply to targeting & movement

	//AI Weights	
	//each weight should be assigned a value from 0 to 1000 
	//on how much preference there should be to do that action
	public int targetInHitPercent;
 	public int targetKillable; //Prefers killable targets - killable is a single weapon hit will kill the target
	public int targetLowCon; //Prefers low HP targets - low is defined as < 30% of CON remaining
	public int targetHighCon; //Prefers high HP targets - high is defined as > 80% of CON remaining
	public int targetMelee; //Prefer targets in melee range
	public int targetRanged; //Prefer targets out of melee range
	public int targetOptimalRange; //Prefer target in optimal range
	public int targetSwarmed; //Prefer a target being swarmed
	public int targetUntargeted; //Prefer a target not being targeted
	public int targetAttackers; //Prefer a target attacking me
	public int targetInCover; //Prefer targets in cover
	public int targetNoCover; //Prefer targets out of cover
	public int targetLastTarget; //prefer the target that was targeted last
	public int targetDamageDoneMultiplier = 0; //multiply the damage done to me by the damage done as a % of my total health and add to a target's score
	public int targetArmorPenetratable = 0; //prefer target if my weapon can penetrate that armor
	public int targetArmorConductive = 0; //prefer target if it's armor is conductive - use for energy weapons characters
	public int encroachDistance = 0;

	public float targetHateMultiplier; //multiply how much we hate the target by this amount
	
	//target's weapon type preferences
	public int targetWeaponLongRanged; //Long range weaponed targets
	public int targetWeaponMelee; //Melee weaponed targets
	public int targetWeaponAOE; //AOE weaponed targets
	
	//aoe stuff
	public int minAoeTargets = 2; //the minimum number of targets to hit to consider using an AOE attack
	public float aoeReductionMultiplier = 0.5f; //number to mulitply all target's scores inside attack radius
	public bool willAoeFriendly = false; //if false any aoe attack that would also hit a friendly is ignored, if true the friendly score is just reduced by the aoefriendly penalty
	public int aoeFriendlyPenalty = 0;
	public int aoeCooldown; //how many turns between using AOE weapons
	public int missRadius = 6;

	//Weight Helpers
	public float targetDistancePenalty; //multiplier to reduce from target score for each hex distance away
	public int targetNotReachablePenalty; //number reduce to target score by if we can't attack this turn
	public int lowConPercent; //and what percentage does the AI consider itself Low Con
	public int swarmMax; //Swarm max - How many targets max should be on a target before the AI considers the swarm full.
	//public int preferedHitChance; //int as the prefered hit percentage for this mob when using moveToPreferedHitChance
	public float actionPointsTargetReductionMultiplier; //AP used to attack reduction multiplier - reduce the weight of an action by AP * this number it would take to attack
	//public float actionPointsMoveReductionMultiplier; //AP used to move reduction multiplier - reduce the weight of an action by AP * this number it would take to move to do it
	public int randomRange; //range of the Random Amount added to each weight calculation.  0-randomRange will be added to each weighted total

	//public int lowConRushTarget; //If my HP low - rush target
	//public int lowConFindCover; //If my HP low - find cover

	//For Movement Scoring
	//positive pretend weights
	public int moveCooldown;
	public int positionRandomness;
	public int positionCanBackstabEnemy; //Get in position to use backstab
	public int positionInCoverFromEnemy = 1;
	public int positionCanShootAnyEnemy = 0;
	public int positionCanShootEnemy = 1;
	public int positionCanAttackPreferedTarget = 1;
	public int positionIsHigherThanEnemy = 1;
	public int positionIsMuchHigherThanEnemy = 1;
	public int positionTacticalPosition = 0; //Weight for the position the designer can specify as a tactical position the NPC will try to reach at the start of combat
	public float positionSpecialAttackMultiplier = 0; //multiply this to each positions special attack score

	//negatives
	public int positionCantAttack = 0;
	public int positionCoverAcrossFromEnemy = 0;
	public float positionByMelee = 1;
	public int positionEnemyCanAttackMe = 1;
	public int positionIsLowerThanEnemy = 1;
	public int positionIsMuchLowerThanEnemy = 1;
	public int positionNotEnoughAPToAttack = 1;
	public int positionFleePointBlank = 0;
	public int positionHazard = 0;
	public float moveCostMultiplier = 1;
	public bool aggressivePositioning = false; //Only evaluate positions between (by distance) current position and target
	
	public int initialSpecialAttackCooldown = 0; //affects all special attack cooldowns
	public int initialAoeCooldown = 0;
	public int initialMoveCooldown = 0;

	//fire mode
	public bool willShotgunFriendly = false;
	public int fireModePercent = 0; //0-100 chance to use +1 fire mode if the cooldown is up
	public int fireModeCooldown = 0; //how many turns between the AI choosing to use a higher fire mode
	public int initialFireModeCooldown = 0;

	public bool canMove = true;
	public bool canAmbush = true;
	public bool fleeFromHazards = false;
	public bool canCrouch = false;
	
	//number of squares a Mob will move in combat so the nearest sound "search" position is visible to them
	public int investigateDistance = 0;

	//the negative score added to the current square each turn to help make him move
	public int currentPositionDecay = 0;
	
}

StatusEffect

// StatusEffect'UnityEngine.ScriptableObject'UnityEngine.Object
{
	////Broad category describing the "class" of the effect. Used by some FieldMedic Items
	//public enum EffectClass
	//{
	//	Unique,
	//	Venom,
	//	Disease,
	//	BrokenBone,
	//	Withdrawl,
	//	Bleeding,
	//	Burn,
	//	InternalInjury,
	//	Radiation,
	//	PrecisionHead,
	//	PrecisionTorso,
	//	PrecisionArm,
	//	PrecisionLegs
	//};
	
	
	//is this a good thing for the Mob?
	positiveEffect : false // System.Boolean
	//Can this status effect be on a mob more than once?
	stackable : false // System.Boolean
	//is this a timed effect or will it stay on until removed manually?
	expires : true // System.Boolean
	// is a combat-turns effect? Counts down turnsRemaining and also expires when combat ends
	// If true then duration and secondStarted are unused, and turnsRemaining is used instead.
	expiresByTurns : false // System.Boolean
	//how many seconds does this status effect last
	duration :  // System.Int32
	secondStarted :  // System.UInt64
	turnsRemaining :  // System.Int32
	customAddMessage :  // System.String
	customRemovalMessage :  // System.String
	customAfflictedMessage :  // System.String
	surgeonCanRemove :  // System.Boolean
	minSurgeonLevel :  // System.Int32
	cannotBeRemoved :  // System.Boolean
	effectClass :  // StatusEffect+EffectClass
	classTier :  // System.Int32

		// Display Variables
	displayName :  // System.String
	robotDisplayName :  // System.String
	animalDisplayName :  // System.String
	atlas :  // UIAtlas
	spriteName :  // System.String
	description :  // System.String

	pfxPrefabs :  // UnityEngine.GameObject[]
	pfxObjects :  // System.Collections.Generic.List`1[UnityEngine.GameObject]
	pfxRootBone :  // System.String

		//hitpoints are separate from stat changes
	usePctHitpoint : false // System.Boolean
	hitpointChange :  // System.Int32
	pctHitPointChange :  // System.Single
	secondsPerHitpointChange :  // System.Int32
	nextHitpointChange :  // System.UInt64

	elapsedTime :  // System.UInt64
	lastUpdate :  // System.UInt64
	hitChance :  // System.Int32
	causesNpcRandomness :  // System.Boolean
	aiPsychoticChance :  // System.Int32
	damageMultiplier :  // System.Int32
// 	public enum StatusEffectedAnimation
//	{
//		None,
//		Arms_T1,		//shot in the arm, can't aim
//		Arms_T2,		//shot in the arm, can't aim
//		Legs_T1, 		//shot in the leg, should be limping
//		Legs_T2, 		//shot in the leg, should be limping
//		Legs_T3, 		//shot in the leg, knockdown state
//		Head_T1,		//shot in the head - dizzy
//		Head_T2,		//shot in the head - more dizzy
/		Head_T3			//shot in the head - crazy
//	}
	animationModifier :  // MobAnimManager2+StatusEffectedAnimation
	explodeWeapon :  // System.Boolean

	//public class StatEffected
	//{
	//	public string statName; //stat or attribute
	//	public int amount;
	//}

	statEffects :  // StatusEffect+StatEffected[]
	readyToDisplay :  // System.Boolean

	// Below inherited from UnityEngine.Object
	name :  // System.String
	hideFlags :  // UnityEngine.HideFlags
}

VendorSet

// VendorSet'UnityEngine.ScriptableObject'UnityEngine.Object
{
	// name for Worldstate that tracks if this has already been used to initialize an inventory.
	uniqueName :  // System.String
	//overrides the currencyInitial value on the vendor's inventory
	currencyInitial : 1000 // System.Int32
	// scale applied to value of things Trader buys (on top of his priceScaleTable).
	buyScale : 0.5f // System.Single
	// scale applied to value of things Trader sells (on top of his priceScaleTable).
	sellScale : 1.0f // System.Single
	// adjustment to prices at which vendor sells items or item types (by template).
	priceMultipliers :  // PriceScale[]
	skus :  // System.Collections.Generic.List`1[Sku]
	// Below inherited from UnityEngine.Object
	name :  // System.String
	hideFlags :  // UnityEngine.HideFlags
}

PriceScale

// PriceScale 
{
	// Set itemTemplate to match a category. Any item that can be cast to this template
// will have its base value scaled (i.e. ItemTemplate_Ammo matches all ammo). 
	itemTemplate : // ItemTemplate;	
	// enum TemplateScope { ItemCategory, SpecificItem }
	scope : ItemCategory // PriceScale+TemplateScope  		
	// scale of 1.0 is base price. 1.5 is 150% of base price, .25 is 25% of base price, etc.
	scale : 1.0f // System.Single			
}

Sku

// Sku
{
	//item to drop.
	itemTemplate : // ItemTemplate 
	
	//Number in stock at start of game
	count: 1    // System.Int32

	// if items should replenish on return to the vendor after leaving the scene.
    isRestockable : false   // System.Boolean
	
	// Number of days that must pass before another unit is added to the vendors stock
	DaysPerRestock :  0.00001f  // System.Single	
	
	// Range of items on hand at time player visits the level
	minReplenish : 1    // System.Int32
	maxReplenish : 1    // System.Int32

	// Whether this item is unlocked by charisma.
	isCharismaItem : false  // System.Boolean
}


Next: Downloads

ESRBESRB