e-Lanes Bowling Alley
Support VR Space
Joining Patreon means you’ll get early access to VR Space content, your name displayed in VR Space worlds, and Project Files to VR Space Environments.
Bowling Alley Prefab VRChat

- Import the latest VRChat SDK3 for Worlds. Visit VRChat.com worlds SDK.
- Import UdonSharp (https://github.com/vrchat-community/UdonSharp)
- Import the Bowling_Alley_SGB.unitypackage prefab.
Folders Included:
The “Bowling Scene.prefab” gameobject is the main prefab for the package.
Go to the Scenes Folder to find the example scene.
Inside the example scene, you will find the “Bowling Scene.prefab” prefab included.
The example scene should look similar to this:
Navigate to the “prefabs” folder, in the bowling package, to view the prefab gameobjects.
Bowling Pin
Bowling Pin Udon Behaviour
The Pin’s Rigidbody component is on the Bowling Pin gameobject.
In the Udon Behaviour, you can change pins audio options.
The Bowling Pin is the parent component to the pins audio gameobject.
Bowling Ball

Rigidbody and Collider components are found on the Bowling Ball
Bowling Ball audio sources can be changed here.
Audio gameobjects are children of the Bowling Ball prefab.
The “Grip” gameobject refers to the exact grip location for the VRC Pickup component. This is off by default, but can be turned on by dragging the Grip gameobject into the VRC Pickup component.
You can change the bowling ball speed, when thrown, by changing the “Throw Velocity Boost Scale” in the VRC Pickup component.
The Sphere Collider component has a Physics Material.
All physics materials for all the meshes can be found in the “physics” folder in the package.
Physics settings can be changed by selecting the physics materials and going into the inspector.
pin_setter
Selecting the pin_setter gameobject in the hierarchy, you will see a Udon Behaviour attached to it.
The pin setter Udon Behaviour assigned each bowling pin and the pin setter and sweep animator.
The pin locations for the pin setter are empty gameobjects that are children of the pin_setter prefab gameobject.
Sweep
The main prefab, which includes the entire bowling game, is the “Bowling Scene.prefab” in the main package folder.
The Bowling Scene prefab has an udon behaviour that identifies each bowling alley.
The three Cube gameobjects act as a backdrop. Having a collider behind the bowling alley is necessary to prevent the balls from resetting too quickly.
The “LevelBounds” gameobject identifies the bounds of the bowling world. Objects outside of this should be reset.
Each Alley is set up the same.
An Udon Behaviour identifies the pin setter, bowling pins, game data, bounds, foul line, and back screen specific to that lane. View the image below to see all variables in the Udon Behaviour.
Alley Bounds identifies the lanes bounds.
When a payer picks up a bowling ball, that player is the owner of that ball.
When its a specific players turn, that player becomes the owner of the lane.
If a ball, that is owned by another player, enters the lane bounds, the ball will respawn, preventing it from interfering with the current bowlers game.
If a player crosses the Foul Line, the player will not receive any points for that bowl.
The bowling balls are in the bowling scene prefab.
For the bowling balls to work, the ball must be assigned to a bowling scene.
When a player picks up a bowling ball, the player becomes the owner of that pickup object.
When a ball is thrown on a lane, the ball is assigned to that lane.
The ball will exit the ball return that is assigned to that lane.
The meshes for the bowling alley can be found under the “Alley Meshes” gameobject.
Some of these meshes have physics materials assigned to them. Physics Materials can be found in the “physics” folder.
How to add more lanes
- Add the “Bowling Scene.prefab” prefab into your scene.
- Find the “Bowling Alley Pair” gameobject.
- Duplicate the “Bowling Alley Pair” gameobject.
- Drop down the “Bowling Alley Pair(1)” gameobject to reveal “Alley Left” and “Alley Right” gameobjects.
- Select the “Bowling Scene” gameobject and navigate to the inspector.
- In the inspector go to the Udon Behaviour component and press the drop down for “Alleys”
- Change the number of Alleys to the corresponding number of alleys you are adding. In this example, we will use 4.
- Assign all “Alley Left” and all “Alley Right” gameobjects here.
Now each alley should work with it’s corresponding pin meshes.
Duplicating and moving the bowling ball gameobjects around should have no effect on the function of the bowling alleys.
Bowling_Alley_SGB_v1.2 Update
-Changed meshes to generate lightmap UV's in Unity.
Bowling_Alley_SGB_v1.1 Update
-Fixed game locking when leaving a game. Game should reset when all players leave.
-Fixed timing issue when pins don't reset properly. Game will now wait until pins are in the resting position before continuing to next frame.
-Prevented double-joining on the server/master side.
-Fixed throwing the ball too fast will break the lane. This was caused by reducing sync update time for quest performance. Decreased update times. May have a hit on Quest performance.