Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Genshin Impact Private Server

Newbie Spellweaver
Joined
Oct 6, 2013
Messages
21
Reaction score
3


rangerned - Genshin Impact Private Server - RaGEZONE Forums

As far as i know it can't be ran offline yet.
 
Last edited:
Newbie Spellweaver
Joined
Oct 25, 2020
Messages
5
Reaction score
0
It possible. Need to activate the debug menu. But in offline mode can only explore an empty world. Monsters and other stuff on the map does not work.
Does this mean it need to be populated by a server running separately from the client to put it simply?
 
Newbie Spellweaver
Joined
Jan 15, 2021
Messages
14
Reaction score
1
This is very cool!

Hoping to see a single player / server come out soon!!!
Good luck everyone, this is truly amazing!
 
Newbie Spellweaver
Joined
Oct 6, 2013
Messages
21
Reaction score
3
Apparently leaving the discord link of a private project in an open forum made skilled people in the discord flee to an even more private discord, along with keeping skilled people away.

Also for people pushing for a date
>No Man's Sky happened
>Cyberpunk 2077 happened
>People still want to know a set date for projets that are written on stone
When you have expectations, you are setting yourself up for disappointment.

 
Last edited:
Initiate Mage
Joined
Jul 2, 2020
Messages
3
Reaction score
0
It possible. Need to activate the debug menu. But in offline mode can only explore an empty world. Monsters and other stuff on the map does not work.

Can you tell me how to do this? In boot.config I set 1, but I do not know how to remove the error connecting to the server.
 
Initiate Mage
Joined
Feb 1, 2021
Messages
1
Reaction score
0
Apparently leaving the discord link of a private project in an open forum made skilled people in the discord flee to an even more private discord, along with keeping skilled people away.Also for people pushing for a date>No Man's Sky happened>Cyberpunk 2077 happened>People still want to know a set date for projets that are written on stoneWhen you have expectations, you are setting yourself up for disappointment.
Just wanted to ask a quick question, when server is complete is it gonna be open source or at least compiled server downloadable publiclyI am interested in private server so that i can host it myself on my pc so i can play the game without internet connection or just host it on my LAN so i can play the game from any any of my computers without having to connect to internet and actual genshin impact serverIf server is gonna be privatley hosted by someone working on the project then it kinda defeats the puropse for those who want to play the game offline as those of us who just want to play without connecting to internet as we wont have the files to host our own local instace
 
Newbie Spellweaver
Joined
Oct 6, 2013
Messages
21
Reaction score
3
I'm not the one calling the shots, but it'll most likely will, considering that the team is hiding from mihoyo, anyone who tries to sell it risk being sued by mihoyo, besides being an offline project as in, an individual experience
 
Initiate Mage
Joined
Feb 9, 2021
Messages
1
Reaction score
1
The only reasonable way I can think of releasing it would be in an open source way so that people can save and replicate the project before it's taken down by Mihoyo, it's happened in many games that a developer or a group of developers have created single player mods/too good mods that the company DMCA'd them instantly. I'm sure you've probably already thought about this pretty extensively but please, be smart and don't let your effort be in vein. Mihoyo is a big fish and it doesn't like mods even a bit. Anyways I wish you the best of luck guys.
 
Newbie Spellweaver
Joined
Oct 6, 2013
Messages
21
Reaction score
3
Has there been any progress?
Apparently people are siding with Mihoyo by giving them tips either directly or indirectly on how to make things more difficult, because... i dunno that's their version of helping or supporting?
rangerned - Genshin Impact Private Server - RaGEZONE Forums
 
Initiate Mage
Joined
Mar 18, 2021
Messages
1
Reaction score
0
If you can get around the cert pining of the application (possible). Then the game sends limited information to a HTTP based API over TLS. As long as the data is not encrypted in some way after that. It is complete possible to have a private server for this.Collection of URLs I've observed being used by game engine
I have also researched a lot...but I am using the earliest alpha version.. There is some progress. I want to join your project team...is there any contact information
 
Initiate Mage
Joined
Mar 21, 2021
Messages
1
Reaction score
0
i have genshin impact offline client
ZHsUtOL - Genshin Impact Private Server - RaGEZONE Forums


if anyone interested join here
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Oct 8, 2011
Messages
42
Reaction score
22
o/ hey all, Some good progress has been made by others (not my self IRL commitments); It is possible to login to the private server, but all you can do is explore, cant switch characters, use skill...etc. This is not the same as the dev/gm offline mode this is connecting to a private server.

TLDR: Still in progress, can now login to a 100% private server.
 
Initiate Mage
Joined
Jan 16, 2021
Messages
1
Reaction score
0
o/ hey all, Some good progress has been made by others (not my self IRL commitments); It is possible to login to the private server, but all you can do is explore, cant switch characters, use skill...etc. This is not the same as the dev/gm offline mode this is connecting to a private server. TLDR: Still in progress, can now login to a 100% private server.
for the client private server will it be updated monthly version? Or maybe every few months
 
Newbie Spellweaver
Joined
Oct 25, 2020
Messages
5
Reaction score
0
for the client private server will it be updated monthly version? Or maybe every few months
Woah slow down a bit there , let us just wait and see if there an actual success with the beta launch first before jumping to post production. There has been tonnes of breakthrough but it is very much mid progress , Im far from knowing all this client-server stuff but if I were to guess based on the discussion on discord , it is about 30% , maybe 40% WIP.
 
Newbie Spellweaver
Joined
Mar 25, 2021
Messages
6
Reaction score
2
Is there a way to get in touch with people who have been working on it? I have reverse engineerd the private beta client and have written server logic for http request handling as well as identified the protocol, they are using enet for communication. I was able to dump the c# definitions, so it should be possible to recover serialized packet classes etc. I also looked into bypassing the mihoyo protection driver (mhyprot2) but not succesfull yet. Let me know if you are interested to work with me and I can share my progress with you. here is a snipped of functions and offsets for asm (cbt1 client):
Code:
// Namespace: MiHoYoSDKJSON [DefaultMemberAttribute] // RVA: 0x64C20 Offset: 0x64020 public class JSONNode // TypeDefIndex: 4060 {     // Fields     [DebuggerBrowsableAttribute] // RVA: 0x62E40 Offset: 0x62240     [CompilerGeneratedAttribute] // RVA: 0x62E40 Offset: 0x62240     private bool <IsString>k__BackingField; // 0x10      // Properties     public virtual JSONNode Item { get; }     public virtual JSONNode Item { get; set; }     public virtual string Value { get; }     public virtual bool IsString { set; }     public virtual JSONArray AsArray { get; }     public virtual JSONClass AsObject { get; }      // Methods     public virtual void Add(string aKey, JSONNode aItem) { } // RVA: 0x34E7A0 Offset: 0x34DBA0     public virtual JSONNode get_Item(int aIndex) { } // RVA: 0x11C99A0 Offset: 0x11C8DA0     public virtual JSONNode get_Item(string aKey) { } // RVA: 0x11C99A0 Offset: 0x11C8DA0     public virtual void set_Item(string aKey, JSONNode value) { } // RVA: 0x34E7A0 Offset: 0x34DBA0     public virtual string get_Value() { } // RVA: 0x238FEE0 Offset: 0x238F2E0     [CompilerGeneratedAttribute] // RVA: 0x62B60 Offset: 0x61F60     public virtual void set_IsString(bool value) { } // RVA: 0xDDA110 Offset: 0xDD9510     public virtual void Add(JSONNode aItem) { } // RVA: 0x238E860 Offset: 0x238DC60     public override string ToString() { } // RVA: 0x238FDB0 Offset: 0x238F1B0     public virtual JSONArray get_AsArray() { } // RVA: 0x238FDE0 Offset: 0x238F1E0     public virtual JSONClass get_AsObject() { } // RVA: 0x238FE60 Offset: 0x238F260     public static JSONNode op_Implicit(string s) { } // RVA: 0x238FFB0 Offset: 0x238F3B0     public static string op_Implicit(JSONNode d) { } // RVA: 0x2390010 Offset: 0x238F410     public static bool op_Equality(JSONNode a, object b) { } // RVA: 0x238FF10 Offset: 0x238F310     public static bool op_Inequality(JSONNode a, object b) { } // RVA: 0x23900A0 Offset: 0x238F4A0     public override bool Equals(object obj) { } // RVA: 0x238E8C0 Offset: 0x238DCC0     public override int GetHashCode() { } // RVA: 0x1F05AE0 Offset: 0x1F04EE0     internal static string Escape(string aText) { } // RVA: 0x238E8D0 Offset: 0x238DCD0     public static JSONNode Parse(string aJSON) { } // RVA: 0x238EB10 Offset: 0x238DF10     public void .ctor() { } // RVA: 0x34E240 Offset: 0x34D640 }  // Namespace: MiHoYoSDKJSON [DefaultMemberAttribute] // RVA: 0x64C20 Offset: 0x64020 public class JSONArray : JSONNode, IEnumerable // TypeDefIndex: 4061 {     // Fields     private List<JSONNode> m_List; // 0x18      // Properties     public override JSONNode Item { get; }     public override JSONNode Item { get; set; }      // Methods     public override JSONNode get_Item(int aIndex) { } // RVA: 0x238D780 Offset: 0x238CB80     public override JSONNode get_Item(string aKey) { } // RVA: 0x238D840 Offset: 0x238CC40     public override void set_Item(string aKey, JSONNode value) { } // RVA: 0x238D8B0 Offset: 0x238CCB0     public override void Add(string aKey, JSONNode aItem) { } // RVA: 0x238D450 Offset: 0x238C850     public IEnumerator GetEnumerator() { } // RVA: 0x238D4B0 Offset: 0x238C8B0     public override string ToString() { } // RVA: 0x238D510 Offset: 0x238C910     public void .ctor() { } // RVA: 0x238D720 Offset: 0x238CB20 }  // Namespace:  [CompilerGeneratedAttribute] // RVA: 0x62B60 Offset: 0x61F60 private sealed class JSONArray.<GetEnumerator>d__14 : IEnumerator<object>, IDisposable, IEnumerator // TypeDefIndex: 4062 {     // Fields     private int <>1__state; // 0x10     private object <>2__current; // 0x18     public JSONArray <>4__this; // 0x20     private Enumerator<JSONNode> <>s__1; // 0x28     private JSONNode <N>5__2; // 0x40      // Properties     private object System.Collections.Generic.IEnumerator<System.Object>.Current { get; }     private object System.Collections.IEnumerator.Current { get; }      // Methods     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     public void .ctor(int <>1__state) { } // RVA: 0xF8E870 Offset: 0xF8DC70     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     private void System.IDisposable.Dispose() { } // RVA: 0x2392780 Offset: 0x2391B80     private bool MoveNext() { } // RVA: 0x23925A0 Offset: 0x23919A0     private void <>m__Finally1() { } // RVA: 0x23927F0 Offset: 0x2391BF0     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     private object System.Collections.Generic.IEnumerator<System.Object>.get_Current() { } // RVA: 0x398760 Offset: 0x397B60     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     private void System.Collections.IEnumerator.Reset() { } // RVA: 0x2392730 Offset: 0x2391B30     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     private object System.Collections.IEnumerator.get_Current() { } // RVA: 0x398760 Offset: 0x397B60 }  // Namespace: MiHoYoSDKJSON [DefaultMemberAttribute] // RVA: 0x64C20 Offset: 0x64020 public class JSONClass : JSONNode, IEnumerable // TypeDefIndex: 4063 {     // Fields     private Dictionary<string, JSONNode> m_Dict; // 0x18      // Properties     public override JSONNode Item { get; set; }     public override JSONNode Item { get; }      // Methods     public override JSONNode get_Item(string aKey) { } // RVA: 0x238DE70 Offset: 0x238D270     public override void set_Item(string aKey, JSONNode value) { } // RVA: 0x238DFE0 Offset: 0x238D3E0     public override JSONNode get_Item(int aIndex) { } // RVA: 0x238DF30 Offset: 0x238D330     public override void Add(string aKey, JSONNode aItem) { } // RVA: 0x238D910 Offset: 0x238CD10     public IEnumerator GetEnumerator() { } // RVA: 0x238DA50 Offset: 0x238CE50     public override string ToString() { } // RVA: 0x238DAB0 Offset: 0x238CEB0     public void .ctor() { } // RVA: 0x238DE10 Offset: 0x238D210 }  // Namespace:  [CompilerGeneratedAttribute] // RVA: 0x62B60 Offset: 0x61F60 private sealed class JSONClass.<GetEnumerator>d__18 : IEnumerator<object>, IDisposable, IEnumerator // TypeDefIndex: 4064 {     // Fields     private int <>1__state; // 0x10     private object <>2__current; // 0x18     public JSONClass <>4__this; // 0x20     private Enumerator<string, JSONNode> <>s__1; // 0x28     private KeyValuePair<string, JSONNode> <N>5__2; // 0x48      // Properties     private object System.Collections.Generic.IEnumerator<System.Object>.Current { get; }     private object System.Collections.IEnumerator.Current { get; }      // Methods     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     public void .ctor(int <>1__state) { } // RVA: 0xF8E870 Offset: 0xF8DC70     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     private void System.IDisposable.Dispose() { } // RVA: 0x2392A70 Offset: 0x2391E70     private bool MoveNext() { } // RVA: 0x2392830 Offset: 0x2391C30     private void <>m__Finally1() { } // RVA: 0x2392AE0 Offset: 0x2391EE0     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     private object System.Collections.Generic.IEnumerator<System.Object>.get_Current() { } // RVA: 0x398760 Offset: 0x397B60     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     private void System.Collections.IEnumerator.Reset() { } // RVA: 0x2392A20 Offset: 0x2391E20     [DebuggerHiddenAttribute] // RVA: 0x62B70 Offset: 0x61F70     private object System.Collections.IEnumerator.get_Current() { } // RVA: 0x398760 Offset: 0x397B60 }  // Namespace: MiHoYoSDKJSON public class JSONData : JSONNode // TypeDefIndex: 4065 {     // Fields     private string m_Data; // 0x18      // Properties     public override string Value { get; }      // Methods     public override string get_Value() { } // RVA: 0x11D4520 Offset: 0x11D3920     public void .ctor(string aData) { } // RVA: 0xF630E0 Offset: 0xF624E0     public override string ToString() { } // RVA: 0x238E090 Offset: 0x238D490 }  // Namespace: MiHoYoSDKJSON [DefaultMemberAttribute] // RVA: 0x64C20 Offset: 0x64020 internal class JSONLazyCreator : JSONNode // TypeDefIndex: 4066 {     // Fields     private JSONNode m_Node; // 0x18     private string m_Key; // 0x20      // Properties     public override JSONNode Item { get; }     public override JSONNode Item { get; set; }     public override JSONArray AsArray { get; }     public override JSONClass AsObject { get; }      // Methods     public void .ctor(JSONNode aNode) { } // RVA: 0x238E440 Offset: 0x238D840     public void .ctor(JSONNode aNode, string aKey) { } // RVA: 0x238E3F0 Offset: 0x238D7F0     private void Set(JSONNode aVal) { } // RVA: 0x238E350 Offset: 0x238D750     public override JSONNode get_Item(int aIndex) { } // RVA: 0x238E6D0 Offset: 0x238DAD0     public override JSONNode get_Item(string aKey) { } // RVA: 0x238E660 Offset: 0x238DA60     public override void set_Item(string aKey, JSONNode value) { } // RVA: 0x238E740 Offset: 0x238DB40     public override void Add(JSONNode aItem) { } // RVA: 0x238E230 Offset: 0x238D630     public override void Add(string aKey, JSONNode aItem) { } // RVA: 0x238E110 Offset: 0x238D510     public override bool Equals(object obj) { } // RVA: 0x238E340 Offset: 0x238D740     public override int GetHashCode() { } // RVA: 0x1F05AE0 Offset: 0x1F04EE0     public override string ToString() { } // RVA: 0x238E3C0 Offset: 0x238D7C0     public override JSONArray get_AsArray() { } // RVA: 0x238E480 Offset: 0x238D880     public override JSONClass get_AsObject() { } // RVA: 0x238E570 Offset: 0x238D970 }  // Namespace: MiHoYoSDKJSON public static class JSON // TypeDefIndex: 4067 {     // Methods     public static JSONNode Parse(string aJSON) { } // RVA: 0x23900C0 Offset: 0x238F4C0 }  // Namespace: MiHoYo.SDK internal class MiHoYoSDKConfig // TypeDefIndex: 4068 {     // Fields     public static string LoginUrlProd; // 0x0     public static string LoginUrlTest; // 0x8     public static string LoginUrlOverseaProd; // 0x10     public static string LoginUrlOverseaTest; // 0x18      // Methods     private static void .cctor() { } // RVA: 0x23903E0 Offset: 0x238F7E0 }  // Namespace: MiHoYo.SDK public class MiHoYoSDKConfigManager // TypeDefIndex: 4069 {     // Fields     public static string ACCOUNT_URL; // 0x0     public static MiHoYoSDKConfigManager.EnvType _env; // 0x8      // Methods     public static void SetEnv(string env) { } // RVA: 0x2390260 Offset: 0x238F660     public static void Config() { } // RVA: 0x23900D0 Offset: 0x238F4D0     private static void .cctor() { } // RVA: 0x2390360 Offset: 0x238F760 }  // Namespace:  public enum MiHoYoSDKConfigManager.EnvType // TypeDefIndex: 4070 {     // Fields     public int value__; // 0x10     public const MiHoYoSDKConfigManager.EnvType ENV_TYPE_PROD = 0; // 0x0     public const MiHoYoSDKConfigManager.EnvType ENV_TYPE_TEST = 1; // 0x0     public const MiHoYoSDKConfigManager.EnvType ENV_TYPE_OVERSEA_PROD = 2; // 0x0     public const MiHoYoSDKConfigManager.EnvType ENV_TYPE_OVERSEA_TEST = 3; // 0x0 }  // Namespace: MiHoYo.SDK public class MiHoYoSDKLoginManager : MonoBehaviour // TypeDefIndex: 4071 {     // Fields     private static float DISPATCH_CONNECT_TIMEOUT_SECOND; // 0x0     private static string _accountUrl; // 0x8     private static Action<string> _callback; // 0x10     private static MiHoYoSDKLoginManager.RequestType _requestType; // 0x18     private static string ACCOUNT_DATA_LIST_FILE; // 0x20     private static string _language; // 0x28      // Methods     private void Update() { } // RVA: 0x2392170 Offset: 0x2391570     public static void SetLocale(string language) { } // RVA: 0x2391E50 Offset: 0x2391250     public static string GetAccount() { } // RVA: 0x2390790 Offset: 0x238FB90     public static string GetAccountName() { } // RVA: 0x23904F0 Offset: 0x238F8F0     private static void SetAccount(JSONNode account) { } // RVA: 0x23918E0 Offset: 0x2390CE0     public static void Logout() { } // RVA: 0x2391210 Offset: 0x2390610     private static void ResetAccount() { } // RVA: 0x23917F0 Offset: 0x2390BF0     public static void Login(Action<string> callback) { } // RVA: 0x2390F60 Offset: 0x2390360     private static void LoginByCheckToken(string uid, string token, Action<string> callback) { } // RVA: 0x23908A0 Offset: 0x238FCA0     public static void LoginByPassword(string account, string password, Action<string> callback) { } // RVA: 0x2390C00 Offset: 0x2390000     private IEnumerator ConnectAccountServer(string accountUrl, Action<string> callback) { } // RVA: 0x2390470 Offset: 0x238F870     private void OnConnectAccountServer(string retJsonString, Action<string> callback) { } // RVA: 0x2391340 Offset: 0x2390740     private bool TryGetRetCodeFromJsonString(string jsonString, out JSONNode retJson, out string errorMsg, out int retCode) { } // RVA: 0x2391EB0 Offset: 0x23912B0     public void .ctor() { } // RVA: 0x3617B0 Offset: 0x360BB0     private static void .cctor() { } // RVA: 0x2392300 Offset: 0x2391700 }  // Namespace:  private enum MiHoYoSDKLoginManager.RequestType // TypeDefIndex: 4072 {     // Fields     public int value__; // 0x10     public const MiHoYoSDKLoginManager.RequestType DEFAULT = 0; // 0x0     public const MiHoYoSDKLoginManager.RequestType LOGIN_BY_PASSWORD = 1; // 0x0     public const MiHoYoSDKLoginManager.RequestType TOKEN_CHECK = 2; // 0x0 }
Have you been able to do some follow up to this? We also recently cracked the xor packet decryption but are now kind of stuck with the sheer amount of traffic we need to analyze... We havent yet looked into the UserAssembly that deep to possibly decrypt the base64 data returned by the server maybe you can help there? Or is there anyone else here who has more insight?



o/ hey all, Some good progress has been made by others (not my self IRL commitments); It is possible to login to the private server, but all you can do is explore, cant switch characters, use skill...etc. This is not the same as the dev/gm offline mode this is connecting to a private server. TLDR: Still in progress, can now login to a 100% private server.
any idea if me and two others could join in that discord? were sitting on reversing the 1.4 client atm and have found the xor key decryption. see post above :=)
 
Initiate Mage
Joined
Feb 15, 2021
Messages
3
Reaction score
0
Hello everybody How are you doing with the server? When to wait for release?)
 
Back
Top