Node-FlyFF is a comprehensive, open-source Fly For Fun (FlyFF) V19 emulator built with modern TypeScript and Node.js. This project aims to recreate the classic MMORPG experience with a focus on performance, scalability, and maintainability.
The emulator follows a distributed server architecture:
- Login Server: Handles client authentication and server list distribution
- Cluster Server: Manages character operations (creation, deletion, selection)
- World Server: Core game logic, entity management, and gameplay systems
- Runtime: Node.js 22+
- Language: TypeScript 4.9+
- Database: SQLite (development), MySQL (production ready)
- Caching: Redis
- Configuration: YAML/JSON
- Development: Visual Studio Code recommended
- Node.js (version 22 or higher)
- Redis Server (requires WSL for Windows development)
- Git
- WSL (for Windows development)
-
Clone the repository
git clone https://github.com/your-repo/nodejs-flyff.git cd nodejs-flyff -
Install dependencies
yarn install # or npm install -
Set up Redis Server
- Windows: Follow the WSL Redis installation guide
- Linux/macOS:
sudo apt-get install redis-serverorbrew install redis
-
Configure the database
- SQLite is configured by default for development
- For MySQL, update the configuration files in
src/configs/
-
Start the servers
# Start all servers yarn dev login # Login server yarn dev cluster # Cluster server yarn dev world # World server
- Logger system
- Cryptography algorithms
- Packet handler infrastructure
- SQL database integration
- Entity Component System architecture
- Resource loading system (Defines, texts, items, NPCs, jobs, exp tables)
- WorldObject base class
- Mover entity (Player/Monster base)
- Player entity with full game systems
- Monster entity with AI behaviors
- NPC entity with dialog/shop systems
- MapItemObject for ground items
- Visibility System
- Mobility System
- Respawn System
- Inventory System (move, equip/unequip, save, drop, usage)
- Battle System (melee attacks, PvM combat)
- Drop System (pickup gold/items)
- Shop System (buy/sell items)
- NPC Dialog System
- Inter-Server communication and caching
- Client authentication process
- Character management (create, delete, list)
- 2nd password verification
- Chat System with admin commands
- Trade System
- Quest System
- Character customization system
- Attribute System
- Bank System
- Friend System
- Motion System
- Buff Pang System
- Mailbox System
- Guild System
- Skill System
- Item Bonus System
- Party System
- Job System
-
/cior/createitem- Create items -
/getgold- Add gold to inventory -
/teleport- Teleport to coordinates -
/ban|unban- Player management -
/mute|unmute- Chat moderation -
/freeze|unfreeze- Movement control -
/onekill- Admin combat mode -
/nodying- Invincibility mode -
/invisible- Visibility toggle -
/summon monster|player- Entity summoning
src/
βββ abstract/ # Base classes and interfaces
βββ common/ # Shared enums and constants
βββ configs/ # Server configuration files
βββ database/ # Database models and connections
βββ entities/ # Game entities (Player, Monster, NPC)
βββ helpers/ # Utility functions
βββ interfaces/ # TypeScript interfaces
βββ libraries/ # Core libraries (packets, networking)
βββ protocol/ # Network protocol definitions
βββ resources/ # Game data and resource loaders
βββ servers/ # Server implementations
βββ loginServer/
βββ clusterServer/
βββ worldServer/
We welcome contributions! Please see our Contributing Guidelines for details on how to get started.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and ensure TypeScript compilation passes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Entity Component System: Efficient entity management and component-based architecture
- Redis Caching: Fast inter-server communication and data caching
- Async/Await: Non-blocking I/O operations for optimal performance
- TypeScript: Type safety and enhanced developer experience
Please use the GitHub Issues page to report bugs or request features.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
- eD3ath - Project Creator & Lead Developer
- Original FlyFF development team for creating this amazing MMORPG
- Open-source community for tools and libraries
- Contributors and testers who help improve this project
Note: This is an educational and research project. Please respect the intellectual property rights of the original game creators.