LuaLink
1.21.11-93LuaLink is a plugin that provides a Lua scripting runtime for Paper-based Minecraft servers. It serves as an alternative to Skript however can do just about anything a typical Java plugin can do.
1.21.11-93latestMar 14, 2026 1.21.111.21.10-92Dec 1, 2025 Merge pull request #64 from NigelThorne/macos-natives-1.21.10 Fix macOS ARM64 natives and update to 1.21.101.21.8-83Sep 4, 2025 addexceptionally(try: function, catch: function)function<br>Merge pull request #51 from Grabsky/try-catch addexceptionally(try: function, catch: function)function1.21.7-77Aug 29, 2025 chore(deps): update plugin de.eldoria.plugin-yml.paper to v0.8.0<br>Merge pull request #48 from LuaLink/renovate/de.eldoria.plugin-yml.paper-0.x chore(deps): update plugin de.eldoria.plugin-yml.paper to v0.8.01.21.7-76Aug 24, 2025 chore(deps): update actions/setup-java action to v5<br>Merge pull request #47 from LuaLink/renovate/actions-setup-java-5.x [ci-skip] chore(deps): update actions/setup-java action to v51.21.7-73Aug 14, 2025 1.21.7-72Aug 13, 2025 chore(deps): update plugin com.gradleup.shadow to v9<br>Merge pull request #42 from LuaLink/renovate/com.gradleup.shadow-9.x chore(deps): update plugin com.gradleup.shadow to v91.21.7-71Aug 5, 2025 chore(deps): update plugin com.gradleup.shadow to v8.3.9<br>Merge pull request #41 from LuaLink/renovate/com.gradleup.shadow-8.x chore(deps): update plugin com.gradleup.shadow to v8.3.91.21.7-70Aug 1, 2025 chore(deps): update dependency gradle to v9<br>Merge pull request #40 from LuaLink/renovate/gradle-9.x chore(deps): update dependency gradle to v91.21.7-69Jul 27, 2025 chore(deps): update plugin com.modrinth.minotaur to v2.8.8<br>Merge pull request #38 from LuaLink/renovate/com.modrinth.minotaur-2.x chore(deps): update plugin com.modrinth.minotaur to v2.8.81.21.7-68Jul 23, 2025 remove leftover debug<br>Merge pull request #37 from Grabsky/patch-1 remove leftover debug1.21.6-65Jul 5, 2025 chore(deps): update dependency gradle to v8.14.3<br>Merge pull request #34 from LuaLink/renovate/gradle-8.x chore(deps): update dependency gradle to v8.14.31.21.6-51Jul 3, 2025 Syncronize tabComplete calls1.21.6-50Jun 30, 2025 Mark 1.21.7 as supported1.21.6-48Jun 26, 2025 Update GSON to not use deprecated method.<br>Bump LuaJava (fixes #16) See https://github.com/LuaLink/luajava/commit/91992006372d49d…1.21.6-47Jun 24, 2025 chore(deps): update plugin com.gradleup.shadow to v8.3.7<br>Merge pull request #32 from LuaLink/renovate/com.gradleup.shadow-8.x chore(deps): update plugin com.gradleup.shadow to v8.3.71.21.6-46Jun 23, 2025 chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.2.0<br>Merge pull request #31 from LuaLink/renovate/org.jetbrains.kotlin.jvm-2.x chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.2.01.21.6-45Jun 19, 2025 update to 1.21.6<br>replace maven central with pre-configured mirror if applicable<br>Merge pull request #30 from Grabsky/feat/1.21.6 mark 1.21.6 as supported and adjust dependency resolution1.21.5-44Jun 13, 2025 Expose rawget and rawset to the Lua env1.21.5-43Jun 9, 2025 fix listeners for events that share the same handler list<br>Merge pull request #29 from Grabsky/fix/event-handlers fix listeners for events that share the same handler list1.21.5-42Jun 7, 2025 chore(deps): update dependency gradle to v8.14.2<br>Merge pull request #28 from LuaLink/renovate/gradle-8.x chore(deps): update dependency gradle to v8.14.21.21.5-40Jun 3, 2025 filter command completions based on user input<br>Merge pull request #26 from Grabsky/feat/match-user-input Filter command completions based on user input1.21.5-37Jun 2, 2025 fix: Scheduler1.21.5-36Jun 2, 2025 chore: Bump LuaJava version * Improve "no matching method" errors ([ab76f3624cf1b892a2d0e2625d1a5a35826e9847](https://github.com/LuaLink/luajava/commit/ab76f3624cf1b89…1.21.5-35Jun 2, 2025 chore: Cleanup scriptmanager.lua<br>chore: Improve script sandboxing by making standard Lua functions read-only<br>lua: Add asynchronizedfunction This works similar to Java's synchronized keyword and uses it under the hood. You should use this if you are gonna be doing any operations off of the main thread to avoid JVM crashes.1.21.5-33Jun 1, 2025 fix: #15 Also fixes JVM crashes when the server is under a heavy load and you have multiple threads in use in a script1.21.5-32May 27, 2025 fix: Lua LS annotation forScript#registerListener1.21.5-31May 23, 2025 Update LuaJava (again)1.21.5-30May 23, 2025 Fix some scripts not being listed in /lualink list1.21.5-29May 23, 2025 Update LuaJava<br>Update<br>Merge pull request #20 from LuaLink/update-luajava Update LuaJava * Updates LuaJIT to latest commit * Enables Lua 5.2 Compat in LuaJIT * Updates Lua 5.4 to latest commit * Switches away from normal Java reflection to Fast-reflection1.21.5-28May 22, 2025 chore(deps): update dependency gradle to v8.14.1<br>Merge pull request #23 from LuaLink/renovate/gradle-8.x chore(deps): update dependency gradle to v8.14.11.21.5-27May 21, 2025 Fix partial loads when a script errors on load. Fix /lualink reload|unload erroring on scripts that aren't already loaded.<br>Update src/main/resources/lua/scriptmanager.lua Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com><br>Test<br>Merge pull request #21 from LuaLink/fix-load-errors Fix partial loads when a script errors on load.1.21.5-26May 21, 2025 Add support for setting event priority<br>Merge pull request #19 from LuaLink/event-priority Add support for setting event priority1.21.5-25May 13, 2025 chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.1.21<br>Merge pull request #13 from LuaLink/renovate/org.jetbrains.kotlin.jvm-2.x chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.1.211.21.5-24May 11, 2025 AddScript:getDataFolder()method to the script class. This global points to the scripts folder (plugins/LuaLink/scripts/somescript). This is helpful incase a script needs to store data it needs to know where to store it :)1.21.5-23May 11, 2025 Add__dataFolderglobal to the script sandbox. This global points to the scripts folder (plugins/LuaLink/scripts/somescript). This is helpful incase a script needs to store data it needs to know where to store it :)1.21.5-22May 11, 2025 Allow selecting between LuaJIT and Lua5.4 With this version it introduces aconfig.jsonwith aluaRuntimefield. By default this is set to LUAJIT which means scripts will be ran under the LUAJIT runtime. Another supported runtime is Lua 5.4 which can be used by setting that field to LUA54. LuaJIT does requirelibgccto be present, otherwise an UnsatisfiedLinkError will be thrown however with this version if that occurs it will try and fallback to Lua 5.4 which doesn't seem to require it.1.21.5-18May 10, 2025 MarkScript.newas package-private1.21.5-17May 1, 2025 chore: Pin third-party actions chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.1.20 chore(deps): update dependency gradle to v8.14 fix(deps): update dependency org.bstats:bstats-bukkit to v3.1.01.21.5-12Apr 19, 2025 feature: Add bStats<br>fix: Load scripts onServerLoadListenerinstead ononEnable1.21.5-11Apr 19, 2025 fix: /lualink list1.21.5-10Apr 16, 2025 feat: addlibs/<module>/main.luato search paths<br>Merge pull request #10 from Grabsky/feat/libs-stuff feat: addlibs/<module>/main.luato search paths1.21.5-9Apr 16, 2025 fix: prevent redundant class lookups See: https://github.com/LuaLink/luajava/pull/11.21.5-7Apr 13, 2025 Preventing loading, unloading, reloading, and listing of the internal LuaLink script1.21.5-6Apr 13, 2025 Fix console being spammed when trying to load a script with nomain.luavia commands1.21.4-4Apr 13, 2025 Remove support for below 1.21 (may work just untested)1.21.4-1Apr 13, 2025 Automatic building and publishing Automatically builds and publishes to Modrinth and Hangar1.21.4-3Apr 13, 2025 build against JDK 21<br>Merge pull request #9 from Grabsky/fix/actions build against JDK 211.21.4-84Mar 17, 2025 Remove enum wrapper Generally went unused and has caused issues in the newest versions<br>Bump to 1.21.41.20.4-83Jun 26, 2024 Migrate commands to Cloud v2 (#50)1.20.4-55Feb 4, 2024 credentials support for user-specified libraries (#34)1.20.2-52Dec 18, 2023 Bug fixes1.20.2-50Dec 17, 2023 * Add a playerOnly option to command metadata * If this is set totrueit works exactly the same asconsoleOnlyexcept restricts it to players only. * Ability to disable scripts * You can now disable scripts via /lualink disable|enable * Disabling a script will unload it and prevent it from automatically being loaded on start * Bump version1.20.1-48Dec 8, 2023 Switch to componentLogger to be able to use MiniMessage inside of logs1.20.1-39Oct 29, 2023 fix listeners for events that share the same handler list (#21)1.20.1-38Oct 7, 2023 1.20.1-33Oct 5, 2023 scheduler improvements (#17)1.20.1-31Sep 27, 2023 Resolve #15 and some code cleanupCode Cleanup
- Improved code organization.Structural Changes
- Moved script loading and unloading responsibilities to a dedicated script manager class. - Scripts now load when the ServerLoadEvent is triggered, enhancing plugin performance and startup.Breaking Changes
- Breaking:onEnableandonDisablemethods have been removed from the script lifecycle. - Recommendation: UseonLoadandonUnloadas alternative methods for initialization and cleanup.1.20.1-30Sep 27, 2023 Expose runTaskLater to scripts1.20.1-28Sep 25, 2023 Remove task from list if manually canceled1.20.1-26Sep 25, 2023 Fix #14<br>Remove useless copy of tasks list Pretty sure this was useless since the script is unloaded anyways1.20.1-15Sep 20, 2023 user-specified libraries (#6)1.20.1-14Sep 15, 2023 * Cache addon objects for easier use1.20.1-10Sep 13, 2023 CI To publish to GitHub Packages for API1.20.1-7Sep 13, 2023 Hot fix1.20.1-5Sep 12, 2023 Error handling for scripts<br>Ability to import Java classes. Using import "xyz.abc.example.Class" will return that class, for you to use.1.20.1-2Sep 11, 2023 Hangar gradle plugin + CI. For the fourth time..
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta