Skip to content

RollerCoaster Tycoon (Stern 2002)

Stern Whitestar toolkit build with practical troubleshooting for wire ramp bleed-through, standalone VBScript strictness, and lightmap reflection optimization. Built by apophis79, sixtoe, flux5009, and tomate80.

Table-Specific Details

Art & Visuals

  • Wire ramp bleed-through on inserts: the problem is the Blender-exported ramp material's transparency, not depth bias. Fix: switch to an opaque metal material or set disable lighting from below = 1.
  • Lightmap reflections disabled on all lightmap primitives (while kept on bakemaps and ball) as a worthwhile performance optimization. On a table with 1300+ lightmaps, this fixed severe slowdowns when flashers fired.
  • Filament bulb modeling for visible incandescent lights: create filament mesh with no emission (off state) in parts collection, duplicate with emission material in vlm.Lights collection. Turn off Ray Visibility > Shadows for filament mesh to prevent ugly cast shadows.

Physics & Gameplay

  • Invisible VPX standup targets do NOT fire _Animate subs -- this is a VPX bug. Gates, triggers, and spinners all fire correctly when invisible, but standup targets do not. Workaround: use Roth standup target code.
  • PWM: GICallback misbehaves with UseVPMModSol=2, outputting multiple consecutive True/False values. Use GICallback2 (continuous float output) instead when running ModSol=2.

Known Issues

  • VBScript Const variables must be defined before first reference -- LoadValue(cGameName, ...) appearing before Const cGameName = "rctycn" crashes on VPX Standalone Player. Wine VBScript is stricter about declaration order.
  • VPX 10.8 FPS limiter is a true limiter -- if set to 1, it limits to 1 FPS. Set to 0 (unlimited) or monitor refresh rate.
  • VPX auto-reduces texture size when GPU RAM runs out (tables with 1300+ lightmaps especially prone on 4GB VRAM GPUs).

Techniques Developed Here

See Also