P3TechTips

Technical tips for the Multimorphic P3 Platform

Owner Series

Links to rule sheets for the games on the P3 platform.

How to remove the head of a P3 machine (Version 2 cabinet with LCD in head)

By guest author Dave Sousa

How to 3D print alternate button boxes that are easier to flip with 2 fingers.

By guest author Dan Howard aka BorgDog

How to replace the noisy power supply fan with a quieter fan.

How to adjust a sensitive tilt, plus a solution to dampen the tilt bob movement.

P3_SDK_V0.9 Developer Series

How to install the SDK and the tools you need for development.

Lists the APIs added, modified or deleted in P3_SDK_V0.9 compared to P3_SDK_V0.8.

Describes the Dynamic Link Libraries under ./Assets/Plugins.

Developer Series

A getting started guide for developing games with the P3 SDK.

How to organize the views within the Unity Editor.

By guest author John Shepherd.

How the P3SampleApp starts and therefore where to start studying the code.

Explores the rotating cube feature of P3SampleApp.

A tutorial showing how to implement a multiball mode in P3SampleApp.

The list of Switches, Coils, LEDs and Servos that come with the P3 Base Platform.

How to distribute an open source P3 project knowing the P3 SDK license is proprietary.

Lists the typical tasks needed to make a software only game or a complete game kit with a playfield module.

Different ways to trace which modes are currently running.

Describes mode events and GUI events.

Explains the GameAttributeOptions and GameAttributeCompareOptions.

Describes the methods in the Driver class used to activate coils.

Describes how the ball saver works.

Describes SideTargets, inlanes and outlanes.

Describes the sound manager P3SAAudio.

Discusses the ball, flipper and slingshot avatars, and the playfield overlay.

Describes the backbox display and LEDs.

Describes the P3's implementation of virtual LEDs on the screen.

Presents a collection of light shows designed for the speaker panel LEDs.

Describes how this simple savepoint file manager uses Dialogs.

Covers profiles and savepoints.

Explains how to save the Player’s progress throughout the game.

Describes the infrared grid and burst switches.

Presents an experiment to determine how big the virtual targets have to be.

Adds a new high score category to P3SampleApp and covers high score implementation details.

Examines the BallPaths on the Lexy Lightspeed module.

Documents how to control the Lexy Lightspeed ship in software.

Documents how to control the Heist Crane in software.

Examines the BallPaths on the Heist module.

Examines the BallPaths on the WAMONH module.

A tutorial showing how to implement tilt in P3SampleApp.

Explores how named locations are defined and used with the floating PopupScore.

Archived Developer Series

These P3_SDK_V0.8 articles were made obsolete when P3_SDK_V0.9 was released.

Note: This was fixed in P3_SDK_V0.9 P3SampleApp.

How to adjust the sample code to handle Target BallPaths on WAMONH.

Note: P3_SDK_V0.9 P3SampleApp already incorporates all these fixes.

How to modify P3SampleApp to make it work better on the physical machine.

Note: P3_SDK_V0.9 P3SampleApp is already trimmed down with no dead code or unused resources.

P3EmptyGame is a trimmed down version of P3SampleApp to help learn the P3 SDK.

It can also serve as the basis for new games with less clutter.

AI Series

You must weigh the benefits of using AI in your project versus the difficulty of hiring talent later on. Many artists stipulate their work cannot be mixed with a project using AI, except for coding assistance.

Overview of the field of generative AI for those new to the subject.

Support

You can discuss these P3 Technical Tips and other P3 Development topics on the P3 Community Discord Server in the dev-forum channel under the 3rd Party Development section.

License

Except as otherwise noted, the content of P3TechTips is

Copyright (c) 2023-2026 Clement Pellerin. All Rights Reserved.

Code samples are licensed under the MIT License.