8Crafter's Server Utilities Wiki
Changelogs
  • Changelogs
  • Releases
    • v1.1.0
    • v1.2.0
    • v1.2.1
    • v1.2.2
    • v1.3.0
    • v1.3.1
    • v1.3.2
    • v1.3.3
    • v1.3.4
    • v1.3.5
    • v1.3.6
    • v1.4.0
    • v1.5.0
    • v1.5.1
    • v1.6.0
    • v1.7.0
    • v1.8.0
    • v1.9.0
    • v1.10.2
    • v1.11.0
    • v1.12.0
    • v1.12.1
    • v1.12.2
    • v1.12.3
    • v1.13.0
    • v1.14.0
    • v1.14.1
    • v1.15.0
    • v1.15.1
    • v1.16.0
    • v1.17.0
    • v1.18.0
    • v1.18.1
    • v1.18.2
    • v1.19.0
    • v1.20.0
    • v1.21.0
    • v1.22.0
    • v1.23.0
    • v1.23.1
    • v1.24.0
    • v1.25.0
    • v1.25.1
    • v1.25.2
    • v1.26.0
    • v1.27.0
    • v1.28.0
    • v1.28.1
    • v1.28.2
    • v1.28.3
    • v1.28.4
    • v1.28.5
    • v1.29.0
    • v1.29.1
    • v1.29.2
    • v1.29.3
    • v1.29.4
    • v1.30.0
    • v1.30.1
    • v1.31.0
    • v1.32.0
    • v1.32.1
    • v1.33.0
    • v1.33.1
    • v1.34.0
    • v1.34.1
    • v1.35.0
    • v1.36.0
    • v1.36.1
    • v1.36.2
    • v1.36.3
    • v1.36.4
    • v1.36.5
    • v1.36.6
    • v1.37.0
  • Pre-Releases
    • v0.1.0
    • v0.2.0
    • v0.3.0
    • v0.3.1
    • v0.3.2
    • v0.4.0
    • v0.5.0
    • v0.5.1
    • v0.6.0
    • v0.8.0
    • v0.8.1
    • v0.8.2
    • v0.8.3
    • v1.0.0-RC.1
    • v1.0.0-RC.2
    • v1.20.0-preview.20
    • v1.20.0-preview.21
    • v1.20.0-preview.22
    • v1.23.0-preview.20+BUILD.1
    • v1.26.0-RC.1
    • v1.26.0-RC.2
    • v1.26.0-RC.3
    • v1.35.0-RC.1
    • v1.35.0-RC.2
General
  • General Information
  • Troubleshooting
  • Downloading
  • Installing
  • Getting Started
Commands
  • Commands Basics
  • Parameters Basics
  • Parameter Types
Commands List
  • Main
    • \align
    • \aligncenter
    • \attribute
    • \binvsee
    • \block
    • \bluemodsversion
    • \clearchat
    • \eval
    • \gma
    • \gmc
    • \gmd
    • \gmg
    • \gmp
    • \gmr
    • \gms
    • \help
    • \mainmenu
    • \playermenu
    • \tpa
    • \tpaccept
    • \tpdeny
  • WorldEdit
    • \\backuparea
    • \\ceil
    • \\chunk
    • \\cone
    • \\copy
    • \\cube
      Non-Functional
    • \\cut
    • \\cyl
    • \\deletesavedpos
    • \\drain
    • \\expandselection
    • \\flood
    • \\floor
    • \\generate
    • \\generatecallback
      Non-Functional
    • \\generatef
    • \\generatejs
      Non-Functional
    • \\generates
    • \\generateterrain
    • \\hcone
      Non-Functional
    • \\hcube
    • \\hcyl
      Non-Functional
    • \\hpos1
    • \\hpos2
    • \\hreplace
    • \\hsphere
    • \\idtfill
    • \\itfill
    • \\listpos
    • \\loadchunks
    • \\loadpos
    • \\maze
    • \\move
      Non-Functional
    • \\offset
    • \\omove
      Non-Functional
    • \\oreplace
    • \\paste
    • \\pos1
    • \\pos2
    • \\protectarea
    • \\regenerateblocks
    • \\remove
    • \\replace
    • \\savepos
    • \\savestructure
    • \\selectmode
    • \\set
    • \\seti
    • \\shift
    • \\smove
      Non-Functional
    • \\sphere
    • \\stack
    • \\stsphere
    • \\tube
    • \\undo
    • \\walls
    • \selectionrender
  • Removed
    • \settings (Old)
Systems
  • Anti-Spam System
  • Ban System
  • Chat Ranks System
  • Home System
  • Player Shop System
  • Rank Name Tags System
  • Server Shop System
  • Shop System
  • Sign Shop System
  • Spawn Protection System
  • TPA System
Settings
  • Chat Ranks Settings
  • General Settings
  • Home System Settings
  • Manage Game Rules
  • Module Imports
  • Money System Settings
  • Notifications Settings
  • Personal Settings
  • Script Settings
  • TPA System Settings
  • UI Settings
  • Extra Features
    • Extra Features Settings
  • Advanced
    • Advanced Settings
/scriptevent Commands
  • s:e
Blocks
  • ifill Command Placeholder Block
  • Invalid Block Placeholder
Entities
  • Outline Renderer
  • Tickingarea
  • Tickingarea 6
Items
  • Debug Sticks
    • Debug Stick
    • Editor Stick
  • UI Items
    • Main Menu
    • Player Menu
  • WorldEdit Items
    • Selection Tool
  • Misc.
    • Programmable Items
    • Ultra Bundle
    • WorldEdit Brushes
Main Menu
  • Main Menu
Player Menu
  • Player Menu
Ultra Security Mode
  • Command Required Permission Levels
Misc
  • Add-On Version Compatibility List
Other Features
  • Enchanting Any Item With Any Enchantment
  • Item Customization
  • No AI Entities
  • Particle Customization
  • Simulated Players
Meta
  • Useful Links

Video Settings

Theme


Debug



v1.33.0 (The UI Update) Changelog

v1.33.0
  • Additions
    • Bounty System
    • Commands
    • Items
    • Leaderboards UI
    • Player Menu
    • Spawn Protection
    • Texture Presets
    • UIs
  • Changes
    • Ban System
    • Chat Ranks & Name Tags
    • Commands
    • Performance
    • Settings
    • UIs
    • Misc.
  • Removals
    • Settings
    • Script Form UI
  • Fixes
    • Ban System
    • Chat Ranks
    • Commands
    • Entities
    • Items
    • Player Data Save System
    • Script Form UI
    • UIs
    • Ultra Security Mode
  • Technical Additions
  • Technical Changes
  • Technical Removals
  • Technical Fixes

Additions ​

Bounty System ​

  • Added a bounty system, it is part of the new Player Menu.

Commands ​

  • Added the \clearchat command. It has one alias: \cc.
  • Added the \playermenu command. It has two aliases: \pmenu and \pm.

Items ​

  • Added the Player Menu (andexdb:player_menu) item. This item opens the new Player Menu.

Leaderboards UI ​

  • Added a leaderboards UI, it is part of the new Player Menu.

Player Menu ​

Introducing the Player Menu.

It is like the Main Menu but it is for regular players instead of admins.

It includes many features, such as:

  • A homes system UI.
  • A TPA system UI.
  • A warps system UI.
  • A bounty system UI.
  • A leaderboards UI.
  • A button to access the Server Shops UI.
  • A button to access the Player Shops UI.
  • A money transfer system UI.
  • A code redemption system UI. You can create codes that players can enter into this menu that give them a specific item when they enter it, and each person can only enter each code once.

The Player Menu can be accessed through either the Player Menu item, or the \playermenu command.

Spawn Protection ​

Added the ability to create custom advanced protected area categories, so instad of using one of the 6 built-in categories, you can make your own ones that are highly customizable.

You can customize these to do things such as prevent placing and/or breaking of only certain blocks types, allow players with specific items or tags to bypass it, make it only affect players holding specific items, etc.

The settings for a category apply to all protected areas in that category.

Here is a list of things these custom areas can do:

  • Block Placement Prevention
  • Block Breaking Prevention
  • Block Interaction Prevention
  • Entity Interaction Prevention
  • Item Use Prevention
  • Item Use On Prevention
  • Explosion Prevention
  • Entity Effect Add Prevention
  • Player Chat Message Send Prevention
  • Player Game Mode Change Prevention
  • PVP Prevention
  • Tag Area

Here are a list of ways each of these can be customized:

  • Allowing players with certain tags to bypass it.
  • Making the area only affect players holding specific item types.
  • Making the area not affect players holding specific item types.
  • Filtering whether to prevent things like block placement, breaking, interaction, and explosions based on filtering the blocks with a BlockMask.
  • Filtering things like entity interaction based on a filter for the target entity, the filter can exclude or include entities with certain types and/or tags.
  • Filtering things like explosions and entities gaining effects based on a filter for the source entity, the filter can exclude or include entities with certain types and/or tags.
  • Filtering things like entities gaining effects based on the effect type and duration.
  • Filtering things like player game mode changes based on the game modes they are switching from and to.
  • Making tag zones give players certain tags when they enter it, and optionally making it remove the tag from the player when they leave it.

Texture Presets ​

Added a texture presets feature, this allows for you to select a texture from a menu, so that when setting the texture for things such as items and pages in the player shops, you don't have to know the exact path of the texture.

This menu also allows you to search for specific textures.

It currently has 5 sections:

  • Vanilla Item Textures - Has all the textures from the vanilla item_textures.json file.
  • Vanilla Block Textures - Has all the textures from the vanilla terrain_textures.json file.
  • Vanilla Textures List - Has all of the vanilla textures.
  • Debug Sticks Textures List - Has all of the textures from this add-on.
  • Entity Scale Textures List - Has all of the textures from my entity scale add-on. This section will only appear when my entity scale add-on is active on the world/realm/server.

UIs ​

Settings ​

  • The "Eval Auto Execute Settings" menu has been moved into the "Advanced" settings section.
  • Added a new "UI Settings" section to the settings menu.
    • The old "UI Settings" menu has been moved inside of this new menu at "Main Menu > Settings > UI Settings > Main".
    • Added the "Menu Configurations" settings menu to the new "UI Settings" settings menu.
      • Added the "Main Menu" settings menus to the new "Menu Configurations" settings menu.
        • Added the "Main Settings" settings menu to this menu.
          • This menu contains the main settings for the main menu, such as whether buttons for upcoming features should be shown.
      • Added the "Player Menu" settings menus to the new "Menu Configurations" settings menu.
        • Added the "Main Settings" settings menu to this menu.
          • This menu contains the main settings for the Player Menu, such as whether or not it is enabled, whether buttons for upcoming features should be shown, and the item name for the item that players use to open the Player Menu.
        • Added the "Edit Buttons" settings menu to this menu.
          • This menu allows you to rearrange and/or remove the buttons in the Player Menu.
        • Added the "Leaderboards Settings" settings menu to this menu.
          • This menu allows you customize the leaderboards menu in the Player Menu.
        • Added the "Edit Warps" settings menu to this menu.
          • This menu allows you to add, edit, and remove warps for the warps section of the Player Menu.
        • Added the "Edit Redeemable Codes" settings menu to this menu.
          • This menu allows you to create/remove redeemable codes that players can redeem in the redeem code section of the Player Menu.
  • Added a new "Teleport Systems Settings" menu to the settings menu.
    • This settings menu allows you to change settings that apply to all types of player-accessible teleports, including but not limited to the warps, TPA, and homes menus of the Player Menu, and the \tpa, \spawn, \home, and \gohome commands.
  • Added a "Player Menu Settings" button to the settings menu, this button is an alias of "Main Menu > Settings > UI Settings > Menu Configurations > Player Menu".
  • Replaced the "Chat Ranks Settings" button with the "Chat & Name Tags Settings" button, which opens a new user-friendly sub-menu.
  • Added the "Teleport Systems Settings" menu. This menu allows you to do things such as change the PVP cooldown for players to teleport, changing the teleport cooldown, setting how long they have to stand still for to teleport, etc.

Changes ​

Ban System ​

  • Made the ban system a lot more user-friendly, you can now leave the ban duration blank to make it permanent, the ban duration now takes a duration string (ex. 5y 7mo 6w 4d 3h 2m 17s 546ms) instead of an integer for the number of seconds, and the ban reason field is now just the reason text, and does not include all the extra stuff, that is now added automatically, and you can leave the reason blank and it will default to "§cYOU HAVE BEEN BANNED BY THE BAN HAMMER".
  • The manage bans menu now is split up into pages.
  • The manage bans menu now displays id bans with the player's name rather than their ID, making it easiser to identify which player the ban belongs to.

Chat Ranks & Name Tags ​

  • Massive internal overhaul to the chat ranks and name tags systems, this will make them much easier to improve in the furure.
  • The Chat Ranks Settings menu is now a lot more user-friendly. Instead of a bunch of settings crammed into one singular menu, they are now split up into a bunch of sub-menus. There are now also menus to preview what the chat ranks and name tags look like with your current settings.

Commands ​

  • The \\protectarea command now supports custom protected area categories. The built-in ones are still specified exactly the same way, but for the custom ones, you just put the same id that you put when creating the category, with the custom categories, you do not include a : at the end.
  • Added the o flag to the \\protectarea command. This flag causes the command to overwrite the saved protected area if one exists with the same id.

Performance ​

  • Made massive performance improvements to the Manage Players menu.
  • The list of bans is now cached to improve performance, and is automatically refreshed when you try to get the list of bans if the last refresh was at least a second before.
  • Made a massive performance improvement to the money system.
  • The protected areas refresher repeating interval has been disabled as it is no longer needed, the new protected area system applies modifications to the protected areas list cache as they are made. If you need to manually refresh the protected areas cache, just go to Main Menu > Manage Restricted Areas and click the refresh button in the top left, or if you want to do it with script eval, just use the following script: srun(async()=>{const protAreas = await import("init/variables/protectedAreaVariables"); protAreas.ProtectedAreas.load();}). To refresh it with a command block, just do /scriptevent s:e srun(async()=>{const protAreas = await import("init/variables/protectedAreaVariables"); protAreas.ProtectedAreas.load();}).

Settings ​

  • The gametestStructureDefaultSpawnLocation option has been added to the config class and has been given a default value of {x: 1000000000, y: 100, z: 1000000000}, this will make it so by default the structure will spawn in a place in your world where you can't go, so that when you do things like spawn simulated players or no AI entities, they won't leave behind a structure when they spawn in. The option also can no longer be unset, if it is removed, it will just give the default value.
  • config.chatRanks.defaultRankTemplateString (Main Menu > Settings > Chat Ranks Settings > Default Rank For Players With No Rank) has had its default value changed from "", to "[§bMember§r]".

UIs ​

  • Renamed the Global Settings menu to General Settings.
  • Lots of updates to almost every UI in the add-on.
  • Added a close button to the Manage Commands menu.
  • Changed many places in the add-on where it said GMT to say UTC instead.

Main Menu ​

  • Hid many of the deprecated buttons that were on the Main Menu. They can still be added back in the settings (Main Menu > Settings > UI Settings > Menu Configurations > Main Menu > Main Settings).

Misc. ​

  • Updated all the links to my website in the add-on to be https://www.8crafter.com instead of https://sites.google.com/view/8craftermods/home.

Removals ​

Settings ​

Settings Options ​

  • config.chatRanks.defaultRankTemplateString (Main Menu > Settings > Chat Ranks Settings > Default Rank For Players With No Rank) has been removed, please use config.chatRanks.defaultRank instead, with this new option, it is not evaluated as a JavaScript template string, instead it is treated like a regular chat rank, if you still want to make it dynamically determine the default rank, switch the rank style mode to Custom(Advanced), set the default rank to a specific value like dynamicallyCalculatedRank, and set the rank template string to be something like "[${rank!='dynamicallyCalculatedRank'?rank:(My code to determine the rank here.)}§r]".

Script Form UI ​

  • Removed the scrollable checkbox from the text fields, as the multiline mode without the scrollable capability is unnecessary. Now when you check the multiline checkbox, it acts like what enabling both multiline and scrollable would have done before.

Fixes ​

Ban System ​

  • The ban system now waits a few ticks after a player starts joining, before it kicks them, so that they will actually see the kick reason messsage, instead of just "Disconnected from server.".

Chat Ranks ​

  • When using a custom chat message color gradient, it will now automatically exclude areas where you have applied a color formatting code. Before it would only exclude areas after §! or in between two §?, you can still use these codes. You can also still use §# to force the gradient to start applying again.

Commands ​

  • Fixed the \swapitems command.
  • Fixed the \swaprows command.
  • The \selectionrender command now works when the selected area contains unloaded chunks.

Entities ​

  • Fixed a bug where the following entities were attacked by wardens:
    • andexdb:player_inventory_save_storage
    • andexdb:player_shop_recieved_shop_items_storage
    • andexdb:saved_item
    • andexdb:saved_shop_item
    • andexdb:tickingarea
    • andexdb:tickingarea_2
    • andexdb:tickingarea_3
    • andexdb:tickingarea_4
    • andexdb:tickingarea_5
    • andexdb:tickingarea_6

Items ​

  • Fixed the Ultra Bundle (andexdb:ultra_bundle).

Player Data Save System ​

  • Fixed a bug where if a player left while their data was being saved, it would throw an error. Now it just warns you in the console instead. It can give any of the following warnings:
    • Async player inventory save canceled for ${player.id} because the player is no longer valid, likely because they left during the save process.
    • Player inventory save canceled for ${player.id} because the player is no longer valid, likely because they left during the save process.
    • Player data save canceled for ${player.id} because the player is no longer valid, likely because they left during the save process.
    • Player inventory save skipped for ${p.id} because the player is no longer valid, likely because they left during the save process.

Script Form UI ​

  • Fixed a bug where to select the multiline checkbox above the text fields when using controller, you had to use the right joystick to move the entire ui, instead of just being able to select it directly. A side effect of this is that if you click anywhere to the right of the multiline checkbox on touch or mouse, it will select it, which makes it much easier to press it.

UIs ​

  • Fixed a bug where the search query would be cleared when switching pages in the manage players and view players with permission menus.

Ultra Security Mode ​

  • Fixed a bug where the andexdb.useOwnerLevelCommands, andexdb.useHeadAdminLevelCommands, andexdb.useAdminLevelCommands, and andexdb.useModeratorLevelCommands permissions did not do anything.
  • Fixed a bug where the menu to edit the required permission level for a command was broken and threw an error when you tried to open it.

Technical Additions ​

  • Added the following methods to Boolean.prototype:
    • toFormattedStringYN(): "§aYes" | "§cNo";
    • toFormattedStringYNB(): "§2Yes" | "§4No";
  • Added config.banSystem.enabled to the config class.
  • Added the Moment.js node module, and the moment-precise-range-plugin node module.
  • The moment object is now available on globalThis.
  • Added the mcbe-ipc node module.
  • Added the global IPC, IPC_NET, IPC_PROTO objects.
  • Added the following method to Array.prototype:
ts
/**
 * Returns a random element from the array.
 * @returns {T[number]} The random element.
 */
randomElement(): T;
1
2
3
4
5
  • Added the following method to Entity.prototype and executeCommandPlayerW.prototype:
ts
/**
 * Deletes a string from an entity's dynamic properties.
 *
 * @param {Entity} entity - The entity from which the string will be deleted.
 * @param {string} propertyName - The name of the property the string is saved under.
 *
 * @throws {TypeError} If `propertyName` is not a string.
 */
deleteStringFromDynamicProperties(propertyName: string): void;
1
2
3
4
5
6
7
8
9
  • Added the following method to World.prototype:
ts
/**
 * Deletes a string from dynamic properties.
 *
 * @param {string} propertyName - The name of the property the string is saved under.
 *
 * @throws {TypeError} If `propertyName` is not a string.
 */
deleteStringFromDynamicProperties(propertyName: string): void;
1
2
3
4
5
6
7
8
  • Added a partial intl polyfill.
  • Added the ScoreboardV2 class:
ts
export declare class ScoreboardV2 {
    static addObjective(objectiveId: string, displayName?: string): ScoreboardV2Objective;
    static getObjective(objectiveId: string): ScoreboardV2Objective | undefined;
    static getObjectives(): ScoreboardV2Objective[];
    static getObjectiveIds(): string[];
    static removeObjective(objectiveId: ScoreboardV2Objective | string): boolean;
}
1
2
3
4
5
6
7
  • Added the ScoreboardV2Objective class:
ts
export declare class ScoreboardV2Objective {
    displayName: string;
    id: string;
    private scores;
    constructor(id: string);
    addScore(participant: string, scoreToAdd: bigint): bigint;
    getParticipants(): string[];
    getScore(participant: string): bigint | undefined;
    getScores(): {
        participant: string;
        score: bigint;
    }[];
    hasParticipant(participant: string): boolean;
    isValid(): boolean;
    transferFromScoreboard(scoreboard: ScoreboardObjective): void;
    removeParticipant(participant: string): boolean;
    setScore(participant: string, score: bigint): void;
    private save;
    /**
     * @throws Throws if the scoreboard has not been saved.
     */
    private load;
    delete(): void;
    toJSON(): {
        id: string;
        displayName: string;
        scores: {
            [playerId: string]: bigint;
        };
    };
    static get(objectiveId: string): ScoreboardV2Objective | undefined;
    static new(objectiveId: string, displayName?: string): ScoreboardV2Objective;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  • Added the following methods and properties to the savedPlayer class:
ts
saveMode: PlayerDataSaveMode;
addOnJoinAction(action: SavedPlayerOnJoinAction): this;
addOnJoinActions(actions: SavedPlayerOnJoinActions): this;
removeOnJoinActionsOfType(type: SavedPlayerOnJoinAction["type"]): this;
/**
 * Returns true if the player's saved inventory data is using the legacy pre-1.5.0 format, this would be the case if the player's inventory was saved before the 1.5.0 player save format version, or the {@linkcode config.system.useLegacyPlayerInventoryDataSaveSystem} option was set to true when the player's inventory was saved.
 */
get hasLegacyInventorySave(): boolean;
get hasModernInventorySave(): boolean;
1
2
3
4
5
6
7
8
9
  • Made the following changes to a few methods of the savedPlayer class:
diff
- static savePlayer(player: Player): string;
- static savePlayerAsync(player: Player): Promise<string>;
- static getSavedPlayer(savedPlayerId: string): savedPlayer;
+ static savePlayer(player: Player): string | undefined;
+ static savePlayerAsync(player: Player): Promise<string | undefined>;
+ static getSavedPlayer(savedPlayerId: string): savedPlayer | undefined;
1
2
3
4
5
6

Technical Changes ​

  • Updated the global stack getter to remove the part of the stack that includes the stack getter itself.
  • JSONB.stringify now supports getting the value of an object to stringify based on its toJSONB method
  • Massive update to the testForObjectTypeExtension function. Check the bp/scripts/functions/testForObjectTypeExtension.js and bp/declaration/functions/testForObjectTypeExtension.d.ts files for more information.
  • Updated the ban_format_version from 1.2.0 to 1.3.0;
  • Updated the player_save_format_version from 1.6.0 to 1.7.0;
  • Updated the spawn_protection_format_version from 1.0.1 to 3.0.0;

Technical Removals ​

  • Removed the ui_format_version file, as it is not used.
  • Removed the coordinates_format_version file, as it is not used.
  • Removed the entire lagacyModuleAliases folder.

Technical Fixes ​

  • Fixed a bug where JSONB.stringify would log stuff to the console.
Edit v1.33.0 on GitHub
  • 8crafter.com
  • Discord
  • GitHub Repository
  • Wiki Settings