# Hyperfy Discord - 2025-07-19

## Overall Discussion Highlights

### UI Development
- Discussions focused on creating full-screen UI elements without causing scrollbars
- 0mka shared code examples using `app.control()` to access screen dimensions
- Ashxn created PR #109 to add `world.viewportWidth` and `world.viewportHeight` properties
- Safari refresh issues were identified when UI elements extend beyond overflow area

### Asset Management & World Loading
- Critical bug discovered where "world clean" script sometimes deletes asset files but fails to remove database entries
- This causes worlds to get stuck at loading screens when trying to load non-existent assets
- Issue appears more prevalent with hyps containing additional files beyond GLB (MP3/WEBP/MP4)
- Temporary workaround: manually adding missing assets back to server's world/assets folder
- Clarification that while apps can't be loaded with `world.load()`, GLBs from remote sources can be

### Animation & Interaction Systems
- Ashxn shared progress on animation layers for supporting held objects (guns, bows, staffs)
- Work continues on locomotion emotes retargeting
- 0mka shared a QuestItems system with QuestItemUI components for collecting items in worlds
- The system includes persistent storage, visual effects, sound effects, and UI customization

### Performance Testing
- Brief mention of "stormwind" related to performance testing

## Key Questions & Answers

**Q: How can I create a UI that fills the entire screen?**  
A: Use `app.control()` to access screen dimensions and create a UI with those dimensions. Use top-left pivot with position 0,0 and set width/height to viewport dimensions.

**Q: Can we load an app using world.load()?**  
A: Not apps, but you can load GLBs from remote sources.

**Q: Anyone else notice world clean is deleting files but not dB entries sometimes?**  
A: This appears to be a reproducible issue, especially with hyps containing additional file types beyond GLB.

**Q: How can the world clean issue be reproduced?**  
A: Add a hyp to world with an asset in config (mp3/webp/mp4), delete it via apps list, run world clean script, try to re-enter world and check console for missing assets.

**Q: What is stormwind?**  
A: Performance testing.

## Community Help & Collaboration

- **0mka helped shmoji** with creating full-screen UI elements by sharing code examples using `app.control()`
- **Ashxn helped .hyp shaman** understand limitations of loading models, clarifying that while apps can't be loaded with `world.load()`, GLBs from remote sources can be
- **HowieDuhzit helped the community** by explaining the root cause of the world clean issue and suggesting improved error handling
- **0mka provided Roustan** with a complete QuestItems system for collecting items in Hyperfy worlds, including configurable features and code examples

## Action Items

### Technical
- Add `world.viewportWidth` and `world.viewportHeight` properties (Mentioned by Ashxn)
- Implement animation layers to support held objects (guns, bows, staffs) (Mentioned by Ashxn)
- Fix Safari refresh issue when UI elements extend beyond overflow area (Mentioned by 0mka)
- Implement error handling for missing asset files so worlds remain accessible with "crash blocks" for broken hyps (Mentioned by HowieDuhzit)
- Fix world clean script to ensure database entries are deleted when corresponding files are removed (Mentioned by 0mka)
- Investigate why hyps with additional files (mp3/webp/mp4) are more susceptible to the world clean issue (Mentioned by 0mka)
- Add end-of-collection notification feature for quest items (Mentioned by Roustan)
- Fix persistent storage issue with quest items (Mentioned by Roustan)
- Make coin collection sound global rather than spatial (Mentioned by Roustan)
- Implement emissiveMap setting capability (Mentioned by .hyp shaman)
- Develop raycast projectiles system (Mentioned by .hyp shaman)

### Feature
- Add device global for detecting touch devices, VR mode, etc. (Mentioned by Ashxn)
- Implement UI responsiveness for better mobile support (Mentioned by 0mka)
- Add collection/minting functionality for quest items (Mentioned by Roustan)

### Documentation
- Document proper procedure for running world clean to avoid database/file mismatch issues (Mentioned by ash)