Skip to content

Scared Stiff

Comprehensive "How To VPX" tutorial table documenting a complete build from whitewood to release.

Build Notes

Flipper Solenoid Flasher Support (PinMAME)

Scared Stiff is the only WPC table where a flasher is wired to a flipper solenoid output. Standard PinMAME doesn't support PWM modulation on flipper outputs for flashers. Niwak added a fix in PinMAME to handle this edge case. This was a PinMAME code change, not a VPX script fix.

Contributors: niwak, sixtoe, apophis79 (2024-07-16)

Dual-Coil Solenoid Simplification

For dual-coil solenoids (power coil + hold coil), the hold phase can be simplified: power sub handles the visible action (animation), hold sub just toggles collidable on/off. This avoids duplicating animation logic across two solenoid callbacks.

Contributors: sixtoe (2024-08-04)

RC Testing Workflow

The v1.0 release workflow: - Multiple testers run through complete games reporting bugs with screenshots/video - Bugs triaged as release-blocking vs nice-to-have - Each RC build numbered (RC1, RC2, etc.) with specific fix lists - "Fresh install" testing critical (test with no prior config/settings) - Post-release patches (v1.0.1, v1.0.2, v1.0.3) addressed issues found by wider audience - v1.0 release happened within a week of RC1

Contributors: sixtoe, apophis79, wylte, donkeyklonk (2025-06-15)

Scripting

Frame-Rate-Dependent Animation Compensation

The leaper frog animations used a -1 timer (fires every frame) but animation speed varied with frame rate. Fix: multiply the animation step by a frame-rate compensation factor. Calculate delta time between frames and scale the animation increment accordingly. This ensures consistent animation speed regardless of the user's FPS setting.

Contributors: sixtoe, wylte (2025-06-17)

3D & Art

Blender Toolkit Export Blocked by Degenerate Objects

The Blender VPX Toolkit batch export can silently fail or block on objects that have no geometry (e.g., a plane with no subdivisions and inverted normals). The error message is "object has no geometry." Fix: check for degenerate objects in the scene, ensure all meshes have actual face geometry, and verify normals are correct. The toolkit's nestmap generator is especially sensitive to this.

Contributors: sixtoe, wylte (2024-09-14)

Playfield Insert Mask Creation

To create a playfield mask for inserts in GIMP: use the insert cutout shapes as layer masks, painting white where inserts go and black for the solid playfield. The mask must be inverted for the Blender toolkit (toolkit expects white = opaque playfield, black = transparent insert areas). This controls where light from inserts bleeds through the playfield surface.

Contributors: sixtoe, wylte (2024-09-18)

Toolkit "Use Obj Pos" Required for Rotating Objects

When exporting objects from Blender that rotate around the X or Y axis (not just Z), you must enable "Use Obj Pos" in the toolkit export settings. Without this, the object's origin and rotation axis won't transfer correctly to VPX. Objects that only rotate around Z (like spinners) don't need this flag.

Contributors: sixtoe, wylte (2024-10-12)

Toolkit Axis Alignment Fix for Rotating Parts

For objects like the coffin door that need correct rotation in VPX, the Z axis in Blender must point up. If the axis is wrong after modeling, you can either fix it in Blender (reorient the object's local axis) or fix it in VPX by adjusting RotX, RotY, RotZ properties on the primitive. The VPX fix is faster for one-off objects but the Blender fix is cleaner for re-exports.

Contributors: sixtoe (2024-10-12)

3D Scan Cleanup Workflow

3D scan cleanup workflow for VPX table parts (coffin lid, boney beast head, claw, deadheads):

  1. Import raw scan (typically millions of polys)
  2. Decimate to manageable poly count for game use
  3. Bake normal map from high-poly to low-poly version
  4. Use Multires modifier with "NoExp" suffix for the toolkit (prevents auto-export of subdivision levels)
  5. The normal map preserves high-poly detail on the low-poly game mesh
  6. Final cleanup: remove internal faces, cap holes, check manifold

Contributors: sixtoe (2024-06-22)

LUT Color Correction with AgX Tone Mapper

When using VPX's AgX tone mapper, colors can shift from what you see in Blender. Apply a LUT (Look-Up Table) for color correction to match the intended art direction. The LUT is applied as a post-processing step in VPX. This was particularly important for Scared Stiff's horror-themed color palette where greens and purples needed to stay vivid rather than getting desaturated by the tone mapper.

Contributors: sixtoe, wylte (2025-06-18)

Ramp Fog Effect via Refraction Probe Roughness

To create a fog or haze effect inside a ramp (like Scared Stiff's spider tunnel), use refraction probe roughness on the ramp material. Higher roughness values on the refraction probe create a frosted/foggy appearance. This is cheaper than volumetric effects and works well for enclosed ramp sections where you want reduced visibility.

Contributors: sixtoe (2025-05-22)

Sling Plastic Translucency Requires PNG with Alpha

For slingshot plastics with translucent/transparent areas, you must use PNG format with an alpha channel. JPG does not support transparency and will render the entire plastic as opaque. The alpha channel controls the transmission map -- areas with lower alpha appear more translucent, letting light from GI or inserts behind the plastic show through.

Contributors: sixtoe, wylte (2025-06-19)

Troubleshooting

VUK Trapdoor Z-Threshold Bug

Ball was failing to trigger the VUK trapdoor because it only reached Z=109.72 while the threshold was set to >110. The ball wasn't getting enough height from the VUK kick to cross the trigger plane. Fix: lower the Z-threshold to match actual ball trajectory. Always verify actual ball Z positions with debug output rather than assuming theoretical values.

Contributors: sixtoe, apophis79 (2025-05-10)

Crate Door Bounce-Back Fix

The crate door was bouncing the ball back when it should capture it. Fix: add a velocity-killing wall behind the door that activates when the door opens. This invisible wall absorbs the ball's momentum so it drops cleanly into the crate mechanism instead of ricocheting off the door's collision surface back onto the playfield.

Contributors: sixtoe (2025-06-16)

Resources

Sixtoe's "How To VPX" Video Tutorial Series

Comprehensive "How To VPX" video tutorial series (16+ parts) documenting the complete build of Scared Stiff from scratch. Covers: whitewood layout, VPX editor basics, scripting fundamentals, 3D scanning real parts, Blender toolkit workflow, lighting (Lampz), PinMAME ROM integration, insert creation, playfield texturing, testing, and release. Available on YouTube. This serves as the most complete end-to-end VPW table build tutorial as of mid-2025.

Contributors: sixtoe (2024-03-16 to 2025-06-22)

Eddy Sensor for Crate Switch Emulation

The real Scared Stiff machine uses an eddy current sensor (magnetic, non-contact) for the crate switch rather than a physical microswitch. In VPX, this is emulated with a trigger zone rather than a physical hit event. The distinction matters because eddy sensors detect metal presence in a field rather than physical contact, so the trigger area should be slightly larger than the ball and doesn't require direct collision.

Contributors: sixtoe (2025-06-05)