Skip to content

stephendo-dev/phantom-dancer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Phantom Dancer

image

A modern macOS desktop application that allows you to appear offline in League of Legends, VALORANT, and Legends of Runeterra without losing any functionality.

Ko-fi

About

Phantom Dancer is a native macOS port and modernization of the Deceive project, rebuilt from the ground up using modern .NET 9.0 and Avalonia framework. This project brings the offline appearance functionality to macOS users through a clean, native desktop experience.

Original Project: Deceive by Thijs Molendijk

Features

  • Appear Offline: Show as offline to your friends while maintaining full functionality
  • Full Access: Invite friends, accept invites, communicate in champion/agent select
  • System Tray Integration: Minimalist tray icon for easy management
  • Presence Control: Switch between online, offline, and mobile status
  • Modern UI: Built with Avalonia for a native look and feel on macOS
  • Lightweight: Efficient resource usage with single executable distribution

Preview

Screenshot 2026-07-13 at 21 39 41

How It Works

Phantom Dancer works by intercepting traffic between the Riot Client and chat servers, allowing you to control your presence without affecting any game functionality. All communication features remain fully operational.

Installation

macOS

Download Phantom.app or Phantom.dmg from the Releases page.

Building from Source

Requirements

  • .NET 9.0 SDK or later
  • macOS 10.15+

Build Steps

  1. Clone the repository:

    git clone https://github.com/stephendo-dev/phantom-dancer.git
    cd phantom-dancer
  2. Restore dependencies:

    dotnet restore
  3. Build the project:

    dotnet build
  4. Run the application:

    dotnet run --project Phantom/Phantom.csproj

Build Release Executable

dotnet publish -c Release

FAQ

Can I invite people? Can they invite me?

Your friends list works normally - you can invite everyone. Friends won't be able to invite you, but they can still accept your invites.

Can I communicate in champion/agent select?

Yes! Only your global presence is filtered. All in-game communication works perfectly.

How do I choose which game to launch?

On first launch, Phantom Dancer will ask which game you want to connect to. You can change this anytime using the tray icon. You can also launch with command-line arguments:

PhantomDancer lol        # League of Legends
PhantomDancer valorant   # VALORANT
PhantomDancer lor        # Legends of Runeterra

Is this approved by Riot?

Riot has confirmed that you won't get banned for using Deceive (the original project). However, modifications may break at any time.

I'm getting DNS resolution errors

Phantom Dancer intercepts traffic using deceive-localhost.molenzwiebel.xyz. If your network doesn't resolve this domain, try:

  1. Change DNS to Cloudflare (1.1.1.1) or Google (8.8.8.8)
  2. Edit hosts file and add:
    127.0.0.1 deceive-localhost.molenzwiebel.xyz
    

For detailed instructions, search "how to edit hosts file [your OS]".

Technology Stack

  • Framework: .NET 9.0
  • UI Framework: Avalonia 11.0
  • Architecture: MVVM (Model-View-ViewModel)
  • Key Dependencies:
    • Avalonia.Desktop - Cross-platform UI
    • CommunityToolkit.Mvvm - MVVM utilities
    • EmbedIO - Web server for communication
    • System.CommandLine - Command-line parsing

Project Structure

phantom-dancer/
├── Phantom/                    # Main application
│   ├── Phantom.csproj         # Project file
│   ├── Resources/             # Icons and assets
│   │   ├── phantom.ico
│   │   ├── tray.png
│   │   ├── PhantomDancer.icns # macOS icon
│   │   └── games/             # Game icons
│   └── ...
├── Phantom.sln                # Solution file
├── scripts/                   # Build utilities
└── README.md

License

Licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

This project is a modernized port of Deceive by Thijs Molendijk. The core functionality and approach remain faithful to the original project while being rebuilt for modern .NET and expanded to macOS with native support.

Contributing

Contributions are welcome! Feel free to submit Pull Requests for bug fixes, features, or improvements.

Support

If you find this project useful and would like to support its development, you can donate via:

For issues or questions, please open an issue on GitHub.


Note: This is a third-party project. It is not affiliated with, endorsed by, or in any way associated with Riot Games, Inc. or any of its properties.

About

MacOS application for appearing offline in Riot games (LoL, LoR)

Topics

Resources

License

Stars

2 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors