Understanding Parameter Types in Gamesmith Studio

Modified on Thu, 22 Jan at 6:01 PM

In Gamesmith Studio, parameters (and variables) are the backbone of your game’s data. Whether you are defining a property on a Blueprint, a value inside a Component, or an input for an Action, choosing the right parameter type ensures that your logic is stable, your "Play Mode" simulation is accurate, and your engine exports (Unity, Unreal, Godot) are perfectly typed.


The Core Parameter Types

1. Boolean (Bool)

The simplest type, representing a True or False state.


Best for: Toggle states like is_locked, has_met_player, or is_hidden.


In Flow: Used as the primary input for Condition Nodes to branch the execution path.


2. Integer (Int)

Whole numbers without decimals.


Best for: Counting items, level numbers, or discrete stats like gold_amount or strength.


Constraints: You can set a Min/Max range (e.g., preventing a player_level from dropping below 1).


3. Float

Numbers that allow for decimal points.


Best for: Precise measurements like movement_speed, health_percentage, or gravity_scale.


Precision: You can define how many decimal places the editor should track.


4. String

A sequence of text characters.


Best for: Names, descriptions, or unique identifiers like quest_tag.


Rich Text Integration: In the Flow Editor, Strings can be used in Dialogue nodes with variable injection (e.g., "Hello, {{player_name}}!").


Advanced Selection Types

5. Enum (Pick from List)

Short for "Enumeration," this allows you to create a pre-defined list of options where only one can be selected.


Best for: Mutually exclusive states like rarity (Common, Rare, Legendary) or faction_alignment (Friendly, Neutral, Hostile).


Why use it? It prevents data entry errors. Instead of typing "Friendly" manually, the designer simply picks it from a dropdown.


6. EnumMC (Pick Multiple From List)

A powerful variation of the Enum that allows for multiple selections from the list simultaneously.


Best for: Tags, traits, or elemental types. For example, a "Spell" might be both Fire and AreaOfEffect.


In Flow: You can use "Includes" logic to check if a specific tag is present within the selection.


7. Asset Reference

This allows you to reference a specific asset.  For example, you might have a 'Player' Blueprint with an 'Equipped Weapon', where 'Weapon' is the target Blueprint.  This allows you to build relationships between Assets.


Asset References support inheritance.  If you have a 'Weapon' Blueprint whose parent is an 'Item' Blueprint and create an Asset Reference that allows you to select Items, Weapons can also be selected.


Note:  This type of parameter will export in the Blueprint/Class definition, but the value of Assets will need to manually tied together by your development team.


8. Asset Collection

Asset Collection is a powerful tool, allowing you to select multiple Assets of a specific Blueprint type.


Asset Collections support inheritance.  If you have a 'Weapon' Blueprint whose parent is an 'Item' Blueprint and create an Asset Reference that allows you to select Items, Weapons can also be selected.


You can loop through Asset Collections in the Flow Editor.


Note:  This type of parameter will export in the Blueprint/Class definition, but the value of Assets will need to manually tied together by your development team.


9. Asset With Component

This allows you to select any Asset that has a specific Component or whose Blueprint has a specific component.  For use with composition/component based design.


Note:  This type of parameter will export in the Blueprint/Class definition, but the value of Assets will need to manually tied together by your development team.


10. Probability Table

This is a more powerful version of an Asset Collection.  You can select a list of Assets and assign a weight to each of the values.  Using a Randomizer on the Flow Editor, you can randomly select from these assets based on the weight - the higher the weight, the more often the item will be selected.


Note that the weight is a float, so it supports decimals.


Best used for:  Random item drops, combat action selection (For example: 25% chance to heal themselves, 75% chance to damage the player)


Note:  This type of parameter will not export in the Blueprint/Class definition or Assets.  They will need to manually built together by your development team.


Logic & Parameter Safety

Type-Safe Connections

Gamesmith Studio enforces Referential Integrity at the data level. If an Action requires an Integer (like damage_amount), the Call Action Node will prevent you from plugging a String variable into that slot. This ensures that when you export your project to a game engine, the code is already "compiled" and ready to run.


Best Practices

Use Enums Over Strings: Whenever a value has a fixed set of options, use an Enum. It makes your logic easier to read and far less prone to typos.


Clamp Your Numbers: Use Min/Max constraints on Integers and Floats to prevent "impossible" game states, like a character having -50 health.


Promote Wisely: If a local Flow parameter needs to be tracked across the whole game, use the Promote to Global tool to move it to the Project level without breaking your existing flows.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article