Skip to main content

Best Practices

These practices apply regardless of whether you're using PlasticSCM or GitHub. Following them will save hours of frustration and reduce lost work, broken scenes, and painful merge conflicts.

Communication Is Key

  • Always tell each other when you're working on the project.
  • Use Discord or another chat tool to coordinate.
  • Do not work on the same files at the same time if you can avoid it.

Use Prefabs for Everything Possible

This is the most important tip for avoiding conflicts and maintaining consistency.

Instead of copying objects between scenes, create prefabs for reusable components. This is much more reliable than manually transferring work.

The Prefab Workflow

  1. Create prefabs for everything reusable: props, furniture, lighting setups, avatar components, and similar assets.
  2. Work in separate scenes, but save your work as prefabs.
  3. Assembly scene only places prefabs. The main scene arranges prefabs and avoids one-off authoring.
  4. Update prefabs to update everywhere. Change the prefab once and it updates in all scenes.

For Avatars

Prefabs/
|- Hair/
| |- Alice_Hair_Style1.prefab
| `- Bob_Hair_Style2.prefab
|- Clothing/
| |- Alice_Outfit1.prefab
| `- Bob_Outfit2.prefab
`- Accessories/
|- Glasses.prefab
`- Hat.prefab

Scenes/
|- Avatar_Main.unity (Final assembly - places prefabs only)
|- Avatar_Alice_Work.unity (Alice creates her prefabs here)
`- Avatar_Bob_Work.unity (Bob creates his prefabs here)

For Worlds

Prefabs/
|- Lighting/
| |- MainRoomLighting.prefab
| `- AmbientLighting.prefab
|- Props/
| |- Furniture/
| |- Decorations/
| `- Interactive/
`- Rooms/
|- MainRoom.prefab
`- SecretArea.prefab

Scenes/
|- World_Main.unity (Final assembly - places prefabs only)
|- World_Alice_Work.unity (Alice creates lighting prefabs)
`- World_Bob_Work.unity (Bob creates prop prefabs here)

Why Prefabs Are Better Than Copying

  • No manual copying. Drag prefabs into the main scene.
  • Automatic updates. Fix a prefab once and it updates everywhere.
  • Version-control friendly. Prefabs are separate files and are easier to reason about.
  • Consistent results. Less risk of copying the wrong version or missing components.
  • Easy testing. Test prefabs in isolation before adding them to the main scene.

Separate Scenes Are Still Important

Use separate work scenes alongside the prefab workflow:

  • Each person has their own scene to experiment and create prefabs.
  • Use Unity's additive scene loading to test how prefabs work together.
  • Only one person edits the main assembly scene at a time.
  • Keep clear ownership of prefab categories when possible.

What Files to Commit

DO commit:

  • FBX files and 3D models
  • Texture files such as PNGs and PSDs
  • Unity scenes
  • Prefabs
  • Materials
  • Animation controllers
  • Shader files
  • VRChat SDK settings
  • Udon scripts for worlds

DON'T commit:

  • Library/
  • Temp/
  • .vs/ or .vscode/
  • .csproj or .sln files

Avoiding Unity Conflicts

Unity scenes and prefabs can conflict badly. To reduce that risk:

  1. Use prefabs for everything.
  2. Use separate work scenes per person or feature.
  3. Keep the main scene focused on prefab placement.
  4. Commit prefabs often so changes stay small and reviewable.
  5. Pull before you work so you start from the newest state.
  6. Lock files when needed if your version-control tool supports it.

Test Before Committing

  1. Make your changes.
  2. Test in Unity and in VRChat when relevant.
  3. Make sure nothing broke.
  4. Then commit and push.

Troubleshooting Common Issues

"Can't merge scene or prefab files"

  • Unity asset merges can go badly.
  • One person may need to remake their changes.
  • This is why separate work scenes and prefab-first workflows matter so much.

"Where did my changes go?"

  • Check whether you committed them.
  • Check whether you pushed them.
  • Check whether you pulled before starting work.

"Someone else is working on the same thing"

  • Communicate before starting work.
  • Use separate scenes where possible.
  • Use file locking or checkout workflows if your tool supports them.

Best-Practices Summary

Do These Things

  • Use prefabs for everything reusable.
  • Create separate work scenes for each person or feature.
  • Keep the main scene focused on prefab placement.
  • Pull or update before starting work.
  • Commit prefabs and focused changes regularly.
  • Communicate what you're working on.
  • Test before adding work back into the shared scene.

Don't Do These Things

  • Don't manually copy objects between scenes when a prefab would solve it.
  • Don't create lots of new objects directly in the main assembly scene.
  • Don't work on the same prefabs simultaneously without coordination.
  • Don't commit generated Unity folders and files.
  • Don't wait days to commit changes.
  • Don't forget to pull updates before starting work.

Remember: prefabs first, commit regularly, and communicate early.