Unreal.js is a plug-in which brings V8-powered Javascript into UnrealEngine.
- Link to Demo project
- Link to the Unreal Engine Marketplace (4.11-4.27, 5.0-5.1)
- Update notes
- Link to NDC 2017 presentation (KR)
- Link to NDC 2017 presentation Video (KR)
- Support Platform : Win64, Mac, Linux, Android, iOS
- Search unreal.js on the epic marketplace
- Manual installation
- git clone https://github.com/ncsoft/Unreal.js-core <YourProject>/Plugins/UnrealJS
- cd <YourProject>/Plugins/UnrealJS && ./install-v8-libs
- 
Powered by latest V8 (ES6) 
- 
CommonJS modules 
- 
Full access to the whole UnrealEngine API 
- 
Free to subclass existing classes including blueprint 
- 
Live reload 
- 
Communicate with outer world: REST(http), process(pipe), arraybuffer, ... 
- 
Bridge API for editor extension 
- 
Auto-completion for Visual Studio Code (auto-generated *.d.ts) 
- 
Debugging within Visual Studio, Visual Studio Code, WebStorm and all IDE which supports V8 protocol 
- 
Profiling supported by V8 
- 
Dedicated Javascript console on UnrealEditor 
- 
(Full) access to existing javascript libraries via npm, bower, ... 
- Very simple demo available (https://github.com/ncsoft/Unreal.js/archive/snippet-editor.zip)
- Licensed under the BSD 3-Clause "New" or "Revised" License
- see LICENSE for details
let myActor = new Actor(GWorld,{X:10,Y:20,Z:30});
myActor.SetActorLocation({X:40,Y:80,Z:120});class MyActor extends Actor {
  properties() {
    this.MyProp/*EditAnywhere+Replicated+int*/;
  }
  RPC(x/*int*/) /*Server+Reliable*/ {
    console.log('This function is replicated',this.MyProp++);
  }
}
let MyActor_C = require('uclass')()(global,MyActor);
if (GWorld.IsServer()) { 
  new MyActor_C(GWorld);
}let _ = require('lodash');
let kick = () => {
  console.log("Hello timer!",_.keys(this));
  setTimeout(kick,1000);
};
kick();


