# Packaging Xbox One UE4 fails to start due to not packaging fmodl.dll

**URL:** <https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238>\
**Category:** Unreal Engine\
**Created:** [January 12, 2016, 3:53pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238 "2016-01-12T15:53:22Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![PompeyPaul](https://avatars.discourse-cdn.com/v4/letter/p/4bbf92/32.png) [@PompeyPaul](https://qa.fmod.com/u/PompeyPaul)\
**Post date:** [January 12, 2016, 3:53pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/1 "2016-01-12T15:53:22Z")

</div>

When we package Xbox One builds of our game we find that they fail to start. Using the kernel debugger it appears that fmodl.dll (& I presume I need fmodstudiol.dll?) is not packaged into the build and thus the executable is failing to start.

How do I ensure that fmodl.dll is packaged into Xbox One?

---

<div class="post-metadata">

**Author:** ![PompeyPaul](https://avatars.discourse-cdn.com/v4/letter/p/4bbf92/32.png) [@PompeyPaul](https://qa.fmod.com/u/PompeyPaul)\
**Post date:** [January 12, 2016, 5:01pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/2 "2016-01-12T17:01:51Z")

</div>

> [@](#):
>
> When we package Xbox One builds of our game we find that they fail to start. Using the kernel debugger it appears that fmodl.dll (& I presume I need fmodstudiol.dll?) is not packaged into the build and thus the executable is failing to start.
> 
> How do I ensure that fmodl.dll is packaged into Xbox One?

Looking closer there are some other threads on here about FMOD & Xbox One. I don’t understand how PC packages correctly though with the dlls winding up in the finished build?

---

<div class="post-metadata">

**Author:** ![graeme](https://avatars.discourse-cdn.com/v4/letter/g/50afbb/32.png) [@graeme](https://qa.fmod.com/u/graeme)\
**Post date:** [January 13, 2016, 12:07am UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/3 "2016-01-13T00:07:42Z")

</div>

On PC, the UE4 engine automatically takes care of deployment of plugin dlls. But apparently this feature has not yet been rolled out to other platforms. So on Xbox One there are some manual steps you have to do.

You’ve probably found this already, but here is a link to the FMOD UE4 documentation that explains how to deploy the plugin on various platforms:

[http://www.fmod.org/documentation/#content/generated/engine\_ue4/deployment.html](http://www.fmod.org/documentation/#content/generated/engine_ue4/deployment.html)

---

<div class="post-metadata">

**Author:** ![PompeyPaul](https://avatars.discourse-cdn.com/v4/letter/p/4bbf92/32.png) [@PompeyPaul](https://qa.fmod.com/u/PompeyPaul)\
**Post date:** [January 29, 2016, 4:42pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/4 "2016-01-29T16:42:43Z")

</div>

> [@](#):
>
> On PC, the UE4 engine automatically takes care of deployment of plugin dlls. But apparently this feature has not yet been rolled out to other platforms. So on Xbox One there are some manual steps you have to do.
> 
> You’ve probably found this already, but here is a link to the FMOD UE4 documentation that explains how to deploy the plugin on various platforms:
> 
> [http://www.fmod.org/documentation/#content/generated/engine\_ue4/deployment.html](http://www.fmod.org/documentation/#content/generated/engine_ue4/deployment.html)

Hello. Initially that link above did work but it was because I had a legacy plugin in my engine directory. Once this was deleted the deploy started to fail. It’s because the plugin is now in the game directory so this line:

```
		string FMODDLLPath = Path.Combine(Path.GetFullPath(BuildConfiguration.RelativeEnginePath), "Plugins/FMODStudio/Binaries/XboxOne/");

```

Needs to be:

```
		string FMODDLLPath = Path.Combine(Path.GetFullPath(InTarget.ProjectDirectory), "Plugins/FMODStudio/Binaries/XboxOne/");

```

This seems to work after an UnrealEngineBuildTool rebuild & UnrealFrontEnd

---

<div class="post-metadata">

**Author:** ![geoff](https://avatars.discourse-cdn.com/v4/letter/g/a3d4f5/32.png) [@geoff](https://qa.fmod.com/u/geoff)\
**Post date:** [February 2, 2016, 5:09am UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/5 "2016-02-02T05:09:13Z")

</div>

Hi Paul,  
Thanks for the feedback. I’ll look in this and update the docs.

---

<div class="post-metadata">

**Author:** ![PompeyPaul](https://avatars.discourse-cdn.com/v4/letter/p/4bbf92/32.png) [@PompeyPaul](https://qa.fmod.com/u/PompeyPaul)\
**Post date:** [July 13, 2016, 2:59pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/6 "2016-07-13T14:59:46Z")

</div>

Hello,  
That link now seems to fail when using latest FMOD & UE4.12.4. Specifically:

Deployment on XBox One  
Add the following to StageRuntimeDependenciesFromReceipt in DeploymentContext.cs, just before the call to StageFile:

```
    // PLUGIN DEPLOYMENT START
    foreach (BuildProperty p in Receipt.Properties)
    {
        if (p.Name.Equals("Platform") && p.Value.Equals("XboxOne"))
        {
            RuntimeDependency.StagePath = RuntimeDependency.Path.Substring(RuntimeDependency.Path.LastIndexOf('\\') + 1);
        }
    }
    // PLUGIN DEPLOYMENT END

```

Is now producing the following error when I try and launch:

LogPlayLevel: DeploymentContext.cs(433,42): error CS1061: ‘TargetReceipt’ does not contain a definition for ‘Properties’ and no extension method ‘Properties’ accepting a first argument of type ‘TargetReceipt’ could be found (are you missing a using directive or an assembly reference?) [C:\src\PHX\M\Engine\Source\Programs\AutomationTool\AutomationUtils\Automa  
tionUtils.Automation.csproj]  
LogPlayLevel: DeploymentContext.cs(433,15): error CS0246: The type or namespace name ‘BuildProperty’ could not be found (are you missing a using directive or an assembly reference?) [C:\src\PHX\M\Engine\Source\Programs\AutomationTool\AutomationUtils\AutomationUtils.Automation.csproj]  
LogPlayLevel: DeploymentContext.cs(437,26): error CS1061: ‘RuntimeDependency’ does not contain a definition for ‘StagePath’ and no extension method ‘StagePath’ accepting a first argument of type ‘RuntimeDependency’ could be found (are you missing a using directive or an assembly reference?) [C:\src\PHX\M\Engine\Source\Programs\AutomationTool\AutomationUtils  
AutomationUtils.Automation.csproj]

Wondering what the work flow is for deploying FMOD on UE4.12.4 now days? Thanks.

---

<div class="post-metadata">

**Author:** ![geoff](https://avatars.discourse-cdn.com/v4/letter/g/a3d4f5/32.png) [@geoff](https://qa.fmod.com/u/geoff)\
**Post date:** [July 20, 2016, 3:38am UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/7 "2016-07-20T03:38:22Z")

</div>

I’m looking at this now and I’ll update the answer with the new method.

---

<div class="post-metadata">

**Author:** ![geoff](https://avatars.discourse-cdn.com/v4/letter/g/a3d4f5/32.png) [@geoff](https://qa.fmod.com/u/geoff)\
**Post date:** [July 20, 2016, 4:42am UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/8 "2016-07-20T04:42:43Z")

</div>

Unreal 4.12 still requires a workaround. The updated one is here, which should work regardless of whether FMODStudio is in the game or the engine plugins directory. I’ll update the official docs for next release, as well as pinging Epic for a better ETA on real support.

Add the following to GetFilesToDeployOrStage in XboxOnePlatform.Automation.cs, before the end of the function:

```
		// FMOD code start
		string FMODDLLPath = null;
		if (Directory.Exists(Path.Combine(SC.ProjectRoot, "Plugins/FMODStudio")))
		{
			FMODDLLPath = Path.Combine(SC.ProjectRoot, "Plugins/FMODStudio/Binaries/XBoxOne/");
		}
		else if (Directory.Exists(Path.Combine(SC.LocalRoot, "Engine/Plugins/FMODStudio")))
		{
			FMODDLLPath = Path.Combine(SC.LocalRoot, "Engine/Plugins/FMODStudio/Binaries/XBoxOne/");
		}
		else 
		{
			LogError("Failed to find FMODStudio plugin in game or engine directory");
		}
		if (FMODDLLPath != null)
		{
			Log("Copying FMOD dlls to loose directory: " + RelativeBinPath);
			SC.StageFiles(StagedFileType.NonUFS, FMODDLLPath, "fmod.dll", false, null, RelativeBinPath, false, false);
			SC.StageFiles(StagedFileType.NonUFS, FMODDLLPath, "fmodL.dll", false, null, RelativeBinPath, false, false);
			SC.StageFiles(StagedFileType.NonUFS, FMODDLLPath, "fmodstudio.dll", false, null, RelativeBinPath, false, false);
			SC.StageFiles(StagedFileType.NonUFS, FMODDLLPath, "fmodstudioL.dll", false, null, RelativeBinPath, false, false);
		}
		// FMOD code end

```

Add the following to PrepTargetForDeployment in XboxOneDeploy.cs, before the end of the function:

```
		// FMOD code start
		string FMODDLLPath = null;
		if (Directory.Exists(Path.Combine(InTarget.ProjectDirectory.FullName, "Plugins/FMODStudio")))
		{
			FMODDLLPath = Path.Combine(InTarget.ProjectDirectory.FullName, "Plugins/FMODStudio/Binaries/XBoxOne/");
		}
		else if (Directory.Exists(Path.Combine(BuildConfiguration.RelativeEnginePath, "Plugins/FMODStudio")))
		{
			FMODDLLPath = Path.Combine(BuildConfiguration.RelativeEnginePath, "Plugins/FMODStudio/Binaries/XBoxOne/");
		}
		else 
		{
			Log.TraceWarning("Failed to find FMODStudio plugin in game or engine directory");
		}
		if (FMODDLLPath != null)
		{
			Log.TraceInformation("...copying the FMOD dlls...");
			string FMODDLLName = "fmod.dll";
			Log.TraceInformation("\tcopying " + FMODDLLPath + FMODDLLName + " to " + DestDir + "/" + FMODDLLName);
			CopyFile(FMODDLLPath + FMODDLLName, DestDir + "/" + FMODDLLName, true);
			FMODDLLName = "fmodL.dll";
			Log.TraceInformation("\tcopying " + FMODDLLPath + FMODDLLName + " to " + DestDir + "/" + FMODDLLName);
			CopyFile(FMODDLLPath + FMODDLLName, DestDir + "/" + FMODDLLName, true);
			FMODDLLName = "fmodstudio.dll";
			Log.TraceInformation("\tcopying " + FMODDLLPath + FMODDLLName + " to " + DestDir + "/" + FMODDLLName);
			CopyFile(FMODDLLPath + FMODDLLName, DestDir + "/" + FMODDLLName, true);
			FMODDLLName = "fmodstudioL.dll";
			Log.TraceInformation("\tcopying " + FMODDLLPath + FMODDLLName + " to " + DestDir + "/" + FMODDLLName);
			CopyFile(FMODDLLPath + FMODDLLName, DestDir + "/" + FMODDLLName, true);
		}
		// FMOD code end
```

---

<div class="post-metadata">

**Author:** ![choba](https://avatars.discourse-cdn.com/v4/letter/c/eada6e/32.png) [@choba](https://qa.fmod.com/u/choba)\
**Post date:** [February 16, 2017, 2:28pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/9 "2017-02-16T14:28:34Z")

</div>

> [@](#):
>
> Unreal 4.12 still requires a workaround. The updated one is here, which should work regardless of whether FMODStudio is in the game or the engine plugins directory. I’ll update the official docs for next release, as well as pinging Epic for a better ETA on real support.
> 
> Add the following to GetFilesToDeployOrStage in XboxOnePlatform.Automation.cs, before the end of the function:
> 
> ```
> // FMOD code start
> string FMODDLLPath = null;
> if (Directory.Exists(Path.Combine(SC.ProjectRoot, "Plugins/FMODStudio")))
> {
> FMODDLLPath = Path.Combine(SC.ProjectRoot, "Plugins/FMODStudio/Binaries/XBoxOne/");
> }
> else if (Directory.Exists(Path.Combine(SC.LocalRoot, "Engine/Plugins/FMODStudio")))
> {
> FMODDLLPath = Path.Combine(SC.LocalRoot, "Engine/Plugins/FMODStudio/Binaries/XBoxOne/");
> }
> else 
> {
> LogError("Failed to find FMODStudio plugin in game or engine directory");
> }
> if (FMODDLLPath != null)
> {
> Log("Copying FMOD dlls to loose directory: " + RelativeBinPath);
> SC.StageFiles(StagedFileType.NonUFS, FMODDLLPath, "fmod.dll", false, null, RelativeBinPath, false, false);
> SC.StageFiles(StagedFileType.NonUFS, FMODDLLPath, "fmodL.dll", false, null, RelativeBinPath, false, false);
> SC.StageFiles(StagedFileType.NonUFS, FMODDLLPath, "fmodstudio.dll", false, null, RelativeBinPath, false, false);
> SC.StageFiles(StagedFileType.NonUFS, FMODDLLPath, "fmodstudioL.dll", false, null, RelativeBinPath, false, false);
> }
> // FMOD code end
> 
> ```
> 
> Add the following to PrepTargetForDeployment in XboxOneDeploy.cs, before the end of the function:
> 
> ```
> // FMOD code start
> string FMODDLLPath = null;
> if (Directory.Exists(Path.Combine(InTarget.ProjectDirectory.FullName, "Plugins/FMODStudio")))
> {
> FMODDLLPath = Path.Combine(InTarget.ProjectDirectory.FullName, "Plugins/FMODStudio/Binaries/XBoxOne/");
> }
> else if (Directory.Exists(Path.Combine(BuildConfiguration.RelativeEnginePath, "Plugins/FMODStudio")))
> {
> FMODDLLPath = Path.Combine(BuildConfiguration.RelativeEnginePath, "Plugins/FMODStudio/Binaries/XBoxOne/");
> }
> else 
> {
> Log.TraceWarning("Failed to find FMODStudio plugin in game or engine directory");
> }
> if (FMODDLLPath != null)
> {
> Log.TraceInformation("...copying the FMOD dlls...");
> string FMODDLLName = "fmod.dll";
> Log.TraceInformation("\tcopying " + FMODDLLPath + FMODDLLName + " to " + DestDir + "/" + FMODDLLName);
> CopyFile(FMODDLLPath + FMODDLLName, DestDir + "/" + FMODDLLName, true);
> FMODDLLName = "fmodL.dll";
> Log.TraceInformation("\tcopying " + FMODDLLPath + FMODDLLName + " to " + DestDir + "/" + FMODDLLName);
> CopyFile(FMODDLLPath + FMODDLLName, DestDir + "/" + FMODDLLName, true);
> FMODDLLName = "fmodstudio.dll";
> Log.TraceInformation("\tcopying " + FMODDLLPath + FMODDLLName + " to " + DestDir + "/" + FMODDLLName);
> CopyFile(FMODDLLPath + FMODDLLName, DestDir + "/" + FMODDLLName, true);
> FMODDLLName = "fmodstudioL.dll";
> Log.TraceInformation("\tcopying " + FMODDLLPath + FMODDLLName + " to " + DestDir + "/" + FMODDLLName);
> CopyFile(FMODDLLPath + FMODDLLName, DestDir + "/" + FMODDLLName, true);
> }
> // FMOD code end
> 
> ```

Hi,

we tried to follow you documentation but somehow it seems we have an old version or the docu is not up to date. When I add the code part from the post above to the PrepTargetForDeployment function in XboxOneDeploy.cs the variable DestDir is never set. I am using 4.14.3 and the error is correct. The variable DestDir is set during this function but inside a for loop. When I follow the instruction the code part I paste into the file is outside this for loop so the variable is never set.  
Would be great to know to which dir the files need to be copied.  
Cheers

---

<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:** [February 16, 2017, 11:38pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/10 "2017-02-16T23:38:57Z")

</div>

As of 4.14 these modifications are no longer needed to deploy to Xbox One.

---

<div class="post-metadata">

**Author:** ![choba](https://avatars.discourse-cdn.com/v4/letter/c/eada6e/32.png) [@choba](https://qa.fmod.com/u/choba)\
**Post date:** [February 17, 2017, 10:59am UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/11 "2017-02-17T10:59:19Z")

</div>

Thanks for the answer. I tried it without the modifications and then get the following error:  
fmodL\_vc.lib(fmodL.dll) : error LNK2001: Nicht aufgelöstes externes Symbol “\_\_delayLoadHelper2”.  
Would be great if you could update the documentation which modifications are needed and which not.

---

<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:** [February 19, 2017, 9:39pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/12 "2017-02-19T21:39:17Z")

</div>

Sorry Tobias, to clarify:  
If you are using an older version of our UE4 Integration (\<1.08.15) it is safe to update to 1.08.16. This is also needed for the changes Epic put in place with Xbox One.

With that and Unreal Engine 4.14 or later, these modifications should no longer be required.

---

<div class="post-metadata">

**Author:** ![choba](https://avatars.discourse-cdn.com/v4/letter/c/eada6e/32.png) [@choba](https://qa.fmod.com/u/choba)\
**Post date:** [February 20, 2017, 2:44pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/13 "2017-02-20T14:44:16Z")

</div>

Hi Cameron,  
thanks for the answer and now I deploy everything to Xbox but the game crashes with this error:  
0128:012c @ 00007500 - LdrpFindOrMapDependency - ERROR: Loading DLL fmodL.dll failed with status 0xc0000135  
0128:012c @ 00007500 - LdrpInitializeProcess - ERROR: Walking the import tables of the executable and its static imports failed with status 0xc0000135

Am I still missing some dlls?  
I found this entry in a thread, but you mentioned there is no need for further editing source files manually?  
[https://www.fmod.org/questions/question/cooking-xbox-with-ue-4-9-2/](https://www.fmod.org/questions/question/cooking-xbox-with-ue-4-9-2/)

---

<div class="post-metadata">

**Author:** ![songofiron](https://avatars.discourse-cdn.com/v4/letter/s/bc8723/32.png) [@songofiron](https://qa.fmod.com/u/songofiron)\
**Post date:** [November 10, 2020, 7:18am UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/14 "2020-11-10T07:18:41Z")

</div>

I am having the same issue right now in 2.24.3 as originally described in this thread from 5 years ago. I tried the code but that ends up coming up a few more of the missing sybmol warnings.

this is the closes to the exact issue i have been, is there any more info or updates to this?

---

<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:** [November 17, 2020, 5:30am UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/15 "2020-11-17T05:30:19Z")

</div>

Have you followed the steps for modifying the build files?

[https://fmod.com/resources/documentation-ue4?version=2.1&page=platform-specifics.html#copying-dlls-to-build](https://fmod.com/resources/documentation-ue4?version=2.1&page=platform-specifics.html#copying-dlls-to-build)

---

<div class="post-metadata">

**Author:** ![denismaltzev](https://avatars.discourse-cdn.com/v4/letter/d/ccd318/32.png) [@denismaltzev](https://qa.fmod.com/u/denismaltzev)\
**Post date:** [November 25, 2020, 5:37pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/16 "2020-11-25T17:37:16Z")

</div>

Hi, Cameron  
I have the same issue with UE 4.24 and FMOD 2.01.05  
FMOD dll’s was copied to Saved/XboxOne/Layout/Image/Loose/Project\Binaries\XboxOne/ directory belong .exe but in Layout.xml destination path set to \<game\>\Plugins\FMODStudio\Binaries\XboxOne and the same path when deploying to devkit

---

<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:** [December 2, 2020, 5:04am UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/17 "2020-12-02T05:04:21Z")

</div>

I am currently looking into this and should have more for you shortly.

---

<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:** [December 2, 2020, 11:57pm UTC](https://qa.fmod.com/t/packaging-xbox-one-ue4-fails-to-start-due-to-not-packaging-fmodl-dll/12238/18 "2020-12-02T23:57:32Z")

</div>

The fix for this is in for the next release, in the meantime I updated it on our Github repo:

[XboxOne - Fixed users having to modify engine code to copy libs. · fmod/ue4integration@c45faf4 (github.com)](https://github.com/fmod/ue4integration/commit/c45faf499ff4d74a6ef991cef70788dfec6afdd0)
