FAQ
Licensing and bundled assets
Do I need to buy Realistic Car Controller Pro separately?
No. RCCP V3.3.0 is bundled at Assets/CCDS/Realistic Car Controller Pro/. Importing a separate copy risks conflicting with it.
Do I need to buy Realistic Traffic Controller separately?
No. RTC V2.0 is bundled at Assets/CCDS/Realistic Traffic Controller/.
Do I need Photon PUN2? Only for multiplayer, and the free tier is enough to develop and test. Without PUN2, the networked code compiles out and CCDS runs single-player.
Can I ship a commercial game with CCDS? Yes, under the Unity Asset Store licence you purchased. You may not resell CCDS itself, or redistribute the bundled RCCP and RTC as standalone assets.
Can I use the bundled vehicles in another project? Within the terms of your CCDS licence. They are part of this package, not a separate licence grant.
Versions and compatibility
Which Unity version? Minimum 6000.5, enforced by the Setup Wizard. CCDS 1.6 is developed and tested on 6000.6.0f1.
Does it work with the Built-in render pipeline or HDRP? No. CCDS is URP only (17.6.0), and ships URP materials, renderer assets and quality tiers.
Which input system?
The new Input System (1.20.0). Vehicle bindings live in RCCP_InputActions.inputactions.
Is CCDS still on the old input manager?
Driving input is on the Input System via RCCP. Some CCDS gameplay keys — the mission confirm key, R reset, F12, F11, Tab — read the legacy Input class directly. Both work in the shipped configuration.
Which platforms? Windows, macOS, Linux, Android, iOS and WebGL. Colour space is set per platform automatically. Console targets are recognised by the pre-build checker but require your own platform SDK and licence.
Getting started
Where do I start?
Install and First Drive, then open CCDS_MainMenu_City.
How do I open a demo scene? Tools → BoneCracker Games → CCDS → Welcome Window → Demo Scenes.
Which key starts a mission?
Y, from CCDS_Settings.missionConfirmKey. Rebind it there if you like — the marker prompt follows the setting. Avoid F and R, which RCCP already uses for NOS and record.
How do I get back to the garage? Drive into a garage marker and stay for 3 seconds. There is no key.
How do I open the debug panel?
F12, after enabling enableDebugPanel in CCDS_Settings (Build tab → Developer Settings) — it ships off. The separate debug console is F11.
Vehicles
How do I add my own car? Add Your Own Vehicle — RCCP setup, CCDS components, then the roster.
How many vehicles ship with CCDS? Ten player vehicles and five AI vehicles.
Why do my prefab tweaks keep reverting?
Sync All Vehicles writes torque, speed, handling and the three upgrade efficiencies from CCDS_PlayerVehicles.asset into the prefab and saves it. Change those six values in the roster, not on the prefab.
Can I reorder the vehicle list? Not safely after release. The array index is the persistent vehicle ID in the save file. Append instead.
How do I give the player a car for free?
Set its price to 0, or call CCDS.UnlockVehicle(index).
Missions
How many mission types are there?
Four usable: Race, Pursuit, Checkpoint, Trailblazer. CCDS_MissionObjective_FreeRoam_MP exists as a placeholder and is not exposed by CCDS.CreateMission.
Are missions single-player or multiplayer?
Both. All four derive from ACCDS_MultiplayerMissionBase; a mission with one participant is single-player.
Why do other players not see my mission's AI cars? By design. Each participant activates mission AI locally when the mission GameObject enables, so non-participants never spawn it. Do not replace this with an RPC.
Can I write my own mission type?
Yes — derive from ACCDS_MultiplayerMissionBase and implement ICCDS_MultiplayerMission. Register it with CCDS_MissionObjectiveManager and point a marker at it.
Multiplayer
How many players per room?
maxPlayersPerRoom on CCDS_NetworkManager, range 2–20, default 8.
Is there a dedicated server? No. Photon PUN2 is peer-hosted with a master client holding authority.
Can I test two clients on one PC?
Yes. Enable useProcessIdForSaveFile (Build tab → Developer Settings) so each instance gets its own save file — then turn it back off before release. It ships off.
Why does my networked script never receive Photon callbacks?
Its OnEnable/OnDisable are not public override calling base.OnEnable()/base.OnDisable(). PUN registers callback targets there.
Do I have to use Photon?
CCDS's networking is built on PUN2 throughout. Another transport means replacing CCDS_NetworkManager, the ACCDS_PunComponent base, and every PhotonView-based sync path. It is a substantial rewrite, not a swap.
Save data
Where is the save file?
JSON in Application.persistentDataPath, which varies by platform and product name.
How do I wipe it?
Tools → BoneCracker Games → CCDS → Delete Save Data, or CCDS.ResetGame() at runtime.
Can I add my own fields?
Yes, extend CCDS_SaveData. Give every new field a [Tooltip], and call CCDS_SaveGameManager.EnsureInitialized() before reading saveData.
Why did players lose progress after an update?
Either the product name changed — which changes persistentDataPath — or useProcessIdForSaveFile was left enabled.
Customization
What can players customize?
Paint, wheels, spoilers, decals, neons, and engine / handling / speed upgrades. CartItemType has all eight values.
How many upgrade levels?
maximumLevel on CCDS_UI_PurchaseUpgrade, default 5.
Why is the upgrade price not the number I typed?
Upgrade price scales with level: Mathf.InverseLerp(0, 6, level + 1) * (basePrice * 1.5f). The cart item's price is the base figure.
Are purchases deducted automatically?
No. PurchaseItem and PurchaseUpgrade record ownership and save. Charge with CCDS.ChangeMoney(-price) yourself, after checking GetMoney().
Editing CCDS
Can I edit RCCP or RTC source? You can, but a vendor upgrade overwrites those folders wholesale and your edits are lost. Extend from your own scripts instead.
Can I change script execution order?
No — CCDS_ScriptExecutionOrderSetup reapplies it on every editor load. Change it there if you must.
Should I use Debug.Log?
Use CCDS.DebugLog / DebugLogWarning / DebugLogError. They respect enableDebugMessages and feed the in-game console through CCDS_Events.OnDebugLog.
How do I hook my UI into CCDS state?
Subscribe to CCDS_Events in OnEnable and unsubscribe in OnDisable. See the Events Catalog.
Can I add my own validation checks?
Yes. Implement ICCDS_CheckEditorError and return your messages from CheckErrors(). The Validation Panel picks them up automatically.
Performance
What costs the most? Traffic vehicle count, then draw distance, then realtime lights and shadows. Traffic density is already player-facing and is the most effective dial.
Why is the demo set so low?
The shipped graphics defaults target low-end hardware. Raise the default* fields in CCDS_Settings.asset for a desktop title.
Does it run on mobile? Yes, with the mobile guidance in Performance applied — Gamma colour space, lower traffic, shadows off, lightmap overrides on.
Support
Where do I get help? bonecrackergames@gmail.com. Include your Unity version, platform, single-player vs multiplayer, and the full Console error text.
Where is the documentation in the editor?
Tools → BoneCracker Games → CCDS → Documentation, which opens these pages from Assets/CCDS/Documentation/HTML in your browser.