This server syntax is only compatible with SplameiPlay 5.0 Particle and beyond. It won’t work on older versions

This page presumes you already understand the SplameiPlay file syntax. If you don’t, please check out this page.

Prerequisites

You’ll need a hosting method that allows you to create specific endpoints on a base URL. If you can’t provide this, you won’t be able to make an installer file.

The structure

Below is the base structure SplameiPlay expects in order to work:

  • Base url (example.com/)
    • notices
      • <Locale>
    • public-data
      • <Locale>
    • releases
      • <Platform>
        • release-data
        • release.zip
        • version
    • play-data

In the URLs provided, you can add %flowVer% to get replaced with the current version of SplameiPlay Flow (e.g. 1.2)

Setting up the data

Play data (play-data)

Play data is the initial required file by SplameiPlay. It’s used by SplameiPlay to know back-end information about the project. It must be at the root of your endpoint. Play data uses the type ProjectPlayData and type version 1.0. This is the data excepted

SectionKeyDescriptionValid optionsExample
GlobalNameStored the name of the project. This must match with what SplameiPlay hasAlphanumerical strings (+ spaces)Dotafib
AuthorStored the author of the project. This must also match with what SplameiPlay hasAlphanumerical strings (+ spaces)Splamei
CurrentUrlStores the current main URL of the project. SplameiPlay will update it’s main URL with what you set allowing for you to change this even after distributionURL string (ending in ‘/’)https://example.com/endpoint/
EarlyAccessSets if the project is in early access. This only shows as a visual change and does not affect anything elseBoolean (true or false)true
MinSplameiplayMinSplameiplayVerSets the mimimun SplameiPlay version (check code) that is required for the project. You should only set this to be anything other then ‘1000’ if you require a version specific API/SDKFloat (SplameiPlay Version code)1020
RequiredSplameiplayEditionSets the edition required to install the project. This should usally be set to ‘All’ unless it’s only being used in an organisation using a specific edition‘All’, ‘Lite’ or ‘Main’Lite,Main
WindowsMinMajorVerSets the minimum major Windows NT version for the projectInteger6
MinMinorVerSets the minimum minimum Windows NT version for the projectInteger1
MinBuildVerSets the minimum build Windows NT version for the projectInteger19042
MinRamMbSets the minimum RAM (in Megabytes) needed for the projectInteger1500
MinCpuSpeedMHzSets the minimum CPU Clock speed (in Megahertz) for the projectInteger2000

To help you further understand what SplameiPlay expects, here is Dotafib’s play-data file (as of writing)

Version=1.1
Type=ProjectPlayData
TypeVersion=1.0

Name=Dotafib
Author=Splamei
CurrentUrl=https://www.veemo.uk/flow/1.2/pixel/
EarlyAccess=false

/MinSplameiplay
MinSplameiplayVer=1000
RequiredSplameiplayEdition=All

/Windows
MinMajorVer=10
MinMinorVer=0
MinBuildVer=19042
MinRamMb=1500
MinCpuSpeedMHz=2000

Notices (notices)

The notice endpoint is used by SplameiPlay to display notices. It’s found by appending notice/ to the main URL then the current locale. If the current locale failed (i.e. doesn’t exist), SplameiPlay will fallback to the EN locale. There is no format to notices as it’s content is displayed directly in the notices box, however, it’s good practice to start each notice with a dash for separating.

Examples: https://example.com/endpoint/notices/en and https://example.com/endpoint/notices/ja

Public data (public-data)

Public data is the public facing data endpoint and is not required for SplameiPlay to use your project. Just like the notices endpoint, it’s found by appending public-data/ to the URL followed by the current locale. If SplameiPlay fails to get public-data for the current locale, it will fallback to the EN locale. Public data uses the type ProjectPublicData and type version 1.0. This is the data excepted

SectionKeyDescriptionValid optionsExample
GlobalDescriptionShortSets the short description for the project that’s displayed on the main panelsStringHello World! This is the short description of my project
DescriptionLongSets the long description for the project that’s shown when pressing the ‘Full About’ button. Leaving blank hides this buttonStringHello World! This is the long description of my project
LocaleSets the locale supported by the project. You should only use the locale code. Extra locales (not in the version of the app) will show in the ‘+ x other’ sectionString (currently ‘en’ and ‘ja)en,ja
AuthorThe developer, publisher and others who helped with the projectStringDeveloper: Splamei
TermsShortThe short terms of the project shown on the main panels. It’s best you keep this to the name of the terms.StringSplamei Project TOS
TermsLongThe long terms of the project shows when pressing full terms. Depending on the length of the terms, it may be better to link the terms instead.StringExample of the long terms for your project
WindowsSpecsThe visible specifications for WindowsStringWindows 10+\n5GB RAM\n2GHz Cpu
AgeRatingAgeSets the basic age rating for the project. This is only a visual display and is not enforced. 0 shows unrated and -1 is PGInteger7
UrlsNoticesUrlSets the URL SplameiPlay should open when pressing ‘All Notices’Stringhttps://example.com
MoreInfoUrlSets the URL the app should open when pressing ‘More Info’Stringhttps://example.com

Again, to help you further understand the syntax, here’s Dotafib’s public data file:

Version=1.1
Type=ProjectPublicData
TypeVersion=1.0

DescriptionShort=Dotafib, the game about a pixel attempting to escape from the narrator getting though enemy pixels, buttons and teleporters! But don’t loose your lives...
DescriptionLong=Dotafib, the game about a pixel attempting to escape from the narrator getting though enemy pixels, buttons and teleporters! But don’t loose your lives, or you will loose your run. So be careful!
Locale=en,ja
Author=Developer + Publisher: Splamei
TermsShort=Splamei Project TOS
TermsLong=This project is licensed under the Splamei Project TOS. For information about the terms, please check them out here: https://www.veemo.uk/splamei-project-tos/

/Windows
Specs=Windows 10 20H2 or later\n1.5GB RAM\n2GHz CPU Clock speed\nDirectX 11 or later

/AgeRating
Age=7

/Urls
NoticeUrl=https://www.veemo.uk/post/tag/dotafib/
MoreInfoUrl=https://www.veemo.uk/dotafib/

Release data endpoints

All these data endpoints are found by appending /releases/ to the end of the URL followed by the platform (i.e. windows) then the data needed:

version

The version data is used by SplameiPlay to get the version code of the project. The endpoint does not use the SplameiPlay File Syntax and only has to return the version code as an integer. We recommend starting at 1000, however, you can start at any number as long as you increment it every update.

release-data

Release data is the data SplameiPlay requests for when the user wishes to download your project. It contains the data required for SplameiPlay to understand how to download and launch your project. The type is ProjectReleaseData and the type version 1.0.

SectionKeyDescriptionValid optionsExample
GlobalHashStored the hash of all the project files. You can use SplameiPlay Studio to get the hash or add the SHA256 hashes to do it yourselfString21dc32c22cd7e59bda4cbc7d931f28f6a7cc0844b977abb29889b98836690314
ExeNameSets the name of the file to be executed by SplameiPlay when launching the projectStringExample.exe
DownloadableSets if the project can be downloaded or not. You should normally add restrictions to prevent release.zip from being downloaded if bypassedBooleantrue
ReleasedIf a project cannot be downloaded, this will set if SplameiPlay should display the reason as ‘Unavailable’ or ‘Unreleased’Booleanfalse
DynamicDownloadableIf the project can be downloaded, this will set if SplameiPlay should check the dynamic downloadable endpoint or download the projectBooleantrue

Example from Dotafib:

Version=1.1
Type=ProjectReleaseData
TypeVersion=1.0

Hash=21dc32c22cd7e59bda4cbc7d931f28f6a7cc0844b977abb29889b98836690314
ExeName=Dotafib.exe

Downloadable=true
Released=true
DynamicDownloadable=false

dynamic-downloadable

If release-data has told SplameiPlay to check the dynamic downloadable endpoint, SplameiPlay will reach out here to check if the user can download the project. As the name implies, this file should be dynamic to each user and not normally a set file. You may use this for paid projects or projects requiring authentication. The type is ProjectDynamicDownloadable and the version is 1.0

SectionKeyDescriptionValid optionsExample
GlobalDownloadableSets if the project can actually be download or not. The rest of the content is ignored if this is true.Booleanfalse
UrlLinkSets the URL that the user could open when the download is rejected. If blank, no URL will be opened or promptedStringhttps://example.com
MessageSets the message to display when the download is rejected.StringHello World!

Here’s an example of what you could return:

Version=1.1
Type=ProjectDynamicDownloadable
TypeVersion=1.0

Downloadable=true
UrlLink=https://www.veemo.uk
Message=Hello\nWorld!

release.zip

If SplameiPlay can download the project, it will start to initial and download this file. The file must be a valid zip file that can be downloaded via a GET request. SplameiPlay will also send a POST request to get the file size so it can be displayed, otherwise no download size will be displayed.

If the release is not downloadable, you should validate the user is allowed to make the download as some may bypass release-data and dynamic-downloadable