
    StartupEvents.registry('palladium:abilities', (event) => {
        event.create('heroes:dimensional_eject')
            .icon(palladium.createItemIcon('palladium:vibranium_circuit'))
            .addProperty("id_scoreboard", "string", "Score.Board", "Scoreboard used to identify storage id")
            .addProperty("dimension_id", "string", "minecraft:the_overworld", "dimension used")
					
            .tick((entity, entry, holder, enabled) => {
                if (enabled) {
					
					const score_id = entry.getPropertyByName('id_scoreboard');
					const dim_id = entry.getPropertyByName('dimension_id');
					let dimension = entity.getLevel().getDimension();
					let username_name = entity.getName().getString();
                    let username = entity.username;

					let scoreboard = Utils.server.scoreboard;

                    let scoreboard_obj = scoreboard.getObjective(entry.getPropertyByName("id_scoreboard"));
                    let score = scoreboard.getOrCreatePlayerScore(username, scoreboard_obj);
                    let value = score.getScore();
					
					let dimension_origin = entity.persistentData.pocket_dimension;
					let dimension_x = entity.persistentData.pocket_x;
					let dimension_y = entity.persistentData.pocket_y;
					let dimension_z = entity.persistentData.pocket_z;
					
					entity.server.runCommandSilent("execute as " + username + " at @s in " + dim_id + " positioned " + (value * 250) + " 156 " + (value * 250) + " as @a[name=!" + username + ",distance=..50] run effect give @s minecraft:slow_falling 2 255 true");
					entity.server.runCommandSilent("execute as " + username + " at @s in " + dim_id + " positioned " + (value * 250) + " 156 " + (value * 250) + " as @a[name=!" + username + ",distance=..50] in " + dimension_origin + " run tp @s " + dimension_x + " " + dimension_y + " " + dimension_z);
					
                }
          
			});
    });