Campofinale
Campofinale is a experimental server implementation for a certain factory building game.
Current Features
- Login
- Character switch
- Team switch
- Scene switch
- Save data with MongoDB
- Combat system
TODO
- Android Support
- Mission System
- Working buffs
Installation Steps (Windows)
-
Install:
- .NET SDK (8.0.12 is recommended)
- MongoDB
- Fiddler Classic OR mitmproxy
- When installing Fiddler Classic, make sure to enable "Decrypt HTTPS traffic" and install the certificate!
- You have to enable two features via Tools (top left in menubar) -> Options -> HTTPS -> Check "Capture HTTPS CONNECTs" and "Decrypt HTTPS traffic". You can also re-install the certificate via Actions (right next to "Capture HTTPS CONNECTs") -> Trust Root Certificate and press "Yes"
-
Download the precompiled build or build it by yourself
-
Put the
Json,TableCfgandDynamicAssetsfolders inside theCampofinale.exefolder (you can download a copy here) -
Run the server (
Campofinale.exe) -
Overwrite the
C:\Users\<YourUserName>\Documents\Fiddler2\Scripts\CustomRules.jsscript (or backup the default one and create a new file with the same name) with the following script:- You can also run Fiddler Classic, go to
Rules -> Customize Rules(CTRL + R) and save it, or by selecting the FiddlerScript tab
import System; import System.Windows.Forms; import Fiddler; import System.Text.RegularExpressions; class Handlers { static function OnBeforeRequest(oS: Session) { if( oS.fullUrl.Contains("discord") || oS.fullUrl.Contains("steam") || oS.fullUrl.Contains("git") || oS.fullUrl.Contains("yandex") //you can add any addresses if some sites don't work ) { oS.Ignore(); } if (!oS.oRequest.headers.HTTPMethod.Equals("CONNECT")) { if(oS.fullUrl.Contains("gryphline.com") || oS.fullUrl.Contains("hg-cdn.com")) { oS.fullUrl = oS.fullUrl.Replace("https://", "http://"); oS.host = "localhost"; // place another ip if you need oS.port = 5000; //and port } } } };By Xannix Or you can use the mitmproxy command:
mitmproxy -s ak.pyak.py:
import mitmproxy from mitmproxy import ctx, http class EndFieldModifier: def requestheaders(self,flow: mitmproxy.http.HTTPFlow): if "gryphline.com" in flow.request.host or "hg-cdn.com" in flow.request.host: if flow.request.method=="CONNECT": return flow.request.scheme="http" flow.request.cookies.update({ "OriginalHost":flow.request.host, "OriginalUrl":flow.request.url }) flow.request.host="localhost" flow.request.port=5000 ctx.log.info("URL:"+flow.request.url) addons=[ EndFieldModifier() ] - You can also run Fiddler Classic, go to
-
Run Fiddler Classic - it should start with the new Custom Rules script (you can check it in the FiddlerScript tab)
-
Run the Game Client and start to play! (Note: Only OS client is supported for now)
-
You must create an account using
account create (username)in the server console, then login in the game with an email like(username)@randomemailformathere.whatyouwant. There is no password so you can input a random password for its field.
Additional Information
You can find the description of all server commands here.
The list of all scenes is here.
The list of all enemies is here.
The list of all characters is here.
The list of all items is here.
If you want to open the in-game console, go to Settings -> Platform & Account -> Account Settings (Access Account button). To view available commands, type help.
Discord for support
If you want to discuss, ask for support or help with this project, join our Discord Server!
Note
This project is developed independently, and all rights to the original game assets and intellectual property belong to their respective owners.