Skip to content

ed3ath/Node-Flyff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

44 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NODE-FlyFF - Fly For Fun V19 Emulator

License: GPL v3 Node.js Version TypeScript

Overview

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.

⚠️ Disclaimer: This project is not affiliated with Gala Lab or any official FlyFF entities. ⚠️

πŸ—οΈ Architecture

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

πŸ› οΈ Technology Stack

  • Runtime: Node.js 22+
  • Language: TypeScript 4.9+
  • Database: SQLite (development), MySQL (production ready)
  • Caching: Redis
  • Configuration: YAML/JSON
  • Development: Visual Studio Code recommended

πŸ“‹ Prerequisites

πŸš€ Getting Started

Installation

  1. Clone the repository

    git clone https://github.com/your-repo/nodejs-flyff.git
    cd nodejs-flyff
  2. Install dependencies

    yarn install
    # or
    npm install
  3. Set up Redis Server

  4. Configure the database

    • SQLite is configured by default for development
    • For MySQL, update the configuration files in src/configs/
  5. Start the servers

    # Start all servers
    yarn dev login    # Login server
    yarn dev cluster  # Cluster server
    yarn dev world    # World server

πŸ“Š Feature Implementation Status

βœ… Completed Features

Common Systems

  • Logger system
  • Cryptography algorithms
  • Packet handler infrastructure
  • SQL database integration
  • Entity Component System architecture
  • Resource loading system (Defines, texts, items, NPCs, jobs, exp tables)

Entity Systems

  • 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

Core Game Systems

  • 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

πŸ”„ In Progress

Server Systems

  • Inter-Server communication and caching
  • Client authentication process
  • Character management (create, delete, list)
  • 2nd password verification

Game Features

  • Chat System with admin commands
  • Trade System
  • Quest System
  • Character customization system
  • Attribute System

πŸ“… Planned Features

Advanced Systems

  • Bank System
  • Friend System
  • Motion System
  • Buff Pang System
  • Mailbox System
  • Guild System
  • Skill System
  • Item Bonus System
  • Party System
  • Job System

Chat Commands (Planned)

  • /ci or /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

πŸ—‚οΈ Project Structure

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/

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details on how to get started.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and ensure TypeScript compilation passes
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

πŸ“ˆ Performance & Scalability

  • 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

πŸ› Bug Reports & Feature Requests

Please use the GitHub Issues page to report bugs or request features.

πŸ“ License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

πŸ‘₯ Contributors

  • eD3ath - Project Creator & Lead Developer

πŸ™ Acknowledgments

  • 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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published