# Hyperfy Discord - 2025-03-01

## Overall Discussion Highlights

### Development & Technical Updates
- **Docker Optimization**: HPrivakos discussed using Alpine-based Docker images instead of Debian to reduce image size by 1GB, saving costs for community deployments. GitHub-hosted Docker images are already available with Alpine.
- **Networking APIs**: Ashxn clarified differences between `app.emit()`, `world.on()`, `app.on()`, and `app.send()` functions for event handling.
- **Game Implementations**: Several developers shared progress, with drdoge.eth showcasing a jet flight simulator with weapons systems, camera angles, and spatial audio.
- **UI Improvements**: Discussions about improving app windows with tabs, resizing capabilities, and better property displays. A fix for texture encoding issues was pushed.
- **Self-hosting Options**: Developers discussed options like CasaOS, Umbrel, and Coolify for Hyperfy deployment.

### Platform Strategy & Business
- **V1 to V2 Transition**: Team members discussed the benefits of rebuilding before launching a marketplace, citing performance improvements and a less limiting SDK in V2.
- **Business Model**: Saori explained that Hyperfy is building a marketplace around their token that will provide revenue, with the team having "a few years runway" from token sales.
- **Vision**: Team described Hyperfy's strategy as aiming to "flip Roblox" by creating a game engine with a low barrier to entry compared to alternatives.
- **Token Economics**: Discussions about HYPER token, with explanations about legitimate tokens having vesting periods unlike instant-unlock tokens on platforms like Pump Fun.

### Community Projects
- **Hyper Pets**: ~/MayD524/Hyperfy announced updating "hyper pets" to use modules, with a link to the GitHub repository.
- **Launch Party**: Shiffty reported updating "Launch Party" with standardized UX interactions (interact to equip, Q to unequip).
- **Racing Environment**: TheMattEmpire shared progress on creating a pit lane for a racing environment, mentioning uncertainty about real-world accuracy.
- **Attachable Objects**: Ashxn created and shared an improved version of a generic swappable GLB grabbable with networking support.

## Key Questions & Answers

### Technical Implementation
- **Q**: Why use Alpine instead of Debian for Docker images?  
  **A**: Alpine reduces image size by 1GB, saving costs for deployments. (HPrivakos)

- **Q**: What does the commit_hash environment variable do?  
  **A**: It's used for the /status endpoint to show what version a server is running. (HPrivakos)

- **Q**: How do the networking APIs differ?  
  **A**: `app.emit()` sends events to world, `world.on()` listens for world events, `app.on()` listens for app-specific events, `app.send()` sends events to same app on other clients. (Ashxn)

- **Q**: Can I access default player emote GLBs in code?  
  **A**: Yes, use the correct asset URL, e.g., `asset://emote-float.glb`. (Ashxn)

- **Q**: What's causing the black screen when clicking the ⚡ button?  
  **A**: It's caused by using `this.world` instead of just `world` in AppPane.js. (~/HowiEDuhzit)

- **Q**: Can we have lights instead of baking lighting?  
  **A**: It's technically possible but restricted due to performance concerns when users place too many lights. (Ashxn)

### Business & Platform
- **Q**: How is Hyperfy sustaining development?  
  **A**: The token gave the team a few years runway to build full time, and they're creating a marketplace around it that will provide revenue if successful. (Saori)

- **Q**: What is the endgame for Hyperfy?  
  **A**: The team is focused on building the platform and tools, with ongoing development rather than a fixed endpoint. (multiple team members)

- **Q**: Why rebuild before launching a marketplace?  
  **A**: The new version will be more competitive long-term with big performance improvements and a less limiting SDK. (Saori)

- **Q**: What is the alternative to a "rug" and how are coin creators supposed to profit?  
  **A**: They're not supposed to profit until vesting terms end. Real tokens come with vesting unlike Pump Fun's instant unlock. (Saori)

## Community Help & Collaboration

1. **UI Troubleshooting**:  
   ~/HowiEDuhzit helped ᲼ fix a black screen issue when clicking the ⚡ button by identifying that `this.world` needed to be changed to `world` in AppPane.js, and submitted a pull request.

2. **Docker Deployment**:  
   HPrivakos assisted ~/HowiEDuhzit with Docker image optimization for Coolify deployment by providing information about pre-built Alpine-based Docker images on GitHub.

3. **Networking API Clarification**:  
   Ashxn helped devilsadvocate.sol understand the differences between various networking functions (`app.emit()`, `world.on()`, `app.on()`, and `app.send()`).

4. **Attachable Objects**:  
   Ashxn shared two .hyp files for chair and sword attachments with fractilians, and later created an improved version of a generic swappable GLB grabbable with networking support.

5. **Image Display Issues**:  
   Ashxn fixed texture encoding issues for Ricky when images were displaying with incorrect colors, and pushed an update.

6. **Material Transparency**:  
   drdoge.eth helped channel members with material transparency issues in version 4.3, suggesting turning off transparency overlap and switching between dithered and blended modes.

7. **Path Usability**:  
   TheMattEmpire improved path usability by removing extra snap points, making them easier to use and sharing this solution with others.

## Action Items

### Technical
- Add WebAssembly API to scripting environment to support WASM (MayD524)
- Fix texture encoding for UI images (Ashxn)
- Fix AppPane.js to use world instead of this.world (~/HowiEDuhzit)
- Implement chat commands for editing environment variables, particularly for autosave (general hyper)
- Update hyper pets to use modules (~/MayD524/Hyperfy)
- Standardize UX for Launch Party with interact to equip, Q to unequip functionality (Shiffty)
- Consider performance-friendly lighting solutions that don't require extensive baking (ii_cable_ii)
- Evaluate transparency settings in materials (dithered vs. blended) for optimal rendering (drdoge.eth)

### Documentation
- Create developer roadmap for planning ahead (Saori)
- Add networking API documentation clarifying app.emit(), world.on(), app.on(), app.send() (Omka)
- Document the uiimage component (devilsadvocate.sol)
- Create a feature issue to document UI improvement ideas (general hyper)
- Consider creating a clearer roadmap or vision document (Curtisdonthurtus and bear)

### Feature
- Create generic swappable GLB grabbable component (fractilians)
- Add hotkeys for UI navigation (MayD524)
- Implement drag-and-drop image support similar to V1 (fractilians)
- Add version information to status endpoint (devilsadvocate.sol)
- Add admin settings panel, possibly as a tab in player settings (general hyper and peezy)
- Make the app window resizable to improve visibility of properties (general hyper)
- Add tabs in the app window for better organization of sections (0mka)
- Allow horizontal layout for short answers like numbers (0mka)
- Add buttons to the outliner that open other windows like world settings (TheMattEmpire)
- Improve pit lane realism with garage buildings and fencing (TheMattEmpire)
- Evaluate the possibility of limited light implementation (Ashxn)
- Continue development of marketplace functionality (Saori)