Skip to content
A feature-rich, easy-learning and highly optimized Lua scripting plugin for UE4.
C++ Lua C# C
Branch: master
Clone or download
rowechien
Latest commit 81b9f37 Aug 14, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Config UnLua v1.0.0 Aug 13, 2019
Content update readme and remove useless blueprints Aug 13, 2019
Images UnLua v1.0.0 Aug 13, 2019
Plugins/UnLua UnLua v1.0.0 Aug 13, 2019
Source UnLua v1.0.0 Aug 13, 2019
.gitignore add .gitignore file Aug 14, 2019
LICENSE.TXT UnLua v1.0.0 Aug 13, 2019
README.md update readme and remove useless blueprints Aug 13, 2019
TPSProject.uproject fix issues of making android builds Aug 14, 2019
UnLua_Programming_Guide_EN.md UnLua v1.0.0 Aug 13, 2019

README.md

LOGO

Overview

UnLua is a feature-rich, easy-learning and highly optimized scripting solution for UE4. UnLua follows the programming pattern of UE4. UE4 programmers can use it at zero learning cost.

Main features

  • Access all UCLASS, UPROPETY, UFUNCTION, USTRUCT, UENUM without glue codes.
  • Override 'BlueprintEvent' (UFUNCTIONs tagged with 'BlueprintImplementableEvent' or 'BlueprintNativeEvent', All Events/Functions defined in Blueprints) without helper codes.
  • Override Replication Notify without helper codes.
  • Override Animation Notify without helper codes.
  • Override Input Event without helper codes.
  • Simple solution to export classes, member variables, member functions, global functions and enums outside the reflection system statically.
  • Highly optimized UFUNCTION invoking (including persistent parameters buffer, optimized parameters passing, optimized output values handling).
  • Optimized containers (TArray, TSet, TMap) accessing. There is no conversion between Lua table and containers.
  • Optimized structure accessing.

More features

  • Support default parameters of UFUNCTION (tagged with 'BlueprintCallable' or 'Exec') parameters.
  • Support customized collision enums.
  • Support server/clients simulation in editor.
  • Support exporting Lua template file for blueprints.
  • Support calling Latent functions in Lua coroutines.

Modules

  • UnLua. Main 'Runtime' module.
  • UnLuaEditor. 'Editor' module includes editor extention (Lua template exporting) and a commandlet.
  • UnLuaDefaultParamCollector. 'Program' module to collect default parameters for UFUNCTION.
  • UnLuaIntelliSense. 'Program' module to generate IntelliSense (symbols) of all UCLASS, UPROPETY, UFUNCTION, USTRUCT, UENUM for a private IDE (which will be PUBLIC soon). It's disabled by default.

Supported engine versions

Unreal Engine 4.17.x - Unreal Engine 4.23.x

NOTE: build.cs files need tiny modifications under 4.17.x and 4.18.x.

Quick start

  • Create a new Blueprint.

CREATE_BLUEPRINT

  • Implement 'UnLuaInterface'.

IMPLEMENT_UnLuaInterface

  • Return a Lua file path (relative to 'Content/Script') in 'GetModuleName'.

IMPLEMENT_GetModuleName

  • Create Lua template.

CREATE_LUA_TEMPLATE

  • Generated Lua template.

GENERATED_LUA_TEMPLATE

  • Add Lua codes to Lua template.

FINAL_LUA_FILE

Documentation

License

You can’t perform that action at this time.