mirror of
https://github.com/Auties00/Reboot-Launcher.git
synced 2026-01-13 03:02:22 +01:00
Renamed backend into auth_backend and added server_browser_backend implementation to replace Supabase.
This commit is contained in:
28
auth_backend/CloudStorage/DefaultEngine.ini
Normal file
28
auth_backend/CloudStorage/DefaultEngine.ini
Normal file
@@ -0,0 +1,28 @@
|
||||
# Do not remove/change, this redirects epicgames xmpp to lawinserver xmpp
|
||||
[OnlineSubsystemMcp.Xmpp]
|
||||
bUseSSL=false
|
||||
ServerAddr="ws://127.0.0.1"
|
||||
ServerPort=8080
|
||||
|
||||
# Do not remove/change, this redirects epicgames xmpp to lawinserver xmpp
|
||||
[OnlineSubsystemMcp.Xmpp Prod]
|
||||
bUseSSL=false
|
||||
ServerAddr="ws://127.0.0.1"
|
||||
ServerPort=8080
|
||||
|
||||
# Forces fortnite to use the v1 party system to support lawinserver xmpp
|
||||
[OnlineSubsystemMcp]
|
||||
bUsePartySystemV2=false
|
||||
|
||||
# Forces fortnite to use the v1 party system to support lawinserver xmpp
|
||||
[OnlineSubsystemMcp.OnlinePartySystemMcpAdapter]
|
||||
bUsePartySystemV2=false
|
||||
|
||||
# Fix for XMPP not working on some versions
|
||||
[XMPP]
|
||||
bEnableWebsockets=true
|
||||
|
||||
# Fix for long waiting at checking connections to datacenters on Switch & Mobile
|
||||
[/Script/Qos.QosRegionManager]
|
||||
NumTestsPerRegion=1
|
||||
PingTimeout=0.1
|
||||
26
auth_backend/CloudStorage/DefaultGame.ini
Normal file
26
auth_backend/CloudStorage/DefaultGame.ini
Normal file
@@ -0,0 +1,26 @@
|
||||
[/Script/FortniteGame.FortGlobals]
|
||||
bAllowLogout=true # Enables log out button.
|
||||
|
||||
[/Script/FortniteGame.FortChatManager]
|
||||
bShouldRequestGeneralChatRooms=true # Request for chat rooms (global chat and founders chat).
|
||||
bShouldJoinGlobalChat=true
|
||||
bShouldJoinFounderChat=true
|
||||
bIsAthenaGlobalChatEnabled=true # Battle royale global chat.
|
||||
|
||||
[/Script/FortniteGame.FortTextHotfixConfig]
|
||||
+TextReplacements=(Category=Game, Namespace="", bIsMinimalPatch=True, Key="D5ECE3CD484655CBAE1DB6922C1D87C7", NativeString="Getting Started", LocalizedStrings=(("ar","مرحبًا بك في LawinServer!"),("en","Welcome to LawinServer!"),("de","Willkommen bei LawinServer!"),("es","¡Bienvenidos a LawinServer!"),("es-419","¡Bienvenidos a LawinServer!"),("fr","Bienvenue sur LawinServer !"),("it","Benvenuto in LawinServer!"),("ja","LawinServerへようこそ!"),("ko","LawinServer에 오신 것을 환영합니다!"),("pl","Witaj w LawinServerze!"),("pt-BR","Bem-vindo ao LawinServer!"),("ru","Добро пожаловать в LawinServer!"),("tr","LavinServer'a Hoş Geldiniz!")))
|
||||
+TextReplacements=(Category=Game, Namespace="", bIsMinimalPatch=True, Key="CD9D4C7A4486689DB9D16B8A7E290B08", NativeString="Not bad! So, what you'd call this place?", LocalizedStrings=(("ar","استمتع بتجربة لعب استثنائية!"),("en","Have a phenomenal gaming experience!"),("de","Wünsche allen ein wunderbares Spielerlebnis!"),("es","¡Que disfrutes de tu experiencia de videojuegos!"),("es-419","¡Ten una experiencia de juego espectacular!"),("fr","Un bon jeu à toutes et à tous !"),("it","Ti auguriamo un'esperienza di gioco fenomenale!"),("ja","驚きの体験をしよう!"),("ko","게임에서 환상적인 경험을 해보세요!"),("pl","Życzymy fenomenalnej gry!"),("pt-BR","Tenha uma experiência de jogo fenomenal!"),("ru","Желаю невероятно приятной игры!"),("tr","Muhteşem bir oyun deneyimi yaşamanı dileriz!")))
|
||||
+TextReplacements=(Category=Game, Namespace="", bIsMinimalPatch=True, Key="8E762BB6481EE8FE630559BE5A982622", NativeString="Enter your Homebase name.", LocalizedStrings=(("ar","LawinServer"),("en","LawinServer"),("de","LawinServer"),("es","LawinServer"),("es-419","LawinServer"),("fr","LawinServer"),("it","LawinServer"),("ja","LawinServer"),("ko","LawinServer"),("pl","LawinServer"),("pt-BR","LawinServer"),("ru","LawinServer"),("tr","LawinServer")))
|
||||
|
||||
[/Script/FortniteGame.FortGameInstance]
|
||||
!FrontEndPlaylistData=ClearArray
|
||||
+FrontEndPlaylistData=(PlaylistName=Playlist_DefaultSolo, PlaylistAccess=(bEnabled=True, bIsDefaultPlaylist=true, bVisibleWhenDisabled=false, bDisplayAsNew=false, CategoryIndex=0, bDisplayAsLimitedTime=false, DisplayPriority=3))
|
||||
+FrontEndPlaylistData=(PlaylistName=Playlist_DefaultDuo, PlaylistAccess=(bEnabled=True, bIsDefaultPlaylist=true, bVisibleWhenDisabled=false, bDisplayAsNew=false, CategoryIndex=0, bDisplayAsLimitedTime=false, DisplayPriority=4))
|
||||
+FrontEndPlaylistData=(PlaylistName=Playlist_Trios, PlaylistAccess=(bEnabled=true, bIsDefaultPlaylist=true, bVisibleWhenDisabled=false, bDisplayAsNew=False, bDisplayAsLimitedTime=false, DisplayPriority=5, CategoryIndex=0))
|
||||
+FrontEndPlaylistData=(PlaylistName=Playlist_DefaultSquad, PlaylistAccess=(bEnabled=true, bIsDefaultPlaylist=true, bVisibleWhenDisabled=false, bDisplayAsNew=false, CategoryIndex=0, bDisplayAsLimitedTime=false, DisplayPriority=6))
|
||||
+FrontEndPlaylistData=(PlaylistName=Playlist_PlaygroundV2, PlaylistAccess=(bEnabled=true, bIsDefaultPlaylist=false, bVisibleWhenDisabled=false, bDisplayAsNew=false, CategoryIndex=2, bDisplayAsLimitedTime=false, DisplayPriority=16))
|
||||
+FrontEndPlaylistData=(PlaylistName=Playlist_Campaign, PlaylistAccess=(bEnabled=true, bInvisibleWhenEnabled=true))
|
||||
|
||||
[/Script/FortniteGame.FortOnlineAccount]
|
||||
bEnableEulaCheck=false
|
||||
bShouldCheckIfPlatformAllowed=false
|
||||
3
auth_backend/CloudStorage/DefaultInput.ini
Normal file
3
auth_backend/CloudStorage/DefaultInput.ini
Normal file
@@ -0,0 +1,3 @@
|
||||
[/Script/Engine.InputSettings]
|
||||
+ConsoleKeys=Tilde # Enables console using the tilde key
|
||||
+ConsoleKeys=F8 # Enables console using the F8 key
|
||||
13
auth_backend/CloudStorage/DefaultRuntimeOptions.ini
Normal file
13
auth_backend/CloudStorage/DefaultRuntimeOptions.ini
Normal file
@@ -0,0 +1,13 @@
|
||||
[/Script/FortniteGame.FortRuntimeOptions]
|
||||
bEnableGlobalChat=true # Enable global chat.
|
||||
bEnableMexiCola=true # Enable the new friends tab (v19.00+).
|
||||
bLoadDirectlyIntoLobby=false # Enable the Select Game Mode screen.
|
||||
bEnableSocialTab=true # Enable the Rift Tour frontend section (v17.30).
|
||||
!SocialRTInfo=ClearArray
|
||||
+SocialRTInfo=(SlotId=1,StartsAtUTC=9999.08.06-22.00.00)
|
||||
+SocialRTInfo=(SlotId=2,StartsAtUTC=9999.08.07-18.00.00)
|
||||
+SocialRTInfo=(SlotId=3,StartsAtUTC=9999.08.08-04.00.00)
|
||||
+SocialRTInfo=(SlotId=4,StartsAtUTC=9999.08.08-14.00.00)
|
||||
+SocialRTInfo=(SlotId=5,StartsAtUTC=9999.08.08-22.00.00)
|
||||
!ExperimentalCohortPercent=ClearArray
|
||||
+ExperimentalCohortPercent=(CohortPercent=100,ExperimentNum=20) # Supervised settings bug fix.
|
||||
35
auth_backend/Config/catalog_config.json
Normal file
35
auth_backend/Config/catalog_config.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"//": "BR Item Shop Config",
|
||||
"daily1": {
|
||||
"itemGrants": [""],
|
||||
"price": 0
|
||||
},
|
||||
"daily2": {
|
||||
"itemGrants": [""],
|
||||
"price": 0
|
||||
},
|
||||
"daily3": {
|
||||
"itemGrants": [""],
|
||||
"price": 0
|
||||
},
|
||||
"daily4": {
|
||||
"itemGrants": [""],
|
||||
"price": 0
|
||||
},
|
||||
"daily5": {
|
||||
"itemGrants": [""],
|
||||
"price": 0
|
||||
},
|
||||
"daily6": {
|
||||
"itemGrants": [""],
|
||||
"price": 0
|
||||
},
|
||||
"featured1": {
|
||||
"itemGrants": [""],
|
||||
"price": 0
|
||||
},
|
||||
"featured2": {
|
||||
"itemGrants": [""],
|
||||
"price": 0
|
||||
}
|
||||
}
|
||||
79
auth_backend/Config/config.ini
Normal file
79
auth_backend/Config/config.ini
Normal file
@@ -0,0 +1,79 @@
|
||||
[Config]
|
||||
# If this is set to false, it will use the email to display name method.
|
||||
bUseConfigDisplayName=false
|
||||
# Your fortnite display name (will only be used if the property above is set to true).
|
||||
displayName=LawinServer
|
||||
|
||||
[Profile]
|
||||
# If this is set to true, every BR and StW seasonal quest will be on complete. Works for Battle Royale from Season 3 to Season 21 and for Save the World from Season 2 to Season X & Season 24.
|
||||
bCompletedSeasonalQuests=false
|
||||
# If this is set to true, you will receive all founder's pack rewards upon logging into StW if the account didn't claim them yet.
|
||||
bGrantFoundersPacks=false
|
||||
# If this is set to true, all Save the World events will be displayed in lobby.
|
||||
bAllSTWEventsActivated=false
|
||||
|
||||
[GameServer]
|
||||
# Matchmaker gameserver config, you can use this to connect to gameservers like rift (titanium), fortmp, etc... (they have to be hosting though).
|
||||
|
||||
# IP the matchmaker will use upon join.
|
||||
ip=127.0.0.1
|
||||
# PORT the matchmaker will use upon join.
|
||||
port=7777
|
||||
|
||||
[Events]
|
||||
# All dates must be specified using ISO date format only (UTC).
|
||||
# *Requires a Gameserver connected to this LawinServer backend. Clients can use other backends.
|
||||
|
||||
## The Rocket Start event. (v4.5 Only)*
|
||||
|
||||
# If this is set to true, the event countdown will appear next to
|
||||
# the Rocket and the event will start at the date below.
|
||||
bEnableGeodeEvent=false
|
||||
geodeEventStartDate=2020-01-01T00:00:00.000Z
|
||||
# If this is set to true, the Crack will stay in the sky AFTER the event.
|
||||
# The crack will fully expand after ~13.6 real days after the Rocket event start date.
|
||||
bEnableCrackInTheSky=false
|
||||
|
||||
## Eight mini-events which took the following objects from the map: (v4.5 Only)*
|
||||
## 1. Lonely Lodge Sign, 2. Motel Sign, 3. Tomatohead Mascot, 4. NOMS Sign, 5. Durr Burger Mascot
|
||||
## and brought the following objects to the map:
|
||||
## 6. Ship Anchor, 7. Horse Carriage, 8. Dinosaur Skeleton.
|
||||
## To see the exact locations, you can check out this video: https://youtu.be/NXL7rkiJVqM
|
||||
|
||||
# If this is set to true, the blue rift effects will appear at places mentioned above.
|
||||
bEnableS4OddityPrecursor=false
|
||||
# If this is set to true, the mini-events will begin to start. (Adjust the options below)
|
||||
bEnableS4OddityExecution=false
|
||||
# Start date for the Season 4 mini-events. If you have the Rocket event enabled as
|
||||
# well, then set this date to at least 4 minutes after your Rocket start date.
|
||||
S4OddityEventStartDate=2020-01-01T00:00:00.000Z
|
||||
# Time (in minutes) after which another mini-event (1-8) will occur.
|
||||
# If set to 0, all mini-events will happen at once.
|
||||
S4OddityEventsInterval=0
|
||||
|
||||
## Tomatohead Comeback mini-event. (v5.21 Only)*
|
||||
|
||||
# When set to true, the blue rift effects will start appearing on
|
||||
# top of the Tomato Town restaurant at the date specified below.
|
||||
bEnableS5OddityPrecursor=false
|
||||
S5OddityPrecursorDate=2020-01-01T00:00:00.000Z
|
||||
# When set to true, Tomatohead will be rifted back to Tomato Town at the date specified below.
|
||||
bEnableS5OddityExecution=false
|
||||
S5OddityExecutionDate=2020-01-01T00:00:00.000Z
|
||||
|
||||
## Lightning from the sky Crack and Cube Spawning Event. (v5.30 Only)*
|
||||
|
||||
# When set to true, the crack will start shooting lightning bolts destroying
|
||||
# cacti and eventually spawn the cube on the date specified below.
|
||||
bEnableCubeLightning=false
|
||||
cubeSpawnDate=2020-01-01T00:00:00.000Z
|
||||
|
||||
## Blockbuster Contest winner video at Risky Reels event. (v5.30 Only)*
|
||||
bEnableBlockbusterRiskyEvent=false
|
||||
|
||||
## Cube melting in Loot Lake event. (v5.41 Only)*
|
||||
|
||||
# When set to true, the cube will fall into Loot Lake and start melting on the date specified below.
|
||||
# After the event, Loot Lake will remain purple in new matches.
|
||||
bEnableCubeLake=false
|
||||
cubeLakeDate=2020-01-01T00:00:00.000Z
|
||||
674
auth_backend/LICENSE
Normal file
674
auth_backend/LICENSE
Normal file
@@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
4
auth_backend/README.md
Normal file
4
auth_backend/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Backend
|
||||
Fork of LawinV1
|
||||
Awaiting rewrite in Dart
|
||||
Use build.bat to generate the executable
|
||||
1
auth_backend/build.bat
Normal file
1
auth_backend/build.bat
Normal file
@@ -0,0 +1 @@
|
||||
npx nexe --build
|
||||
75
auth_backend/index.js
Normal file
75
auth_backend/index.js
Normal file
@@ -0,0 +1,75 @@
|
||||
const Express = require("express");
|
||||
const express = Express();
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const cookieParser = require("cookie-parser");
|
||||
|
||||
const audit = require('express-requests-logger')
|
||||
express.use(audit({
|
||||
request: {
|
||||
maxBodyLength: 150
|
||||
},
|
||||
response: {
|
||||
maxBodyLength: 150
|
||||
}
|
||||
}));
|
||||
|
||||
express.use(Express.json());
|
||||
express.use(Express.urlencoded({ extended: true }));
|
||||
express.use(Express.static('public'));
|
||||
express.use(cookieParser());
|
||||
|
||||
express.use(require("./structure/party.js"));
|
||||
express.use(require("./structure/discovery.js"))
|
||||
express.use(require("./structure/privacy.js"));
|
||||
express.use(require("./structure/timeline.js"));
|
||||
express.use(require("./structure/user.js"));
|
||||
express.use(require("./structure/contentpages.js"));
|
||||
express.use(require("./structure/friends.js"));
|
||||
express.use(require("./structure/main.js"));
|
||||
express.use(require("./structure/storefront.js"));
|
||||
express.use(require("./structure/version.js"));
|
||||
express.use(require("./structure/lightswitch.js"));
|
||||
express.use(require("./structure/affiliate.js"));
|
||||
express.use(require("./structure/matchmaking.js"));
|
||||
express.use(require("./structure/cloudstorage.js"));
|
||||
express.use(require("./structure/mcp.js"));
|
||||
|
||||
const port = 3551;
|
||||
express.listen(port, () => {
|
||||
console.log("LawinServer started listening on port", port);
|
||||
|
||||
require("./structure/xmpp.js");
|
||||
}).on("error", (err) => {
|
||||
if (err.code == "EADDRINUSE") console.log(`\x1b[31mERROR\x1b[0m: Port ${port} is already in use!`);
|
||||
else throw err;
|
||||
|
||||
process.exit(0);
|
||||
});
|
||||
|
||||
try {
|
||||
if (!fs.existsSync(path.join(process.env.LOCALAPPDATA, "LawinServer"))) fs.mkdirSync(path.join(process.env.LOCALAPPDATA, "LawinServer"));
|
||||
} catch (err) {
|
||||
// fallback
|
||||
if (!fs.existsSync(path.join(__dirname, "ClientSettings"))) fs.mkdirSync(path.join(__dirname, "ClientSettings"));
|
||||
}
|
||||
|
||||
// if endpoint not found, return this error
|
||||
express.use((req, res, next) => {
|
||||
var XEpicErrorName = "errors.com.lawinserver.common.not_found";
|
||||
var XEpicErrorCode = 1004;
|
||||
|
||||
res.set({
|
||||
'X-Epic-Error-Name': XEpicErrorName,
|
||||
'X-Epic-Error-Code': XEpicErrorCode
|
||||
});
|
||||
|
||||
res.status(404);
|
||||
res.json({
|
||||
"errorCode": XEpicErrorName,
|
||||
"errorMessage": "Sorry the resource you were trying to find could not be found",
|
||||
"numericErrorCode": XEpicErrorCode,
|
||||
"originatingService": "any",
|
||||
"intent": "prod"
|
||||
});
|
||||
});
|
||||
0
auth_backend/install_packages.bat
Normal file
0
auth_backend/install_packages.bat
Normal file
5704
auth_backend/package-lock.json
generated
Normal file
5704
auth_backend/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
38
auth_backend/package.json
Normal file
38
auth_backend/package.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"name": "lawinserver",
|
||||
"version": "1.0.0",
|
||||
"description": "A fortnite backend which supports both BR and STW for every single fortnite build.",
|
||||
"main": "index.js",
|
||||
"dependencies": {
|
||||
"cookie-parser": "^1.4.6",
|
||||
"express": "^4.18.2",
|
||||
"ini": "^2.0.0",
|
||||
"nexe": "^4.0.0-rc.6",
|
||||
"path": "^0.12.7",
|
||||
"uuid": "^8.3.2",
|
||||
"ws": "^8.5.0",
|
||||
"xml-parser": "^1.2.1",
|
||||
"xmlbuilder": "^15.1.1",
|
||||
"express-requests-logger": "^4.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node index.js",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/Lawin0129/LawinServer.git"
|
||||
},
|
||||
"keywords": [
|
||||
"fortnite",
|
||||
"backend",
|
||||
"node",
|
||||
"server"
|
||||
],
|
||||
"author": "Lawin0129",
|
||||
"license": "GPL-3.0",
|
||||
"bugs": {
|
||||
"url": "https://github.com/Lawin0129/LawinServer/issues"
|
||||
},
|
||||
"homepage": "https://github.com/Lawin0129/LawinServer#readme"
|
||||
}
|
||||
135176
auth_backend/profiles/athena.json
Normal file
135176
auth_backend/profiles/athena.json
Normal file
File diff suppressed because it is too large
Load Diff
63677
auth_backend/profiles/campaign.json
Normal file
63677
auth_backend/profiles/campaign.json
Normal file
File diff suppressed because it is too large
Load Diff
178
auth_backend/profiles/collection_book_people0.json
Normal file
178
auth_backend/profiles/collection_book_people0.json
Normal file
@@ -0,0 +1,178 @@
|
||||
{
|
||||
"_id": "LawinServer",
|
||||
"created": "0001-01-01T00:00:00.000Z",
|
||||
"updated": "0001-01-01T00:00:00.000Z",
|
||||
"rvn": 1,
|
||||
"wipeNumber": 1,
|
||||
"accountId": "LawinServer",
|
||||
"profileId": "collection_book_people0",
|
||||
"version": "no_version",
|
||||
"items": {
|
||||
"CollectionBookPage:pageHeroes_Commando": {
|
||||
"templateId": "CollectionBookPage:pageHeroes_Commando",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageHeroes_Constructor": {
|
||||
"templateId": "CollectionBookPage:pageHeroes_Constructor",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageHeroes_Ninja": {
|
||||
"templateId": "CollectionBookPage:pageHeroes_Ninja",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageHeroes_Outlander": {
|
||||
"templateId": "CollectionBookPage:pageHeroes_Outlander",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pagePeople_Defenders": {
|
||||
"templateId": "CollectionBookPage:pagePeople_Defenders",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pagePeople_Survivors": {
|
||||
"templateId": "CollectionBookPage:pagePeople_Survivors",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pagePeople_Leads": {
|
||||
"templateId": "CollectionBookPage:pagePeople_Leads",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pagePeople_UniqueLeads": {
|
||||
"templateId": "CollectionBookPage:pagePeople_UniqueLeads",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Winter2017_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Winter2017_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Halloween2017_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Halloween2017_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Halloween2017_Workers": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Halloween2017_Workers",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_ChineseNewYear2018_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_ChineseNewYear2018_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_SpringItOn2018_People": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_SpringItOn2018_People",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_StormZoneCyber_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_StormZoneCyber_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Blockbuster2018_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Blockbuster2018_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_ShadowOps_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_ShadowOps_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_RoadTrip2018_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_RoadTrip2018_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_WildWest_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_WildWest_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_StormZone_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_StormZone_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Scavenger_Heroes": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Scavenger_Heroes",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"attributes": {
|
||||
"inventory_limit_bonus": 0
|
||||
}
|
||||
},
|
||||
"commandRevision": 0
|
||||
}
|
||||
458
auth_backend/profiles/collection_book_schematics0.json
Normal file
458
auth_backend/profiles/collection_book_schematics0.json
Normal file
@@ -0,0 +1,458 @@
|
||||
{
|
||||
"_id": "LawinServer",
|
||||
"created": "0001-01-01T00:00:00.000Z",
|
||||
"updated": "0001-01-01T00:00:00.000Z",
|
||||
"rvn": 1,
|
||||
"wipeNumber": 1,
|
||||
"accountId": "LawinServer",
|
||||
"profileId": "collection_book_schematics0",
|
||||
"version": "no_version",
|
||||
"items": {
|
||||
"CollectionBookPage:pageMelee_Axes_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Axes_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Axes_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Axes_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Clubs_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Clubs_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Clubs_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Clubs_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Scythes_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Scythes_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Scythes_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Scythes_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Spears_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Spears_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Spears_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Spears_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Swords_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Swords_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Swords_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Swords_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Tools_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Tools_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageMelee_Tools_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:pageMelee_Tools_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageRanged_Assault_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageRanged_Assault_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageRanged_Assault_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:pageRanged_Assault_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageRanged_Shotgun_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageRanged_Shotgun_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageRanged_Shotgun_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:pageRanged_Shotgun_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:page_Ranged_Pistols_Weapons": {
|
||||
"templateId": "CollectionBookPage:page_Ranged_Pistols_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:page_Ranged_Pistols_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:page_Ranged_Pistols_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageRanged_Snipers_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageRanged_Snipers_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageRanged_Snipers_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:pageRanged_Snipers_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageRanged_Explosive_Weapons": {
|
||||
"templateId": "CollectionBookPage:pageRanged_Explosive_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageTraps_Wall": {
|
||||
"templateId": "CollectionBookPage:pageTraps_Wall",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageTraps_Ceiling": {
|
||||
"templateId": "CollectionBookPage:pageTraps_Ceiling",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:pageTraps_Floor": {
|
||||
"templateId": "CollectionBookPage:pageTraps_Floor",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Ranged_Medieval": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Ranged_Medieval",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Ranged_Medieval_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Ranged_Medieval_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Melee_Medieval": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Melee_Medieval",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Melee_Medieval_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Melee_Medieval_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Winter2017_Weapons": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Winter2017_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Winter2017_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Winter2017_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_RatRod_Weapons": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_RatRod_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_RatRod_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_RatRod_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Ranged_Winter2017": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Ranged_Winter2017",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Ranged_Winter2017_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Ranged_Winter2017_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Melee_Winter2017": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Melee_Winter2017",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Melee_Winter2017_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Melee_Winter2017_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_ChineseNewYear2018": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_ChineseNewYear2018",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Crystal_ChineseNewYear2018": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Crystal_ChineseNewYear2018",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_StormZoneCyber_Ranged": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_StormZoneCyber_Ranged",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_StormZoneCyber_Melee": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_StormZoneCyber_Melee",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_StormZoneCyber_Ranged_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_StormZoneCyber_Ranged_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_StormZoneCyber_Melee_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_StormZoneCyber_Melee_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Blockbuster2018_Ranged": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Blockbuster2018_Ranged",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Blockbuster2018_Ranged_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Blockbuster2018_Ranged_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_RoadTrip2018_Weapons": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_RoadTrip2018_Weapons",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_RoadTrip2018_Weapons_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_RoadTrip2018_Weapons_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Ranged_StormZone2": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Ranged_StormZone2",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Ranged_StormZone2_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Ranged_StormZone2_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Melee_StormZone2": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Melee_StormZone2",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Weapons_Melee_StormZone2_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Weapons_Melee_StormZone2_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Hydraulic": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Hydraulic",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Hydraulic_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Hydraulic_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Scavenger": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Scavenger",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:PageSpecial_Scavenger_Crystal": {
|
||||
"templateId": "CollectionBookPage:PageSpecial_Scavenger_Crystal",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"CollectionBookPage:test_TestPage": {
|
||||
"templateId": "CollectionBookPage:test_TestPage",
|
||||
"attributes": {
|
||||
"sectionStates": [],
|
||||
"state": "Active"
|
||||
},
|
||||
"quantity": 1
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"attributes": {
|
||||
"inventory_limit_bonus": 0
|
||||
}
|
||||
},
|
||||
"commandRevision": 0
|
||||
}
|
||||
15
auth_backend/profiles/collections.json
Normal file
15
auth_backend/profiles/collections.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"_id": "LawinServer",
|
||||
"created": "0001-01-01T00:00:00.000Z",
|
||||
"updated": "0001-01-01T00:00:00.000Z",
|
||||
"rvn": 1,
|
||||
"wipeNumber": 1,
|
||||
"accountId": "LawinServer",
|
||||
"profileId": "collections",
|
||||
"version": "no_version",
|
||||
"items": {},
|
||||
"stats": {
|
||||
"attributes": {}
|
||||
},
|
||||
"commandRevision": 0
|
||||
}
|
||||
2205
auth_backend/profiles/common_core.json
Normal file
2205
auth_backend/profiles/common_core.json
Normal file
File diff suppressed because it is too large
Load Diff
19
auth_backend/profiles/common_public.json
Normal file
19
auth_backend/profiles/common_public.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"_id": "LawinServer",
|
||||
"created": "0001-01-01T00:00:00.000Z",
|
||||
"updated": "0001-01-01T00:00:00.000Z",
|
||||
"rvn": 1,
|
||||
"wipeNumber": 1,
|
||||
"accountId": "LawinServer",
|
||||
"profileId": "common_public",
|
||||
"version": "no_version",
|
||||
"items": {},
|
||||
"stats": {
|
||||
"attributes": {
|
||||
"banner_color": "DefaultColor15",
|
||||
"homebase_name": "",
|
||||
"banner_icon": "SurvivalBannerStonewoodComplete"
|
||||
}
|
||||
},
|
||||
"commandRevision": 0
|
||||
}
|
||||
15
auth_backend/profiles/creative.json
Normal file
15
auth_backend/profiles/creative.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"_id": "LawinServer",
|
||||
"created": "0001-01-01T00:00:00.000Z",
|
||||
"updated": "0001-01-01T00:00:00.000Z",
|
||||
"rvn": 1,
|
||||
"wipeNumber": 1,
|
||||
"accountId": "LawinServer",
|
||||
"profileId": "creative",
|
||||
"version": "no_version",
|
||||
"items": {},
|
||||
"stats": {
|
||||
"attributes": {}
|
||||
},
|
||||
"commandRevision": 0
|
||||
}
|
||||
231
auth_backend/profiles/metadata.json
Normal file
231
auth_backend/profiles/metadata.json
Normal file
@@ -0,0 +1,231 @@
|
||||
{
|
||||
"_id": "LawinServer",
|
||||
"created": "0001-01-01T00:00:00.000Z",
|
||||
"updated": "0001-01-01T00:00:00.000Z",
|
||||
"rvn": 1,
|
||||
"wipeNumber": 1,
|
||||
"accountId": "LawinServer",
|
||||
"profileId": "metadata",
|
||||
"version": "no_version",
|
||||
"items": {
|
||||
"Outpost:outpostcore_pve_03": {
|
||||
"templateId": "Outpost:outpostcore_pve_03",
|
||||
"attributes": {
|
||||
"cloud_save_info": {
|
||||
"saveCount": 319,
|
||||
"savedRecords": [
|
||||
{
|
||||
"recordIndex": 0,
|
||||
"archiveNumber": 1,
|
||||
"recordFilename": "eb192023-7db8-4bc0-b3e4-bf060c7baf87_r0_a1.sav"
|
||||
}
|
||||
]
|
||||
},
|
||||
"level": 10,
|
||||
"outpost_core_info": {
|
||||
"placedBuildings": [
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.00",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.01"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.01",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.00"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.02",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.05"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.03",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.02"
|
||||
}
|
||||
],
|
||||
"accountsWithEditPermission": [],
|
||||
"highestEnduranceWaveReached": 30
|
||||
}
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"Outpost:outpostcore_pve_02": {
|
||||
"templateId": "Outpost:outpostcore_pve_02",
|
||||
"attributes": {
|
||||
"cloud_save_info": {
|
||||
"saveCount": 603,
|
||||
"savedRecords": [
|
||||
{
|
||||
"recordIndex": 0,
|
||||
"archiveNumber": 0,
|
||||
"recordFilename": "76fe0295-aee2-463a-9229-d9933b4969b8_r0_a0.sav"
|
||||
}
|
||||
]
|
||||
},
|
||||
"level": 10,
|
||||
"outpost_core_info": {
|
||||
"placedBuildings": [
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.00",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.00"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.01",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.01"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.02",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.04"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.03",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.03"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.04",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.02"
|
||||
}
|
||||
],
|
||||
"accountsWithEditPermission": [],
|
||||
"highestEnduranceWaveReached": 30
|
||||
}
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"Outpost:outpostcore_pve_04": {
|
||||
"templateId": "Outpost:outpostcore_pve_04",
|
||||
"attributes": {
|
||||
"cloud_save_info": {
|
||||
"saveCount": 77,
|
||||
"savedRecords": [
|
||||
{
|
||||
"recordIndex": 0,
|
||||
"archiveNumber": 1,
|
||||
"recordFilename": "940037e4-87d2-499e-8d00-cdb2dfa326b9_r0_a1.sav"
|
||||
}
|
||||
]
|
||||
},
|
||||
"level": 10,
|
||||
"outpost_core_info": {
|
||||
"placedBuildings": [
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.00",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.00"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.01",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.01"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.02",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.03"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.03",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.05"
|
||||
}
|
||||
],
|
||||
"accountsWithEditPermission": [],
|
||||
"highestEnduranceWaveReached": 30
|
||||
}
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"Outpost:outpostcore_pve_01": {
|
||||
"templateId": "Outpost:outpostcore_pve_01",
|
||||
"attributes": {
|
||||
"cloud_save_info": {
|
||||
"saveCount": 851,
|
||||
"savedRecords": [
|
||||
{
|
||||
"recordIndex": 0,
|
||||
"archiveNumber": 0,
|
||||
"recordFilename": "a1d68ce6-63a5-499a-946f-9e0c825572d7_r0_a0.sav"
|
||||
}
|
||||
]
|
||||
},
|
||||
"level": 10,
|
||||
"outpost_core_info": {
|
||||
"placedBuildings": [
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.00",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.00"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.01",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.02"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.02",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.01"
|
||||
},
|
||||
{
|
||||
"buildingTag": "Outpost.BuildingActor.Building.03",
|
||||
"placedTag": "Outpost.PlacementActor.Placement.05"
|
||||
}
|
||||
],
|
||||
"accountsWithEditPermission": [],
|
||||
"highestEnduranceWaveReached": 30
|
||||
}
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"DeployableBaseCloudSave:testdeployablebaseitemdef": {
|
||||
"templateId": "DeployableBaseCloudSave:testdeployablebaseitemdef",
|
||||
"attributes": {
|
||||
"tier_progression": {
|
||||
"progressionInfo": [
|
||||
{
|
||||
"progressionLayoutGuid": "B70B5C69-437E-75C5-CB91-7E913F3B5294",
|
||||
"highestDefeatedTier": 0
|
||||
},
|
||||
{
|
||||
"progressionLayoutGuid": "04FD086F-4A99-823B-06C3-979A8F408960",
|
||||
"highestDefeatedTier": 4
|
||||
},
|
||||
{
|
||||
"progressionLayoutGuid": "D3D31F40-45D8-FD77-67E6-5FBAB0550417",
|
||||
"highestDefeatedTier": 1
|
||||
},
|
||||
{
|
||||
"progressionLayoutGuid": "92A17A43-4EDC-8F69-688F-24BB3A3D8AEF",
|
||||
"highestDefeatedTier": 3
|
||||
},
|
||||
{
|
||||
"progressionLayoutGuid": "A2D8DB3E-457E-279B-58F5-AA9BA2FDC547",
|
||||
"highestDefeatedTier": 4
|
||||
},
|
||||
{
|
||||
"progressionLayoutGuid": "5AAB9A15-49F5-0D74-0B22-BB9686396E8F",
|
||||
"highestDefeatedTier": 1
|
||||
},
|
||||
{
|
||||
"progressionLayoutGuid": "9077163A-4664-1993-5A20-D28170404FD6",
|
||||
"highestDefeatedTier": 3
|
||||
},
|
||||
{
|
||||
"progressionLayoutGuid": "FB679125-49BC-0025-48F3-22A1B8085189",
|
||||
"highestDefeatedTier": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"cloud_save_info": {
|
||||
"saveCount": 11,
|
||||
"savedRecords": [
|
||||
{
|
||||
"recordIndex": 0,
|
||||
"archiveNumber": 1,
|
||||
"recordFilename": "2FA8CFBB-4973-CCF0-EEA8-BEBC37D99F52_r0_a1.sav"
|
||||
}
|
||||
]
|
||||
},
|
||||
"level": 0
|
||||
},
|
||||
"quantity": 1
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"attributes": {
|
||||
"inventory_limit_bonus": 0
|
||||
}
|
||||
},
|
||||
"commandRevision": 0
|
||||
}
|
||||
17
auth_backend/profiles/outpost0.json
Normal file
17
auth_backend/profiles/outpost0.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"_id": "LawinServer",
|
||||
"created": "0001-01-01T00:00:00.000Z",
|
||||
"updated": "0001-01-01T00:00:00.000Z",
|
||||
"rvn": 1,
|
||||
"wipeNumber": 1,
|
||||
"accountId": "LawinServer",
|
||||
"profileId": "outpost0",
|
||||
"version": "no_version",
|
||||
"items": {},
|
||||
"stats": {
|
||||
"attributes": {
|
||||
"inventory_limit_bonus": 0
|
||||
}
|
||||
},
|
||||
"commandRevision": 0
|
||||
}
|
||||
36288
auth_backend/profiles/profile0.json
Normal file
36288
auth_backend/profiles/profile0.json
Normal file
File diff suppressed because it is too large
Load Diff
694
auth_backend/profiles/theater0.json
Normal file
694
auth_backend/profiles/theater0.json
Normal file
@@ -0,0 +1,694 @@
|
||||
{
|
||||
"_id": "LawinServer",
|
||||
"created": "0001-01-01T00:00:00.000Z",
|
||||
"updated": "0001-01-01T00:00:00.000Z",
|
||||
"rvn": 1,
|
||||
"wipeNumber": 1,
|
||||
"accountId": "LawinServer",
|
||||
"profileId": "theater0",
|
||||
"version": "no_version",
|
||||
"items": {
|
||||
"3d81f6f3-1290-326e-dfee-e577af2e9fbb": {
|
||||
"templateId": "Ingredient:ingredient_blastpowder",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"70ff3716-d732-c472-b1d8-0a20d48dd607": {
|
||||
"templateId": "Ingredient:ingredient_ore_silver",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"48059439-88b0-a779-daae-36d9495f079e": {
|
||||
"templateId": "Ingredient:ingredient_ore_alloy",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"7dd4a423-0b6f-3abb-757c-88077adcaacc": {
|
||||
"templateId": "Ingredient:ingredient_crystal_sunbeam",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"694a4c8d-67b6-f903-85bf-f33d4e7a6859": {
|
||||
"templateId": "Ingredient:ingredient_ore_obsidian",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"97feb4c9-2290-fd4b-c356-7f346ba67e39": {
|
||||
"templateId": "Ingredient:ingredient_mechanical_parts_t05",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"25ff4168-8eb9-a5cc-4900-d06cdb8004ab": {
|
||||
"templateId": "Ingredient:ingredient_mechanical_parts_t02",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"a63022b8-6467-a347-7c11-37d483d45d08": {
|
||||
"templateId": "Ingredient:ingredient_rare_powercell",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"7e0d23d2-24dc-9579-4f32-507758107bd3": {
|
||||
"templateId": "Ingredient:ingredient_resin",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"d44ad9ed-a5d3-0642-a865-083061aeb4e6": {
|
||||
"templateId": "Ingredient:ingredient_powder_t05",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"2011030e-dbce-a02b-c086-ec8a99f16aeb": {
|
||||
"templateId": "Ingredient:ingredient_crystal_quartz",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"7d43d569-e170-bd46-dfb2-92828ff0c98d": {
|
||||
"templateId": "Ingredient:ingredient_rare_mechanism",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"1db23fbf-1ab5-72d9-2b20-50eacebda6d5": {
|
||||
"templateId": "Ingredient:ingredient_nuts_bolts",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 0,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"024aa359-e313-168a-3738-31ae4f04cfb2": {
|
||||
"templateId": "Ingredient:ingredient_ore_brightcore",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"da7680a3-072e-3e3f-3ed6-bf71159f6df0": {
|
||||
"templateId": "Ingredient:ingredient_planks",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"10aec620-f4b9-aadd-da3e-5d4a8f87225b": {
|
||||
"templateId": "Ingredient:ingredient_ore_malachite",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"161217ac-5b39-a93e-a1d8-7f7667646624": {
|
||||
"templateId": "Ingredient:ingredient_crystal_shadowshard",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"f33663f5-bf16-9315-8df2-91800944b3e8": {
|
||||
"templateId": "Ingredient:ingredient_twine_t05",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"aa4a3cce-9bb5-50ef-4c59-f959e89c3992": {
|
||||
"templateId": "Ingredient:ingredient_twine_t01",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"e9eca1e1-7665-1315-de97-6583394e0af1": {
|
||||
"templateId": "Ingredient:ingredient_batteries",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"d1fd9cb3-0d51-6d7c-e937-9b07406ba42e": {
|
||||
"templateId": "Ingredient:ingredient_twine_t04",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"7d8f824d-cec2-01d5-0efc-c30073402de2": {
|
||||
"templateId": "Ingredient:ingredient_herbs",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"bdb45648-18f6-fdc6-8252-b717043f0021": {
|
||||
"templateId": "Ingredient:ingredient_mechanical_parts_t04",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"ddc2382e-faf9-14dd-c721-c659660540a8": {
|
||||
"templateId": "Ingredient:ingredient_ore_copper",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"75582a66-bc3e-958a-1943-79a56150d0bb": {
|
||||
"templateId": "Ingredient:ingredient_powder_t03",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"b4616de1-caf4-3652-a613-edb932df71e0": {
|
||||
"templateId": "Ingredient:ingredient_mechanical_parts_t01",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"bdc338a8-3667-e7e4-280d-5d4e4255b3f1": {
|
||||
"templateId": "Ingredient:ingredient_twine_t02",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"d17582f7-eb63-a4a6-cd4d-ff3d68e69757": {
|
||||
"templateId": "Ingredient:ingredient_powder_t01",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"25e43cee-7dc7-348b-40bc-20b8850468ba": {
|
||||
"templateId": "Ingredient:ingredient_duct_tape",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"720bc675-44e2-ff74-6e5c-eec23b493bd1": {
|
||||
"templateId": "Ingredient:ingredient_twine_t03",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"0e2094f2-9c35-9e51-58ea-a87ec89fa758": {
|
||||
"templateId": "Ingredient:ingredient_powder_t02",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"1cf850a0-1797-4fe8-dd94-34152756c80b": {
|
||||
"templateId": "Ingredient:ingredient_bacon",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 0,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"7fe47331-1cbd-4606-c12e-6df2c1dc13a3": {
|
||||
"templateId": "Ingredient:ingredient_mechanical_parts_t03",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"42d429fc-a4cf-974d-2bce-17c6b872c96e": {
|
||||
"templateId": "Ingredient:ingredient_ore_coal",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"124d77cc-8cd4-fdcc-efe1-c18ee63587eb": {
|
||||
"templateId": "Ingredient:ingredient_flowers",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"ea2a6495-4b9e-59df-0163-5e5e8f52467e": {
|
||||
"templateId": "Ingredient:ingredient_powder_t04",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"6291ab77-ec9b-1b35-ccb0-063519415f6d": {
|
||||
"templateId": "WorldItem:wooditemdata",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"2d7953c0-752f-c2a7-ebef-90b45cb30b5b": {
|
||||
"templateId": "WorldItem:stoneitemdata",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"06f471d5-046b-50f6-3f07-9aa670b6fecb": {
|
||||
"templateId": "WorldItem:metalitemdata",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"003e7a8c-92eb-13c1-6b0e-aafad8f3d81d": {
|
||||
"templateId": "Weapon:edittool",
|
||||
"attributes": {
|
||||
"clipSizeScale": 0,
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"baseClipSize": 0,
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"bcb13e35-c030-cf2a-a003-16377320beda": {
|
||||
"templateId": "Weapon:buildingitemdata_wall",
|
||||
"attributes": {
|
||||
"clipSizeScale": 0,
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"baseClipSize": 0,
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"97ba026b-a36c-6827-e9d7-21bc6a1f9c53": {
|
||||
"templateId": "Weapon:buildingitemdata_floor",
|
||||
"attributes": {
|
||||
"clipSizeScale": 0,
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"baseClipSize": 0,
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"15c02d16-11f6-ffd1-e8bb-4b5d56bd5bd9": {
|
||||
"templateId": "Weapon:buildingitemdata_stair_w",
|
||||
"attributes": {
|
||||
"clipSizeScale": 0,
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"baseClipSize": 0,
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"f603c8af-e326-202e-3b12-b5fd2517e5c2": {
|
||||
"templateId": "Weapon:buildingitemdata_roofs",
|
||||
"attributes": {
|
||||
"clipSizeScale": 0,
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"baseClipSize": 0,
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 1
|
||||
},
|
||||
"baa4f86c-708c-7689-0859-fbfdb1bc623a": {
|
||||
"templateId": "Ammo:ammodatabulletsmedium",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"240894a2-f99a-214d-ce50-2dac39394699": {
|
||||
"templateId": "Ammo:ammodatashells",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": "None"
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"1a0c69f4-2c23-a5c9-34a0-f48c45637171": {
|
||||
"templateId": "Ammo:ammodataenergycell",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": ""
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"a92b1e7e-5812-0bfd-0107-f7b97ed166fa": {
|
||||
"templateId": "Ammo:ammodatabulletsheavy",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": "None"
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"7516967c-e831-4c3a-1a24-03834756f532": {
|
||||
"templateId": "Ammo:ammodatabulletslight",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": "None"
|
||||
},
|
||||
"quantity": 999
|
||||
},
|
||||
"23220ed0-29d4-3da1-6e0e-6df46a19752d": {
|
||||
"templateId": "Ammo:ammodataexplosive",
|
||||
"attributes": {
|
||||
"loadedAmmo": 0,
|
||||
"inventory_overflow_date": false,
|
||||
"level": 0,
|
||||
"alterationDefinitions": [],
|
||||
"durability": 1,
|
||||
"itemSource": "None"
|
||||
},
|
||||
"quantity": 999
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"attributes": {
|
||||
"player_loadout": {
|
||||
"bPlayerIsNew": false,
|
||||
"pinnedSchematicInstances": [],
|
||||
"primaryQuickBarRecord": {
|
||||
"slots": [
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
}
|
||||
]
|
||||
},
|
||||
"secondaryQuickBarRecord": {
|
||||
"slots": [
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
},
|
||||
{
|
||||
"items": []
|
||||
}
|
||||
]
|
||||
},
|
||||
"zonesCompleted": 0
|
||||
},
|
||||
"theater_unique_id": "",
|
||||
"past_lifetime_zones_completed": 0,
|
||||
"last_event_instance_key": "",
|
||||
"last_zones_completed": 0,
|
||||
"inventory_limit_bonus": 0
|
||||
}
|
||||
},
|
||||
"profileLockExpiration": "0001-01-01T00:00:00.000Z",
|
||||
"commandRevision": 0
|
||||
}
|
||||
0
auth_backend/public/images/discord-s.png
Normal file
0
auth_backend/public/images/discord-s.png
Normal file
0
auth_backend/public/images/discord.png
Normal file
0
auth_backend/public/images/discord.png
Normal file
0
auth_backend/public/images/lawin-s.png
Normal file
0
auth_backend/public/images/lawin-s.png
Normal file
0
auth_backend/public/images/lawin.jpg
Normal file
0
auth_backend/public/images/lawin.jpg
Normal file
0
auth_backend/public/images/motd-s.png
Normal file
0
auth_backend/public/images/motd-s.png
Normal file
0
auth_backend/public/images/motd.png
Normal file
0
auth_backend/public/images/motd.png
Normal file
0
auth_backend/public/images/seasonx.png
Normal file
0
auth_backend/public/images/seasonx.png
Normal file
461
auth_backend/responses/Athena/BattlePass/Season10.json
Normal file
461
auth_backend/responses/Athena/BattlePass/Season10.json
Normal file
@@ -0,0 +1,461 @@
|
||||
{
|
||||
"battleBundleOfferId": "259920BC42F0AAC7C8672D856C9B622C",
|
||||
"battlePassOfferId": "2E43CCD24C3BE8F5ABBDF28E233B9350",
|
||||
"tierOfferId": "AF1B7AC14A5F6A9ED255B88902120757",
|
||||
"paidRewards": [
|
||||
{
|
||||
"Token:athenaseasonxpboost": 50,
|
||||
"Token:athenaseasonfriendxpboost": 60,
|
||||
"AthenaCharacter:cid_486_athena_commando_f_streetracerdrift": 1,
|
||||
"AthenaCharacter:cid_488_athena_commando_m_rustremix": 1,
|
||||
"Token:athenaseasonmergedxpboosts": 1,
|
||||
"ChallengeBundleSchedule:season10_seasonx_schedule": 1,
|
||||
"ChallengeBundleSchedule:season10_blackknight_schedule": 1,
|
||||
"ChallengeBundleSchedule:season10_djyonger_schedule": 1,
|
||||
"ChallengeBundleSchedule:season10_drift_schedule": 1,
|
||||
"ChallengeBundleSchedule:season10_rustlord_schedule": 1,
|
||||
"ChallengeBundleSchedule:season10_sparkle_schedule": 1,
|
||||
"ChallengeBundleSchedule:season10_teknique_schedule": 1,
|
||||
"ChallengeBundleSchedule:season10_voyager_schedule": 1,
|
||||
"ChallengeBundleSchedule:season10_mission_schedule": 1,
|
||||
"ChallengeBundleSchedule:season10_seasonlevel_mission_schedule": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10,
|
||||
"Token:athenanextseasonxpboost": 30
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_redknight": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_107_graffitiremix": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10dragonegg": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_166_rustlordremix": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_150_icedragon": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_161_h7outfitsa": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_024_showdown": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10medievalknight": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_140_moistymire": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_245_voyagerremix1h": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_155_akdrift": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_crackshot": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_149_fireice": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_074_driftlightning": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_151_jmsparkle": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_483_athena_commando_f_graffitiremix": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_popcorn": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10kevincube": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:petcarrier_012_drift_fox": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_154_ijcuddle": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_lifepreserver": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_jaywalking": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10astronaut": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_106_djremix": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_158_ntdurrr": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_015_bottle": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_138_sparklespecialist": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_163_djremix": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_175_jmtomato": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_065_djremix": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_coolpepper": 1
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_286_petcarrier_driftfox_styleb": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_160_ktvendetta": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_487_athena_commando_m_djremix": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_135_riskyreels": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10britebomber": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_156_akbrite": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_020_bottle_fancy": 1
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_288_djremix_headgearb": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_242_sparkleremix": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_162_h7outfitsb": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_crossswords": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_105_cube": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10grid": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_139_tiltedmap": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_treadmilldance": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_287_petcarrier_driftfox_stylec": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_164_smcrackshot": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_066_tacticalhud": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10westernhats": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_485_athena_commando_f_sparkleremix": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_318_sparkleremix": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_134_dustydepot": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_159_ktfirewalker": 1
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_290_sparkleremix_hairstyleb": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_169_voyagerremix": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10boombox": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_breakdance2": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_177_ijllama": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_075_celestial": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_109_rustremix": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10doublepump": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_176_smvolcano": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_489_athena_commando_m_voyagerremix": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_sweaty": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_022_daydream": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_132_blackknight": 1
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_291_voyagerremix_stageb": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_152_jmluxe": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_165_knightremix": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_110_streetracerdriftremix": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_289_djremix_headgearc": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_484_athena_commando_m_knightremix": 1,
|
||||
"AthenaBackpack:bid_317_knightremix": 1
|
||||
}
|
||||
],
|
||||
"freeRewards": [
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_136_rocketlaunch": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_163_smrocketride": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_068_popcorn": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_boogiebomb": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_happyskipping": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10rift": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaItemWrap:wrap_108_knightremix": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_133_butterfly": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaGlider:glider_id_164_graffitiremix": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaBackpack:bid_320_rustlordremix": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brs1080sllama": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_blowingbubbles": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_023_og": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brs10shades": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_142_cuberune": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_153_ijdriftboard": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
}
|
||||
318
auth_backend/responses/Athena/BattlePass/Season2.json
Normal file
318
auth_backend/responses/Athena/BattlePass/Season2.json
Normal file
@@ -0,0 +1,318 @@
|
||||
{
|
||||
"battlePassOfferId": "C3BA14F04F4D56FC1D490F8011B56553",
|
||||
"tierOfferId": "F86AC2ED4B3EA4B2D65EF1B2629572A0",
|
||||
"paidRewards": [
|
||||
{
|
||||
"Token:athenaseasonxpboost": 50,
|
||||
"Token:athenaseasonfriendxpboost": 10,
|
||||
"AthenaCharacter:cid_032_athena_commando_m_medieval": 1,
|
||||
"AthenaBackpack:bid_001_bluesquire": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10,
|
||||
"Token:athenanextseasontierboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02bush": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_clapping": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_012_district": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02lionherald": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_rip": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_004_disco": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02catsoldier": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02dragon": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_rage": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_033_athena_commando_f_medieval": 1,
|
||||
"AthenaBackpack:bid_002_royaleknight": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_peacesign": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02planet": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_disco": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_worm": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02bowling": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02monstertruck": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_exclamation": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_011_medieval": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_armflex": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02icecream": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_mvp": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_003_district": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02log": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_baited": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_floss": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02cake": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02tank": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_salty": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_039_athena_commando_f_disco": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_stealthy": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02gasmask": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_potatoaim": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_013_teslacoil": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02vulture": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_onfire": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_035_athena_commando_m_medieval": 1,
|
||||
"AthenaBackpack:bid_004_blackknight": 1
|
||||
}
|
||||
],
|
||||
"freeRewards": [
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_lol": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_wave": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02salt": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_hearthands": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_bullseye": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_ridethepony_athena": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02crosshair": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason02shark": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaGlider:glider_id_002_medieval": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
}
|
||||
442
auth_backend/responses/Athena/BattlePass/Season3.json
Normal file
442
auth_backend/responses/Athena/BattlePass/Season3.json
Normal file
@@ -0,0 +1,442 @@
|
||||
{
|
||||
"battleBundleOfferId": "70487F4C4673CC98F2FEBEBB26505F44",
|
||||
"battlePassOfferId": "2331626809474871A3A44C47C1D8742E",
|
||||
"tierOfferId": "E2D7975EFEC54A45900D8D9A6D9D273C",
|
||||
"paidRewards": [
|
||||
{
|
||||
"Token:athenaseasonxpboost": 50,
|
||||
"Token:athenaseasonfriendxpboost": 10,
|
||||
"AthenaCharacter:cid_080_athena_commando_m_space": 1,
|
||||
"ChallengeBundleSchedule:season3_challenge_schedule": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10,
|
||||
"Token:athenanextseasontierboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03egg": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_wow": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_005_suppressedpistol": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_027_scavenger": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_thief": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03bee": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_003_pickaxes": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03worm": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_heartbroken": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_015_brite": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03paw": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_boombox": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_002_rainbow": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03sun": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_rocketride": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_082_athena_commando_m_scavenger": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03falcon": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03chick": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_004_tacticalshotgun": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03dogcollar": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_bush": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_takethel": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03crescentmoon": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_004_bluestreak": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_awww": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_016_tactical": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03crab": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03tophat": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_001_brite": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_thumbsup": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_024_space": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_thumbsdown": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_001_disco": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_1hp": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03wing": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_081_athena_commando_f_space": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_hotdawg": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_006_minigun": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03snake": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_bestmates": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_hoarder": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03teddybear": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_005_bubbles": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_088_athena_commando_m_spaceblack": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_028_spaceblack": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03happycloud": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_200iqplay": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_002_raptor": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03wolf": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_029_assassin": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_flamingrage": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03whale": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_003_fire": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_kaboom": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_083_athena_commando_f_tactical": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03lightning": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_majestic": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_007_tacticalcommando": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03flail": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_robot": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_number1": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03dinosaurskull": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_084_athena_commando_m_assassin": 1,
|
||||
"ChallengeBundleSchedule:season3_tier_100_schedule": 1
|
||||
}
|
||||
],
|
||||
"freeRewards": [
|
||||
{},
|
||||
{
|
||||
"ChallengeBundleSchedule:season3_tier_2_schedule": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03donut": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_salute": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_inlove": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaBackpack:bid_025_tactical": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_goodgame": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_008_keyart": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03eagle": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_positivity": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_028_space": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason03shootingstar": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_aplus": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
}
|
||||
444
auth_backend/responses/Athena/BattlePass/Season4.json
Normal file
444
auth_backend/responses/Athena/BattlePass/Season4.json
Normal file
@@ -0,0 +1,444 @@
|
||||
{
|
||||
"battleBundleOfferId": "884CE68998C44AC58D85C5A9883DE1A6",
|
||||
"battlePassOfferId": "76EA7FE9787744B09B79FF3FC5E39D0C",
|
||||
"tierOfferId": "E9527AF46F4B4A9CAE98D91F2AA53CB6",
|
||||
"paidRewards": [
|
||||
{
|
||||
"Token:athenaseasonxpboost": 50,
|
||||
"Token:athenaseasonfriendxpboost": 10,
|
||||
"AthenaCharacter:cid_115_athena_commando_m_carbideblue": 1,
|
||||
"AthenaCharacter:cid_125_athena_commando_m_tacticalwoodland": 1,
|
||||
"ChallengeBundleSchedule:season4_challenge_schedule": 1,
|
||||
"Token:athenaseasonmergedxpboosts": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10,
|
||||
"Token:athenanextseasontierboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_002_xmark": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_dynamite": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_017_carbide": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_045_valor": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_camera": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_006_rainbow": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_018_rex": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04heroemblem": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_007_smilegg": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_035_candy": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04spraycan": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_zzz": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_010_retroscifi": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04dogbowl": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_008_hearts": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_120_athena_commando_f_graffiti": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_babyseal": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04duck": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_019_tacticaljungle": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_004_chalkoutline": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_popcorn": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04fence": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_019_circle": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_012_spraypaint": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_011_looted": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_033_valor": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04only90skids": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_003_arrow": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_021_leviathan": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_plotting": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_119_athena_commando_f_candy": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_012_royalstroll": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_008_lightning": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_chicken": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_005_abstract": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_047_candy": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_021_doit": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04pencil": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_024_graffiti": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_020_threellamas": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_hype": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_crabby": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_009_window": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_009_hearts": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04blitz": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_013_trapwarning": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_118_athena_commando_f_valor": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_014_raven": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_rabid": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_023_candy": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04filmcamera": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_015_lips": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_034_carbideblue": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_016_ponytail": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04bow": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_013_shootingstar": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_022_britegunner": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_017_splattershot": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_117_athena_commando_m_tacticaljungle": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04seaserpent": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_banana": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_025_raven": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04villainemblem": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_010_tunnel": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_groovejam": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_celebrate": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_018_shadowops": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_116_athena_commando_m_carbideblack": 1,
|
||||
"ChallengeBundleSchedule:season4_progressiveb_schedule": 1
|
||||
}
|
||||
],
|
||||
"freeRewards": [
|
||||
{},
|
||||
{
|
||||
"ChallengeBundleSchedule:season4_starterchallenge_schedule": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04goo": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaBackpack:bid_045_tacticaljungle": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_angel": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_teamwork": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_goodvibes": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_020_supplydrop": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04chains": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_rainbow": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_046_candy": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason04teef": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_kungfusalute": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
}
|
||||
453
auth_backend/responses/Athena/BattlePass/Season5.json
Normal file
453
auth_backend/responses/Athena/BattlePass/Season5.json
Normal file
@@ -0,0 +1,453 @@
|
||||
{
|
||||
"battleBundleOfferId": "FF77356F424644529049280AFC8A795E",
|
||||
"battlePassOfferId": "D51A2F28AAF843C0B208F14197FBFE91",
|
||||
"tierOfferId": "4B2E310BC1AE40B292A16D5AAD747E0A",
|
||||
"paidRewards": [
|
||||
{
|
||||
"Token:athenaseasonxpboost": 50,
|
||||
"Token:athenaseasonfriendxpboost": 10,
|
||||
"AthenaCharacter:cid_163_athena_commando_f_viking": 1,
|
||||
"AthenaCharacter:cid_161_athena_commando_m_drift": 1,
|
||||
"ChallengeBundleSchedule:season5_paid_schedule": 1,
|
||||
"Token:athenaseasonmergedxpboosts": 1,
|
||||
"ChallengeBundleSchedule:season5_progressivea_schedule": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10,
|
||||
"Token:athenanextseasontierboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05tictactoe": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_go": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_038_sushi": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_050_streetracercobra": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05shoppingcart": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_001_basketball": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_024_boogie": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_046_vikingpattern": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05dolphin": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_073_balloon": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_poolparty": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_034_abstrakt": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_017_lanterns": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05kitsune": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_036_strawberrypaws": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_162_athena_commando_f_streetracer": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_prickly": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_002_golfball": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_045_vikingfemale": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_030_luchador": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_youreawesome": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05flowyhat": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_040_lifeguard": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_018_runes": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_stop": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_034_goodvibes": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_048_viking": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_028_durrr": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_003_beachball": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_039_jailbirds": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_embarrassed": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_166_athena_commando_f_lifeguard": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_033_fakedoor": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05golf": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_alarm": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_037_drift": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_071_vikingfemale": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05icecreamtruck": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_005_golfballelite": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_044_flytrap": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05palms": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_swipeit": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_042_omen": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_tattered": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_016_ice": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05spiderbadass": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_167_athena_commando_m_tacticalbadass": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_035_nordicllama": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_006_beachballelite": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05racingcheckers": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_043_redknight": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_tasty": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_049_lifeguard": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_032_potatoaim": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05scubagear": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_007_tp": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_badapple": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_035_bandolier": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_173_athena_commando_f_starfishuniform": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05cobra": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_004_basketballelite": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_stinky": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_037_tomatohead": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_039_yummy": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_hiphops5": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_potofgold": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_026_darkviking": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_165_athena_commando_m_darkviking": 1,
|
||||
"ChallengeBundleSchedule:season5_progressiveb_schedule": 1
|
||||
}
|
||||
],
|
||||
"freeRewards": [
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_025_crazycastle": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_036_drift": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_stagebow": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_rockon": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05vikingship": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaBackpack:bid_075_tacticalbadass": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaGlider:glider_id_055_streetracerblack": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_031_pixels": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_071_streetracer": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaBackpack:bid_074_lifeguardfemale": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason05dinosaur": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_calculated": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_038_highexplosives": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_011_glitch": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_trap": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_029_lasershark": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
}
|
||||
453
auth_backend/responses/Athena/BattlePass/Season6.json
Normal file
453
auth_backend/responses/Athena/BattlePass/Season6.json
Normal file
@@ -0,0 +1,453 @@
|
||||
{
|
||||
"battleBundleOfferId": "19D4A5ACC90B4CDF88766A0C8A6D13FB",
|
||||
"battlePassOfferId": "9C8D0323775A4F59A1D4283E3FDB356C",
|
||||
"tierOfferId": "A6FE59C497B844068E1B5D84396F19BA",
|
||||
"paidRewards": [
|
||||
{
|
||||
"Token:athenaseasonxpboost": 50,
|
||||
"Token:athenaseasonfriendxpboost": 10,
|
||||
"AthenaCharacter:cid_233_athena_commando_m_fortnitedj": 1,
|
||||
"AthenaCharacter:cid_237_athena_commando_f_cowgirl": 1,
|
||||
"ChallengeBundleSchedule:season6_paid_schedule": 1,
|
||||
"Token:athenaseasonmergedxpboosts": 1,
|
||||
"ChallengeBundleSchedule:season6_progressivea_schedule": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10,
|
||||
"Token:athenanextseasontierboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06pickaxebr": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_bang": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_058_cowgirl": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_079_redriding": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06campfire": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_052_emoticoncollage": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:petcarrier_001_dog": 1
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_001_floss": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06phantom": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_103_fortnitedj": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_witchsbrew": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_024_dieselsmoke": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_050_fullmoon": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_057_bunnies": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06zigzag": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_234_athena_commando_m_llamarider": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_058_djconcept": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_plunger": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_007_tomato": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:petcarrier_002_chameleon": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_056_manholecover": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_runningman": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06dice": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_055_valkyrie": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_023_fireflies": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_060_dayofdead": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_camper": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_080_prairiepusher": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_059_dj": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:petcarrier_003_dragon": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_056_fate": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_ghost": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_231_athena_commando_f_redriding": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_055_wallcrawler": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06rift": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_blackcat": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_002_spooky": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_049_cactusmaze": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_119_vampirefemale": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06bat": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_033_petcarrier_dog_styleb": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_050_tomatotemple": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06carbonfiber": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_octopus": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_054_scuba": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_meet": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_026_bats": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06polkadots": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_227_athena_commando_f_vampire": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_047_gremlins": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_035_petcarrier_dragon_styleb": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_008_tomatoelite": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06housefly": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_059_vampire": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_078_vampire": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_045_oni": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06skulltrooper": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_022_greensmoke": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_051_ravage": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_232_athena_commando_f_halloweentomato": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_122_halloweentomato": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_046_pixelraven": 1
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_034_petcarrier_dog_stylec": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_003_ogremix": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_061_werewolf": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_clown": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_flamenco": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_036_petcarrier_dragon_stylec": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_062_werewolf": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_230_athena_commando_m_werewolf": 1,
|
||||
"ChallengeBundleSchedule:season6_progressiveb_schedule": 1
|
||||
}
|
||||
],
|
||||
"freeRewards": [
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_061_spiderweb": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_060_cowgirl": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_regalwave": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_battlebus": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06floatingisland": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaBackpack:bid_121_redriding": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaGlider:glider_id_081_cowboygunslinger": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_053_ggpotion": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_102_redriding": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaBackpack:bid_123_fortnitedj": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason06handhorns": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_needtogo": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_053_supplyllama": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_025_jackolantern": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_tp": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_051_gameover": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
}
|
||||
454
auth_backend/responses/Athena/BattlePass/Season7.json
Normal file
454
auth_backend/responses/Athena/BattlePass/Season7.json
Normal file
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"battleBundleOfferId": "347A90158C64424980E8C1B3DC088F37",
|
||||
"battlePassOfferId": "3A3C99847F144AF3A030DB5690477F5A",
|
||||
"tierOfferId": "64A3020B098841A7805EE257D68C554F",
|
||||
"paidRewards": [
|
||||
{
|
||||
"Token:athenaseasonxpboost": 50,
|
||||
"Token:athenaseasonfriendxpboost": 10,
|
||||
"AthenaCharacter:cid_287_athena_commando_m_arcticsniper": 1,
|
||||
"AthenaCharacter:cid_286_athena_commando_f_neoncat": 1,
|
||||
"ChallengeBundleSchedule:season7_paid_schedule": 1,
|
||||
"Token:athenaseasonmergedxpboosts": 1,
|
||||
"ChallengeBundleSchedule:season7_progressivea_schedule": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10,
|
||||
"Token:athenanextseasontierboost": 5
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07wreath": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_001_arcticcamo": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_mistletoe": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_160_tacticalsantamale": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_068_eviltree": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_002_holidaygreen": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_080_gingerbread": 1
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_004_holiday": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07merryface": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_101_tacticalsanta": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_ggwreath": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:petcarrier_004_hamster": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_069_bagofcoal": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_032_stringlights": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_075_tacticalsanta": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_279_athena_commando_m_tacticalsanta": 1,
|
||||
"ChallengeBundleSchedule:season7_sgtwinter_schedule": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_gingerbreadhappy": 1
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_003_anodizedred": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_010_icepuck": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07tartan": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_083_crackshot": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_wristflick": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_gingerbreadmad": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:petcarrier_005_wolf": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_071_neoncat": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_037_glyphs": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07iceninjastar": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_104_durrburger": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_081_tenderdefender": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_004_durrburgerpjs": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_072_mothhead": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_mittens": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_281_athena_commando_f_snowboard": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_073_porthole": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07meat": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_054_petcarrier_hamster_styleb": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_huskwow": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_074_cuddlehula": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_162_yetimale": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07trash": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_036_fiberoptics": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_006_ice": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07sun": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_getfunky": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_076_medics": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_056_petcarrier_wolf_styleb": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_penguin": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_081_bananas": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_278_athena_commando_m_yeti": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_076_yeti": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_005_carbonfiber": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_009_burgerelite": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07shackle": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_074_darkbomber": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_100_yeti": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_077_baited": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_055_petcarrier_hamster_stylec": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07octopus": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_034_swirlysmoke": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_durrrburger": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_245_athena_commando_f_durrburgerpjs": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 5
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_078_pixelramirez": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_078_skulltrooper": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_006_twist": 1
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_057_petcarrier_wolf_stylec": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_fkey": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_hiphops7": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_073_dustydepot": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_079_catgirl": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_288_athena_commando_m_iceking": 1,
|
||||
"ChallengeBundleSchedule:season7_iceking_schedule": 1
|
||||
}
|
||||
],
|
||||
"freeRewards": [
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_067_ggsnowman": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_079_plane": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_033_snowflakes": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_iceheart": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07plane": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_golfclap": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaBackpack:bid_161_snowboardfemale": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_070_hohoho": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaGlider:glider_id_105_snowboard": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_126_yeti": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brseason07infinityblade": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_micdrop": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_082_neoncat": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_005_disco": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_hotchocolate": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_075_meltingsnowman": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
}
|
||||
453
auth_backend/responses/Athena/BattlePass/Season8.json
Normal file
453
auth_backend/responses/Athena/BattlePass/Season8.json
Normal file
@@ -0,0 +1,453 @@
|
||||
{
|
||||
"battleBundleOfferId": "18D9DA48000A40BFAEBAC55A99C55221",
|
||||
"battlePassOfferId": "77F31B7F83FB422195DA60CDE683671D",
|
||||
"tierOfferId": "E07E41D52D4A425F8DC6592496B75301",
|
||||
"paidRewards": [
|
||||
{
|
||||
"Token:athenaseasonxpboost": 50,
|
||||
"Token:athenaseasonfriendxpboost": 60,
|
||||
"AthenaCharacter:cid_347_athena_commando_m_pirateprogressive": 1,
|
||||
"AthenaCharacter:cid_346_athena_commando_m_dragonninja": 1,
|
||||
"ChallengeBundleSchedule:season8_paid_schedule": 1,
|
||||
"ChallengeBundleSchedule:season8_cumulative_schedule": 1,
|
||||
"Token:athenaseasonmergedxpboosts": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10,
|
||||
"Token:athenanextseasonxpboost": 30
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8pineapple": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_020_tropicalcamo": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_091_dragonninja": 1
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:bid_218_medusa": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8jellyfish": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_106_treasuremap": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_007_pirate": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_palmtree": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_092_bananapeel": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_124_medusa": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_octopirate": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:petcarrier_007_woodsy": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_103_mermaid": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_046_clover": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_100_stpattyday": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_348_athena_commando_f_medusa": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_4leafclover": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_014_bouncyball": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_021_pirate": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8ziggurat": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_101_icequeen": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_conga": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_spicy": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_129_petcarrier_woodsy_styleb": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_099_key": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_048_spectral": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8coconuts": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_123_masterkey": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_102_triceraops": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_023_aztec": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_094_wootdog": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_skullbrite": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_349_athena_commando_m_banana": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_095_loveranger": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8foxhead": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:petcarrier_008_fox": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_aztecmask": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_096_fallenloveranger": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_165_masterkey": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8roach": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_044_lava": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_017_dragonninja": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8whaletail": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_banana": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_103_spraycollage": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_131_petcarrier_fox_styleb": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_101_britebomber": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_200m": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_351_athena_commando_f_fireelf": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8tigerstripes": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_097_powerchord": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_097_fireelf": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_019_tiger": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_cuddle": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_128_bootybuoy": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_100_salty": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_130_petcarrier_woodsy_stylec": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_104_masterkey": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_047_ammobelt": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8crystalllama": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_350_athena_commando_m_masterkey": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_angryvolcano": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_098_shiny": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_009_starpower": 1
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_132_petcarrier_fox_stylec": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_105_blackwidow": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_hulahoop": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_022_gemstone": 1
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_128_masterkey_styleb": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_352_athena_commando_f_shiny": 1,
|
||||
"ChallengeBundleSchedule:season8_shiny_schedule": 1
|
||||
}
|
||||
],
|
||||
"freeRewards": [
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_102_ggaztec": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_099_piratetheme": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_045_undertow": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_sun": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_happywave": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8jollyroger": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaBackpack:bid_215_masterkey": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_090_dancefloorbox": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaGlider:glider_id_129_fireelf": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_167_medusa": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brs8treasurechest": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_youboreme": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_098_dragonninja": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_008_coral": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_ggjellyfish": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_093_theend": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
}
|
||||
458
auth_backend/responses/Athena/BattlePass/Season9.json
Normal file
458
auth_backend/responses/Athena/BattlePass/Season9.json
Normal file
@@ -0,0 +1,458 @@
|
||||
{
|
||||
"battleBundleOfferId": "C7190ACA4E5E228A94CA3CB9C3FC7AE9",
|
||||
"battlePassOfferId": "73E6EE6F4526EF97450D1592C3DB0EF5",
|
||||
"tierOfferId": "33E185A84ED7B64F2856E69AADFD092C",
|
||||
"paidRewards": [
|
||||
{
|
||||
"Token:athenaseasonxpboost": 50,
|
||||
"Token:athenaseasonfriendxpboost": 60,
|
||||
"AthenaCharacter:cid_408_athena_commando_f_strawberrypilot": 1,
|
||||
"AthenaCharacter:cid_403_athena_commando_m_rooster": 1,
|
||||
"ChallengeBundleSchedule:season9_paid_schedule": 1,
|
||||
"ChallengeBundleSchedule:season9_cumulative_schedule": 1,
|
||||
"ChallengeBundleSchedule:season9_fortbyte_schedule": 1,
|
||||
"Token:athenaseasonmergedxpboosts": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10,
|
||||
"Token:athenanextseasonxpboost": 30
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_tomatohead": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_060_rooster": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_109_strawberrypilot": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_211_bunkerman_1h": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9chair": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_126_floorislava": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_015_goodvibes": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_rexhead": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_118_chevronleft": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_144_strawberrypilot": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_drifthead": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_057_banana": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_115_pixeljonesy": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9bone": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_130_strawberrypilot": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_409_athena_commando_m_bunkerman": 1,
|
||||
"ChallengeBundleSchedule:season9_bunkerman_schedule": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_silentmaven": 1
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_054_kpopglow": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaBackpack:petcarrier_010_robokitty": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9x": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_121_vikings": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_chickenmoves": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_loveranger": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_017_flyingdisc": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_119_chevronright": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_127_unicornpickaxe": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9bacon": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_146_masako": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_108_fate": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_062_neotag": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_screamingwukong": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_199_petcarrier_robokitty_styleb": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_404_athena_commando_f_bountyhunter": 1,
|
||||
"ChallengeBundleSchedule:season9_bountyhunter_schedule": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_055_bananas": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9roar": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9violin": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_durrburgerhead": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_117_nosymbol": 1
|
||||
},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_205_strawberrypilot": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_113_nananana": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_061_purplesplatter": 1
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_201_petcarrier_robokitty_styled": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9cone": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_signspinner": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_125_lavalegends": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_111_ark": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaDance:toy_018_fancyflyingdisc": 1
|
||||
},
|
||||
{
|
||||
"AccountResource:athenaseasonalxp": 1000
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9target": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_406_athena_commando_m_stormtracker": 1,
|
||||
"ChallengeBundleSchedule:season9_stormtracker_schedule": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_skepticalfishstix": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_200_petcarrier_robokitty_stylec": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_129_stormtracker": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_056_stormtracker": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9blast": 1
|
||||
},
|
||||
{
|
||||
"AthenaGlider:glider_id_143_battlesuit": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_123_inferno": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_whiteflag": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_058_storm": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_116_robot": 1
|
||||
},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9spade": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_405_athena_commando_f_masako": 1,
|
||||
"ChallengeBundleSchedule:season9_masako_schedule": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonfriendxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_057_battlesuit": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:spid_110_rooster": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_014_s9cine": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:emoji_supdood": 1
|
||||
},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_128_auroraglow": 1
|
||||
},
|
||||
{
|
||||
"AthenaDance:eid_gabbyhiphop_01": 1
|
||||
},
|
||||
{
|
||||
"Token:athenaseasonxpboost": 10
|
||||
},
|
||||
{
|
||||
"AthenaItemWrap:wrap_059_battlesuit": 1
|
||||
},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{
|
||||
"CosmeticVariantToken:vtid_202_rooster_styleb": 1
|
||||
},
|
||||
{
|
||||
"AthenaCharacter:cid_407_athena_commando_m_battlesuit": 1,
|
||||
"ChallengeBundleSchedule:season9_battlesuit_schedule": 1
|
||||
}
|
||||
],
|
||||
"freeRewards": [
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_112_rockpeople": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_122_aztec": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaSkyDiveContrail:trails_id_051_neontubes": 1
|
||||
},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_cuddleteamhead": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_yayexcited": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9plane": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaGlider:glider_id_032_tacticalwoodland": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_121_sunbird": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaItemWrap:wrap_046_demon": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"Currency:mtxgiveaway": 100
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaPickaxe:pickaxe_id_210_bunkerman": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"HomebaseBannerIcon:brs9paintbrush": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:eid_sadtrombone": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaLoadingScreen:lsid_124_airroyale": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaMusicPack:musicpack_013_robotrack": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:emoji_skulltrooper": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{
|
||||
"AthenaDance:spid_114_bush": 1
|
||||
},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"FortCreativeDiscoverySurface": {
|
||||
"meta": {
|
||||
"promotion": 1
|
||||
},
|
||||
"assets": {
|
||||
"CreativeDiscoverySurface_Frontend": {
|
||||
"meta": {
|
||||
"revision": 1,
|
||||
"headRevision": 1,
|
||||
"revisedAt": "2022-04-11T16:34:03.517Z",
|
||||
"promotion": 1,
|
||||
"promotedAt": "2022-04-11T16:34:49.510Z"
|
||||
},
|
||||
"assetData": {
|
||||
"AnalyticsId": "t412",
|
||||
"TestCohorts": [
|
||||
{
|
||||
"AnalyticsId": "c522715413",
|
||||
"CohortSelector": "PlayerDeterministic",
|
||||
"PlatformBlacklist": [],
|
||||
"ContentPanels": [
|
||||
{
|
||||
"NumPages": 1,
|
||||
"AnalyticsId": "p536",
|
||||
"PanelType": "AnalyticsList",
|
||||
"AnalyticsListName": "ByEpicWoven",
|
||||
"CuratedListOfLinkCodes": [],
|
||||
"ModelName": "",
|
||||
"PageSize": 7,
|
||||
"PlatformBlacklist": [],
|
||||
"PanelName": "ByEpicWoven",
|
||||
"MetricInterval": "",
|
||||
"SkippedEntriesCount": 0,
|
||||
"SkippedEntriesPercent": 0,
|
||||
"SplicedEntries": [],
|
||||
"PlatformWhitelist": [],
|
||||
"EntrySkippingMethod": "None",
|
||||
"PanelDisplayName": {
|
||||
"Category": "Game",
|
||||
"NativeCulture": "",
|
||||
"Namespace": "CreativeDiscoverySurface_Frontend",
|
||||
"LocalizedStrings": [
|
||||
{
|
||||
"key": "ar",
|
||||
"value": "العب بأسلوبك"
|
||||
},
|
||||
{
|
||||
"key": "de",
|
||||
"value": "Spiele auf deine Weise"
|
||||
},
|
||||
{
|
||||
"key": "en",
|
||||
"value": "Play Your Way"
|
||||
},
|
||||
{
|
||||
"key": "es",
|
||||
"value": "Juega como quieras"
|
||||
},
|
||||
{
|
||||
"key": "fr",
|
||||
"value": "Jouez à votre façon"
|
||||
},
|
||||
{
|
||||
"key": "it",
|
||||
"value": "Gioca a modo tuo"
|
||||
},
|
||||
{
|
||||
"key": "ja",
|
||||
"value": "好きにプレイしよう"
|
||||
},
|
||||
{
|
||||
"key": "ko",
|
||||
"value": "나만의 플레이"
|
||||
},
|
||||
{
|
||||
"key": "pl",
|
||||
"value": "Graj po swojemu"
|
||||
},
|
||||
{
|
||||
"key": "ru",
|
||||
"value": "Играйте как нравится"
|
||||
},
|
||||
{
|
||||
"key": "tr",
|
||||
"value": "İstediğin Gibi Oyna"
|
||||
},
|
||||
{
|
||||
"key": "pt-BR",
|
||||
"value": "Jogue do Seu Jeito"
|
||||
},
|
||||
{
|
||||
"key": "es-419",
|
||||
"value": "Juega a tu manera"
|
||||
}
|
||||
],
|
||||
"bIsMinimalPatch": false,
|
||||
"NativeString": "Play Your Way",
|
||||
"Key": "ByEpicWoven"
|
||||
},
|
||||
"PlayHistoryType": "RecentlyPlayed",
|
||||
"bLowestToHighest": false,
|
||||
"PanelLinkCodeBlacklist": [],
|
||||
"PanelLinkCodeWhitelist": [],
|
||||
"FeatureTags": [],
|
||||
"MetricName": ""
|
||||
}
|
||||
],
|
||||
"PlatformWhitelist": [],
|
||||
"SelectionChance": 0.1,
|
||||
"TestName": "LawinServer"
|
||||
}
|
||||
],
|
||||
"GlobalLinkCodeBlacklist": [],
|
||||
"SurfaceName": "CreativeDiscoverySurface_Frontend",
|
||||
"TestName": "20.10_4/11/2022_hero_combat_popularConsole",
|
||||
"primaryAssetId": "FortCreativeDiscoverySurface:CreativeDiscoverySurface_Frontend",
|
||||
"GlobalLinkCodeWhitelist": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
208
auth_backend/responses/Athena/Discovery/discovery_frontend.json
Normal file
208
auth_backend/responses/Athena/Discovery/discovery_frontend.json
Normal file
@@ -0,0 +1,208 @@
|
||||
{
|
||||
"Panels": [
|
||||
{
|
||||
"PanelName": "ByEpicWoven",
|
||||
"Pages": [
|
||||
{
|
||||
"results": [
|
||||
{
|
||||
"linkData": {
|
||||
"namespace": "fn",
|
||||
"mnemonic": "playlist_defaultsolo",
|
||||
"linkType": "BR:Playlist",
|
||||
"active": true,
|
||||
"disabled": false,
|
||||
"version": 95,
|
||||
"moderationStatus": "Unmoderated",
|
||||
"accountId": "epic",
|
||||
"creatorName": "Epic",
|
||||
"descriptionTags": [],
|
||||
"metadata": {
|
||||
"image_url": "https://cdn2.unrealengine.com/solo-1920x1080-1920x1080-bc0a5455ce20.jpg",
|
||||
"matchmaking": {
|
||||
"override_playlist": "playlist_defaultsolo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lastVisited": null,
|
||||
"linkCode": "playlist_defaultsolo",
|
||||
"isFavorite": false
|
||||
},
|
||||
{
|
||||
"linkData": {
|
||||
"namespace": "fn",
|
||||
"mnemonic": "playlist_defaultduo",
|
||||
"linkType": "BR:Playlist",
|
||||
"active": true,
|
||||
"disabled": false,
|
||||
"version": 95,
|
||||
"moderationStatus": "Unmoderated",
|
||||
"accountId": "epic",
|
||||
"creatorName": "Epic",
|
||||
"descriptionTags": [],
|
||||
"metadata": {
|
||||
"image_url": "https://cdn2.unrealengine.com/duos-1920x1080-1920x1080-5a411fe07b21.jpg",
|
||||
"matchmaking": {
|
||||
"override_playlist": "playlist_defaultduo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lastVisited": null,
|
||||
"linkCode": "playlist_defaultduo",
|
||||
"isFavorite": false
|
||||
},
|
||||
{
|
||||
"linkData": {
|
||||
"namespace": "fn",
|
||||
"mnemonic": "playlist_trios",
|
||||
"linkType": "BR:Playlist",
|
||||
"active": true,
|
||||
"disabled": false,
|
||||
"version": 95,
|
||||
"moderationStatus": "Unmoderated",
|
||||
"accountId": "epic",
|
||||
"creatorName": "Epic",
|
||||
"descriptionTags": [],
|
||||
"metadata": {
|
||||
"image_url": "https://cdn2.unrealengine.com/trios-1920x1080-1920x1080-d5054bb9691a.jpg",
|
||||
"matchmaking": {
|
||||
"override_playlist": "playlist_trios"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lastVisited": null,
|
||||
"linkCode": "playlist_trios",
|
||||
"isFavorite": false
|
||||
},
|
||||
{
|
||||
"linkData": {
|
||||
"namespace": "fn",
|
||||
"mnemonic": "playlist_defaultsquad",
|
||||
"linkType": "BR:Playlist",
|
||||
"active": true,
|
||||
"disabled": false,
|
||||
"version": 95,
|
||||
"moderationStatus": "Unmoderated",
|
||||
"accountId": "epic",
|
||||
"creatorName": "Epic",
|
||||
"descriptionTags": [],
|
||||
"metadata": {
|
||||
"image_url": "https://cdn2.unrealengine.com/squads-1920x1080-1920x1080-095c0732502e.jpg",
|
||||
"matchmaking": {
|
||||
"override_playlist": "playlist_defaultsquad"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lastVisited": null,
|
||||
"linkCode": "playlist_defaultsquad",
|
||||
"isFavorite": false
|
||||
},
|
||||
{
|
||||
"linkData": {
|
||||
"namespace": "fn",
|
||||
"mnemonic": "campaign",
|
||||
"linkType": "SubGame",
|
||||
"active": true,
|
||||
"disabled": false,
|
||||
"version": 5,
|
||||
"moderationStatus": "Unmoderated",
|
||||
"accountId": "epic",
|
||||
"creatorName": "Epic",
|
||||
"descriptionTags": [
|
||||
"pve"
|
||||
],
|
||||
"metadata": {
|
||||
"ownership_token": "Token:campaignaccess",
|
||||
"image_url": "https://static-assets-prod.s3.amazonaws.com/fn/static/creative/Fortnite_STW.jpg",
|
||||
"alt_introduction": {
|
||||
"de": "Dränge die anstürmenden Monsterhorden zurück und erforsche eine weitläufige, zerstörbare Welt. Baue riesige Festungen, stelle Waffen her, finde Beute und steige im Level auf!",
|
||||
"ru": "Сдерживайте боем полчища монстров и исследуйте обширный разрушаемый мир. Отстраивайте огромные форты, создавайте оружие, находите добычу и повышайте уровень.",
|
||||
"ko": "몬스터 호드에 맞서 싸우고, 광활하고 파괴적인 세상을 탐험해 보세요. 거대한 요새를 짓고, 무기를 제작하고, 전리품을 찾으면서 레벨을 올리세요! ",
|
||||
"pt-BR": "Lute para conter hordas de monstros e explorar um vasto mundo destrutível. Construa fortes enormes, crie armas, encontre saques e suba de nível.",
|
||||
"it": "Lotta per respingere orde di mostri ed esplorare un vasto mondo distruttibile. Costruisci fortezze, crea armi, raccogli bottino e sali di livello.",
|
||||
"fr": "Repoussez des hordes de monstres et explorez un immense terrain destructible. Bâtissez des forts énormes, fabriquez des armes, dénichez du butin et montez en niveau.",
|
||||
"zh-CN": "",
|
||||
"es": "Lucha para contener las hordas de monstruos y recorre un mundo inmenso y destructible. Construye fuertes enormes, fabrica armas exóticas, busca botín y sube de nivel.",
|
||||
"es-MX": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.",
|
||||
"zh": "",
|
||||
"ar": "قاتل لكبح جماح الوحوش واستكشاف عالم شاسع قابل للتدمير. ابنِ حصونًا ضخمة واصنع الأسلحة واعثر على الغنائم وارتقِ بالمستوى.",
|
||||
"zh-Hant": "",
|
||||
"ja": "モンスターの群れを食い止め、壊すこともできる広大な世界を探索しよう。巨大な要塞を築き、武器をクラフトし、戦利品を見つてレベルアップしよう。",
|
||||
"pl": "Walcz, by powstrzymać hordy potworów i odkrywaj wielki świat podlegający destrukcji. Buduj olbrzymie forty, twórz broń, zbieraj łupy, awansuj. PRO100Kąt pozdrawia wszystkich Polaków.",
|
||||
"es-419": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.",
|
||||
"tr": "Canavar sürüsünü geri püskürtmek için savaş ve yıkılabilir geniş bir dünyayı keşfet. Devasa kaleler inşa et, silahlar üret, ganimetleri topla ve seviye atla."
|
||||
},
|
||||
"locale": "en",
|
||||
"title": "Save The World",
|
||||
"matchmaking": {
|
||||
"joinInProgressType": "JoinImmediately",
|
||||
"playersPerTeam": 4,
|
||||
"maximumNumberOfPlayers": 4,
|
||||
"override_Playlist": "",
|
||||
"playerCount": 4,
|
||||
"mmsType": "keep_full",
|
||||
"mmsPrivacy": "Public",
|
||||
"numberOfTeams": 1,
|
||||
"bAllowJoinInProgress": true,
|
||||
"minimumNumberOfPlayers": 1,
|
||||
"joinInProgressTeam": 1
|
||||
},
|
||||
"alt_title": {
|
||||
"de": "Rette die Welt",
|
||||
"ru": "Сражение с Бурей",
|
||||
"ko": "세이브 더 월드",
|
||||
"pt-BR": "Salve o Mundo",
|
||||
"it": "Salva il mondo",
|
||||
"fr": "Sauver le monde",
|
||||
"zh-CN": "",
|
||||
"es": "Salvar el mundo",
|
||||
"es-MX": "Salva el mundo",
|
||||
"zh": "",
|
||||
"ar": "أنقِذ العالم",
|
||||
"zh-Hant": "",
|
||||
"ja": "世界を救え",
|
||||
"pl": "Ratowanie Świata",
|
||||
"es-419": "Salva el mundo",
|
||||
"tr": "Dünyayı Kurtar"
|
||||
},
|
||||
"alt_tagline": {
|
||||
"de": "Dränge die anstürmenden Monsterhorden zurück und erforsche eine weitläufige, zerstörbare Welt. Baue riesige Festungen, stelle Waffen her, finde Beute und steige im Level auf!",
|
||||
"ru": "Сдерживайте боем полчища монстров и исследуйте обширный разрушаемый мир. Отстраивайте огромные форты, создавайте оружие, находите добычу и повышайте уровень.",
|
||||
"ko": "몬스터 호드에 맞서 싸우고, 광활하고 파괴적인 세상을 탐험해 보세요. 거대한 요새를 짓고, 무기를 제작하고, 전리품을 찾으면서 레벨을 올리세요! ",
|
||||
"pt-BR": "Lute para conter hordas de monstros e explorar um vasto mundo destrutível. Construa fortes enormes, crie armas, encontre saques e suba de nível.",
|
||||
"it": "Lotta per respingere orde di mostri ed esplorare un vasto mondo distruttibile. Costruisci fortezze, crea armi, raccogli bottino e sali di livello.",
|
||||
"fr": "Repoussez des hordes de monstres et explorez un immense terrain destructible. Bâtissez des forts énormes, fabriquez des armes, dénichez du butin et montez en niveau.",
|
||||
"zh-CN": "",
|
||||
"es": "Lucha para contener las hordas de monstruos y recorre un mundo inmenso y destructible. Construye fuertes enormes, fabrica armas exóticas, busca botín y sube de nivel.",
|
||||
"es-MX": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.",
|
||||
"zh": "",
|
||||
"ar": "قاتل لكبح جماح الوحوش واستكشاف عالم شاسع قابل للتدمير. ابنِ حصونًا ضخمة واصنع الأسلحة واعثر على الغنائم وارتقِ بالمستوى.",
|
||||
"zh-Hant": "",
|
||||
"ja": "モンスターの群れを食い止め、壊すこともできる広大な世界を探索しよう。巨大な要塞を築き、武器をクラフトし、戦利品を見つけてレベルアップしよう。",
|
||||
"pl": "Walcz, by powstrzymać hordy potworów i odkrywaj wielki świat podlegający destrukcji. Buduj olbrzymie forty, twórz broń, zbieraj łupy, awansuj. PRO100Kąt pozdrawia wszystkich Polaków.",
|
||||
"es-419": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.",
|
||||
"tr": "Canavar sürüsünü geri püskürtmek için savaş ve yıkılabilir geniş bir dünyayı keşfet. Devasa kaleler inşa et, silahlar üret, ganimetleri topla ve seviye atla."
|
||||
},
|
||||
"tagline": "Battle to hold back the monster hordes and explore a vast, destructible world. Build huge forts, craft weapons, find loot and level up.",
|
||||
"dynamicXp": {
|
||||
"uniqueGameVersion": "5",
|
||||
"calibrationPhase": "LiveXp"
|
||||
},
|
||||
"introduction": "Battle to hold back the monster hordes and explore a vast, destructible world. Build huge forts, craft weapons, find loot and level up."
|
||||
}
|
||||
},
|
||||
"lastVisited": null,
|
||||
"linkCode": "campaign",
|
||||
"isFavorite": false
|
||||
}
|
||||
],
|
||||
"hasMore": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"TestCohorts": [
|
||||
"LawinServer"
|
||||
],
|
||||
"ModeSets": {}
|
||||
}
|
||||
56
auth_backend/responses/Athena/SeasonData.json
Normal file
56
auth_backend/responses/Athena/SeasonData.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"Season2": {
|
||||
"battlePassPurchased": false,
|
||||
"battlePassTier": 1,
|
||||
"battlePassXPBoost": 0,
|
||||
"battlePassXPFriendBoost": 0
|
||||
},
|
||||
"Season3": {
|
||||
"battlePassPurchased": false,
|
||||
"battlePassTier": 1,
|
||||
"battlePassXPBoost": 0,
|
||||
"battlePassXPFriendBoost": 0
|
||||
},
|
||||
"Season4": {
|
||||
"battlePassPurchased": false,
|
||||
"battlePassTier": 1,
|
||||
"battlePassXPBoost": 0,
|
||||
"battlePassXPFriendBoost": 0
|
||||
},
|
||||
"Season5": {
|
||||
"battlePassPurchased": false,
|
||||
"battlePassTier": 1,
|
||||
"battlePassXPBoost": 0,
|
||||
"battlePassXPFriendBoost": 0
|
||||
},
|
||||
"Season6": {
|
||||
"battlePassPurchased": false,
|
||||
"battlePassTier": 1,
|
||||
"battlePassXPBoost": 0,
|
||||
"battlePassXPFriendBoost": 0
|
||||
},
|
||||
"Season7": {
|
||||
"battlePassPurchased": false,
|
||||
"battlePassTier": 1,
|
||||
"battlePassXPBoost": 0,
|
||||
"battlePassXPFriendBoost": 0
|
||||
},
|
||||
"Season8": {
|
||||
"battlePassPurchased": false,
|
||||
"battlePassTier": 1,
|
||||
"battlePassXPBoost": 0,
|
||||
"battlePassXPFriendBoost": 0
|
||||
},
|
||||
"Season9": {
|
||||
"battlePassPurchased": false,
|
||||
"battlePassTier": 1,
|
||||
"battlePassXPBoost": 0,
|
||||
"battlePassXPFriendBoost": 0
|
||||
},
|
||||
"Season10": {
|
||||
"battlePassPurchased": false,
|
||||
"battlePassTier": 1,
|
||||
"battlePassXPBoost": 0,
|
||||
"battlePassXPFriendBoost": 0
|
||||
}
|
||||
}
|
||||
67
auth_backend/responses/Athena/motdTarget.json
Normal file
67
auth_backend/responses/Athena/motdTarget.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"contentType": "collection",
|
||||
"contentId": "motd-default-collection",
|
||||
"tcId": "634e8e85-e2fc-4c68-bb10-93604cf6605f",
|
||||
"contentItems": [
|
||||
{
|
||||
"contentType": "content-item",
|
||||
"contentId": "46874c56-0973-4cbe-ac98-b580c5b36df5",
|
||||
"tcId": "61fb3dd8-f23d-45cc-9058-058ab223ba5c",
|
||||
"contentFields": {
|
||||
"body": {
|
||||
"ar": "استمتع بتجربة لعب استثنائية!",
|
||||
"en": "Have a phenomenal gaming experience!",
|
||||
"de": "Wünsche allen ein wunderbares Spielerlebnis!",
|
||||
"es": "¡Que disfrutes de tu experiencia de videojuegos!",
|
||||
"es-419": "¡Ten una experiencia de juego espectacular!",
|
||||
"fr": "Un bon jeu à toutes et à tous !",
|
||||
"it": "Ti auguriamo un'esperienza di gioco fenomenale!",
|
||||
"ja": "驚きの体験をしよう!",
|
||||
"ko": "게임에서 환상적인 경험을 해보세요!",
|
||||
"pl": "Życzymy fenomenalnej gry!",
|
||||
"pt-BR": "Tenha uma experiência de jogo fenomenal!",
|
||||
"ru": "Желаю невероятно приятной игры!",
|
||||
"tr": "Muhteşem bir oyun deneyimi yaşamanı dileriz!"
|
||||
},
|
||||
"entryType": "Website",
|
||||
"image": [
|
||||
{
|
||||
"width": 1920,
|
||||
"height": 1080,
|
||||
"url": "https://fortnite-public-service-prod11.ol.epicgames.com/images/motd.png"
|
||||
}
|
||||
],
|
||||
"tabTitleOverride": "LawinServer",
|
||||
"tileImage": [
|
||||
{
|
||||
"width": 1024,
|
||||
"height": 512,
|
||||
"url": "https://fortnite-public-service-prod11.ol.epicgames.com/images/motd-s.png"
|
||||
}
|
||||
],
|
||||
"title": {
|
||||
"ar": "مرحبًا بك في LawinServer!",
|
||||
"en": "Welcome to LawinServer!",
|
||||
"de": "Willkommen bei LawinServer!",
|
||||
"es": "¡Bienvenidos a LawinServer!",
|
||||
"es-419": "¡Bienvenidos a LawinServer!",
|
||||
"fr": "Bienvenue sur LawinServer !",
|
||||
"it": "Benvenuto in LawinServer!",
|
||||
"ja": "LawinServerへようこそ!",
|
||||
"ko": "LawinServer에 오신 것을 환영합니다!",
|
||||
"pl": "Witaj w LawinServerze!",
|
||||
"pt-BR": "Bem-vindo ao LawinServer!",
|
||||
"ru": "Добро пожаловать в LawinServer!",
|
||||
"tr": "LavinServer'a Hoş Geldiniz!"
|
||||
},
|
||||
"videoAutoplay": false,
|
||||
"videoLoop": false,
|
||||
"videoMute": false,
|
||||
"videoStreamingEnabled": false,
|
||||
"websiteButtonText": "Discord",
|
||||
"websiteURL": "https://discord.gg/KJ8UaHZ"
|
||||
},
|
||||
"contentSchemaName": "MotdWebsiteNewsWithVideo"
|
||||
}
|
||||
]
|
||||
}
|
||||
52
auth_backend/responses/Athena/winterfestRewards.json
Normal file
52
auth_backend/responses/Athena/winterfestRewards.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"author": "List made by PRO100KatYT",
|
||||
"Season11": {
|
||||
"ERG.Node.A.1": ["AthenaCharacter:cid_645_athena_commando_f_wolly"],
|
||||
"ERG.Node.B.1": ["AthenaGlider:glider_id_188_galileorocket_g7oki"],
|
||||
"ERG.Node.C.1": ["AthenaBackpack:bid_430_galileospeedboat_9rxe3"],
|
||||
"ERG.Node.D.1": ["AthenaCharacter:cid_643_athena_commando_m_ornamentsoldier"],
|
||||
"ERG.Node.A.2": ["AthenaPickaxe:pickaxe_id_329_gingerbreadcookie1h"],
|
||||
"ERG.Node.A.3": ["AthenaPickaxe:pickaxe_id_332_mintminer"],
|
||||
"ERG.Node.A.4": ["AthenaDance:eid_snowglobe"],
|
||||
"ERG.Node.A.5": ["AthenaGlider:glider_id_191_pinetree"],
|
||||
"ERG.Node.A.6": ["AthenaItemWrap:wrap_188_wrappingpaper"],
|
||||
"ERG.Node.A.7": ["AthenaItemWrap:wrap_183_newyear2020"],
|
||||
"ERG.Node.A.8": ["AthenaSkyDiveContrail:trails_id_082_holidaygarland"],
|
||||
"ERG.Node.A.9": ["AthenaMusicPack:musicpack_040_xmaschiptunes"],
|
||||
"ERG.Node.A.10": ["AthenaLoadingScreen:lsid_208_smpattern"],
|
||||
"ERG.Node.A.11": ["AthenaLoadingScreen:lsid_209_akcrackshot"]
|
||||
},
|
||||
"Season19": {
|
||||
"ERG.Node.A.1": ["Token:14daysoffortnite_small_giftbox"],
|
||||
"ERG.Node.B.1": ["AthenaDance:emoji_s19_animwinterfest2021"],
|
||||
"ERG.Node.C.1": ["AthenaGlider:glider_id_335_logarithm_40qgl"],
|
||||
"ERG.Node.D.1": ["AthenaCharacter:cid_a_323_athena_commando_m_bananawinter"],
|
||||
"ERG.Node.A.2": ["HomebaseBannerIcon:brs19_winterfest2021"],
|
||||
"ERG.Node.A.3": ["AthenaSkyDiveContrail:trails_id_137_turtleneckcrystal"],
|
||||
"ERG.Node.A.4": ["AthenaItemWrap:wrap_429_holidaysweater"],
|
||||
"ERG.Node.A.5": ["AthenaLoadingScreen:lsid_393_winterfest2021"],
|
||||
"ERG.Node.A.6": ["AthenaMusicPack:musicpack_117_winterfest2021"],
|
||||
"ERG.Node.A.7": ["AthenaDance:eid_epicyarn"],
|
||||
"ERG.Node.A.8": ["AthenaCharacter:cid_a_310_athena_commando_F_scholarfestive"],
|
||||
"ERG.Node.A.9": ["AthenaPickaxe:pickaxe_id_731_scholarfestivefemale1h"],
|
||||
"ERG.Node.A.10": ["AthenaItemWrap:wrap_430_winterlights"],
|
||||
"ERG.Node.A.11": ["AthenaDance:spid_346_winterfest_2021"],
|
||||
"ERG.Node.A.12": ["AthenaPickaxe:pickaxe_ID_732_shovelmale"]
|
||||
},
|
||||
"Season23": {
|
||||
"ERG.Node.A.1": ["AthenaCharacter:character_sportsfashion_winter"],
|
||||
"ERG.Node.B.1": ["AthenaCharacter:character_cometdeer"],
|
||||
"ERG.Node.A.2": ["AthenaGlider:glider_default_jolly"],
|
||||
"ERG.Node.A.3": ["AthenaDance:eid_dashing"],
|
||||
"ERG.Node.A.4": ["AthenaDance:spray_guffholidaytree_winterfest2022", "AthenaDance:spray_winterreindeer_winterfest2022", "AthenaDance:spray_defacedsnowman_winterfest2022"],
|
||||
"ERG.Node.A.5": ["AthenaDance:emoji_s23_winterfest_2022"],
|
||||
"ERG.Node.A.6": ["AthenaMusicPack:musicpack_164_redpepper_winterfest"],
|
||||
"ERG.Node.A.7": ["AthenaItemWrap:wrap_winter_pal"],
|
||||
"ERG.Node.A.8": ["AthenaPickaxe:pickaxe_jollytroll"],
|
||||
"ERG.Node.A.9": ["AthenaGlider:glider_jollytroll"],
|
||||
"ERG.Node.A.10": ["AthenaBackpack:backpack_jollytroll"],
|
||||
"ERG.Node.A.11": ["AthenaMusicPack:musicpack_163_winterfest_2022", "AthenaMusicPack:musicpack_157_radish_nightnight"],
|
||||
"ERG.Node.A.12": ["AthenaItemWrap:wrap_cometwinter"],
|
||||
"ERG.Node.A.13": ["AthenaSkyDiveContrail:contrail_jollytroll"]
|
||||
}
|
||||
}
|
||||
1540
auth_backend/responses/Campaign/cardPackData.json
Normal file
1540
auth_backend/responses/Campaign/cardPackData.json
Normal file
File diff suppressed because it is too large
Load Diff
1351
auth_backend/responses/Campaign/dailyRewards.json
Normal file
1351
auth_backend/responses/Campaign/dailyRewards.json
Normal file
File diff suppressed because it is too large
Load Diff
1604
auth_backend/responses/Campaign/expeditionData.json
Normal file
1604
auth_backend/responses/Campaign/expeditionData.json
Normal file
File diff suppressed because it is too large
Load Diff
1160
auth_backend/responses/Campaign/rewards.json
Normal file
1160
auth_backend/responses/Campaign/rewards.json
Normal file
File diff suppressed because it is too large
Load Diff
454
auth_backend/responses/Campaign/survivorData.json
Normal file
454
auth_backend/responses/Campaign/survivorData.json
Normal file
@@ -0,0 +1,454 @@
|
||||
{
|
||||
"author": "This list was created by PRO100KatYT",
|
||||
"fixedAttributes": {
|
||||
"Worker:managerdoctor_c_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsDoctor"
|
||||
},
|
||||
"Worker:managerdoctor_r_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsDoctor"
|
||||
},
|
||||
"Worker:managerdoctor_sr_kingsly_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Doctor-kingsly.IconDef-ManagerPortrait-SR-Doctor-kingsly",
|
||||
"personality": "Homebase.Worker.Personality.IsCompetitive",
|
||||
"managerSynergy": "Homebase.Manager.IsDoctor",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managerdoctor_sr_noctor_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Doctor-Noctor.IconDef-ManagerPortrait-SR-Doctor-noctor",
|
||||
"personality": "Homebase.Worker.Personality.IsAnalytical",
|
||||
"managerSynergy": "Homebase.Manager.IsDoctor",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managerdoctor_sr_treky_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Doctor-treky.IconDef-ManagerPortrait-SR-Doctor-treky",
|
||||
"personality": "Homebase.Worker.Personality.IsPragmatic",
|
||||
"managerSynergy": "Homebase.Manager.IsDoctor",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managerdoctor_uc_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsDoctor"
|
||||
},
|
||||
"Worker:managerdoctor_vr_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsDoctor"
|
||||
},
|
||||
"Worker:managerengineer_c_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsEngineer"
|
||||
},
|
||||
"Worker:managerengineer_r_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsEngineer"
|
||||
},
|
||||
"Worker:managerengineer_sr_countess_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Engineer-countess.IconDef-ManagerPortrait-SR-Engineer-countess",
|
||||
"personality": "Homebase.Worker.Personality.IsPragmatic",
|
||||
"managerSynergy": "Homebase.Manager.IsEngineer",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managerengineer_sr_maths_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Engineer-maths.IconDef-ManagerPortrait-SR-Engineer-maths",
|
||||
"personality": "Homebase.Worker.Personality.IsAnalytical",
|
||||
"managerSynergy": "Homebase.Manager.IsEngineer",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managerengineer_sr_sobs_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Engineer-sobs.IconDef-ManagerPortrait-SR-Engineer-sobs",
|
||||
"personality": "Homebase.Worker.Personality.IsDreamer",
|
||||
"managerSynergy": "Homebase.Manager.IsEngineer",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managerengineer_uc_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsEngineer"
|
||||
},
|
||||
"Worker:managerengineer_vr_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsEngineer"
|
||||
},
|
||||
"Worker:managerexplorer_c_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsExplorer"
|
||||
},
|
||||
"Worker:managerexplorer_r_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsExplorer"
|
||||
},
|
||||
"Worker:managerexplorer_sr_birdie_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Explorer-birdie.IconDef-ManagerPortrait-SR-Explorer-birdie",
|
||||
"personality": "Homebase.Worker.Personality.IsCurious",
|
||||
"managerSynergy": "Homebase.Manager.IsExplorer",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managerexplorer_sr_eagle_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Explorer-eagle.IconDef-ManagerPortrait-SR-Explorer-eagle",
|
||||
"personality": "Homebase.Worker.Personality.IsAdventurous",
|
||||
"managerSynergy": "Homebase.Manager.IsExplorer",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managerexplorer_sr_spacebound_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Explorer-spacebound.IconDef-ManagerPortrait-SR-Explorer-spacebound",
|
||||
"personality": "Homebase.Worker.Personality.IsDreamer",
|
||||
"managerSynergy": "Homebase.Manager.IsExplorer",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managerexplorer_uc_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsExplorer"
|
||||
},
|
||||
"Worker:managerexplorer_vr_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsExplorer"
|
||||
},
|
||||
"Worker:managergadgeteer_c_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsGadgeteer"
|
||||
},
|
||||
"Worker:managergadgeteer_r_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsGadgeteer"
|
||||
},
|
||||
"Worker:managergadgeteer_sr_fixer_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Gadgeteer-fixer.IconDef-ManagerPortrait-SR-Gadgeteer-fixer",
|
||||
"personality": "Homebase.Worker.Personality.IsAnalytical",
|
||||
"managerSynergy": "Homebase.Manager.IsGadgeteer",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managergadgeteer_sr_flak_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Gadgeteer-flak.IconDef-ManagerPortrait-SR-Gadgeteer-flak",
|
||||
"personality": "Homebase.Worker.Personality.IsDependable",
|
||||
"managerSynergy": "Homebase.Manager.IsGadgeteer",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managergadgeteer_sr_zapps_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Gadgeteer-zapps.IconDef-ManagerPortrait-SR-Gadgeteer-zapps",
|
||||
"personality": "Homebase.Worker.Personality.IsCurious",
|
||||
"managerSynergy": "Homebase.Manager.IsGadgeteer",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managergadgeteer_uc_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsGadgeteer"
|
||||
},
|
||||
"Worker:managergadgeteer_vr_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsGadgeteer"
|
||||
},
|
||||
"Worker:managerinventor_c_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsInventor"
|
||||
},
|
||||
"Worker:managerinventor_r_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsInventor"
|
||||
},
|
||||
"Worker:managerinventor_sr_frequency_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Inventor-frequency.IconDef-ManagerPortrait-SR-Inventor-frequency",
|
||||
"personality": "Homebase.Worker.Personality.IsDreamer",
|
||||
"managerSynergy": "Homebase.Manager.IsInventor",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managerinventor_sr_rad_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Inventor-rad.IconDef-ManagerPortrait-SR-Inventor-rad",
|
||||
"personality": "Homebase.Worker.Personality.IsCooperative",
|
||||
"managerSynergy": "Homebase.Manager.IsInventor",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managerinventor_sr_square_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Inventor-square.IconDef-ManagerPortrait-SR-Inventor-square",
|
||||
"personality": "Homebase.Worker.Personality.IsPragmatic",
|
||||
"managerSynergy": "Homebase.Manager.IsInventor",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managerinventor_uc_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsInventor"
|
||||
},
|
||||
"Worker:managerinventor_vr_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsInventor"
|
||||
},
|
||||
"Worker:managermartialartist_c_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsMartialArtist"
|
||||
},
|
||||
"Worker:managermartialartist_r_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsMartialArtist"
|
||||
},
|
||||
"Worker:managermartialartist_sr_dragon_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-MartialArtist-dragon.IconDef-ManagerPortrait-SR-MartialArtist-dragon",
|
||||
"personality": "Homebase.Worker.Personality.IsAdventurous",
|
||||
"managerSynergy": "Homebase.Manager.IsMartialArtist",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managermartialartist_sr_samurai_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-MartialArtist-samurai.IconDef-ManagerPortrait-SR-MartialArtist-samurai",
|
||||
"personality": "Homebase.Worker.Personality.IsCompetitive",
|
||||
"managerSynergy": "Homebase.Manager.IsMartialArtist",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managermartialartist_sr_tiger_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-MartialArtist-tiger.IconDef-ManagerPortrait-SR-MartialArtist-tiger",
|
||||
"personality": "Homebase.Worker.Personality.IsDependable",
|
||||
"managerSynergy": "Homebase.Manager.IsMartialArtist",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managermartialartist_uc_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsMartialArtist"
|
||||
},
|
||||
"Worker:managermartialartist_vr_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsMartialArtist"
|
||||
},
|
||||
"Worker:managerquestdoctor_r_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsDoctor"
|
||||
},
|
||||
"Worker:managersoldier_c_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsSoldier"
|
||||
},
|
||||
"Worker:managersoldier_r_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsSoldier"
|
||||
},
|
||||
"Worker:managersoldier_sr_malcolm_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Soldier-malcolm.IconDef-ManagerPortrait-SR-Soldier-malcolm",
|
||||
"personality": "Homebase.Worker.Personality.IsCooperative",
|
||||
"managerSynergy": "Homebase.Manager.IsSoldier",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managersoldier_sr_princess_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Soldier-princess.IconDef-ManagerPortrait-SR-Soldier-princess",
|
||||
"personality": "Homebase.Worker.Personality.IsDependable",
|
||||
"managerSynergy": "Homebase.Manager.IsSoldier",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managersoldier_sr_ramsie_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-Soldier-ramsie.IconDef-ManagerPortrait-SR-Soldier-ramsie",
|
||||
"personality": "Homebase.Worker.Personality.IsAdventurous",
|
||||
"managerSynergy": "Homebase.Manager.IsSoldier",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managersoldier_uc_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsSoldier"
|
||||
},
|
||||
"Worker:managersoldier_vr_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsSoldier"
|
||||
},
|
||||
"Worker:managertrainer_c_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsTrainer"
|
||||
},
|
||||
"Worker:managertrainer_r_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsTrainer"
|
||||
},
|
||||
"Worker:managertrainer_sr_jumpy_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-PersonalTrainer-jumpy.IconDef-ManagerPortrait-SR-PersonalTrainer-jumpy",
|
||||
"personality": "Homebase.Worker.Personality.IsCooperative",
|
||||
"managerSynergy": "Homebase.Manager.IsTrainer",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:managertrainer_sr_raider_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-PersonalTrainer-raider.IconDef-ManagerPortrait-SR-PersonalTrainer-raider",
|
||||
"personality": "Homebase.Worker.Personality.IsCurious",
|
||||
"managerSynergy": "Homebase.Manager.IsTrainer",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managertrainer_sr_yoglattes_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-SR-PersonalTrainer-yoglattes.IconDef-ManagerPortrait-SR-PersonalTrainer-yoglattes",
|
||||
"personality": "Homebase.Worker.Personality.IsCompetitive",
|
||||
"managerSynergy": "Homebase.Manager.IsTrainer",
|
||||
"gender": "2"
|
||||
},
|
||||
"Worker:managertrainer_uc_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsTrainer"
|
||||
},
|
||||
"Worker:managertrainer_vr_t01": {
|
||||
"managerSynergy": "Homebase.Manager.IsTrainer"
|
||||
},
|
||||
"Worker:workerhalloween_alt_sr_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Troll.IconDef-WorkerPortrait-Troll",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:workerhalloween_c_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Husk.IconDef-WorkerPortrait-Husk",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:workerhalloween_r_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Pitcher.IconDef-WorkerPortrait-Pitcher",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:workerhalloween_sr_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Smasher.IconDef-WorkerPortrait-Smasher",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:workerhalloween_uc_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Husky.IconDef-WorkerPortrait-Husky",
|
||||
"gender": "1"
|
||||
},
|
||||
"Worker:workerhalloween_vr_t01": {
|
||||
"portrait": "/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Lobber.IconDef-WorkerPortrait-Lobber",
|
||||
"gender": "2"
|
||||
}
|
||||
},
|
||||
"bonuses": [
|
||||
"Homebase.Worker.SetBonus.IsResistanceLow",
|
||||
"Homebase.Worker.SetBonus.IsMeleeDamageLow",
|
||||
"Homebase.Worker.SetBonus.IsTrapDamageLow",
|
||||
"Homebase.Worker.SetBonus.IsShieldRegenLow",
|
||||
"Homebase.Worker.SetBonus.IsFortitudeLow",
|
||||
"Homebase.Worker.SetBonus.IsRangedDamageLow",
|
||||
"Homebase.Worker.SetBonus.IsAbilityDamageLow",
|
||||
"Homebase.Worker.SetBonus.IsTrapDurabilityHigh"
|
||||
],
|
||||
"personalities": [
|
||||
"Homebase.Worker.Personality.IsAdventurous",
|
||||
"Homebase.Worker.Personality.IsAnalytical",
|
||||
"Homebase.Worker.Personality.IsCompetitive",
|
||||
"Homebase.Worker.Personality.IsCooperative",
|
||||
"Homebase.Worker.Personality.IsCurious",
|
||||
"Homebase.Worker.Personality.IsDependable",
|
||||
"Homebase.Worker.Personality.IsDreamer",
|
||||
"Homebase.Worker.Personality.IsPragmatic"
|
||||
],
|
||||
"portraits": {
|
||||
"Homebase.Manager.IsDoctor": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Doctor-M01.IconDef-ManagerPortrait-Doctor-M01"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Doctor-F01.IconDef-ManagerPortrait-Doctor-F01"
|
||||
]
|
||||
},
|
||||
"Homebase.Manager.IsEngineer": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Engineer-M01.IconDef-ManagerPortrait-Engineer-M01"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Engineer-F01.IconDef-ManagerPortrait-Engineer-F01"
|
||||
]
|
||||
},
|
||||
"Homebase.Manager.IsExplorer": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Explorer-M01.IconDef-ManagerPortrait-Explorer-M01"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Explorer-F01.IconDef-ManagerPortrait-Explorer-F01"
|
||||
]
|
||||
},
|
||||
"Homebase.Manager.IsGadgeteer": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Gadgeteer-M01.IconDef-ManagerPortrait-Gadgeteer-M01"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Gadgeteer-F01.IconDef-ManagerPortrait-Gadgeteer-F01"
|
||||
]
|
||||
},
|
||||
"Homebase.Manager.IsInventor": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Inventor-M01.IconDef-ManagerPortrait-Inventor-M01"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Inventor-F01.IconDef-ManagerPortrait-Inventor-F01"
|
||||
]
|
||||
},
|
||||
"Homebase.Manager.IsSoldier": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Marksman-M01.IconDef-ManagerPortrait-Marksman-M01"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-Marksman-F01.IconDef-ManagerPortrait-Marksman-F01"
|
||||
]
|
||||
},
|
||||
"Homebase.Manager.IsMartialArtist": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-MartialArtist-M01.IconDef-ManagerPortrait-MartialArtist-M01"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-MartialArtist-F01.IconDef-ManagerPortrait-MartialArtist-F01"
|
||||
]
|
||||
},
|
||||
"Homebase.Manager.IsTrainer": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-PersonalTrainer-M01.IconDef-ManagerPortrait-PersonalTrainer-M01"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-ManagerPortrait-PersonalTrainer-F01.IconDef-ManagerPortrait-PersonalTrainer-F01"
|
||||
]
|
||||
},
|
||||
"Homebase.Worker.Personality.IsAdventurous": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Adventurous-M01.IconDef-WorkerPortrait-Adventurous-M01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Adventurous-M02.IconDef-WorkerPortrait-Adventurous-M02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Adventurous-M03.IconDef-WorkerPortrait-Adventurous-M03"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Adventurous-F01.IconDef-WorkerPortrait-Adventurous-F01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Adventurous-F02.IconDef-WorkerPortrait-Adventurous-F02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Adventurous-F03.IconDef-WorkerPortrait-Adventurous-F03"
|
||||
]
|
||||
},
|
||||
"Homebase.Worker.Personality.IsAnalytical": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Analytical-M01.IconDef-WorkerPortrait-Analytical-M01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Analytical-M02.IconDef-WorkerPortrait-Analytical-M02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Analytical-M03.IconDef-WorkerPortrait-Analytical-M03"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Analytical-F01.IconDef-WorkerPortrait-Analytical-F01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Analytical-F02.IconDef-WorkerPortrait-Analytical-F02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Analytical-F03.IconDef-WorkerPortrait-Analytical-F03"
|
||||
]
|
||||
},
|
||||
"Homebase.Worker.Personality.IsCompetitive": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Competitive-M01.IconDef-WorkerPortrait-Competitive-M01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Competitive-M02.IconDef-WorkerPortrait-Competitive-M02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Competitive-M03.IconDef-WorkerPortrait-Competitive-M03"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Competitive-F01.IconDef-WorkerPortrait-Competitive-F01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Competitive-F02.IconDef-WorkerPortrait-Competitive-F02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Competitive-F03.IconDef-WorkerPortrait-Competitive-F03"
|
||||
]
|
||||
},
|
||||
"Homebase.Worker.Personality.IsCooperative": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Cooperative-M01.IconDef-WorkerPortrait-Cooperative-M01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Cooperative-M02.IconDef-WorkerPortrait-Cooperative-M02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Cooperative-M03.IconDef-WorkerPortrait-Cooperative-M03"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Cooperative-F01.IconDef-WorkerPortrait-Cooperative-F01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Cooperative-F02.IconDef-WorkerPortrait-Cooperative-F02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Cooperative-F03.IconDef-WorkerPortrait-Cooperative-F03"
|
||||
]
|
||||
},
|
||||
"Homebase.Worker.Personality.IsCurious": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Curious-M01.IconDef-WorkerPortrait-Curious-M01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Curious-M02.IconDef-WorkerPortrait-Curious-M02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Curious-M03.IconDef-WorkerPortrait-Curious-M03"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Curious-F01.IconDef-WorkerPortrait-Curious-F01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Curious-F02.IconDef-WorkerPortrait-Curious-F02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Curious-F03.IconDef-WorkerPortrait-Curious-F03"
|
||||
]
|
||||
},
|
||||
"Homebase.Worker.Personality.IsDependable": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dependable-M01.IconDef-WorkerPortrait-Dependable-M01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dependable-M02.IconDef-WorkerPortrait-Dependable-M02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dependable-M03.IconDef-WorkerPortrait-Dependable-M03"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dependable-F01.IconDef-WorkerPortrait-Dependable-F01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dependable-F02.IconDef-WorkerPortrait-Dependable-F02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dependable-F03.IconDef-WorkerPortrait-Dependable-F03"
|
||||
]
|
||||
},
|
||||
"Homebase.Worker.Personality.IsDreamer": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dreamer-M01.IconDef-WorkerPortrait-Dreamer-M01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dreamer-M02.IconDef-WorkerPortrait-Dreamer-M02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dreamer-M03.IconDef-WorkerPortrait-Dreamer-M03"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dreamer-F01.IconDef-WorkerPortrait-Dreamer-F01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dreamer-F02.IconDef-WorkerPortrait-Dreamer-F02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Dreamer-F03.IconDef-WorkerPortrait-Dreamer-F03"
|
||||
]
|
||||
},
|
||||
"Homebase.Worker.Personality.IsPragmatic": {
|
||||
"1": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Pragmatic-M01.IconDef-WorkerPortrait-Pragmatic-M01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Pragmatic-M02.IconDef-WorkerPortrait-Pragmatic-M02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Pragmatic-M03.IconDef-WorkerPortrait-Pragmatic-M03"
|
||||
],
|
||||
"2": [
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Pragmatic-F01.IconDef-WorkerPortrait-Pragmatic-F01",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Pragmatic-F02.IconDef-WorkerPortrait-Pragmatic-F02",
|
||||
"/Game/UI/Icons/Icon-Worker/IconDefinitions/IconDef-WorkerPortrait-Pragmatic-F03.IconDef-WorkerPortrait-Pragmatic-F03"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
2085
auth_backend/responses/Campaign/transformItemIDS.json
Normal file
2085
auth_backend/responses/Campaign/transformItemIDS.json
Normal file
File diff suppressed because it is too large
Load Diff
62801
auth_backend/responses/Campaign/worldstw.json
Normal file
62801
auth_backend/responses/Campaign/worldstw.json
Normal file
File diff suppressed because it is too large
Load Diff
90
auth_backend/responses/CloudDir/Full.ini
Normal file
90
auth_backend/responses/CloudDir/Full.ini
Normal file
@@ -0,0 +1,90 @@
|
||||
[LawinServer.manifest,FortniteCreative]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,FortniteCampaign]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.pl]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.es-419Optional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,StartupOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,FortniteCampaignTutorial]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.allOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.itOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.es-419]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,KairosCapture]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,FortniteBR]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,FortniteCreativeOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.zh-CN]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.ruOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.frOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.deOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.de]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,FortniteBROptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,FortniteCampaignOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,FortniteCampaignTutorialOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.ru]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.plOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.fr]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.es-ESOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,KairosCaptureOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.all]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.zh-CNOptional]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.it]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Lang.es-ES]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
[LawinServer.manifest,Startup]
|
||||
DeltaDownloadSize="0"
|
||||
DownloadSize="0"
|
||||
0
auth_backend/responses/CloudDir/LawinServer.chunk
Normal file
0
auth_backend/responses/CloudDir/LawinServer.chunk
Normal file
7
auth_backend/responses/SAC.json
Normal file
7
auth_backend/responses/SAC.json
Normal file
@@ -0,0 +1,7 @@
|
||||
[
|
||||
"lawin",
|
||||
"ti93",
|
||||
"pro100katyt",
|
||||
"playeereq",
|
||||
"matteoki"
|
||||
]
|
||||
3403
auth_backend/responses/catalog.json
Normal file
3403
auth_backend/responses/catalog.json
Normal file
File diff suppressed because it is too large
Load Diff
6354
auth_backend/responses/contentpages.json
Normal file
6354
auth_backend/responses/contentpages.json
Normal file
File diff suppressed because it is too large
Load Diff
86
auth_backend/responses/friendslist.json
Normal file
86
auth_backend/responses/friendslist.json
Normal file
@@ -0,0 +1,86 @@
|
||||
[
|
||||
{
|
||||
"accountId": "Player123",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-23T13:38:39.614Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "Player857",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-23T13:38:45.823Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "Player955",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-23T13:42:38.200Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "Player444",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-23T13:47:15.982Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "Player742",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-23T13:57:03.026Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "abc",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-23T13:57:32.044Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "Player",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-23T14:35:00.802Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "Player260",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-23T18:41:47.035Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "abce1",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-23T19:36:22.635Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "Player809",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-31T19:09:47.089Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "Player153",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-05-31T19:50:04.738Z",
|
||||
"favorite": false
|
||||
},
|
||||
{
|
||||
"accountId": "Player724",
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": "2024-06-24T20:15:48.062Z",
|
||||
"favorite": false
|
||||
}
|
||||
]
|
||||
119
auth_backend/responses/friendslist2.json
Normal file
119
auth_backend/responses/friendslist2.json
Normal file
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"friends": [
|
||||
{
|
||||
"accountId": "Player123",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-23T13:38:39.614Z"
|
||||
},
|
||||
{
|
||||
"accountId": "Player857",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-23T13:38:45.823Z"
|
||||
},
|
||||
{
|
||||
"accountId": "Player955",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-23T13:42:38.200Z"
|
||||
},
|
||||
{
|
||||
"accountId": "Player444",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-23T13:47:15.982Z"
|
||||
},
|
||||
{
|
||||
"accountId": "Player742",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-23T13:57:03.026Z"
|
||||
},
|
||||
{
|
||||
"accountId": "abc",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-23T13:57:32.044Z"
|
||||
},
|
||||
{
|
||||
"accountId": "Player",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-23T14:35:00.802Z"
|
||||
},
|
||||
{
|
||||
"accountId": "Player260",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-23T18:41:47.035Z"
|
||||
},
|
||||
{
|
||||
"accountId": "abce1",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-23T19:36:22.635Z"
|
||||
},
|
||||
{
|
||||
"accountId": "Player809",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-31T19:09:47.089Z"
|
||||
},
|
||||
{
|
||||
"accountId": "Player153",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-05-31T19:50:04.738Z"
|
||||
},
|
||||
{
|
||||
"accountId": "Player724",
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": "2024-06-24T20:15:48.062Z"
|
||||
}
|
||||
],
|
||||
"incoming": [],
|
||||
"outgoing": [],
|
||||
"suggested": [],
|
||||
"blocklist": [],
|
||||
"settings": {
|
||||
"acceptInvites": "public"
|
||||
}
|
||||
}
|
||||
2090
auth_backend/responses/keychain.json
Normal file
2090
auth_backend/responses/keychain.json
Normal file
File diff suppressed because it is too large
Load Diff
4
auth_backend/responses/privacy.json
Normal file
4
auth_backend/responses/privacy.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"accountId": "",
|
||||
"optOutOfPublicLeaderboards": false
|
||||
}
|
||||
121683
auth_backend/responses/quests.json
Normal file
121683
auth_backend/responses/quests.json
Normal file
File diff suppressed because it is too large
Load Diff
658
auth_backend/responses/sdkv1.json
Normal file
658
auth_backend/responses/sdkv1.json
Normal file
@@ -0,0 +1,658 @@
|
||||
{
|
||||
"client": {
|
||||
"RateLimiter.InventoryClient": {
|
||||
"MessageCount": 100,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"BaseService": {
|
||||
"HttpRetryLimit": 4,
|
||||
"HttpRetryResponseCodes": [
|
||||
429,
|
||||
503,
|
||||
504
|
||||
]
|
||||
},
|
||||
"RateLimiter.AuthClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.PresenceClient.Operations": {
|
||||
"MessageCount": 3,
|
||||
"TimeIntervalInSeconds": 20.0,
|
||||
"Operation": [
|
||||
"SendUpdate",
|
||||
"SetPresence"
|
||||
]
|
||||
},
|
||||
"RateLimiter.ReceiptValidatorClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.LeaderboardsClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.MetricsClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.StatsClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.SDKConfigClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"RequestUpdate"
|
||||
]
|
||||
},
|
||||
"RateLimiter.TitleStorageClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.EcomClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.DataStorageClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"GetAccessLinks",
|
||||
"QueryFile",
|
||||
"QueryFileList",
|
||||
"CopyFile",
|
||||
"DeleteFile",
|
||||
"ReadFile",
|
||||
"WriteFile",
|
||||
"DownloadFileRedirected",
|
||||
"UploadFileRedirected"
|
||||
]
|
||||
},
|
||||
"LeaderboardsClient": {
|
||||
"MaxUserScoresQueryUserIds": 100,
|
||||
"MaxUserScoresQueryStats": 25
|
||||
},
|
||||
"RateLimiter.CustomInvitesClient.Operations": {
|
||||
"MessageCount": 50,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"SendCustomInvite"
|
||||
]
|
||||
},
|
||||
"HTTP": {
|
||||
"HttpReceiveTimeout": 30,
|
||||
"bEnableHttp": true,
|
||||
"HttpTimeout": 30,
|
||||
"HttpConnectionTimeout": 60,
|
||||
"HttpSendTimeout": 30,
|
||||
"MaxFlushTimeSeconds": 2.0
|
||||
},
|
||||
"RateLimiter.FriendClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryFriends",
|
||||
"SendFriendInvite",
|
||||
"DeleteFriend"
|
||||
]
|
||||
},
|
||||
"RateLimiter.RTCAdminClient": {
|
||||
"MessageCount": 50,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.UserInfoClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"/Script/Engine.NetworkSettings": {
|
||||
"n.VerifyPeer": false
|
||||
},
|
||||
"WebSockets.LibWebSockets": {
|
||||
"ThreadStackSize": 131072,
|
||||
"ThreadTargetFrameTimeInSeconds": 0.0333,
|
||||
"ThreadMinimumSleepTimeInSeconds": 0.0
|
||||
},
|
||||
"StatsClient": {
|
||||
"MaxQueryStatsStatNamesStrLength": 1900
|
||||
},
|
||||
"RateLimiter.MetricsClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"RegisterPlayerBackendSession"
|
||||
]
|
||||
},
|
||||
"RateLimiter.DataStorageClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"SanitizerClient": {
|
||||
"ReplaceChar": "*",
|
||||
"RequestLimit": 10
|
||||
},
|
||||
"RateLimiter.ModsClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"InstallMod",
|
||||
"UninstallMod",
|
||||
"UpdateMod",
|
||||
"EnumerateMods"
|
||||
]
|
||||
},
|
||||
"RateLimiter.ReportsClient.Operations": {
|
||||
"MessageCount": 100,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"SendPlayerBehaviorReport"
|
||||
]
|
||||
},
|
||||
"RateLimiter.RTCAdminClient.Operations": {
|
||||
"MessageCount": 50,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryJoinRoomToken",
|
||||
"Kick",
|
||||
"SetParticipantHardMute"
|
||||
]
|
||||
},
|
||||
"RateLimiter.FriendClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.AchievementsClient": {
|
||||
"MessageCount": 100,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"LogFiles": {
|
||||
"PurgeLogsDays": 5,
|
||||
"MaxLogFilesOnDisk": 5,
|
||||
"LogTimes": "SinceStart"
|
||||
},
|
||||
"RateLimiter": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.AntiCheatClient": {
|
||||
"MessageCount": 120,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.ProgressionSnapshot": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"SessionsClient": {
|
||||
"HeartbeatIntervalSecs": 30
|
||||
},
|
||||
"RateLimiter.UserInfoClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryLocalUserInfo",
|
||||
"QueryUserInfo",
|
||||
"QueryUserInfoByDisplayName",
|
||||
"QueryUserInfoByExternalAccount"
|
||||
]
|
||||
},
|
||||
"LobbyClient": {
|
||||
"InitialResendDelayMs": 100,
|
||||
"MaxConnectionRetries": 3,
|
||||
"LobbySocketURL": "wss://api.epicgames.dev/lobby/v1/`deploymentId/lobbies/connect",
|
||||
"NumConsecutiveFailuresAllowed": 5,
|
||||
"MaxResendDelayMs": 2000,
|
||||
"WebSocketConnectTaskMaxNetworkWaitSeconds": 15.0,
|
||||
"RecoveryWaitTimeSecs": 2,
|
||||
"InitialRetryDelaySeconds": 5,
|
||||
"MaxSendRetries": 3,
|
||||
"SentMessageTimeout": 5,
|
||||
"HeartbeatIntervalSecs": 30,
|
||||
"MaxRetryIntervalSeconds": 15
|
||||
},
|
||||
"RateLimiter.SanctionsClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryActivePlayerSanctions"
|
||||
]
|
||||
},
|
||||
"UIClient.SocialURLQueryParamNames": {
|
||||
"OSName": "os_name",
|
||||
"ProductId": "product_id",
|
||||
"SDKCLNumber": "sdk_cl_number",
|
||||
"DeploymentId": "deployment_id",
|
||||
"IntegratedPlatformName": "integrated_platform_name",
|
||||
"SDKVersion": "sdk_version",
|
||||
"OSVersion": "os_version",
|
||||
"UserId": "user_id",
|
||||
"ExchangeCode": "exchange_code"
|
||||
},
|
||||
"RateLimiter.LobbyClient.ThrottledOperations": {
|
||||
"MessageCount": 30,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"CreateLobby",
|
||||
"DestroyLobby",
|
||||
"JoinLobby",
|
||||
"LeaveLobby",
|
||||
"HeartbeatLobby",
|
||||
"UpdateLobby",
|
||||
"PromoteMember",
|
||||
"KickLobbyMember",
|
||||
"SendLobbyInvite",
|
||||
"RejectLobbyInvite",
|
||||
"QueryInvites",
|
||||
"FindLobby",
|
||||
"RefreshRTCToken",
|
||||
"HardMuteMember"
|
||||
]
|
||||
},
|
||||
"RateLimiter.SessionsClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.KWSClient": {
|
||||
"MessageCount": 20,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.PresenceClient": {
|
||||
"MessageCount": 60,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.KWSClient.Operations": {
|
||||
"MessageCount": 20,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"CreateUser",
|
||||
"UpdateParentEmail",
|
||||
"QueryAgeGate",
|
||||
"QueryPermissions",
|
||||
"RequestPermissions"
|
||||
]
|
||||
},
|
||||
"RateLimiter.InventoryClient.Operations": {
|
||||
"MessageCount": 100,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"Open",
|
||||
"Close"
|
||||
]
|
||||
},
|
||||
"RateLimiter.LeaderboardsClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryLeaderboardDefinitions",
|
||||
"QueryLeaderboardRanks",
|
||||
"QueryLeaderboardUserScores"
|
||||
]
|
||||
},
|
||||
"RateLimiter.SanctionsClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"Messaging.EpicConnect": {
|
||||
"FailedConnectionDelayMultiplier": 2.5,
|
||||
"ServerHeartbeatIntervalMilliseconds": 0,
|
||||
"FailedConnectionDelayMaxSeconds": 180,
|
||||
"ClientHeartbeatIntervalMilliseconds": 30000,
|
||||
"FailedConnectionDelayIntervalSeconds": 5,
|
||||
"Url": "wss://connect.epicgames.dev"
|
||||
},
|
||||
"MetricsClient": {
|
||||
"HttpRetryLimit": 2
|
||||
},
|
||||
"RateLimiter.TitleStorageClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryFile",
|
||||
"QueryFileList",
|
||||
"ReadFile"
|
||||
]
|
||||
},
|
||||
"RateLimiter.AchievementsClient.Operations": {
|
||||
"MessageCount": 100,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryDefinitions",
|
||||
"QueryPlayerAchievements",
|
||||
"UnlockAchievements"
|
||||
]
|
||||
},
|
||||
"Messaging.Stomp": {
|
||||
"ClientHeartbeatIntervalMs": 30000,
|
||||
"RequestedServerHeartbeatIntervalMs": 30000,
|
||||
"Url": "wss://api.epicgames.dev/notifications/v1/`deploymentid`/connect",
|
||||
"BlocklistMessageTypeFilters": [
|
||||
"lobbyinvite"
|
||||
]
|
||||
},
|
||||
"TitleStorageClient": {
|
||||
"AccessLinkDurationSeconds": 300,
|
||||
"UnusedCachedFileDaysToLive": 7,
|
||||
"ClearInvalidFileCacheFrequencyDays": 2,
|
||||
"MaxSimultaneousReads": 10
|
||||
},
|
||||
"ConnectClient": {
|
||||
"MaxProductUserIdMappingsQueryUserIds": 128,
|
||||
"MinProductUserIdMappingsUpdateTimeInSeconds": 900.0
|
||||
},
|
||||
"RateLimiter.LobbyClient.Operations": {
|
||||
"MessageCount": 100,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"GetByLobbyId",
|
||||
"UpdateLobby"
|
||||
]
|
||||
},
|
||||
"RateLimiter.AntiCheatClient.Operations": {
|
||||
"MessageCount": 120,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryServiceStatus",
|
||||
"SendClientMessage"
|
||||
]
|
||||
},
|
||||
"EcomClient": {
|
||||
"PurchaseUrl": "https://launcher-website-prod07.ol.epicgames.com/purchase",
|
||||
"PurchaseCookieName": "EPIC_BEARER_TOKEN",
|
||||
"PurchaseEpicIdUrl": "https://www.epicgames.com/ecom/payment/v1/purchase"
|
||||
},
|
||||
"RateLimiter.SessionsClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"UpdateSession",
|
||||
"JoinSession",
|
||||
"StartSession",
|
||||
"EndSession",
|
||||
"RegisterPlayers",
|
||||
"SendInvite",
|
||||
"RejectInvite",
|
||||
"QueryInvites",
|
||||
"FindSession",
|
||||
"DestroySession"
|
||||
]
|
||||
},
|
||||
"RateLimiter.StatsClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"IngestStat",
|
||||
"QueryStats"
|
||||
]
|
||||
},
|
||||
"RateLimiter.ReceiptValidatorClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"VerifyPurchase"
|
||||
]
|
||||
},
|
||||
"DataStorageClient": {
|
||||
"AccessLinkDurationSeconds": 300,
|
||||
"MaxSimultaneousReads": 10,
|
||||
"MaxSimultaneousWrites": 10
|
||||
},
|
||||
"RateLimiter.AuthClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"VerifyAuth",
|
||||
"DeletePersistentAuth",
|
||||
"GenerateClientAuth",
|
||||
"LinkAccount",
|
||||
"QueryIdToken",
|
||||
"VerifyIdToken"
|
||||
]
|
||||
},
|
||||
"P2PClient": {
|
||||
"IceServers": [
|
||||
"stun:stun.l.google.com:19302",
|
||||
"stun:turn.rtcp.on.epicgames.com:3478",
|
||||
"turn:turn.rtcp.on.epicgames.com:3478"
|
||||
],
|
||||
"P2PMinPort": 7777,
|
||||
"P2PMaxPort": 7876
|
||||
},
|
||||
"RateLimiter.LobbyClient": {
|
||||
"MessageCount": 30,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"SDKAnalytics": {
|
||||
"BaseUrl": "https://api.epicgames.dev/telemetry/data/",
|
||||
"DevPhase": 2,
|
||||
"AppEnvironment": "Production",
|
||||
"UploadType": "sdkevents"
|
||||
},
|
||||
"RateLimiter.ConnectClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"AntiCheat.GameplayData": {
|
||||
"Url": "wss://api.epicgames.dev/cerberus-edge/v1/"
|
||||
},
|
||||
"AuthClient": {
|
||||
"AccountPortalURLLocaleSuffix": "lang=`code",
|
||||
"PollInterval": 5,
|
||||
"RefreshTokenThreshold": 100.0,
|
||||
"VPCRegisterURL": "https://epicgames.com/id/register/quick/minor/await?code=`challenge_id&display=embedded",
|
||||
"AuthorizeContinuationEndpoint": "https://epicgames.com/id/login?continuation=`continuation&prompt=skip_merge%20skip_upgrade",
|
||||
"AuthorizeCodeEndpoint": "https://epicgames.com/id/authorize?client_id=`client_id&response_type=code&scope=`scope&redirect_uri=`redirect_uri&display=popup&prompt=login",
|
||||
"AuthorizeContinuationEmbeddedEndpoint": "https://epicgames.com/id/embedded/login?continuation=`continuation&prompt=skip_merge%20skip_upgrade",
|
||||
"VerifyTokenInterval": 60.0,
|
||||
"PollExpiresIn": 300,
|
||||
"IdTokenCacheMinExpirySeconds": 300,
|
||||
"AuthorizeEndpoint": "https://epicgames.com/id/authorize?exchange_code=`exchange_code&scope=`scope&prompt=skip_merge%20skip_upgrade",
|
||||
"AccountPortalScheme": "eos.`client_id://epic/auth",
|
||||
"bOfflineAccountToken": true
|
||||
},
|
||||
"RateLimiter.ProgressionSnapshot.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"SubmitSnapshot",
|
||||
"DeleteSnapshot"
|
||||
]
|
||||
},
|
||||
"XMPP": {
|
||||
"bEnabled": true,
|
||||
"bEnableWebsockets": true,
|
||||
"ThreadStackSize": 131072
|
||||
},
|
||||
"RateLimiter.AntiCheatServer.Operations": {
|
||||
"MessageCount": 100000,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryServiceStatus",
|
||||
"SendClientMessage"
|
||||
]
|
||||
},
|
||||
"Core.Log": {
|
||||
"LogEOS": "verbose",
|
||||
"LogEOSMessaging": "verbose",
|
||||
"LogEOSConnect": "verbose",
|
||||
"LogEOSAuth": "verbose",
|
||||
"LogHttpSerialization": "verbose",
|
||||
"LogCore": "verbose",
|
||||
"LogHttp": "warning",
|
||||
"LogStomp": "verbose",
|
||||
"LogXmpp": "verbose",
|
||||
"LogEOSSessions": "verbose"
|
||||
},
|
||||
"UIClient": {
|
||||
"FriendsURL": "https://epic-social-game-overlay-prod.ol.epicgames.com/index.html",
|
||||
"SocialSPAClientId": "cf27c69fe66441e8a8a4e8faf396ee4c",
|
||||
"VPCURLLocaleSuffix": "&lang=`code",
|
||||
"FriendsURLExchangeCodeSuffix": "?exchange_code=`exchange_code",
|
||||
"VPCURL": "https://epicgames.com/id/overlay/quick/minor/verify?code=`challenge_id"
|
||||
},
|
||||
"RateLimiter.AntiCheatServer": {
|
||||
"MessageCount": 100000,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"Messaging.XMPP": {
|
||||
"ReconnectionDelayJitter": 1.5,
|
||||
"PingTimeout": 30,
|
||||
"ReconnectionDelayBase": 4.0,
|
||||
"ServerPort": 443,
|
||||
"bPrivateChatFriendsOnly": true,
|
||||
"ReconnectionDelayMax": 300.0,
|
||||
"Domain": "prod.ol.epicgames.com",
|
||||
"ReconnectionDelayBackoffExponent": 2.0,
|
||||
"ServerAddr": "wss://xmpp-service-prod.ol.epicgames.com",
|
||||
"PingInterval": 60
|
||||
},
|
||||
"RateLimiter.SDKConfigClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.EcomClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"QueryOwnership",
|
||||
"QueryOwnershipToken",
|
||||
"QueryEntitlement",
|
||||
"QueryOffer",
|
||||
"RedeemEntitlements",
|
||||
"Checkout"
|
||||
]
|
||||
},
|
||||
"PresenceClient": {
|
||||
"EpicConnectNotificationWaitTime": 5.0,
|
||||
"PresenceQueryTimeoutSeconds": 60.0,
|
||||
"bSetOfflineOnLogoutEnabled": true,
|
||||
"PresenceAutoUpdateInSeconds": 600.0,
|
||||
"bSetOfflineOnShutdownEnabled": true
|
||||
},
|
||||
"RateLimiter.CustomInvitesClient": {
|
||||
"MessageCount": 50,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.ModsClient": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
},
|
||||
"RateLimiter.ConnectClient.Operations": {
|
||||
"MessageCount": 300,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"LoginAccount",
|
||||
"CreateAccount",
|
||||
"LinkAccount",
|
||||
"UnlinkAccount",
|
||||
"CreateDeviceId",
|
||||
"DeleteDeviceId",
|
||||
"TransferDeviceIdAccount",
|
||||
"QueryExternalAccountMappings",
|
||||
"QueryProductUserIdMappings",
|
||||
"VerifyIdToken"
|
||||
]
|
||||
},
|
||||
"RateLimiter.AuthClient.SensitiveOperations": {
|
||||
"MessageCount": 12,
|
||||
"TimeIntervalInSeconds": 60.0,
|
||||
"Operation": [
|
||||
"GenerateUserAuth"
|
||||
]
|
||||
},
|
||||
"RateLimiter.ReportsClient": {
|
||||
"MessageCount": 100,
|
||||
"TimeIntervalInSeconds": 60.0
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"RTCService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/rtc"
|
||||
},
|
||||
"DataStorageService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/datastorage"
|
||||
},
|
||||
"AccountsEpicIdService": {
|
||||
"BaseUrl": "https://api.epicgames.dev"
|
||||
},
|
||||
"MetricsService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/datarouter"
|
||||
},
|
||||
"EcommerceService": {
|
||||
"BaseUrl": "https://ecommerceintegration-public-service-ecomprod02.ol.epicgames.com/ecommerceintegration"
|
||||
},
|
||||
"KWSService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/kws"
|
||||
},
|
||||
"AntiCheatService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/anticheat"
|
||||
},
|
||||
"LobbyService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/lobby"
|
||||
},
|
||||
"StatsAchievementsService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/stats"
|
||||
},
|
||||
"PriceEngineService": {
|
||||
"BaseUrl": "https://priceengine-public-service-ecomprod01.ol.epicgames.com/priceengine"
|
||||
},
|
||||
"AccountsService": {
|
||||
"BaseUrl": "https://egp-idsoc-proxy-prod.ol.epicgames.com/account",
|
||||
"RedirectUrl": "accounts.epicgames.com"
|
||||
},
|
||||
"EcommerceEpicIdService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/epic/ecom"
|
||||
},
|
||||
"PaymentEpicIdService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/epic/payment"
|
||||
},
|
||||
"SanctionsService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/sanctions"
|
||||
},
|
||||
"FriendService": {
|
||||
"BaseUrl": "https://egp-idsoc-proxy-prod.ol.epicgames.com/friends"
|
||||
},
|
||||
"ReceiptValidatorService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/receipt-validator"
|
||||
},
|
||||
"FriendEpicIdService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/epic/friends"
|
||||
},
|
||||
"CatalogService": {
|
||||
"BaseUrl": "https://catalog-public-service-prod06.ol.epicgames.com/catalog"
|
||||
},
|
||||
"EOSAuthService": {
|
||||
"BaseUrl": "https://api.epicgames.dev"
|
||||
},
|
||||
"SessionsService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/matchmaking"
|
||||
},
|
||||
"ModsService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/mods"
|
||||
},
|
||||
"ReportsService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/player-reports"
|
||||
},
|
||||
"ProgressionSnapshotService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/snapshots"
|
||||
},
|
||||
"CustomInvitesService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/notifications"
|
||||
},
|
||||
"PresenceService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/epic/presence"
|
||||
},
|
||||
"TitleStorageService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/titlestorage"
|
||||
},
|
||||
"StatsIngestService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/ingestion/stats"
|
||||
},
|
||||
"LeaderboardsService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/leaderboards"
|
||||
},
|
||||
"InventoryService": {
|
||||
"BaseUrl": "https://api.epicgames.dev/inventory"
|
||||
}
|
||||
},
|
||||
"watermark": -934553538
|
||||
}
|
||||
2
auth_backend/start.bat
Normal file
2
auth_backend/start.bat
Normal file
@@ -0,0 +1,2 @@
|
||||
node index.js
|
||||
pause
|
||||
27
auth_backend/structure/affiliate.js
Normal file
27
auth_backend/structure/affiliate.js
Normal file
@@ -0,0 +1,27 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
|
||||
express.get("/affiliate/api/public/affiliates/slug/:slug", async (req, res) => {
|
||||
const SupportedCodes = require("./../responses/SAC.json");
|
||||
var ValidCode = false;
|
||||
|
||||
SupportedCodes.forEach(code => {
|
||||
if (req.params.slug.toLowerCase() == code.toLowerCase()) {
|
||||
ValidCode = true;
|
||||
return res.json({
|
||||
"id": code,
|
||||
"slug": code,
|
||||
"displayName": code,
|
||||
"status": "ACTIVE",
|
||||
"verified": false
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
if (ValidCode == false) {
|
||||
res.status(404);
|
||||
res.json({});
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
162
auth_backend/structure/cloudstorage.js
Normal file
162
auth_backend/structure/cloudstorage.js
Normal file
@@ -0,0 +1,162 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const crypto = require("crypto");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const functions = require("./functions.js");
|
||||
|
||||
express.use((req, res, next) => {
|
||||
// Get raw body in encoding latin1 for ClientSettings
|
||||
if (req.originalUrl.toLowerCase().startsWith("/fortnite/api/cloudstorage/user/") && req.method == "PUT") {
|
||||
req.rawBody = "";
|
||||
req.setEncoding("latin1");
|
||||
|
||||
req.on("data", (chunk) => req.rawBody += chunk);
|
||||
req.on("end", () => next());
|
||||
}
|
||||
else return next();
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/cloudstorage/system", async (req, res) => {
|
||||
const memory = functions.GetVersionInfo(req);
|
||||
|
||||
if (memory.build >= 9.40 && memory.build <= 10.40) {
|
||||
return res.status(404).end();
|
||||
}
|
||||
|
||||
const dir = path.join(__dirname, "..", "CloudStorage")
|
||||
var CloudFiles = [];
|
||||
|
||||
fs.readdirSync(dir).forEach(name => {
|
||||
if (name.toLowerCase().endsWith(".ini")) {
|
||||
const ParsedFile = fs.readFileSync(path.join(dir, name), 'utf-8');
|
||||
const ParsedStats = fs.statSync(path.join(dir, name));
|
||||
|
||||
CloudFiles.push({
|
||||
"uniqueFilename": name,
|
||||
"filename": name,
|
||||
"hash": crypto.createHash('sha1').update(ParsedFile).digest('hex'),
|
||||
"hash256": crypto.createHash('sha256').update(ParsedFile).digest('hex'),
|
||||
"length": ParsedFile.length,
|
||||
"contentType": "application/octet-stream",
|
||||
"uploaded": ParsedStats.mtime,
|
||||
"storageType": "S3",
|
||||
"storageIds": {},
|
||||
"doNotCache": true
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
res.json(CloudFiles)
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/cloudstorage/system/:file", async (req, res) => {
|
||||
const file = path.join(__dirname, "..", "CloudStorage", req.params.file);
|
||||
if (fs.existsSync(file)) {
|
||||
const ParsedFile = fs.readFileSync(file);
|
||||
|
||||
return res.status(200).send(ParsedFile).end();
|
||||
} else {
|
||||
res.status(200);
|
||||
res.end();
|
||||
}
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/cloudstorage/user/*/:file", async (req, res) => {
|
||||
try {
|
||||
if (!fs.existsSync(path.join(process.env.LOCALAPPDATA, "LawinServer", "ClientSettings"))) {
|
||||
fs.mkdirSync(path.join(process.env.LOCALAPPDATA, "LawinServer", "ClientSettings"));
|
||||
}
|
||||
} catch (err) {}
|
||||
|
||||
res.set("Content-Type", "application/octet-stream")
|
||||
|
||||
if (req.params.file.toLowerCase() != "clientsettings.sav") {
|
||||
return res.status(404).json({
|
||||
"error": "file not found"
|
||||
});
|
||||
}
|
||||
|
||||
const memory = functions.GetVersionInfo(req);
|
||||
|
||||
var currentBuildID = memory.CL;
|
||||
|
||||
let file;
|
||||
if (process.env.LOCALAPPDATA) file = path.join(process.env.LOCALAPPDATA, "LawinServer", "ClientSettings", `ClientSettings-${currentBuildID}.Sav`);
|
||||
else file = path.join(__dirname, "..", "ClientSettings", `ClientSettings-${currentBuildID}.Sav`);
|
||||
|
||||
if (fs.existsSync(file)) {
|
||||
const ParsedFile = fs.readFileSync(file);
|
||||
|
||||
return res.status(200).send(ParsedFile).end();
|
||||
} else {
|
||||
res.status(200);
|
||||
res.end();
|
||||
}
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/cloudstorage/user/:accountId", async (req, res) => {
|
||||
try {
|
||||
if (!fs.existsSync(path.join(process.env.LOCALAPPDATA, "LawinServer", "ClientSettings"))) {
|
||||
fs.mkdirSync(path.join(process.env.LOCALAPPDATA, "LawinServer", "ClientSettings"));
|
||||
}
|
||||
} catch (err) {}
|
||||
|
||||
res.set("Content-Type", "application/json")
|
||||
|
||||
const memory = functions.GetVersionInfo(req);
|
||||
|
||||
var currentBuildID = memory.CL;
|
||||
|
||||
let file;
|
||||
if (process.env.LOCALAPPDATA) file = path.join(process.env.LOCALAPPDATA, "LawinServer", "ClientSettings", `ClientSettings-${currentBuildID}.Sav`);
|
||||
else file = path.join(__dirname, "..", "ClientSettings", `ClientSettings-${currentBuildID}.Sav`);
|
||||
|
||||
if (fs.existsSync(file)) {
|
||||
const ParsedFile = fs.readFileSync(file, 'latin1');
|
||||
const ParsedStats = fs.statSync(file);
|
||||
|
||||
return res.json([{
|
||||
"uniqueFilename": "ClientSettings.Sav",
|
||||
"filename": "ClientSettings.Sav",
|
||||
"hash": crypto.createHash('sha1').update(ParsedFile).digest('hex'),
|
||||
"hash256": crypto.createHash('sha256').update(ParsedFile).digest('hex'),
|
||||
"length": Buffer.byteLength(ParsedFile),
|
||||
"contentType": "application/octet-stream",
|
||||
"uploaded": ParsedStats.mtime,
|
||||
"storageType": "S3",
|
||||
"storageIds": {},
|
||||
"accountId": req.params.accountId,
|
||||
"doNotCache": true
|
||||
}]);
|
||||
} else {
|
||||
return res.json([]);
|
||||
}
|
||||
})
|
||||
|
||||
express.put("/fortnite/api/cloudstorage/user/*/:file", async (req, res) => {
|
||||
try {
|
||||
if (!fs.existsSync(path.join(process.env.LOCALAPPDATA, "LawinServer", "ClientSettings"))) {
|
||||
fs.mkdirSync(path.join(process.env.LOCALAPPDATA, "LawinServer", "ClientSettings"));
|
||||
}
|
||||
} catch (err) {}
|
||||
|
||||
if (req.params.file.toLowerCase() != "clientsettings.sav") {
|
||||
return res.status(404).json({
|
||||
"error": "file not found"
|
||||
});
|
||||
}
|
||||
|
||||
const memory = functions.GetVersionInfo(req);
|
||||
|
||||
var currentBuildID = memory.CL;
|
||||
|
||||
let file;
|
||||
if (process.env.LOCALAPPDATA) file = path.join(process.env.LOCALAPPDATA, "LawinServer", "ClientSettings", `ClientSettings-${currentBuildID}.Sav`);
|
||||
else file = path.join(__dirname, "..", "ClientSettings", `ClientSettings-${currentBuildID}.Sav`);
|
||||
|
||||
fs.writeFileSync(file, req.rawBody, 'latin1');
|
||||
res.status(204).end();
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
24
auth_backend/structure/contentpages.js
Normal file
24
auth_backend/structure/contentpages.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const functions = require("./functions.js");
|
||||
|
||||
express.get("/content/api/pages/*", async (req, res) => {
|
||||
const contentpages = functions.getContentPages(req);
|
||||
|
||||
res.json(contentpages)
|
||||
})
|
||||
|
||||
express.post("/api/v1/fortnite-br/surfaces/motd/target", async (req, res) => {
|
||||
const motdTarget = JSON.parse(JSON.stringify(require("./../responses/Athena/motdTarget.json")));
|
||||
|
||||
try {
|
||||
motdTarget.contentItems.forEach(item => {
|
||||
item.contentFields.title = item.contentFields.title[req.body.language];
|
||||
item.contentFields.body = item.contentFields.body[req.body.language];
|
||||
})
|
||||
} catch (err) {}
|
||||
|
||||
res.json(motdTarget)
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
45
auth_backend/structure/discovery.js
Normal file
45
auth_backend/structure/discovery.js
Normal file
@@ -0,0 +1,45 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const discovery = require("./../responses/Athena/Discovery/discovery_frontend.json");
|
||||
|
||||
express.post("*/discovery/surface/*", async (req, res) => {
|
||||
res.json(discovery);
|
||||
})
|
||||
|
||||
express.post("/links/api/fn/mnemonic", async (req, res) => {
|
||||
var MnemonicArray = [];
|
||||
|
||||
for (var i in discovery.Panels[0].Pages[0].results) {
|
||||
MnemonicArray.push(discovery.Panels[0].Pages[0].results[i].linkData)
|
||||
}
|
||||
|
||||
res.json(MnemonicArray);
|
||||
})
|
||||
|
||||
express.get("/links/api/fn/mnemonic/:playlist/related", async (req, res) => {
|
||||
var response = {
|
||||
"parentLinks": [],
|
||||
"links": {}
|
||||
};
|
||||
|
||||
if (req.params.playlist) {
|
||||
for (var i in discovery.Panels[0].Pages[0].results) {
|
||||
var linkData = discovery.Panels[0].Pages[0].results[i].linkData;
|
||||
if (linkData.mnemonic == req.params.playlist) {
|
||||
response.links[req.params.playlist] = linkData;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res.json(response);
|
||||
})
|
||||
|
||||
express.get("/links/api/fn/mnemonic/*", async (req, res) => {
|
||||
for (var i in discovery.Panels[0].Pages[0].results) {
|
||||
if (discovery.Panels[0].Pages[0].results[i].linkData.mnemonic == req.url.split("/").slice(-1)[0]) {
|
||||
res.json(discovery.Panels[0].Pages[0].results[i].linkData);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
122
auth_backend/structure/friends.js
Normal file
122
auth_backend/structure/friends.js
Normal file
@@ -0,0 +1,122 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const fs = require("fs");
|
||||
const friendslist = require("./../responses/friendslist.json");
|
||||
const friendslist2 = require("./../responses/friendslist2.json");
|
||||
const functions = require("./functions.js");
|
||||
|
||||
express.get("/friends/api/v1/*/settings", async (req, res) => {
|
||||
res.json({})
|
||||
})
|
||||
|
||||
express.get("/friends/api/v1/*/blocklist", async (req, res) => {
|
||||
res.json([])
|
||||
})
|
||||
|
||||
express.get("/friends/api/public/friends/:accountId", async (req, res) => {
|
||||
const memory = functions.GetVersionInfo(req);
|
||||
|
||||
if (!friendslist.find(i => i.accountId == req.params.accountId)) {
|
||||
var FriendObject = {
|
||||
"accountId": req.params.accountId,
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": new Date().toISOString(),
|
||||
"favorite": false
|
||||
};
|
||||
|
||||
friendslist.push(FriendObject)
|
||||
friendslist2.friends.push({
|
||||
"accountId": FriendObject.accountId,
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": FriendObject.favorite,
|
||||
"created": FriendObject.created
|
||||
})
|
||||
|
||||
functions.sendXmppMessageToAll({
|
||||
"payload": FriendObject,
|
||||
"type": "com.epicgames.friends.core.apiobjects.Friend",
|
||||
"timestamp": FriendObject.created
|
||||
})
|
||||
|
||||
functions.sendXmppMessageToAll({
|
||||
"type": "FRIENDSHIP_REQUEST",
|
||||
"timestamp": FriendObject.created,
|
||||
"from": FriendObject.accountId,
|
||||
"status": FriendObject.status
|
||||
})
|
||||
|
||||
fs.writeFileSync("./responses/friendslist.json", JSON.stringify(friendslist, null, 2));
|
||||
fs.writeFileSync("./responses/friendslist2.json", JSON.stringify(friendslist2, null, 2));
|
||||
}
|
||||
|
||||
if (memory.season >= 7) {
|
||||
var friends = JSON.parse(JSON.stringify(friendslist))
|
||||
friends.splice(friendslist.findIndex(i => i.accountId == req.params.accountId), 1)
|
||||
return res.json(friends);
|
||||
}
|
||||
|
||||
res.json(friendslist)
|
||||
})
|
||||
|
||||
express.get("/friends/api/v1/:accountId/summary", async (req, res) => {
|
||||
if (!friendslist2.friends.find(i => i.accountId == req.params.accountId)) {
|
||||
var FriendObject = {
|
||||
"accountId": req.params.accountId,
|
||||
"groups": [],
|
||||
"mutual": 0,
|
||||
"alias": "",
|
||||
"note": "",
|
||||
"favorite": false,
|
||||
"created": new Date().toISOString()
|
||||
};
|
||||
|
||||
friendslist2.friends.push(FriendObject)
|
||||
friendslist.push({
|
||||
"accountId": FriendObject.accountId,
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": FriendObject.created,
|
||||
"favorite": FriendObject.favorite
|
||||
})
|
||||
|
||||
functions.sendXmppMessageToAll({
|
||||
"payload": {
|
||||
"accountId": FriendObject.accountId,
|
||||
"status": "ACCEPTED",
|
||||
"direction": "OUTBOUND",
|
||||
"created": FriendObject.created,
|
||||
"favorite": FriendObject.favorite
|
||||
},
|
||||
"type": "com.epicgames.friends.core.apiobjects.Friend",
|
||||
"timestamp": FriendObject.created
|
||||
})
|
||||
|
||||
functions.sendXmppMessageToAll({
|
||||
"type": "FRIENDSHIP_REQUEST",
|
||||
"timestamp": FriendObject.created,
|
||||
"from": FriendObject.accountId,
|
||||
"status": "ACCEPTED"
|
||||
})
|
||||
|
||||
fs.writeFileSync("./responses/friendslist.json", JSON.stringify(friendslist, null, 2));
|
||||
fs.writeFileSync("./responses/friendslist2.json", JSON.stringify(friendslist2, null, 2));
|
||||
}
|
||||
|
||||
res.json(friendslist2)
|
||||
})
|
||||
|
||||
express.get("/friends/api/public/list/fortnite/*/recentPlayers", async (req, res) => {
|
||||
res.json([])
|
||||
})
|
||||
|
||||
express.get("/friends/api/public/blocklist/*", async (req, res) => {
|
||||
res.json({
|
||||
"blockedUsers": []
|
||||
})
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
374
auth_backend/structure/functions.js
Normal file
374
auth_backend/structure/functions.js
Normal file
@@ -0,0 +1,374 @@
|
||||
const XMLBuilder = require("xmlbuilder");
|
||||
const uuid = require("uuid");
|
||||
|
||||
async function sleep(ms) {
|
||||
await new Promise((resolve, reject) => {
|
||||
setTimeout(resolve, ms);
|
||||
})
|
||||
}
|
||||
|
||||
function GetVersionInfo(req) {
|
||||
var memory = {
|
||||
season: 0,
|
||||
build: 0.0,
|
||||
CL: "",
|
||||
lobby: ""
|
||||
}
|
||||
|
||||
if (req.headers["user-agent"])
|
||||
{
|
||||
var CL = "";
|
||||
|
||||
try {
|
||||
var BuildID = req.headers["user-agent"].split("-")[3].split(",")[0]
|
||||
if (!Number.isNaN(Number(BuildID))) {
|
||||
CL = BuildID;
|
||||
}
|
||||
|
||||
if (Number.isNaN(Number(BuildID))) {
|
||||
var BuildID = req.headers["user-agent"].split("-")[3].split(" ")[0]
|
||||
if (!Number.isNaN(Number(BuildID))) {
|
||||
CL = BuildID;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
try {
|
||||
var BuildID = req.headers["user-agent"].split("-")[1].split("+")[0]
|
||||
if (!Number.isNaN(Number(BuildID))) {
|
||||
CL = BuildID;
|
||||
}
|
||||
} catch (err) {}
|
||||
}
|
||||
|
||||
try {
|
||||
var Build = req.headers["user-agent"].split("Release-")[1].split("-")[0];
|
||||
|
||||
if (Build.split(".").length == 3) {
|
||||
Value = Build.split(".");
|
||||
Build = Value[0] + "." + Value[1] + Value[2];
|
||||
}
|
||||
|
||||
memory.season = Number(Build.split(".")[0]);
|
||||
memory.build = Number(Build);
|
||||
memory.CL = CL;
|
||||
memory.lobby = `LobbySeason${memory.season}`;
|
||||
|
||||
if (Number.isNaN(memory.season)) {
|
||||
throw new Error();
|
||||
}
|
||||
} catch (err) {
|
||||
memory.season = 2;
|
||||
memory.build = 2.0;
|
||||
memory.CL = CL;
|
||||
memory.lobby = "LobbyWinterDecor";
|
||||
}
|
||||
}
|
||||
|
||||
return memory;
|
||||
}
|
||||
|
||||
function getItemShop() {
|
||||
const catalog = JSON.parse(JSON.stringify(require("./../responses/catalog.json")));
|
||||
const CatalogConfig = require("./../Config/catalog_config.json");
|
||||
|
||||
try {
|
||||
for (var value in CatalogConfig) {
|
||||
if (Array.isArray(CatalogConfig[value].itemGrants)) {
|
||||
if (CatalogConfig[value].itemGrants.length != 0) {
|
||||
const CatalogEntry = {"devName":"","offerId":"","fulfillmentIds":[],"dailyLimit":-1,"weeklyLimit":-1,"monthlyLimit":-1,"categories":[],"prices":[{"currencyType":"MtxCurrency","currencySubType":"","regularPrice":0,"finalPrice":0,"saleExpiration":"9999-12-02T01:12:00Z","basePrice":0}],"meta":{"SectionId":"Featured","TileSize":"Small"},"matchFilter":"","filterWeight":0,"appStoreId":[],"requirements":[],"offerType":"StaticPrice","giftInfo":{"bIsEnabled":false,"forcedGiftBoxTemplateId":"","purchaseRequirements":[],"giftRecordIds":[]},"refundable":true,"metaInfo":[{"key":"SectionId","value":"Featured"},{"key":"TileSize","value":"Small"}],"displayAssetPath":"","itemGrants":[],"sortPriority":0,"catalogGroupPriority":0};
|
||||
|
||||
if (value.toLowerCase().startsWith("daily")) {
|
||||
catalog.storefronts.forEach((storefront, i) => {
|
||||
if (storefront.name == "BRDailyStorefront") {
|
||||
CatalogEntry.requirements = [];
|
||||
CatalogEntry.itemGrants = [];
|
||||
|
||||
for (var x in CatalogConfig[value].itemGrants) {
|
||||
if (typeof CatalogConfig[value].itemGrants[x] == "string") {
|
||||
if (CatalogConfig[value].itemGrants[x].length != 0) {
|
||||
CatalogEntry.devName = CatalogConfig[value].itemGrants[0]
|
||||
CatalogEntry.offerId = CatalogConfig[value].itemGrants[0]
|
||||
|
||||
CatalogEntry.requirements.push({ "requirementType": "DenyOnItemOwnership", "requiredId": CatalogConfig[value].itemGrants[x], "minQuantity": 1 })
|
||||
CatalogEntry.itemGrants.push({ "templateId": CatalogConfig[value].itemGrants[x], "quantity": 1 });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CatalogEntry.prices[0].basePrice = CatalogConfig[value].price
|
||||
CatalogEntry.prices[0].regularPrice = CatalogConfig[value].price
|
||||
CatalogEntry.prices[0].finalPrice = CatalogConfig[value].price
|
||||
|
||||
// Make featured items appear on the left side of the screen
|
||||
CatalogEntry.sortPriority = -1
|
||||
|
||||
if (CatalogEntry.itemGrants.length != 0) {
|
||||
catalog.storefronts[i].catalogEntries.push(CatalogEntry);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (value.toLowerCase().startsWith("featured")) {
|
||||
catalog.storefronts.forEach((storefront, i) => {
|
||||
if (storefront.name == "BRWeeklyStorefront") {
|
||||
CatalogEntry.requirements = [];
|
||||
CatalogEntry.itemGrants = [];
|
||||
|
||||
for (var x in CatalogConfig[value].itemGrants) {
|
||||
if (typeof CatalogConfig[value].itemGrants[x] == "string") {
|
||||
if (CatalogConfig[value].itemGrants[x].length != 0) {
|
||||
CatalogEntry.devName = CatalogConfig[value].itemGrants[0]
|
||||
CatalogEntry.offerId = CatalogConfig[value].itemGrants[0]
|
||||
|
||||
CatalogEntry.requirements.push({ "requirementType": "DenyOnItemOwnership", "requiredId": CatalogConfig[value].itemGrants[x], "minQuantity": 1 })
|
||||
CatalogEntry.itemGrants.push({ "templateId": CatalogConfig[value].itemGrants[x], "quantity": 1 });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CatalogEntry.prices[0].basePrice = CatalogConfig[value].price
|
||||
CatalogEntry.prices[0].regularPrice = CatalogConfig[value].price
|
||||
CatalogEntry.prices[0].finalPrice = CatalogConfig[value].price
|
||||
|
||||
CatalogEntry.meta.TileSize = "Normal"
|
||||
CatalogEntry.metaInfo[1].value = "Normal"
|
||||
|
||||
if (CatalogEntry.itemGrants.length != 0) {
|
||||
catalog.storefronts[i].catalogEntries.push(CatalogEntry);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (err) {}
|
||||
|
||||
return catalog;
|
||||
}
|
||||
|
||||
function getTheater(req) {
|
||||
const memory = GetVersionInfo(req);
|
||||
|
||||
var theater = JSON.stringify(require("./../responses/Campaign/worldstw.json"));
|
||||
var Season = "Season" + memory.season;
|
||||
|
||||
try {
|
||||
if (memory.build >= 15.30) {
|
||||
theater = theater.replace(/\/Game\//ig, "\/SaveTheWorld\/");
|
||||
theater = theater.replace(/\"DataTable\'\/SaveTheWorld\//ig, "\"DataTable\'\/Game\/");
|
||||
}
|
||||
|
||||
var date = new Date();
|
||||
var hour = date.getHours();
|
||||
|
||||
// Set the 24-hour StW mission refresh date for version season 9 and above
|
||||
if (memory.season >= 9) {
|
||||
date.setHours(23, 59, 59, 999);
|
||||
} else {
|
||||
// Set the 6-hour StW mission refresh date for versions below season 9
|
||||
if (hour < 6) {
|
||||
date.setHours(5, 59, 59, 999);
|
||||
} else if (hour < 12) {
|
||||
date.setHours(11, 59, 59, 999);
|
||||
} else if (hour < 18) {
|
||||
date.setHours(17, 59, 59, 999);
|
||||
} else {
|
||||
date.setHours(23, 59, 59, 999);
|
||||
}
|
||||
}
|
||||
|
||||
date = date.toISOString();
|
||||
|
||||
theater = theater.replace(/2017-07-25T23:59:59.999Z/ig, date);
|
||||
} catch (err) {}
|
||||
|
||||
theater = JSON.parse(theater)
|
||||
|
||||
if (theater.hasOwnProperty("Seasonal")) {
|
||||
if (theater.Seasonal.hasOwnProperty(Season)) {
|
||||
theater.theaters = theater.theaters.concat(theater.Seasonal[Season].theaters);
|
||||
theater.missions = theater.missions.concat(theater.Seasonal[Season].missions);
|
||||
theater.missionAlerts = theater.missionAlerts.concat(theater.Seasonal[Season].missionAlerts);
|
||||
}
|
||||
delete theater.Seasonal;
|
||||
}
|
||||
|
||||
return theater;
|
||||
}
|
||||
|
||||
function getContentPages(req) {
|
||||
const memory = GetVersionInfo(req);
|
||||
|
||||
const contentpages = JSON.parse(JSON.stringify(require("./../responses/contentpages.json")));
|
||||
|
||||
var Language = "en";
|
||||
|
||||
if (req.headers["accept-language"]) {
|
||||
if (req.headers["accept-language"].includes("-") && req.headers["accept-language"] != "es-419" && req.headers["accept-language"] != "pt-BR") {
|
||||
Language = req.headers["accept-language"].split("-")[0];
|
||||
} else {
|
||||
Language = req.headers["accept-language"];
|
||||
}
|
||||
}
|
||||
|
||||
const modes = ["saveTheWorldUnowned", "battleRoyale", "creative", "saveTheWorld"];
|
||||
const news = ["savetheworldnews", "battleroyalenews"]
|
||||
const motdnews = ["battleroyalenews", "battleroyalenewsv2"]
|
||||
|
||||
try {
|
||||
modes.forEach(mode => {
|
||||
contentpages.subgameselectdata[mode].message.title = contentpages.subgameselectdata[mode].message.title[Language]
|
||||
contentpages.subgameselectdata[mode].message.body = contentpages.subgameselectdata[mode].message.body[Language]
|
||||
})
|
||||
} catch (err) {}
|
||||
|
||||
try {
|
||||
if (memory.build < 5.30) {
|
||||
news.forEach(mode => {
|
||||
contentpages[mode].news.messages[0].image = "https://fortnite-public-service-prod11.ol.epicgames.com/images/discord-s.png";
|
||||
contentpages[mode].news.messages[1].image = "https://fortnite-public-service-prod11.ol.epicgames.com/images/lawin-s.png";
|
||||
})
|
||||
}
|
||||
} catch (err) {}
|
||||
|
||||
try {
|
||||
motdnews.forEach(news => {
|
||||
contentpages[news].news.motds.forEach(motd => {
|
||||
motd.title = motd.title[Language];
|
||||
motd.body = motd.body[Language];
|
||||
})
|
||||
})
|
||||
} catch (err) {}
|
||||
|
||||
try {
|
||||
const backgrounds = contentpages.dynamicbackgrounds.backgrounds.backgrounds;
|
||||
const season = `season${memory.season}${memory.season >= 21 ? "00" : ""}`;
|
||||
backgrounds[0].stage = season;
|
||||
backgrounds[1].stage = season;
|
||||
|
||||
if (memory.season == 10) {
|
||||
backgrounds[0].stage = "seasonx";
|
||||
backgrounds[1].stage = "seasonx";
|
||||
} else if (memory.build == 11.31 || memory.build == 11.40) {
|
||||
backgrounds[0].stage = "Winter19";
|
||||
backgrounds[1].stage = "Winter19";
|
||||
} else if (memory.build == 19.01) {
|
||||
backgrounds[0].stage = "winter2021";
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/t-bp19-lobby-xmas-2048x1024-f85d2684b4af.png";
|
||||
contentpages.subgameinfo.battleroyale.image = "https://cdn2.unrealengine.com/19br-wf-subgame-select-512x1024-16d8bb0f218f.jpg";
|
||||
contentpages.specialoffervideo.bSpecialOfferEnabled = "true";
|
||||
} else if (memory.season == 20) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/t-bp20-lobby-2048x1024-d89eb522746c.png";
|
||||
if (memory.build == 20.40) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/t-bp20-40-armadillo-glowup-lobby-2048x2048-2048x2048-3b83b887cc7f.jpg";
|
||||
}
|
||||
} else if (memory.season == 21) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/s21-lobby-background-2048x1024-2e7112b25dc3.jpg";
|
||||
if (memory.build == 21.10) {
|
||||
backgrounds[0].stage = "season2100";
|
||||
}
|
||||
if (memory.build == 21.30) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/nss-lobbybackground-2048x1024-f74a14565061.jpg";
|
||||
backgrounds[0].stage = "season2130";
|
||||
}
|
||||
} else if (memory.season == 22) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/t-bp22-lobby-square-2048x2048-2048x2048-e4e90c6e8018.jpg";
|
||||
} else if (memory.season == 23) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/t-bp23-lobby-2048x1024-2048x1024-26f2c1b27f63.png";
|
||||
if (memory.build == 23.10) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/t-bp23-winterfest-lobby-square-2048x2048-2048x2048-277a476e5ca6.png";
|
||||
contentpages.specialoffervideo.bSpecialOfferEnabled = "true";
|
||||
}
|
||||
} else if (memory.season == 24) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/t-ch4s2-bp-lobby-4096x2048-edde08d15f7e.jpg"
|
||||
}
|
||||
|
||||
else if (memory.season == 25) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/s25-lobby-4k-4096x2048-4a832928e11f.jpg";
|
||||
backgrounds[1].backgroundimage = "https://cdn2.unrealengine.com/fn-shop-ch4s3-04-1920x1080-785ce1d90213.png";
|
||||
if (memory.build == 25.11) {
|
||||
backgrounds[0].backgroundimage = "https://cdn2.unrealengine.com/t-s25-14dos-lobby-4096x2048-2be24969eee3.jpg";
|
||||
}
|
||||
}
|
||||
|
||||
} catch (err) {}
|
||||
|
||||
return contentpages;
|
||||
}
|
||||
|
||||
function MakeSurvivorAttributes(templateId) {
|
||||
const SurvivorData = require("./../responses/Campaign/survivorData.json");
|
||||
var SurvivorAttributes = {
|
||||
"level": 1,
|
||||
"item_seen": false,
|
||||
"squad_slot_idx": -1,
|
||||
"building_slot_used": -1
|
||||
};
|
||||
|
||||
if (SurvivorData.fixedAttributes.hasOwnProperty(templateId)) {
|
||||
SurvivorAttributes = {...SurvivorAttributes, ...SurvivorData.fixedAttributes[templateId]};
|
||||
}
|
||||
|
||||
if (!SurvivorAttributes.hasOwnProperty("gender")) {
|
||||
SurvivorAttributes.gender = (Math.floor(Math.random() * (1 - 3) + 3)).toString(); // Set a random survivor gender ("1" = male, "2" = female)
|
||||
}
|
||||
|
||||
if (!SurvivorAttributes.hasOwnProperty("managerSynergy")) {
|
||||
var randomNumber = Math.floor(Math.random() * SurvivorData.bonuses.length);
|
||||
SurvivorAttributes.set_bonus = SurvivorData.bonuses[randomNumber];
|
||||
}
|
||||
|
||||
if (!SurvivorAttributes.hasOwnProperty("personality")) {
|
||||
var randomNumber = Math.floor(Math.random() * SurvivorData.personalities.length);
|
||||
SurvivorAttributes.personality = SurvivorData.personalities[randomNumber];
|
||||
}
|
||||
|
||||
if (!SurvivorAttributes.hasOwnProperty("portrait")) {
|
||||
portraitFactor = SurvivorAttributes.personality;
|
||||
if (SurvivorAttributes.hasOwnProperty("managerSynergy")) {
|
||||
portraitFactor = SurvivorAttributes.managerSynergy;
|
||||
}
|
||||
|
||||
var gender = SurvivorAttributes.gender
|
||||
var randomNumber = Math.floor(Math.random() * SurvivorData.portraits[portraitFactor][gender].length);
|
||||
SurvivorAttributes.portrait = SurvivorData.portraits[portraitFactor][gender][randomNumber];
|
||||
}
|
||||
|
||||
return SurvivorAttributes;
|
||||
}
|
||||
|
||||
function MakeID() {
|
||||
return uuid.v4();
|
||||
}
|
||||
|
||||
function sendXmppMessageToAll(body) {
|
||||
if (global.Clients) {
|
||||
if (typeof body == "object") body = JSON.stringify(body);
|
||||
|
||||
global.Clients.forEach(ClientData => {
|
||||
ClientData.client.send(XMLBuilder.create("message")
|
||||
.attribute("from", "xmpp-admin@prod.ol.epicgames.com")
|
||||
.attribute("xmlns", "jabber:client")
|
||||
.attribute("to", ClientData.jid)
|
||||
.element("body", `${body}`).up().toString());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function DecodeBase64(str) {
|
||||
return Buffer.from(str, 'base64').toString()
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
sleep,
|
||||
GetVersionInfo,
|
||||
getItemShop,
|
||||
getTheater,
|
||||
getContentPages,
|
||||
MakeSurvivorAttributes,
|
||||
MakeID,
|
||||
sendXmppMessageToAll,
|
||||
DecodeBase64
|
||||
}
|
||||
47
auth_backend/structure/lightswitch.js
Normal file
47
auth_backend/structure/lightswitch.js
Normal file
@@ -0,0 +1,47 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
|
||||
express.get("/lightswitch/api/service/Fortnite/status", async (req, res) => {
|
||||
res.json({
|
||||
"serviceInstanceId": "fortnite",
|
||||
"status": "UP",
|
||||
"message": "Fortnite is online",
|
||||
"maintenanceUri": null,
|
||||
"overrideCatalogIds": [
|
||||
"a7f138b2e51945ffbfdacc1af0541053"
|
||||
],
|
||||
"allowedActions": [],
|
||||
"banned": false,
|
||||
"launcherInfoDTO": {
|
||||
"appName": "Fortnite",
|
||||
"catalogItemId": "4fe75bbc5a674f4f9b356b5c90567da5",
|
||||
"namespace": "fn"
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
express.get("/lightswitch/api/service/bulk/status", async (req, res) => {
|
||||
res.json(
|
||||
[{
|
||||
"serviceInstanceId": "fortnite",
|
||||
"status": "UP",
|
||||
"message": "fortnite is up.",
|
||||
"maintenanceUri": null,
|
||||
"overrideCatalogIds": [
|
||||
"a7f138b2e51945ffbfdacc1af0541053"
|
||||
],
|
||||
"allowedActions": [
|
||||
"PLAY",
|
||||
"DOWNLOAD"
|
||||
],
|
||||
"banned": false,
|
||||
"launcherInfoDTO": {
|
||||
"appName": "Fortnite",
|
||||
"catalogItemId": "4fe75bbc5a674f4f9b356b5c90567da5",
|
||||
"namespace": "fn"
|
||||
}
|
||||
}]
|
||||
)
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
494
auth_backend/structure/main.js
Normal file
494
auth_backend/structure/main.js
Normal file
@@ -0,0 +1,494 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const functions = require("./functions.js");
|
||||
|
||||
express.get("/clearitemsforshop", async (req, res) => {
|
||||
res.set("Content-Type", "text/plain");
|
||||
|
||||
const athena = require("./../profiles/athena.json");
|
||||
const CatalogConfig = require("./../Config/catalog_config.json");
|
||||
var StatChanged = false;
|
||||
|
||||
for (var value in CatalogConfig) {
|
||||
for (var i in CatalogConfig[value].itemGrants) {
|
||||
if (Array.isArray(CatalogConfig[value].itemGrants)) {
|
||||
for (var key in athena.items) {
|
||||
if (typeof CatalogConfig[value].itemGrants[i] == "string") {
|
||||
if (CatalogConfig[value].itemGrants[i].length != 0) {
|
||||
if (CatalogConfig[value].itemGrants[i].toLowerCase() == athena.items[key].templateId.toLowerCase()) {
|
||||
delete athena.items[key]
|
||||
|
||||
StatChanged = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (StatChanged == true) {
|
||||
athena.rvn += 1;
|
||||
athena.commandRevision += 1;
|
||||
|
||||
fs.writeFileSync("./profiles/athena.json", JSON.stringify(athena, null, 2));
|
||||
|
||||
res.send('Success');
|
||||
} else {
|
||||
res.send('Failed, there are no items to remove')
|
||||
}
|
||||
})
|
||||
|
||||
express.get("/eulatracking/api/shared/agreements/fn*", async (req, res) => {
|
||||
res.json({})
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/game/v2/friendcodes/*/epic", async (req, res) => {
|
||||
res.json([{
|
||||
"codeId": "L4WINS3RV3R",
|
||||
"codeType": "CodeToken:FounderFriendInvite",
|
||||
"dateCreated": "2024-04-02T21:37:00.420Z"
|
||||
},
|
||||
{
|
||||
"codeId": "playeereq",
|
||||
"codeType": "CodeToken:FounderFriendInvite_XBOX",
|
||||
"dateCreated": "2024-04-02T21:37:00.420Z"
|
||||
},
|
||||
{
|
||||
"codeId": "lawinscodelol",
|
||||
"codeType": "CodeToken:MobileInvite",
|
||||
"dateCreated": "2024-04-02T21:37:00.420Z"
|
||||
}])
|
||||
})
|
||||
|
||||
express.get("/launcher/api/public/distributionpoints/", async (req, res) => {
|
||||
res.json({
|
||||
"distributions": [
|
||||
"https://epicgames-download1.akamaized.net/",
|
||||
"https://download.epicgames.com/",
|
||||
"https://download2.epicgames.com/",
|
||||
"https://download3.epicgames.com/",
|
||||
"https://download4.epicgames.com/",
|
||||
"https://lawinserver.ol.epicgames.com/"
|
||||
]
|
||||
});
|
||||
})
|
||||
|
||||
express.get("/launcher/api/public/assets/*", async (req, res) => {
|
||||
res.json({
|
||||
"appName": "FortniteContentBuilds",
|
||||
"labelName": "LawinServer",
|
||||
"buildVersion": "++Fortnite+Release-20.00-CL-19458861-Windows",
|
||||
"catalogItemId": "5cb97847cee34581afdbc445400e2f77",
|
||||
"expires": "9999-12-31T23:59:59.999Z",
|
||||
"items": {
|
||||
"MANIFEST": {
|
||||
"signature": "LawinServer",
|
||||
"distribution": "https://lawinserver.ol.epicgames.com/",
|
||||
"path": "Builds/Fortnite/Content/CloudDir/LawinServer.manifest",
|
||||
"hash": "55bb954f5596cadbe03693e1c06ca73368d427f3",
|
||||
"additionalDistributions": []
|
||||
},
|
||||
"CHUNKS": {
|
||||
"signature": "LawinServer",
|
||||
"distribution": "https://lawinserver.ol.epicgames.com/",
|
||||
"path": "Builds/Fortnite/Content/CloudDir/LawinServer.manifest",
|
||||
"additionalDistributions": []
|
||||
}
|
||||
},
|
||||
"assetId": "FortniteContentBuilds"
|
||||
});
|
||||
})
|
||||
|
||||
express.get("/Builds/Fortnite/Content/CloudDir/*.manifest", async (req, res) => {
|
||||
res.set("Content-Type", "application/octet-stream")
|
||||
|
||||
const manifest = fs.readFileSync(path.join(__dirname, "..", "responses", "CloudDir", "LawinServer.manifest"));
|
||||
|
||||
res.status(200).send(manifest).end();
|
||||
})
|
||||
|
||||
express.get("/Builds/Fortnite/Content/CloudDir/*.chunk", async (req, res) => {
|
||||
res.set("Content-Type", "application/octet-stream")
|
||||
|
||||
const chunk = fs.readFileSync(path.join(__dirname, "..", "responses", "CloudDir", "LawinServer.chunk"));
|
||||
|
||||
res.status(200).send(chunk).end();
|
||||
})
|
||||
|
||||
express.get("/Builds/Fortnite/Content/CloudDir/*.ini", async (req, res) => {
|
||||
const ini = fs.readFileSync(path.join(__dirname, "..", "responses", "CloudDir", "Full.ini"));
|
||||
|
||||
res.status(200).send(ini).end();
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/game/v2/grant_access/*", async (req, res) => {
|
||||
res.json({});
|
||||
res.status(204);
|
||||
})
|
||||
|
||||
express.post("/api/v1/user/setting", async (req, res) => {
|
||||
res.json([]);
|
||||
})
|
||||
|
||||
express.get("/waitingroom/api/waitingroom", async (req, res) => {
|
||||
res.status(204);
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.get("/socialban/api/public/v1/*", async (req, res) => {
|
||||
res.json({
|
||||
"bans": [],
|
||||
"warnings": []
|
||||
});
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/game/v2/events/tournamentandhistory/*/EU/WindowsClient", async (req, res) => {
|
||||
res.json({});
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/statsv2/account/:accountId", async (req, res) => {
|
||||
res.json({
|
||||
"startTime": 0,
|
||||
"endTime": 0,
|
||||
"stats": {},
|
||||
"accountId": req.params.accountId
|
||||
});
|
||||
})
|
||||
|
||||
express.get("/statsproxy/api/statsv2/account/:accountId", async (req, res) => {
|
||||
res.json({
|
||||
"startTime": 0,
|
||||
"endTime": 0,
|
||||
"stats": {},
|
||||
"accountId": req.params.accountId
|
||||
});
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/stats/accountId/:accountId/bulk/window/alltime", async (req, res) => {
|
||||
res.json({
|
||||
"startTime": 0,
|
||||
"endTime": 0,
|
||||
"stats": {},
|
||||
"accountId": req.params.accountId
|
||||
})
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/feedback/*", async (req, res) => {
|
||||
res.status(200);
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/statsv2/query", async (req, res) => {
|
||||
res.json([]);
|
||||
})
|
||||
|
||||
express.post("/statsproxy/api/statsv2/query", async (req, res) => {
|
||||
res.json([]);
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/game/v2/events/v2/setSubgroup/*", async (req, res) => {
|
||||
res.status(204);
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/game/v2/enabled_features", async (req, res) => {
|
||||
res.json([])
|
||||
})
|
||||
|
||||
express.get("/api/v1/events/Fortnite/download/*", async (req, res) => {
|
||||
res.json({})
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/game/v2/twitch/*", async (req, res) => {
|
||||
res.status(200);
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/game/v2/world/info", async (req, res) => {
|
||||
const worldstw = functions.getTheater(req);
|
||||
|
||||
res.json(worldstw)
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/game/v2/chat/*/*/*/pc", async (req, res) => {
|
||||
res.json({ "GlobalChatRooms": [{"roomName":"lawinserverglobal"}] })
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/game/v2/chat/*/recommendGeneralChatRooms/pc", async (req, res) => {
|
||||
res.json({})
|
||||
})
|
||||
|
||||
express.get("/presence/api/v1/_/*/last-online", async (req, res) => {
|
||||
res.json({})
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/receipts/v1/account/*/receipts", async (req, res) => {
|
||||
res.json([])
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/game/v2/leaderboards/cohort/:accountId", async (req, res) => {
|
||||
res.json({
|
||||
"accountId": req.params.accountId,
|
||||
"cohortAccounts": [
|
||||
req.params.accountId,
|
||||
"Lawin",
|
||||
"TI93",
|
||||
"PRO100KatYT",
|
||||
"Playeereq",
|
||||
"Matteoki"
|
||||
],
|
||||
"expiresAt": "9999-12-31T00:00:00.000Z",
|
||||
"playlist": req.query.playlist
|
||||
})
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/leaderboards/type/group/stat/:statName/window/:statWindow", async (req, res) => {
|
||||
var entries = [];
|
||||
|
||||
for (var i = 0; i < req.body.length; i++) {
|
||||
entries.push({
|
||||
"accountId": req.body[i],
|
||||
"value": Math.floor(Math.random() * 68) + 1
|
||||
})
|
||||
}
|
||||
|
||||
res.json({
|
||||
"entries": entries,
|
||||
"statName": req.params.statName,
|
||||
"statWindow": req.params.statWindow
|
||||
})
|
||||
res.end();
|
||||
});
|
||||
|
||||
express.post("/fortnite/api/leaderboards/type/global/stat/:statName/window/:statWindow", async (req, res) => {
|
||||
var HeroNames = [
|
||||
"Hawk",
|
||||
"Banshee",
|
||||
"Wildcat",
|
||||
"Jonsey",
|
||||
"Spitfire",
|
||||
"Ramirez",
|
||||
"Headhunter",
|
||||
"Renegade",
|
||||
"Harper",
|
||||
"Knox",
|
||||
"Hype",
|
||||
"Bull",
|
||||
"Hazard",
|
||||
"Penny",
|
||||
"Izza",
|
||||
"Kyle",
|
||||
"Luna",
|
||||
"Crash",
|
||||
"Edge",
|
||||
"Scorpion",
|
||||
"Scorch",
|
||||
"Ken",
|
||||
"Mari",
|
||||
"Sarah",
|
||||
"Grizzly",
|
||||
"Eagle Eye",
|
||||
"Southie",
|
||||
"A.C.",
|
||||
"Buzz",
|
||||
"Quinn",
|
||||
"Jess",
|
||||
"Deadeye"
|
||||
]
|
||||
|
||||
var entries = [];
|
||||
|
||||
for (var i = 0; i < HeroNames.length; i++) {
|
||||
entries.push({
|
||||
"accountId": HeroNames[i],
|
||||
"value": Math.floor(Math.random() * 68) + 1
|
||||
})
|
||||
}
|
||||
|
||||
res.json({
|
||||
"entries": entries,
|
||||
"statName": req.params.statName,
|
||||
"statWindow": req.params.statWindow
|
||||
})
|
||||
res.end();
|
||||
});
|
||||
|
||||
express.get("/fortnite/api/game/v2/homebase/allowed-name-chars", async (req, res) => {
|
||||
res.json({
|
||||
"ranges": [
|
||||
48,
|
||||
57,
|
||||
65,
|
||||
90,
|
||||
97,
|
||||
122,
|
||||
192,
|
||||
255,
|
||||
260,
|
||||
265,
|
||||
280,
|
||||
281,
|
||||
286,
|
||||
287,
|
||||
304,
|
||||
305,
|
||||
321,
|
||||
324,
|
||||
346,
|
||||
347,
|
||||
350,
|
||||
351,
|
||||
377,
|
||||
380,
|
||||
1024,
|
||||
1279,
|
||||
1536,
|
||||
1791,
|
||||
4352,
|
||||
4607,
|
||||
11904,
|
||||
12031,
|
||||
12288,
|
||||
12351,
|
||||
12352,
|
||||
12543,
|
||||
12592,
|
||||
12687,
|
||||
12800,
|
||||
13055,
|
||||
13056,
|
||||
13311,
|
||||
13312,
|
||||
19903,
|
||||
19968,
|
||||
40959,
|
||||
43360,
|
||||
43391,
|
||||
44032,
|
||||
55215,
|
||||
55216,
|
||||
55295,
|
||||
63744,
|
||||
64255,
|
||||
65072,
|
||||
65103,
|
||||
65281,
|
||||
65470,
|
||||
131072,
|
||||
173791,
|
||||
194560,
|
||||
195103
|
||||
],
|
||||
"singlePoints": [
|
||||
32,
|
||||
39,
|
||||
45,
|
||||
46,
|
||||
95,
|
||||
126
|
||||
],
|
||||
"excludedPoints": [
|
||||
208,
|
||||
215,
|
||||
222,
|
||||
247
|
||||
]
|
||||
})
|
||||
})
|
||||
|
||||
express.post("/datarouter/api/v1/public/data", async (req, res) => {
|
||||
res.status(204);
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.post("/api/v1/assets/Fortnite/*/*", async (req, res) => {
|
||||
if (req.body.hasOwnProperty("FortCreativeDiscoverySurface") && req.body.FortCreativeDiscoverySurface == 0) {
|
||||
const discovery_api_assets = require("./../responses/Athena/Discovery/discovery_api_assets.json");
|
||||
res.json(discovery_api_assets)
|
||||
}
|
||||
else {
|
||||
res.json({
|
||||
"FortCreativeDiscoverySurface": {
|
||||
"meta": {
|
||||
"promotion": req.body.FortCreativeDiscoverySurface || 0
|
||||
},
|
||||
"assets": {}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
express.get("/region", async (req, res) => {
|
||||
res.json({
|
||||
"continent": {
|
||||
"code": "EU",
|
||||
"geoname_id": 6255148,
|
||||
"names": {
|
||||
"de": "Europa",
|
||||
"en": "Europe",
|
||||
"es": "Europa",
|
||||
"fr": "Europe",
|
||||
"ja": "ヨーロッパ",
|
||||
"pt-BR": "Europa",
|
||||
"ru": "Европа",
|
||||
"zh-CN": "欧洲"
|
||||
}
|
||||
},
|
||||
"country": {
|
||||
"geoname_id": 2635167,
|
||||
"is_in_european_union": false,
|
||||
"iso_code": "GB",
|
||||
"names": {
|
||||
"de": "UK",
|
||||
"en": "United Kingdom",
|
||||
"es": "RU",
|
||||
"fr": "Royaume Uni",
|
||||
"ja": "英国",
|
||||
"pt-BR": "Reino Unido",
|
||||
"ru": "Британия",
|
||||
"zh-CN": "英国"
|
||||
}
|
||||
},
|
||||
"subdivisions": [
|
||||
{
|
||||
"geoname_id": 6269131,
|
||||
"iso_code": "ENG",
|
||||
"names": {
|
||||
"de": "England",
|
||||
"en": "England",
|
||||
"es": "Inglaterra",
|
||||
"fr": "Angleterre",
|
||||
"ja": "イングランド",
|
||||
"pt-BR": "Inglaterra",
|
||||
"ru": "Англия",
|
||||
"zh-CN": "英格兰"
|
||||
}
|
||||
},
|
||||
{
|
||||
"geoname_id": 3333157,
|
||||
"iso_code": "KEC",
|
||||
"names": {
|
||||
"en": "Royal Kensington and Chelsea"
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
})
|
||||
|
||||
// Parental Controls
|
||||
express.all("/v1/epic-settings/public/users/*/values", async (req, res) => {
|
||||
res.json({})
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/game/v2/br-inventory/account/*", async (req, res) => {
|
||||
res.json({
|
||||
"stash": {
|
||||
"globalcash": 5000
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
77
auth_backend/structure/matchmaker.js
Normal file
77
auth_backend/structure/matchmaker.js
Normal file
@@ -0,0 +1,77 @@
|
||||
const functions = require("./functions.js");
|
||||
|
||||
module.exports = async (ws) => {
|
||||
const ticketId = functions.MakeID().replace(/-/gi, "");
|
||||
const matchId = functions.MakeID().replace(/-/gi, "");
|
||||
const sessionId = functions.MakeID().replace(/-/gi, "");
|
||||
|
||||
Connecting();
|
||||
Waiting();
|
||||
Queued();
|
||||
SessionAssignment();
|
||||
Join();
|
||||
|
||||
function Connecting() {
|
||||
ws.send(
|
||||
JSON.stringify({
|
||||
payload: {
|
||||
state: "Connecting",
|
||||
},
|
||||
name: "StatusUpdate",
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function Waiting() {
|
||||
ws.send(
|
||||
JSON.stringify({
|
||||
payload: {
|
||||
totalPlayers: 1,
|
||||
connectedPlayers: 1,
|
||||
state: "Waiting",
|
||||
},
|
||||
name: "StatusUpdate",
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function Queued() {
|
||||
ws.send(
|
||||
JSON.stringify({
|
||||
payload: {
|
||||
ticketId: ticketId,
|
||||
queuedPlayers: 0,
|
||||
estimatedWaitSec: 0,
|
||||
status: {},
|
||||
state: "Queued",
|
||||
},
|
||||
name: "StatusUpdate",
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function SessionAssignment() {
|
||||
ws.send(
|
||||
JSON.stringify({
|
||||
payload: {
|
||||
matchId: matchId,
|
||||
state: "SessionAssignment",
|
||||
},
|
||||
name: "StatusUpdate",
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
function Join() {
|
||||
ws.send(
|
||||
JSON.stringify({
|
||||
payload: {
|
||||
matchId: matchId,
|
||||
sessionId: sessionId,
|
||||
joinDelaySec: 1,
|
||||
},
|
||||
name: "Play",
|
||||
})
|
||||
);
|
||||
}
|
||||
};
|
||||
87
auth_backend/structure/matchmaking.js
Normal file
87
auth_backend/structure/matchmaking.js
Normal file
@@ -0,0 +1,87 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const iniparser = require("ini");
|
||||
const config = iniparser.parse(fs.readFileSync(path.join(__dirname, "..", "Config", "config.ini")).toString());
|
||||
const functions = require("./functions.js");
|
||||
|
||||
express.get("/fortnite/api/matchmaking/session/findPlayer/*", async (req, res) => {
|
||||
res.status(200);
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/game/v2/matchmakingservice/ticket/player/*", async (req, res) => {
|
||||
res.cookie("currentbuildUniqueId", req.query.bucketId.split(":")[0]);
|
||||
|
||||
res.json({
|
||||
"serviceUrl": "ws://127.0.0.1:80",
|
||||
"ticketType": "mms-player",
|
||||
"payload": "69=",
|
||||
"signature": "420="
|
||||
})
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/game/v2/matchmaking/account/:accountId/session/:sessionId", async (req, res) => {
|
||||
res.json({
|
||||
"accountId": req.params.accountId,
|
||||
"sessionId": req.params.sessionId,
|
||||
"key": "AOJEv8uTFmUh7XM2328kq9rlAzeQ5xzWzPIiyKn2s7s="
|
||||
})
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/matchmaking/session/:session_id", async (req, res) => {
|
||||
res.json({
|
||||
"id": req.params.session_id,
|
||||
"ownerId": functions.MakeID().replace(/-/ig, "").toUpperCase(),
|
||||
"ownerName": "[DS]fortnite-liveeugcec1c2e30ubrcore0a-z8hj-1968",
|
||||
"serverName": "[DS]fortnite-liveeugcec1c2e30ubrcore0a-z8hj-1968",
|
||||
"serverAddress": config.GameServer.ip,
|
||||
"serverPort": Number(config.GameServer.port),
|
||||
"maxPublicPlayers": 220,
|
||||
"openPublicPlayers": 175,
|
||||
"maxPrivatePlayers": 0,
|
||||
"openPrivatePlayers": 0,
|
||||
"attributes": {
|
||||
"REGION_s": "EU",
|
||||
"GAMEMODE_s": "FORTATHENA",
|
||||
"ALLOWBROADCASTING_b": true,
|
||||
"SUBREGION_s": "GB",
|
||||
"DCID_s": "FORTNITE-LIVEEUGCEC1C2E30UBRCORE0A-14840880",
|
||||
"tenant_s": "Fortnite",
|
||||
"MATCHMAKINGPOOL_s": "Any",
|
||||
"STORMSHIELDDEFENSETYPE_i": 0,
|
||||
"HOTFIXVERSION_i": 0,
|
||||
"PLAYLISTNAME_s": "Playlist_DefaultSolo",
|
||||
"SESSIONKEY_s": functions.MakeID().replace(/-/ig, "").toUpperCase(),
|
||||
"TENANT_s": "Fortnite",
|
||||
"BEACONPORT_i": 15009
|
||||
},
|
||||
"publicPlayers": [],
|
||||
"privatePlayers": [],
|
||||
"totalPlayers": 45,
|
||||
"allowJoinInProgress": false,
|
||||
"shouldAdvertise": false,
|
||||
"isDedicated": false,
|
||||
"usesStats": false,
|
||||
"allowInvites": false,
|
||||
"usesPresence": false,
|
||||
"allowJoinViaPresence": true,
|
||||
"allowJoinViaPresenceFriendsOnly": false,
|
||||
"buildUniqueId": req.cookies.currentbuildUniqueId || "0", // buildUniqueId is different for every build, this uses the netver of the version you're currently using
|
||||
"lastUpdated": new Date().toISOString(),
|
||||
"started": false
|
||||
})
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/matchmaking/session/*/join", async (req, res) => {
|
||||
res.status(204);
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/matchmaking/session/matchMakingRequest", async (req, res) => {
|
||||
res.json([])
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
7993
auth_backend/structure/mcp.js
Normal file
7993
auth_backend/structure/mcp.js
Normal file
File diff suppressed because it is too large
Load Diff
60
auth_backend/structure/party.js
Normal file
60
auth_backend/structure/party.js
Normal file
@@ -0,0 +1,60 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const functions = require("./functions.js");
|
||||
|
||||
express.get("/party/api/v1/Fortnite/user/*", async (req, res) => {
|
||||
res.json({
|
||||
"current": [],
|
||||
"pending": [],
|
||||
"invites": [],
|
||||
"pings": []
|
||||
});
|
||||
})
|
||||
|
||||
express.post("/party/api/v1/Fortnite/parties", async (req, res) => {
|
||||
if (!req.body.join_info) return res.json({});
|
||||
if (!req.body.join_info.connection) return res.json({});
|
||||
|
||||
res.json({
|
||||
"id": functions.MakeID().replace(/-/ig, ""),
|
||||
"created_at": new Date().toISOString(),
|
||||
"updated_at": new Date().toISOString(),
|
||||
"config": {
|
||||
"type": "DEFAULT",
|
||||
...req.body.config,
|
||||
"discoverability": "ALL",
|
||||
"sub_type": "default",
|
||||
"invite_ttl": 14400,
|
||||
"intention_ttl": 60
|
||||
},
|
||||
"members": [{
|
||||
"account_id": (req.body.join_info.connection.id || "").split("@prod")[0],
|
||||
"meta": req.body.join_info.meta || {},
|
||||
"connections": [
|
||||
{
|
||||
"id": req.body.join_info.connection.id || "",
|
||||
"connected_at": new Date().toISOString(),
|
||||
"updated_at": new Date().toISOString(),
|
||||
"yield_leadership": false,
|
||||
"meta": req.body.join_info.connection.meta || {}
|
||||
}
|
||||
],
|
||||
"revision": 0,
|
||||
"updated_at": new Date().toISOString(),
|
||||
"joined_at": new Date().toISOString(),
|
||||
"role": "CAPTAIN"
|
||||
}],
|
||||
"applicants": [],
|
||||
"meta": req.body.meta || {},
|
||||
"invites": [],
|
||||
"revision": 0,
|
||||
"intentions": []
|
||||
})
|
||||
})
|
||||
|
||||
express.all("/party/api/v1/Fortnite/parties/*", async (req, res) => {
|
||||
res.status(204)
|
||||
res.end()
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
22
auth_backend/structure/privacy.js
Normal file
22
auth_backend/structure/privacy.js
Normal file
@@ -0,0 +1,22 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const fs = require("fs");
|
||||
const privacy = require("./../responses/privacy.json");
|
||||
|
||||
express.get("/fortnite/api/game/v2/privacy/account/:accountId", async (req, res) => {
|
||||
privacy.accountId = req.params.accountId;
|
||||
|
||||
res.json(privacy);
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/game/v2/privacy/account/:accountId", async (req, res) => {
|
||||
privacy.accountId = req.params.accountId;
|
||||
privacy.optOutOfPublicLeaderboards = req.body.optOutOfPublicLeaderboards;
|
||||
|
||||
fs.writeFileSync("./responses/privacy.json", JSON.stringify(privacy, null, 2));
|
||||
|
||||
res.json(privacy);
|
||||
res.end();
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
23
auth_backend/structure/storefront.js
Normal file
23
auth_backend/structure/storefront.js
Normal file
@@ -0,0 +1,23 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const functions = require("./functions.js");
|
||||
const catalog = functions.getItemShop();
|
||||
const keychain = require("./../responses/keychain.json");
|
||||
|
||||
express.get("/fortnite/api/storefront/v2/catalog", async (req, res) => {
|
||||
if (req.headers["user-agent"].includes("2870186")) {
|
||||
return res.status(404).end();
|
||||
}
|
||||
|
||||
res.json(catalog);
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/storefront/v2/keychain", async (req, res) => {
|
||||
res.json(keychain)
|
||||
})
|
||||
|
||||
express.get("/catalog/api/shared/bulk/offers", async (req, res) => {
|
||||
res.json({});
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
1427
auth_backend/structure/timeline.js
Normal file
1427
auth_backend/structure/timeline.js
Normal file
File diff suppressed because it is too large
Load Diff
193
auth_backend/structure/user.js
Normal file
193
auth_backend/structure/user.js
Normal file
@@ -0,0 +1,193 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const iniparser = require("ini");
|
||||
const config = iniparser.parse(fs.readFileSync(path.join(__dirname, "..", "Config", "config.ini")).toString());
|
||||
var Memory_CurrentAccountID = config.Config.displayName;
|
||||
|
||||
express.get("/account/api/public/account", async (req, res) => {
|
||||
var response = [];
|
||||
|
||||
if (typeof req.query.accountId == "string") {
|
||||
var accountId = req.query.accountId;
|
||||
if (accountId.includes("@")) accountId = accountId.split("@")[0];
|
||||
|
||||
response.push({
|
||||
"id": accountId,
|
||||
"displayName": accountId,
|
||||
"externalAuths": {}
|
||||
})
|
||||
}
|
||||
|
||||
if (Array.isArray(req.query.accountId)) {
|
||||
for (var x in req.query.accountId) {
|
||||
var accountId = req.query.accountId[x];
|
||||
if (accountId.includes("@")) accountId = accountId.split("@")[0];
|
||||
|
||||
response.push({
|
||||
"id": accountId,
|
||||
"displayName": accountId,
|
||||
"externalAuths": {}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
res.json(response)
|
||||
})
|
||||
|
||||
express.get("/account/api/public/account/:accountId", async (req, res) => {
|
||||
if (config.Config.bUseConfigDisplayName == false) {
|
||||
Memory_CurrentAccountID = req.params.accountId;
|
||||
}
|
||||
|
||||
if (Memory_CurrentAccountID.includes("@")) Memory_CurrentAccountID = Memory_CurrentAccountID.split("@")[0];
|
||||
|
||||
res.json({
|
||||
"id": req.params.accountId,
|
||||
"displayName": Memory_CurrentAccountID,
|
||||
"name": "Lawin",
|
||||
"email": Memory_CurrentAccountID + "@lawin.com",
|
||||
"failedLoginAttempts": 0,
|
||||
"lastLogin": new Date().toISOString(),
|
||||
"numberOfDisplayNameChanges": 0,
|
||||
"ageGroup": "UNKNOWN",
|
||||
"headless": false,
|
||||
"country": "US",
|
||||
"lastName": "Server",
|
||||
"preferredLanguage": "en",
|
||||
"canUpdateDisplayName": false,
|
||||
"tfaEnabled": false,
|
||||
"emailVerified": true,
|
||||
"minorVerified": false,
|
||||
"minorExpected": false,
|
||||
"minorStatus": "NOT_MINOR",
|
||||
"cabinedMode": false,
|
||||
"hasHashedEmail": false
|
||||
})
|
||||
})
|
||||
|
||||
express.get("/sdk/v1/*", async (req, res) => {
|
||||
const sdk = require("./../responses/sdkv1.json");
|
||||
res.json(sdk)
|
||||
})
|
||||
|
||||
express.post("/auth/v1/oauth/token", async (req, res) => {
|
||||
res.json({
|
||||
"access_token": "lawinstokenlol",
|
||||
"token_type": "bearer",
|
||||
"expires_in": 28800,
|
||||
"expires_at": "9999-12-31T23:59:59.999Z",
|
||||
"deployment_id": "lawinsdeploymentidlol",
|
||||
"organization_id": "lawinsorganizationidlol",
|
||||
"product_id": "prod-fn",
|
||||
"sandbox_id": "fn"
|
||||
})
|
||||
})
|
||||
|
||||
express.get("/epic/id/v2/sdk/accounts", async (req, res) => {
|
||||
res.json([{
|
||||
"accountId": Memory_CurrentAccountID,
|
||||
"displayName": Memory_CurrentAccountID,
|
||||
"preferredLanguage": "en",
|
||||
"cabinedMode": false,
|
||||
"empty": false
|
||||
}])
|
||||
})
|
||||
|
||||
express.post("/epic/oauth/v2/token", async (req, res) => {
|
||||
res.json({
|
||||
"scope": "basic_profile friends_list openid presence",
|
||||
"token_type": "bearer",
|
||||
"access_token": "lawinstokenlol",
|
||||
"expires_in": 28800,
|
||||
"expires_at": "9999-12-31T23:59:59.999Z",
|
||||
"refresh_token": "lawinstokenlol",
|
||||
"refresh_expires_in": 86400,
|
||||
"refresh_expires_at": "9999-12-31T23:59:59.999Z",
|
||||
"account_id": Memory_CurrentAccountID,
|
||||
"client_id": "lawinsclientidlol",
|
||||
"application_id": "lawinsapplicationidlol",
|
||||
"selected_account_id": Memory_CurrentAccountID,
|
||||
"id_token": "lawinstokenlol"
|
||||
})
|
||||
})
|
||||
|
||||
express.get("/account/api/public/account/*/externalAuths", async (req, res) => {
|
||||
res.json([])
|
||||
})
|
||||
|
||||
express.delete("/account/api/oauth/sessions/kill", async (req, res) => {
|
||||
res.status(204);
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.delete("/account/api/oauth/sessions/kill/*", async (req, res) => {
|
||||
res.status(204);
|
||||
res.end();
|
||||
})
|
||||
|
||||
express.get("/account/api/oauth/verify", async (req, res) => {
|
||||
res.json({
|
||||
"token": "lawinstokenlol",
|
||||
"session_id": "3c3662bcb661d6de679c636744c66b62",
|
||||
"token_type": "bearer",
|
||||
"client_id": "lawinsclientidlol",
|
||||
"internal_client": true,
|
||||
"client_service": "fortnite",
|
||||
"account_id": Memory_CurrentAccountID,
|
||||
"expires_in": 28800,
|
||||
"expires_at": "9999-12-02T01:12:01.100Z",
|
||||
"auth_method": "exchange_code",
|
||||
"display_name": Memory_CurrentAccountID,
|
||||
"app": "fortnite",
|
||||
"in_app_id": Memory_CurrentAccountID,
|
||||
"device_id": "lawinsdeviceidlol"
|
||||
})
|
||||
})
|
||||
|
||||
express.post("/account/api/oauth/token", async (req, res) => {
|
||||
if (config.Config.bUseConfigDisplayName == false) {
|
||||
Memory_CurrentAccountID = req.body.username || "LawinServer"
|
||||
}
|
||||
|
||||
if (Memory_CurrentAccountID.includes("@")) Memory_CurrentAccountID = Memory_CurrentAccountID.split("@")[0];
|
||||
|
||||
res.json({
|
||||
"access_token": "lawinstokenlol",
|
||||
"expires_in": 28800,
|
||||
"expires_at": "9999-12-02T01:12:01.100Z",
|
||||
"token_type": "bearer",
|
||||
"refresh_token": "lawinstokenlol",
|
||||
"refresh_expires": 86400,
|
||||
"refresh_expires_at": "9999-12-02T01:12:01.100Z",
|
||||
"account_id": Memory_CurrentAccountID,
|
||||
"client_id": "lawinsclientidlol",
|
||||
"internal_client": true,
|
||||
"client_service": "fortnite",
|
||||
"displayName": Memory_CurrentAccountID,
|
||||
"app": "fortnite",
|
||||
"in_app_id": Memory_CurrentAccountID,
|
||||
"device_id": "lawinsdeviceidlol"
|
||||
})
|
||||
})
|
||||
|
||||
express.post("/account/api/oauth/exchange", async (req, res) => {
|
||||
res.json({})
|
||||
})
|
||||
|
||||
express.get("/account/api/epicdomains/ssodomains", async (req, res) => {
|
||||
res.json([
|
||||
"unrealengine.com",
|
||||
"unrealtournament.com",
|
||||
"fortnite.com",
|
||||
"epicgames.com"
|
||||
])
|
||||
})
|
||||
|
||||
express.post("/fortnite/api/game/v2/tryPlayOnPlatform/account/*", async (req, res) => {
|
||||
res.setHeader("Content-Type", "text/plain");
|
||||
res.send(true);
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
59
auth_backend/structure/version.js
Normal file
59
auth_backend/structure/version.js
Normal file
@@ -0,0 +1,59 @@
|
||||
const Express = require("express");
|
||||
const express = Express.Router();
|
||||
|
||||
express.get("/fortnite/api/version", async (req, res) => {
|
||||
res.json({
|
||||
"app": "fortnite",
|
||||
"serverDate": new Date().toISOString(),
|
||||
"overridePropertiesVersion": "unknown",
|
||||
"cln": "17951730",
|
||||
"build": "444",
|
||||
"moduleName": "Fortnite-Core",
|
||||
"buildDate": "2021-10-27T21:00:51.697Z",
|
||||
"version": "18.30",
|
||||
"branch": "Release-18.30",
|
||||
"modules": {
|
||||
"Epic-LightSwitch-AccessControlCore": {
|
||||
"cln": "17237679",
|
||||
"build": "b2130",
|
||||
"buildDate": "2021-08-19T18:56:08.144Z",
|
||||
"version": "1.0.0",
|
||||
"branch": "trunk"
|
||||
},
|
||||
"epic-xmpp-api-v1-base": {
|
||||
"cln": "5131a23c1470acbd9c94fae695ef7d899c1a41d6",
|
||||
"build": "b3595",
|
||||
"buildDate": "2019-07-30T09:11:06.587Z",
|
||||
"version": "0.0.1",
|
||||
"branch": "master"
|
||||
},
|
||||
"epic-common-core": {
|
||||
"cln": "17909521",
|
||||
"build": "3217",
|
||||
"buildDate": "2021-10-25T18:41:12.486Z",
|
||||
"version": "3.0",
|
||||
"branch": "TRUNK"
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/v2/versioncheck/*", async (req, res) => {
|
||||
res.json({
|
||||
"type": "NO_UPDATE"
|
||||
})
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/v2/versioncheck*", async (req, res) => {
|
||||
res.json({
|
||||
"type": "NO_UPDATE"
|
||||
})
|
||||
})
|
||||
|
||||
express.get("/fortnite/api/versioncheck*", async (req, res) => {
|
||||
res.json({
|
||||
"type": "NO_UPDATE"
|
||||
})
|
||||
})
|
||||
|
||||
module.exports = express;
|
||||
275
auth_backend/structure/xmpp.js
Normal file
275
auth_backend/structure/xmpp.js
Normal file
@@ -0,0 +1,275 @@
|
||||
const WebSocket = require("ws").Server;
|
||||
const XMLBuilder = require("xmlbuilder");
|
||||
const XMLParser = require("xml-parser");
|
||||
|
||||
const functions = require("./../structure/functions.js");
|
||||
const matchmaker = require("./matchmaker.js");
|
||||
|
||||
const port = 80;
|
||||
|
||||
const wss = new WebSocket({ port: port }, () => console.log("XMPP and Matchmaker started listening on port", port));
|
||||
wss.on("error", (err) => {
|
||||
console.log("XMPP and Matchmaker \x1b[31mFAILED\x1b[0m to start hosting.");
|
||||
})
|
||||
|
||||
|
||||
global.Clients = [];
|
||||
|
||||
wss.on('connection', async (ws) => {
|
||||
ws.on('error', () => {});
|
||||
|
||||
if (ws.protocol.toLowerCase() != "xmpp") return matchmaker(ws);
|
||||
|
||||
var accountId = "";
|
||||
var jid = "";
|
||||
var id = "";
|
||||
var ID = functions.MakeID();
|
||||
var Authenticated = false;
|
||||
|
||||
ws.on('message', async (message) => {
|
||||
if (Buffer.isBuffer(message)) message = message.toString();
|
||||
const msg = XMLParser(message);
|
||||
if (!msg.root) return Error(ws);
|
||||
|
||||
switch (msg.root.name) {
|
||||
case "open":
|
||||
ws.send(XMLBuilder.create("open")
|
||||
.attribute("xmlns", "urn:ietf:params:xml:ns:xmpp-framing")
|
||||
.attribute("from", "prod.ol.epicgames.com")
|
||||
.attribute("id", ID)
|
||||
.attribute("version", "1.0")
|
||||
.attribute("xml:lang", "en").toString())
|
||||
|
||||
if (Authenticated == true) {
|
||||
ws.send(XMLBuilder.create("stream:features").attribute("xmlns:stream", "http://etherx.jabber.org/streams")
|
||||
.element("ver").attribute("xmlns", "urn:xmpp:features:rosterver").up()
|
||||
.element("starttls").attribute("xmlns", "urn:ietf:params:xml:ns:xmpp-tls").up()
|
||||
.element("bind").attribute("xmlns", "urn:ietf:params:xml:ns:xmpp-bind").up()
|
||||
.element("compression").attribute("xmlns", "http://jabber.org/features/compress")
|
||||
.element("method", "zlib").up().up()
|
||||
.element("session").attribute("xmlns", "urn:ietf:params:xml:ns:xmpp-session").up().toString())
|
||||
} else {
|
||||
ws.send(XMLBuilder.create("stream:features").attribute("xmlns:stream", "http://etherx.jabber.org/streams")
|
||||
.element("mechanisms").attribute("xmlns", "urn:ietf:params:xml:ns:xmpp-sasl")
|
||||
.element("mechanism", "PLAIN").up().up()
|
||||
.element("ver").attribute("xmlns", "urn:xmpp:features:rosterver").up()
|
||||
.element("starttls").attribute("xmlns", "urn:ietf:params:xml:ns:xmpp-tls").up()
|
||||
.element("compression").attribute("xmlns", "http://jabber.org/features/compress")
|
||||
.element("method", "zlib").up().up()
|
||||
.element("auth").attribute("xmlns", "http://jabber.org/features/iq-auth").up().toString())
|
||||
}
|
||||
break;
|
||||
|
||||
case "auth":
|
||||
if (!msg.root.content) return Error(ws);
|
||||
if (!functions.DecodeBase64(msg.root.content)) return Error(ws);
|
||||
if (!functions.DecodeBase64(msg.root.content).includes("\u0000")) return Error(ws);
|
||||
var decodedBase64 = functions.DecodeBase64(msg.root.content).split("\u0000");
|
||||
|
||||
if (global.Clients.find(i => i.accountId == decodedBase64[1])) return Error(ws);
|
||||
|
||||
accountId = decodedBase64[1];
|
||||
|
||||
if (decodedBase64 && accountId && decodedBase64.length == 3) {
|
||||
Authenticated = true;
|
||||
|
||||
console.log(`An xmpp client with the account id ${accountId} has logged in.`);
|
||||
|
||||
ws.send(XMLBuilder.create("success").attribute("xmlns", "urn:ietf:params:xml:ns:xmpp-sasl").toString());
|
||||
} else {
|
||||
return Error(ws);
|
||||
}
|
||||
break;
|
||||
|
||||
case "iq":
|
||||
switch (msg.root.attributes.id) {
|
||||
case "_xmpp_bind1":
|
||||
if (!msg.root.children.find(i => i.name == "bind")) return;
|
||||
if (!msg.root.children.find(i => i.name == "bind").children.find(i => i.name == "resource")) return;
|
||||
var resource = msg.root.children.find(i => i.name == "bind").children.find(i => i.name == "resource").content;
|
||||
jid = `${accountId}@prod.ol.epicgames.com/${resource}`;
|
||||
id = `${accountId}@prod.ol.epicgames.com`;
|
||||
|
||||
ws.send(XMLBuilder.create("iq")
|
||||
.attribute("to", jid)
|
||||
.attribute("id", "_xmpp_bind1")
|
||||
.attribute("xmlns", "jabber:client")
|
||||
.attribute("type", "result")
|
||||
.element("bind")
|
||||
.attribute("xmlns", "urn:ietf:params:xml:ns:xmpp-bind")
|
||||
.element("jid", jid).up().up().toString())
|
||||
break;
|
||||
|
||||
case "_xmpp_session1":
|
||||
if (!global.Clients.find(i => i.client == ws)) return Error(ws);
|
||||
var xml = XMLBuilder.create("iq")
|
||||
.attribute("to", jid)
|
||||
.attribute("from", "prod.ol.epicgames.com")
|
||||
.attribute("id", "_xmpp_session1")
|
||||
.attribute("xmlns", "jabber:client")
|
||||
.attribute("type", "result");
|
||||
|
||||
ws.send(xml.toString());
|
||||
getPresenceFromAll(ws);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (!global.Clients.find(i => i.client == ws)) return Error(ws);
|
||||
var xml = XMLBuilder.create("iq")
|
||||
.attribute("to", jid)
|
||||
.attribute("from", "prod.ol.epicgames.com")
|
||||
.attribute("id", msg.root.attributes.id)
|
||||
.attribute("xmlns", "jabber:client")
|
||||
.attribute("type", "result");
|
||||
|
||||
ws.send(xml.toString());
|
||||
}
|
||||
break;
|
||||
|
||||
case "message":
|
||||
if (!global.Clients.find(i => i.client == ws)) return Error(ws);
|
||||
if (!msg.root.children.find(i => i.name == "body")) return;
|
||||
var body = msg.root.children.find(i => i.name == "body").content;
|
||||
|
||||
if (msg.root.attributes.type) {
|
||||
if (msg.root.attributes.type == "chat") {
|
||||
if (!msg.root.attributes.to) return;
|
||||
var receiver = global.Clients.find(i => i.id == msg.root.attributes.to);
|
||||
var sender = global.Clients.find(i => i.client == ws);
|
||||
if (!receiver || !sender) return;
|
||||
if (receiver == sender) return;
|
||||
|
||||
receiver.client.send(XMLBuilder.create("message")
|
||||
.attribute("to", receiver.jid)
|
||||
.attribute("from", sender.jid)
|
||||
.attribute("xmlns", "jabber:client")
|
||||
.attribute("type", "chat")
|
||||
.element("body", body).up().toString())
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (ifJSON(body)) {
|
||||
var object = JSON.parse(body);
|
||||
|
||||
if (object.hasOwnProperty("type")) {
|
||||
if (typeof object.type == "string") {
|
||||
switch (object.type.toLowerCase()) {
|
||||
case "com.epicgames.party.invitation":
|
||||
if (!msg.root.attributes.to) return;
|
||||
var sender = global.Clients.find(i => i.client == ws);
|
||||
var receiver = global.Clients.find(i => i.id == msg.root.attributes.to);
|
||||
if (!receiver) return;
|
||||
|
||||
receiver.client.send(XMLBuilder.create("message")
|
||||
.attribute("from", sender.jid)
|
||||
.attribute("id", msg.root.attributes.id)
|
||||
.attribute("to", receiver.jid)
|
||||
.attribute("xmlns", "jabber:client")
|
||||
.element("body", body).up().toString())
|
||||
break;
|
||||
|
||||
default:
|
||||
ws.send(XMLBuilder.create("message")
|
||||
.attribute("from", jid)
|
||||
.attribute("id", msg.root.attributes.id)
|
||||
.attribute("to", jid)
|
||||
.attribute("xmlns", "jabber:client")
|
||||
.element("body", body).up().toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case "presence":
|
||||
if (!global.Clients.find(i => i.client == ws)) return Error(ws);
|
||||
if (!msg.root.children.find(i => i.name == "status")) return;
|
||||
if (!ifJSON(msg.root.children.find(i => i.name == "status").content)) return;
|
||||
var body = msg.root.children.find(i => i.name == "status").content;
|
||||
var away = false;
|
||||
if (msg.root.children.find(i => i.name == "show")) away = true;
|
||||
|
||||
updatePresenceForAll(ws, body, away, false)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!global.Clients.find(i => i.client == ws)) {
|
||||
if (accountId && jid && ID && id && Authenticated == true) {
|
||||
global.Clients.push({ "client": ws, "accountId": accountId, "jid": jid, "id": id, "lastPresenceUpdate": { "away": false, "status": "{}" } });
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
ws.on('close', () => RemoveClient(ws))
|
||||
})
|
||||
|
||||
function RemoveClient(ws) {
|
||||
if (global.Clients.find(i => i.client == ws)) {
|
||||
updatePresenceForAll(ws, "{}", false, true);
|
||||
|
||||
console.log(`An xmpp client with the account id ${global.Clients.find(i => i.client == ws).accountId} has logged out.`);
|
||||
|
||||
global.Clients.splice(global.Clients.findIndex(i => i.client == ws), 1);
|
||||
}
|
||||
}
|
||||
|
||||
function Error(ws) {
|
||||
ws.send(XMLBuilder.create("close").attribute("xmlns", "urn:ietf:params:xml:ns:xmpp-framing").toString());
|
||||
ws.close();
|
||||
}
|
||||
|
||||
function updatePresenceForAll(ws, body, away, offline) {
|
||||
if (global.Clients.find(i => i.client == ws)) {
|
||||
var SenderData = global.Clients.find(i => i.client == ws);
|
||||
var SenderIndex = global.Clients.findIndex(i => i.client == ws);
|
||||
global.Clients[SenderIndex].lastPresenceUpdate.away = away;
|
||||
global.Clients[SenderIndex].lastPresenceUpdate.status = body;
|
||||
|
||||
global.Clients.forEach(ClientData => {
|
||||
var xml = XMLBuilder.create("presence")
|
||||
.attribute("to", ClientData.jid)
|
||||
.attribute("xmlns", "jabber:client")
|
||||
.attribute("from", SenderData.jid)
|
||||
|
||||
if (offline == true) xml = xml.attribute("type", "unavailable");
|
||||
else xml = xml.attribute("type", "available")
|
||||
|
||||
if (away == true) xml = xml.element("show", "away").up().element("status", body).up();
|
||||
else xml = xml.element("status", body).up();
|
||||
|
||||
ClientData.client.send(xml.toString())
|
||||
})
|
||||
} else {
|
||||
return Error(ws);
|
||||
}
|
||||
}
|
||||
|
||||
function getPresenceFromAll(ws) {
|
||||
if (global.Clients.find(i => i.client == ws)) {
|
||||
var SenderData = global.Clients.find(i => i.client == ws);
|
||||
|
||||
global.Clients.forEach(ClientData => {
|
||||
var xml = XMLBuilder.create("presence")
|
||||
.attribute("to", SenderData.jid)
|
||||
.attribute("xmlns", "jabber:client")
|
||||
.attribute("from", ClientData.jid)
|
||||
|
||||
if (ClientData.lastPresenceUpdate.away == true) xml = xml.attribute("type", "available").element("show", "away").up().element("status", ClientData.lastPresenceUpdate.status).up();
|
||||
else xml = xml.attribute("type", "available").element("status", ClientData.lastPresenceUpdate.status).up();
|
||||
|
||||
SenderData.client.send(xml.toString())
|
||||
})
|
||||
} else {
|
||||
return Error(ws);
|
||||
}
|
||||
}
|
||||
|
||||
function ifJSON(str) {
|
||||
try {
|
||||
JSON.parse(str)
|
||||
} catch (err) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user