Skip to main content

Introduction

Lets set some ground rules so you don't complain about us wasting your time:

  • This is a Lua-focused tutorial. There may be portions on BP interoperability (eventually), but for the most part this will be pure, untainted Lua 😎 Some concepts will definitely transfer over though.
  • If you need a refresher on Lua basics, like script struct, data types, or flow control, please check out the Lua Basics page. We won't cover those topics much in the main tutorials, so please get yourself acquainted with Lua beforehand.
  • This is mainly aimed at beginners who have little to no prior experience with UE4SS modding. Eventually we might add more advanced tutorials but for now this is just meant to get your toes wet.
  • We will give you hints, lead you through the process, and for the most part you can probably just read along if you want, but you need to realize that (at least at this point) nothing is going to be handed to you when you go to make your own mod. The more you can manage to figure out on yourself without using what we provide you, the better off you will be going forward.

Why Lua?

  • Fast prototyping. You can very quickly bang out some code as a proof of concept before moving to BP's to flesh it out.
  • Easy packing, no cooking. Just zip up the mod folder and upload, easy as that.
  • Can arugably do a bit more things than BP's alone can do.
  • Coding is better than UE legos (maybe subjective)
  • ???

Why not Lua?

  • Not as user friendly to install
  • BP might be easier to work with for non-programmers
  • Sometimes legos are actually more fun
  • ???

Early-Access Disclaimer

If you're expecting docs to tell you everything, handy modding tools, a breakdown of useful functions, or anything of that sort, just do yourself a favor and come back in a couple months because we aren't there. You're getting yourself into hours of digging through live view and header files just so you can write 30 lines of code that doesn't work in two weeks because an update drops that changes the function you hooked.

If you're cool with that, then let's do this!