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
  • You will need to upload the game files yourself
  • If the game depends on additional libraries do let us know by opening a support ticket and we can get these added for you.
  • Knowledge of how the game/application is configured and started.

Step 1

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

Once there create a new folder with the same name as the game/application you would like to add then open the folder (e.g yourgame) - ensure it is lower case

Upload the game files to the folder you just created

Step 2

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

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

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]
}

Edit the contents as needed such as changing the display name and the deamon and start command, remove all the comments (everything including and after //)

Once you are happy with the file save and make sure the file is uploaded then refresh or log out and back into the panel.

If all went well you should now see the game/application in the Games & Software section of the sidebar and if you click on it it should load the console page where you will be able to start it up.

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 will allow other customers to provide fixes and also use your schema!