Skip to main content

Adding a custom service to the panel

If you have a custom game or application that you would like to add to our panel, you can follow the guide below.

Requirements

  • Knowledge of using SSH/sFTP. Our guides to set up various SSH/sFTP applications can be found HERE.
  • If the game depends on additional libraries, please open a support ticket. We will bne able to add these libraries for you
  • Knowledge of how the game/application is configured and started.
  • You will need the knowledge to upload the game files yourself.

Logging in and uploading

  1. You will need to login into your service using SSH or sFTP and navigate to the /home/minecraft folder.

  2. Once there, create a new folder with the same name as the game/application you would like to add - make sure the folder name is in lower case; next, open the folder (e.g yourgame).

  3. Upload the game files to the folder you just created.

Creating a .JSON file

  1. Now that we have the files uploaded, go back to /home/minecraft and create a folder named .schemas, and then open it.

  2. Next, create a new JSON file with the same name as your game/application, such as yourGame.json

  3. Open the file to edit it and copy-paste the following into the file:

{
"type": "game", //Will accept "other" or "game", is ignored by the API, but is used when inside .schemas dir on a service. [Optional]
"displayName": "Yourgame", //Any string, must be lower case, only used by CreeperPanel when loaded from .schemas on a service. [Optional]
"icon": "icon", //Can be a https URL or a font-awesome icon, only used by CreeperPanel when loaded from .schemas on a service [Optional]
"daemon":"yourGame.sh", //The executable name, can include some args like in the case of srcds_run, it would be srcds_run -game <blah> to make unique [Required]
"runningCount": 2, //Amount of times it shows up in ps aux, with screen and grep it's self filtered. [Required]
"stopCommand": "", //Command that is sent into the screen to force a graceful stop, can be an array if you require to save, then stop [Required, can be blank string or empty array]
"startCommand": "./yourGame.sh", //Command required to start, is ran inside screen already. [Required]
"logLocation": "screenlog.0", //Relative location to the log we deliver. [Required]
"stopWait": 30, //Amount of time from 'requested' stop to when we kill the executable, recommend omitting unless you have issues. [Optional]
"path": "", //Base path of the service, recommend omitting unless you have issues. [Optional]
"argSeperator": " ", //What to seperate each key value pair with before the next in the start arg parsing (gamecode.config) [Optional]
"kvSeperator": "=", //What to seperate each key and value with. So key=value in the default case. [Optional]
"requiresFB": false, //Used to create a virtual frame buffer for software which still creates a window even on headless devices [Optional]
"envVars": {}, //Key value pairs of environment variables that need set {"ENVVAR1": "true", "ENVVAR2": "cheese"} [Optional]
"windows": false, //Enable proton, true to use the latest available or specify "proton8" or similar [Optional]
"steamRuntime": false //Can be set to true to use the latest Steam Runtime, or to a specific target version string, such as "sniper" [Optional]
}
  1. Edit the contents as needed; for example; you will need to change the display name, the deamon, and start command. Make sure to remove all the comments (everything including and after //)

  2. Once you are happy with the file, save and make sure the file is uploaded. Next, refresh the page, or log out and back into the Panel.

  3. If all has gone well, you should now see the game/application in the Games & Software section of the sidebar. Clicking the game or application should load the console page as with any other instance. You will be able to start the program through the usual method.

If you have any questions or issues in getting your game/application to show up in the Panel, do let us know by opening a support ticket!

You may also submit your custom game to our Community Schemas repo on github, which allows customers to provide fixes, as well as use your schema!