x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Continuous errors when packaging for HTML

I have a Tank shooter game that I am creating and I am trying to build the game so I can put it on my website (so am packaging in HTML) My build config is for Development (since its not completed yet but works fine). Would really appreciate if someone could help me.

I get these errors when trying to build:

LogUObjectGlobals: Destroyed PersistentFrame Addr=0x000002a14c74d648, Size=40 UATHelper: Packaging (HTML5): Running AutomationTool... UATHelper: Packaging (HTML5): Parsing command line: -ScriptsForProject="C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/WarTanks.uproject" BuildCookRun -nocompile -nocompileeditor -installed -nop4 -project="C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/WarTanks.uproject" -cook -stage -archive -archivedirectory="C:/Users/maxst/ Desktop/TankShooter/TankShooter - L164/WarTanks/_Build/HTML" -package -clientconfig=Development -ue4exe=UE4Editor-Cmd.exe -prereqs -nodebuginfo -targetplatform=HTML5 -build -utf8output UATHelper: Packaging (HTML5): Setting up ProjectParams for C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\WarTanks.uproject UATHelper: Packaging (HTML5): BUILD COMMAND STARTED UATHelper: Packaging (HTML5): Running: E:\UNREAL ENGINE\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe WarTanks HTML5 Development -Project="C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\WarTanks.uproject" "C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\WarTanks.uproject" -NoUBTMakefiles -remoteini="C:\Users\maxst\Deskto p\TankShooter\TankShooter - L164\WarTanks" -skipdeploy -noxge -generatemanifest -NoHotReload UATHelper: Packaging (HTML5): Using 'git status' to determine working set for adaptive non-unity build. UATHelper: Packaging (HTML5): HTML5ToolChain: TargetWebGL2 = True UATHelper: Packaging (HTML5): HTML5ToolChain: EnableSIMD = False UATHelper: Packaging (HTML5): HTML5ToolChain: EnableMultithreading False UATHelper: Packaging (HTML5): HTML5ToolChain: EnableTracing = False UATHelper: Packaging (HTML5): Took 0.7906836s to run UnrealBuildTool.exe, ExitCode=0 UATHelper: Packaging (HTML5): Running: E:\UNREAL ENGINE\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe WarTanks HTML5 Development -Project="C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\WarTanks.uproject" "C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\WarTanks.uproject" -NoUBTMakefiles -remoteini="C:\Users\maxst\Deskto p\TankShooter\TankShooter - L164\WarTanks" -skipdeploy -noxge -NoHotReload -ignorejunk UATHelper: Packaging (HTML5): Using 'git status' to determine working set for adaptive non-unity build. UATHelper: Packaging (HTML5): HTML5ToolChain: TargetWebGL2 = True UATHelper: Packaging (HTML5): HTML5ToolChain: EnableSIMD = False UATHelper: Packaging (HTML5): HTML5ToolChain: EnableMultithreading False UATHelper: Packaging (HTML5): HTML5ToolChain: EnableTracing = False UATHelper: Packaging (HTML5): HTML5ToolChain: Development -Oz favor size over speed UATHelper: Packaging (HTML5): Setting Emscripten SDK: located in E:\UNREAL ENGINE\UE_4.19\Engine\Extras\ThirdPartyNotUE\emsdk\emscripten\1.37.19 UATHelper: Packaging (HTML5): emcc ExitCode: 0 UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # Note: If you put paths relative to the home directory, do not forget os.path.expanduser UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # Note: On Windows, remember to escape backslashes! I.e. EMSCRIPTEN_ROOT='c:\emscripten\' is not valid, but EMSCRIPTEN_ROOT='c:\\emscripten\\' and EMSCRIPTEN_ROOT='c:/emscripten/' are. UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): import os UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # this helps projects using emscripten find it UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): EMSCRIPTEN_ROOT = os.path.expanduser(os.getenv('EMSCRIPTEN', 'E:\\UNREAL ENGINE\\UE_4.19\\Engine\\Extras\\ThirdPartyNotUE\\emsdk\\emscripten\\1.37.19')) # directory UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): LLVM_ROOT = os.path.expanduser(os.getenv('LLVM', 'E:\\UNREAL ENGINE\\UE_4.19\\Engine\\Extras\\ThirdPartyNotUE\\emsdk\\Win64\\clang\\e1.37.19_64bit')) # directory UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): BINARYEN_ROOT = 'E:\\UNREAL ENGINE\\UE_4.19\\Engine\\Extras\\ThirdPartyNotUE\\emsdk\\Win64\\clang\\e1.37.19_64bit\\binaryen' UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # If not specified, defaults to sys.executable. UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): PYTHON = 'E:\\UNREAL ENGINE\\UE_4.19\\Engine\\Extras\\ThirdPartyNotUE\\emsdk\\Win64\\python\\2.7.5.3_64bit\\python.exe' UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # Add this if you have manually built the JS optimizer executable (in Emscripten/tools/optimizer) and want to run it from a custom location. UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # Alternatively, you can set this as the environment variable EMSCRIPTEN_NATIVE_OPTIMIZER. UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): EMSCRIPTEN_NATIVE_OPTIMIZER = 'E:\\UNREAL ENGINE\\UE_4.19\\Engine\\Extras\\ThirdPartyNotUE\\emsdk\\Win64\\clang\\e1.37.19_64bit\\optimizer.exe' UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # See below for notes on which JS engine(s) you need UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): NODE_JS = os.path.expanduser(os.getenv('NODE', 'E:\\UNREAL ENGINE\\UE_4.19\\Engine\\Extras\\ThirdPartyNotUE\\emsdk\\Win64\\node\\4.1.1_64bit\\bin\\node.exe')) # executable UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): SPIDERMONKEY_ENGINE = [os.path.expanduser(os.getenv('SPIDERMONKEY', 'js'))] # executable UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): V8_ENGINE = os.path.expanduser(os.getenv('V8', 'd8')) # executable UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): JAVA = 'java' # executable UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): TEMP_DIR = 'C:\\Users\\maxst\\AppData\\Local\\Temp' UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): CRUNCH = os.path.expanduser(os.getenv('CRUNCH', 'crunch')) # executable UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): #CLOSURE_COMPILER = '..' # define this to not use the bundled version UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): ######################################################################################################## UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # Pick the JS engine to use for running the compiler. This engine must exist, or UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # nothing can be compiled. UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # Recommendation: If you already have node installed, use that. Otherwise, build v8 or UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # spidermonkey from source. Any of these three is fine, as long as it's UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # a recent version (especially for v8 and spidermonkey). UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): COMPILER_ENGINE = NODE_JS UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): #COMPILER_ENGINE = V8_ENGINE UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): #COMPILER_ENGINE = SPIDERMONKEY_ENGINE UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # All JS engines to use when running the automatic tests. Not all the engines in this list UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # must exist (if they don't, they will be skipped in the test runner). UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # Recommendation: If you already have node installed, use that. If you can, also build UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # spidermonkey from source as well to get more test coverage (node can't UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # run all the tests due to node issue 1669). v8 is currently not recommended UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): # here because of v8 issue 1822. UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5):
UATHelper: Packaging (HTML5): JS_ENGINES = [NODE_JS] # add this if you have spidermonkey installed too, SPIDERMONKEY_ENGINE] UATHelper: Packaging (HTML5): Performing 7 actions (4 in parallel) UATHelper: Packaging (HTML5): [1/7] Compile Tank.cpp UATHelper: Packaging (HTML5): [3/7] Compile TankPlayerController.cpp UATHelper: Packaging (HTML5): [2/7] Compile TankAimingComponent.cpp UATHelper: Packaging (HTML5): [4/7] Compile TankTurret.cpp UATHelper: Packaging (HTML5): In file included from C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Private/TankAimingComponent.cpp:3: UATHelper: Packaging (HTML5): C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Public/TankAimingComponent.h:5:10: warning: non-portable path to file '"Kismet/GameplayStatics.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path] UATHelper: Packaging (HTML5): #include "kismet/GameplayStatics.h" UATHelper: Packaging (HTML5): ^~~~~~~~~~~~~~~~~~~~~~~~~~ UATHelper: Packaging (HTML5): "Kismet/GameplayStatics.h" PackagingResults: Warning: non-portable path to file '"Kismet/GameplayStatics.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path] UATHelper: Packaging (HTML5): In file included from C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Private/Tank.cpp:6: UATHelper: Packaging (HTML5): C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Public/TankAimingComponent.h:5:10: warning: non-portable path to file '"Kismet/GameplayStatics.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path] UATHelper: Packaging (HTML5): #include "kismet/GameplayStatics.h" UATHelper: Packaging (HTML5): ^~~~~~~~~~~~~~~~~~~~~~~~~~ UATHelper: Packaging (HTML5): "Kismet/GameplayStatics.h" PackagingResults: Warning: non-portable path to file '"Kismet/GameplayStatics.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path] UATHelper: Packaging (HTML5): C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Private/TankAimingComponent.cpp:58:25: error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): auto Time = GetWorld()->GetTimeSeconds(); UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): Runtime/Core/Public/GenericPlatform/GenericPlatformMisc.h:823:25: note: forward declaration of 'UWorld' UATHelper: Packaging (HTML5): static bool Exec(class UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Out) UATHelper: Packaging (HTML5): ^ PackagingResults: Error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Private/Tank.cpp:55:31: error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): auto Projectile = GetWorld()->SpawnActor( UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): Runtime/Core/Public/GenericPlatform/GenericPlatformMisc.h:823:25: note: forward declaration of 'UWorld' UATHelper: Packaging (HTML5): static bool Exec(class UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Out) UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Private/TankPlayerController.cpp:59:16: error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): if (GetWorld()->LineTraceSingleByChannel( UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): Runtime/Core/Public/GenericPlatform/GenericPlatformMisc.h:823:25: note: forward declaration of 'UWorld' UATHelper: Packaging (HTML5): static bool Exec(class UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Out) UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): 1 error generated. PackagingResults: Error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): ERROR:root:compiler frontend failed to generate LLVM bitcode, halting UATHelper: Packaging (HTML5): C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Private/TankTurret.cpp:8:72: error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): auto RotationChange = RelativeSpeed MaxDegreesPerSecond GetWorld()->DeltaTimeSeconds; UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): Runtime/Core/Public/GenericPlatform/GenericPlatformMisc.h:823:25: note: forward declaration of 'UWorld' UATHelper: Packaging (HTML5): static bool Exec(class UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Out) UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): 1 error generated. UATHelper: Packaging (HTML5): ERROR:root:compiler frontend failed to generate LLVM bitcode, halting PackagingResults: Error: member access into incomplete type 'UWorld' PackagingResults: Error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): [5/7] Compile TankBarrel.cpp UATHelper: Packaging (HTML5): [6/7] Compile TankAIController.cpp UATHelper: Packaging (HTML5): 1 warning and 1 error generated. UATHelper: Packaging (HTML5): ERROR:root:compiler frontend failed to generate LLVM bitcode, halting UATHelper: Packaging (HTML5): 1 warning and 1 error generated. UATHelper: Packaging (HTML5): ERROR:root:compiler frontend failed to generate LLVM bitcode, halting UATHelper: Packaging (HTML5): C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Private/TankAIController.cpp:17:42: error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): auto PlayerTank = Cast(GetWorld()->GetFirstPlayerController()->GetPawn()); UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): Runtime/Core/Public/GenericPlatform/GenericPlatformMisc.h:823:25: note: forward declaration of 'UWorld' UATHelper: Packaging (HTML5): static bool Exec(class UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Out) UATHelper: Packaging (HTML5): ^ PackagingResults: Error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Private/TankBarrel.cpp:9:73: error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): auto ElevationChange = RelativeSpeed MaxDegreesPerSecond GetWorld()->DeltaTimeSeconds; PackagingResults: Error: member access into incomplete type 'UWorld' UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): Runtime/Core/Public/GenericPlatform/GenericPlatformMisc.h:823:25: note: forward declaration of 'UWorld' UATHelper: Packaging (HTML5): static bool Exec(class UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Out) UATHelper: Packaging (HTML5): ^ UATHelper: Packaging (HTML5): 1 error generated. UATHelper: Packaging (HTML5): ERROR:root:compiler frontend failed to generate LLVM bitcode, halting UATHelper: Packaging (HTML5): 1 error generated. UATHelper: Packaging (HTML5): ERROR:root:compiler frontend failed to generate LLVM bitcode, halting UATHelper: Packaging (HTML5): ERROR: UBT ERROR: Failed to produce item: C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\Binaries\HTML5\WarTanks.js PackagingResults: Error: UBT ERROR: Failed to produce item: C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\Binaries\HTML5\WarTanks.js UATHelper: Packaging (HTML5): Total build time: 13.55 seconds (Local executor: 0.00 seconds) UATHelper: Packaging (HTML5): Took 13.7475471s to run UnrealBuildTool.exe, ExitCode=5 UATHelper: Packaging (HTML5): ERROR: Command failed (Result:5): E:\UNREAL ENGINE\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe WarTanks HTML5 Development -Project="C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\WarTanks.uproject" "C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\WarTanks.uproject" -NoUBTMakefiles -remotei ni="C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks" -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2018.07.11-10.21.45.txt' UATHelper: Packaging (HTML5): (see C:\Users\maxst\AppData\Roaming\Unreal Engine\AutomationTool\Logs\E+UNREAL+ENGINE+UE_4.19\UAT_Log.txt for full exception trace) PackagingResults: Error: Command failed (Result:5): E:\UNREAL ENGINE\UE_4.19\Engine\Binaries\DotNET\UnrealBuildTool.exe WarTanks HTML5 Development -Project="C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\WarTanks.uproject" "C:\Users\maxst\Desktop\TankShooter\TankShooter - L164\WarTanks\WarTanks.uproject" -NoUBTMakefiles -remoteini="C:\Users \maxst\Desktop\TankShooter\TankShooter - L164\WarTanks" -skipdeploy -noxge -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2018.07.11-10.21.45.txt' UATHelper: Packaging (HTML5): AutomationTool exiting with ExitCode=5 (5) UATHelper: Packaging (HTML5): BUILD FAILED PackagingResults: Error: Unknown Error

Product Version: UE 4.19
Tags:
more ▼

asked Jul 11 '18 at 01:05 AM in Packaging & Deployment

avatar image

max_stewart
1

avatar image HollingsworthDan Sep 21 '18 at 05:56 PM

Can you do this for me? Yes. Will I do this for you? NO. You are going to have to take responsibility here.

80% of your log is just filling space and wasting time.

Which error are you trying to solve? Create a ticket for each one. Start with the first error. IT is likely that downstream errors are caused by earlier errors. And fixing the earlier error makes the down stream error go away.

Your first error:

C:/Users/maxst/Desktop/TankShooter/TankShooter - L164/WarTanks/Source/WarTanks/Private/TankAimingComponent.cpp:58:25: error: member access into incomplete type 'UWorld'

Is a compiler error. You cannot package a game that does not compile.

Fix the compiler error(s) then Cook. Then package.

You might try going to the top of the file 'TankAimingComponent.cpp' and adding the proper include which will include the member declarations for UWorld. like #include "World.h". That is where the members are declared. And that would make UWorld a complete type.

These are simple c++ programming issues. They have nothing at all to do with unreal.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

0 answers: sort voted first
Be the first one to answer this question
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question