# Hyperfy Discord - 2025-02-07

## Overall Discussion Highlights

### Development & Technical Infrastructure

**App Development & Cloning**
- Developers discussed proper app cloning techniques using `app.clone(true)` to recursively clone meshes and child elements
- Inter-app communication was explored using world events (`world.emit()` and `world.on()`) to broadcast and listen for events between different app instances
- The Beacon app was showcased, which integrates with the Distributed Spatial Internet Graph (DSIG) infrastructure to support relays aggregating worlds and user status

**Control Schemes & User Experience**
- Significant debate emerged about control schemes, with many advocating for separate "build mode" and "game mode" controllers
- Saori argued that the current approach limits gameplay possibilities, while Ashxn was concerned about maintaining accessibility
- The team fixed an issue with inverted mouse wheel zoom direction between Windows and Mac platforms
- Users requested touchpad support and pointer lock in Hyperfy v2 for better camera controls

**Docker & Infrastructure Optimization**
- HPrivakos shared a Docker multi-stage build approach that reduced image size from over 300MB to around 130MB
- The optimization involved moving client dependencies to devDependencies and using a two-stage build process
- While functional, this approach might not be production-ready and could break in future updates

**3D Modeling & Asset Optimization**
- Discussions about quad topology vs. triangles in 3D models, noting quad-based models are better for retopology and decimation
- Users confirmed that linked duplicates in Blender automatically instance in Hyperfy v2, improving performance
- Texture compression was debated (JPG vs. PNG vs. WebP), with TheMattEmpire noting JPG was slightly smaller than WebP in tests
- The Hyperfy Tools Blender addon was discussed extensively, with users exploring its functionality for creating interconnectable 3D assets

### Web3 & Tokenomics

**HYPER Token**
- Users discussed claiming HYPER tokens from an airdrop, with guidance provided on the process
- Suggestions were made to improve token visibility through Twitter profiles and linktrees
- Discussion about using HYPER for payments on the platform, including a "pay with hyper" option for Hyperworld hosting

**Blockchain Integration**
- Conversations about Streamflow and Superfluid integration for subscription-based payments to creators and worlds
- Web3 integration possibilities across different chains including Solana, Optimism, and Base
- Discussions about implementing blockchain transactions in 3D space

### AI & Agents

**Eliza & AI Integration**
- Users discussed Eliza app's behavior and spatial awareness capabilities
- HPrivakos mentioned working on Eliza hosting with the goal to load character files without restarting the server
- Discussions about creating more character file templates for AI agents
- Interest in developing a RAG-based chat helper for Hyperfy documentation

### Platform Features & Marketplace

**Marketplace Development**
- Discussions about "pay what you want" options for marketplace items
- Suggestions for a collections feature to allow grouping of assets
- Interest in creating a marketplace for apps with tipping functionality

**World Portability**
- Users expressed interest in functionality to export worlds with app coordinates preserved
- Discussion about maintaining control of data when switching hosting providers
- Suggestions for a "mega .hyp" that contains all apps at once

## Key Questions & Answers

**Development & Technical**
- Q: How do I properly clone an app or mesh?
  A: Use `app.clone(true)` with the true parameter to recursively clone all child elements.

- Q: How can I get the actual avatar position when using world.getPlayer()?
  A: Use `player.position.copy()` to get the position, but be aware of potential offsets when working with child meshes.

- Q: Is there a way to add a spawnpoint?
  A: Use the command "/spawn set" to set a spawn point.

- Q: How do I enable flying in build mode?
  A: Double jump to activate flying mode.

- Q: Will Hyperfy be moved to TypeScript?
  A: While TypeScript would be beneficial long-term, it's not a priority as the codebase is too far along and resources are limited.

- Q: How can apps communicate with each other?
  A: Use world.emit() and world.on() to broadcast and listen for events between different app instances.

- Q: Does the Hyperfy Tools addon work on Blender 4.0?
  A: It officially supports 4.2, but users confirmed it works on 4.3 as well.

- Q: Does GLB mesh instancing with linked duplicates from Blender work in V2?
  A: Yes, linked duplicates in Blender automatically instance in Hyperfy; no additional scripts needed.

**Platform & Hosting**
- Q: Is the editor available in V2 when we start a world locally?
  A: No editor, but you can drag and drop GLB models into the world and right-click things to bring up a menu.

- Q: Is it possible to create a GTA San Andreas-esque game on Hyperfy?
  A: Yes, you can find maps on Sketchfab and set them as the default space.

- Q: What's the best way of getting started with Hyperfy V2 for a designer?
  A: Paying for hosting is easiest, or you can drag GLB/VRM files in and add scripts.

- Q: Can I export my world if I use a 3rd party hosting service?
  A: Yes, people should not use a hosting service that doesn't give them control over their data.

**HYPER Token**
- Q: How do I claim my hyper tokens?
  A: Check the FAQ about token drop in the Discord channel.

- Q: Do you have to have a certain amount to get the hyperflyer role?
  A: 100k hyper gets you hyperflier.

## Community Help & Collaboration

**Development Assistance**
- Ashxn helped devilsadvocate.sol with proper app cloning techniques, explaining that `clone(true)` is needed for recursive cloning
- Saori provided code examples to Shiffty for getting player position for object following using `app.position.copy(player.position)` in the update loop
- HPrivakos helped ToxSam with setting spawn points in a world by providing the correct command "/spawn set"
- jin corrected HPrivakos's command syntax for running the AI news tool to "npm run generator -- --date=2025-01-01" with double dashes

**3D Design Support**
- Ashxn confirmed for 𝚟𝚘𝚡𝚟𝚒𝚎𝚗𝚗𝚎 that linked duplicates in Blender automatically instance in Hyperfy v2, providing screenshots as evidence
- 𝚟𝚘𝚡𝚟𝚒𝚎𝚗𝚗𝚎 helped TheMattEmpire troubleshoot why exported GLB files were larger than expected, suggesting to check if image textures were accidentally plugged into alpha channel
- ~/HowiEDuhzit confirmed for TheMattEmpire that parent snap points and custom collider features will be in the next update of Hyperfy Tools

**Platform & Hosting**
- HPrivakos shared a multi-stage Dockerfile and modified package.json with ash that reduces node_modules from 200MB+ to about 130MB
- merk helped PurpleSack create a GTA-like experience in Hyperfy by explaining how to replace base-environment.glb and suggesting using older game models
- maximus clarified for treed that AI was likely referencing outdated V1 docs and pointed to V2 documentation

## Action Items

### Technical
- Implement separate build mode and game mode controllers to improve user experience (Saori)
- Add hierarchy inspector UI to view object structure (Ashxn)
- Implement flying mode and pointer lock controls (Ashxn)
- Add raycasting physics on server (Saori)
- Optimize Docker image size by switching to Alpine (HPrivakos)
- Fix URL handling for drag and dropped files with query parameters (HPrivakos)
- Create a system for inter-app communication (MetaMike)
- Implement hot-reloading of character files on Eliza server (HPrivakos)
- Add coordinate metadata in .hyp app files to preserve positioning (HPrivakos)
- Move client dependencies to devDependencies to reduce runtime package size (HPrivakos)
- Add custom collider support to Hyperfy Tools (TheMattEmpire)
- Add parent snap points feature to Hyperfy Tools (~/HowiEDuhzit)
- Implement material sharing across multiple assets (TheMattEmpire)
- Implement touchpad support and pointer lock in Hyperfy v2 (𝚟𝚘𝚡𝚟𝚒𝚎𝚗𝚗𝚎)
- Contact tip.cc for HYPER token listing (jin)

### Documentation
- Create a list of optimized third-party assets for builders (𝚟𝚘𝚡𝚟𝚒𝚎𝚗𝚗𝚎)
- Set up GitHub project board for tracking features and issues (0xBison)
- Create RAG-based chat helper for Hyperfy documentation (Omka)
- Add brand assets repository to GitHub (Omka)
- Update community book with learnings from new users (Omka)
- Add note about applying rigidbody before export in Hyperfy Tools (TheMattEmpire)
- Improve visibility of token information on website and Twitter (Saori)

### Features
- Add Solana wallet integration (Omka)
- Create a marketplace for apps with tipping functionality (Saori)
- Implement cross-world communication between apps (Ashxn)
- Add "Pay what you want" option to marketplace (TheMattEmpire)
- Create collections feature for marketplace (HPrivakos)
- Implement subscription-based payments to creators/worlds (Omka)
- Develop Arduino/Raspberry Pi integration (Omka)
- Implement blockchain transactions in 3D space (treed)
- Add first-person camera mode to Hyperfy v2 (𝚟𝚘𝚡𝚟𝚒𝚎𝚗𝚗𝚎)
- Create API for custom shaders in Hyperfy (TheMattEmpire)
- Add pause functionality to looping animations (drdoge.eth)
- Add a mid-tier pricing option between $5-25 for Hyperfy hosting platform (devilsadvocate.sol)
- Add "pay with hyper" option to Hyperworld hosting (devilsadvocate.sol)
- Implement world download functionality (shaman)
- Create a self-service way for users to download their worlds (maximus)
- Develop a "mega .hyp" that contains all apps at once (HPrivakos)