wrenchConfigs

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

Field
Type
Description

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.

Field
Type
Descriptio

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:

Field
Type
Description

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.

Field
Type
Description

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.

Field
Type
Description

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.

Field
Type
Description

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.

Field
Type
Description

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.

Field
Type
Description

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.

Field
Type
Description

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.

Field
Type
Description

partTypes

List<PartType>

List of part types (PartType) for the tutorial.

15. WindowAssetConfig

WindowAssetsConfig is a ScriptableObject for configuring UI windows in the game.

Field
Type
Description

WindowAssets

List<WindowAsset>

List of WindowAsset objects, each linking a window type to its prefab.

Last updated