Component Reference
Every CCDS runtime component, its Add Component path, and what it needs.
CCDS components live in namespace BoneCrackerGames.CCDS. The tables list their Add Component → BoneCracker Games → CCDS → paths where defined; networking support components are described separately below.
Naming conventions
| Prefix / suffix | Meaning |
|---|---|
CCDS_ |
Concrete class |
ACCDS_ |
Abstract base |
ICCDS_ |
Interface |
_MP |
Multiplayer mission subclass |
*_Editor |
Custom inspector |
Base classes
MonoBehaviour
├── ACCDS_Component [SelectionBase] — caches the scene manager
│ ├── ACCDS_Vehicle [DefaultExecutionOrder(10)] — health, damage, control lock
│ └── CCDS_Singleton<T> thread-safe generic singleton
├── ACCDS_Manager minimal base for managers
├── ACCDS_PunComponent MonoBehaviour locally; MonoBehaviourPunCallbacks with BCG_CCDS_PUN
└── ACCDS_Mission SDK-independent mission base
└── ACCDS_MultiplayerMissionBase
Interfaces:
| Interface | Contract |
|---|---|
ICCDS_CheckEditorError |
string[] CheckErrors() — picked up by the Validation Panel |
ICCDS_MissionNetworkHandler |
Mission networking |
ICCDS_MultiplayerMission |
Multiplayer mission |
Implement ICCDS_CheckEditorError on your own components and the Validation Panel reports them alongside CCDS's.
ACCDS_PunComponent retains public virtual void OnEnable() / OnDisable() hooks without PUN. Derived components should use public override and call the base implementation in both SDK states. PhotonViewComp exists only under BCG_CCDS_PUN; guard SDK-specific code with that symbol. Neither this base nor ACCDS_Mission requires an authored PhotonView.
ACCDS_Vehicle
The base for every CCDS vehicle. Beyond component caching it provides:
| Member | Purpose |
|---|---|
health |
[Range(0,100)] |
damageMP |
[Min(0)] damage multiplier |
finished |
Mission completion flag |
IsAlive |
Getter |
Finished(), Wrecked() |
State helpers |
LockControl(), UnlockControl(), SetControlWithLock(bool) |
Control-lock surface |
ControlLockedByCCDS |
Whether CCDS holds authority |
skipVelocityResetOnEnable |
Preserve velocity across enable cycles during single-player → multiplayer |
autoDisable |
Deactivate in Awake for scene-placed dormant vehicles |
OnEnable raycasts down from the first wheel and snaps the vehicle to the ground, resetting velocities unless skipVelocityResetOnEnable is set.
Optional networking
| Type | Purpose |
|---|---|
CCDS_NetworkBinding |
Persistent SDK-independent data for one runtime view: scene ID, view settings and ordered observed component references |
CCDS_NetworkSceneBootstrap |
Prepares bindings across the scene before consumers initialize, including inactive objects, when the PUN integration is compiled |
CCDS_NetworkAvailability |
Static capability checks: IsInstalled, IsConfigured, IsInRoom, ShouldStartOnline(bool); reading them does not connect |
During Play Mode with BCG_CCDS_PUN, CCDS generates PhotonView components from bindings. Without PUN, the same bindings, missions, vehicles and UI component types remain available for local gameplay. CCDS_NetworkBinding.GeneratedView is null when no view has been generated; IsPrepared and Origin describe runtime preparation.
Prefab bindings use sceneId = 0. In a saved authoring scene, Tools → BoneCracker Games → CCDS → Multiplayer Setup → Register Active Scene and Assign IDs records the scene, assigns IDs and adds the bootstrap when bindings need one. This changes the scene without saving it automatically. See scene registration.
The dependency bootstrap owns BCG_CCDS_PUN and enables it only after detecting a complete supported SDK on disk. Keep the binding data when removing or reinstalling the optional SDK; do not replace it with authored PhotonViews.
Managers
| Component | Menu path (after BoneCracker Games/CCDS/) |
Role |
|---|---|---|
CCDS_GameplayManager |
Managers/CCDS Gameplay Manager |
Game state, player reference |
CCDS_NetworkManager |
Managers/CCDS Network Manager |
Photon connection, rooms, spawning |
CCDS_SceneManager |
Managers/CCDS Scene Manager |
Scene-level references, levelType |
CCDS_MainMenuManager |
Managers/CCDS Main Menu Manager |
Menu flow |
CCDS_MissionObjectiveManager |
Managers/CCDS Mission Objective Manager |
Mission registration |
CCDS_MissionObjectivePositionsManager |
Managers/CCDS MissionObjective Positions Manager |
Objective positions |
CCDS_MarkerManager |
Managers/CCDS Marker Manager |
Marker spawning |
CCDS_CopsManager |
Managers/CCDS Cop Manager |
Police AI |
CCDS_MinimapManager |
Managers/CCDS Minimap Manager |
Minimap |
CCDS_SoundtrackManager |
Managers/CCDS Soundtrack Manager |
Music |
CCDS_ChatManager |
Managers/CCDS Chat Manager |
Multiplayer chat |
CCDS_SaveGameManager |
Managers/CCDS Save Game Manager |
Save and load |
CCDS_TutorialManager |
Managers/CCDS Tutorial Manager |
Tutorial dispatch |
Create them with Tools → BoneCracker Games → CCDS → Create Scene Managers →, not by hand.
Player and AI
| Component | Menu path | Requires |
|---|---|---|
CCDS_Player |
Player/CCDS Player |
RCCP_CarController; binding and vehicle sync for optional multiplayer |
CCDS_AutoHandbrake |
Player/CCDS Auto Handbrake |
RCCP_CarController |
CCDS_AI_Cop |
AI/CCDS AI Cop |
RCCP_CarController, RCCP_AI |
CCDS_AI_CopPhotonSync |
AI/CCDS AI Cop Photon Sync |
CCDS_AI_Cop; binding-generated view when PUN is compiled |
Add these with the vehicle setup prompt — it also creates the binding and stores ordered observer references, with or without PUN installed. See Add Your Own Vehicle.
Cameras
| Component | Menu path | Role |
|---|---|---|
CCDS_Camera |
Cameras/CCDS Camera Gameplay |
Gameplay camera |
CCDS_Camera_Orbit |
Cameras/CCDS Camera Orbit |
Main menu orbit camera |
CCDS_Camera_Enhanced |
Cameras/CCDS Camera Enhanced |
Extended gameplay camera |
CCDS_Minimap_Camera |
Cameras/CCDS Minimap Camera |
Orthographic minimap camera |
Missions
| Component | Menu path |
|---|---|
CCDS_MissionObjective_Race_MP |
Missions/Multiplayer/CCDS MissionObjective Race MP |
CCDS_MissionObjective_Pursuit_MP |
Missions/Multiplayer/CCDS MissionObjective Pursuit MP |
CCDS_MissionObjective_Checkpoint_MP |
Missions/Multiplayer/CCDS MissionObjective Checkpoint MP |
CCDS_MissionObjective_Trailblazer_MP |
Missions/Multiplayer/CCDS MissionObjective Trailblazer MP |
CCDS_MissionObjective_FreeRoam_MP |
Missions/Multiplayer/CCDS MissionObjective FreeRoam MP |
CCDS_MissionObjective_CheckpointItem_MP |
Missions/Multiplayer/CCDS MissionObjective Checkpoint Item MP |
CCDS_MissionObjective_TrailblazerItem_MP |
Missions/Multiplayer/CCDS MissionObjective Trailblazer Item MP |
CCDS_MissionObjective_Race_Finisher_MP |
Missions/Multiplayer/CCDS MissionObjective Race Finisher MP |
CCDS_MissionObjective_Race_Vehicle_MP |
Missions/Multiplayer/CCDS MissionObjective Race Vehicle MP |
CCDS_MissionObjective_Pursuit_Vehicle_MP |
Missions/Multiplayer/CCDS MissionObjective Pursuit Vehicle MP |
Support components:
| Component | Menu path | Role |
|---|---|---|
CCDS_Marker_MultiplayerMission |
Missions/CCDS Marker Multiplayer Mission |
Mission start marker |
CCDS_Marker_Multiplayer |
Missions/CCDS Marker Multiplayer |
Marker base |
CCDS_Marker_Garage |
Missions/CCDS Marker Garage |
3-second garage trigger |
CCDS_MissionMarkerInputHandler |
Missions/CCDS Mission Marker Input Handler |
Reads the confirm key |
CCDS_MissionObjectivePosition |
Missions/CCDS MissionObjective Position |
An objective location |
CCDS_RacePositioner |
Missions/CCDS Race Positioner |
Race standings |
CCDS_SpawnPoint |
Missions/CCDS Spawn Point |
Spawn location |
UI
| Component | Menu path |
|---|---|
CCDS_UI_Manager |
UI/CCDS UI Gameplay Manager |
CCDS_UI_MainMenuManager |
UI/CCDS UI Main Menu Manager |
CCDS_UI_Options |
UI/CCDS UI Options |
CCDS_UI_Informer |
UI/CCDS UI Informer |
CCDS_UI_NametagManager |
UI/CCDS UI Nametag Manager |
CCDS_UI_MultiplayerIngame |
UI/CCDS UI Multiplayer Ingame |
CCDS_UI_MultiplayerPanel |
UI/CCDS UI Multiplayer Panel |
CCDS_UI_MultiplayerMarker |
UI/CCDS UI Multiplayer Marker |
CCDS_UI_ChatPanel |
UI/CCDS UI Chat Panel |
CCDS_UI_ChatMessage |
UI/CCDS UI Chat Message |
CCDS_UI_PurchaseItem |
UI/CCDS UI Purchase Item |
CCDS_UI_PurchaseUpgrade |
UI/CCDS UI Purchase Upgrade |
CCDS_UI_CartItem |
UI/CCDS UI Cart Item |
CCDS_UI_RemoveItem |
UI/CCDS UI Remove Item |
CCDS_UI_CustomizationBackButton |
UI/CCDS UI Customization Back Button |
CCDS_UI_KeyInvoker |
UI/CCDS UI Key Invoker |
CCDS_UI_Drag |
UI/CCDS UI Drag |
CCDS_TutorialPopup |
UI/CCDS Tutorial Popup |
CCDS_TutorialPopupParent |
Tutorial/CCDS Tutorial Popup Parent |
CCDS_MobileUIInteractionButton |
UI/CCDS Mobile UI Interaction Button |
Animation helpers under UI/Animations/:
CCDS UI Panel Transition · CCDS UI Layout Group Element Popper · CCDS UI Panel Enabler On Text Change · CCDS UI Slider Highlighter · CCDS UI Text Highlighter · CCDS UI Text Popper On Text Change
Replay
| Component | Menu path | Role |
|---|---|---|
CCDS_ReplayManager |
Replay/CCDS Replay Manager |
Scene-wide recorder — auto-creates itself if absent |
CCDS_VehicleReplayRecorder |
Replay/CCDS Vehicle Replay Recorder |
Per-vehicle recorder |
CCDS_ReplayUI |
Replay/CCDS Replay UI |
Playback controls |
States: Neutral, Recording, Playing, Paused, Rewinding.
Default keys on CCDS_ReplayUI: R toggle panel, F5 record, F6 play, F7 pause. R also resets the vehicle in CCDS_Player — rebind one of them if you ship the replay UI.
Debug
| Component | Menu path |
|---|---|
CCDS_DebugPanel |
Debug/CCDS Debug Panel |
CCDS_DebugPanelUI |
Debug/CCDS Debug Panel UI |
CCDS_DebugConsole |
Debug/CCDS Debug Console |
CCDS_DebugModule_Mission |
Debug/CCDS Debug Module - Mission |
CCDS_DebugModule_Multiplayer |
Debug/CCDS Debug Module - Multiplayer |
CCDS_DebugModule_Performance |
Debug/CCDS Debug Module - Performance |
CCDS_DebugModule_Vehicle |
Debug/CCDS Debug Module - Vehicle |
The panel toggles on F12 and requires CCDS_Settings.enableDebugPanel. The console toggles on F11.
Misc
| Component | Menu path | Role |
|---|---|---|
CCDS_ArrowIndicator |
Misc/CCDS Arrow Indicator |
Objective arrow |
CCDS_MinimapItem |
Misc/CCDS Minimap Item |
Minimap icon |
CCDS_HealthBar |
Misc/CCDS Health Bar |
Health bar |
CCDS_EngineSmoke |
Misc/CCDS Engine Smoke |
Damage smoke |
CCDS_CartItem |
Misc/CCDS Cart Item |
Purchasable definition |
CCDS_RepairStation |
Misc/CCDS Repair Station |
Repair trigger |
CCDS_MarkerVisualEffects |
Misc/CCDS Marker Visual Effects |
Marker VFX |
CCDS_LensFlare |
Misc/CCDS Lensflare |
Lens flare |
CCDS_URPLensFlare |
Misc/CCDS URP Lensflare |
URP lens flare |
Testing
Sandbox components for CCDS_Vehicles_Prototype. Not for shipping scenes.
| Component | Menu path |
|---|---|
CCDS_VehiclePrototypeManager |
Testing/Vehicle Prototype Manager |
CCDS_PrototypeRunner |
Testing/Prototype Runner |
CCDS_PrototypeUI |
Testing/Prototype UI |
CCDS_VehicleTelemetry |
Testing/Vehicle Telemetry |
Script execution order
Set automatically by CCDS_ScriptExecutionOrderSetup on every editor load. Do not set it per script — your value is overwritten.
| Order | Scripts |
|---|---|
-110 |
CCDS_SaveGameManager |
-105 |
CCDS_NetworkManager |
-100 |
CCDS_GameplayManager, CCDS_SceneManager, CCDS_MainMenuManager, CCDS_UI_MainMenuManager, CCDS_UI_Manager |
-95 |
CCDS_MinimapManager, CCDS_SoundtrackManager, CCDS_TutorialManager, CCDS_ChatManager |
-94 |
CCDS_TutorialPopup, CCDS_TutorialPopupParent |
-90 |
CCDS_MissionObjectiveManager, CCDS_MissionObjectivePositionsManager, CCDS_MarkerManager, CCDS_CopsManager, CCDS_SpawnPoint |
-89 |
CCDS_MarkerVisualEffects, CCDS_Marker_Garage |
-88 |
All CCDS_MissionObjective_* plus CCDS_RacePositioner |
-85 |
CCDS_UI_NametagManager, CCDS_UI_MultiplayerIngame |
-84 |
CCDS_UI_Options, CCDS_UI_Informer, CCDS_UI_MultiplayerPanel, CCDS_UI_ChatPanel, CCDS_UI_ChatMessage |
-83 |
The six UI animation helpers |
-15 |
CCDS_AutoHandbrake |
+10 |
ACCDS_Vehicle |
+20 |
CCDS_Player, CCDS_AI_Cop |
+21 |
CCDS_AI_CopPhotonSync |
+25 |
CCDS_MissionMarkerInputHandler, CCDS_Marker_Multiplayer, CCDS_Marker_MultiplayerMission |
+30 |
CCDS_Camera, CCDS_Camera_Orbit, CCDS_Camera_Enhanced |
+50 |
CCDS_DebugPanel, CCDS_DebugConsole |
+51 |
CCDS_DebugPanelUI |
+52 |
CCDS_DebugModule and its four modules |
The shape: save data first, then networking, then managers, then vehicles, then cameras, then debug. RCCP and RTC manage their own orders independently.