Skript - or something extremely similar to it


#21

Bensku (the current maintainer) has already tried to port Skript to sponge: https://github.com/bensku/Skribble
Though I believe he gave up…


#22

He did, unfortunately. I’ve been searching for a way to load Skript on Sponge since Sponge was first released. PoreRT build number 112 was the only thing I found (after testing literally all 120 builds of PoreRT multiple times) able to load Skript, but not fully, with tons of errors, and only on 1.11 (I need it on 1.10.2).


#23

Hi there. We’ve been working on porting our scripting plugin Denizen to Sponge for some time now. It’s somewhat similar to Skript, though I’d say it has less plain english and more syntax. This sometimes makes it a bit harder to learn, but more logical once you have the grasp of it.

Denizen2Sponge is still under heavy development and lacks many things (mainly inventory GUI stuff), but should be fairly capable overall already. We have:

  • Commands: These are pieces of code that execute actions, either inside the game or not. An example of these is “define”, for defining a new variable, and “heal”, for healing an entity/player. They always have a - before the actual command, so in the end the proper syntax is “- command argument1 argument2”. We curently have 70+ commands, not sure of the exact number cause we need to update the documentation site that keeps track of them.

  • Tags: These are mainly used to retrieve information, as they are pieces of text inside “<>” that get replaced with actual information on execution. They always start with a tag base, that defines the starting tag type, and then some tag modifiers, that manipulate the base to reach a desired result. Each modifier is separated with a “.”. This works somewhat similar to chaining methods in Java. An example would be “<player.location.world>”, where “<player” is a tag base that refers to the player linked to this queue. “.location” then gets the location of this player, and “.world>” gets the world of this location. The whole tag will then be replaced with a world object, that can be used in some world-specific commands.300+ tag modifier count so far, and growing.

  • Events: These are used to listen to certain things happening in the server or Minecraft world. Once an event fires, it executes the command list it has inside (in order). They also have switches, that are filters so the event only fires under certain conditions (this saves you from using unnecesary if checks). An example of an event would be “on entity dies:”. If you want this event to only fire in a certain world and for players, you would do “on entity dies type:player world:spawn:”. These switches are internal checks, so they are pretty fast. About 50 events as of now.

So that’s a brief explanation of the working pieces of our scripting plugin. It’s not a private project, so it benefits more people, but it’s also free. If you think it serves your purpose, let me know, and I’ll leave a couple links (documentation, tutorials, builds and discord support channel) here.

Have a great day!


#24

I appreciate the offer. However, I’ve tried using Denizen2Sponge before, as stated above, and it wasn’t as user-friendly as I would have liked. Me personally, I’m not afraid of diving into learning a new syntax. At the same time, I’m a firm believer of “if it’s not broken, don’t fix it”. Skript did everything we needed it to do, and the syntax was simple enough that I could get my server staff members to do files for me while I was at work (I work two jobs, 6 days and 7 nights a week) with minimal explanation of how to do what I wanted them to do.