ProtonDev
-
Posts
6 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Blogs
Events
Store
Downloads
Posts posted by ProtonDev
-
-
So you wanna learn skript.
First thing to start with would be commands, they're simple and easy to use and I will be using them throughout this tutorial.
To get started setup your server and install Skript (preferably the latest version)
After you've done that you're ready to get started, if any other plugins are necessary for certain things I will list that.
Commands
The first thing we would want to know is well, what is a command? A command is something we'd put in chat to run out certain skript.
An example command would be "/gamemode creative" which has the command: "/gamemode" and the text argument: "creative".
Now how do we make one in skript?
Well to make a basic command with no arguments we would do
command /ExampleCommand:trigger:send "You have executed this example command" to playerAs you may have guessed this send the message "You have executed this example command" to the player.
But what if we want to have arguments, something the player can put into the command.
Maybe we want to make an add command?
command /add <integer> <integer>:trigger:send "%arg-1+arg-2%" to playerNow we add arguments with <argumentType> and if we want an optional argument we use [<argumentType>].
You can find all the argument types here, then search "Types" in the search bar.
Now that we know commands and how to add arguments why don't we make something useful, a /gmc command maybe? To set the player's gamemode to creative much easier, just like essentials.
Maybe we want to give it a permission to? And tell the player's without permission "YOU CANT USE THIS COMMAND" or something like that.
Let me give you an example on how we would achieve this.
command /gmc:permission: tutorial.creativepermission message: &cYou do not have permission to use this commandtrigger:set player's gamemode to creativesend "&aYour gamemode has been set to creative." to playerNow, that is a bit longer there our other skripts and you may notice some new things: "permission" and "permission message"
What "permission" does is assure the player has the right permission to use the command because we wouldn't want your player's using the creative command to dupe their items!
And "permission message" is the message it will send the player's that do not have the right permission to use the command.
So our user would see "You do not have permission to use this command" in red if they do not have permission.
We then change the player's gamemode with "set player's gamemode", I think that is self explanatory, and I hope you know what send does by now.
Now you know basic commands and arguments and how to give them permissions, why not try to make /gms yourself?
Events
The next thing we can move onto is events, let's start with a basic event, on join.
On join is called when a player joins the game so why don't we try to make a join message?
on join:set join message to "%player% has joined this amazing server."As you can see, we are using "player" again but we have it in percent signs, this is because we're using a VARIABLE in a STRING.
These are in uppercase as they are types. I'll tend to do that as we move on. We put all our VARIABLES that are in STRINGS within percent signs. So if we were to put the DISPLAY NAME of the player, we would do "%player's display name%" instead of "%player%"
There are several events and you can find them all here.
Loops
Now you know how to use basic events and commands and arguments and even types, let's move onto loops.
There are 2 loops, for loop and while loop. The first one I'll show you is a for loop.
command /ForLoop <integer>:trigger:loop arg-1 times:send "hi x%loop-value%" to playeryou can see I've used multiple of the techniques I have showed you here to make this command.
This loop (arg-1) which is whatever the player inputs to the command e.g /ForLoop 5 would loop 5 times the code in the indentation.
Now a while loop, heres an example of that:
on join:while player is online:send "hi nerd" to playerwait 1 secondThis is in the on join event which then runs the "while player is online" which will run all the code, whilst the player is online, as fast as it can.
We have the wait 1 second to prevent it from crashing the server.
Now we've finished with basic loops we can do functions.
Functions
First things first is defining a function, we do that with the keyword function then we put the name of the function followered with parenthesis, function test(): heres an example function
function sayHi(p:playersend "hi" to {_p}Now to add arguments to a function we put the variable we want to store it in, in my case p and then a colon then the type, in my case PLAYER. we index these functions with {_p} so you will notice I did send "hi" to {_p} instead of player as in functions there is no player.
Now how would we use this? Simple
command /hi:trigger:sayHi(player)To see it's a function we see the parenthesis () to call the function and in the parenthesis are the arguments we pass to the function. These are useful to pass data across scopes.
Returning data from functions:
function add(x:integer,y:integer):: integer:return {_x} + {_y}command /add:trigger:"%add(1,2)%"We have :: with the return type that we want then our code with a return at the end this returns whatever data is after the return if it is the specified type.
This allows us to run code somewhere else and use it in our specified location e.g our command.
That's all I have time to cover right now,
if there is anything else you'd like me to put examples for or explain then let me know
in the replies or in my dms
Hope you found this informative, I have written this late at night so please
don't criticise my errors to much.
Try and help each other in the replies if possible.
-
options: ServerName: &6&lEPIC SERVER DiscordServer: wYGK2vr4ZF Store: notedgens.tebex.io Color1: &6 Color2: &7 Color3: &8 FooterText: &fBETA SEASON on join: while player is online: set tablist header of player to "%nl%{@ServerName}%nl%%nl%{@Color1}Discord{@Color3} • {@Color2}discord.gg/{@DiscordServer}%nl%{@Color1}Store {@Color3}• {@Color2}{@Store}%nl%" set {_tps::*} to tps set tablist footer of player to "%nl%{@Color3}( {@Color2}TPS {@Color3}• {@Color1}%{_tps::1}%{@Color3} | {@Color2}Ping {@Color3}• {@Color1}%player's ping%{@Color3} | {@Color2}Online {@Color3}• {@Color1}%size of all players%{@Color3} )%nl%{@FooterText}%nl%" if player has permission "donor" or "staff": set tablist name of player to "%player's prefix% &f%player%" else: set tablist name of player to "%player's prefix% %player%" wait 2 seconds
SkRayFall is required
- 2
- 1
-
Poki_2
good luck all and I'm excited for your server
basic skript tutorial with examples
in Discussion
Posted
So you wanna learn skript.
First thing to start with would be commands, they're simple and easy to use and I will be using them throughout this tutorial.
To get started setup your server and install Skript (preferably the latest version)
After you've done that you're ready to get started, if any other plugins are necessary for certain things I will list that.
Commands
The first thing we would want to know is well, what is a command? A command is something we'd put in chat to run out certain skript.
An example command would be "/gamemode creative" which has the command: "/gamemode" and the text argument: "creative".
Now how do we make one in skript?
Well to make a basic command with no arguments we would do
As you may have guessed this send the message "You have executed this example command" to the player.
But what if we want to have arguments, something the player can put into the command.
Maybe we want to make an add command?
Now we add arguments with <argumentType> and if we want an optional argument we use [<argumentType>].
You can find all the argument types here, then search "Types" in the search bar.
Now that we know commands and how to add arguments why don't we make something useful, a /gmc command maybe? To set the player's gamemode to creative much easier, just like essentials.
Maybe we want to give it a permission to? And tell the player's without permission "YOU CANT USE THIS COMMAND" or something like that.
Let me give you an example on how we would achieve this.
Now, that is a bit longer there our other skripts and you may notice some new things: "permission" and "permission message"
What "permission" does is assure the player has the right permission to use the command because we wouldn't want your player's using the creative command to dupe their items!
And "permission message" is the message it will send the player's that do not have the right permission to use the command.
So our user would see "You do not have permission to use this command" in red if they do not have permission.
We then change the player's gamemode with "set player's gamemode", I think that is self explanatory, and I hope you know what send does by now.
Now you know basic commands and arguments and how to give them permissions, why not try to make /gms yourself?
Events
The next thing we can move onto is events, let's start with a basic event, on join.
On join is called when a player joins the game so why don't we try to make a join message?
As you can see, we are using "player" again but we have it in percent signs, this is because we're using a VARIABLE in a STRING.
These are in uppercase as they are types. I'll tend to do that as we move on. We put all our VARIABLES that are in STRINGS within percent signs. So if we were to put the DISPLAY NAME of the player, we would do "%player's display name%" instead of "%player%"
There are several events and you can find them all here.
Loops
Now you know how to use basic events and commands and arguments and even types, let's move onto loops.
There are 2 loops, for loop and while loop. The first one I'll show you is a for loop.
you can see I've used multiple of the techniques I have showed you here to make this command.
This loop (arg-1) which is whatever the player inputs to the command e.g /ForLoop 5 would loop 5 times the code in the indentation.
Now a while loop, heres an example of that:
This is in the on join event which then runs the "while player is online" which will run all the code, whilst the player is online, as fast as it can.
We have the wait 1 second to prevent it from crashing the server.
Now we've finished with basic loops we can do functions.
Functions
First things first is defining a function, we do that with the keyword function then we put the name of the function followered with parenthesis, function test(): heres an example function
Now to add arguments to a function we put the variable we want to store it in, in my case p and then a colon then the type, in my case PLAYER. we index these functions with {_p} so you will notice I did send "hi" to {_p} instead of player as in functions there is no player.
Now how would we use this? Simple
To see it's a function we see the parenthesis () to call the function and in the parenthesis are the arguments we pass to the function. These are useful to pass data across scopes.
Returning data from functions:
We have :: with the return type that we want then our code with a return at the end this returns whatever data is after the return if it is the specified type.
This allows us to run code somewhere else and use it in our specified location e.g our command.
That's all I have time to cover right now,
if there is anything else you'd like me to put examples for or explain then let me know
in the replies or in my dms
Hope you found this informative, I have written this late at night so please
don't criticise my errors to much.
Try and help each other in the replies if possible.