Imagine there's a game image here
derekries / arkpy Goto Github PK
View Code? Open in Web Editor NEWWork in Progress. Reverse Engineering the file formats for Ark: Survival Evolved. Read/Write with python.
License: MIT License
Work in Progress. Reverse Engineering the file formats for Ark: Survival Evolved. Read/Write with python.
License: MIT License
Imagine there's a game image here
Arkpy was working fine, but now arkpy give me back some profiles empty.
{'Steam_Name': u'', 'Steam_ID': '00000000000000000', 'Character_Name': u''}
Could it be due to the last update?
Can you help me?
Thank you very much.
Use pytest to write some tests for all primitive property types, structs, and File reader/writers.
The header size is being written as 0.
Would be nice to include a wrapper to parse and create Tribe Log entries.
When a class in mentioned in the docs it should be made into a link to that classes API documentation
not sure where else to post this so adding this any assistance is greatly appreciated thank you!
I’m wanting to open arktribe files from ASA which is probably the reason it’s not working but this one of the errors I keep getting before it even loads the file.
Should I be running this in python 2?
Is that possible ? Sorry I’m new at this !
(venv) G:\Downloads\arkpy-master\arkpy-master>python example2.py
Traceback (most recent call last):
File "G:\Downloads\arkpy-master\arkpy-master\example2.py", line 1, in
from arkpy import ark, utils
File "G:\Downloads\arkpy-master\arkpy-master\arkpy\ark.py", line 8, in
import arktypes
ModuleNotFoundError: No module named 'arktypes'
(venv) G:\Downloads\arkpy-master\arkpy-master>pip install arktypes
ERROR: Could not find a version that satisfies the requirement arktypes (from versions: none)
ERROR: No matching distribution found for arktypes
ArkCharacterSetting was initially written before the file types were fully understood, and before the property types were written.
Need to refactor ArkCharacterSetting to use the PropertyTypes like ArkProfile and ArkTribe
At the moment have to update the setup.py, index.md, and readme.md to reflect the version number.
I'm encountering the following error when attempting to read in .arktribe files.
OverflowError: Python int too large to convert to C long
Some have issues however, the majority (83%) of the .arktribe files I've run worked fine.
I can reproduce this issue with a script as simple as this. I have also attached some examples of .arktribe files that encounter this issue.
from arkpy import ark, utils
def main():
file_path = 'Fails/1115390102.arktribe'
tribe = ark.ArkTribe(file_path)
if __name__ == '__main__':
main()
Full error traceback below:
Traceback (most recent call last): File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\tribetest.py", line 9, in <module> main() File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\tribetest.py", line 6, in main tribe = ark.ArkTribe(file_path) File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\ark.py", line 416, in __init__ self._load_from_stream(file_path) File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\ark.py", line 433, in _load_from_stream struct = arktypes.load_struct(stream) File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\arktypes.py", line 28, in load_struct struct = STRUCTS.get(name, BaseStruct)(stream=stream) File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\arktypes.py", line 895, in __init__ self.load_and_set_next_property(stream) File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\arktypes.py", line 120, in load_and_set_next_property name, prop_type, value = load_property(stream) File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\arktypes.py", line 41, in load_property return (name, prop_type, PROPERTIES[prop_type](stream=stream)) File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\arktypes.py", line 219, in __init__ self.value = stream.readNullTerminatedString() File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\binary.py", line 63, in readNullTerminatedString s = self.unpack(str(length - 1) + 's', length - 1) File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\binary.py", line 194, in unpack return unpack(fmt, self.readBytes(length))[0] File "C:\Users\user\Desktop\codingprojects\arktribelogproject\arkpy-master\arkpy-master\arkpy\binary.py", line 22, in readBytes return self.base_stream.read(length) OverflowError: Python int too large to convert to C long
because stream.readNullTerminatedString doesn't read unicode.
Traceback (most recent call last):
File "D:\arkprofile.py", line 5, in
profile = ArkProfile(file_path)
File "build\bdist.win32\egg\arkpy\ark.py", line 329, in init
File "build\bdist.win32\egg\arkpy\arktypes.py", line 28, in load_struct
File "build\bdist.win32\egg\arkpy\arktypes.py", line 659, in init
File "build\bdist.win32\egg\arkpy\arktypes.py", line 120, in load_and_set_next_property
File "build\bdist.win32\egg\arkpy\arktypes.py", line 39, in load_property
File "build\bdist.win32\egg\arkpy\arktypes.py", line 28, in load_struct
File "build\bdist.win32\egg\arkpy\arktypes.py", line 740, in init
File "build\bdist.win32\egg\arkpy\arktypes.py", line 120, in load_and_set_next_property
File "build\bdist.win32\egg\arkpy\arktypes.py", line 41, in load_property
File "build\bdist.win32\egg\arkpy\arktypes.py", line 219, in init
File "build\bdist.win32\egg\arkpy\binary.py", line 63, in readNullTerminatedString
File "build\bdist.win32\egg\arkpy\binary.py", line 194, in unpack
File "build\bdist.win32\egg\arkpy\binary.py", line 22, in readBytes OverflowError: Python int too large to convert to C long
Need to find out the default rgba float values for each BodyColor (Skin, Hair, Eyes), and set those as the default values in the configstruct and exclude them when default.
Going to include the specifications for the .arkprofile, .arktribe, and .arkcharactersetting file formats among the docs.
Reading and writing of files is working, BUT the SinglePlayer game isn't loading these files correctly. I'm not sure exactly what the problem is because even after deleting both LocalPlayer.arkprofile and LocalPlayer.profilebak, the game still ends up loading an older character. It's like if the game can't find a file or the file isn't valid (and the generated files aren't valid somehow), then the game looks in some hidden cache, the world file, or some other location to pull out a character.
Need to set up the map/dict for human readable strings <--> Entity ID/Paths.
Example:
'campfire' <-> 'BlueprintGeneratedClass /Game/PrimalEarth/CoreBlueprints/Items/Structures/Misc/PrimalItemStructure_Campfire.PrimalItemStructure_Campfire_C'
Should shift examples into an examples directory like the tests directory, utilizing a context.py file hack to give access to the sibling package arkpy.
The Bulk Reader test exposed a bug in trying to read files where the StrProperty value was unicode. StrProperty needs to be able to read and write unicode values.
Need to investigate the ID Generation in game used for TribeID and PlayerDataID. At the moment I think just using a 9-digit integer will work.
�MembersRankGroups [ByteProperty] is missing from the default data included among the TribeData struct. Also, ArrayProperty has no support for reading ByteProperty values (char).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.