/fortnitepy

Async python library for interacting with Fortnite's API and XMPP services.

Primary LanguagePythonMIT LicenseMIT

fortnitepy

Supported py versions Current pypi version Donate link

Asynchronous library for interacting with Fortnite and EpicGames' API and XMPP services.

Note: This library is still under developement so breaking changes might happen at any time.

Some key features:

  • Full support for Friends.
  • Support for XMPP events including friend and party messages + many more.
  • Support for Parties.
  • Support for Battle Royale stats.

Documentation

https://fortnitepy.readthedocs.io/en/latest/

Installing

# windows
py -3 -m pip install -U fortnitepy

# linux
python3 -m pip install -U fortnitepy

Basic usage

import fortnitepy
import json
import os

from fortnitepy.ext import commands

email = 'email@email.com'
password = 'password1'
filename = 'device_auths.json'

def get_device_auth_details():
    if os.path.isfile(filename):
        with open(filename, 'r') as fp:
            return json.load(fp)
    return {}

def store_device_auth_details(email, details):
    existing = get_device_auth_details()
    existing[email] = details

    with open(filename, 'w') as fp:
        json.dump(existing, fp)

device_auth_details = get_device_auth_details().get(email, {})
bot = commands.Bot(
    command_prefix='!',
    auth=fortnitepy.AdvancedAuth(
        email=email,
        password=password,
        prompt_authorization_code=True,
        prompt_code_if_invalid=True,
        delete_existing_device_auths=True,
        **device_auth_details
    )
)

@bot.event
async def event_device_auth_generate(details, email):
    store_device_auth_details(email, details)

@bot.event
async def event_ready():
    print('----------------')
    print('Bot ready as')
    print(bot.user.display_name)
    print(bot.user.id)
    print('----------------')

@bot.event
async def event_friend_request(request):
    await request.accept()

@bot.command()
async def hello(ctx):
    await ctx.send('Hello!')

bot.run()

Authorization

How to get a one time authorization code:

  1. Log into the epic games account of your choice here.
  2. Copy the hex part from the url that shows up as showcased by the image below:

Authorization Code

Credit

Thanks to Kysune, iXyles, Vrekt and amrsatrio for ideas and/or work that this library is built upon.

Also thanks to discord.py for much inspiration code-wise.

Need help?

If you need more help feel free to join this discord server.