throbber
Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 1 of 17 Page ID #:7
`Case 2:21-cv-09552-CAS-SK Document1-1 Filed 12/09/21 Page1iof17 Page ID#:7
`
`EXHIBIT 1
`EXHIBIT 1
`
`

`

`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 2 of 17 Page ID #:8
`
`
`
`quinn emanuel trial lawyers | los angeles
`865 South Figueroa Street, 10th Floor, Los Angeles, California 90017-2543 | TEL (213) 443-3000 FAX (213) 443-3100
`
`
`
`
`
`
`WRITER'S DIRECT DIAL NO.
`(213) 443-3675
`
`WRITER'S EMAIL ADDRESS
`robertschwartz@quinnemanuel.com
`
`December 1, 2021
`
`VIA EMAIL
`
`Dawn Dempsey
`Valve Corporation
`10400 NE 4th Street, Suite 1400
`Bellevue, WA 98004
`(425) 889-9642
`dmca@valvesoftware.com
`
` Re:
`
`Dear Ms. Dempsey,
`
`Notice of Claimed Infringement re: Myth of Empires
`
`We represent Wildcard Properties LLC d/b/a Studio Wildcard and Snail Games USA Inc.
`(collectively “SWC”), the developer and publisher (respectively) of the video game Ark:
`Survival Evolved.
`
`This letter constitutes a “notice of claimed infringement” to Valve Corporation pursuant to
`the Digital Millennium Copyright Act (“DMCA”), 17 U.S.C. section 512(c)(3), better
`known as a DMCA “takedown” notice.
`
`Valve is offering for download, on its Steam Platform, a videogame titled Myth of Empires.
`According to the Valve website page for the game, the developer is a company called Angela
`Game. Based on our investigation, the game appears to have been built with trade secret source
`code copied and stolen from SWC. Valve’s distribution of the video game Myth of Empires is
`thus facilitating trade secret misappropriation and copyright infringement.
`
`SWC first published Ark: Survival Evolved on June 2, 2015, for the Windows platform on Steam,
`and subsequently by August 29, 2017 for Mac OS, Xbox One, and PlayStation 4 platforms. In
`2018, SWC published additional versions of Ark: Survival Evolved for the Nintendo Switch and
`Android iOS. The source code for Ark: Survival Evolved is protected by U.S. copyright law
`pursuant to Copyright Registration Nos. TX0008844750, TX0008844750, and TX0008850190.
`The source code was also subject to reasonable measures to maintain its secrecy, including
`
`
`
`
`
`quinn emanuel urquhart & sullivan, llp
`ATLANTA | AUSTIN | BOSTON | BRUSSELS | CHICAGO | HAMBURG | HONG KONG | HOUSTON | LONDON | LOS ANGELES | MANNHEIM | MIAMI |
`MUNICH | NEUILLY-LA DEFENSE | NEW YORK | PARIS | PERTH | SALT LAKE CITY | SAN FRANCISCO | SEATTLE | SHANGHAI | SILICON VALLEY |
`STUTTGART | SYDNEY | TOKYO | WASHINGTON, DC | ZURICH
`
`
`

`

`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 3 of 17 Page ID #:9
`
`Dawn Dempsey – Valve Corporation
`December 1, 2021 – Page 2
`
`
`through employment contracts that prohibited SWC’s employees from using the code for any
`purpose other than assigned work and from disclosing the code to third parties.
`
`DMCA “TAKEDOWN” NOTICE
`17 U.S.C. § 512(C)(3)
`
`
`
`
`In 2020, at least one employee of SWC's parent corporation (Snail Games China) who previously
`had access to the source code for Ark: Survival Evolved left to form Angela Game which, as
`noted above, is the developer of Myth of Empires. Accordingly, when Myth of Empires was
`released on November 18, 2021, SWC became understandably concerned because of large-scale
`similarities between Ark: Survival Evolved and Myth of Empires. This similarity extended to
`features that could not be explained through independent development, such as the use of
`identical gameplay mechanics not found in other games.
`
`To investigate, SWC compared code “headers” found in the executable file for Myth of Empires
`to the code used in Ark: Survival Evolved. A preliminary analysis is attached as Exhibit A.
`SWC’s analysis confirms that its concerns are well-founded: Myth of Empires was built using
`source code copied and stolen from SWC. The analysis reveals hundreds of matching “class,”
`“variable,” and “function” names.
`
`Given the nature and extent of the copying, this cannot be a coincidence. For example, both
`games use hundreds of arbitrary yet identical, or minimally renamed, variable names such as
`“bOnlyUseExpireTimeMultipliersIfActivated” and “SpawnInventoryOnDestructionLifeSpan.”
`It is simply unbelievable that so many unnecessary similarities in variable, class, and function
`names can be explained by “random chance.” This is a textbook case of copyright infringement
`and trade secret misappropriation.
`
`Please be advised that if Valve does not take down Myth of Empires, then Valve may be liable
`for both indirect copyright infringement and trade secret misappropriation. See, e.g. Graduation
`Sols. LLC v. Luya Enter. Inc., 2020 WL 9936697, at *6 (C.D. Cal. May 5, 2020) (denying
`motion to dismiss and allowing lawsuit to proceed where “There is no question that Luya
`committed intentional acts in selling graduation apparel via its Websites and that those sales of
`products using Plaintiff's allegedly misappropriated trade secrets and infringed copyright
`constitute the basis of Plaintiff’s claims.”); see also A&M Recs., Inc. v. Napster, Inc., 239 F.3d
`1004, 1022 (9th Cir. 2001) (“In the context of copyright law, vicarious liability extends beyond
`an employer/employee relationship to cases in which a defendant has the right and ability to
`supervise the infringing activity and also has a direct financial interest in such activities.)
`(internal quotation omitted).
`
`Note also that the DMCA offers a defense, where available, only to copyright claims. It does not
`insulate anyone against claims for trade secret misappropriation. This is not SWC’s preferred
`course of action. But we would be remiss if we did not mention it.
`
`Accordingly, Studio Wildcard and Snail Games USA Inc. hereby formally request that Valve
`take down all versions of the game titled Myth of Empires from Valve’s Steam Platform because
`Myth of Empires is an unauthorized derivative work built on source code unlawfully copied and
`misappropriated from SWC’s Ark: Survival Evolved.
`
`
`
`

`

`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 4 of 17 Page ID #:10
`
`Dawn Dempsey – Valve Corporation
`December 1, 2021 – Page 3
`
`
`Additionally, and pursuant to the DMCA (17 U.S.C. § 512(c)(3)), Studio Wildcard and Snail
`Games USA Inc. hereby state (or re-state) the following:
`
`DMCA “TAKEDOWN” NOTICE
`17 U.S.C. § 512(C)(3)
`
`
`
`
`1. Studio Wildcard and Snail Games USA Inc. have authorized me to submit this notice of
`claimed infringement.
`
`2. Studio Wildcard and Snail Games USA Inc. own registered copyrights in their video
`game Ark: Survival Evolved, which has been registered with the copyright office and is
`covered by copyright registration numbers TX0008844750, TX0008844750, and
`TX0008850190. Ark: Survival Evolved may be found on Valve’s Steam Platform at this
`URL: https://store.steampowered.com/app/346110/ARK_Survival_Evolved/.
`
`3. My clients’ copyrights in Ark: Survival Evolved are being infringed by the video game
`Myth of Empires, which may be found on Valve’s Steam Platform at this URL:
`https://store.steampowered.com/app/1371580/Myth_of_Empires/.
`
`4. Studio Wildcard and Snail Games USA Inc. may be contacted through me, and I am
`available at the following address, phone number, and email address:
`
`Robert M. Schwartz
`Quinn Emanuel Urquhart & Sullivan LLP
`865 South Figueroa Street, 10th Floor
`Los Angeles, California 90017
`(213) 443-3675
`robertschwartz@quinnemanuel.com
`
`5. Studio Wildcard and Snail Games USA Inc. have a good faith belief that Myth of Empires
`is infringing Studio Wildcard and Snail Games USA Inc.’s copyrights in Ark: Survival
`Evolved. Studio Wildcard and Snail Games USA Inc. have a good faith belief that Myth
`of Empires was built by: (1) stealing the Ark: Survival Evolved source code and (2) using
`the stolen source code as the gameplay foundation for Myth of Empires. Key employees
`of the developer of Myth of Empires worked at the Chinese parent of Snail Games USA
`Inc. and at least one of them had credentials that enabled them to access the Ark: Survival
`Evolved source code.
`
`I state, under penalty of perjury, that the information contained in this notice is accurate, and that
`I am authorized to act on behalf of Studio Wildcard and Snail Games USA Inc.
`
`The foregoing is not a complete statement of the facts relevant or the law governing this matter.
`All of SWC’s rights, claims, and remedies are hereby reserved.
`
`
`
`Robert M. Schwartz
`
`
`
`

`

`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 5 of 17 Page ID #:11
`
`
`
`
`
`
`Exhibit A
`
`
`
`
`
`

`

`‘ARK’ / ‘ATLAS’ game codebase found in ‘Myth of Empires’
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 6 of 17 Page ID #:12
`
`V1 (November 26, 2021): This is a preliminary analysis, only comprised of an initial sampling of a handful of reflected game headers. It does not yet
`include:
`
`- The remainder of the game headers.
`- Any unreflected header code (would require PDB).
`- Any of the internal CPP source code (would require source code).
`- Any engine code (which was also substantially modified by Wildcard in our codebase).
`
`Full analysis of the rest of the code will yield far more hits.
`
`-------------------
`Steps to reproduce/generate files:
`
`Method 1 (for Atlas or ARK, recommended):
`1. Load AtlasGame.exe (Atlas) or ShooterGame.exe (ARK) in your disassembler of choice.
`2. Load debug symbols from AtlasGame.pdb (Atlas) or ShooterGame.pdb (ARK)
`3. Search through classes/local types/functions/etc
`
`Method 2 (use UE4’s reflection system to extract all data)
`1. Clone https://github.com/polivilas/UnrealEngineSDKGenerator
`2. Generate new project files for Atlas or ARK, using ARK as project template
`3. Change GlobalObjects to type FChunkedFixedUObjectArray (information on this class can be obtained from https://github.com/epicgames/unrealengine).
`4. Change GlobalNames to type TNameEntryArray
`5. Point GlobalObjects to address of GUObjectArray in Atlas or ARK (use debug symbols to find this)
`6. Point GlobalNames to return value of FName::GetNames (use debug symbols to find this static function)
`
`

`

`7. Fix all structs/classes in EngineClasses.cpp to match Atlas’s or ARK’s structs/classes (use debug symbols to verify).
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 7 of 17 Page ID #:13
`8.
`Inject compiled DLL into game, and dump all classes/variables/functions/etc.
`
`Method 3 (for Myth of Empires only - use UE4’s reflection system to extract all data, recommended)
`1. Clone https://github.com/guttir14/UnrealDumper-4.25
`2. Setup game to dump as any UE4.26 game, or use patterns:
`{"\x48\x8D\x0D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\xC6\x05\x00\x00\x00\x00\x01\x0F\x10\x03\x4C\x8D\x44\x24\x20\x48\x8B\xC8", 30},
`{"\x48\x8B\x05\x00\x00\x00\x00\x48\x8B\x0C\xC8\x48\x8D\x04\xD1\xEB", 16},
`3. Run game without battleye
`4. Run dumper and dump all classes/variables/functions/etc.
`---------------
`
`PRELIMINARY MATCHES:
`
`

`

`i
`
`ieC|
`otereelcllonlceedeleeeSe!
`eeslGhLAfe
`
`i}ee
`
`iosses
`
`aeeeee|
`
`fipeaeniGase 2.21CV-09552-CASSk Document 1-1) Filed 12/09/21Page.8of17__Page ID #:14
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 8 of 17 Page ID #:14
`bool
`
`
`eanemona
`bIsPreviewStructure : 1;
`eaeee)
`Se eeeetaeeeeeores
`
`aaaiateleeEa]
`Oaeee heepele)|ee
`
` PreviewMaterial;
`PreviewCreateMaterial;
`closs UMaterialInterface*
`I
`
`bool
`
`
`bForcePlacingOnGround : 1;
`®@ bForceCreateOnGround : 1;
`® MaxCreateRange;
`PlacementMaxRange;
`float
`
`ae ee ar eae ay
`TArray<struct FPrimal$StructureSnapPoint>
`SnapPoints;
`BindPoints;
`ia
`
`yeaTeelela)eeslee|oe ane int32— BindType;
`
`
`amFan tan)i
`PARTeriapeel
`“mE
`£teuct F¥ector
`CreateHitLocationOffset;
`amFaneraa
`
`PlacementEncroachmentCheckOffset;
`-— =
`Corie
`-
`CreateCheckBoxOtfset;
`amFan tan)i
`PlacementTraceScale;
`+3 na
`peoaseoc
`SomFag eea
`
`PlacementRotOffset;
`
`= [apapeldeedemety
`float
`
`ateemmaTWlgewe=dgieleroyelesRespare]tae ed ®MaxHeightToWor1dGround;
`
`bool
`bIsFoundation : 1;
`bFoundation : 1;
`
`bool
`bIsWall
`: 1;
`bWall
`: 1;
`fataleB
`
`bIsFloor : 1;
`bFloor : 1;
`
`bool
`bOnlyFoundationIfSnappedToFoundation : SEOMRmelatitpemRely litaglepagteiereMe)gre]ayelehaehe)| er1;
`
`
`
`class UtClass*
`AllowReplacementByStructureClassType;
`CanReplaceByStructuretlass;
`class UClass*
`
`PreventReplacementOfStructureClassType; rat = be reer as
`
`
`
`PreventReplaceByStructureClass;
`bool
`bReturnDamageOnHitFromPawn : 1; Sottamnhllge--- sintnte
`
`
`
`re)
`prnnnTOPPnO
`Panels
`ReturnDamageImpulse>SSStret rnDamageImpulse;
`panels
`class UClass*
`
`ReturnDamageType;
`ReturnDamageType;
`
`bool
`bRequiresPlacingOnWall
`aeee)
`: 1;
`bool
`bCanDemolish : 1;
`bCanBebDemolished : 1;
`ra
`rns
`
`panels
`PlacementFloorCheckStartOffsetz;
`CheckFloorzUp;
`
`panels
`PlacementFloorCheckEndOffsetz;
`heckF loorZDown;
`
`class UClass*
`
`
`CeEL)amd
`eeUtael
`=
`amFaneraa
`
`
`
`eeamel eeepeeetd a araoerorae SeverWaaMeleeneOgta
`
`struct FRotator
`afeTeUfmdLea
`SpawnEmitterRotationOffset ;
`
`
`class USoundBase*
`a=TememsTe ee
`~~ SpawnSound1D;
`eal
`
`float
`A
`ea Berets
`aiteeseg)otedt|eee
`heckEnemyFoundationRadius;
`bool
`fa)eeteedCadee +5
`bCheckNearByEnemyFoundation : 1;
`bool
`
`bForcePreventEnemyStructuresNearby : 1;
`pee
`Prien
`bPreventNearByEnemyFoundation : 1;
`fataleB
`IF
`LAL
`*pRealFoundation : 1;
`bOnlyAllowPlacementInWater : 1;
`amFaneraa
`Oem eAatgeeoota
`=.
`eee SSer
`heckWaterLocationOffset;
`float
`
`ObagiewesTeeBAceedeo d ageWMeales
`
`
`panels
`PreventPlacingNearEnemyRadius;
`iredegeeTe
`struct FName
`
`StructureTypelag;
`1aaanadBa
`Oeaeeea
`IgnoreReplacementCheckOfStructureClassTypes;
`IgnorePreventStructureClasses;
`
`bool
`bAttachToStaticMeshSocket
`: 1;
`lowAttachToStaticMeshSocket
`
`aeFoe Cod
`
`Piaafaeaeee dEd
`oe
`iaieTotehaaeTete oaoa
`panels
`DemolishGiveltemCraftingResourcePercentage;
`PRAeeeeeed eee
`
`bool
`bCanBeRepaired : 1;
`anRepair
`: 1;
`bool
`bIsRepairing : 1;
`a5
`carer
`Repairing : 1;
`Cela]ealaod
`
`MextAllowRepairTime;
`=
`“rinitirtae
`eameatersaed
`Pereeanerr)f pSiewla
`Panels
`toatewdeleLeneery £
`panels
`aretelakae Seenenn(UsSCSST
`
`class UtClass*
`panels
`NoTeam4reaDecayInterval;
`MoClaimFlagDecayDestructionPeriod;
`52
`PgeertE
`float
`eter0teed ee
`NoClaimFlagDecayDestructionPeriodMultiplier;
`53
`
`ee)
`Panels
`DecayDestructionPeriod;
`Bearereared
`
`panels
`tereLgeaeTaelaeodae
`Team4reaDecayHPPercent;
`
`eielae
`OwnerName ;
`class FString
`
`
`class FString
`ce,remytNeWa|Lied
`eae
`eT leeea
`
`amaaae0 = EETDS
`
`Seae]
`uint32_t
`
`oaeee
`ayceeeo
`1
`BindedStructuresByID;
`OraeeeaeoD
`LinkedStructures;
`aletee
`
`StructuresOnFloor;
`StructuresPlacedOnFloor;
`TArray<closs APrimalStructure*>
`elass APrimalStructure*
` PlacedOnFloorStructure;
`
`reateOnFloorStructure;
`yeeaCeghCea—— a]
`cr
`bool
`Snag120-010!0g)311) ee
`
`: 1;
`
`iv)
`
`eeeate)
`
`

`

`struct FText
`
`se.2:21-cv-09552-CAS-SK Document 1-1 Filed |12s09/AeeseesRage |D.#:15
`Wea TLAS
`Cc
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 9 of 17 Page ID #:15
`Catbeag f=|ea
`/ UPrimalRichTextBlock
`similar vari
`
`:
`FF
`= Text;
`aa
`treyBae ae eeaE
`Justification;
`Justification;
`asaetyee
`bool
`
`eaeecetUPLeLar]
`
`cease
`lar)=aae
`cos
`[=]00=a
`
`struct FMargin thasSSet=Le00
`
`Seer agaeeOOeeeUNC00tee)ae|
`
`
`iraMsMTo> etegaPo0ee vee] Po)Dg_ceceeaeTaoal ale]aoeoe ee] do)Pe)Dt
`
`void SetString(const class FString& inString);SaEEEEEEEEEEEEEEEEEEIEN—fnsaeiceeeeeATs a
`
`[J wanna nnn nnn nnnnnncee
`
`ATLAS(aSS similar variables
`
`eaeivth of Fonires
`
`f/f USGInventoryComponent
`
`TArray<class UClass*>
`DefaultInventoryItems;
`PTPamIerrSe eSSeSt
`
`ae|
`falt-peel
`a ryarane al re
`TaArray<class UClass*>
`DefaultEquippeditems;
`Secere eeeeee
`* DefaultEquippeditems;
`TArray<class UClass*>
`
`
`
`Oeeaeeaa Pia0—ceroc|ecoceee oees|eReeo
`TArray<class UPrimalItem*>
`CraftingItems;
`fe)aeae
`MaxItemCraftQueveEntriespagteem e-Mailoe
`cia
`
`TArray<struct FItemCraftQueveEntry> ItemCraftQueveEntries;#41_35\-—_TArray<struct—FitemtraftQueveintry>—#£—ItemCraftQueueEntries;
`
`TArray<class UClass*> CoregmreteCemelOaeeWl eeOm)|1iLeeaeeeeeeMQreleMeeelpe
`TArray<struct FItemMultiplier>
`ItemSpoilingTimeMultipliers;
`eeeee eee eere aae
`ARseepe
`
`TArray<class UPrimalItem*> BDaSeOyetLLLa
`aayeeeeeee
`EquippedItems ;
`CSeram
`quipItems;
`
`
`
`eeeeeeeed ItexsLots$@3-£_0-7}A21329—Fatrraytcloass56ten*>———_—_———_®ShortCutItems;
`bInital : 1;
`Peareg i bTnitializedMe : 1;
`Pee=aSte(PCR=ecFy
`
`|similar variables
`
`enee rene
`
`Ssossoosssssesossseossos5== aaa
`
`
`
`ns
`
`TWeakObjectPtr<class AShooterWeapon>
`AssociatedWeapon;7REaS Snipa UPel
`
`aaos
`H
`TWeakObjectPtr<class UPrimalInventoryComponent>
`Peeeeoeaeee
`BaseCraftingResourceRequirements;
`Eas
`:
`Ferotet
`Peet ss
`class UClass*
`2)iga
`ExpiredItem;
`eee
`SpoilingTime;
`ExpireTime;
`class UClass*
`
`BrokenGiveltemClass;
`BrokenGivelItemClass;
`OSetsyeeePate ee)eld
`MyEquipmentType;
`SSeSRSee
`aah
`MaxBlueprintCrafts:
`i ==
`romeelae
`unsigned char
`bResourcePreventGivingFromDemolition : 1;
`PreventGivingFromDemolish : 1;
`bCanBuildStructures : 1;
`bCanCreateStructure : 1;
`Peasele eae
`
`caepeWATSogeegmaaedF-20081
`
`Paaritaeae PSUacer0a6CeFSUea
`doubLe
`
`glOGGela
`unsigned char
`bDestroyBrokenItem : 1;
`epee es) 14-11)ce)
`SlotiIndexaAla
`cia
`
`caere
`aCea
`Sesaa ee oe
`ItemQuality;
`bBPCanUse : 1;boa— __esbhtanlse : 1;
`Paaritaeae
`
`unsigned char PaOeBOe5|Art#100-11100!|F)--1—
`unsigned char
`PsyCOMe)tse)Oetmeok9=17-10TU=] ea=1-9
`
`eaeele elsa UCTMOLTae]oeSOeed“101-1—00at)»ae
`
`
`
`
`TArray<class UClass*>;————____59__TarraytciossCraftingRequiresInventoryComponent USGiten®> *Craftinstructureltem;
`
`cease
`UeRer=madeDedre
`
`OSseeeee a6eS©|=U2d
`
`// Senn
`/¥ UPrimalItem similar variables
`
`faith of Empires
`/ USGItem 5imilar variables
`
`

`

`Ce]iere [eee
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 10 of 17 Page ID #:16
`Uti RM - leeeeeeMT
`’ ABoseCharaczer, ASGAiCharactes similar variables
`
`atone
`
`moa
`AActor
`
`WaT=a
`DefaultAngularDamping;
`DefaultLinearDamping;
`DefaultLinearDamping;
`Late] gokart te |eth
`CorpseDraggedDecayRate;
`CorpseDissolveTime;
`CorpseDestructionTime;
`CorpseDissolveFinishTime;
`CorpseFadeAwayTime ;
`ealeee
`sOet
`Setteaeee
`ceeeeeeLe
`ServerSeatedViewRotationyYaw;
`cle eter BeeeeRe
`ControlRotationInterpSpeed;
`ampate pee legect
`aaeTee
`Nae Te eee
`—_-
`re ee ee
`Anime
`=
`ceaEs
`Neeee
`aeeee
`orthed
`Peng Se che ekajis Led ieee = tall
`ee a)
`a — cs
`AnimalBoneDamageAdjusters ;
`etersP rurey totsmd od a
`FBoneDamageAdjuster>
`orthed
`| Pattie By
`i
`G@Llilei +
`Carriedtharacter;
`Carriedtharacter;
`Dm
`ee a)
`TWeakObjectPtr<
`PlTash tTCone
`re ae tad
`tesaegy
`Bas
`See P
`-
`mms
`ae
`RiderCharacter;
`MountCharacter;
`TWeakObjectPtr<
`PlTash tTCone
`aea tetas)ereg
`HardLimitwWildDinoToVolume;
`TWeakObjectPtr<
`ANPCZoneVolume>
`BindNpcSpawnVolLume ;
`
`bAllowTargetingCorpses:1; bAllowTagetCorpses
`me ete 1;
`eee 1;
`bIsImmobilized
`bImmobilized
`bIsAmphibious
`bIsAmphibious
`als
`bForceNoRotation
`bForbidRotation
`TamedMaxFollowDistance;
`MaxFollowDistance;
`MoveAroundBlockadePoint ;
`MovingAroundBlockadePoint ;
`Lea
`LastMoveAroundBlockadedActor;
`LastMovingAroundBlockadeActor;
`
`bRiderDontRequireSaddle:1; bRiderRequireSaddle 1;
`
`ReplicatedHealth;
`ReplicatedHP;
`RiderMaxSpeedModifier ;
`ExtraMaxSpeedModifier ;
`eae[pataeratebscy eleaere aae
`ExtraMaxSpeedModifier ;
`bIsMoveAroundBlockade
`bIgnoreMoveAroundBlockade
`at 1;
`bForbidMove
`ai
`
`bIsBeingDragged bIsDragged:1;1;
`
`
`bIsSleeping:1; bIsSleeping:1;
`bPreventImmobilization
`bPreventImmobilize
`bRiderDontRequireSaddle
`bRiderRequireSaddle
`oDEtettcrate
`1;
`bUseCharacterSex
`10aa ee
`ieee
`DefaultWeapon;
`DefaultWeapon;
`elimaeletaleae
`uocce..1-2 eo
`MountMontage ;
`OPTalelphea
`Lert) rater) eri
`Pea) ae Saree eeeeer ae
`taeTeeaseele
`ablaelae
`DeathExploitComponent ;
`BabyAge;
`AnimalAge;
`BabyScale;
`AnimalBabyScale;
`[E-Panhea T- 1)4a
`LastMakeDamageTime;
`NextMateRemainTime;
`eatweeaeathe gaa
`saa)let
`
`eae)let
`
`= a
`
`ai
`1
`
`ee ed
`
`an
`1;
`
`ai
`
`maton
`
`i
`
`1;
`
`

`

`ATLAS
`
` cy-09552-CAS-SK Document 1-1 Filed 12/09/3)--Paut-L1oePageID#47.
`Acareseee
`7
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 11 of 17 Page ID #:17
`
`bool
`bHasWater boo——FebHasWater+ 13 22-00 ese 68 =: 1;
`
`
`
`
`class UMaterialInterface*
`Eelhealeiee
`sl
`ra es
`peelLmetaobpados
`feces theese|ee
`Deatl aeaEEEEaESaaeLeeeeoieeeeLeee ———— NolaterReplaceMaterial;
`int
`WaterMaterialIndex;
`: iReplaceMaterialiIndex;
`
`
`
`void OnRepHasWater(bool bNewHasWater);
`
`ee eres
`
`ATLAS
`//| UUI_PreviewWwidget| similar variables
`
`void OnRepHasWater(bool bPreviousHasWater) ;
`
`
`
`faith of Empires
`Aesetrater| ee DaoRe
`
`float
`struct FRotator
`struct FRotator
`amanee a
`
` eea he hn nna error
`
`class USceneComponent* classUSceneComponentightladEte : *——_————_ MyDoorRootComponent;
`
`
`
`
`
`peeeiela
`RotationSpeed; Oe ———_® RotationSpeed ;
`class USoundCue*
`
`DoorOpenSound; a ———®OpenSoundID;
`class USoundCue*
`DoorCloseSound;SeaeeeemeoeTe =CloseSoundID;
`bool
`bInvertOpenCloseDirection : 1; ———-—-183——bool
`—bOpenCloseDirection : 1;
`bool
`Oe AO eeeEEEEnnnIIn==Iicise:Bun“iiiGe—————bIsLocked : 1;
`
`
`eae
`DoorOpenState;
`——*DoorSwitchstate;
`fataral R
`bRotatePitch : 1;
`Secca| ie
`fataral R
`bRotateRoll
`: 1;
`——— hRotateByRoll
`: 1;
`bool
`teeeers
`————bRotateByYaw : 1;
`bool
`
`CMMs OeWear)0)9)eerad110106C0LarsLene|| :| ‘i
`bool
`oNtetera0eleaes) eee ——*bDoubleDoor
`: 1;
`struct FRotator
`SecondDoorDefaultRot ;
`DoubleDoorDefaultRotation;
`bool
`bSupportsPinLocking : 1; —————————_—_112
`boot = bCanSetPassword : 1;
`
`its) ares CurrentPinCode;2——_____1_413pi39 CurrentPas swords
`bool
`[oA| AaaaeOr mmr ome 0.09209(100010(+e a
`
`rrasje
`ele
`shRotation;
`eesaee
`OrbitRotation;
`CO)siateal
`PreviewScale;
`iaeee
`
`Paella bmad|=erete==]=|Poa]at
`aera
`BrakeSpeed;
`rer
`BrakeSpeed;
`
`
`eee RotationSpeed ;———H_______885—_fLeat—nn ceete)ate
`eTa eeTy
`struct FRotator
`AutoRotator ;
`AutoRotator;
`aeeea
`class UWorld*
`GameWorl1d;
`GameWorld;
`class UWorld*
`PreviewWorld;
`eee|Seae es
`
`TArray<class USceneComponent*> awele|regeesee BeLCG0G)6bood ReMele
`aaaonae anea
`RotationVelocity ;————_______- i ———® RotationVelocity;
`class USceneCaptureComponent2D* aaeenn erm omarsgcheSel)s18)trnS——*CaptureComponent ;
`
`
`
`er error
`
`ee a nn ho nn ene ener rreee
`
`MLAS
`//|APrimalStructureDoor |Similar variables
`
`fea yth of Empires
`
`i ASGStructureDoor| similar variables
`
`
`
`void NetGotoDoorState(int#_t DoorState);
`void OnRepDoorOpenState(inta_t PrevDoorOpenState);
`void NetGotoDoorState(int&_t DoorState);
`
`——1t6 void SwitchDoorState(unsigned char DoorState);
`SS ceceeee gsalet
`— 148void NetSwitchDoorState(unstgned char DoorState);
`
`

`

`USoundBase
`USoundBase
`
`a
`
`Is
`
`APrimalStructureBed |similar variables
`
`ASGStructureBed similar v
`
`
`bDestroyAfterRespawnUse:1; bReSpawnDestroy=:1;
`hog ats
`ity er-Temeleehese)0
`PlayerSpawnLocOffset;
`FRotator
`RespawnRotOffset;
`PlayerSpawnRotOffset;
`BedName;
`BedName;
`
`ladeeealeeTe
`
`ASGStructuretTurret
`
`APrimalStructureItemContainer |similar varia
`etces eel ao eed
`ncainer similar
`variables
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 12 of 17 Page ID #:18
`bOnlyUseSpoilingMultipliersIfActivated bOnlyUseExpireTimeMultipliersIfActivated:1;
`
`bAutoActivatewWhenFueled
`iF
`jayaats)Von AED =)Ctl =e
`ai
`bCanActivate
`a
`bCanToggleActivation:1;
`ActivateContainerString;
`ContainerActivateString;
`DeactivateContainerString;
`ContainerDeactivateString;
`DeathCacheCharacterID;
`DeathCharacterGuid;
`aE
`bContainerActivated
`NTCoetTpms
`a
`NextConsumeFuelGiveltem;
`NextConsumeFuelGiveltemType;
`LastCheckedFuelTime;
`LastRefreshFuelStateTime;
`
`bDropInventoryOnDestruction:1; bSpawnInventoryOnDestruction:1;
`DropInventoryOnDestructionLifespan;
`SpawnInventoryOnDestructionLifeSpan;
`NetDestructionTime;
`SavedNetOnDestructionTime;
`ContainerActivatedSound;
`ActivatedSoundID;
`ContainerDeactivatedsound;
`DeActivatedSoundID;
`CurrentPinCode;
`eireels) aet
`bIsPinLocked
`bLockedByPassword
`
`UnRideSoundID;
`
`UClass
`aad
`
`UClass*>
`
`A Tost Fhe Cok aoraDT| od
`PlTapTwataha
`
`TWeakObjectPtr<
`Tem ates
`elmhae)
`OFetealt-] <0)e etna
`USoundCue
`USoundCue
`
`AVTaek Weer ia-a
`
`Oia)tere] ool0)
`TPVCameraPitchMax;
`SeeRe hee)
`PitctViewRotation:
`aaa hewno)
`AlternateAmmoltemTemplates ;
`
`SeatedCharacter;
`NumSeats ;
`SeatedCharacterLocationOffset;
`tatshmats] alee eee ae)Oot a
`CharacterPerSeat:
`RideSound;
`UnrideSound;}
`
`fimilar variables
`ASGStructureSeat
`oees oe
`aeee Sas
`
`ait Tas stole
`SeantJ
`
`TPVCameraPitchMin;
`tAG1)ala] obiaed |tba
`Peei)eae]ae)
`PitchViewRotation;
`eae een oteeh
`AllAmmoltemTemplates;
`
`SeatedCharacter;
`NumSeats;
`SeatedCharacterLocationOffset;
`SeatedCharacterRotationoffset;
`FWMeolalega le
`RideSoundID;
`
`

`

`Qf) 2eeseeoscescos2secese ees ss9s soos se sees eee os sass eee soe ssosssso2ses
`
`J) 2eocesosseess 2 saeco sss sessssesssss sess tes sse sss sessess assess ssesseess
`
`// ES
`MaeythofEmpires}
`f/f ScriptStruct ShooterGame.DecalData
`// ScriptStruct 56.DecalData
`
`struct) FDecalData
`struct!
`{
`if
`DecalMaterial ;
`class UMaterialInterface*
`Si7CTcoor=ooda0>|et=rEFbaldasIe
`rcs *DecalSize;
`
`Sees
`DecalSize;
`paaeeis
`DecalDepth;
`ars
`* DecalDepth;
`
`DecalImpactNormalOffset8feat DecalImpactNormaloffset ;
`float
`Loot
`LifeSpan;
`aay)
`rarer
`aa)
`1
`5
`teem
`RandomAngleRange;
`i
`
`FDecalData
`
`ie
`
`ee ai eee
`
`eeease 2:21-cv-09552-CAS-SK Document1-1 filed 12/09/21
`3 0f17 _Page.|D #:19
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 13 of 17 Page ID #:19
`
`
`eeeeeae
`DefaultZoneSpawnVolumeFloors;
`efree eeeeel
`=DefaultSpawnVolumeFloors;
`
`OeeeeeneEee
`DefaultZoneSpawnVolumeF LoorTags;
`Ceeeee eae
`=DefaultSpawnVolumeFloorTags;
`aa a cag)ereda=)aeeeea
`
`
`radeae0aoe NPCSpawnEntriesContainerObject;
`TArray<class ANPCZoneVolume*>
`LinkedZoneVolumes ;
`are re PtereeRe a
`com)ereeT ed
`aeeaean aeeenseeartee
`
`peureneneeerLRRoteMh stasheterCeeteestamLecce
`
`
`MaxNumberSpawnZoneRandomPointChecks ;
`as
`SS MaxNumberVa lidSpawnDataChecks ;
`MinDesiredNumberOfMPc;
`a semegtiheehee)leeraLee
`AbsoluteMaxNumberOfMPC ;
`ee ee erTigiee
`EWi-ePaRaeeeelelee
`eons 0019.90)1oe1 ol
`StructureDistanceFromSpawnPoint ;
`ce —™CheckStructureDistance;
`
`ae
`
`// ES
`// ScriptStruct ShooterGame.NPCZoneManager .LinkedZoneSpawnVolumeEntry
`
`struct FNpcSpawnVolumeData
`struct| FLinkedZoneSpawnVolumeEntry
`i
`f
`LinkedZoneSpawnVolume;
`class ANPCZoneSpawnVolume*
`ra PerreseLenaae
`*NpcSpawnVolume ;
`ZoneSpawnVolumeFloors;
`TArray<class AActor*>
`
`TArray<ciessAActor*=SpawnlumeFloors;
`TArray<struct FName>
`ZoneSpawnVolumeF loorTags;
`Seec}eTLOMA(1alMele]alFF|oii
`float
`USee
`ace’ 2-301161
`ieeesteeadle
`UnknownDatae@a[@x4 ];
`Pieegaeste adgel
`UnknownDatae@e[ a4];
`
`// ScriptStruct SG.NpcSpawnVolumeData
`
`ie
`
`hi
`
`ee ai eee
`ee eee ere herroeee
`
`es
`EeiythofEmpires
`
`f/f ScriptStruct ShooterGame. PrimalGameData.NPCSpawnLimit
`ff ScriptStruct $G.NPCSpawnLimit
`
`FNPCSpawnLimit
`
`struct)
`isa adel ee
`i
`i
`class UClass* Geneenmeee<=5Suerot 1-9Lae SePCTemplateClass ;
`
`class FString
`NPCClassString;
`pee
`Percentage;
`float
`MaxPercentageOfDesiredNumToAllow;————— 335. —O™
`Scatrt atele
`UnknownData@e@ [G4];
`ieeesteeadle
`UnknownDatae@a[@x4 ];
`
`

`

`a
`
`caela eeeee
`if eeee re
`struct FVector
`
`AdjustedLocation;
`Expectedlocatian;
`
`struct FRotator oeraneeeeLeeee
`AdjustedRotation;
`ne! casie:Latet
`bool
`ee
`
`aeathAtte|re] 1;
`bSnapped;
`bool
`ieeeeeLele Madlela Ue tareProne)2)oe
`
`bDisableEncroachmentCheck;—__
`bool
`class ASGStructure*
`bIsWaterGrounded;
`_—— ParentStructure;
`unsigned char
`UnknownDatadeal[éx1];
`____—= ReplaceStructure;
`aria
`Teiead elen ie
`MySnapToIndex;
`aria
`PreventCheckVolume;
`TheirSnapToIndex;
`CreateOnStructure;
`unsigned char
`UnknownDatae@1[@x4];
`faa eae tons]ee
`FloorHitActor;
`PlatformCharacter;
`class APrimalStructure*
`ParentStructure;-————
`class APrimalStructure*
`meleewetatsaolacrTehae
`class APrimalStructure*
`ReplacesStructure;——
`fae)
`AttachToPawn;
`Seed
`AttachToBone;———
`class APrimalDinoCharacter*
`DinoCharacter;——_
`
`i (
`
`0) seeeeeesse0seesees0sssesssssesssssess5 22 seesssseesssssees5555552===5
`
`if
`aythofEmpires
`f/f ScriptStruct ShooterGame. PrimalDinoCharacter.PrimalSaddleStructure
`f/f ScriptStruct $6G.PlatformStructure
`Eas FPlatformStructure
`struct FVector
`tee ca
`DinoRelativeLocation; ——--@————_
`Rha)aciaa med
`struct FRotator
`
`DinoRelativeRotation;— —\————al struct FVector —wRelativeLocation;
`struct FName
`struct FRotator
`BoneName ;—
`Re lativeRotation;
`aaaone lt
`class APrimalStructure*
`=BoneName >
`a
`
`struct| FPrimalSaddleStructure
`if
`
`
`
`ti
`
`hi
`
`nie a ne he heroines
`
`rene
`
`ed
`mythofEmpires
`ela) cygo Tele| eTco Pet|
`ie pel 2) cya To)
`
`struct FPlacementData
`t
`
`a
`
`class ASGStructure*
`seeoa
`Beerecielaa erearae
`class Peeta
`a
`Serees)yaaaaed
`saoe
`
`—
`bool
`eeeLas|
`|an
`
`7
`
`7
`
`eee5
`=
`~“bIgnoreCheckObject
`UnknownData®@1[ x7 ];
`
`:
`
`Empargs
`7
`ced a Eeeeeeeea Document 1-1 Hileg 42/09/2 b
`ata eeceve
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 14 of 17 Page ID #:20
`crip
`
`struct)
`{
`
`FItemCraftQueueEntry
`
`struct FiltemNetID
`irks
`bool
`bool
`unsigned char
`pees
`pees
`
`tl
`Oa re
`COEDasOo
`—__
`[ou tet
`bIgnoreInventoryRequirement;
`UnknownData@@[@x2 ];
`RepairPercentage;
`Litey-WAedoleaead
`
`aaaregaebemeTe
`t
`fale cle
`struct Fouid
`eins
`float ————_
`pees
`Lalere]
`TEnumAsByte<EItemQuality>
`
`ie
`
`Qi) s22=2eee0202=2252000=22=5552===-
`
`ItemTemplate;
`SU queld 5
`Quantity;
`Stee=2=
`TotalRemainingCraftTime;
`-—*bIsRepair : 1;
`UseRemoveltemQuality;
`
`7
`
`

`

`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 15 of 17 Page ID #:21
`ScriptStruct ShooterGame.PrimalGanclata. NPoSpannEntry
`FNPCSpawnData
`eet =2
`
`FNPCSpawnEntry
`
`FString
`UClass*>
`alaed
`ale
`aelaared
`gee Peatte fagegtdne}a
`aes
`a9 ea
`a3
`TArray<
`aa|e
`ara9
`ra3
`
`aaaes
`
`sie
`ta
`
`AnEntryName;
`NPCsToSpawn;
`NPCsToSpawnStrings;
`NPCRandomSpawnClassWeights ;
`NPCsSpawnOffsets ;
`NPCsToSpawnPercentageChance;
`afm gy asOet
`NPCMaxLeveloffset;
`NPCMinLevelMultiplier;
`NPCMaxLevelMultiplier;
`bAddLeveloffsetBeforeMultiplier
`bForcePreventSpawn0n0cean
`1;
`UnknownData@e[ x7];
`NPCOverrideLevel;
`ExtentCheck;
`ilealeyeete
`Seanea
`
`criptStruct ShooterGame.PrimalStructureSnapSettings.PrimalStructureSnapPoint
`
`etl esea lala as
`FName
`ota at
`FRotator
`FRotator
`
`UnknownData@e@[ x3];
`
`eA|e kph
`SnapPointDescription ;
`BindPointLocOffset;
`PointLocOffset;
`BindPointRotOffset;
`PointRotOffset;
`CanBindType;
`PointComparisonExtraRotOffset;
`ahaTe ee)eR ile
`CanBindTypeGroup;
`are Tel ae) ee
`ExcludeBindType;
`bBindPointTo
`il?
`if
`bHighPriorityAttachTePoint
`bBindPointFrom
`faste) eRe eetWma wThmet=Leco
`bBestBindPoint
`ay:\m= Taleo) ber] Tod eyDta 1;
`bAttachToDisableVisibilityCheck
`i
`lar lsatne hea)
`ai
`
`bInvalidForStructureLinking:1; bIgnoreCheckObject=1;
`
`bSnapForceNoGroundRequirement:1; bIgnoreCreateOnGroundwhenBinded
`Seti) RCHORWMwyaeee
`bSnapTolInvertYawhWhenFlipped
`ip
`bPorthole
`als
`bMeshOffsetUpdateSnapLocation:1;
`bSnapForceAllowPlacementAtOtherActorLocation
`UnknownDatage[@x2];
`ToPointSnapTypeF lags ;
`ToPointSnapTypeExcludeF lags ;
`ETT]e) sera heypea clea es
`
`eT as
`Pee
`TArray<
`
`Pe
`Paes
`ees
`Pares
`Pe
`reiae4
`ares
`Pee
`TArray<
`TArray<
`oFUae
`oer
`
`a
`FString>
`FString>
`
`criptStruct 56.BindPointInfo
`artes tance
`
`SpawnDataName ;
`NpcTemplateClasses;
`NpcSpawnGroupMinNum;
`NpcSpawnGroupMaxNum;
`NpcSpawnGroupDistance;
`UnkRpwnDatadel[ ax4] ;
`sedlimnee
`NpcMinLeveloffset;
`NpcMaxLevelOffset ;
`NpcOverrideLevel;
`NpcMinQualityCorrection;
`NpcMaxQualityCorrection;
`MinDistanceToPlayer ;
`MaxDistanceToPlayer ;
`Plated ect TeEa eteLe
`NpcOverrideAllowSlleep;
`NpcStartSleepTime;
`NpcEndSleepTime;
`
`1
`1;
`
`

`

`DamageMultiplier;
`PaO Teereere toe
`DamageHarvestAdditionalEffectiveness;
`DamageDurabilityConsumptionMultiplier;
`eM elWate iatheen iP
`UnknownDatae@eal[ x7J;
`Etta
`HarvestDamageFXOverride;
`
`UDamageType
`
`DropWrapperiId;
`DropWrapperFactor ;
`DamageMultilier;
`ExploitQuantityMultilier;
`OTEwale
`
`Oe Vente) ee tee
`
`leg E-ts4
`
`BaseResourceRequirement ;
`Wa atera) OE Bee5) se
`ResourceltemType;
`bCraftingRequireExactResourceType;
`UnknownData@1[ x3];
`ForceMultipleResourceTypesRequirement ;
`
`tel ds eha tee ret the
`
`Me peatet
`
`ee
`
`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 16 of 17 Page ID #:22
`
`/ ScriptStruct ShooterGame.Damagetaives fad go 2) a ea enML -| Cord bo8ea
`age
`FDamageExploitEntry
`Beyeae
`
`oyato eld
`
`ScriptStruct ShooterGame.PrimalItem.CropItemPhaseData
`FCropitemPhaseDat
`
`Losaooodoh
`
`NextStageFertilizerCacheThreshold;
`UnknownDatage@[ Ox] ;
`StageStaticMesh;
`
`ee) ee) pe)
`
`UStaticMesh
`
`er eto telate
`UnknownDatade[Bx4] ;
`ResourceltemType;
`bConsumesDurable
`UnknownData@1[ 8x7 ];
`
`1;
`
`yarea dren ed
`StageStartScale;
`StageEndScale;
`UnknownDatade[ex4];
`
`

`

`Case 2:21-cv-09552-CAS-SK Document 1-1 Filed 12/09/21 Page 17 of 17 Page ID #:23
`
`Inside the Myth of Empires binary, there are references to “Primal” Mod GameData - “Primal” being specific to ARK & ATLAS (e.g. PrimalGameData, UPrimalItem,
`APrimalCharacter, APrimalDinoCharacter, PrimalArmor, APrimalStructure, etc…)
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket