Creating Items (Catalogs)

Everything the garage sells comes from catalog assets you author in the Project window - no code, no scene work. This chapter explains the catalog structure, then gives a step-by-step recipe for every content type.

How Content Is Organized

One Catalog Set asset aggregates up to eight per-category catalogs, and is what you assign to the scene (Scene Setup):

RCCPT_CatalogSet  (the one asset your controller references)
 |- Paint Catalog      colors + custom color unlock + finishes
 |- Wheel Catalog      wheel models (indices into RCCP's global wheel list)
 |- Spoiler Catalog    spoilers (indices into the vehicle's spoiler array)
 |- Siren Catalog      sirens (indices into the vehicle's siren array)
 |- Decal Catalog      decal materials (URP/HDRP)
 |- Neon Catalog       neon materials (URP/HDRP)
 |- Upgrade Catalog    price ladders for Engine / Brakes / Handling / Speed
 |- Tuning Catalog     which tuning sliders and color knobs to expose

A Catalog Set - the Coverage block summarises what each slot offers

Leaving a slot empty simply hides that category in the garage. You can share one set across every scene (assign it as the project default on RCCPT_Settings) or use different sets per scene (controller override).

The Catalog Set inspector's Coverage block is the fastest way to confirm your content is wired up: each slot shows a status icon and a summary such as 10 colors + 4 finishes + custom, 8 entries, 4 ladders, or empty — nothing to offer. It states the rule on screen too - an empty slot hides its category and is never an error. Full details: Editor Tools Reference.

All catalog assets are created from the same menu: Assets > Create > BoneCracker Games > RCCP Tuner > ... (Catalog Set, Paint Catalog, Wheel Catalog, Spoiler Catalog, Siren Catalog, Decal Catalog, Neon Catalog, Upgrade Catalog, Tuning Catalog).

Study the demo first. Assets/RCCP Tuner/Demo/Catalogs/ contains a complete, working example of every catalog type. But author your own content in your own assets, not by editing the demo catalogs - the Setup > Build Demo Scene menu regenerates them. It does ask first and lists exactly what it will overwrite (the scene, the demo catalogs, the demo sky/floor materials), but asset writes cannot be undone, so anything you added to those files is gone.

Fields Every Entry Shares

Whatever the category, each entry row has the same base fields:

Field What it does
Id The stable ownership key. Auto-filled when left empty. Never change it after release - players' ownership is stored under it, and renaming orphans their purchases.
Display Name The name shown on the item card.
Icon Optional sprite for the card. Paint and finish entries draw a colour/material swatch instead and never need one. Every other kind (wheels, spoilers, sirens, decals, neons) shows no icon at all when the slot is empty - so fill it, or let the Tuner render one for you (Generating Item Icons From Your Models).
Price The base price. The economy config's global multiplier applies on top (Prices & Economy).
Is Free Free entries are owned from the start - use this for stock/default content.

You will not see Element 0, Element 1, … in these lists. Each row's collapsed header shows its own content - Bayside Blue 2,600 with a colour chip at the end of the row, Stock FREE · stock, Decal 0 500 · Decal_0 - so you can audit a long catalog without expanding anything. Watch for NO MATERIAL: it means that row points at nothing and will silently never apply.

Always tick Is Free for free content - do not just leave the price at 0. The catalog validator treats a price of 0 on a non-free entry as an authoring error and flags it (see The Validator). At runtime, however, nothing blocks it: a zero-priced entry is handed to the player as owned and free, and the card renders as OWNED. So an unpriced item is not "safely disabled" - it is silently given away. Say what you mean with Is Free. (Upgrade ladders behave differently and really are blocked - a rung with no price makes that level unbuyable.)

Recipe: Add a New Paint Color

  1. Open your Paint Catalog asset (or create one and assign it to your Catalog Set's Paint slot).
  2. Expand Entries and click +.
  3. Set Display Name (for example Sunset Pink), pick the Color, and set a Price (or tick Is Free).
  4. Leave Id empty - it auto-fills from the color (for example paint_FF69B4).
  5. Save the project. Done - the new swatch appears in the garage's Paint category.

A Paint Catalog - each entry is a name, a color, and a price

Notes:

Recipe: Add a Paint Finish

In the same Paint Catalog, the Finishes list defines metallic/smoothness presets (see Using the Garage for what finishes are):

Field Range Default Meaning
Metallic 0-1 0.22 Metallic level written to the body material
Smoothness 0-1 0.95 Smoothness / glossiness level
Clearcoat 0-2 1 Multiplier on the material's authored clearcoat strength

Recipe: Add a Wheel

Wheel offerings point into RCCP's project-global wheel list, not into the vehicle:

  1. First make sure the wheel model exists in RCCP's changeable-wheels list: Tools > BoneCracker Games > Realistic Car Controller Pro > Configuration > Wheels. Note the index of your wheel in that list (the first entry is index 0).
  2. In your Wheel Catalog, add an entry and set Wheel Index to that number.
  3. Name it, price it, save.

Wheel Index -1 means "stock wheels" - the demo ships a free Stock entry at -1 so players can always return to factory wheels. Include one in your catalog too.

Once the entries exist, generate their card icons instead of drawing them: Generating Item Icons From Your Models.

Recipe: Add a Spoiler or Siren

Spoilers and sirens are per-vehicle content - the index points into the arrays on that vehicle's Spoiler Manager / Siren Manager:

  1. On your vehicle prefab, make sure the spoiler (or siren) object exists in the manager's array. Note its index.
  2. Add a catalog entry with that Index.
  3. Index -1 means "none" - ship a free "No Spoiler" entry so players can remove one they bought.

Because indices are per-vehicle, a spoiler catalog written for one car only fits cars whose spoiler arrays are laid out the same way. Different cars with different bodykits usually get different catalog sets. The same is true of their card icons - see the caveat in Generating Item Icons From Your Models.

Where are these managers? They are child objects of RCCP_Customizer on the vehicle - Spoiler Manager, Siren Manager, Decal Manager, Neon Manager - and the arrays you are indexing into are their spoilers / sirens / decals / neons fields. Select the vehicle, expand its RCCP_Customizer child in the Hierarchy, and pick the manager you need.

Recipe: Add a Decal or Neon

Decals and neons are material entries with one strict rule: the material you reference in the catalog must be the exact same material asset that sits in the vehicle Decal Manager's / Neon Manager's array. RCCP identifies decals by asset reference - a copy, a variant, or any other material would silently fail to persist (it saves as "none" and vanishes on reload).

  1. Open the vehicle's Decal Manager (or Neon Manager) and note which material assets its array holds.
  2. In the catalog, add entries referencing those same assets.
  3. Price, name, save. The validator cross-checks this for you and errors on foreign materials.

Decal/Neon categories only appear under URP or HDRP - on the Built-in pipeline RCCP's decal and neon components do not render, so the Tuner hides the categories entirely.

Recipe: Set Up the Upgrade Catalog

The Upgrade Catalog is not a list of items - it is four price ladders, one per upgrade kind, each exactly five rungs (element 0 = the price of level 1):

The Upgrade Catalog - four five-rung price ladders plus optional level descriptions

Ladder Default rung prices (levels 1-5)
Engine Prices 3000, 6000, 10000, 15000, 22000
Brake Prices 1800, 3600, 6000, 9000, 13000
Handling Prices 1800, 3600, 6000, 9000, 13000
Speed Prices 2400, 4800, 8000, 12000, 17500

Buying level N pays every rung between the owned level and N - jumping from stock straight to level 3 costs rungs 1+2+3. This is the single most misread rule in the asset, so it is worth a picture:

Authored rung prices versus the cumulative price shown on the card

Every rung must have a price greater than 0; a zero or missing rung is an authoring error and makes those levels unpurchasable (the validator flags it, and the Catalog Set inspector reports the ladder as 3/4 ladders intact).

The four description arrays below the ladders are optional flavor text per level ("Stage 2 turbo kit..."), shown in the info panel when the player hovers a level card. Empty descriptions simply keep the panel hidden.

What each level actually does to the car (how much torque, how much brake force) is RCCP's business - it comes from the efficiency settings on the vehicle's own Upgrade Manager components, not from the Tuner.

Recipe: Configure the Tuning Category

The Tuning Catalog decides which sliders the tuning workshop exposes and their ranges:

Slider row field Meaning
Kind Which RCCP tuning knob this drives (front/rear camber, ride height, suspension travel, spring force, damper)
Display Name The label next to the slider
Enabled Untick to hide a row without deleting its authoring. A disabled row is labelled · HIDDEN in the list.
Min / Max The slider range

The default asset ships all ten rows (a front and a rear of each):

Kind pair Shipped range The player sees
Front / Rear Camber -10 to 5 degrees, one decimal - -2.5°
Front / Rear Ride Height 0 to 1 a percentage, 0% to 100%
Front / Rear Suspension Travel 0.05 to 0.5 metres - 0.25 m. RCCP enforces the 0.05 floor no matter what you author.
Front / Rear Spring Force 20000 to 100000 a plain number
Front / Rear Damper 1000 to 10000 a plain number

Note the ride-height row especially: you author 0 to 1, but the garage displays it as a percentage, so the numbers you type and the numbers your players read are not the same scale.

Below the sliders: Expose Smoke Color and Expose Headlight Color toggle the two color rows, and Color Presets is the shared swatch palette for both.

The tuning category's unlock price is deliberately not here - it lives on the Economy Config, the single home of economy numbers (Prices & Economy).

Entry IDs and the Ownership Keyspace

Cosmetic purchases - paint, finishes, wheels, spoilers, sirens, decals, neons, plus the custom-colour and tuning unlocks - are recorded globally under a key built as <category>:<entry id>, for example paint:paint_FF69B4 or wheels:wheel_3. Buy once, use on every car.

Performance upgrades are not. Engine / Brake / Handling / Speed levels are stored per vehicle, keyed by that car's RCCPT_VehicleId GUID, so upgrading one car never upgrades another. See the picture in Using the Garage.

Three practical consequences of the cosmetic keyspace:

  1. IDs auto-fill and de-duplicate. Leave them empty while authoring; selecting the asset fills them in (duplicates get _2, _3... suffixes).
  2. IDs are forever. After release, changing an entry's id (or letting it regenerate) orphans every player's ownership of that entry. Rename the Display Name freely - never the Id.
  3. IDs must be saved to disk before you build. The auto-fill runs in the editor; a player build cannot fill missing ids, and an entry whose id shipped empty cannot be purchased. The validator has a dedicated check for this ("id(s) EMPTY ON DISK") - if it fires, make any trivial edit to the asset and save the project so the filled ids persist.

Generating Item Icons From Your Models

An entry with no icon shows a blank card. You do not have to open Photoshop - the Tuner can render the icons from your actual 3D models:

Tools > BoneCracker Games > RCCP Tuner > Tools > Generate Catalog Thumbnails From Selected Vehicle

  1. Select a vehicle in the Hierarchy that has an RCCP_Customizer (the demo showroom car works).
  2. Run the menu item.
  3. Choose Keep Them (fill empty only) to fill blanks without touching icons you assigned by hand, or Overwrite All to re-render everything.

Each icon is rendered in Edit Mode through your project's own render pipeline, so the card matches what the equipped part actually looks like, and lands as a 256 x 256 transparent PNG in Demo/Thumbnails/ inside the install folder.

What it does and does not cover:

Category Model comes from Universal?
Wheels RCCP's project-global changeable-wheels list Yes - same for every car
Spoilers The selected vehicle's spoiler objects No - car-specific
Sirens The selected vehicle's siren objects No - car-specific
Paint, finishes not processed They draw colour swatches instead
Decals, neons not processed Assign their own artwork

Two things to know before you run it:

Full reference: Editor Tools.

The Validator

Tools > BoneCracker Games > RCCP Tuner > Tools > Validate Catalogs checks the resolved catalog set (scene override or project default) against the open scene's vehicle and prints a full report to the Console. It is also a button on the Catalog Set and Tuner Controller inspectors.

Open a scene with your vehicle in it first. With no RCCP vehicle loaded, every vehicle-dependent check is skipped - indices, decal/neon materials, category support - and the validator still reports Errors: 0. The dialog tells you it skipped them, but a clean result from an empty scene proves nothing.

Severity Checks
Error Missing/zero prices on non-free entries · an upgrade ladder with fewer than 5 rungs · an upgrade rung with no price · empty entry ids (in memory or on disk) · wheel/spoiler/siren indices out of range · decal/neon materials not in the vehicle's arrays
Warning Content authored for a category the vehicle/pipeline does not support (the panel auto-hides) · vehicle supports a category but no content is authored · finishes authored but the body shader has no metallic/smoothness · missing upgrade level descriptions · no upgrade catalog at all

Errors are things that will visibly break purchases; fix them before shipping. Warnings are honesty notices about content that will not appear.

Next Steps