const productId = "cluster公式Webサイトのワールド編集ページで設定した商品のID";

$.onStart(() => {
  // 購入通知を購読する
  $.subscribePurchase(productId);
});

$.onUpdate(deltaTime => {
  // 10秒に1回、定期的にスペース内にいるすべてのプレイヤーの購入状況を確認する
  let timer = $.state.timer ?? 0;
  timer -= deltaTime;
  if (timer <= 0) {
    timer += 10;
    const allPlayers = $.getPlayersNear(new Vector3(), Infinity);
    $.getOwnProducts(productId, allPlayers, "");
  }
  $.state.timer = timer;
});

$.onInteract(player => {
    player.requestPurchase(productId, "");
});

$.onPurchaseUpdated((player, productId) => {
  // 商品が購入された場合、スペース内にいるすべてのプレイヤーの購入状況を確認する
  const allPlayers = $.getPlayersNear(new Vector3(), Infinity);
  $.getOwnProducts(productId, allPlayers, "");
});

$.onGetOwnProducts((ownProducts, meta, errorReason) => {
  //  商品の所持状況を取得したとき
  let total = 0;
  for (let ownProduct of ownProducts) {
    // スペース内での商品所持数の合計を計算
    total += ownProduct.plusAmount - ownProduct.minusAmount;
  }
  // スペース内での商品所持数の合計数を表示
  $.subNode("Text").setText("みんなのサポート数: " + total);
});

$.onRequestPurchaseStatus((meta, status, errorReason, player) => {
  if (status == PurchaseRequestStatus.Purchased) {
      // Play Audio Source Gimmickがついたアイテムにシグナルを送る
      $.sendSignalCompat("this", "SupportSE");
  }
});