Before we get into the actual script-writing, I'm sure you're wondering what Denizen is, what it's capable of, and why you might want to use it on your server. Simply put, Denizen is a plugin that runs user-written scripts allowing anyone, yes, even you, to achieve almost anything a regular Minecraft plugin could. [show VSC with essentials & litebans configs open] Denizen is layed out similar to a YAML file, YAML is a file format you've probably used before to configure plugins like Essentials or LuckPerms. Now imagine the simplicity of a YAML file paired with a powerful scripting engine like Denizen. Yeah, pretty crazy. [show video of both commands being typed out] The actual syntax of scripts, sometimes referred to as dScripts, is a command-tag syntax: A command is something you're likely familiar with, commands like /gamemode creative @p or /give @p diamond can be rewritten in Denizen by replacing the slash with a hyphen alongside a few other things. [show command_examples.dsc file] These commands written in Denizen syntax would be: - adjust gamemode:creative and - give diamond player: [switch to tags.dsc] I'm sure you're wondering how the bit plays into things. Well, this actually brings us to the second part of our command-tag syntax, tags! You may be thinking that the tag is a placeholder and that it indicates requiring a player username input from you, however, Denizen actually handles all of that. This feature of Denizen greatly increases what is possible of scripts, allowing for some pretty crazy things to be achieved. Now, you might (again) be wondering, what can a normal Denizen user do? Well, this can vary from basic utility, like daily server restarts and custom items, to more complex things like bank keypad guis, discord bots, and even pizza ordering buttons! [put jumpsplat's video link in top right] These are just some of the things possible with Denizen. (need some more stuff to say here) If you still aren't convinced, that's fine, scripting isn't for everyone; but know that you're missing out on quite a lot. In terms of actual raw syntax/functionality, Denizen could be analogized as a programming language of sorts, as it contains things like if statements, foreach loops, and while loops, but it's important to note that there are also massive differences between Denizen and actual programming languages like C# and Java. Learning one of those programming languages can make it easier for you to pick up Denizen, but you should be cautious not to approach writing Denizen scripts the same way you would write code in typical programming languages since they differ. Your familiarity with programming languages may influence your experience with Denizen, and you may find Denizen surprisingly simpler to work with than the languages you've previously used. If you don't have any experience with programming languages, there's no need to worry. Denizen is primarily designed to be user-friendly and easy to learn for beginners. There are many tools and resources available to make it much simpler to learn and work with Denizen than a more daunting language such as Java. Some readers may be wondering if Denizen is less powerful than Java plugins, but the surprising truth is that it often allows you to do more. While there are exceptions, when it comes to interacting with Minecraft servers, Denizen not only provides most of the Bukkit API's functionality, but also includes a vast array of additional utilities and quality-of-life improvements. Moreover, Denizen can perform a wide range of functionalities that are not available in Bukkit, such as NMS calls. For instance, while Bukkit lacks an API for sticking arrows into an entity, Denizen can accomplish this task effortlessly with a single command. Additionally, while Bukkit does not provide an event for messages sent to a player, Denizen can easily intercept them. Another concern that may arise is performance. Do scripts run as quickly as pure Java code? The answer is both yes and no. If you were to compare a tight loop in Java to one in Denizen, Java would easily come out on top. However, in real-world scenarios, Denizen can perform well enough that there is typically no noticeable decrease in performance for 99% of the scripts you may write. Dedicated scripters have even managed to replicate the functionality of plugins like WorldGuard and maintain full tick rate on their servers without any issues.