# How to use System-\>setParameterByNameWithLabel

**URL:** <https://qa.fmod.com/t/how-to-use-system-setparameterbynamewithlabel/22511>\
**Category:** Unreal Engine\
**Tags:** ue4, cpp\
**Created:** [January 16, 2025, 9:29am UTC](https://qa.fmod.com/t/how-to-use-system-setparameterbynamewithlabel/22511 "2025-01-16T09:29:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![rrzayev](https://avatars.discourse-cdn.com/v4/letter/r/7c8e57/32.png) [@rrzayev](https://qa.fmod.com/u/rrzayev)\
**Post date:** [January 16, 2025, 9:29am UTC](https://qa.fmod.com/t/how-to-use-system-setparameterbynamewithlabel/22511/1 "2025-01-16T09:29:42Z")

</div>

Hello, we have a string parameter (label) in our project on FMOD side, I need to update it on C++ side in Unreal.

The function that I have been using so far supports only float arguments:  
UFMODBlueprintStatics::SetGlobalParameterByName(FName Name, float Value)

I looked inside FMOD source code, and saw two cases where setParameterByNameWithLabel API is provided.

1. Instances
2. System

Problem with instances in our case is that in order to set parameter, i need to play instance to get its pointer. If I play the instance, it will start playing via previous incorrect parameter. I want to be able to update param first and then play the sound. That’s why not completely sure about the instance approach.

About system, I have no idea how to use it in C++. I was only using:  
SetGlobalParameterByName and UFMODBlueprintStatics::PlayEvent functions.

Any help would be greatly appreciated : )

Couldn’t find any good code snippets on how to init system and use it

---

<div class="post-metadata">

**Author:** ![rrzayev](https://avatars.discourse-cdn.com/v4/letter/r/7c8e57/32.png) [@rrzayev](https://qa.fmod.com/u/rrzayev)\
**Post date:** [January 17, 2025, 2:53pm UTC](https://qa.fmod.com/t/how-to-use-system-setparameterbynamewithlabel/22511/2 "2025-01-17T14:53:32Z")

</div>

For anybody interested, you can use following snippet:

```auto
FMOD::Studio::System* StudioSystem = IFMODStudioModule::Get().GetStudioSystem(EFMODSystemContext::Runtime);
	if (StudioSystem != nullptr)
	{
		FMOD_RESULT Result = StudioSystem->setParameterByNameWithLabel("Footstep_Material", Param);
		if (Result != FMOD_OK)
		{
			UE_LOG(LogTemp, Warning, TEXT("SetFootstepParam(): Failed to set audio parameter, %d"),(int)Result);
		}
	}

```

---

<div class="post-metadata">

**Author:** ![cameron-fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/cameron-fmod/32/261_2.png) [@cameron-fmod](https://qa.fmod.com/u/cameron-fmod)\
**Post date:** [January 23, 2025, 2:44am UTC](https://qa.fmod.com/t/how-to-use-system-setparameterbynamewithlabel/22511/3 "2025-01-23T02:44:06Z")

</div>

It appears that our integration is missing the blueprint functions for setting parameters using labels, I have made a task to investigate adding these in an upcoming release.
