An internal error occurred while attempting to perform this command.

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!


Active Member
Feb 18, 2017
Super sorry if this is the wrong place to post this but any time I type any Skript command I receive this error in game
[COLOR=#ff9999]An internal error has occurred while attempting to perform this command[/COLOR]

And this in console

[18:04:51 INFO]: noblesuntzu issued server command: /sk reload all
[18:04:51 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'sk' in plugin Skript v2.2-dev33
        at org.bukkit.command.PluginCommand.execute( ~[craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at org.bukkit.command.SimpleCommandMap.dispatch( ~[craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand( ~[craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand( [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerConnection.a( [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:37) [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:9) [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$ [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at java.util.concurrent.Executors$ Source) [?:1.8.0_101]
        at Source) [?:1.8.0_101]
        at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B( [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B( [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A( [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at [craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        at Source) [?:1.8.0_101]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class ch.njol.skript.SkriptConfig
        at ch.njol.skript.Skript.reloadMainConfig( ~[?:?]
        at ch.njol.skript.Skript.reload( ~[?:?]
        at ch.njol.skript.SkriptCommand.onCommand( ~[?:?]
        at org.bukkit.command.PluginCommand.execute( ~[craftbukkit-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Bukkit-18fbb24]
        ... 15 more

My applicable plugins are
Skript 2.2 dev33
WildSkript 1.8 (Dzikoysk)
SkriptJSON 1.0.0 (none)
TuSKe 1.8.2 (Tuke_Nuke)
Skellet 1.8.9 (LimeGlass)
SkStuff (TheBukor)
SkRambled 1.9 (HeadShot)
SharpSK 1.6.2 (Sharpjaws)

If this is the wrong place to put this just let me know.
Bensku's fork of Skript does not work properly on craftbukkit.
You will need to use Spigot or Paper
I tried both Spigot 1.8.8 and PaperSpigot 1.8.8 and I still get the same error, except all the craftbukkit jars in the error are replaced with the spigot/paper jars.
it almost appears you're missing your config
if you go into your skript folder (/plugins/skript/) is there a file called
Yes there is

I'll include it but it's pretty standard the only things I've changed are the effect commands and the update settings.
#     __________________________________________________________
#    / /                                                   / /\ \
#    \_\___________________________________________________\_\/ /
#        / /    _____    __            __                    / /
#       / /    / ____\  / /           /_/          /\       / /
#      / /    / /__    / /___  ___   __  ______ __/ /_     / /
#     / /     \___ \  /   __/ / __\ / / / __  //_  __/    / /
#    / /     ____/ / / /\ \  / /   / / / /_/ /  / /      / /
#   / /     \_____/ /_/ /_/ /_/   /_/ / ____/  /_/      / /__
#  / /    ========================== / / ==========    / / \ \
# | |                               /_/               | |   | |
#  \_\_________________________________________________\_\_/_/
# == Introduction ==
# This file contains Skript's general options. To write scripts, create a new .sk file in the scripts folder or edit any existing one.
# Script files prefixed with a hyphen (-) will not be loaded, e.g. renaming 'plant with' to '-plant with' will disable the whole file.
# This can e.g. be used to temporarily disable scripts and is also used for Skript's example scripts.
# You can also use the command '/skript enable/disable <script>' to enable/disable a script which will automatically rename it.
# === !!! PLEASE NOTE !!! ===
# This file, all scripts and other files ending in .sk are NOT .yml/YAML files, but very similar!
# Please remember the following when editing files:
# - To indent sections you can use spaces like in YAML, but tabs are also allowed. Just remember to stick to the one or the other for a section/trigger.
# - '#' starts a comment like in YAML. If you don't want it to start a comment simply double it: '##' (You also have to double these in "quoted text")
# - If you use special characters (§, äöü, éèàôç, ñ, etc.) you have to encode the file in UTF-8.

# ==== General Options ====

language: english
# Which language to use. Currently english and german are included in the download, but custom languages can be created as well.
# Please note that not everything can be translated yet, i.e. parts of Skript will still be english if you use another language.
# If you want to translate Skript to your language please read the readme.txt located in the /lang/ folder in the jar
# (open the jar as zip or rename it to to access it)

check for new version: true
# Whether Skript should check for whether a new version of Skript is available when the server starts.
# If this is set to true Skript will announce a new version to all players with the "skript.admin" permission.
# If set to false you can still check for a new version with '/skript update check'.
# Please note that Skript will not detect beta releases even if you are running one as they are not necessarily stable.

update check interval: 12 hours
# If 'check for new version' is enabled, this sets how often to check for a new update.
# A first check will always be made when the server starts, after that checks will be made in intervals set by this option.
# Set this to 0 to disable repeated checks, in which case only one check will be made when the server starts.
# Please note that this option is currently the only means of making Skript check for an update more than once,
# as '/skript update check' does only display the results of the last check if a check has been made before.

automatically download new version: true
# Whether Skript should automatically download & install the newest version if one is available.
# I suggest to disable this feature if your server restarts automatically as you likely won't be informed
# of any incompatibilities of your scripts and the newest version of Skript.
# If you disable this you can still use '/skript update download' to make Skript download the newest version.
# If you're concerned about changes use '/skript update changes' for a full list of changes since your current version.

update to pre-releases: true
# Indicates if Skript should update to pre-release builds, which might be unstable. This is enabled by default, if
# your first Skript version in this server is pre-release.

enable effect commands: true
effect command token: !
# If 'enable effect commands' is set to true, chat messages starting with the 'effect command token' will be interpreted as effects and executed.
# The token can be longer than a single character, but it should not start with '/' as that starts a command.
# A player needs the permission "skript.effectcommands" to use such commands,
# which does not default to OPs since these commands can do severe damage to the world or crash the server (see below).
# Some example commands which can be used if this setting is enabled:
#    !heal player - heals the player (doesn't do anything if used from the console)
#    !repair tool - repairs the currently held item
#    !broadcast "<red>Please read the rules!" - if you want to get rid of the quotes you have to define a custom command
#    !set time to 6:00 - sets the time in the current world
# The command can also be abused, so only give the permission to trusted players, like owners & co-owners:
#    !spawn 20 ender dragons - will destroy a large part of the world in a short time if no protection is present
#    !create explosion of force 10000 - likely crashes the server or at least hangs it up for a long time
#    !ban all players - as the effect implies

allow ops to use effect commands: true
# Whether server operators which do not have the permission "skript.effectcommands" should have access to effect commands.
# This setting is mainly useful for servers that do not run any permissions plugin.

player variable fix: true
#Whether to enable the player variable fix if a player has rejoined and was reciding inside a variable.
#Player objects inside a variable(list or normal) are not updated to the new player object
#A server creates whenever a player rejoins.
#Basicly the variable holds the old player object when a player has rejoined thus rendering the variable kinda broken.
#This fix should work around that and whenever a invalid(old) player object is attempted to be get through a variable
#It will check if the player is online and then get the valid(new) player object and update the variable object to that one.
#By Mirre

use player UUIDs in variable names: false
# Whether to use a player's UUID instead of their name in variables, e.g. {home.%player%} will look like
# {home.e5240337-a4a2-39dd-8ed9-e5ce729a8522} instead of {home.njol}.
# Please note that if this setting is changed old variables WILL NOT be renamed automatically.

date format: default
# The date format to be used when dates should be displayed.
# This can be 'default' to use Java's default date format for the system's language.
# The format is that of Java's SimpleDateFormat as defined here:
# some examples:
#  d/M/yyyy h:mm a => 15/7/2012 8:53 PM
#  dd.MM.yyyy, HH:mm => 16.03.2013, 09:33

verbosity: normal
# Determines how much info is logged.
# Allowed values: low, normal, high, very high, debug
# The highest you should go is very high, which prints quite a lot of useful information,
# including how much time each trigger takes to execute.
# Only use debug if you're programming an add-on for Skript, but even then you might usually not need it.

plugin priority: high
# Allowed values: lowest, low, normal, high, highest
# Change this if you encounter problems with other plugins, e.g.:
# - cancelled events: The event is cancelled by another plugin, but Skript handles the event nonetheless => increase priority
#                    (e.g. WorldGuard cancels events if a player doesn't have permission for the given region,
#                     and you made some 'place' triggers which should not bypass WorldGuard's protection)
# - effects '(un)cancel event': Another plugin should/should not process the event, but does/does not => decrease priority
# - effect 'drop': Another plugin doesn't process added drops => decrease priority
# - effects 'remove ... from drops'/'clear drops': Drops added by other plugins are not removed => increase priority
#                                                  Skript removes drops it shouldn't => decrease priority or specify which item types to remove

log player commands: true
# Whether Skript should log the usage of custom commands.
# They will be logged as [INFORMATION] in this format: '<player>: /<command> <arguments>'

number accuracy: 2
# How many digits should be displayed after the dot at maximum when displaying numbers.
# Zeroes will never be displayed at all, so this setting only applies to numbers that actually have a decimal part with one or more non-zero digits.
# Money bypasses this setting and is displayed as configured in your economy plugin if you have one.

maximum target block distance: 100
# How far to search for a player's targeted block in blocks/meters.
# Lower values improve performance, but might reduce the usability of your scripts.
# This value is limited by the server (e.g. by 'view-distance' in the, but is guaranteed to work up to 100 meters.

case sensitive: false
# Whether Skript's functions should be case sensitive or not.
# This e.g. applies to the effect 'replace' and the conditions 'contains' and 'is/is not'.
# Variable names are case-insensitive irrespective of this setting.

disable variable conflict warnings: false
# Disables warnings of potential variable name conflicts if set to true.
# I recommend to not touch this option, but if you do so you should at least set it back to false
# whenever you create new scripts with new variables.

disable variable will not be saved warnings: false
# Disables the "... i.e contents cannot be saved ..." warning when reloading and something in your scripts sets a variable(non local) to a value that is not serializable.
# By Mirre.

disable variable missing and/or warnings: false
# Disables the "List is missing 'and' or 'or', defaulting to 'and'" warning when reloading your script.

disable starting a variable's name with an expression warnings: false
# Disables the "Starting a variable's name with an expression is discouraged..." warnings

soft api exceptions: false
# Allows Skript to ignore certain actions which would normally result in thrown exceptions.
# If everything works correctly, you should keep this option disabled. It might cause problems in some cases.
# However, if Skript or addons of it are not working correctly, this might help.
# You may also get told to enable this by Skript or addon developers - then do so.

enable timings: false
# When enabled, triggers in scripts will be present in timings reports.
# Note that this requires Paper ( to work; on Bukkit/Spigot this option has no effect.
# When false, timings are not enabled for scripts even if you're running Paper.

parse links in chat messages: disabled
# Controls how Skript will try to parse links in chat messages.
# If 'disabled' or 'false', no links will be automatically parsed.
# When 'strict', everything starting with http(s):// will be parsed as link.
# When 'lenient', everything that contains a dot will be interpreted as a link.

color codes reset formatting: true
# With old Minecraft chat protocol, color codes used to reset formatting of text.
# With JSON-based new chat protocol, this is not necessary, but can be done
# manually for compatibility. This is done by default for compatibility.

# ==== Variables ====

    # Databases to store variables in. These can either be used as a simple one-server-storage
    # where variables are written constantly but only read at server start,
    # or as a connection between multiple servers by monitoring the database(s) for changes.
    # You can define as many databases as you want, just make sure to choose a distinct name for each one, and don't forget to set all options correctly.
    # To be able to use a database you'll need to download the plugin 'SQLibrary' from
    # and install it in your server's plugin directory like other plugins.
    # Please note that '/skript reload' will not reload this section, i.e. you'll have to restart Skript for changes to take effect.
    # Each database definition must be in a separate section. You can choose any name for the sections, as long as it's not already used.
    database 1:
        # an example database to describe all possible options.
        type: disabled
        # The type of this database. Allowed values are 'CSV', 'SQLite', 'MySQL' and 'disabled'.
        # CSV uses a text file to store the variables, while SQLite and MySQL use databases, and 'disabled' makes Skript ignore the database as if it wasn't defined at all.
        pattern: .*
        # Defines which variables to save in this database.
        # This pattern uses Regex syntax, e.g. use 'db_.*' (without the quotes) to store all variables prefixed with 'db_' in this database,
        # or use '.*' (the default value) to store all variables here (recommended for the last database in this list, as otherwise some variables might not be saved).
        # Please note that variables are only stored in one database, and databases are checked from top to bottom,
        # e.g. if a variable matches the topmost database's pattern it will be saved there and nowhere else.
        # BTW: Patterns are checked in a separate thread, i.e. your server likely won't run slower when using complicated patterns.
        monitor changes: false
        monitor interval: 20 seconds
        # If 'monitor changes' is set to true, variables will repeatedly be checked for updates in the database (in intervals set in 'monitor interval').
        # ! Please note that you should set 'pattern', 'monitor changes' and 'monitor interval' to the same values on all servers that access the same database!
        # == MySQL configuration ==
        host: localhost# Where the database server is located at, e.g. '', 'localhost', or ''
        port: 3306# 3306 is MySQL's default port, i.e. you likely won't need to change this value
        user: root
        password: pass
        database: skript# The database to use. Skript will automatically create a table 'variables21' in this database if it doesn't exist
        # (If the table exists but is defined differently that how Skript expects it to be you'll get errors and no variables will be saved and/or loaded)
        # == SQLite/CSV configuration ==
        file: ./plugins/Skript/variables.db
        # Where to save the variables to. For a CSV file, the file extension '.csv' is recommended, but not required, but SQLite database files must end in '.db' (SQLibrary forces this).
        # The file path can either be absolute (e.g. 'C:\whatever\...' [Windows] or '/usr/whatever/...' [Unix]), or relative to the server directory (e.g. './plugins/Skript/...').
        backup interval: 2 hours
        # Creates a backup of the file every so often. This can be useful if you ever want to revert variables to an older state.
        # Variables are saved constantly no matter what is set here, thus a server crash will never make you loose any variables.
        # Set this to 0 to disable this feature.
    MySQL example:
        # A MySQL database example, with options unrelated to MySQL removed.
        type: disabled# change to line below to enable this database
        # type: MySQL
        pattern: synced_.*# this pattern will save all variables that start with 'synced_' in this MySQL database.
        host: localhost
        port: 3306
        user: root
        password: pass
        database: skript
        monitor changes: true
        monitor interval: 20 seconds
    SQLite example:
        # An SQLite database example.
        type: disabled# change to line below to enable this database
        # type: SQLite
        pattern: db_.*# this pattern will save all variables that start with 'db_' in this SQLite database.
        file: ./plugins/Skript/variables.db
        # SQLite databases must end in '.db'
        backup interval: 0# 0 = don't create backups
        monitor changes: false
        monitor interval: 20 seconds
        # The default "database" is a simple text file, with each variable on a separate line and the variable's name, type, and value separated by commas.
        # This is the last database in this list to catch all variables that have not been saved anywhere else.
        # You can modify this database freely, but make sure to know what you're doing if you don't want to loose any variables.
        type: CSV
        pattern: .*
        file: ./plugins/Skript/variables.csv
        backup interval: 2 hours
        # PS: If you don't want some variables to be saved in any database (e.g. variables that contain an %entity% which usually despawn when the server is shut down)
        # you can modify the last database's pattern to not match all variables, e.g. use '(?!x_).*' to match all variables that don't start with 'x_'.
        # Be very cautious when doing this however as unsaved variables cannot be recovered after the server has been stopped.
        # I recommend to use a single character to denote unsaved variables (similar to local variables' '_'), e.g. '-', in which case the last database's pattern should be '(?!-).*'.
        # ==== Settings that should not be changed ====
version: 2.2-dev33
# This saves for which version of Skript this configuration was written for.
# If it does not match the version of the .jar file then the config will be updated automatically.
have you recently reload your server using (/reload)?
If yes.... restart your server. reload screws up skript.

If no...
Here is what i recommend. Your skript.jar file might be corrupt.
Stop your server.
Backup your skript folder, then delete it as well as delete your skript.jar
re-download the jar file, and start your server, letting everything in that folder regenerate.
stop your server
Then put your scripts back in the skript folder, and change the config to suit your needs.
Then start your server back up
have you recently reload your server using (/reload)?
If yes.... restart your server. reload screws up skript.

If no...
Here is what i recommend. Your skript.jar file might be corrupt.
Stop your server.
Backup your skript folder, then delete it as well as delete your skript.jar
re-download the jar file, and start your server, letting everything in that folder regenerate.
stop your server
Then put your scripts back in the skript folder, and change the config to suit your needs.
Then start your server back up
Sir you have solved my problem thank you very much! The only problem I have now is with reloading a specific script (it throws the same error) but I'm assuming this is because I screwed up syntax (this script) so don't bother looking into that. Anyway thanks again!