🧮 SCore Variables
SCore variables
Score has a integration of variables where you can store strings/numbers in variables in a global way or per player, they aren't integrated in EI or EB, but they are integrated as commands (so they can be used in combination with EI / EB)
They are stored in plugins/Score/variables
Variable Types
| Type | Explanation | 
|---|---|
| STRING | Allow you to store text | 
| NUMBER | Allow you to store number | 
| LIST | Allow you to store multiple values | 
Variable Scope (For)
| Type | Explanation | 
|---|---|
| GLOBAL | Variable stored in a global way means that there is one value and its the same for everyone | 
| PLAYER | Variable stored for each player means that the value is independent for each player. So the value of two different players can be not the same. | 
Modification Types
| Type | Explanation | 
|---|---|
| SET | You set a static value to the variable | 
| MODIFICATION | You modify the variable (useful for INT variables, to add value to a integer value, or to substract a certain value) | 
| LIST-ADD | Specific for LIST , It adds a new value into the list | 
| LIST-REMOVE | Specific for LIST , It removes a value from the list | 
ID of the variables can't have underscores, points or spaces but - is ok
Variables tools
- /score variables list
- Display all existing variables IDs
 
 - /score variables info {variable-id} [player]
- Display the value of a specific variable (Optional: for a specific player)
 
 - /score variables-create {variable-id}
- Create a new variable with the id mentioned and open the in-game editor
 
 - /score variables-define  {variable-id} {type_of_variable} {for} [material_icon] [default_values...]
- Allow to create a new variable using a command
 
 - /score variables-delete {variable-id}
- Delete the variable with the id mentioned
 
 - /score variables
- Open the in-game editor of variables
 
 - /score variables clear {type_of_variable} {variable-id} [player]
- Clear the value of the variable (Optional: for a specific player)
 - If you replace [player] by all, it will clear the value for all players
 
 - /score variables {modification_type} {variable_scope} {variable-id} {value} [player]
- Allow you to modify the value of an existing variable.
 - Examples:
- GLOBAL Variables:
- /score variables SET GLOBAL exemple1 100
- Set the value 100 to the global variable exemple1
 
 - /score variables MODIFICATION GLOBAL plop 100
- Increase the global variable plop of +100
 
 - /score variables MODIFICATION GLOBAL plop -50
- Decrease the global variable plop of -50
 
 
 - /score variables SET GLOBAL exemple1 100
 - PLAYER Variables
- /score variables SET PLAYER my-variable -20 Ssomar
- Set the value -20 to the variable my-variable for the player Ssomar
 
 - /score variables MODIFICATION PLAYER my-variable -50 Ssomar
- Decrease the player variable my-variable of -50 for Ssomar
 
 
 - /score variables SET PLAYER my-variable -20 Ssomar
 - Specific examples for LIST type
- /score variables list-add PLAYER ThisIsTheNameOfMyVariable TEXT1 Ssomar
- Add values into the list
 
 - /score variables list-add PLAYER ThisIsTheNameOfMyVariable TEXT3 Ssomar index:0
- To specify a place to add the value into the list use index feature (0 is the first element of the list, so it will add TEXT3 at the begin of the list)
 
 - /score variables list-remove PLAYER ThisIsTheNameOfMyVariable Ssomar
- Remove the last value
 
 - /score variables list-remove PLAYER ThisIsTheNameOfMyVariable Ssomar index:0
- Remove a specific index
 
 - /score variables list-remove PLAYER ThisIsTheNameOfMyVariable Ssomar value:Test
- Remove a specific value
 
 
 - /score variables list-add PLAYER ThisIsTheNameOfMyVariable TEXT1 Ssomar
 
 - GLOBAL Variables:
 
 
Variable-list also work with GLOBAL variables, but you would need to change instead of PLAYER -> GLOBAL and remove the player in the command
Variables placeholders
This requires PlaceholderAPI.
- %score_variables_<variable-id>%
 - %score_variables_<variable-id>_int%
 
Since SCore variable placeholders are supported by PlaceholderAPI, you can use the SCore variables like this:
%math_{score_variables_userLevel}*10%
Placeholders specific for LIST
- %score_variables_<variable-id>_<index>%
- Return the value at the specific index of the list
 
 - %score_variables_<variable-id>%
- Return all the elements of the list
 
 - %score_variables-contains_<variable-name>_<value>%
- Return a boolean to see if the list contains a value (true or false)
 
 - %score_variables-size_<variable-name>%
- Return the size of the list
 
 
What you can do with this feature -> Item created by Ssomar
Terminator
Ability : 
- RIGHT CLICK to select entities
- SHIFT+RIGHT CLICK to explode them
You need to first create the variable, you can use this command:
/score variables-define myList LIST PLAYER
# Le nom ou nom d'affichage
name: '&6&l>> &7Terminator stick &6&l<<'
# La description de l'item
lore:
- '&7Select entites by right'
- '&7clicking on them !'
- '&eLimit: &63 entities'
- '&e'
- '&7Then shift + right click'
- '&7to make them explode !'
# Le matériau
material: STICK
usage: 1
usageLimit: -1
config_5: true
config_update: true
# Fonctionnalités de nourriture
foodFeatures:
  # La nutrition de la nourriture
  nutrition: 1
  # La saturation de la nourriture
  saturation: 1
  # La nourriture est-elle de la viande?
  isMeat: false
  # Le joueur peut-il toujours manger cette nourriture?
  canAlwaysEat: false
# Les fonctionnalités de masquage
# Masquer:
# Attributs, Enchantements, ...
hiders:
  # Masquer l'utilisation
  hideUsage: true
# Les activateurs / déclencheurs
activators:
  activator0:
    option: PLAYER_RIGHT_CLICK
    typeTarget: NO_TYPE_TARGET
    # Les emplacements où
    # l'activateur fonctionnera
    detailedSlots:
    - -1
    commands:
    - SWING_MAIN_HAND
    - LAUNCH DEFAULT_INVISIBLE_ARROW_NO_GRAVITY_SPEED
  activator5:
    option: PROJECTILE_HIT_ENTITY
    # Les emplacements où
    # l'activateur fonctionnera
    detailedSlots:
    - -1
    commands:
    - 'SENDMESSAGE &7You &cunselected &7the entity: &e%entity_name%'
    - score variables list-remove player myList %player% value:%entity_uuid%
    # Les conditions placeholders
    placeholdersConditions:
      plchCdt0:
        type: PLAYER_STRING
        comparator: EQUALS
        # La première partie de la condition
        part1: '%score_variables-contains_myList_%entity_uuid%%'
        # La deuxième partie de la condition
        part2: 'true'
    detailedEntities: []
    entityCommands: []
  activator2:
    option: PLAYER_LEFT_CLICK
    typeTarget: NO_TYPE_TARGET
    # Les emplacements où
    # l'activateur fonctionnera
    detailedSlots:
    - -1
    commands:
    - FOR %score_variables_myList% > for1
    - score run-entity-command entity:%for1% JUMP 1
    - END_FOR for1
    - DELAYTICK 5
    - FOR %score_variables_myList% > for1
    - score run-entity-command entity:%for1% DAMAGE 100
    - END_FOR for1
    - execute at %player% run playsound minecraft:entity.ender_dragon.death master
      @a
    - score variables clear player myList %player%
    - SEND_MESSAGE &7You &cpulverized &7the selected entities &7but you can do many
      other things let's talk your imagination
    #
    playerConditions:
      ifSneaking: true
      # The message displayed
      # when the condition is not met
      ifSneakingMsg: ''
    # Les conditions placeholders
    placeholdersConditions:
      plchCdt0:
        type: PLAYER_NUMBER
        comparator: SUPERIOR
        # La première partie de la condition
        part1: '%score_variables-size_myList%'
        # La deuxième partie de la condition
        part2: '0'
        # Message si la condition n'est pas valide?
        messageIfNotValid: '&7To execute the ability you must to &cselect at least
          1 entity'
  activator1:
    option: PROJECTILE_HIT_ENTITY
    # Les emplacements où
    # l'activateur fonctionnera
    detailedSlots:
    - -1
    commands:
    - 'SEND_MESSAGE &7You &aselected &7the entity: &e%entity_name%'
    - score variables list-add player myList %entity_uuid% %player%
    # Les conditions placeholders
    placeholdersConditions:
      plchCdt0:
        type: PLAYER_STRING
        comparator: EQUALS
        # La première partie de la condition
        part1: '%score_variables-contains_myList_%entity_uuid%%'
        # La deuxième partie de la condition
        part2: 'false'
      plchCdt1:
        type: PLAYER_NUMBER
        comparator: INFERIOR
        # La première partie de la condition
        part1: '%score_variables-size_myList%'
        # La deuxième partie de la condition
        part2: '3'
        # Message si la condition n'est pas valide?
        messageIfNotValid: '&4&l>> &7&oYou can''t select more than 3 entities'
    detailedEntities: []
    entityCommands: []
  activator3:
    # Le nom ou nom d'affichage
    name: cancelProjectileSelection
    option: PROJECTILE_HIT_ENTITY
    # Annuler l'événement vanilla
    cancelEvent: true
    # Les emplacements où
    # l'activateur fonctionnera
    detailedSlots:
    - -1
    commands: []
    detailedEntities: []
    entityCommands: []
ExecutableItems (Item variables)
ExecutableItems has a integration of variables where you can store strings/numbers/list in variables inside the item. With them you can create multiple mechanics in your items.
There are ways to change the variable outside the item, using this methods:
\
Modify a variable
- VIA CONSOLE
- Command:
- /ei console-modification {set/modification} variable {player} {slot} {variableName} {value}
 
 
 - Command:
 - VIA on game
- Command:
- /ei modification {set/modification} variable {slot} {variableName} {value}
 
 
 - Command:
 
To check the placeholders of "Internal item variables" check it here
ExecutableBlocks (Block variables)
ExecutableBlocks has a integration of variables where you can store strings/numbers/list in variables inside the block. With them you can create multiple mechanics in your blocks.
To check the placeholders of "Internal item/block variables" check it here