Giter Site home page Giter Site logo

unreal.hx's Introduction

Unreal.hx

Unreal.hx is a plugin for Unreal Engine 4 that allows you to write code in the Haxe programming language. Haxe is a modern, high-level, type-safe programming language that offers high performance critical for game development.

Main Features

  • Haxe compiles directly to C++, for high runtime performance.
  • Full access to the entire Unreal C++ API - including delegates and lambdas.
  • Full support for UCLASS creation, subclassing, and Blueprints.
  • Very fast compilation using hxcpp's virtual machine, cppia

Haxe Features

  • Familiar C/Java-style syntax.
  • Memory management via garbage collection.
  • Strict type safety, with a powerful type inference engine.
  • Many modern features such as lambdas/closures, generics, abstract data types (GADT's), reflection, metadata, and a powerful macro system for language extension.

Setup

  • Make sure you've got a working haxe installation, and have the hxcpp and hxcs haxelibs installed
  • Clone this library or add it as a submodule to your Unreal project in the Plugins/UnrealHx directory
  • Change your Build.cs file to extend HaxeModuleRules instead of ModuleRules
  • Build your project the same way you'd build it before
  • A new directory, Haxe, will be created at the root of your project. Add any class to be compiled to Haxe/Static or Haxe/Scripts, and you may add new compiler arguments to the arguments.hxml file
  • After the first build, you may call haxe gen-build-script.hxml inside the Haxe directory to compile the Scripts without having to do a full C++ build (see our wiki)
  • For the latest development, Haxe 3.4.x, 4.0.0-preview1 are supported, and Unreal version 4.19 is supported

Examples

package mygame;
import unreal.*;

@:uclass
class AMyActor extends AActor {
  // make a property that is editable in the editor.
  @:uproperty(EditDefaultsOnly, Category=Inventory)
  var items:TArray<AActor>;

  // make a function that is callable from C++/Blueprints
  @:ufunction(BlueprintCallable, Category=Inventory)
  public function addToInventory(item:AActor) {
    items.push(item);
  }

  // override native C++ function
  override function Tick(deltaTime:Float32) : Void {
    super.Tick(deltaTime); // call super functions
    trace('Hello, World!'); // all traces are redirected to Unreal's Log
    trace('Warning', 'Some Warning'); // and it supports Warning, Error and Fatal as well
  }

  // tell Unreal to call our Tick function
  public function new(wrapped) {
    super(wrapped);
    this.PrimaryActorTick.bCanEverTick = true;
  }
}
package mygame;
import unreal.*;

@:uclass
class AMyGameMode extends AGameMode {
  @:uproperty(BlueprintReadWrite)
  public var playerName:FString;

  @:ufunction(BlueprintCallable)
  public function makeExternalRequest(data:String) {
    // use Unreal C++ API to make an HTTP Request
    var httpRequest = FHttpModule.Get().CreateRequest();
    httpRequest.SetVerb("GET");
    httpRequest.SetHeader("Content-Type", "application/json");
    httpRequest.SetURL("www.mygame.com/players");

    // use Haxe JSON library to encode data.
    var json = {
      name: this.playerName,
      playerData: data,
    };
    httpRequest.SetContentAsString(haxe.Json.stringify(json));

    // Receive a callback when the response is received.
    httpRequest.OnProcessRequestComplete.BindLambda(function (request, response, success) {
      trace('response received: ${response.GetContentAsString()}');
    });

    httpRequest.ProcessRequest();
  }
}

For a complete example project, check out https://github.com/waneck/HaxePlatformerGame , which is a port of Unreal's Platformer Game demo to Haxe 3.3/Unreal 4.11

More information is available on the Wiki

unreal.hx's People

Contributors

chetrippo avatar danbrakeley avatar djlennon avatar dogles avatar hhcrhinehart avatar jenkins-proletariat avatar leereilly avatar paulproletariat avatar prolenorm avatar waneck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unreal.hx's Issues

[4.19] Cppia bad link

In my tests I'm getting this error when I use haxe.Json package.

var obj = { content: "asd" };
haxe.Json.stringify(obj);

If "haxe.Json.stringify(obj);" is commented, the change works fine.

UE4.14 and HaxePlatformerGame sample

@waneck I tried checking out the ue4.14 branch and using the HaxePlatformerGame sample as a head start but as soon as I try to open the project and convert it to 4.14 I get the following error:

Project files could not be generated. Log output:


Running Mono...

Setting up Mono
/Users/Shared/UnrealEngine/4.14/Engine /Users/Shared/UnrealEngine/4.14/Engine/Binaries/Mac
Discovering modules, targets and source code for project...
Messages while compiling /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Intermediate/Build/BuildRules/PlatformerGameModuleRules.dll:
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame.Target.cs(25,48) : error CS0115: `PlatformerGameTarget.GUBP_GetPlatforms_MonolithicOnly(UnrealBuildTool.UnrealTargetPlatform)' is marked as an override but no suitable method found to override
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame.Target.cs(39,48) : error CS0115: `PlatformerGameTarget.GUBP_GetBuildOnlyPlatforms_MonolithicOnly(UnrealBuildTool.UnrealTargetPlatform)' is marked as an override but no suitable method found to override
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame.Target.cs(61,53) : error CS0115: `PlatformerGameTarget.GUBP_GetConfigs_MonolithicOnly(UnrealBuildTool.UnrealTargetPlatform, UnrealBuildTool.UnrealTargetPlatform)' is marked as an override but no suitable method found to override
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGameEditor.Target.cs(25,21) : error CS0246: The type or namespace name `GUBPProjectOptions' could not be found. Are you missing an assembly reference?
UnrealBuildTool Exception: ERROR: UnrealBuildTool encountered an error while compiling source files

I've changed the build.xml of the project and commented out all the GUB* overrides and now it goes a bit further but still hangs at this:

MacBookPro-Valerio:PlatformerGame tanis$ ant build
Buildfile: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/build.xml

init-plugin:
     [exec] InitPlugin.hx:22: Inferring project location...
     [exec] InitPlugin.hx:13: Game location: ../../PlatformerGame.uproject
     [exec] InitPlugin.hx:48: Updating game project...
     [exec] InitPlugin.hx:50: Updating game module...
     [exec] InitPlugin.hx:148: Building BuildTool...
     [exec] InitPlugin.hx:18: Project update done.

build:
     [exec]
     [exec] Running Mono...
     [exec]
     [exec] /Users/Shared/UnrealEngine/4.14/Engine /Users/Shared/UnrealEngine/4.14/Engine
     [exec] Compiling with MacOSX SDK 10.12
     [exec] InitPlugin.hx:48: Updating game project...
     [exec] InitPlugin.hx:50: Updating game module...
     [exec] haxe -version
     [exec] HaxeCompiler: 3.4.0
     [exec] HaxeModuleRules.hx:230: baking externs
     [exec] haxe --cwd /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe -cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -D use-rtti-doc -D bake-externs -cpp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor --no-output --macro ue4hx.internal.ExternBaker.process(["/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs","/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Externs"], false) -D WITH_EDITOR -D BUILDTOOL_VERSION_LEVEL=4
     [exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/AActor.hx:877: characters 9-113 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
     [exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/AActor.hx:882: characters 9-111 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
     [exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/AActor.hx:887: characters 9-113 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
     [exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/AActor.hx:892: characters 9-113 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
     [exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs/unreal/UDataTableFunctionLibrary.hx:18: characters 16-249 : Warning : Unreal Glue: Const, PPtr or PRef is not supported on enums
     [exec] HaxeModuleRules.hx:265: compiling Haxe
     [exec] haxe --cwd /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe arguments.hxml -cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Static -main UnrealInit -D static_link -D destination=/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Mac-Development-Editor/libhaxeruntime.a -D haxe_runtime_dir=/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame -D bake_dir=/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -D HXCPP_DLL_EXPORT -cpp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Mac-Development-Editor/Static/Built --macro ue4hx.internal.CreateGlue.run(["/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Static"], ["/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Scripts"]) -D WITH_EDITOR -dce no -debug -D HXCPP_M64 -D scriptable -D WITH_CPPIA -D BUILDTOOL_VERSION_LEVEL=4
     [exec] HaxeCompiler: /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Haxe/Scripts/platformer/PlayerController.hx:3: characters 7-52 : Type not found : unreal.gamemenubuilder.IGameMenuBuilderModule
     [exec] Haxe compilation failed
     [exec] HaxeModuleRules.hx:159: Touching /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/PlatformerGame.uproject

BUILD FAILED
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/build.xml:142: The following error occurred while executing this line:
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/build.xml:54: exec returned: 10

Total time: 1 minute 2 seconds

HotDeploy on cppia

I was playing with 'PlatformerGame' example lately, before there was an effort to use 'haxefield' Unreal project of my own. In both cases i failed to see the AActor - subclasses (from Haxe/Scripts dir) to be hot deployed to Unreal editor (Class view), though glue code was generated and gen-build-script.hxml succeded.

In logs there were only traces from UnrealCppia and company.

If anybody can help to clarify this behaviour - is it OK or need some more tweaks and details for setup ? Do i need full static recompile to see new classes in Editor ?

Unresolved external symbols when building haxeRuntime.lib on Windows

This is less of a problem with Unreal.hx and more of a problem with how Visual Studio works, but perhaps someone here can point me in the right direction.
Ever since my harddisk failure (I have replaced the failing harddisk), I've been getting this problem, where I wasn't before. I'm assuming the Unreal.hx build tool is not pointing to the right crt due to some paths being messed up? This is in Visual Studio 2017, but I had both 2017 and 2015 installed previously. My guess is that it's pointing to the VS2017 includes but the VS2015 lib, as __std_reverse_trivially_swappable_1 and such are only included in the VS2017 CRT as far as I know (in vector_algorithms.cpp). Any way/ideas to solve this issue?

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2019	unresolved external symbol __std_reverse_trivially_swappable_1 referenced in function "public: virtual class String __cdecl haxe::io::Bytes_obj__scriptable::__ToString(void)const " (?__ToString@Bytes_obj__scriptable@io@haxe@@UEBA?AVString@@XZ)	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(d419743c_Bytes.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(8db8204d_ByteArray.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(d419743c_BytesBuffer.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(9d57483c_Lib.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(d419743c_Path.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_UnrealInit.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_ArrayBuiltin.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(6f10cfb9_File.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_Cppia.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_CppiaVars.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_StringBuf.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_StringTools.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(5370fa6a_CFFI.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(5370fa6a_StdLibs.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_String.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_1	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_Array.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_8	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(5370fa6a_Hash.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_8	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_UnrealInit.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_8	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_ArrayBuiltin.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_8	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(39811e08_Immix.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_8	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_Array.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_8	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_Cppia.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_8	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_CppiaVars.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_4	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_CppiaVars.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_4	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(5370fa6a_Hash.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_4	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(e9dc867f_StringTools.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_4	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_ArrayBuiltin.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_4	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_String.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_4	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_Array.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_4	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(9a51aeaf_ClassWrap.obj)	1	
Error	LNK2001	unresolved external symbol __std_reverse_trivially_swappable_4	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(2b50853f_Cppia.obj)	1	
Error	LNK2019	unresolved external symbol __std_reverse_trivially_swappable_2 referenced in function "void __cdecl std::_Reverse_unchecked1<unsigned short *>(unsigned short * const,unsigned short * const,struct std::integral_constant<unsigned __int64,2>)" (??$_Reverse_unchecked1@PEAG@std@@YAXQEAG0U?$integral_constant@_K$01@0@@Z)	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\haxeRuntime.lib(614c7251_Array.obj)	1	
Error	LNK1120	4 unresolved externals	RunAndGun	D:\UnrealProjects\RunAndGun\Binaries\Win64\UE4Editor-RunAndGun.dll	1	
Error		Failed to produce item: D:\UnrealProjects\RunAndGun\Binaries\Win64\UE4Editor-RunAndGun.dll	RunAndGun	D:\UnrealProjects\RunAndGun\Intermediate\ProjectFiles\ERROR	1	
Error	MSB3075	The command "C:\LocalBuilds\Engine\Windows\Engine\Build\BatchFiles\Build.bat RunAndGunEditor Win64 Development "D:\UnrealProjects\RunAndGun\RunAndGun.uproject" -waitmutex" exited with code 5. Please verify that you have sufficient rights to run this command.	RunAndGun	C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets	44	

UE4.14 working yet?

Trying to get the 4.14 branch working but running into errors.
(Other projects not using unreal.hx compiles normaly)
Is 4.14 support working at this point?

Setup:
Windows 10
Visual Studio 2015
Unreal4.13.3-Release
Haxe 3.3.0-rc1
Hxcs 3.4.0
Hxcpp 3.4.49 (also tried 3.3.49, 3.4.2)
Unreal.hx [ue4.14 branch] ad65c5f8c66387a294e55cae425cb9e7177780cf

Performing 6 actions (4 in parallel)
Module.UnrealHxTest4.1_of_8.cpp
Module.UnrealHxTest4.6_of_8.cpp
Module.UnrealHxTest4.2_of_8.cpp
Module.UnrealHxTest4.7_of_8.cpp
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): error C2065: 'DBM_PostLighting': undeclared identifier
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): error C2131: expression did not evaluate to a constant
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): note: failure was caused by non-constant arguments or reference to a non-constant symbol
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): note: see usage of 'DBM_PostLighting'
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(71): error C2051: case expression not constant
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\EDecalBlendMode_Glue.cpp(103): error C2065: 'DBM_PostLighting': undeclared identifier
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\ULocalPlayer_Glue.cpp(38): fatal error C1083: Cannot open include file: 'OnlineSubsystemTypes.h': No such file or directory Module.UnrealHxTest4.5_of_8.cpp
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\AGameModeBase_Glue.cpp(324): error C2568: '->*': unable to resolve function overload
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\AGameModeBase_Glue.cpp(324): note: could be 'FString AGameModeBase::InitNewPlayer(APlayerController *,const TSharedPtr<const FUniqueNetId,0> &,const FString &,const FString &)'
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\AGameModeBase_Glue.cpp(324): note: or 'FString AGameModeBase::InitNewPlayer(APlayerController *,const FUniqueNetIdRepl &,const FString &,const FString &)'
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\IOnlinePlatformData_Glue.cpp(26): fatal error C1083: Cannot open include file: 'OnlineSubsystemTypes.h': No such file or directory
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\UInputComponent_Glue.cpp(47): error C2664: 'FInputActionBinding &UInputComponent::GetActionBinding(const int32)': cannot convert argument 1 from 'FName' to 'const int32'
G:\Unreal\projects\UnrealHxTest4\Source\UnrealHxTest4\Generated\Private\uhx\glues\UInputComponent_Glue.cpp(47): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
ERROR : UBT error : Failed to produce item: G:\Unreal\projects\UnrealHxTest4\Binaries\Win64\UE4Editor-UnrealHxTest4.pdb

Ref being ignored when used in extern definition

When setting up an extern for the following c++ function, the "Ref" operator is ignored and extern failes to compile:

C++
bool GetRaw( const TArray < uint8 > *& OutRawData )

Haxe Extern:
public function GetRaw(InFormat:Const<ERGBFormat>,InBitDepth:Int32,OutRaw:Ref<PPtr<Const<TArray<UInt8>>>>):Bool;

Error :

[..../Generated/Private/uhx/glues/IImageWrapper_Glue.cpp(38): error C2664: 'bool IImageWrapper::GetRaw(const ERGBFormat::Type,int32,const TArray<uint8,FDefaultAllocator> *&)': cannot convert argument 3 from 'TArray<uint8,FDefaultAllocator> *' to 'const TArray<uint8,FDefaultAllocator> *&'
..../Intermediate/Haxe/HX416test-Win-Development-Editor/Generated/Private/uhx/glues/IImageWrapper_Glue.cpp(38): note: Conversion loses qualifiers
]

Can I debug the cppia part of the project use debugger like hxcpp-debugger?

I am new to haxe, and I notice unreal.hx few weeks ago.
I think it's awesome and hope to study in depth.
I notice there is a vscode extension hxcpp-vscode-debugger that can debug the haxe code, after some study it works with the static part of unreal.hx code, but not the script part.
Is there any way for me to use the hxcpp-debugger with the script part?

HUD-Related Missing Externs?

Hello, I'm porting the FPS HUD to Haxe, and have run into a few issues:

  • The AHUD class seems to be missing the DrawHUD() function.
  • UCanvas is missing DrawItem()
  • FCanvasTileItem class is missing

Should I be approaching HUD rendering another way?

Extra paths set in UhxConfig.hx is not included when compiling

Extra paths for static and scripts seems not to be included when compiling,
and triggers a "type not found" error for respective classes existing in the added folders.

class UhxConfig
{
    public static function getConfig(data:UhxBuildData, config:UhxBuildConfig)
    {
        config.extraStaticClasspaths = ['C:/dev/haxe/unrealhx/libs/Static'];  
        config.extraScriptClasspaths = ['C:/dev/haxe/unrealhx/libs/Scripts'];    
        return config;
    }
}

More Examples

This looks promising, but could you please provide more examples. I'm finding that the AMyActor example isn't working, I've tried putting a simple trace in the Tick function, but it doesn't seem to be called.

This is possibly because PrimaryActorTick.bCanEverTick is never set to true, but I can't figure out how you actually create a constructor to set it...

Could you maybe post a few more examples to get an idea of the basic workflow.

ReceiveActorOnClicked override error

I'm trying to implement click listener for my actor object, so i overrided ReceiveActorOnClicked method

@:uclass
@:uname("APickup")
class Pickup extends AActor {
	...
	override public function ReceiveActorOnClicked(ButtonPressed:unreal.inputcore.FKey):Void {
		super.ReceiveActorOnClicked(ButtonPressed);
		trace("Clicked");
	}
}

But as a result i'm getting that compilation error.

Info HaxeModuleRules.hx:159: Touching /Users/pro13/dev/UE4_workshop/BingoAdventure/BingoAdventure.uproject
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Intermediate/Build/Mac/UE4Editor/Development/BingoAdventure/Module.BingoAdventure.2_of_8.cpp:4:
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Private/uhx/glues/BatteryPickup_Glue.cpp:26:
Info /Users/pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Public/BatteryPickup.h:44:16: error: 'ReceiveActorOnClicked' marked 'override' but does not override any member functions
Info                 virtual void ReceiveActorOnClicked(FKey ButtonPressed) override;
Info                              ^
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Intermediate/Build/Mac/UE4Editor/Inc/BingoAdventure/BingoAdventure.generated.cpp:10:
Info In file included from ../../../../../pro13/dev/UE4_workshop/BingoAdventure/Intermediate/Build/Mac/UE4Editor/Inc/BingoAdventure/BingoAdventure.generated.dep.h:18:
Info ../../../../../pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Public/BatteryPickup.h:44:16: error: 'ReceiveActorOnClicked' marked 'override' but does not override any member functions
Info                 virtual void ReceiveActorOnClicked(FKey ButtonPressed) override;
Info                              ^
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Intermediate/Build/Mac/UE4Editor/Development/BingoAdventure/Module.BingoAdventure.1_of_8.cpp:8:
Info In file included from /Users/pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Private/BatteryPickup.cpp:25:
Info /Users/pro13/dev/UE4_workshop/BingoAdventure/Source/BingoAdventure/Generated/Public//BatteryPickup.h:44:16: error: 'ReceiveActorOnClicked' marked 'override' but does not override any member functions
Info                 virtual void ReceiveActorOnClicked(FKey ButtonPressed) override;
Info                              ^
Info 1 error generated.
Info 1 error generated.
Info 1 error generated.
Info ERROR: UBT ERROR: Failed to produce item: /Users/pro13/dev/UE4_workshop/BingoAdventure/Binaries/Mac/UE4Editor-BingoAdventure-5706.dylib
Info Total build time: 419.48 seconds

my haxe version is 3.4.0
unreal.hx is 2f51bd6

Accessing subclasses of POD structs don't work correctly

We've added a workaround for FVector_NetQuantize to solve for that case in particular, but there is an issue currently with types that subclass a POD type. When it is accessed as its parent, the struct layout of a POD type is used, even if it was actually created as a normal non-POD type (as all types that have a superclass aren't POD anymore)

USplineComponent Cppia Error

I'm getting the following error while trying to instantiate a USplineComponent. It compiles fine, but when I run the editor, I get this error:

Error while loading cppia:Bad link
Unknown static call to
uhx.glues.ESplineCoordinateSpace_Glue::ueToHaxe (0)
in unreal.EsplineCoordinateSpace_EnumConv::000000F511CCA340
CallStatic at unreal/EsplineCoordinateSpace.hx:42 ueToHaxe

Any clue what's going on?

Can't get it to work on 4.19

Please HELP!
Hi, I'm using the development branch but I can't make it work
whatever I do I get this error, I tried the dev_4.19 branch, same thing
I'm following the instructions on the README then I open the project and hit compile and I get this error

CompilerResultsLog: ERROR: /media/LNX_PROJ_2017/UE4_PROJx_2018/haxeTest01/Plugins/UnrealHX/Source/HaxeInit/BuildApi.Build.cs(359,53) : error CS0117: `UnrealBuildTool.UProjectInfo' does not contain a definition for `FilterGameProjects'
CompilerResultsLog: ERROR: /media/LNX_PROJ_2017/UE4_PROJx_2018/haxeTest01/Plugins/UnrealHX/Source/HaxeInit/BuildApi.Build.cs(362,35) : error CS0117: `UnrealBuildTool.UProjectInfo' does not contain a definition for `FilterGameProjects'
CompilerResultsLog: ERROR: Unable to compile source files.

Thanks

Help with understanding

Hi guys,

Thank you so much for this plugin, it's awesome! Would you be so kind to help me understand what is happening under the hood of Haxe compiling? As i understand Haxe is just intermediate syntax between Haxe language and c++. I mean if Haxe compiles directly to c++ why compiling time in Haxe is so short? Are we compiling C++ generated code after Haxe compilation?

Thank you, hope UE 4.12 support will be released soon. Now i have this kind of problem:

\Plugins\UE4Haxe\Source\HaxeInit\HaxeInit.Build.cs(1404,22) : error CS0619: 'UnrealBuildTool.RulesCompiler.GetModuleFilename(string)' is obsolete: 'GetModuleFilename is deprecated, use the ModuleDirectory property on any ModuleRules instead to get a path to your module.'

How to 'port build.cs to build.hx'

I don't know all haxe syntax but I'm very interesting to this project, but please give me an example of porting .build. Cause I'm stuck at that process. Can we use tool ? If not, how ?

Thank you.

Global Variables?

It appears that there is a variable in the UE4 c++, GEngine, which is an instance of UEngine, that exists at a global level. Is it possible to create externs for global variables? How would I achieve this in Haxe? I know that "untyped" works for the javascript target, but I'd imagine that would be ill-advised for c++. Thoughts?

Depricated Variable in Glue File

I get this error when I do a full re-compile:

CompilerResultsLog: Error: C:\Users\VectorSource\Dropbox\VectorSourceVR\Source\VectorSourceVR\Generated\Unity\Win-Dev-Editor\Unreal.Win-Dev-Editor.uhxglue.cpp(849) : warning C4996: 'FHierarchicalSimplification::DrawDistance': LOD transition is now based on screen size rather than drawing distance, see TransitionScreenSize Please update your code to the new A
PI before upgrading to the next release, otherwise your project will no longer compile.
CompilerResultsLog: Error: C:\Program Files\Epic Games\UE_4.19\Engine\Source\Runtime\Engine\Classes\GameFramework/WorldSettings.h(271) : note: see declaration of 'FHierarchicalSimplification::DrawDistance'
CompilerResultsLog: Error: C:\Users\VectorSource\Dropbox\VectorSourceVR\Source\VectorSourceVR\Generated\Unity\Win-Dev-Editor\Unreal.Win-Dev-Editor.uhxglue.cpp(849) : note: This diagnostic occurred in the compiler generated function 'FHierarchicalSimplification::FHierarchicalSimplification(FHierarchicalSimplification &&)'

Assuming this needs to be fixed before 4.20, whenever that may be?

4.16 type not found HaxeModuleRules

Hi, I'm using the example PlatformerGame as testbed to see if this still works with UE 4.16.

I've taken the latest project from GitHub and updated Plugin/UnrealHx to use the 4.16 branch

While running the usual haxe init-plugin.hxml -D UE_VER=4.16 I get the following error. Can you point me in the right direction by any chance?

--macro:1: character 1 : Uncaught exception Type not found 'HaxeModuleRules'
/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool/Package.hx:43: characters 19-53 : Called from here

Update

This is the hxml generated by the build tool:

# use this to build the build tool. if you have made any changes to any .Build.hx files, run this
-cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool/src
-cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool
-cp /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx
-net-lib /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool/lib/DotNETUtilities-4.16.dll
-net-lib /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/BuildTool/lib/UnrealBuildTool-4.16.dll
-cs /Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/BuildTool
HaxeInit

-D UE_VER=4.16
-D no-root
-D net_ver=45
-D analyzer
-D real_position
--macro Package.main("/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source", [{ name:"Generated", target:"/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Source/HaxeInit/Generated.Build.cs" }], {"targetExternal":"/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/HaxeExternalModule.Build.cs","files":["/Users/tanis/Documents/Unreal Projects/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/PlatformerGame.Build.hx"]})

Issues with project with spaces in path

I found a bug in Windows. Project path containes a space "C:\Users\T.Buglov\Documents\Unreal Projects\GameProjectHaxe". So init-plugin generates wrong "gen-build-module-rules.hxml" with bad target section. Finally, I have error
[exec] ERROR: Couldn't find target rules file for target 'GameProjectHaxeEditor' in rules assembly 'UE4Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.

Other path without spaces "C:\Users\T.Buglov\Documents\UnrealProjects\GameProjectHaxe" works fine.

See #45 (comment)

Support Unreal 4.12

Create a system that will allow multiple unreal versions to be used with the same unreal.hx codebase

Check absolute timestamps

It seems that copying/moving on Windows doesn't update the last modfiied timestamp, leading to issues where copied files aren't detected by UhxBuild

Exception has been thrown by the target of an invocation. ---> System.ComponentModel.Win32Exception

I'm using UE 4.17.2. After adding the plugin to my project and compiling I get the following error in the UE4 console. I am trying this on MacOS so I'm guessing there is some config somewhere that I need to change so that this doesn't happen ?

CompilerResultsLog: BuildApi.Build.cs: Using Haxe
CompilerResultsLog: Calling Haxe
CompilerResultsLog: Calling the build tool with arguments --cwd "/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/Plugins/UnrealHx/Haxe/BuildTool" compile-project.hxml -D "EngineDir=/Users/Shared/Epic Games/UE_4.17/Engine" -D "ProjectDir=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2" -D "TargetName=MyProject2Editor" -D "TargetP
latform=Mac" -D "TargetConfiguration=Development" -D "TargetType=Editor" -D "ProjectFile=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/MyProject2.uproject" -D "PluginDir=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/Plugins/UnrealHx" -D UE_BUILD_CS
CompilerResultsLog: ERROR: Unable to instantiate instance of 'MyProject2' object type from compiled assembly 'MyProject2ModuleRules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.  Unreal Build Tool creates an instance of your module's 'Rules' object in order to find out about your module's requirements.  The CLR exception details may provide more i
nformation:  System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ComponentModel.Win32Exception: ApplicationName='haxe', CommandLine='--cwd "/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/Plugins/UnrealHx/Haxe/BuildTool" compile-project.hxml -D "EngineDir=/Users/Shared/Epic Games/U
E_4.17/Engine" -D "ProjectDir=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2" -D "TargetName=MyProject2Editor" -D "TargetPlatform=Mac" -D "TargetConfiguration=Development" -D "TargetType=Editor" -D "ProjectFile=/Users/mwallace/Dropbox/Development/Unreal Projects/MyProject2/MyProject2.uproject" -D "PluginDir=/Users/mwallace/Dropbox/Development
/Unreal Projects/MyProject2/Plugins/UnrealHx" -D UE_BUILD_CS', CurrentDirectory='', Native error= Cannot find the specified file
CompilerResultsLog:   at System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at System.Diagnostics.Process.Start () [0x00000] in <filename unknown>:0
CompilerResultsLog:   at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
CompilerResultsLog:   at HaxeModuleRules.callHaxe (UnrealBuildTool.ModuleRules rules, HaxeCompilationInfo info, HaxeConfigOptions options) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at HaxeModuleRules.setupHaxeTarget (UnrealBuildTool.ModuleRules rules, Boolean forceHaxeCompilation, HaxeConfigOptions options) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at HaxeModuleRules.run () [0x00000] in <filename unknown>:0
CompilerResultsLog:   at BaseModuleRules..ctor (UnrealBuildTool.ReadOnlyTargetRules target) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at HaxeModuleRules..ctor (UnrealBuildTool.ReadOnlyTargetRules target) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at MyProject2..ctor (UnrealBuildTool.ReadOnlyTargetRules Target) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
CompilerResultsLog:   at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
CompilerResultsLog:   --- End of inner exception stack trace ---
CompilerResultsLog:   at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at System.Reflection.MonoCMethod.DoInvoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
CompilerResultsLog:   at UnrealBuildTool.RulesAssembly.CreateModuleRules (System.String ModuleName, UnrealBuildTool.ReadOnlyTargetRules Target, UnrealBuildTool.FileReference& ModuleFileName) [0x00000] in <filename unknown>:0
LogMainFrame: MainFrame: Module compiling took 2.797 seconds```

Array in cppia

I want to work with tink.core in hot-reload mode. I made a class

package game;
import tink.core.*;

@:uclass
class AGameProjectGameMode extends unreal.AGameMode {

public function new(wrapped) {
    super(wrapped);
    Future.ofMany(
        [
            futureIt(1),
            futureIt(2),
            futureIt(3)
        ]
    ).handle(function(responses){
        trace("Responses are: ", responses);
        trace("Length of responses: ", responses.length);
        trace("Iterate responses:");
        for (response in responses) {
            trace(">>>", response);
        }
    });
}
private function futureIt(number:Int):Future<Outcome<Int, Dynamic>> {
    var future = Future.trigger();
    future.trigger(Outcome.Success(number));
    return future;
}

}
and put it in Scripts directory. Traces are:

Responses are: ,[Success(1),Success(2),Success(3)]
Length of responses: ,7
Iterate responses:
>>>,Success(1)
>>>,Success(2)
>>>,Success(3)
>>>,null
>>>,null
>>>,null
>>>,null

In Static path this code works correct.

Can you help me to understand it?

Wiki - Assign Delegate?

The wiki has an article on declaring delegates, but then how would I assign a function to the new delegate? Or an existing one?

[4.19] MacOS Compile on Editor fails

When I try to compile the source on Editor it's causing an error.
Investigating I found that the error is occurring on BuildApi.Build.cs, when it calls the haxe command.
When the code calls the haxe command, it's calling from mono, and mono doesn't recognize the bin path to call.

ERROR: Unable to instantiate module 'MyProject': System.ComponentModel.Win32Exception: ApplicationName='haxe', CommandLine='--cwd "/Users/gilmar/Documents/Unreal Projects/MyProject/Plugins/UnrealHx/Haxe/BuildTool" compile-project.hxml -D "EngineDir=/Users/Shared/Epic Games/UE_4.19/Engine" -D "ProjectDir=/Users/gilmar/Documents/Unreal Projects/MyProject" -D "TargetName=MyProjectEditor" -D "TargetPlatform=Mac" -D "TargetConfiguration=Development" -D "TargetType=Editor" -D "ProjectFile=/Users/gilmar/Documents/Unreal Projects/MyProject/MyProject.uproject" -D "PluginDir=/Users/gilmar/Documents/Unreal Projects/MyProject/Plugins/UnrealHx" -D UE_BUILD_CS', CurrentDirectory='', Native error= Cannot find the specified file
at System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in :0
at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in :0
at System.Diagnostics.Process.Start () [0x00000] in :0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
at HaxeModuleRules.callHaxe (UnrealBuildTool.ModuleRules rules, HaxeCompilationInfo info, HaxeConfigOptions options) [0x00000] in :0
at HaxeModuleRules.setupHaxeTarget (UnrealBuildTool.ModuleRules rules, Boolean forceHaxeCompilation, HaxeConfigOptions options) [0x00000] in :0
at HaxeModuleRules.run () [0x00000] in :0
at BaseModuleRules..ctor (UnrealBuildTool.ReadOnlyTargetRules target) [0x00000] in :0
at HaxeModuleRules..ctor (UnrealBuildTool.ReadOnlyTargetRules target) [0x00000] in :0
at MyProject..ctor (UnrealBuildTool.ReadOnlyTargetRules Target) [0x00000] in :0
at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00000] in :0
(referenced via MyProject.Target.cs)

HaxeCompiler error in editor, ue4.14

Greetings,
I am attempting to get unreal.hx working with ue4.14, and I have gotten as far as running init-plugin.hxml successfully, but now when I try to compile, I get the following error:

CompilerResultsLog:Error: Error HaxeCompiler: ./src/unreal/_TArrayImpl/TArrayImpl_Impl_.cpp(116) : error C2819: type 'uhx::glues::TArrayImpl_Glue_obj' does not have an overloaded member 'operator ->' CompilerResultsLog:Error: Error HaxeCompiler: C:/Users/Jamie/Dropbox/RooVR/Source/RooVR/../RooVR/Generated/Public/uhx/glues/TArrayImpl_Glue.h(26) : note: see declaration of 'uhx::glues::TArrayImpl_Glue_obj' CompilerResultsLog:Error: Error HaxeCompiler: ./src/unreal/_TArrayImpl/TArrayImpl_Impl_.cpp(116) : note: did you intend to use '.' instead? CompilerResultsLog:Error: Error HaxeCompiler: ./src/unreal/_TArrayImpl/TArrayImpl_Impl_.cpp(116) : error C2232: '->uhx::glues::TArrayImpl_Glue_obj::set_Item': left operand has 'class' type, use '.'

Has anyone else encountered this before?

Escape C++ keywords

If you name a ufunction function argument char, you get into compiler errors because of the C++ type. We should escape them instead.

Please accurately document hxcpp/haxe/unreal versions

This is an incredibly interesting library doing something quite important that is prohibitively frustrating to get working. Please update the docs to reflect the creation of an actual working setup, including the exact versions of haxe, hxcs, hxcpp and unreal: I'm getting thematically similar but otherwise different compile errors based on various combinations of each, usually down to missing types, wrong enum values, or most recently Int not being a declared type. The example project does not build either.

I know much of this is Epic's fault with how much they love to break C++ features every update, but still.
Would love to pitch in on this one but it needs a nicer doormat. Plz 2 make Unreal fun again <3

Crashing Editor when compile haxe-code (unreal 4.14)

  1. Launch https://github.com/nitrobin/HaxePlatformerGame in Unreal Editor 4.14
  2. Change any haxe code, for example, add trace in PlayerController.hx
  3. Press "Compile" button in Editor
  4. Editor crashed

I use haxe 3.3.0-rc.1, hxcpp 3.3.49

[exec] [2017.01.10-10.41.33:046][ 22]CompilerResultsLog: New page: Compilation - Jan 11, 2017, 1:41:33 AM
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info 
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Running Mono...
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info 
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info /hdd/maxim/git/iceowl/ue414/Engine ~/HaxePlatformerGame/PlatformerGame
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Using clang version '3.8.0' (string), 3 (major), 8 (minor), 0 (patch)
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Creating makefile for hot reloading PlatformerGame (.uproject file is newer)
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Compiling game modules for hot reload
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info BaseModuleRules.hx:45: modulePath: /home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/PlatformerGame.Build.cs
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info BaseModuleRules.hx:46: haxeInitPath: /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Source/HaxeInit/HaxeInit.Build.cs
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info InitPlugin.hx:48: Updating game project...
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info InitPlugin.hx:50: Updating game module...
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxe -version
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info HaxeCompiler: 3.3.0
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info HaxeModuleRules.hx:230: baking externs
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxe --cwd /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -D use-rtti-doc -D bake-externs -cpp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor --no-output --macro ue4hx.internal.ExternBaker.process(["/home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Externs","/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Externs"], false) -D WITH_EDITOR -D BUILDTOOL_VERSION_LEVEL=4
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info HaxeModuleRules.hx:265: compiling Haxe
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxe --cwd /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe arguments.hxml -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static -main UnrealInit -D static_link -D destination=/home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/libhaxeruntime.a -D haxe_runtime_dir=/home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame -D bake_dir=/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -D HXCPP_DLL_EXPORT -cpp /home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/Static/Built --macro ue4hx.internal.CreateGlue.run(["/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static"], ["/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Scripts"]) -D WITH_EDITOR -dce no -debug -D HXCPP_M64 -D scriptable -D WITH_CPPIA -D BUILDTOOL_VERSION_LEVEL=4
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxelib run hxcpp Build.xml haxe -Ddebug -DBUILDTOOL_VERSION_LEVEL="4" -DHXCPP_DLL_EXPORT="1" -DHXCPP_M64="1" -DWITH_CPPIA="1" -DWITH_EDITOR="1" -Dbake_dir="/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor" -Ddestination="/home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/libhaxeruntime.a" -Dhaxe3="1" -Dhaxe_runtime_dir="/home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame" -Dhaxe_ver="3.3" -Dhxcpp_api_level="330" -Dscriptable="1" -Dsource-header="Generated by Haxe 3.3.0" -Dstatic_link="1" -I"/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Scripts/" -I"/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static/" -I"/home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static/" -I"/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor/" -I"" -I"./" -I"/" -I"/opt/haxetoolkit/linux64/haxe/std/cpp/_std/" -I"/opt/haxetoolkit/linux64/haxe/std/"
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Creating /home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/Static/Built/obj/linux64-stat-debug/__pch/haxe/hxcpp.h.gch...
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info  - Compiling group 'haxe' with flags -Iinclude -I/home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/Generated/Shared -c -fvisibility=hidden -g -fpic -fPIC -DHX_LINUX -DHXCPP_DEBUG -DSTATIC_LINK(static) -DHXCPP_M64 -DHXCPP_VISIT_ALLOCS(haxe) -DHXCPP_SCRIPTABLE(haxe) -DHXCPP_API_LEVEL=330(haxe) -m64 -DHXCPP_M64 -I/opt/haxetoolkit/haxelib/hxcpp/3,3,49/include tags=[haxe,static]
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info  - Compile : src/uhx/glues/PlayerController_GlueScript.cpp
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info  - Compile : src/uhx/expose/PlayerController_Expose.cpp
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info  clean libUnrealInit-debug.a
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info  - Link : libUnrealInit-debug.a
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info  - Ranlib : libUnrealInit-debug.a
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info haxe --cwd /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe arguments.hxml -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Generated/Externs_Editor -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Haxe/Static -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static -cp /home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Scripts -main UnrealCppia -D cppia -D ustatic_target=/home/maxim/HaxePlatformerGame/PlatformerGame/Intermediate/Haxe/Linux-Development-Editor/Static/Built -cpp /home/maxim/HaxePlatformerGame/PlatformerGame/Binaries/Haxe/game.cppia --macro ue4hx.internal.CreateCppia.run(["/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Static"], ["/home/maxim/HaxePlatformerGame/PlatformerGame/Haxe/Scripts"],null) -debug -D WITH_EDITOR -D BUILDTOOL_VERSION_LEVEL=4
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info BaseModuleRules.hx:45: modulePath: /home/maxim/HaxePlatformerGame/PlatformerGame/Source/PlatformerGame/HaxeExternalModule.Build.cs
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info BaseModuleRules.hx:46: haxeInitPath: /home/maxim/HaxePlatformerGame/PlatformerGame/Plugins/UnrealHx/Source/HaxeInit/HaxeInit.Build.cs
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress push 5%
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Generating code...' 0%
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Generating code...' 67%
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Generating code...' 100%
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress pop
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Using bundled libc++ standard C++ library.
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source files...' 0%
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Performing 3 actions (8 in parallel)
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source code...' 0%
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info [2/3] Link libUE4Editor-PlatformerGameLoadingScreen-8539.so
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info [1/3] Compile Module.PlatformerGame.1_of_8.cpp
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source code...' 25%
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source code...' 50%
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info [3/3] Link libUE4Editor-PlatformerGame-2306.so
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info @progress 'Compiling C++ source code...' 75%
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info Total build time: 53.38 seconds
[exec] [2017.01.10-10.41.33:047][ 22]CompilerResultsLog: Info HaxeModuleRules.hx:159: Touching /home/maxim/HaxePlatformerGame/PlatformerGame/PlatformerGame.uproject
[exec] [2017.01.10-10.41.33:047][ 22]LogMainFrame: MainFrame: Module compiling took 53.552 seconds
[exec] [2017.01.10-10.41.33:125][ 22]HaxeLog: UnrealInit.hx:24: initializing unreal haxe
[exec] [2017.01.10-10.41.33:125][ 22]HaxeLog: UnrealInit.hx:70: loading cppia
[exec] [2017.01.10-10.41.33:136][ 22]HaxeLog: UnrealCppia.hx:3: initializing unreal cppia script
[exec] [2017.01.10-10.41.33:136][ 22]HaxeLog: UnrealInit.hx:75: Setting cppia live reload types
[exec] [2017.01.10-10.41.33:145][ 22]LogClass: EGameState HotReload.
[exec] [2017.01.10-10.41.33:177][ 22]LogContentBrowser: Native class hierarchy updated for 'PlatformerGame' in 0.0265 seconds. Added 12 classes and 7 folders.
[exec] [2017.01.10-10.41.33:177][ 22]Module being reloaded does not support dynamic unloading -- abandoning existing loaded module so that we can load the recompiled version!
[exec] terminating with uncaught exception of type Dynamic
[exec] Signal 6 caught.
[exec] Malloc Size=131076 LargeMemoryPoolOffset=131092 
[exec] Malloc Size=65535 LargeMemoryPoolOffset=196655 
[exec] Malloc Size=556026 LargeMemoryPoolOffset=752698 
[exec] [2017.01.10-10.41.33:213][ 22]Display: HotReload successful (21 functions remapped  1 scriptstructs remapped)
[exec] CommonLinuxCrashHandler: Signal=6
[exec] Using binned.
[exec] LogPlatformFile: Not using cached read wrapper
[exec] LogInit:Display: RandInit(548487015) SRandInit(548487015).
[exec] LogTaskGraph: Started task graph with 4 named threads and 7 total threads with 1 sets of task threads.
[exec] LogInit: Build: ++UE4+Release-4.14-CL-0
[exec] LogInit: Engine Version: 4.14.2-0+++UE4+Release-4.14
[exec] LogInit: Compatible Engine Version: 4.14.0-0+++UE4+Release-4.14
[exec] LogInit: Net CL: 0
[exec] LogInit: Compiled (64-bit): Jan  9 2017 17:23:42
[exec] LogInit: Compiled with Clang: 3.8.0 (tags/RELEASE_380/final)
[exec] LogInit: Build Configuration: Shipping
[exec] LogInit: Branch Name: ++UE4+Release-4.14
[exec] LogInit: Command line:  -Abslog=/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Logs/PlatformerGame-CRC.log /home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/
[exec] LogInit: Base directory: /hdd/maxim/git/iceowl/ue414/Engine/Binaries/Linux/
[exec] LogInit: Installed Engine Build: 1
[exec] LogInit: Presizing for max 100000 objects, including 0 objects not considered by GC, pre-allocating 0 bytes for permanent pool.
[exec] LogInit: Object subsystem initialized
[exec] [2017.01.10-10.41.33:328][  0]LogInit: Linux hardware info:
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - we are the first instance of this executable
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - this process' id (pid) is 10872, parent process' id (ppid) is 6600
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - we are not running under debugger
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - machine network name is 'maxim'
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - user name is 'maxim' (maxim)
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - we're logged in locally
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - we're running with rendering
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - CPU: GenuineIntel 'Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz' (signature: 0x306C3)
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - Number of physical cores available for the process: 4
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - Number of logical cores available for the process: 8
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - Cache line size: 64
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - Memory allocator used: binned
[exec] [2017.01.10-10.41.33:328][  0]LogLinux: Skipped benchmarking clocks because the engine is running in a standalone program mode - CLOCK_REALTIME will be used.
[exec] [2017.01.10-10.41.33:328][  0]LogInit: Linux-specific commandline switches:
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  -nodwarf (currently OFF): suppress parsing of DWARF debug info (callstacks will be generated faster, but won't have line numbers)
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  -ansimalloc - use malloc()/free() from libc (useful for tools like valgrind and electric fence)
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  -jemalloc - use jemalloc for all memory allocation
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  -binnedmalloc - use binned malloc  for all memory allocation
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  -httpproxy=ADDRESS:PORT - redirects HTTP requests to a proxy (only supported if compiled with libcurl)
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  -reuseconn - allow libcurl to reuse HTTP connections (only matters if compiled with libcurl)
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  -virtmemkb=NUMBER - sets process virtual memory (address space) limit (overrides VirtualMemoryLimitInKB value from .ini)
[exec] [2017.01.10-10.41.33:328][  0]LogInit:  - Physical RAM available (not considering process quota): 16 GB (15983 MB, 16366848 KB, 16759652352 bytes)
[exec] [2017.01.10-10.41.33:328][  0]LogUObjectArray: 141 objects as part of root set at end of initial load.
[exec] [2017.01.10-10.41.33:328][  0]LogUObjectAllocator: 23664 out of 0 bytes used by permanent object pool.
[exec] [2017.01.10-10.41.33:328][  0]LogUObjectArray: CloseDisregardForGC: 0/0 objects in disregard for GC pool
[exec] [2017.01.10-10.41.33:328][  0]LogTextLocalizationManager: No translations for ('') exist, falling back to 'en' for localization and internationalization data.
[exec] [2017.01.10-10.41.33:330][  0]CrashReportClientLog: CrashReportClientVersion=1.0
[exec] [2017.01.10-10.41.33:330][  0]CrashReportClientLog: CrashReportReceiver disabled
[exec] [2017.01.10-10.41.33:330][  0]CrashReportClientLog: DataRouterUrl: https://datarouter.ol.epicgames.com/datarouter/api/v1/public/data
[exec] [2017.01.10-10.41.33:330][  0]LogQoSReporter:Error: QoS API server is not configured, no QoS metrics will be reported.
[exec] [2017.01.10-10.41.33:330][  0]LogQoSReporter: QoSReporter initialized (InstanceId = '00048D092101110A0029014A20B29A00', SystemId = '2a5d5f96ef9147c0b35535562b32d0ff')
[exec] [2017.01.10-10.41.33:330][  0]LogQoSReporter: APIKey = 'CrashReportClient.Release'. APIServer = ''. AppVersion = 'UE4-CL-0'. AppEnvironment = 'Release'
[exec] [2017.01.10-10.41.33:330][  0]LogQoSReporter: QoSReporter has been configured without a valid deployment name.
[exec] [2017.01.10-10.41.33:330][  0]LogQoSReporter: QoSReporter has been configured without a valid deployment name.
[exec] [2017.01.10-10.41.33:330][  0]CrashReportClientLog: Initial state = Unknown UploadState value
[exec] [2017.01.10-10.41.33:330][  0]CrashReportClientLog: Initial state = Unknown UploadState value
[exec] [2017.01.10-10.41.33:331][  0]LogCrashDebugHelper: DepotName: //UE4/Release-4.14
[exec] [2017.01.10-10.41.33:331][  0]LogCrashDebugHelper: BuiltFromCL: 0
[exec] [2017.01.10-10.41.33:331][  0]LogCrashDebugHelper: EngineVersion: 4.14.2-0+++UE4+Release-4.14
[exec] [2017.01.10-10.41.33:331][  0]LogCrashDebugHelper: BuildVersion: ++UE4+Release-4.14-CL-0
[exec] [2017.01.10-10.41.33:331][  0]LogCrashDebugHelper:Warning: CrashDebugHelperConfig invalid
[exec] [2017.01.10-10.41.33:331][  0]LogCrashDebugHelper:Warning: PDB Cache disabled
[exec] [2017.01.10-10.41.34:300][  0]CrashReportClientLog: Got 5 pending files to upload from 'crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47'
[exec] [2017.01.10-10.41.34:300][  0]CrashReportClientLog: State change from Ready to SendingFiles
[exec] [2017.01.10-10.41.34:300][  0]CrashReportClientLog: CompressAndSendData have 5 pending files
[exec] [2017.01.10-10.41.34:300][  0]CrashReportClientLog: CompressAndSendData compressing 556026 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/PlatformerGame.log')
[exec] [2017.01.10-10.41.34:300][  0]CrashReportClientLog: CompressAndSendData compressing 1933 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/wermeta.xml')
[exec] [2017.01.10-10.41.34:301][  0]CrashReportClientLog: CompressAndSendData compressing 2898 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/Diagnostics.txt')
[exec] [2017.01.10-10.41.34:301][  0]CrashReportClientLog: CompressAndSendData compressing 4 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/minidump.dmp')
[exec] [2017.01.10-10.41.34:301][  0]CrashReportClientLog: CompressAndSendData compressing 85 bytes ('/home/maxim/HaxePlatformerGame/PlatformerGame/Saved/Crashes/crashinfo-PlatformerGame-pid-6600-7A11C60A2101110A002900EA20A7DF47/CrashReportClient.ini')
[exec] [2017.01.10-10.41.34:316][  0]LogInit: Using libcurl 7.46.0
[exec] [2017.01.10-10.41.34:316][  0]LogInit:  - built for x86_64-pc-linux-gnu
[exec] [2017.01.10-10.41.34:316][  0]LogInit:  - supports SSL with OpenSSL/1.0.2d
[exec] [2017.01.10-10.41.34:316][  0]LogInit:  - supports HTTP deflate (compression) using libz 1.2.8
[exec] [2017.01.10-10.41.34:316][  0]LogInit:  - other features:
[exec] [2017.01.10-10.41.34:316][  0]LogInit:      CURL_VERSION_SSL
[exec] [2017.01.10-10.41.34:317][  0]LogInit:      CURL_VERSION_LIBZ
[exec] [2017.01.10-10.41.34:317][  0]LogInit:      CURL_VERSION_IPV6
[exec] [2017.01.10-10.41.34:317][  0]LogInit:      CURL_VERSION_ASYNCHDNS
[exec] [2017.01.10-10.41.34:317][  0]LogInit:      CURL_VERSION_LARGEFILE
[exec] [2017.01.10-10.41.34:317][  0]LogInit:      CURL_VERSION_TLSAUTH_SRP
[exec] [2017.01.10-10.41.34:317][  0]LogInit:  Libcurl: checking if '/etc/pki/tls/certs/ca-bundle.crt' exists
[exec] [2017.01.10-10.41.34:317][  0]LogInit:  Libcurl: checking if '/etc/ssl/certs/ca-certificates.crt' exists
[exec] [2017.01.10-10.41.34:317][  0]LogInit:  CurlRequestOptions (configurable via config and command line):
[exec] [2017.01.10-10.41.34:317][  0]LogInit:  - bVerifyPeer = true  - Libcurl will verify peer certificate
[exec] [2017.01.10-10.41.34:317][  0]LogInit:  - bUseHttpProxy = false  - Libcurl will NOT use HTTP proxy
[exec] [2017.01.10-10.41.34:317][  0]LogInit:  - bDontReuseConnections = false  - Libcurl will reuse connections
[exec] [2017.01.10-10.41.34:317][  0]LogInit:  - CertBundlePath = /etc/ssl/certs/ca-certificates.crt  - Libcurl will set CURLOPT_CAINFO to it
[exec] [2017.01.10-10.41.34:317][  0]CrashReportClientLog: Sending HTTP request: https://datarouter.ol.epicgames.com/datarouter/api/v1/public/data?AppID=CrashReporter&AppVersion=4.14.2-0%2B%2B%2BUE4%2BRelease-4.14&AppEnvironment=Release&UploadType=crashreports&UserID=000353d20e080f150002012725704178%7C%7C2a5d5f96ef9147c0b35535562b32d0ff
[exec] [2017.01.10-10.41.35:769][  0]CrashReportClientLog: OnProcessRequestComplete(), State=SendingFiles bSucceeded=1
[exec] [2017.01.10-10.41.35:769][  0]CrashReportClientLog: State change from SendingFiles to SendingFiles
[exec] [2017.01.10-10.41.35:769][  0]CrashReportClientLog: All uploads done
[exec] [2017.01.10-10.41.35:769][  0]CrashReportClientLog: State change from SendingFiles to Finished
[exec] [2017.01.10-10.41.36:304][  0]LogLinux: FLinuxPlatformMisc::RequestExit(0)
[exec] [2017.01.10-10.41.36:304][  0]LogGenericPlatformMisc: FPlatformMisc::RequestExit(0)
[exec] [2017.01.10-10.41.36:337][  0]CrashReportClientLog: Final state (Receiver) = Finished
[exec] [2017.01.10-10.41.36:337][  0]CrashReportClientLog: Final state (Receiver) = Unknown UploadState value
[exec] [2017.01.10-10.41.36:337][  0]LogExit: Preparing to exit.
[exec] [2017.01.10-10.41.36:338][  0]LogObj: Freed 0b from 0 cluster array pools.
[exec] [2017.01.10-10.41.36:338][  0]LogExit: Object subsystem successfully closed.
[exec] [2017.01.10-10.41.36:356][  0]LogModuleManager: Shutting down and abandoning module HTTP (5)
[exec] [2017.01.10-10.41.36:356][  0]LogModuleManager: Shutting down and abandoning module CrashDebugHelper (4)
[exec] [2017.01.10-10.41.36:356][  0]LogModuleManager: Shutting down and abandoning module QoSReporter (3)
[exec] [2017.01.10-10.41.36:356][  0]LogModuleManager: Shutting down and abandoning module Analytics (2)
[exec] [2017.01.10-10.41.36:356][  0]LogModuleManager: Shutting down and abandoning module CoreUObject (1)
[exec] [2017.01.10-10.41.36:356][  0]LogExit: Exiting.
[exec] Engine crash handling finished; re-raising signal 6 for the default handler. Good bye.

BUILD FAILED
/home/maxim/HaxePlatformerGame/PlatformerGame/build.xml:125: The following error occurred while executing this line:
/home/maxim/HaxePlatformerGame/PlatformerGame/build.xml:43: exec returned: 134

Total time: 8 minutes 49 seconds
maxim@maxim ~/HaxePlatformerGame/PlatformerGame $

[4.19] Linking not occurring while Editor is open

From my testing it seems linking / hotloading does not take place while the UE4 editor is open. Compiles ok, but does not link. By closing the editor and compiling again, linking is performed like normal.

Does not happen always, but quite often.

[Windows 10 / VS 2015 / Haxe 3.4.7]

Setting up Haxe with Unreal

I've been working on this for several hours but having lots of problems and cant find clear docs on this. Tried to setup the platformer, but when I tried opening unreal it tired to compiled several DLLs, but then it said it could not compile and I should compile manually.

So I tried the ant build method but kept getting errors. The last of which was this;
E:\Unreal Projects\PlatformerGame>ant build
Buildfile: E:\Unreal Projects\PlatformerGame\build.xml

init-plugin:

BUILD FAILED
E:\Unreal Projects\PlatformerGame\build.xml:134: Execute failed: java.io.IOException: Cannot run program "E:\Unreal Projects\PlatformerGame\haxe" (in directory "E:\Unreal Projects\PlatformerGame\Plugins\UnrealHx"): CreateProcess error=5, Access is denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:426)
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:440)
at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:629)
etc...

I've tried several things over the hours but nothing has worked.

I also tried setting up unreal.hx in unreal, but the instructions are unclear to me;
Port your main Build.cs module to Build.hx and make sure it extends HaxeModuleRules

not sure how to do this step.
Is there anything more? a video showing steps?

Compile Error in MethodPointer.hx

I just did a fresh install into a 4.19 project with the latest branch, and I'm getting a compile error relating to MethodPointer:

\Plugins\UnrealHx/Haxe/Static/unreal/MethodPointer.hx:59: characters 21-70 : 
unreal.MethodPointer<Unknown<0>, Unknown<1>> should be Float -> Void
For function argument 'func'

Has anyone else received this error?

EDIT:
For additional information, I am porting some code from a 4.16 project, where I am using MethodPointer to bind functions to input actions. I suppose it's possible this process has changed since that version.

EDIT 2:
Turns out BindAction/BindAxis don't need MethodPointers anymore, so I can proceed regardless of this error.

UE4.16 Plugin Setup?

I'm attempting to get the ue4.16 branch up and running with a bare-bones project, and I have run into a couple problems. I've cloned/checked out that branch, and ran init-plugin.hxml. At first I got an "invalid excape sequence" error, which related to the gameDir string that was generated (which had backslashes in it). I remedied this by adding gameDir = gameDir.replace('\\','/'); at line 85 in InitPlugin.hx, but then I get the following error:
c:\HaxeToolkit\haxe\std/haxe/macro/Context.hx:247: charactes 9-32:Type not found 'HaxeModuleRules' (called from ../unreal.hx/Haxe/BuildTool/Package.hx:42

Is the 4.16 branch missing some files?

[4.16] Editor crashing when adding new classes to "scripts"

Tested on Windows 10, Haxe 3.4.2, Unreal 4.16.3, Unreal.hx 4.16 branch:

Adding new @:uclass classes to the scripts folder and compiling for cppia seems to produce a crash in UE if the editor is open. Doing a full build works as expected, and cppia compilation on already existing classes built with a full build works fine.

Stack trace:

UE4Editor-CoreUObject.dll!StaticAllocateObjectErrorTests(UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags) Line 2158 C++
UE4Editor-CoreUObject.dll!StaticAllocateObject(UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, bool bCanRecycleSubobjects, bool * bOutRecycledSubobject) Line 2211 C++
UE4Editor-CoreUObject.dll!StaticConstructObject_Internal(UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, UObject * InTemplate, bool bCopyTransientsFromClassDefaults, FObjectInstancingGraph * InInstanceGraph, bool bAssumeTemplateIsArchetype) Line 3166 C++
UE4Editor-HX416test.dll!uhx::glues::UObject_Glue_obj::NewObject(unsigned __int64 outer, unsigned __int64 uclass, unreal::VariantPtr name, int flags, unsigned __int64 objTemplate, bool bCopyTransientsFromClassDefaults) Line 50 C++
UE4Editor-HX416test.dll!unreal::UObject_obj::NewObject(Dynamic T_TP, hx::ObjectPtrunreal::UObject_obj outer, hx::ObjectPtrunreal::UClass_obj uclass, unreal::VariantPtr name, Dynamic flags, hx::ObjectPtrunreal::UObject_obj objTemplate, Dynamic bCopyTransientsFromClassDefaults) Line 824 C++
UE4Editor-HX416test.dll!uhx::runtime::UReflectionGenerator_obj::createClass(hx::ObjectPtrunreal::UObject_obj outer, String uclassName, hx::ObjectPtrunreal::UClass_obj parent, bool parentHxGenerated, String hxPath) Line 1993 C++
UE4Editor-HX416test.dll!uhx::runtime::UReflectionGenerator_obj::getUpdatedClass(hx::ObjectPtruhx::runtime::DynamicRegistry_obj reg) Line 692 C++
UE4Editor-HX416test.dll!uhx::runtime::UReflectionGenerator_obj::cppiaHotReload() Line 456 C++
UE4Editor-HX416test.dll!UnrealInit_obj::editorSetup'::2'::_hx_Closure_1::_hx_run() Line 408 C++
UE4Editor-HX416test.dll!UnrealInit_obj::editorSetup'::2'::_hx_Closure_1::__run() Line 529 C++
UE4Editor-HX416test.dll!Dynamic::operator()() Line 300 C++
UE4Editor-HX416test.dll!UnrealInit_obj::editorSetup'::2'::_hx_Closure_5::_hx_run(float deltaTime) Line 740 C++
UE4Editor-HX416test.dll!UnrealInit_obj::editorSetup'::2'::_hx_Closure_5::run(const Dynamic & inArg0) Line 742 C++
UE4Editor-HX416test.dll!Dynamic::operator()(const Dynamic & inArg0) Line 301 C++
UE4Editor-HX416test.dll!uhx::expose::HxcppRuntime::callFunction1(unsigned int64 ptr, unsigned int64 arg0) Line 451 C++
UE4Editor-HX416test.dll!TBaseFunctorDelegateInstance<bool cdecl(float),uhx::LambdaBinder<bool,float> >::Execute(float <Params_0>) Line 1132 C++
UE4Editor-Core.dll!FTicker::Tick(float DeltaTime) Line 82 C++
UE4Editor.exe!FEngineLoop::Tick() Line 3262 C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE * hInInstance, HINSTANCE * hPrevInstance, int nCmdShow) Line 166 C++
UE4Editor.exe!WinMain(HINSTANCE * hInInstance, HINSTANCE
* hPrevInstance, char * __formal, int nCmdShow) Line 199 C++

Cppia bad link and UE4 editor crash (Haxe 3.3 , UE4Haxe latest , UE4 4.11)

@:uclass
class ACollidingPawn extends APawn
{

    var OurParticleSystem: UParticleSystemComponent;

    var OurMovementComponent: UCollidingPawnMovementComponent;

       public function new (wrapped) {
        super(wrapped);
        PrimaryActorTick.bCanEverTick = true;
        var init = FObjectInitializer.Get();
               OurParticleSystem = init.CreateDefaultSubobject(this,"MovementParticles",false);  // OK
              OurMovementComponent = init.CreateDefaultSubobject(this, "GetMovementComponent",false);  // FAILED
              }
}
@:uclass
class UCollidingPawnMovementComponent extends UPawnMovementComponent
{

    public function new(wrapped) 
    {
        super(wrapped);
    }
}

HaxeLog:Error: UnrealInit.hx:83: Error while loading cppia: Bad link

UE4Editor-HaxeInit.dll missing or built with different engine version

Hello !

I am actually trying to setup my first Haxe project with Unreal Engine, since one week, but I still encounter the same issue : "UE4Editor-HaxeInit.dll missing or built with different engine version".

It freeze totally the execution by the impossibility to finish the compilation.

I've try on version 4.10.1 first, but I've seen that the plugin was made for 4.8.0, so I've installed the 4.8.3, because it was the only 4.8 version available for the download.

So, how can I solve that ?

Can't generate VS Project Files , Please help

Here are the errors i get ๐Ÿ˜ž
Running E:/UE4/UE_4.18/Engine/Binaries/DotNET/UnrealBuildTool.exe -projectfiles -project="E:/Beast v2.07/uhx/uhx.uproject" -game -rocket -progress Discovering modules, targets and source code for project... While compiling E:\Beast v2.07\uhx\Intermediate\Build\BuildRules\uhxModuleRules.dll: ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(239,9) : error CS1502: The best overloaded method match for 'UnrealBuildTool.BuildVersion.TryRead(Tools.DotNETCommon.FileReference, out UnrealBuildTool.BuildVersion)' has some invalid arguments ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(239,30) : error CS1503: Argument 1: cannot convert from 'string' to 'Tools.DotNETCommon.FileReference' ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(362,10) : error CS0718: 'UnrealBuildTool.UProjectInfo': static types cannot be used as type arguments ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(362,45) : error CS0117: 'UnrealBuildTool.UProjectInfo' does not contain a definition for 'FilterGameProjects' ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(365,28) : error CS0117: 'UnrealBuildTool.UProjectInfo' does not contain a definition for 'FilterGameProjects' ERROR: e:\Beast v2.07\uhx\Plugins\unreal.hx\Source\HaxeInit\BuildApi.Build.cs(371,31) : error CS1061: 'UnrealBuildTool.UProjectInfo' does not contain a definition for 'Folder' and no extension method 'Folder' accepting a first argument of type 'UnrealBuildTool.UProjectInfo' could be found (are you missing a using directive or an assembly reference?) ERROR: UnrealBuildTool Exception: Unable to compile source files.

Incorrect code generation when using generic types

I'm trying to create some simple helper functions to aid in finding and creating objects.

    @:generic
    public static function AddSubObject<T:UObject>(parent:AActor, name:String, transient:Bool = false):T
    {
        var object:T = FObjectInitializer.Get().CreateDefaultSubobject(parent, name, transient);
        return object;
    }

...


        var sphere:USphereComponent = AddSubObject("Sphere", false);

Which generates the following code:

  @:glueCppIncludes("Engine.h", "<OPointers.h>", "Object.h", "UObject/NameTypes.h", "<TypeParamGlue.h>")
  @:glueHeaderIncludes("<UEPointer.h>")
  @:glueHeaderCode("static void * CreateDefaultSubobject_AddSubObject_T(unreal::helpers::UEPointer * self, void * Outer, unreal::helpers::UEPointer * SubojectName, bool bTransient);")
  @:glueCppCode("void * __pvt::_hx_unreal::FObjectInitializer_GlueGeneric_obj::CreateDefaultSubobject_AddSubObject_T(unreal::helpers::UEPointer * self, void * Outer, unreal::helpers::UEPointer * SubojectName, bool bTransient) {\n\treturn TypeParamGlue<T *>::ueToHaxe( ( (FObjectInitializer *) (::unreal::helpers::UEPointer::getPointer(self)) )->CreateDefaultSubobject<T>(( (UObject *) Outer ), (*(( (FName *) (::unreal::helpers::UEPointer::getPointer(SubojectName)) ))), bTransient) );\n}")
  @:noCompletion
  @:noUsing
  @:genericInstance
  @:glueCppIncludes("Engine.h", "<OPointers.h>", "Object.h", "UObject/NameTypes.h", "<TypeParamGlue.h>")
  @:glueHeaderIncludes("<UEPointer.h>")
  @:thisConst
  @:typeName
  @:ifFeature("unreal.FObjectInitializer.CreateDefaultSubobject_AddSubObject_T")
  public static function CreateDefaultSubobject_AddSubObject_T(self : unreal.PExternal<unreal.FObjectInitializer>, Outer : unreal.UObject, SubojectName : unreal.FName, bTransient : Bool) : ue4hx.internal.PExternalDef<T> {
    return (unreal.helpers.HaxeHelpers.pointerToDynamic( __pvt._hx_unreal.FObjectInitializer_GlueGeneric.CreateDefaultSubobject_AddSubObject_T(@:privateAccess self.getWrapped().get_raw(), @:privateAccess Outer.getWrapped().rawCast(), @:privateAccess SubojectName.getWrapped().get_raw(), bTransient) ) : ue4hx.internal.PExternalDef<T>);

  }

Which throws the error: Type not found: T.

Compile Error Using CreateDefaultSubobject()

Hello, I've been trying to get CreateDefaultSubobject to work after referencing it's usage in the Platformer port's ClimbMarker class, but keep getting an error. Here it is in the ClimbMarker:
var SceneComp = init.CreateDefaultSubobject(new TypeParam<USceneComponent>(), this, "SceneComp", false);
...and then mine:
FirstPersonCameraComponent = init.CreateDefaultSubobject(new TypeParam<UCameraComponent>(), this, "FirstPersonCamera", false);
... and then the error:
characters 121-126 : Bool should be unreal.UClass For function argument 'ReturnType'

Does anyone have a clue what I'm doing wrong? I'm using UE4.16, so it's possible that function definition has changed since 4.11.

-Jamie

Error generating Visual Studio Project files after running init-plugin.hxml

After running haxe init-plugin.hxml, you are unable to generate the visual studio project files due to missing references.

Running C:/Program Files/Unreal Engine/4.9/Engine/Binaries/DotNET/UnrealBuildTool.exe  -projectfiles -project="Playground.uproject" -game -rocket -progress
Discovering modules, targets and source code for game...
Errors detected while compiling Intermediate\Build\BuildRules\RocketUE4ModuleRules.dll:
HaxeExternalModule.Build.cs(2,7) : error CS0246: The type or namespace name 'haxe' could not be found (are you missing a using directive or an assembly reference?)
HaxeExternalModule.Build.cs(5,43) : error CS0400: The type or namespace name 'BaseModuleRules' could not be found in the global namespace (are you missing an assembly reference?)
Playground.Build.cs(2,7) : error CS0246: The type or namespace name 'haxe' could not be found (are you missing a using directive or an assembly reference?)
Playground.Build.cs(5,35) : error CS0400: The type or namespace name 'HaxeModuleRules' could not be found in the global namespace (are you missing an assembly reference?)
UnrealBuildTool Exception: ERROR: UnrealBuildTool encountered an error while compiling source files

Possible issue with .get() on TArray Ref.fromStruct

Consider the following code:

var uncompressedBGRA:Ref<Const<TArray< UInt8 >>> = Ref.fromStruct(TArray.create(new TypeParam< UInt8 >()));
var data = uncompressedBGRA.get();

This gives the following compiler error:

./src/nx/NXTest.cpp(140): error C2227: left of '->__Field' must point to class/struct/union/generic type
./src/nx/NXTest.cpp(140): note: type is 'unreal::UIntPtr'

Generated cpp code:

unreal::VariantPtr uncA = ( ( unreal::VariantPtr)(uncompressedBGRA->_Field(HX("getStruct",8b,c3,8f,8d),hx::paccDynamic)((int)0)) );

Error in Windows for HTML5 and Android targtets

I try to launch game for HTML5 and Android targets, but compilation is fail with error:

LogPlayLevel: UnrealBuildTool: In file included from E:\sp2\unreal\unreal_project\Source\GameProjectHaxe\Generated\Private\uhx\glues\AActor_Glue.cpp:25: LogPlayLevel: UnrealBuildTool: In file included from E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/../GameProjectHaxe/Generated/Public/uhx/glues/AActor_Glue.h:15: LogPlayLevel: UnrealBuildTool: E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/Generated/Shared\VariantPtr.h(25,10) : error: constructor cannot be redeclared LogPlayLevel: UnrealBuildTool: inline VariantPtr(int inRHS) : raw((UIntPtr) inRHS) { } LogPlayLevel: UnrealBuildTool: ^ LogPlayLevel: UnrealBuildTool: E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/Generated/Shared\VariantPtr.h(23,10) : note: previous declaration is here LogPlayLevel: UnrealBuildTool: inline VariantPtr(IntPtr inRHS) : raw((UIntPtr) inRHS) { } LogPlayLevel: UnrealBuildTool: ^ LogPlayLevel: UnrealBuildTool: E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/Generated/Shared\VariantPtr.h(25,10) : error: redefinition of 'VariantPtr' LogPlayLevel: UnrealBuildTool: inline VariantPtr(int inRHS) : raw((UIntPtr) inRHS) { } LogPlayLevel: UnrealBuildTool: ^ LogPlayLevel: UnrealBuildTool: E:/sp2/unreal/unreal_project/Source/GameProjectHaxe/Generated/Shared\VariantPtr.h(23,10) : note: previous definition is here LogPlayLevel: UnrealBuildTool: inline VariantPtr(IntPtr inRHS) : raw((UIntPtr) inRHS) { } LogPlayLevel: UnrealBuildTool: ^ LogPlayLevel: UnrealBuildTool: 2 errors generated.

Android target

Hi! :) We experimented with UnrealHx under linux and everything was good. But now we are trying to make Android build and we faced a problem.

I'm trying to do HaxePlatformerGame version for Android. https://github.com/nitrobin/HaxePlatformerGame
https://github.com/nitrobin/unreal.hx
We were able to compile the application into apk-file, but the app crashes immediately at startup:
com.YourCompany.Project-1 / lib / arm / libUE4.so ", RTLD_LAZY) failed: dlopen failed: can not locate symbol" "referenced by" libUE4.so "...

Logs: https://goo.gl/9zVUHF
HaxeModuleRules changes: https://github.com/nitrobin/unreal.hx/blob/android/Haxe/BuildTool/src/HaxeModuleRules.hx#L345

Can anyone help us with it? Any tips?

Cannot compile in 4.10

Haxe classes were compiled with success in Unreal 4.9, but when upgraded to 4.10 I've got the error: "ERROR: UBT ERROR: Failed to produce item: /home/maxim/Documents/Unreal Projects/MyProject6/Binaries/Linux/libUE4Editor-MyProject6-8385.so".

Game Crashes When Calling Montage_Play()

So I've been porting UE4's First-Person Shooter template to unreal.hx, and I'm very close, there's just one area that's causing some frustration. When my FP weapon fires, I'm trying to play the fire animation, and referencing the original C++, it looks like I should be using Montage_IsPlaying() like this:

if (FireAnimation != null)
{
// Get the animation object for the arms mesh
var AnimInstance:UAnimInstance = Mesh1P.GetAnimInstance();
if (AnimInstance != null)
{
//trace("Anim Instance exists");
trace("Montage playing: "+AnimInstance.Montage_IsPlaying(null) );
//AnimInstance.Montage_Play(FireAnimation, 1.0);
}
}

However, when I run it in-game, UE4 crashes with this:

C++ EH exception - code e06d7363 (first/second chance not available)

KERNELBASE
VCRUNTIME140
UE4Editor_RooVR_1506!hx::Throw() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\stdlibs.cpp:54]
UE4Editor_RooVR_1506!__hxcpp_dbg_checkedThrow() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\include\hx\debug.h:350]
UE4Editor_RooVR_1506!hx::NullReference() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\debug.cpp:440]
UE4Editor_RooVR_1506!hx::ObjectPtrhx::EnumBase_obj::operator->() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\include\hx\object.h:377]
UE4Editor_RooVR_1506!_hx_getEnumValueIndex() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\include\enum.h:157]
UE4Editor_RooVR_1506!unreal::UAnimInstance_obj::Montage_Play() [c:\users\jamie\dropbox\roovr\intermediate\haxe\roovr-win-development-editor\static\src\unreal\uaniminstance.cpp:892]
UE4Editor_RooVR_1506!unreal::__s_Montage_Play() [c:\users\jamie\dropbox\roovr\intermediate\haxe\roovr-win-development-editor\static\src\unreal\uaniminstance.cpp:3325]
UE4Editor_RooVR_1506!hx::CallHaxe::run() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:1727]
UE4Editor_RooVR_1506!hx::CallHaxe::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:1744]
UE4Editor_RooVR_1506!hx::IfExpr::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:541]
UE4Editor_RooVR_1506!hx::BlockExpr::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:433]
UE4Editor_RooVR_1506!hx::IfExpr::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:541]
UE4Editor_RooVR_1506!hx::BlockExpr::runVoid() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppia.cpp:433]
UE4Editor_RooVR_1506!hx::ScriptCallable::runFunctionClosure() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppiafunction.cpp:485]
UE4Editor_RooVR_1506!hx::CppiaClosure::doRun() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppiafunction.cpp:651]
UE4Editor_RooVR_1506!hx::CppiaClosure::__run() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\src\hx\cppia\cppiafunction.cpp:730]
UE4Editor_RooVR_1506!cpp::Variant::operator()() [c:\haxetoolkit\haxe\lib\hxcpp\3,4,64\include\cpp\variant.h:309]
UE4Editor_RooVR_1506!uhx::expose::Character_Expose::OnFire() [c:\users\jamie\dropbox\roovr\intermediate\haxe\roovr-win-development-editor\static\src\uhx\expose\character_expose.cpp:215]

Any guidance would be much appreciated. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.