--- sidebar_position: 2 --- # Free Spin ## Overview The **Free Spin (or Free Games) Feature** awards players a set number of spins without requiring additional bets. During these spins, players can still win prizes—often larger than in the base game—without spending any of their own credits. ![Free Spin Overview](./img/freespins/fs-trigger.jpg) ## Implementation Guide ### Prepare Assets | Component Type | Description | Visual | |------------------------|---------------------------------------------------|--------| | **Core Components** | Locate the prefabs from the core package. | ![Core Prefabs](./img/freespins/freespin-prefabs-core.png) | | **Game-Specific Components** | Prefabs are already present in the main game scene. | ![Game Prefabs](./img/freespins/freespin-prefabs-game.png) | --- ### Setup Scene #### Structure Free Spins Your scene should include the following nodes: - **Trigger** - **Retrigger** - **Win** ***Example Scene Structure:*** ![Scene Structure](./img/freespins/featrue-freespin-in-scenes.png) | Property | Description | |------------------------- |----------------------------------------------------------| | `transitionStart` | Triggers the show animation when Free Spins start.
Default: `null`. | | `transitionStop` | Triggers the return animation to the base game.
Default: `null`. | | `nodeActivate` | Maintains the visual state during Free Spins. | | `freeSideBandContainer` | Activates the Free Spins side band visual. | --- #### Component Configuration ##### Trigger & Retrigger To configure the Free Spin **trigger** and **retrigger** components, follow these steps: 1. **Add Animations** Include the required animations for both the trigger and retrigger elements. ![Add Animation](./img/freespins/add-anim-freespin.png) ![Add Animation Content](./img/freespins/add-anim-content.png) | Node Name | Purpose | Location in Core Package | |-----------|-----------------------------------------|------------------------------------------------------------------| | `content` | Handles zoom-in and zoom-out animations | `assets/core-assets/slotty-core/packages/feature-game/animations` | ![Trigger Config](./img/freespins/freespin-trigger.png) | Property | Description | |------------------------|--------------------------------------------------------------------------| | `durationPresentation` | Duration (in seconds) the trigger animation plays before auto-stopping | 2. **Add Background Animation Effect** ![Effect Example](./img/freespins/effect-explosive.png) | Prefab Name | Purpose | Location in Core Package | |-------------|-------------------------------------------------|-------------------------------------------------------------| | `explosive` | Background animation effect triggered | `assets/core-assets/hyper-core/packages/explosive/prefabs` | 3. **Configure Particle Effects** ![Particles](./img/freespins/textture-particles.png) ![Set Particles Scale](./img/freespins/set-particles-scale.png) | Node Name | Purpose | Location in Core Package | |-------------|-----------------------------------------------------------------------------------------|------------------------------------------------------------| | `particles` | - Particle effects around title and number triggers.
- Set scale to `1` for visibility. | `assets/core-assets/slotty-core/packages/present/particles` | :::tip Set up the **present freespin retrigger** in the same way as the **present freespin trigger**. ::: ##### 1. present freespin trigger Add fonts and textures for Free Spin trigger. ![Trigger](./img/freespins/trigger-freespin.png) ##### 2. present freespin retrigger Add fonts and textures to show retrigger effect. ![Retrigger](./img/freespins/retrigger-freespin.png) ##### Add Font ![config](./img/freespins/trigger-freespin-font.png) #### 3. Present Free Spin Win **Free Spin Win Setup** ![Win](./img/freespins/set-freespin-win.png) | Property | Description | |-------------------------|-----------------------------------------------------------------------------------------------| | `content` | Node for displaying the win animation content. | | `durationPresentWin` | Duration (in seconds) that the win presentation is shown. | | `animation` | - Animation controller for the win presentation.
- Located at: `assets/core-assets/slotty-core/packages/feature-game/animations` | | `clipStartPresentation` | Animation clip played when the win presentation starts. | | `clipStopPresentation` | Animation clip played when the win presentation ends. | | `allowPresentWinPoint` | Enables the display of win points during the presentation. | | `durationCountPoint` | Duration (in seconds) for counting up win points. | | `lblTotalWinPoint` | Label node showing the total win points. | | `lblTotalFreeSpinCount` | Label node showing the total number of free spins awarded. | - Add congratulatory font and texture for the win display. ![Win](./img/freespins/win-freespin.png) --- :::tip Best Practice Follow the visual and font flow as defined by your game's design system. ::: --- #### Free Spins Count Box The **Free Spins Count Box** displays the remaining number of free spins to the player. Follow these steps to set it up: ##### Steps to Add the Count Box | Step | Description | Image | |------|-----------------------------------------------------------------------------|-----------------------------------------------| | 1 | Locate the `freespins-count-box` prefab in the Core package. | ![Core Prefab](./img/freespins/find-freespin-box.png) | | 2 | Add the `freespins-count-box` prefab to your main game scene. | ![In Scene](./img/freespins/game-freespin-box.png) | | 3 | Verify its appearance in both desktop and mobile modes. | ![Mobile Mode](./img/freespins/both-mode-mobile.png) | ##### Platform-Specific Setup Assign the appropriate node and controller for each platform: | Platform | Node Name | Component to Add | Example Image | |----------|--------------------------|-----------------------------|-------------------------------------------------------| | Desktop | `freespins-box-desktop` | `Platform-ui-controller` | ![Desktop Controller](./img/freespins/add-script-freespin-counter.png) | | Mobile | `freespins-box-mobile` | `Platform-ui-controller` | ![Mobile Controller](./img/freespins/add-script-freespin-counter-mobile.png) | ##### Asset Configuration Ensure the correct assets are used for each platform: | Platform | Asset Path | Example Image | |----------|-------------------------------------------------------------------|-------------------------------------------------------------------------------| | Desktop | `assets/game-assets/textures/desktop/preloads/main-game/custom-scale` | ![Desktop Assets](./img/freespins/freespin-counter-box-desktop.png) | | Mobile | `assets/game-assets/textures/mobile/preloads/main-game/custom-scale` | ![Mobile Assets](./img/freespins/freespin-counter-box-mobile.png) | | Common | Freespins Box Background | ![Common Asset](./img/freespins/freespin-counter-box-common.png) | ##### Font Setup Set the font for the count box display: ![Font Setup](./img/freespins/set-font-freespin-count-box.png) --- #### Free Spin Background Setup ##### 1. Add Animation to Animation Provider Add the Free Spin background animation to your **Animation Provider**. ![Add Animation](./img/freespins/add-anim-background.png) ##### 2. Configure Background Display Set up the background for both landscape and portrait modes: - **Landscape Mode** ![Landscape Background](./img/freespins/set-background-freespin-landscape.png) - **Portrait Mode** ![Portrait Background](./img/freespins/set-background-freespin-portrait.png) ##### 3. Asset Example Example background assets for Free Spin: ![Background Assets](./img/freespins/assets-freespin-background.png) #### Sidebands (Optional) Sidebands are optional visual elements, often used in classic slot game designs. | Preview | Asset Structure | |---------|----------------| | ![Sidebands](./img/freespins/freespin-sideband.png) | ![Sideband Assets](./img/freespins/assets-freespind-sideband.png) | **Setup Steps:** 1. **Add Preference:** Add the free sideband preference in your configuration. ![Add Preference](./img/freespins/add-preference-free-sideband.png) 2. **Assign Texture:** Set the correct texture for the free sideband. ![Add Texture](./img/freespins/add-texture-free-sideband.png) **Asset Mapping:** | Asset Name | Node/Preference Name | |---------------------------|------------------------| | `anim-free-sideband-static` | `particle-free-sideband` | | `sideband-back` | `sideband-back` | | `sideband` | `sideband` | | `sideband-shine` | `sideband-shine` | | `sideband-static` | `liquid` | | `indicator-static` | `indicator-static` | --- #### Transition Effects (Optional) ##### Setup: Create Transition Node 1. **Create a new node** in your scene for the transition effect. 2. **Add the following components** to this node: - `transition` - `transition-scaler` 3. Configure the transition properties as required for your effect. ![Transition Setup](./img/freespins/setup-transition.png) | Property | Description | |--------------------|--------------------------------------------| | `content` | Target node for transition effects | | `animationName` | Animation identifier/reference | | `sfxName` | Sound effect identifier | | `transitionFrame` | Frame to trigger transition callback | ##### Asset Setup 1. Add transition animation to the **Animation Provider**. 2. Match the animation name with the correct node. ![Transition Setup](./img/freespins/add-anim-transition.png) **add preferrence** Configure preferences as needed for your transition. ![Transition Setup](./img/freespins/add-preference-transition.png) **Example Result:** ![Transition Result](./img/freespins/fs-transition.jpg) --- ## Final Result Examples | Phase | Image | |-------|-------| | Trigger | ![Trigger](./img/freespins/fs-trigger.jpg) | | Active Scene | ![Scene](./img/freespins/fs-scene.jpg) | | Completion | ![Congrats](./img/freespins/fs-congra.jpg) |