Login to Construct Arcade

Construct Arcade SDK (CASDK)

Eas­ily add Con­struct Ar­ca­de lead­er­boards to your game.

If you have any ques­tions about this page, get help on the Dis­cord serv­er.


Lead­er­boards

Lead­er­boards are a great way to en­cour­age play­ers to re­play and im­prove their scores. We make it very easy to em­bed your own lead­er­boards.

Lead­er­boards ID

Make sure you re­ques­ted a lead­er­boards id on the Dis­cord serv­er.

A-Frame Com­pon­ent

To add lead­er­boards to an A-Frame game, make sure you have a lead­er­board id.

Down­load

lead­er­board com­pon­ent (right-click > “Save As…”).

You can add a lead­er­board eas­ily to your scene with the fol­low­ing snip­pet:

<!-- in the head -->
<script src="<path-to-the-leaderboard-component.js>"></script>

<!-- in the a-scene -->
<a-entity
   ca-leaderboard="leaderboardId: <your-id>; title: 'Leaderboard'; debug: true">
</a-entity>

Be­fore re­leas­ing your game, re­move the debug: true flag, which fills the lead­er­board with dummy data for loc­al de­vel­op­ment.

Ori­gin-Lock

Con­struct Ar­cade Lead­er­board serv­ers may only be ac­cessed from the con­structarca.de do­main.

In-App Pur­chases/Un­lock­ables

Add pur­chas­able and un­lock­able items to your games!

The CAS­DK al­lows you to man­age a user in­vent­ory via the ac­count sys­tem, which means once a user un­locks an item in game, they will have ac­cess to it whenev­er they re­turn to your game. This un­lock can be triggered by any in-game activ­ity, or by spend­ing Con­struct Coins. Lat­ter will be an op­tion for you to earn some money with the games you have cre­ated!

Un­lock­ables vs in-app pur­chases

To al­low users to un­lock items via in-game activ­ity (e.g. reach­ing a cer­tain score), cre­ate an item with a price of “0” and trig­ger a pur­chase of this item when the user has achieved the re­quired task.

To al­low you to in­clude in-app pur­chases (IAPs) in your ap­plic­a­tion, Con­struct Ar­cade provides four meth­ods via our SDK (CAS­DK).

Game ID and Item ID

For se­cur­ity reas­ons the serv­er-side data­base is com­pletely manged by us. Item cre­ation and price changes have to be done through us.

cas­dk.pur­cha­seItem(gameId, itemId, price)

re­turns a prom­ise con­tain­ing re­sponse.suc­cess or re­sponse.er­ror

  • gameId is the ID of the game, which is provided by us
  • itemId is the in­tern­al name of the item
  • price is the price which has to be stored on the serv­er as well

Ex­ample:

AFRAME.registerComponent('ca-purchase', {
  schema: {
    itemId: { type: 'string', default: ''},
    gameId: { type: 'string', default: ''}
  },
  init: function() {
    this.el.addEventListener('click', this.onClick.bind(this));
    this.clicked = false;
    this.bought = false;
    this.buying = false;
    document.querySelector('a-scene').addEventListener("gameover", this.onReset.bind(this));
  },
  onReset: function() {
    this.el.setAttribute('text', { value: ''})
    this.clicked = false;
    this.bought = false;
  },
  onClick: function(e) {
    if(state == STATE_GAME)
      return;
    if(!this.clicked) {
      this.el.setAttribute('text', { value: 'Click again to confirm purchase.'})
      this.clicked = true;
      return;
    }
    if(this.bought || this.buying) return;
    this.buying = true;
    if (!('casdk' in window)) {
      this.el.setAttribute('text', { value: 'Error: casdk missing'});
      console.error('ca-purchase-component: CASDK missing.');
      return;
    }
    if(!this.price) {
      this.buying = false;
      this.el.setAttribute('text', { value: 'A network error has occured'})
    }
    this.el.setAttribute('text', { value: 'Confirming purchase...'})
    casdk.purchaseItem(this.data.gameId, this.data.itemId, this.price).then(
      (response) => {
        this.buying = false;
        if(response) {
          console.log(response);
          if(response.success) {
            this.el.sceneEl.components.game.checkUnlockedItems(true);
            this.el.setAttribute('text', { value: 'unlocked'});
            this.el.setAttribute('class', '');
            this.bought = true;
          } else {
            this.el.setAttribute('text', { value: 'Not enough funds.'});
          }
        } else {
          this.el.setAttribute('text', { value: ''});
          this.el.sceneEl.exitVR();
          casdk.loginButtonPressed();
        }
      }
    );
  },
});

cas­dk.get­In­vent­ory()

re­turns a prom­ise con­tain­ing the re­sponse:

  • false if the user is not logged in
  • oth­er­wise con­tains the in­vent­ory of the user as an ar­ray of ob­jects: {inventory: [{itemId: <string>}, ...]}

cas­dk.get­Amount­Cur­rency()

re­turns a prom­ise con­tain­ing the amount of coins a user owns in the re­sponse: {currency: <number>}, or false if the user is not logged in.

This func­tion is called on pa­ge­load and dis­patches a casdk-currency-updated event on window.

cas­dk.get­Cata­log(gameId)

re­turns a prom­ise con­tain­ing the cata­log of game items

This cata­log needs to be set up by us.

This func­tion does not re­quire the user to be logged in.

The cata­log is re­turned as an ar­ray of game items:

{catalog:[{
  itemId: <string>,
  displayName: <string>,
  description: <string>,
  price: <number>
},...]}

Terms of Service

Welcome to Construct Arcade Website (the “Website”). ​You are advised to carefullyreview ​the terms expressly incorporated herein (​​“Terms” or “Terms of Service''), asthey collectively​ constitute a legally binding, electronic contract (the “Agreement”)between you (“You” or the “User”) and Vhite Rabbit GbR (“Vhite Rabbit" or the“Company”), Blarerstraße 56, 78462 Konstanz, Germany, upon your consent(defined below, section 2.2), hence affecting your legal rights and obligations.

1- Subject & Area of Validity

1.1 Vhite Rabbit offers online VR games and other services within the context ofonline gaming, including in-game purchases (the “Service”, collectively the"Services") solely for non-commercial entertainment purposes. These Terms ofService regulate your access to and use of the Services on this Website.

1.2 The User may access and play the online games on the Website without creatingan account (the “User Account”) and our Services are essentially free of charge withthe exception of certain purchasable services (the “Premium Services”, section 3)which are subject to additional rules.

2- Conclusion of Contract

2.1 You confirm to be at least 16 years old and have the legal capacity or to have obtained the consent of your legal guardian to enter into this Agreement.

2.2 When you create a user account, you agree and declare to be bound by this Agreement by clicking the “Create Account” button after you check the box containing the link to these Terms as well as the statement that you have read the Terms of Service. This shall allow you to access our Premium Services for purchase and use.

3- Premium Services and Usage Fees

3.1 The term “Premium Services” refers to the Services and contents on the Website, which require payment and creation of a user account for access and use, including but not necessarily limited to in-game purchases such as virtual currencies, certain virtual features and items (collectively “Virtual Assets”) within the context of our online games.

3.2 The User confirms that any data provided while creating a user account as well as during the process of payment (in particular bank account, credit card number, etc.) is complete and accurate.

3.3 Vhite Rabbit may, at its own discretion, introduce new Premium Services, remove the existing ones, render any existing free Service as a Premium Service, determine and make amends to the fees and payment options of the Premium Services.

3.4 Vhite Rabbit holds all the rights to the Virtual Assets provided in online games. Purchase of the Virtual Assets shall give the User only a non-exclusive right to use them as long as the respective game is available for use.

4- Disclaimer, Limitation of Liability and Termination

4.1 The Services provided by Vhite Rabbit are made available without any warranty or assurance that the Services will remain available for use. Vhite Rabbit reserves the right to modify or completely remove a Service at its own discretion, without any liability for any loss or damage arising from it, including reimbursement or compensation due to modification or removal of the Premium Services.

4.2 Vhite Rabbit shall not be liable for any interruption or malfunction of the Services arising from technical reasons including but not limited to maintenance work, updates and server issues, as well as all reasons beyond Vhite Rabbit’s control (force majeure, third party responsibility, etc.).

4.3 With the termination of this Agreement, the User loses the right to access our Premium Services for purchase as well as the right to use already purchased Premium Services. Vhite Rabbit shall not be liable for reimbursement or any other monetary claim arising from the termination of this Agreement for any reason.

5- Ownership of Intellectual Properties

5.1 The Services and all copyrightable content and materials related thereto including, without limitation, software, design, text, data, all visual and audio materials, logos and trademarks are the exclusive property of Vhite Rabbit.

5.2 The User agrees not to modify, distribute, copy, reproduce, publicly display,publish, create derivations from, or otherwise use, any materials or content related to our Services without our explicit prior written consent.

5.3 The User agrees and undertakes to indemnify Vhite Rabbit for all losses, damages and expenses incurred by the User’s breach of the terms in this section.

6- Governing Law and Jurisdiction

6.1 German law shall apply with the exclusion of the UN Convention on Contracts for the International Sale of Goods.

6.2 All disputes arising out of this Agreement or your use of our Services shall be resolved in the ODR platform provided by the European Commission as an alternative dispute resolution between consumers and online traders, accessible via http://ec.europa.eu/consumers/odr .

7- Amendments to The Terms of Service

7.1 Vhite Rabbit may amend this Agreement in case of legal changes, business or technical operations of the Company making such amendment necessary. The User will be informed of any amendments to this Agreement and asked to agree to them during the first login process after the amendments are introduced.

7.2 Failing to agree to any amendment shall result in the denial of further access to the Premium Services for purchase or use.

7.3 If any provision of this Agreement becomes invalid or unenforceable for any reason, this shall not affect the rest of the Agreement.

I confirm that I have read the Terms of Service above and agree to it*
Delete Account Continue