Skip to main content

Invulnerability

info
Prerequisites: Before you dive in!

1. Intro

2. Setup

3. Creating a Gamepass

Objective 🧐ðŸ—ŋ​

We are going to create a script that allows players to purchase invulnerability for their character in Roblox using a Developer Product.

Description 📖ðŸŠķ​

Here's what we want to accomplish:

1. Purchase Invulnerability:

Players can buy invulnerability for their character using a Developer Product.

2. Make Character InvulnerableL:

When purchased, the character will become invulnerable for a short duration.

3. Restore Vulnerability:

After the duration, the character will return to being vulnerable.

By doing this, we will create a dynamic gameplay feature where players can temporarily make their character invulnerable through in-game purchases.

Instructions and Code Logic 📝📚​

Step 1 - Get the Necessary Services​

  • Get the MarketplaceService from the game.

  • Get the Players service from the game.

Step 2 - Set Up Developer Product ID​

  • Define the Developer Product ID for the invulnerability purchase (DEV_PRODUCT_INVULNERABILITY).

Step 3 - Create a Function to Handle Invulnerability​

  • Define a function named grantInvulnerability that takes a player as an argument.

  • Inside the function, get the player's character.

  • For each part of the character, if it's a BasePart, set its CanTouch property to false.

  • Wait for 3 seconds (the duration of the invulnerability).

  • After the wait, set the CanTouch property of each part back to true.

Step 4 - Create a Function to Process Receipts​

  • Define a function named processReceipt that takes receiptInfo as an argument.

  • Inside the function, get the player from the receipt information.

  • If the player is not found, return Enum.ProductPurchaseDecision.NotProcessedYet.

  • Use a pcall to handle any errors during processing.

  • If the ProductId matches the invulnerability product, call the grantInvulnerability function for the player.

  • Return Enum.ProductPurchaseDecision.PurchaseGranted if successful, otherwise return Enum.ProductPurchaseDecision.NotProcessedYet.

Step 5 - Set the Callback Function​

  • Set MarketplaceService.ProcessReceipt to the processReceipt function to handle purchase processing.

Putting It All Together 🔧ðŸ”Đ​

  • Start by getting the necessary services and setting up the Developer Product ID.

  • Define functions to handle invulnerability and receipt processing.

  • Set the callback function for processing receipts.

By following these simple steps, you can create a script that allows players to purchase invulnerability for their character, with the invulnerability lasting for a short duration before returning to normal.