Common Problems
Symptom first, then cause. Console messages are quoted as CCDS emits them, so you can search for the exact text.
First: turn the logs on
Most CCDS problems announce themselves. Informational logs are gated:
enableDebugMessages ships off, so CCDS.DebugLog output is silent. Set it to true in CCDS_Settings.asset (Build tab → Developer Settings) while diagnosing, and turn it back off before you ship. Warnings and errors always emit regardless.
Then run Tools → BoneCracker Games → CCDS → Open Validation Panel on the affected scene. It names missing references directly and resolves a large share of setup problems on its own.
Setup and import
| Symptom | Cause | Fix |
|---|---|---|
| Compile errors right after import | Input System, URP or TMP missing | Run the Setup Wizard's Dependencies step |
| Pink materials everywhere | Project is not URP | Create the project from the Universal 3D template, or convert |
CCDS_Settings asset not found in Resources folder! |
The asset was moved or deleted | It must be at Assets/CCDS/Resources/CCDS_Settings.asset |
CCDS_PlayerVehicles asset not found in Resources folder! |
Same | Must be at Assets/CCDS/Resources/CCDS_PlayerVehicles.asset |
| Missing TMP text everywhere | TMP Essentials not imported | Window → TextMeshPro → Import TMP Essential Resources |
| Tools → BoneCracker Games → CCDS → Documentation does nothing | The HTML mirror was moved or deleted | It must be at Assets/CCDS/Documentation/HTML/00_Index.html |
Both Resources.Load lookups are by name. Moving either asset out of a Resources folder breaks it even though the file still exists.
Play mode
| Symptom | Cause |
|---|---|
playerVehicles array is null or empty! Cannot spawn vehicle. |
No vehicles in CCDS_PlayerVehicles.asset |
No valid vehicles found in playerVehicles array! |
Entries exist but every vehicle field is empty |
Cannot spawn player - no valid vehicle prefab! |
Selected index points at an empty entry |
CCDS_PlayerVehicles.Instance is null! Cannot validate vehicle index. |
Asset missing from Resources |
| Vehicle falls through the world | No ground collider — ACCDS_Vehicle.OnEnable raycasts downward |
| Vehicle spawns but will not move | Engine off, or CCDS holds a control lock |
All spawn points occupied within … |
Too few CCDS_SpawnPoint objects for the player count |
Failed to spawn player in fallback! |
Spawn resolution exhausted every fallback |
| No HUD | gameplayUIManager unassigned in CCDS_Settings |
| Minimap blank | City geometry not on CCDS_Map, or the minimap camera is missing |
startEngineAtStart (shipped true) controls whether the engine runs at gameplay start. If you disabled it, the player must press I.
Vehicle reset
| Symptom | Cause |
|---|---|
R does nothing |
Above 25 absolute speed — reset is ignored |
Can't reset vehicle during a pursuit! |
Reset is blocked while busting. Working as designed. |
CCDS Player: Cannot hard reset because no spawn points are configured. |
No CCDS_SpawnPoint in the scene |
CCDS Player: Cannot hard reset because GameplayManager is missing. |
Managers not created in this scene |
CCDS Player: Hard reset spawn point occupied within … |
Another vehicle is sitting on the spawn |
Missions
| Symptom | Cause |
|---|---|
CreateMission: CCDS_MissionObjectiveManager not found in scene! |
Run Create Scene Managers → Gameplay |
CreateMissionPosition: CCDS_MissionObjectivePositionsManager not found in scene! |
Same |
| Marker prompt shows, key does nothing | Marker's mission field is empty |
| Mission starts with no objectives | No CCDS_MissionObjectivePosition, or created without the manager |
AI pursuit prefab not assigned to mission … |
Assign pursuitVehicle in CCDS_Settings or on the mission |
AI component couldn't found on … |
Mission AI vehicle is missing RCCP_AI |
| AI cars never move | NavMesh not baked, or baked before the geometry changed |
| Objectives in the wrong order | Order comes from the positions list |
| Marker stuck on cooldown | markerCooldown is high, or completion was never raised |
Multiplayer
| Symptom | Cause |
|---|---|
Not connected to Photon. Cannot create room. |
Call ConnectToPhoton() and wait for OnNetworkConnected |
CCDS Network Manager: Authentication failed |
App ID wrong or missing |
CCDS Network Manager: Server is full |
Free-tier CCU limit reached |
CCDS Network Manager: Connection timeout - attempting reconnection |
Network or region problem — try ConnectToRegion |
Already in a room. Leave current room before … |
Call LeaveRoom() first |
Room name is required for JoinOrCreateRoom. |
Pass a non-empty name |
Cannot spawn player - not in multiplayer room. |
Spawning before OnJoinedRoom |
Cannot spawn player - vehicle prefab is null. |
Selected vehicle entry is empty |
Multiplayer panel not found in scene! Falling back to singleplayer. |
CCDS_UI_MultiplayerPanel missing from the scene |
| Photon callbacks never fire | OnEnable/OnDisable not public override calling base |
| Remote vehicles stutter | Send/serialization rates too low, or RCCP_PhotonSync missing |
| Remote vehicles do not move at all | PhotonView present, RCCP_PhotonSync absent |
| Traffic differs between clients | A client is spawning traffic; only the master may |
| Non-participants see mission AI | Mission AI being spawned over the network instead of locally |
| Both local test clients share one save | Enable useProcessIdForSaveFile while testing (it ships off) |
RPC_RegisterPlayer failed - CCDS_Player component not found … |
Vehicle prefab is missing CCDS_Player |
The callback one is worth repeating. Making a class inherit MonoBehaviourPunCallbacks without public override void OnEnable() { base.OnEnable(); … } silently hides the base method. No Photon callback fires, the compiler gives at most a warning, and every symptom points somewhere else.
Chat
| Symptom | Cause |
|---|---|
Cannot send message - not in multiplayer mode |
Single-player |
Cannot send message - not in a room |
Connected but not in a room |
Cannot send empty message |
Empty input |
| Chat never visible | Visibility mode is Hidden — CCDS.SetChatVisibilityMode(...) |
Save data
| Symptom | Cause |
|---|---|
| Progress lost between launches | useProcessIdForSaveFile left on in a release build |
| Progress lost after an update | Product name changed, so persistentDataPath changed |
Failed to deserialize save data, attempting backup. |
Corrupt save; CCDS restores the backup automatically |
ApplyLoadedSettings called but saveData is null! |
saveData read before EnsureInitialized() |
| Purchases forgotten | Duplicate or changed saveKey |
| Settings changes do not stick | CCDS_Settings default* fields only seed new saves |
Clear the save with Tools → BoneCracker Games → CCDS → Delete Save Data, or CCDS.ResetGame().
Customization
| Symptom | Cause |
|---|---|
| Customization UI does nothing | No RCCP_Customizer on the vehicle |
| Upgrade bought, nothing changes | Missing RCCP_VehicleUpgrade_* component |
| Price differs from the cart item | Expected — upgrade price scales with level |
Button or levelText is null in UpgradeLevel getter! |
Unassigned references on CCDS_UI_PurchaseUpgrade |
| Prefab values keep reverting | Sync All Vehicles rewrites them from the roster |
| Wrong wheels applied | CCDS_ChangableWheels.wheels was reordered |
Build
| Symptom | Cause |
|---|---|
| Black screen on device | Scene missing from the scene list, or wrong index |
| Colours washed out on mobile | Colour space mismatch |
| No touch controls on mobile | Build target never switched, so mobileControllerEnabled was never set |
| Debug panel in a shipped build | enableDebugPanel left on after development |
| Build larger than expected | overrideLightmapTextures off, or the prototype scene included |
Still stuck
Email bonecrackergames@gmail.com with:
- Unity version and target platform.
- CCDS version (
CCDS_Version.version— currently1.6). - Single-player or multiplayer.
- The full Console error text.
- Reproduction steps from a fresh project if you can.