Performance first, universal Fortnite private server backend written in Go.
Go to file
eccentric f4fa7866fd Update profiles to add MultiUpdates and Notifications;
Add purchasing form storefront!
2023-12-03 20:16:40 +00:00
aid Finish Loadouts on newer seasons; Add every item in the game. 2023-11-20 23:20:42 +00:00
fortnite Update profiles to add MultiUpdates and Notifications; 2023-12-03 20:16:40 +00:00
handlers Update profiles to add MultiUpdates and Notifications; 2023-12-03 20:16:40 +00:00
person Update profiles to add MultiUpdates and Notifications; 2023-12-03 20:16:40 +00:00
storage Working Multi-Season Storefront 2023-12-03 02:02:19 +00:00
.air.toml Refactor how config is used. 2023-11-01 21:51:14 +00:00
.gitignore Continue to research how fortnite storefront works. 2023-11-26 22:39:05 +00:00
default.config.ini Fix Port 2023-11-27 18:53:28 +00:00
go.mod Continue to research how fortnite storefront works. 2023-11-26 22:39:05 +00:00
go.sum Continue to research how fortnite storefront works. 2023-11-26 22:39:05 +00:00
main.go Basic Discovery to select playlists on newer versions 2023-12-03 18:25:03 +00:00
makefile Hello, World! 2023-10-31 22:40:14 +00:00
readme.md Improve Database Queries by 1000x; Add support for newer seasons; Lockers nearly implemented. 2023-11-20 21:20:26 +00:00

1

Snow

Performance first, universal Fortnite private server backend written in Go.

Features

  • Blazing Fast Written in Go and build on Fast HTTP, snow is extremely fast and can handle any profile action in milliseconds with its caching system.
  • Profile Changes Snow, semi-automatically, keeps track of profile changes exactly like Fortnite does, meaning it is one-to-one with the game.
  • Universal Database Easily add new storage methods that satisfy the Storage interface. This means you can use any database you want. (example of how to do this coming soon)

Examples of Person Structures

Quests

schedule := person.NewItem("ChallengeBundleSchedule:Paid_1", 1)
user.AthenaProfile.Items.AddItem(schedule)

bundle := person.NewItem("ChallengeBundle:Daily_1", 1)
user.AthenaProfile.Items.AddItem(bundle)

quest := person.NewQuest("Quest:Quest_2", bundle.ID, schedule.ID)
quest.AddObjective("quest_objective_eliminateplayers", 0)
user.AthenaProfile.Quests.AddQuest(quest)

daily := person.NewDailyQuest("Quest:Quest_3")
daily.AddObjective("quest_objective_place_top10", 0)
user.AthenaProfile.Quests.AddQuest(daily)

Profile Changes

snapshot := user.CommonCoreProfile.Snapshot()
{
  vbucks := user.CommonCoreProfile.Items.GetItemByTemplateID("Currency:MtxPurchased")
  vbucks.Quantity = 200
  vbucks.Favorite = true

  user.CommonCoreProfile.Items.DeleteItem(user.CommonCoreProfile.Items.GetItemByTemplateID("Token:CampaignAccess").ID)
  user.CommonCoreProfile.Items.AddItem(person.NewItem("Token:ReceiveMtxCurrency", 1))
}
user.CommonCoreProfile.Diff(snapshot)

What's next?

  • Every endpoint that is used by Fortnite. This includes all MCP Operations, extracting data from the telemetry and even the Party Service (maybe party v2).
  • Automatic storefront that uses previous data to generate a storefront. This would use item shops from history to make sure there are no blank spots in the storefront. Also battle pass tiers etc.
  • Embed game assets into the backend e.g. Battle Pass, Quest Data etc. This would mean a single binary that can be run anywhere without the need of external files.
  • Interact with external Services like Amazon S3 Buckets to save player data externally.
  • A way to interact with accounts outside of the game. This is mainly for a web app and other services to interact with the backend.

Version Support

Supported

  • Chapter 1 Season 2 Fortnite+Release-2.5-CL-3889387-Windows I started with this build of the game as it requires more work to get working, this means snow can support most versions of the game.
  • Chapter 1 Season 5 Fortnite+Release-5.41-CL-4363240-Windows This build was used to make sure challenges, variants and lobby backgrounds work.
  • Chapter 1 Season 8 Fortnite+Release-8.51-CL-6165369-Windows Fixed the invisible player bug caused by invalid account responses. Also fixed the issue with the item shop spamming the api.
  • Chapter 3 Season 1 Fortnite+Release-19.10-CL-Unknown-Windows This is a very new build of fortnite that introfuces alot of different methods e.g. locker data is now stored as an item. Every MCP action is now fully working and tested. You need to start using easy anticheat otherwise this will not work.

Broken

  • Chapter 1 Season 4 Fortnite+Release-4.5-CL-4159770-Windows Does not accept the JWT Token for user authentication. I have some ideas why however not planned for a fix.

How do I use this?

It is technically possible to clone the repository and host the backend. However, this is in a very early stage and does not have a lot of features. For example, you cannot create an account externally. I would recommend waiting until the backend is more stable and has more features before using it.

Contributing

Contributions are welcome! Please open an issue or pull request if you would like to contribute.