RSBDOCS
Reference

Troubleshooting

Resolve setup, input, trajectory and bullet-time problems.

Demos are pink or render incorrectly

Use the matching render pipeline. The default samples are URP. Alternative archives replace SAMPLES and do not configure your pipeline. See Render pipelines, including the current alternative-archive validation status.

Movement, fire or UI does not respond

Check Active Input Handling and restart Unity after changing it. For New or Both, install the supported Input System package and retain the optional RSBInputSystem assembly and resource asset. For Old, verify the expected Input Manager axes. Mobile UI needs an EventSystem carrying RSBDemoEventSystem and the sample joystick/button references. See Input and controls.

The bullet is not activated

Call ActivateBullet(properties) in Start before firing. Configure a valid environment and a nonempty zero-distance list beginning with zero.

The supplied DemoMinimalController only calls FireBallisticsBullet; it does not itself activate its bullet asset. If a minimal scene reports this error, add initialization that activates the same asset, as in Firing a bullet.

No hits or the shot hits the player

For legacy calls, check Fire Transform, collider existence and Ray Mask. For per-shot calls, check Origin, Direction and RayMask, and supply the character root as Shooter to ignore its collider hierarchy. A zero mask hits nothing; null uses the system mask. Inspect the returned ID: 0 means rejected. Add BallisticSurface, BulletTimeTarget and hit-marker components to the transform actually returned by the hit, since the code uses GetComponent rather than searching parents.

Null references from effects

Assign every pool used by an enabled effect. Disable tracers and in-game debug until their pools exist. Pools initialize in Start. Growth-disabled pools can return null when exhausted; the supplied effect consumers expect available instances.

Bullet time never starts

Enable it on the system, set chance to 1 for testing, hit an active target strictly beyond Min Distance, supply a visual bullet, and keep a camera listener active. Per-shot requests also need AllowBulletTime = true. The optional cinematic origin defaults to the firing position. The camera GameObject and script must be enabled even while its Camera component is disabled. Select an enabled effect with an enabled stage.

Bullet time appears frozen

Set a positive virtual timescale for the stage. Use unscaled time in camera interpolation, and let RSB manage actual timescale. A custom pause system must coordinate with the system's reset to 1.

Wind changes do not appear

Modify GlobalEnvironmentProperties.m_windSpeedInMetric, not the original environment asset. The system clones it in Awake. The units are km/h and the bullet's UseWind setting must be enabled.

Scope, preview and actual shots disagree

Assign the same bullet to scope activation and firing, and use the intended environment on the scene system. The editor preview and runtime are different calculations. Zeroing caches do not automatically track environmental changes. Validate actual impacts at the chosen ranges. Extremely strong wind can clamp scope indicators and show the optional warning.

Setup hangs on an extreme zero distance

Trajectory precomputation runs until it reaches the requested forward distance; it does not use the bullet lifetime as a cutoff. Use reachable ranges and physically sensible positive bullet values. The Inspector's 2000 limit is not a guarantee that every cartridge reaches that distance.

An activation listener never fires

Version 1.3 raises EBulletActivated synchronously after ActivateBullet finishes preparing the asset. Subscribe before that call; the event does not replay activations that occurred earlier. Upgrade older runtime source if the event is still missing.

A per-shot request rejects its zero distance

Add the desired distance to the system's Zero Distances before calling ActivateBullet on the same bullet asset. Use meters, a non-negative finite value and reachable ranges. Zero disables compensation. Null captures the current global selection.

Damage is missing or applied twice

Assign a Damage Profile under the bullet asset's Gameplay Damage section. Read it from the hit's m_properties and check for null. A profile supplies data; your health system must apply it. EAnyHit includes penetration entry and exit, plus ricochets. Choose which events to process and use the shot ID if your game needs per-target deduplication. See Ammunition damage.

Selecting a camera effect throws an index error

Validate the index against CameraEffectsCount before calling the index methods. Their current internal bounds check is ineffective. Alternatively, use a known valid effect name with ChangeSelectedEffect.

On this page