# Hyperfy Discord - 2025-05-23

## Overall Discussion Highlights

### App Architecture & Communication
The primary technical discussion focused on Hyperfy's app architecture design principles. Ashxn explained that apps are intentionally designed to be loosely coupled, communicating through events rather than direct access to other app instances. This promotes security, simplicity, and portability. The event-based communication pattern allows apps to emit their status and listen for queries, creating efficient synchronization despite being decoupled. Ashxn reassured users that events are as cheap as function calls and are used extensively in production apps like Fallen.

### File Formats & Technical Implementation
A significant discussion clarified the difference between .glb and .hyp files. Lastraum and Ashxn explained that .hyp files contain scripts that automatically convert Decentraland colliders to Hyperfy rigidbodies, eliminating manual optimization work. However, an issue was identified where some Decentraland-created files reference external textures, causing rendering problems when imported as .hyp files. Lastraum quickly updated the dcl-iwb.co site to recognize and filter out problematic GLB files with external textures.

### Animation & Audio Support
Several users inquired about animation support in Hyperfy v2. The team clarified that currently only armature/bone animations are supported, with other animation types planned for future implementation. There was also discussion about adding footstep sounds to character animations, with suggestions to use foot colliders to trigger appropriate sounds based on surface type.

### Community Building & Collaboration
The community showed interest in collaborative building events, with suggestions for "Builder Royale" competitions and live building sessions with spectators. Users discussed emptying the play world for collective building with recording/streaming capabilities. There was also interest in developing game-like experiences such as a 3D version of Pong Wars with VR support.

## Key Questions & Answers

**Q: Can I access AppsList.js Apps Pane stuff in a hyp directly without needing to already know the instanceIds?**  
A: No, apps can't do that. If two apps want to communicate you can do that with events, this is by design. (Ashxn)

**Q: Why is direct app access restricted by design?**  
A: For security and simplicity. Objects should mostly exist by themselves, enabling the portable app format. (Ashxn)

**Q: Are there any memory leak worries with audio/video loops?**  
A: There are zero memory leaks that I'm aware of at the moment. (Ashxn)

**Q: Am I missing something in regards to animating a scene glb similar to v1?**  
A: We don't have that yet. Only armature/bone animations are supported right now. (Valiant and Ashxn)

**Q: What's the difference between using .hyp instead of just a .glb file?**  
A: Hyp files contain a script that converts Decentraland _collider nodes to actual colliders in Hyperfy, providing automatic optimization. (Lastraum)

**Q: What's the minimum size of environment glb to cover the whole world?**  
A: 2km squared goes all the way up to the skybox, which has a 1km radius. (Ashxn)

**Q: Why do some .hyp files from dcl-iwb.co appear white or with missing materials?**  
A: Some Decentraland-created files have external textures which causes rendering issues. (Lastraum)

## Community Help & Collaboration

**App Communication Patterns**  
Ashxn helped 0mka understand event-based communication efficiency, explaining that events are as cheap as function calls and used extensively in production apps like Fallen.

**Footstep Sound Implementation**  
hiroP assisted Mugenomics with implementing footstep sounds by suggesting the use of foot colliders to trigger sounds and check surface types.

**UI Element Compatibility**  
~/drdoge.eth shared an example list of compatible UI elements for reference with the community.

**Portal Functionality**  
maximus and 0mka helped carlosmu understand the differences between portal functionality in v1 vs v2, suggesting portal_app + place_app combination for v1.

**Hyp File Rendering Issues**  
Lastraum quickly identified and resolved an issue reported by Gert-Jan Akerboom and 0mka regarding white/missing materials on imported .hyp models from dcl-iwb.co by updating the website to filter out problematic models.

**Drag-and-Drop Implementation**  
HypPrivakos shared React code for implementing drag-and-drop functionality for .hyp files, helping Lastraum with this feature.

## Action Items

### Technical
- **Implement event-based communication pattern** for app synchronization where apps emit status on boot, listen for queries, and respond to maintain perfect sync (Ashxn)
- **Implement drag-and-drop functionality** for .hyp files from catalog to Hyperfy site by generating .hyp files "onDragStart" and using dataTransfer for download (HypPrivakos)
- **Update dcl-iwb.co** to filter out models with external textures to prevent downloads of .hyp files that reference external textures (Lastraum)

### Documentation
- **Create reference for event-based communication patterns** to document the recommended approach for inter-app communication (Ashxn)
- **Document which Decentraland models have external textures** to create transparency about which models may cause rendering issues (Lastraum)

### Features
- **Support for non-armature animations** in GLB files, as currently only bone/armature animations are supported in v2 (emotionull and ᲼~/^b0gie-(.*)$/)
- **Add footstep sounds to character animations** by implementing sound triggers based on animation keyframes or foot collisions (Mugenomics)
- **Create simplified portal kit** for various teleportation needs by combining different portal types (inworld, external URLs) into a comprehensive kit (0mka)
- **Create a collaborative building event with spectators** by emptying the play world and enabling collective building with recording/streaming (Gert-Jan Akerboom)
- **Implement a "deleter/janitor" agent** that cleans up worlds on a schedule to automatically remove objects and prevent world crashes (0mka)
- **Develop a 3D version of Pong Wars** with VR support based on the GitHub Pong Wars project (Ashxn, Shiffty, maximus)
- **Build modular entertainment apps** for customizable spaces/shows (Shiffty)
- **Create a Builder Royale competition** with timed building competitions and fighting mechanics (TheMattEmpire)
- **Streamline the Decentraland content creation workflow** to reduce the number of applications and steps required (untitled, xyz)