Skip to content

Unreal.js: Javascript runtime built for UnrealEngine

License

Notifications You must be signed in to change notification settings

ncsoft/Unreal.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Repository files navigation

Unreal.js

Unreal.js is a plug-in which brings V8-powered Javascript into UnrealEngine.

Installation

  • Search unreal.js on the epic marketplace
  • Manual installation
  1. git clone https://github.com/ncsoft/Unreal.js-core <YourProject>/Plugins/UnrealJS
  2. cd <YourProject>/Plugins/UnrealJS && ./install-v8-libs

Features

  • 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, ...

Dummy demo

Tutorials & documentation

License

  • Licensed under the BSD 3-Clause "New" or "Revised" License
  • see LICENSE for details

Examples

Editor extension

Create a new actor

letmyActor=newActor(GWorld,{X:10,Y:20,Z:30});myActor.SetActorLocation({X:40,Y:80,Z:120});

Subclass an existing class

classMyActorextendsActor{properties(){this.MyProp/*EditAnywhere+Replicated+int*/;}RPC(x/*int*/)/*Server+Reliable*/{console.log('This function is replicated',this.MyProp++);}}letMyActor_C=require('uclass')()(global,MyActor);if(GWorld.IsServer()){newMyActor_C(GWorld);}

Node.js like

let_=require('lodash');letkick=()=>{console.log("Hello timer!",_.keys(this));setTimeout(kick,1000);};kick();

About

Unreal.js: Javascript runtime built for UnrealEngine

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 9