# Hyperfy Discord - 2025-04-03

## Overall Discussion Highlights

### Game Development
- Saori developed a game called "pew.bet" which initially had lag issues that were fixed
- Users tested the game and provided feedback about camera movement mechanics
- Suggestions for improvements included adding gun recoil effects
- Discussion about potential PvP game implementation

### HyperWorld Hosting & Building
- User Cluny_the_Scourge experienced difficulties with the building interface after purchasing a year of hosting
- Community members shared resources including documentation at hyperfy.how, tutorial videos, and the Hyperfy Blender tools extension
- The UI toggle with Z key was causing confusion for new users
- Discussion about improving building documentation for new users

### Technical Development
- Model extraction from .hyp files was discussed, with ash noting that shift-clicking the Model button should download models but sometimes fails
- Server hosting configuration issues, particularly HTTPS setup on Digital Ocean with Nginx and Cloudflare
- Animation control for skinned meshes, with Gert-Jan Akerboom wanting to use animation frames as distinct states
- Discussion about Math.random() vs. num() methods, with ash explaining the history of restrictions

### 3D Modeling & Design
- Fixing improper rest poses in VRM files using Blender's pose mode and applying visual transforms
- Comparison of 3D generation tools (Tripo, hunyuan3D-2, and Trellis) for architecture modeling
- Discussion about the efficiency of cleaning up generated 3D models versus using them as references
- Creating screen overlays using color filters with opacity and image overlays

### Technical Issues
- GLB files not saving despite rendering correctly due to container storage limits
- Difficulties interacting with skinned mesh animations because they're GPU-rendered
- Discussion about server logs access for world owners

## Key Questions & Answers

**Q: How do I build in the world I have in hyperworld host?**  
A: You need to give yourself admin permissions first, and check documentation at hyperfy.how (answered by Gert-Jan Akerboom)

**Q: Why can't I see the UI controls when selecting models?**  
A: The Z key toggles UI visibility, which may have been accidentally pressed (answered by ash)

**Q: Is it possible to pull the model from a hyp?**  
A: Shift clicking the Model button is meant to download it but sometimes it doesn't work. Will be fixed (answered by ash)

**Q: Why can't we use Math.random() out of curiosity?**  
A: Math.random() introduces non-determinism which could be used for exploits, but those concerns were later deemed non-issues, so it was added back (answered by ash)

**Q: Is it possible to code an object so when u interact with it, opens a specified URL?**  
A: Use `world.open(url: String, newTab: Boolean)`. Webviews coming later (answered by ash)

**Q: How do you fix improper rest poses in VRM files?**  
A: Go into pose mode, shift to a proper T-pose, select all bones and click Pose > Apply > Visual Transform To Pose (answered by ash)

**Q: Which 3D generation tool works best for architecture based on an image?**  
A: Trellis performed significantly better than Tripo and hunyuan3D-2 for building generation (answered by vox)

**Q: Why can't I save GLB files even when they render correctly?**  
A: The container had exceeded its storage limit, blocking new writes (answered by HypPrivakos)

**Q: Why can't I click, duplicate, or destroy my skinned mesh animation?**  
A: Skinned meshes can't be right-clicked because they're rendered on the GPU, making their position unknown during animation (answered by ash)

**Q: How are you getting your screen overlays?**  
A: Using a basic color with opacity as the base for color filters, then using images as filter overlays. Use control.screen.width/height to fit properly on screen (answered by ~/drdoge.eth)

## Community Help & Collaboration

1. **Building in HyperWorld**  
   Helper: Gert-Jan Akerboom, ash, maximus, 0mka  
   Helpee: Cluny_the_Scourge  
   Context: New user needed guidance on building in HyperWorld  
   Resolution: Provided documentation links, explained UI toggle with Z key, shared tutorial links and Blender tools documentation

2. **HTTPS Configuration**  
   Helper: ash, peezy  
   Helpee: mio  
   Context: Setting up HTTPS on Digital Ocean with Nginx and Cloudflare  
   Resolution: Explained that using Cloudflare's proxy with SSL is easier than manual certificate setup, shared certbot documentation

3. **Teleportation Implementation**  
   Helper: 0mka  
   Helpee: MiaHigashikata  
   Context: Implementing teleportation on collision  
   Resolution: Shared code example showing how to implement the functionality

4. **Model Extraction**  
   Helper: TheMattEmpire, ash  
   Helpee: Shiffty  
   Context: Extracting model from .hyp file  
   Resolution: Suggested using Hyperfy Tools, ash provided the model directly to resolve world crashing issue

5. **GLB File Saving Issue**  
   Helper: HypPrivakos  
   Helpee: saltï  
   Context: User couldn't save GLB files in their world  
   Resolution: Fixed container storage limit issue that was blocking writes

6. **3D Generation Tools Comparison**  
   Helper: vox  
   Helpee: Channel members  
   Context: Comparing 3D generation tools for architecture modeling  
   Resolution: Shared results of testing different tools, suggesting using generated models as references rather than final assets

## Action Items

### Technical
- Fix shift-clicking Model button to properly download models (mentioned by ash)
- Fix continuous camera movement issue requiring mouse button to be held down in pew.bet game (mentioned by CheddarQueso 🧀)
- Add invisible box to skinned mesh animations to enable interaction (mentioned by ash)
- Implement method to set animation frames to specific states without playing the animation (mentioned by Gert-Jan Akerboom)
- Fix improper rest poses in VRM files by applying visual transforms in pose mode (mentioned by ash)
- Use generated 3D models as reference rather than final assets (mentioned by vox)
- Create smart materials based on initial images (mentioned by vox)

### Feature
- Add gun recoil effects to pew.bet game (mentioned by eigb)
- Implement PvP games (mentioned by anon)
- Add player.setRole('role', {permissions}) method for custom roles/permissions (mentioned by general hyper)
- Add permissions like canBuild, canScript, canBeDamaged, canRunCommands (mentioned by general hyper)
- Add getter for player spawn position (mentioned by ash)
- Implement webviews for opening URLs within the app (mentioned by ash)
- Provide world owners with access to server logs (mentioned by HypPrivakos)

### Documentation
- Improve building documentation for new users (mentioned by Cluny_the_Scourge)
- Create better collision documentation (mentioned by Cluny_the_Scourge)
- Update Digital Ocean hosting guide to include SSL configuration details (mentioned by mio)
- Document proper T-pose requirements for VRM files (mentioned by ash)

### UI/UX
- Reconsider Z key placement for UI toggle as it's too easy to accidentally press (mentioned by general hyper)