Denizen2 Scripting Engine


#1

Are you a server owner looking to take back control of your server?
Do you want to have the ability to change any functionality on your server with a short bit of easy typing, without so much as having to restart the server?
Do you want to be able to create plugins and other cool things without dealing with a tough learning curve?

If you answered yes to any of the above, Denizen2 is for you!

Denizen2 is a powerful scripting engine that allows simple YAML-like text files to run complex actions!
It’s like having config files with a mountain of power behind them!

Sample script (may be outdated, sorry):

speed_boost_world:
    type: world
    debug: false
    events:
        on delta time secondly:
        - repeat 10:
          - wait 0.1s
          - foreach start <server.worlds> --save world:
            - foreach start <[world].entities[minecart]> --save entity:
              - if <[entity].has_flag[speedmod]> && <[entity].velocity.vector_length_squared> > 0.01:
                - editentity <[entity]> velocity:<[entity].velocity.multiply[<[entity].flag[speedmod].to_number>]>

speedmod_command:
    type: command
    name: speedmod
    description: Modifies the speed of nearby minecarts.
    permission: speed_boost.speedmod
    script:
    - if <context.[source]> != "player":
      - echo "Nope!"
      - stop
    - if <context.[arguments].size> != 1:
      - tell <player> "/speedmod [speed]"
      - stop
    - define speedmod <context.[arguments].get[1].to_number||1>
    - define ents <player.location.nearby_entities[type:minecart|range:2]>
    - foreach start <[ents]> --save entity:
      - flagentity <[entity]> speedmod:<[speedmod]>
    - tell <player> "Speedmod for <[ents].size> minecart(s)  changed to <[speedmod]>!"

Github: https://github.com/DenizenScript/Denizen2Sponge

Forums: http://forum.denizenscript.com/

DISCORD!!!: https://discord.gg/Q6pZGSR

-(OLD) Active and interesting Live IRC chat room: http://one.denizenscript.com/ircchat_denizen (irc.esper.net #denizen-dev)

Download Sponge mod: http://ci.citizensnpcs.co/job/Denizen2Sponge/

Core code github: https://github.com/DenizenScript/Denizen2Core

Download the script editor helper program (experimental, you can use any text editor instead of this): https://github.com/DenizenScript/Denizen2IDE/releases

Watch our tutorial videos!: https://forum.denizenscript.com/viewtopic.php?f=12&t=57

WANT TO CONTROL CLIENTS TOO? Check out Clientizen! https://github.com/DenizenScript/Clientizen


EmptyServerCommands - Automatic shutdown if server is empty
#2

This is real! Can't wait to finally use it to do more than what we can actually do with Denizen1!

Good jobs guys, keep up the good work! :slight_smile:


#3

*Mouth drop :open_mouth: I'm dead! McMonkey! You rule! I always loved this plugin in spigot. *throws money at screen will there be example scripts available on your site? I miss the old site that ppl shared there scripts on. Is there a citizens port? I'm just trying to rap my head around how you add scripts to npcs etc.


#4

We're indeed going to have a place for users to share their scripts! Hasn't been decided yet how we want to do that, as the old system was a bit poor quality (not the scripts, the actual web sites I made for it :stuck_out_tongue: ) Among other things, the ability for users to have a proper discussion on-page about a script is important to me, so we may end up just using the Denizen forum for it.

As for Citizens: it's going to be ported soon, just hasn't been done yet. In addition to Citizens NPCs on Sponge, Denizen2 will support full plain-entity-scripting that will work very similarly to the Citizens setup, to maximize the options available!

Everything is still being worked on and figured out, but in addition to the above - I feel confident saying Denizen2 will be in many ways better than even Denizen 1 was! Easier to use, faster execution times, stronger (more options available that can do more), etc.


#5

The original page for sharing scripts was cleaner, more user friendly. The latest, black/green site is a bit harder to navigate, and it seems like people lost interest or motivation to add scripts. Maybe if there were a page dedicated just for scripts, and categorized well? Keep up the good work, I can't wait to delve into scripting again now that it's available for forge/sponge! Now if only mythicmobs would port over! (ashi said he won't because not enough people want/need it :frowning: but oh well I guess haha )


#6

must resist urge to say denizen can replace mythicmobs


#7

When you make an addon (or walk though) that makes it user friendly enough to create mobs, like mythicmobs is set up... ill gladly donate haha! I dont doubt it can replace it! :smiley:


#8

I've actually seen and worked on several mythicmobs script version back in Denizen-Bukkit days. It's fairly common and straightforward to do :stuck_out_tongue: I'll probably cover the basics of making pets, custom mobs stuff, "mythic mobs" type stuff, etc. as part of teaching how to work with Denizen2 in minecraft once we're advanced far enough that I'm pushing regular tutorial videos.


#9

Just wanted to say that I am really looking forward to having a scripting plugin for sponge as many others have been attempted but all seem to give up before anything significant is created and all I can hope is that the same does not happen here.

Keep up the good work!


#10

Don't worry, we're going to keep at it. We're uniquely qualified to be doing this, as Denizen was originally a Bukkit scripting engine and still retains 600+ servers running our most recent Bukkit version! Denizen is also not the only script engine we've written, we have similar research and work scripting in other systems. We're very interested in Sponge as a platform and so are many of our users, so of course we're going to keep working to make something amazing available here!
In short: We know how to do it, we've done it before, and we intend to do it here.
Only problems we've encountered so far have been limitations of Sponge's current implementation, which we've been working with the sponge team to ensure they are fixed.

Also, we already have a full backing engine for D2 at this stage (The focus of the past few months of work). The current development is mainly focused now on linking in Sponge/Minecraft features as seamlessly as possible.


#11

Is this plugin something like "Skript" for Bukkit/Spigot?


#12

Er... conceptually, sure.

In the Denizen channels, our users often laugh at Skript because of how weak and strange it is compared to Denizen.


#13

Nice, I will wait for updates, good luck


#14

I didn't expect this kind of plugin when reading "Denizen" but I am not disappointed !

I will watch for updates too :thumbsup:


#15

For people unsure of what this is, it's essentially the potential to create your own plugins via pseudo-code.

Ran it back on Spigot and was able to replace about 20 plugins with scripts cobbled together by my own lack of talent, and help from / payment to people in the usually active IRC.


#16

Hi hello! I’d like to keep you updated on D2 progress so far. We’ve been extremely busy and thus inactive during the summer, but we are again working on implementing the scripting engine onto Sponge. The plugin is pretty capable already, as it already has the vast majority of Sponge-specific commands, events and tags. New features we’ve added lately include partial inventory support, player statistics, the announce command and many many more. We’re now working on some functionality it lacks in order to match (and surpass) its original ancestor.
We’re developing it as fast as we can while still making sure its code is high quality and it’s easy to use for server owners. Since we are mainly two team members working back to back, we could use some help. This is when you users come into play: even if you don’t have Java experience, you can help us a lot by testing features, suggesting ideas and being interested overall in the project. This will help us fix bugs as well as keep us motivated, which in turn translates into faster development.
If you are interested in helping out, or if you want to know about Denizen news straight from us, feel free to join us on discord at Denizen Discord Server.
Thanks for your time, and happy scripting!