# Hyperfy Discord - 2025-04-16

## Overall Discussion Highlights

### Particle System
- **New particle system** was a major focus of developer discussions
- Particles can be attached to avatars, bones, and skinned meshes
- Features include rateOverDistance for movement-based emission
- Developers shared implementations of aura effects and trails
- Proper implementation requires using `world.add()` instead of `app.add()` for bone attachments
- Matrix transformations are needed for correct bone positioning

### Platform Integration
- Team is working on **MCP integration** (likely an AI system)
- **LiveKit integration** is available on dev branch for voice chat and screen sharing
  - Requires LiveKit account with keys added to .env
  - Same LiveKit server can be used across multiple worlds
  - UUID is generated for each room when server boots

### Mobile & Accessibility
- Questions raised about **build mode availability on mobile**
- Discussion about making world-building more streamlined

### Blockchain & Multiplayer
- Hyperfy can work with **any blockchain**, not just Hyperfy coin
- Multiplayer functionality uses client/server code separation
- Player limits depend on world complexity - hundreds possible with optimized content

## Key Questions & Answers

**Q: Can the Hyperfy have a contact point with the MCP?**  
A: "Yeah, we're figuring out a few ways to make it really good." (ash)

**Q: Can particles be attached to a skinned mesh?**  
A: "Yeah you absolutely can, skinned mesh even has a getBoneTransform method like avatars" (ash)

**Q: Is voice comms available on dev branch?**  
A: "Yes, it's available on dev along with screensharing. You need a LiveKit account and add those keys to your .env" (ash)

**Q: Is it fine to use the same LiveKit server for multiple worlds?**  
A: "Yes, every time the server boots up it generates a UUID to use as the room" (ash)

**Q: Is it possible to do sprite animation for onscreen UI?**  
A: "Not yet 😄" (ash)

**Q: Can we trigger particles with a specific key?**  
A: "Yeah, listen for key press then attach it to the thing" (ash)

**Q: Is Hyperfy only tied to Hyperfy coin and could it be used on any chain?**  
A: "You don't need the token and you can use any chain with this" (Saori)

**Q: What's the player limit for worlds?**  
A: "Just depends how much stuff you put in the world. You can get hundreds if you don't put heavy stuff in there" (Saori)

## Community Help & Collaboration

### Particle System Implementation
- **ash** helped **Gert-Jan Akerboom** with particles attached to bones that weren't positioning correctly
  - Explained that bone transforms are in world space
  - Suggested using `world.add(particles)` instead of `app.add(particles)`
  - Recommended using `particles.position.setFromMatrixPosition(matrix)`

### Bone Transformation Support
- **ash** clarified for **Valiant** that only VRM bones (both optional and required) can be used with `getBoneTransform`, not custom bones

### Blockchain Integration
- **Saori** helped **mongrlz** with blockchain integration questions
  - Provided link to hypkg.sh/hypkg/evm/
  - Confirmed any chain can be used with Hyperfy

### Voice Chat Setup
- **HypPrivakos** assisted **MetaRick** by adding LiveKit to all hosted worlds to enable voice chat

### Development Resources
- **maximus** shared a compilation of resources for **mongrlz** about vibe coding
- **Saori** explained client/server code separation and automatic syncing of player positions to **mongrlz**

## Action Items

### Technical
- Fix broken chat bubbles (ash)
- Add rateOverDistance option to particles (ash)
- Fix interactive UI nodes with billboard enabled (ash)
- Implement build mode for mobile version (Akuma)
- Integrate Hyperfy with MCP AI system (ash)

### Feature
- Add different text chat channels (0mka)
- Add audio support to screen sharing (~/drdoge.eth)
- Add ability to display web content like Twitch on screens (Saori)
- Streamline the process for building worlds in the platform (MetaDJ)

### Documentation
- Create guide for attaching particles to bones (Gert-Jan Akerboom)
- Improve vibe coding documentation to make it easier to use with Cursor (Saori)