Best Practices
These practices apply regardless of whether you're using PlasticSCM or GitHub. Following these guidelines will save you hours of frustration and prevent lost work.
Communication is Key!
- Always tell each other when you're working on the project
- Use Discord or another chat to coordinate
- Don't work on the same files at the same time if possible
Use Prefabs for Everything Possible
This is the most important tip to avoid conflicts and maintain consistency!
Instead of copying objects between scenes, create prefabs for reusable components. This is much more reliable than manually transferring work.
The Prefab Workflow:
- Create prefabs for everything reusable: Props, furniture, lighting setups, avatar components, etc.
- Work in separate scenes, but save your work as prefabs
- Assembly scene only places prefabs - The main scene just arranges prefabs, doesn't create new objects
- Update prefabs to update everywhere - Change the prefab once, 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)
Why Prefabs Are Better Than Copying:
- No manual copying - Just drag prefabs into the main scene
- Automatic updates - Fix a prefab once, it updates everywhere
- Version control friendly - Prefabs are separate files, easier to merge
- Consistent results - No risk of copying the wrong version or missing components
- Easy testing - Test prefabs in isolation before adding to 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 "Load Scene Additive" to test how prefabs work together
- Only one person edits the main assembly scene at a time
- Clear ownership of different prefab categories
What Files to Commit
✅ DO commit:
- FBX files and 3D models
- Texture files (PNGs, PSDs, etc.)
- Unity scenes
- Prefabs
- Materials
- Animation controllers
- Shader files
- VRChat SDK settings
- Udon scripts (for worlds)
❌ DON'T commit:
- Library folder (Unity generates this)
- Temp folder
- .vs or .vscode folders
- .csproj or .sln files (these are auto-generated)
Avoiding Unity Conflicts
Unity scenes and prefabs can conflict badly. To avoid this:
- Use prefabs for everything (see above - most important!)
- Use separate work scenes per person/feature - Create and test prefabs in isolation
- Main scene only places prefabs - Don't create new objects in the assembly scene
- Commit prefabs often - Small, focused prefab updates are easier to manage
- Pull before you work - Always get the latest version before starting
- Lock files when needed - In PlasticSCM, you can "checkout" files to lock them
Test Before Committing!
- Make your changes
- Test in Unity and VRChat
- Make sure nothing broke
- THEN commit and push
Troubleshooting Common Issues
"Can't merge scene/prefab files"
- Unity's binary files can't auto-merge
- One person needs to remake their changes
- This is why separate scenes per person is so important!
- Use prefabs to minimize this issue
"Where did my changes go?"
- Did you commit them? Check your version control app
- Did you push them? Others can't see until you push
- Did you pull first? You might have overwritten them
"Someone else is working on the same thing!"
- Communicate! Use Discord/chat before starting work
- Use separate scenes to avoid conflicts
- In PlasticSCM, use "checkout" to lock files you're working on
Best Practices Summary
✅ Do These Things:
- Use prefabs for everything reusable - Most important!
- Create separate work scenes for each person or feature
- Main scene only places prefabs, doesn't create new objects
- Pull/Update before starting work
- Commit prefabs and changes regularly
- Communicate what you're working on
- Test prefabs before adding to main scene
❌ Don't Do These Things:
- Don't manually copy objects between scenes - use prefabs instead
- Don't create new objects directly in the main assembly scene
- Don't work on the same prefabs simultaneously
- Don't commit generated Unity files (Library, Temp, etc.)
- Don't wait days to commit your changes
- Don't forget to pull updates before starting work
Remember: Prefabs first, save often, commit regularly, communicate always!