Configs
Path to files
Path to ScriptableObjects: Assets/StaticAssets/Configs Path to .cs files: Assets/Scripts/Runtime/Configs
1. CoreConfig
CoreConfig is a Zenject ScriptableObjectInstaller that: Stores references to all game configuration assets (e.g., ProjectileConfig, PlayerConfig, etc.); Registers them in the DI container at game startup; Makes them available via Dependency Injection in any class.
It is registered in the prefab: ProjectContext (path: Assets/Resources/ProjectContext) Path to .cs files: Assets/Scripts/Runtime/Installer

2. DefaultPlayerProgress
currentLevelIndex
int
The index of the level the player starts on by default.
currencySettings
List<CurrencySettings>
Defines the amount and types of currency the player has.
partSettings
List<PartTypeSettings>
Levels of the player's parts:
-1 = part is missing,
0 = level 1, 1 = level 2, and so on.
incomeLevel
int
Total number of income upgrades purchased. Used to calculate the cost of the next upgrade.
addPartlevel
int
Total number of parts purchased. Used to calculate the cost of the next part.
vibrate
bool
Whether vibration is enabled.
musicVolume
float
Music volume level.
sfxVolume
float
Sound effects volume level.
3. EnemyConfig
EnemyConfig is a ScriptableObject used configuration data for an enemy, including health, damage, rewards, movement parameters, attack distances, patrol zones, and physical attributes.
baseHealth
int
Base health value of the enemy.
healthGrowthPerLevel
float
How much health increases per level.
baseDamage
int
Base damage dealt by the enemy when attacking.
baseReward
int
Reward granted for killing the enemy.
rewardGrowthPerLevel
float
How much the reward increases per level.
speed
float
Linear movement speed when running.
rotationSpeed
float
Interpolation speed for rotation (not actual angular velocity).
walkingSpeed
float
Linear movement speed when walking.
walkingThreshold
float
Threshold for triggering the Walking animation in the BlendThree node.
runningThreshold
float
Threshold for triggering the ZombieRunning animation in the BlendThree node.
accelerationMultiplier
float
Linear interpolation speed between Walking and ZombieRunning animations.
attackDistance
float
Attack distance, i.e. the maximum range at which the enemy can start attacking the target (usually the player).
triggerDistance
float
Detection range (in meters) at which the enemy starts chasing the player (transitions to the Chase state).
chaseStopDistance
float
Maximum distance at which the enemy stops chasing the target if the target is also behind them.
wanderArrivalDistance
float
Arrival threshold distance, determining how close the enemy must get to a destination point (destinationPoint) to be considered “arrived” and transition, for example, to the Idle state.
behindAttackDistance
float
Maximum distance at which the enemy can perform a backstab or rear attack on the player.
backAngleThreshold
float
Dot product threshold (range: -1 to 1) that defines how far behind the enemy must be to be considered "behind" the player.
Note: This is not an angle in degrees, but a dot product value.
idleDuration
Vector2
Randomized duration the enemy stays in the Idle state.
wanderZoneRadius
float
Radius (in meters) of the wandering area in which the enemy is allowed to move randomly around its spawn point.
pushRadius
float
Radius (in meters) within which the enemy can be pushed.
postDeathPushForce
float
Force applied to push the enemy when they are killed (e.g., by an explosion or strong hit).
deathPushForce
float
Force applied to the enemy’s body after death, for visual effect or physics reaction.



The values of the WalkingThreshold and RunningThreshold fields must match the values used in BlendTree.
4. FragmentExplosionConfig
When the player dies, their model (car or character) explodes into fragments, and the ScriptableObject defines the rules for where and how these fragments fly.
grayMaterial
Material
You can set a grayMaterial to make the fragments look special.
angleInDegrees, minSpawnAngle, maxSpawnAngle, firstRadius, secondRadius
float
Explosion zone.
rotationCount, trajectoryPoints, timeStep
int, int, float
Motion dynamics.
Physics: indirectly, through radii, angles, and force, you can control the "chaos" of the explosion.
5. GameplayAssetsConfig
GameplayAssetsConfig is a ScriptableObject storage containing references to prefabs and resources used in gameplay. Essentially, it is an "address book" of objects that can be accessed via Dependency Injection (in your case, Zenject). What it contains:
POOL CONTEXT (objects that are frequently spawned and are better taken from a pool). It stores both prefabs and the recommended initial pool size.
SCENE CONTEXT (unique elements that usually exist as single instances): things loaded on the scene such as the loading screen, player upgrades, and audio mixer.
6. LevelList
LevelList stores a list of all levels (List<Level> levels).
Allows you to get the number of levels (
Count).Retrieves a specific level by index (
GetLevel) with boundary checking.
7. PartUpgradeLevelConfig
PartUpgradeLevelConfig stores a list of PartConfig, where each part type (PartType) has a set of possible levels. Each level (PartLevelUpConfig) specifies:
partLevel
int
Level of the part.
upgradeLevel
int
Player level at which this part upgrade becomes available.
8. PlayerConfig
PlayerConfig is a ScriptableObject player configuration — a container with settings that describe the main characteristics of the character.
baseHealth
int
Pplayer's base health.
healthGrowthPerLevel
int
How much health increases per level
lowHealthThreshold
float
Ppercentage of max HP at which the player is considered in the "red zone."
startSpeed
float
Sstarting speed (e.g., at the beginning of a level).
acceleration
float
Defines how quickly the current speed (speed) approaches the target speed (targetSpeed).
baseMoveSpeed
float
The base (initial) movement speed of the player at level zero (or without any upgrades). It serves as the starting point for calculating the final speed.
speedGrowthPerLevel
float
Determines how much the speed increases with each new upgrade level.
duration (type:PunchConfig)
float
How long the punch lasts.
vibrato (type:PunchConfig)
int
Vibration frequency.
elasticity (type:PunchConfig)
float
Movement elasticity.
punches (type:PunchConfig)
List<Vector3>
Set of displacement vectors (trajectories), from which one is randomly selected.
9. ProjectileConfig
ProjectileConfig is a ScriptableObject config for projectiles that defines their behavior and damage.
flyTime
float
Lifetime of the projectile (in seconds).
flySpeed
float
Flight speed.
sphereCastRadius
float
Radius used for collision detection (SphereCast).
baseDamage
int
Base damage at level 1.
damageGrowthPerLevel
float
Damage increase per level.
10. RewardConfig
RewardConfig is a ScriptableObject for configuring player rewards, linking reward levels with specific sprites and messages.
rewardSpritesByLevel
List<RewardLevel>
List of rewards by level. Each item is a RewardLevel, which specifies.
rewardLevel (type:RewardLevel)
int
Reward level number.
message (type:RewardLevel)
string
Message shown to the player in the Level Complete window.
reward (type:RewardLevel)
RewardLevel:List<Sprite>
List of sprites displayed as the reward.
11. RocketConfig
RocketConfig is a ScriptableObject for configuring a rocket that flies along an arc and deals damage to enemies.
upDistance
float
Ascent amplitude.
upTime
float
Ascent duration.
arcHeight
float
Height of the flight arc.
flyTime
float
Flight time to the target.
baseReload
int
Rocket reload time.
baseRadius
float
Damage/check radius.
baseDamage
int
Base damage.
damageGrowthPerLevel
float
Damage increase per level.
detectionCooldown
float
Frequency of target search.
detectableDistance
float
Detection range.
detectableTargets
LayerMask
Types of objects to consider for detection.
12. TentacleConfig
TentacleConfig is a ScriptableObject config for the behavior of a "tentacle" or a similar attacking object. It defines parameters for movement, attack, target detection, and health.
rotationSpeed
float
Rotation speed of the tentacle towards the player.
triggerDistance
float
Radius of the sphere / detection range of the tentacle’s targets.
attackInterval
float
Interval between attacks.
detectableTargets
LayerMask
Set of layers (LayerMask) that the tentacle can detect within the radius for attacking.
sphereCastRadius
float
Radius of the sphere for collision checking.
sphereCastDistance
float
Length of the sphere used to search for targets.
baseHealth
int
Base health of the tentacle.
healthGrowthPerLevel
float
Health growth per level.
baseDamage
int
Base damage dealt by the object.
13. TurretConfig
TurretConfig is a ScriptableObject config for a turret that defines its behavior: rotation, shooting, range, and ammo.
rotationSensitivity
float
Coefficient controlling rotation sensitivity (scales the rotation speed relative to mouse movement deltaX).
minRotationAngle
float
Lower bound of the allowed rotation angle (prevents the part from rotating too far in one direction).
maxRotationAngle
float
Upper bound of the allowed rotation angle (prevents rotation too far in the other direction).
inverseRotation
bool
Boolean flag that defines the rotation direction (inverts X-axis input — e.g., left/right are swapped).
baseFireInterval
float
Base interval between shots
fireIntervalGrowthPerLevel
float
Decrease in interval as level increases. Used to calculate the turret’s firing rate.
laserMaxDistance
float
Parameter that limits the rendering distance of the laser.
baseBulletAmount
int
Initial bullet count.
bulletAmountMultiplier
float
Multiplier for calculating ammo based on level.
lowBulletsThreshold
float
Coefficient (from 0 to 1) that defines the low-ammo threshold (activates the indicator to warn the player).
14. TutorialConfig
TutorialConfig is a ScriptableObject config for the tutorial that stores a sequence or list of part types (PartType) used to teach the player.
partTypes
List<PartType>
List of part types (PartType) for the tutorial.
15. WindowAssetConfig
WindowAssetsConfig is a ScriptableObject for configuring UI windows in the game.
WindowAssets
List<WindowAsset>
List of WindowAsset objects, each linking a window type to its prefab.
Last updated