Out of the box Unreal Engine 4 has support for C++ and Blueprints. This leaves a bit of a gap for people that want more of a scripting experience but don’t want to work in a visual language like Blueprints. Of course we have full source code access and Unreal Engine has solid plugin support so it was only natural for a few third party languages to pop up. What follows is the list of external programming language options for developing in Unreal Engine.
This one is a bit tricky. There was an early leader in an implementation by Xamarin, until licensing differences killed that project. The only other alternative is currently Windows only.
Mono for Unreal Engine
Sadly no longer under development because of licensing issues, this version is outdated, requiring Unreal Engine 4.4 and a Xamarin license to deploy.
Currently the best bet for C# development using the Unreal Engine but sadly confined to Windows only. In the authors own words “This project is still highly experimental, and not very useful (though it's getting there)”. It’s open source and hosted on Github if you wanted to contribute.
There is one project looking to add Haxe language support to Unreal Engine. Fortunately it’s pretty far along.
Fully supporting subclassing UActor and Blueprints, the Haxe code compiles directly to C++ code leaving minimal overhead. This implemetnation gives access to the entire Unreal Engine API.
Slightly different than the other languages on the list, this project implements a simple plugin enables you to link a 3rd party Rust library to C++ in Unreal Engine.
A custom scripting language for Unreal Engine (and other game engine) development, SkookumScript is in their own words “SkookumScript is a text-based programming language for creating performance-critical, real-time gameplay. It is now available as a free turn-key plugin for Unreal Engine 4 (UE4)”. SkookumScript was used to create the game Sleeping Dogs.
No doubt there are languages I’ve missed, so if you know of one at is in at least a runnable state, please leave a comment below and I will add it. I am somewhat shocked that I couldn’t find a Lua plugin at this point!