# Sparkifier

Used to create new or edit Sparks.

Details

* Converts 3D objects, such as GLB and gITF files, into a usable asset in Bonfire known as a Spark.
* Supports the conversion (or “Sparkification”) of Entity, Config, Symbol, and Audio assets.

Note that the Sparkifier application is accessible only to Bonfire Pro users.

#### Types of Sparks:

* Entity - An interactive 3D object, such as houses, walls, or tables, that can be placed in the world and anchored to a physical space. This is the most commonly used type of Spark.
* Config - Use a Config Spark to add Causes, Effects, and Traits without displaying any in-book visuals. Examples include systems such as an inventory manager, timer, or data holder.
* Symbol - Symbol Sparks represent symbols like text, images, or input fields used in graphical interfaces, such as forms or on screen health bars.
* Audio - Although there's no visual in the Book, the placed Spark location will serve as the point for spatial audio playback.

### Creating Sparks

#### Entity

Prerequisites

Ensure that a .glb or .gITF file is ready for conversion.

Creating an Entity Spark

1. Navigate to the Sparkifier homepage and click the New Spark button.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfm8OB5W3rniSaUeVoOinLnYSHx3OX0Dfp-TzXELOn8RdZKzMdEB5Q-Bq2a0CfGeHyv2ImhQKN4wC7OSUgkBScoRsk-MiMXqaU2Mzh-XkX-pLOATvNKMH8EXM0uHrY2YclnLp8mkN_krkGtzf-VWRZ9YFwy?key=3zC3v8fwP8acB3Zhhd46Xg)

2. A window will appear, prompting for the selection of the Spark type to be created. Choose Entity Spark Type from the available options.

<div align="left"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXczRAcMKqtMP_8HY4lb8eExXEm9OxuI0qZLAoHmqUQAV4w6aVR-n8qZs56WQ0Oxy0gRUhzKWFi1vkJ3XuvebiYuyrqz_jqprAB_L3hV2k1xCp2eDFGvmEMYe5XzgA_tJ7SsSsi57Q?key=riEbImEjb8gqb3jEe6tHsOYm" alt="" width="375"><figcaption></figcaption></figure></div>

3. Observe that the Spark Type dropdown in the lower left corner now displays “Spark.Entities.Entity”.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfGpeB97kxP3lVNGA2oWrNRavh09ul7ZAuECuVYGIspk6NLUY1pH6cx6wk8Ej133KgawDRw3q_LlvCC6_4mWy6uB0vTWTQayYGALbEfpsTkM-ozrLxACK5BEH6k8oyD5Jv6nWci8mphmhWi_1uehkZEccSP?key=3zC3v8fwP8acB3Zhhd46Xg)

4. To import the .glb or .gltf file, click the browse button located underneath the Loaded Actor File Path field and select the intended file for conversion.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXexg7j51ypF8KBqBzT_uIN5UYGtHUtZhH-idGRjpcjlc3oysH3rpR9P23KYi6fj0x92u49-kr-AeEECKApuRu6s5pmIYtxx54kPKPzLOlyGBZkTl19DqbyQFHCm5fpAJq9yZ46QFz_c96gMI791G_BOwFUi?key=3zC3v8fwP8acB3Zhhd46Xg)

5. Assign a name to the new Spark, for example, “Sample Entity”.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXef0XmaA5wEZW8TR8HvvVhmwyp6DNJCUmj88_8sPGpWL6RZ60gc1rNFjeoObv4vKOZI3_HgADIsQ99Upnv3msILJ7THT0N73DrM7Cyf_JR46MX-UG4wbpHCp_Sx-8ShWJleBWuLHxWcUNtpL29lmXwPi3A?key=3zC3v8fwP8acB3Zhhd46Xg)\


6. Click the Build Spark button in the lower left corner and choose a folder for the export location.



![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeB0QfitUEdpY5tUzsi8Sj5UvyXNCGq-psJQeTNKYxyGnhYc97bIGVsjnbbKP4VQaG1qO5kY4wNxjtB26SgnbVJAy8uL22K83zka2do2FEnCOrvy1HehSpEGXp7NJ-yqScyGjTg7fNNs1WEPkFPRM2TzTc?key=3zC3v8fwP8acB3Zhhd46Xg)

7. In the builder interface, click the ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXf2xpHk6jrfT5F9GN6F6tBDfHV0UIp9UFbQwXybHFao4AqNQ9DDCbGuG0KPozMcKZSzAQuuyPyZXTATvwzLRxrEbifuABT3RT6E5ullCrWv_zmuWy2foXbEXDSstkKLWNsNDv07?key=riEbImEjb8gqb3jEe6tHsOYm) icon in the Spark Browser and locate the newly created Entity Spark. After importing, the “Sample Entity” Spark should appear in the Sparks → My Sparks directory.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXd2HTlrN7l9lDLj1mRH1sSmD11l2LE8UAgQXj6O34YhY7AL_GITxfvpQnCEeBcc3N5Nb8MO6UGNqIMz8GcsZiPxTUp3voCjm7JZTmYig2NrJhnaOlkO5EQOmLBPrUwFvg1YEUqTzA?key=riEbImEjb8gqb3jEe6tHsOYm)\


#### Config

#### Symbol

#### Prerequisites

Ensure that a .jpg or .png file is ready for conversion.

**Creating a Symbol Spark**

1. Navigate to the Sparkifier homepage and click the New Spark button.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfm8OB5W3rniSaUeVoOinLnYSHx3OX0Dfp-TzXELOn8RdZKzMdEB5Q-Bq2a0CfGeHyv2ImhQKN4wC7OSUgkBScoRsk-MiMXqaU2Mzh-XkX-pLOATvNKMH8EXM0uHrY2YclnLp8mkN_krkGtzf-VWRZ9YFwy?key=3zC3v8fwP8acB3Zhhd46Xg)

2. A window will appear, prompting for the selection of the Spark type to be created. Choose Symbol Spark Type from the available options

<div align="left"><figure><img src="https://2852117255-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F63VL6Q29islcN2glZB10%2Fuploads%2F91jgjXoKo9kcu92Qnu2P%2Fimage.png?alt=media&#x26;token=37c0fef3-60b5-4da2-a6bc-7cf5160a21ff" alt="" width="375"><figcaption></figcaption></figure></div>

3. Observe that the Spark Type dropdown in the lower left corner now displays “Spark.Symbols.Symbol”.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeQ7Z_uAEpWroxinXhiC_KjblUqS8ySZuH_tFu2GYKhaGIip4uNwC0RNU06G4PxKKzEMSLT0vs2QMOy7eAPNwD1iKKJrOY32xkRKRDGdwTFBUQ9WlR-jbC6GLWe00Q0N_Kq0LZ2SBvS90gsKxkN8oNOBoC5?key=3zC3v8fwP8acB3Zhhd46Xg)

4. To import the .jpg or .png file, click the browse button located underneath the Loaded Actor File Path field and select the intended file for conversion.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXexg7j51ypF8KBqBzT_uIN5UYGtHUtZhH-idGRjpcjlc3oysH3rpR9P23KYi6fj0x92u49-kr-AeEECKApuRu6s5pmIYtxx54kPKPzLOlyGBZkTl19DqbyQFHCm5fpAJq9yZ46QFz_c96gMI791G_BOwFUi?key=3zC3v8fwP8acB3Zhhd46Xg)

5. Assign a name to the new Spark, for example, “Sample Symbol”.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfauKWsvBTJJZyOjpFUJXD0TYakhilKvrCRNs4-2xeBt9oTzYAtr0o0nb4RejgrZjwxd9Ee0A2oqcpYEelfu7a6VcA3sAZRe_1uRuae385fOyjTl0Ffke5wuE1t96wUqaelYAQyWePOVLGs88Se9PzAsKha?key=3zC3v8fwP8acB3Zhhd46Xg)

6. Click the Build Spark button in the lower left corner and choose a folder for the export location.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfyp7Cyj_AUBZSOZpZ5RnSzd_Mmm4pKDwv54LL0QhNyyowWXVGypxBTWnAJHQ07woZAKh-evjt88-I0BsrNW6BWWTtvy31pCjgIsquUp_d4Q-PHk9r3CFlOPa50kp-bdqZky0KKTx3HBILMXiRjQORCfI3k?key=3zC3v8fwP8acB3Zhhd46Xg)

7. In the builder interface, click the ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXf2xpHk6jrfT5F9GN6F6tBDfHV0UIp9UFbQwXybHFao4AqNQ9DDCbGuG0KPozMcKZSzAQuuyPyZXTATvwzLRxrEbifuABT3RT6E5ullCrWv_zmuWy2foXbEXDSstkKLWNsNDv07?key=riEbImEjb8gqb3jEe6tHsOYm) icon in the Spark Browser and locate the newly created Symbol Spark. After importing, the “Sample Symbol” Spark should appear in the Sparks → My Sparks directory

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfCffeuGF0O1vjTVsCH_dZZaDuquZbM0hczX_Pe_QFyFvX8mwZ3oJRmevbJthRLEPK8ELj-UpPys_guFuBU0eONMNtNSexC2tkE_KcaaosUrAnWwmCqpBiQnvzCR4RKo7CCduuDjS8vVcY-11Esw4wSYlok?key=3zC3v8fwP8acB3Zhhd46Xg)\


#### Audio

The following instructions describe creating an Audio Spark and configuring its settings.

\


Prerequisites

Ensure that a sample .mp3 file is available for conversion.\
\


Creating an Audio Spark

\
\


1. Navigate to the Sparkifier homepage and click the New Spark button.\
   \
   \


![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfm8OB5W3rniSaUeVoOinLnYSHx3OX0Dfp-TzXELOn8RdZKzMdEB5Q-Bq2a0CfGeHyv2ImhQKN4wC7OSUgkBScoRsk-MiMXqaU2Mzh-XkX-pLOATvNKMH8EXM0uHrY2YclnLp8mkN_krkGtzf-VWRZ9YFwy?key=3zC3v8fwP8acB3Zhhd46Xg)\
\


2. A window will appear, prompting for the selection of the Spark type to be created. Choose Audio Spark Type from the available options.

<div align="left"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd1hzzM36Uw1oFTNvH6-o4wdL1yMNP9fllGgkzGrDjhVS0HBW6s-0shqgvW2jCitZsQ6FcR7kQyiIklIVhMiuVZgmZjqR7KbzO7oxeRBgNYUs0i86I9Gn98NJLxyPrTnF1YMIhBRw?key=riEbImEjb8gqb3jEe6tHsOYm" alt="" width="375"><figcaption></figcaption></figure></div>

3. Observe that the Spark Type dropdown in the lower left corner now displays “Sparks.Configs.Audio”. This indicates that an Audio Spark is being created.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfKDgFZPng3sAWrm558zPCOjIIp67JJGCCWimVB7zE936zvyola6_JNLz6n4wsKZn9iVq5nCAiJFY1sGkoiz14Twh5mK9zGxu9VgMBy9bj-lhNYoVNdasA4s-QRwlMnvF5nP1ftU1Ql-aJiPpdY4PD-55wy?key=3zC3v8fwP8acB3Zhhd46Xg)\


4. To import the .mp3 file, click the ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdqDWsRPWJmiAaSERrGfd2tBuqnvNBl8wTgFvTm4DxXY2jzmrqO1GLFo5nmA5rzHQsB8FDpASyZ98-O2fmPCfPfsUdWVvWrEOaSv94yIUzabxlM6sM8hbMmVO5Hl4iVgDoGqLbHvxq4oLqVWSiKgy3f6k3O?key=3zC3v8fwP8acB3Zhhd46Xg) icon located at the top right corner. Select and open the .mp3 file intended for conversion.\


![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdgAIExMQZKpcorWqaICftiouc-iZt6MJeK2o42fMsRjDStzrhjY6DNuVXMOCxUQgHcdYmqpQI4ZrBXzKI4KFEsNzX7x2zzxXVy-dsHcmxUzpwNYkbfqlaxZvdFwRqXUcaGI1ZlN35Pvkslhy2gOltErYHt?key=3zC3v8fwP8acB3Zhhd46Xg)\


5. Assign a name to the new Spark, for example, “Sample Audio”.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfmH8AV0R9QEhidQH7HTz2-oLGgzC871NRycW1lEYlA2wDiY_2pcA6GvRNAHd7Q09nnLS-nmab_Cf_HKYlzEC-x_2Zap6HmN8Tm45ZK6miON3NZv1IpIlN7wJdWaGcZccp7HC7-e-aFlI8JLygIAel5Spg?key=3zC3v8fwP8acB3Zhhd46Xg)\
\


6. Click the Build Spark button in the lower left corner and choose a folder for the export location.\
   \
   \


![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfsZs0vysCW4YRyENLsVvsks9YiPOagC4rC7O50GEIQDAqJx8bbyg17LW8XK3hGjhaxFFDHWwwrTw6UQ7FSIthbp8zMArvwWHQBydeZu5rTlGf1iKooPD-7AqgQsa74vwLcWsuAqNtv2D6Y43k9xOBqoeTI?key=3zC3v8fwP8acB3Zhhd46Xg)

7. In the Builder interface, click the ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXf2xpHk6jrfT5F9GN6F6tBDfHV0UIp9UFbQwXybHFao4AqNQ9DDCbGuG0KPozMcKZSzAQuuyPyZXTATvwzLRxrEbifuABT3RT6E5ullCrWv_zmuWy2foXbEXDSstkKLWNsNDv07?key=riEbImEjb8gqb3jEe6tHsOYm) icon in the Spark Browser and locate the newly created Audio Spark. After importing, the “Sample Audio” Spark should appear in Sparks → My Sparks directory\
   \


![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeEhYu4HTzoJeLlQjac-hTP7xezxSGonpBon0fe_Ec2jp4hYzvjeOmXF3ZK_JoTD0EcUOxzgBqJ0hm_iHM-n2HcCBB3-aOH-VZdja1VvmAw4m9ey-foM-CvqMDzQwW8Spyh7G1HLfhTxlNOeu2GnuqpwEb-?key=3zC3v8fwP8acB3Zhhd46Xg)



#### Basic

Selecting a Basic Spark allows a Spark Type to be chosen, such as Entity, Config, Symbol, or Audio. Once the Spark is built, it can be imported into the Builder based on its type.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcL6q4u7roKR83RN4Zazj6EThZYMrRB-qnNBEJS2hJUInnwDEaSxsBpZARV-po1XcfKUrilM-A6jg-vEE8dON2BMkgk8ru7AnsEe1YCKgq4Uog7B_5MTFbzJPyLiNfWwefepUFB?key=riEbImEjb8gqb3jEe6tHsOYm" alt=""><figcaption></figcaption></figure>

#### Advanced

Selecting an Advanced Spark follows the same process as a Basic Spark but includes the ability to specify a Spark Type during creation. For example, when creating an Entity, the type can be defined as a Creature Entity, with additional subtypes such as Humanoid or ReadyPlayerMe. Once imported into the Builder, the Spark retains the assigned type set during its creation.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcsk4N0Jv7EAjyZkYHzmR6SpF_WDV6jmxnsD1cd3ZUPgG7_czuESq28rGPL1HtRko8FMDSqQJ1AR5bHmretl9mr8dVIIIqbNPF9XMk6d_g7kIMolAO0qrpizgpVfN1El9PL_CCYQA?key=riEbImEjb8gqb3jEe6tHsOYm" alt=""><figcaption></figcaption></figure>

#### Custom

The Custom Spark feature allows users to create new Sparks with custom types, providing greater flexibility and consistency in Spark generation. By importing existing Custom Sparks, users can preserve their custom traits and create new visual representations.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcu8eZXYpaHky8DYAUzFs0QlFRjzmhwFYl3DGEXiDVeNwRiXJ9lNb2kszMr0GQqCeewG2Oq8S6SI3QbFe6TRdnuJUKFClPX_ES7fmywBfKf-E3TlMYnX3zTNKKAwDLhY7rleLqBQw?key=riEbImEjb8gqb3jEe6tHsOYm" alt=""><figcaption></figcaption></figure>

### Custom Grab Points

**Overview**\
A grab point is a designated position or reference on a 3D game object that defines where an interaction, such as grabbing or attaching, occurs. It guides how an object is held or manipulated during gameplay.

***

#### **Setting Up 3D Objects for Grab Points**

Game objects and their first-degree child objects, whether they contain components or are empty objects, are considered potential grab points.

For example, in a 3D modeling software like Blender:

<figure><img src="https://2852117255-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F63VL6Q29islcN2glZB10%2Fuploads%2FCF0ZFON5jvFecFWwAdHT%2Fimage.png?alt=media&#x26;token=65880989-5f5d-4fc2-b859-584a336519cc" alt=""><figcaption></figcaption></figure>

* An empty object named "Corner Grab Point" positioned at the corner of a parent cube object.
* A "Sphere" object positioned on the face side of the parent cube.

These two child objects, along with the parent cube's origin position, are treated as potential grab points.

**Note:** When the cube object is converted into a Spark file, the default grab point will be set to the center of the parent object, regardless of the number of child objects in the exported 3D asset.

***

#### **Defining Custom Grab Points in an Existing Spark**

By default, any Sparkified 3D object has its grab point set to the center of the object.

To define a custom grab point in an existing Spark:

1. Open the Spark file.
2. Enable the **"Use Custom Grab Points"** checkbox.

Two dropdown options, **Grab Point Primary** and **Grab Point Secondary**, will appear. These dropdowns allow the selection of:

* The parent object (e.g., CubeM).
* Any child objects, such as "Corner Grab Point" or "Sphere."

<figure><img src="https://2852117255-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F63VL6Q29islcN2glZB10%2Fuploads%2FMSyMsWD4x84XRd8NEUmG%2Fimage.png?alt=media&#x26;token=2fd2dcda-1ae9-4a76-99b3-42dd8898a351" alt=""><figcaption></figcaption></figure>

**Example:**

* The primary grab point can be set to "Corner Grab Point."
* The secondary grab point can be set to "Sphere."

<figure><img src="https://2852117255-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F63VL6Q29islcN2glZB10%2Fuploads%2FniNFcRW8HiFPvClDZSEP%2Fimage.png?alt=media&#x26;token=28ca31ca-3368-42f0-bafa-8934ca44a8b2" alt=""><figcaption></figcaption></figure>

**Limitations (as of v1.16.1):**\
Custom grab points cannot be defined during the Spark creation process. They can only be configured by opening an existing Spark in the Sparkifier app.

***

**Adding Grab Points to an Existing Spark**\
Adding new grab points directly to an existing Spark is not supported in version 1.16.1.

**Workaround:**

1. Access the source 3D object file.
2. Add empty objects to define desired grab points.
3. Convert the 3D object to a Spark.
4. Open the Spark in the Sparkifier app to define custom grab points.

This feature is under development, and future updates will include enhanced functionality for adding grab points directly to Sparks.

\
