# Hyperfy Discord - 2025-02-03

## Overall Discussion Highlights

### Development & Technical Infrastructure
- **API Stability**: Ashxn explained that while small breaking changes are occurring during development, the goal is to establish a stable API where documented features won't change. Networking is considered stable now.
- **App Sharing**: The team implemented app downloads (.hyp files) allowing users to share apps more easily than copy-pasting code.
- **Cross-App Communication**: Developers discussed networking between apps using world.emit() and app.on() for cross-app communication.
- **Deployment Solutions**: Raymond developed a "hyperfy-deployer" tool to automate server setup including SSL and nginx configuration, sharing the GitHub repository.
- **Server Scaling**: Discussion about scaling game servers to zero when not in use, with HypPrivakos explaining that MicroVM can start applications in under 200ms versus several seconds for Docker containers.
- **V2 Documentation**: hyperfy.how is being developed as the central documentation hub, with community docs also being created.

### Agent Integration
- **Eliza Framework**: Lastraum shared code for connecting the "Eliza" agent framework to Hyperfy, enabling cross-platform chat functionality with Decentraland.
- **Agent Hosting**: HPrivakos offered to host Eliza agents for users, requiring only character files while handling the LLM backend.
- **Implementation Details**: The implementation uses JavaScript-based approach with fetch requests to API endpoints (lkdcl.co/eliza, agents.dcl.guru, agents.hyperworld.host).
- **Advanced Concepts**: Discussion of Trusted Execution Environments (TEEs) and on-chain agents via WebAssembly (WASM) embedded LLMs using AO on Arweave.

### 3D Design & Avatar Systems
- **Rigging Workflows**: Significant discussion about Mixamo rigging issues, with community members suggesting alternative approaches including Blender VRM addon with AutoRigPro, Accurig, and manual rigging.
- **NFT Interoperability**: Discussion about Nifty Island's VRM files being inaccessible due to their token-gating approach, blocking metaverse platforms like Hyperfy from accessing the files.
- **Environment Design**: Saori shared an in-progress asset pack that received positive feedback, and discussion about fixing "sticky steps" in 3D environments.

### Platform Economics
- **HYPER Token**: Discussion of price movements, with significant volatility (dropping to $0.01 before recovering to $0.02, then falling again).
- **Trading Strategies**: Debate between swing trading versus holding strategies, with some advocating against short-term trading as it creates volatility.
- **Payment Options**: HyperWorld.Host announced support for fiat payment via Stripe in addition to cryptocurrency options.

## Key Questions & Answers

### Development
- **Q**: How stable is the current API? (Saori)  
  **A**: "Networking is pretty stable now, and things documented in official scripting docs are 99% unlikely to change." (Ashxn)

- **Q**: How can I communicate between two separate apps? (MetaMike)  
  **A**: "Use app.emit(name, data) on the client and have the other app listen using world.on(name, fn)." (Ashxn)

- **Q**: How can I generate a UUID in an app script? (m₂)  
  **A**: "There's a global uuid() function injected into scripts." (Ashxn)

- **Q**: How can I get the current timestamp in an app script? (m₂)  
  **A**: "Use world.getTime() for performance.now() synced to server time, or world.getTimestamp() for ISO date timestamps." (Ashxn)

- **Q**: How can I make my 3D objects solid so avatars can jump on them? (frabra239)  
  **A**: "Change collision to 'all'." (Ashxn)

### Agents
- **Q**: Where can you find all the agents? (Saori)  
  **A**: "Currently you create the agent inside DCL, but it's available anywhere - and the list of agents are public (for now) https://lkdcl.co/eliza/agents." (Lastraum)

- **Q**: How do you prevent agents from spamming each other? (HPrivakos)  
  **A**: "They should only respond to each other once, not infinite loop, especially when using Claude/Anthropic models." (Ashxn)

- **Q**: Is there a standard character file format that you're using? (MetaMike)  
  **A**: "https://elizaos.github.io/eliza/docs/core/characterfile/." (HPrivakos)

- **Q**: How do you make the agent auto chat when you join world or respond without typing "/agent" first? (𝕽𝖔𝖚𝖘𝖙𝖆𝖓)  
  **A**: "Use the code Ash provided and tweak it to handle your server." (HPrivakos)

### Infrastructure
- **Q**: How fast do servers spin up from zero? (ash)  
  **A**: "They can start the app in less than 200ms rather than a couple seconds with docker containers." (HPrivakos)

- **Q**: Has anyone had issues when running with docker that disables the model drag and drop? (mattimus)  
  **A**: "Double check to make sure you're admin in the world." (Saori)

## Community Help & Collaboration

### Technical Problem Solving
- **Audio Positioning**: Ashxn helped b34k3r with an audio cone issue coming out of the bottom of a box, explaining that the audio node was at the bottom of the cube and suggesting moving it to the center.

- **UUID Generation**: Ashxn assisted m₂ with generating UUIDs and getting timestamps in app scripts, explaining the existing uuid() function and adding Date.now() to the dev branch.

- **Cross-App Communication**: Ashxn helped MetaMike share data between apps by explaining the use of app.emit() and world.on() for cross-app communication.

- **Environment Configuration**: HPrivakos helped m₂ fix a missing PUBLIC_VERSION in .env causing app inspection to fail by adding PUBLIC_VERSION=0.5.0-dev manually to the .env file.

### 3D Design Assistance
- **Rigging Workflows**: TheMattEmpire helped FortyMcNiner with avatar rigging issues in Mixamo by suggesting to reset the 'rest pose' and recommending Accurig as an alternative.

- **Avatar Creation**: Ashxn suggested Blender VRM addon + AutoRigPro as a better alternative to Mixamo for FortyMcNiner's workflow issues.

- **Environment Design**: Valiant and Saori offered different solutions for fixing "sticky steps" in 3D environments - adding an invisible ramp collider or editing player capsule settings.

### Agent Implementation
- **Framework Integration**: Lastraum shared complete JavaScript implementation for integrating the Eliza agent framework with Hyperfy.

- **Character Creation**: HPrivakos created and shared a Hyperfy agent URL for MetaMike's Ken character.

- **Agent Hosting**: HPrivakos offered to host Eliza agents for users, requiring only character files while handling the LLM backend.

## Action Items

### Technical
- Implement a way for world owners to make apps right-click downloadable by anyone (Ashxn)
- Add option to have secrets that are only visible on the server (Ashxn)
- Create two modes that swap out controllers, with controllers configurable per world (Saori)
- Add wrapper for setTimeout that properly cancels timers when app is destroyed (Ashxn)
- Implement a solution for moving NPCs around (for pet functionality) (Saori)
- Fix Firefox compatibility issues with Web Audio API (Ashxn)
- Implement world.on enter code for auto-chat functionality (Lastraum)
- Explore TEE (Trusted Execution Environment) integration for agents (Saori)
- Investigate on-chain agents via WASM embedded LLM using AO on Arweave (Ashxn)
- Connect wallet on Solana for Hyperfy V2 (devilsadvocate.sol)
- Fix "sticky steps" issue by editing player capsule settings (Saori)
- Test alternative rigging workflows for avatar creation (Ashxn)
- Explore resetting the 'rest pose' as solution for Mixamo rigging issues (TheMattEmpire)
- Consider Accurig as alternative rigging solution (TheMattEmpire)
- Implement error message for admin permission issues (ash)
- Fix build.mjs error in hyperfy-deployer (Raymond)
- Troubleshoot black screen issue with hyperfy-deployer (Raymond)
- Implement SSL auto-renewal (Raymond)
- Develop a solution for Nifty Island VRM compatibility (maximus)
- Develop vehicle functionality (cars, jets, hyperducks) for V2 (maximus)
- Establish guidelines for hosting services regarding user data portability (maximus)

### Documentation
- Document how to communicate between apps using world.emit() and app.on() (Ashxn)
- Develop documentation on FSM, behavior trees and GOAP for agent implementation (MetaMike)
- Complete onboarding docs for non-developers in V2 (Paradoxx)
- Consolidate GitHub docs into hyperfy.how for easier reading (devilsadvocate.sol)
- Create security section in builder onboarding (maximus)

### Feature
- Create a centralized way to share apps between developers (Saori)
- Add password field type that blocks input from being visible on stream (Saori)
- Implement pointer lock option as a preset for users (𝚟𝚘𝚡𝚟𝚒𝚎𝚗𝚗𝚎)
- Add more customizations to agent framework (Lastraum)
- Implement auto-chat functionality when players join world (𝕽𝖔𝖚𝖘𝖙𝖆𝖓)
- Create VRM model for Ken character agent (MetaMike)
- SOL coin redemptions for missions (FortyMcNiner)
- Create a Hyperfy-specific avatar generator similar to Nifty (N1Kingz/HCK1)
- Implement AI agent integration for V2 worlds (Paradoxx)
- Implement MOTD (Message of the Day) system (HPrivakos)
- Explore compute distribution when servers not in use (Raymond)