Creating a manifest file: Difference between revisions

From OuroDev
No edit summary
 
Line 1: Line 1:
__TOC__
__TOC__
Whichever client you are using, whether its CreamSoda or Tequila, they will come with a manifest file. This file (an XML file) will explain to the client where to go to download files and where to place those files. It will also tell the client how to launch a game client for specific game servers. [[Example_Manifest.xml|An example manifest can be found here]].
Whichever client you are using, whether its CreamSoda or Tequila, they will come with a manifest file. This file (an XML file) will explain to the client where to go to download files and where to place those files. It will also tell the client how to launch a game client for specific game servers. [[Example_Manifest.xml|An example manifest can be found here]].


While there are other components, the two main sections in a manifest are:  
While there are other components, the two main sections in a manifest are:  
* Profiles
* File List


== Profiles ==
*Profiles
*File List
 
==Profiles==
The profile section is made up of "launch" entries and each entry appears in your client as a server to which you can try and connect. Each "launch" entry contains the command instructions necessary to launch the game client exactly as it would if you created a shortcut on your desktop. It contains the following parameters:
The profile section is made up of "launch" entries and each entry appears in your client as a server to which you can try and connect. Each "launch" entry contains the command instructions necessary to launch the game client exactly as it would if you created a shortcut on your desktop. It contains the following parameters:
* exec - the file to execute. This has to appear later as a file in the file list section.
 
* order - the position the server appears in the list of clients.  Starts at 0.
*exec - the file to execute. This has to appear later as a file in the file list section.
* website - a url to display when the server is selected.
*order - the position the server appears in the list of clients.  Starts at 0.
* params - the attributes that will be appended to the exec when run. Typically this would include the address of the authentication server and an patch directory.
*website - a url to display when the server is selected.
*params - the attributes that will be appended to the exec when run. Typically this would include the address of the authentication server and an patch directory.


Example:
Example:
Line 20: Line 23:
==File List==
==File List==
The file list section contains a series of file references. Each "file" entry contains the information necessary to download, correctly place and validate the file in questions. Each "file" entry also surrounds one or more "url" entires from where the file could be downloaded. Each "file" entry contains the following parameters:
The file list section contains a series of file references. Each "file" entry contains the information necessary to download, correctly place and validate the file in questions. Each "file" entry also surrounds one or more "url" entires from where the file could be downloaded. Each "file" entry contains the following parameters:
* name - the name and location for the file relative to the CreamSoda or Tequila installation.
 
* md5 - the checksum used to validate the downloaded file. For compatibility across different OS please ensure all checksums are in lowercase.
*name - the name and location for the file relative to the CreamSoda or Tequila installation.
* size - size in bytes used to validate the downloaded file.
*md5 - the checksum used to validate the downloaded file. For compatibility across different OS please ensure all checksums are in lowercase.
* url - One or more URLs where CreamSoda or Tequila will actually try to download the files from.  It's recommended that you use URLs from the [[Client_Mirror_Distribution_Project|Client Mirror Distribution Project]].
*size - size in bytes used to validate the downloaded file.
*url - One or more URLs where CreamSoda or Tequila will actually try to download the files from.  It's recommended that you use URLs from the [[Client_Mirror_Distribution_Project|Client Mirror Distribution Project]].


Example:
Example:
   <nowiki><file name="Ouroboros.exe" md5="415755240dcce033c27f464724cba3f0" size="9681408">
   <nowiki><file name="Ouroboros.exe" md5="415755240dcce033c27f464724cba3f0" size="9681408">
  <url>https://brute.coh.network/OuroDev/v2i1/Ouroboros.exe</url>
  <url>https://brute.coh.network/OuroDev/v2i1/Ouroboros.exe</url>
  <url>http://cityofhero.es/OuroDev/v2i1/Ouroboros.exe</url>
  <url>http://cityofhero.es/OuroDev/v2i1/Ouroboros.exe</url>
  </file></nowiki>
  </file></nowiki>


  Note: Best practice is to only put HTTPS sources in your manifest file, in order to have secure connections for all of your players when they are downloading files through CreamSoda or Tequila.  Most of the manifests out there right now use HTTP for many of their file URLs.  The Island Rum launcher for Linux apparently has problems using HTTPS, but this is something that should be fixed in that launcher at some point rather than encouraging use of insecure links.
  Note: Best practice is to only put HTTPS sources in your manifest file, in order to have secure connections for all of your players when they are downloading files through CreamSoda or Tequila.  Most of the manifests out there right now use HTTP for many of their file URLs.  The Island Rum launcher for Linux apparently has problems using HTTPS, but this is something that should be fixed in that launcher at some point rather than encouraging use of insecure links.


== Other Sections ==
==Other Sections==
* Launchers: This is where information about the launcher file itself is.  You can either leave this as-is in the [[Example_Manifest.xml|example manifest]], or you can save the launcher's executable to your own web server and use your own url here if you want your players to get it from your server.
 
* Forums: You can specify any forums that might be associated with your server, though it is unclear how to access those forums through the Cream Soda launcher.
*Launchers: This is where information about the launcher file itself is.  You can either leave this as-is in the [[Example_Manifest.xml|example manifest]], or you can save the launcher's executable to your own web server and use your own url here if you want your players to get it from your server.
* Webpage: Changing the link in this section will change which website is loaded when Cream Soda first loads up, before any of the servers are selected.
*Forums: You can specify any forums that might be associated with your server, though it is unclear how to access those forums through the Cream Soda launcher.
*Webpage: Changing the link in this section will change which website is loaded when Cream Soda first loads up, before any of the servers are selected.


== How to Add Your Server ==
==How to Add Your Server==
If you are planning on keeping your server in line with the Ouroboros server then adding your own server to a manifest file is relatively simple. Use an existing manifest as a starting point, either the example linked above or one provided by a server you play on.
If you are planning on keeping your server in line with the Ouroboros server then adding your own server to a manifest file is relatively simple. Use an existing manifest as a starting point, either the example linked above or one provided by a server you play on.
Then you should work out the commands to launch a client and connect to your server. So if you launch a client by typing
Then you should work out the commands to launch a client and connect to your server. So if you launch a client by typing
Line 46: Line 51:
   <nowiki><launch exec="Ouroboros.exe" order="2" website="https://yourserver.com/homepage" params="-patchDir ouro -auth 1.2.3.4">YOUR SERVER NAME</launch></nowiki>
   <nowiki><launch exec="Ouroboros.exe" order="2" website="https://yourserver.com/homepage" params="-patchDir ouro -auth 1.2.3.4">YOUR SERVER NAME</launch></nowiki>


== Advanced ==
==Advanced==
If you plan on making your own modifications, either to code or textures and models, you will need to host the files yourself for your players to download from your own web server, if you have one set up (such as for setting up the [[Account_Portal|Account Portal]]).  You can then get CreamSoda or Tequila to download all of the files for you and copy the downloaded files into your own patch directory. A more detailed description can be found in the [[Server Custom Login Screen|Server Custom Login Screen Tutorial]] in the Corp Wiki.
If you plan on making your own modifications, either to code or textures and models, you will need to host the files yourself for your players to download from your own web server, if you have one set up (such as for setting up the [[Account_Portal|Account Portal]]).  You can then get CreamSoda or Tequila to download all of the files for you and copy the downloaded files into your own patch directory. A more detailed description can be found in the [[Server Custom Login Screen|Server Custom Login Screen Tutorial]] in the Corp Wiki.


== Create Manifest by Script ==
==Create Manifest by Script==


If you want to create a manifest from scratch without the hard work, this script can do it for you, it creates links to your own server file store for your users to download.
If you want to create a manifest from scratch without the hard work, this script can do it for you, it creates links to your own server file store for your users to download.


<nowiki>https://git.ourodev.com/Callista/Batch_file_server_tools/src/branch/master/makemanifest.bat</nowiki>
https://git.ourodev.com/community/Batch_file_server_tools/-/blob/master/makemanifest.bat


It will ask for several pieces of information to allow it to create the file for you, these are:
It will ask for several pieces of information to allow it to create the file for you, these are:


* The location of the client folder you want to create a manifest for (e.g. c:\client)
*The location of the client folder you want to create a manifest for (e.g. c:\client)
* The name of the executable that you will use (e.g. Ouroboros.exe)
*The name of the executable that you will use (e.g. Ouroboros.exe)
* The name of the patchdir that you use for your serup (e.g. Ouro)
*The name of the patchdir that you use for your serup (e.g. Ouro)
* The IP/URL for your Auth Server to which your clients connect (e.g. 123.123.123.123)
*The IP/URL for your Auth Server to which your clients connect (e.g. 123.123.123.123)
* The IP/URL for your patch server (e.g. http://myserver/patch)
*The IP/URL for your patch server (e.g. http://myserver/patch)
* The IP/URL for the page to appear on the launcher (e.g. http://myserver/homepage)
*The IP/URL for the page to appear on the launcher (e.g. http://myserver/homepage)
* The name you want your server to appear as on the launcher (e.g. My Shiny New Server)
*The name you want your server to appear as on the launcher (e.g. My Shiny New Server)


It will then generate a manifest.xml file in the location from where you ran the batch file.
It will then generate a manifest.xml file in the location from where you ran the batch file.

Latest revision as of 17:51, 30 August 2021

Whichever client you are using, whether its CreamSoda or Tequila, they will come with a manifest file. This file (an XML file) will explain to the client where to go to download files and where to place those files. It will also tell the client how to launch a game client for specific game servers. An example manifest can be found here.

While there are other components, the two main sections in a manifest are:

  • Profiles
  • File List

Profiles

The profile section is made up of "launch" entries and each entry appears in your client as a server to which you can try and connect. Each "launch" entry contains the command instructions necessary to launch the game client exactly as it would if you created a shortcut on your desktop. It contains the following parameters:

  • exec - the file to execute. This has to appear later as a file in the file list section.
  • order - the position the server appears in the list of clients. Starts at 0.
  • website - a url to display when the server is selected.
  • params - the attributes that will be appended to the exec when run. Typically this would include the address of the authentication server and an patch directory.

Example:

 <launch exec="Ouroboros.exe" order="1" website="https://www.thunderspygaming.net/" params="-patchDir ouro -auth 167.114.172.239">/coxg/ (v2:i1)</launch>

Note that if you want to, you can remove all of the other servers and only put your own server in the list, if you want the launcher to focus on just your own server when your manifest file is loaded.

File List

The file list section contains a series of file references. Each "file" entry contains the information necessary to download, correctly place and validate the file in questions. Each "file" entry also surrounds one or more "url" entires from where the file could be downloaded. Each "file" entry contains the following parameters:

  • name - the name and location for the file relative to the CreamSoda or Tequila installation.
  • md5 - the checksum used to validate the downloaded file. For compatibility across different OS please ensure all checksums are in lowercase.
  • size - size in bytes used to validate the downloaded file.
  • url - One or more URLs where CreamSoda or Tequila will actually try to download the files from. It's recommended that you use URLs from the Client Mirror Distribution Project.

Example:

 <file name="Ouroboros.exe" md5="415755240dcce033c27f464724cba3f0" size="9681408">
   	<url>https://brute.coh.network/OuroDev/v2i1/Ouroboros.exe</url>
   	<url>http://cityofhero.es/OuroDev/v2i1/Ouroboros.exe</url>
   </file>
Note: Best practice is to only put HTTPS sources in your manifest file, in order to have secure connections for all of your players when they are downloading files through CreamSoda or Tequila.  Most of the manifests out there right now use HTTP for many of their file URLs.  The Island Rum launcher for Linux apparently has problems using HTTPS, but this is something that should be fixed in that launcher at some point rather than encouraging use of insecure links.

Other Sections

  • Launchers: This is where information about the launcher file itself is. You can either leave this as-is in the example manifest, or you can save the launcher's executable to your own web server and use your own url here if you want your players to get it from your server.
  • Forums: You can specify any forums that might be associated with your server, though it is unclear how to access those forums through the Cream Soda launcher.
  • Webpage: Changing the link in this section will change which website is loaded when Cream Soda first loads up, before any of the servers are selected.

How to Add Your Server

If you are planning on keeping your server in line with the Ouroboros server then adding your own server to a manifest file is relatively simple. Use an existing manifest as a starting point, either the example linked above or one provided by a server you play on. Then you should work out the commands to launch a client and connect to your server. So if you launch a client by typing

 C:\CoH\ouroboros -auth 1.2.3.4 -patchDir ouro

You would add a launch entry to the profiles section of your manifest like this:

 <launch exec="Ouroboros.exe" order="2" website="https://yourserver.com/homepage" params="-patchDir ouro -auth 1.2.3.4">YOUR SERVER NAME</launch>

Advanced

If you plan on making your own modifications, either to code or textures and models, you will need to host the files yourself for your players to download from your own web server, if you have one set up (such as for setting up the Account Portal). You can then get CreamSoda or Tequila to download all of the files for you and copy the downloaded files into your own patch directory. A more detailed description can be found in the Server Custom Login Screen Tutorial in the Corp Wiki.

Create Manifest by Script

If you want to create a manifest from scratch without the hard work, this script can do it for you, it creates links to your own server file store for your users to download.

https://git.ourodev.com/community/Batch_file_server_tools/-/blob/master/makemanifest.bat

It will ask for several pieces of information to allow it to create the file for you, these are:

  • The location of the client folder you want to create a manifest for (e.g. c:\client)
  • The name of the executable that you will use (e.g. Ouroboros.exe)
  • The name of the patchdir that you use for your serup (e.g. Ouro)
  • The IP/URL for your Auth Server to which your clients connect (e.g. 123.123.123.123)
  • The IP/URL for your patch server (e.g. http://myserver/patch)
  • The IP/URL for the page to appear on the launcher (e.g. http://myserver/homepage)
  • The name you want your server to appear as on the launcher (e.g. My Shiny New Server)

It will then generate a manifest.xml file in the location from where you ran the batch file.