Перейти к содержимому
Mineforgian

Glacier Players

Mannequins that are designed to mimic real players in a server.

Загрузки
224
Подписчики
2
Обновлён
17 декабря 2025 г.
Лицензия
MIT

Опубликован 25 июля 2024 г.

Glacier Players

Last Commit Commits Extensions Wiki

Glacier Players are Mannequins designed to mimic real player behaviour in a typical survival server, optimized to have a dozen of glaciers active at all times.

Features

  • Most of the player behaviour replicated.
    • Connecting and disconnecting.
    • Death and respawning alongside being able to use totems.
      • Set their respawn point using beds.
    • Ability to emulate hunger, armour, inventory, experience and the locator bar.
    • Send messages in chat.
      • Polls
      • Chat Filters
      • Voicelines (Optional Content required)
      • Source-engine Sprays (Optional Content required)
    • Load chunks and receive knockback.
    • Ability to place blocks semi-accurately.
    • Support for skins and gamemodes (Survival, Creative and Adventure)
  • Toolsets to change glacier behaviour and settings.
    • Permissions to change how players have access to Toolsets.
  • Extension Support.

Accuracy

Feature Status Overview
Connection +100% Connecting and disconnecting.
Chatting +100% Chat messages + Extras.
Death 80% Death and respawning. Totems included
Hunger 99% Hunger system with exhaustion, saturation, eating and difficutly changes.
Inventory 99% Inventory system with how items are handled. Used by Hunger and Placing.
Mob Recognition 0% Be able to get recognized by mobs.
Combat 0% Ability to fight other mobs and glaciers.
Breaking and Tools 1% Ability to break blocks and use tools.
Placing 50% How placing blocks are handled. Blocks more than 1x1x1 are unstable. Some data that determines how the block is rotated may not be supported.
Gamemode Emulation 50% Survival, Creative and Adventure.

Credits

Inspirations

Contribution Guidelines

  • Optimization and Efficiency

Code should use most available optimizations, if possible, like macro caching and UUID selectors to gain more performance. TPS matters when mods and other datapacks are being used.

  • Modular

Code of Glacier Players allow extensions to add onto existing systems like assigning a glacier a custom waypoint picture when connecting.

  • Player Accuracy

Glaciers aim to mimic players so try to add in any features or behaviours that makes them more accurate, with the limitations of datapacks in a vanilla client.

Experimental Mob AI

EXPMAI or formerly EXPAI. originally created Glacier Players which was split into its own project. EXPAI changes behaviour of certain mobs.

Modrinth
GitHub
Planet Minecraft

Release List

Release Version Summary
11 - 17b 24w21a - 1.21.1 Hunger, Armour, Totems, New Configurations, UUID Cache, Absorption, Toolkits, Panic lines, Stability changes. Tons of fixes. Split between EXPAI and Glacier Players.
18 - 19 24w39a - 1.21.4 Building, Set Spawnpoints, Visual Storage rework, Optimizations and Cast changes.
20 25w09a - 1.21.5 Additional Configurations and Optimizations.
21 - 23 1.21.5 - 25w23a Sprays, System reworks and minor changes.
24 1.21.11 Mannequin Overhaul and heavy system reworks.

Ченджлог

24Релиз1.21.11, 26.1-snapshot-1 · 17 декабря 2025 г.

Mannequin Overhaul

  • Overhauled how Glacier Players work by using Mannequins has multiple advantages over Piglin Brutes and Armour Stands.
    • Glaciers no longer get targeted due to Piglin Brutes being replaced by mannequins.
    • Glacier Players now works properly on Peaceful difficulty.
      • Players will no longer be prompted to change difficulty or disable Glacier Players when the difficulty is Peaceful.
  • Glaciers now receive fall damage.
  • Glaciers interact to being fishing rodded.
  • Armour Stands replaced with Markers.
    • Mannequins now take several use cases of the Armour Stand
  • The Marker serves as the root of the Glacier, handling all the internals like data and scores.
  • Glaciers now have support for skins.
    • Skins are based on the Glacier's name that is combined into 1 string of text
  • Glaciers can have multiple poses. (example: Swimming uses the Swimming pose)
    • The following poses are used.
      • standing Default pose.
      • swimming Swimming pose for when a Glacier sprints in water.
    • Hitbox sizes change depending on the pose.

Additions

Dahesor's NBT Transformer

Building

Tags

  • Added block tag glacier_players:conditions/farming/general
    • Blocks in this tag are suitable for crop placement.

Block Side Availability

  • BSA controls what sides of the block allow placement.
    • N, E, S, W, Up and Down allow block placing by default. and values are contained inside of the glacier_players.number objective:
      • #Block.Border.Side.N.Available North
      • #Block.Border.Side.E.Available East
      • #Block.Border.Side.S.Available South
      • #Block.Border.Side.W.Available West
      • #Block.Border.Side.Up.Available Up
      • #Block.Border.Side.Down.Available Down

Special Conditions

  • Special Conditions allow for more specific placements of blocks by checks, requirements and other means for placement validity.
    • The format of Special Conditions is a list; glacier_players:build_macro special_conditions that will get the function value.
      • An example of Special Conditions is: ["namespace:function","other_namespace:other_function","#namespace:function_tag"]

General

  • #Block.Fail glacier_players.condition is used to determine if the process is to be finalized. Other functions can change this.
  • fire and soul_fire are both considered non-solids.

Farming

  • Glacier Players can now plant crops.
    • Crops are planted by holding items that are registered in the glacier_players:blocks/place_types/crops item tag.

Health

  • Support for the max_health attribute.
    • Glaciers can now regenerate up to max health instead of being locked to 10 (20) hearts.
    • The Debug Stats has been tweaked to show the max health.

Speech

  • Added score: glacier_players.speech_rarity which controls the rarity of speech actions.
    • Default value: 1500 | 1 in 1500 chance to speak per tick.
      • ..0 = Stop, 1 = Always, 2.. = Random.

Hunger

  • Added new storage; glacier_players:hunger
  • Consumption sound can be overridden when applying data from a consumable item.
    • glacier_players:hunger is the storage that holds consume_sound which points to a sound.
      • entity.generic.eat is the default value.
  • The Saturation effect is now supported.

Difficulty Support

  • Hunger now behave differently based on the world difficulty.
    • Peaceful: Starvation damage is paused. Nutrition and Saturation regenerate overtime. Health also slowly regenerates.
    • Easy: Glacier health drops to 5 (10) Hearts.
    • Normal: Glacier health drops to 0.5 (1) Hearts.
    • Hard: Starvation damage will continue until death or consumption.

The Copper Age drop

Tags

  • Glacier Players can now use the new copper blocks such as Copper Torches and the Copper Golem Statues.
  • Shelfs are now placable.
  • the block; chain is now iron_chain

Dialog

  • Credits

Toolkit

Permissions

  • Added Toolset Permissions
    • If the lock status hasn't been setup. The first player will get to lock/unlock the Toolset.
      • Unlocking will make the Toolset behave the same from old releases (Players will get the Toolset on reload)
      • Locking will give the player permission and only the Toolset is given to players with permission. Players without permission that try to use the Toolset will be restricted.
    • Players that have the tag: glacier_players.toolset_wielder will be able to get and use Toolsets.
      • If the Toolset is already locked. Operators will have to give themselves or other players permission via /tag

Configs

  • Added new config: Path Method This controls what method that Glaciers use to make paths.
    • There are 2 methods.
      • Mode 0 is Simple
      • Mode 1 is Intermediate Simple
    • Default value is 1
  • Added new section: Systems This will be store any future configs related to the internals.

General

  • Added retained_data which retains important data.
    • This is located inside of gp_action
  • Added the refresh function function glacier_players:technical/tools/refresh
    • This is used to refresh the current toolset for any changes especially for configs.
  • Added scoreboard trigger: glacier_players.get_toolset
    • Triggering will wipe the all Toolset items and give the starting tools.
      • Tools will not be given and a message is sent if locked.
  • Added scoreboard trigger: glacier_players.disable_toolset
    • If value is equal or over 1 then the player wont be able to get and use tools.
    • If value is equal or under 0 then the player will be able to get and use tools.

Glacier Rules

  • Added Glacier Rules which determine how systems are handled.
    • glacier_players.rule.stop_exhaustion - If exhaustion should not be changed.
    • glacier_players.rule.infinite_items - If Items should not be consumed by an action.
    • glacier_players.rule.can_build - If building is available.
    • glacier_players.rule.ignore_hunger_limitations - If doing actions that require hunger such as sprinting or lunging have their limitations ignored.
    • glacier_players.rule.can_starve - If starvation damage should be taken.
    • glacier_players.rule.invulnerable - If all damage sources should be ignored.

Gamemode Emulation

  • Glaciers can now emulate several gamemodes.
    • Survival, Creative and Adventure mode are supported.
      • **Survival **| Default gamemode.
      • **Creative **| Infinite items, hunger limitations ignored, invulnerability, no starvation damage and exhaustion is not added.
      • **Adventure **| Survival but with disabled building.
    • Glacier gamemodes can be changed using: /function glacier_players:technical/gamemode/change {gamemode:<mode>}
      • The values survival, creative and adventure are accepted.

World Spawnpoint Marker

  • The position of the world spawnpoint is saved.
    • The position gets saved to glacier_players:macro worldspawn every 10 seconds.

Tags

Function

  • glacier_players:extensions/behaviour/player/apply_waypoint
  • glacier_players:extensions/tool_types

Misc

  • Added glacier_players:empty loot_table.
  • Added glacier_players:toolset_retain item modifier.
  • Added pack.png

Changes

Glacier Data and UUIDs

  • Data and UUIDs are now merged into one storage; glacier_players:macro instances
    • glacier_players:macro instance refers to a specific instance that holds its own data and UUIDs.
    • The following actions can be done with the function prefix; glacier_players:technical/data/
      • empty/all overrides the instance with {}
      • empty/data clears data.
      • empty/uuids clears UUIDs.
      • create appends instance into instances
        • Requires input of instance_id
      • delete deletes the specified instance
        • Requires input of instance_id
      • mark_edit sets instance from the most recent entry in active_instances
      • push apply changes to specified instance in instances and marks as inactive.
        • Requires input of instance_id
      • update pushes in-edit instance.
      • upload appends specified instance from instances to active_instances
        • Requires input of num

Inventory

  • Changed inventory modes to refer to the specified function.
    • Inventory modes are now run with the following function: glacier_players:player/inventory/item/internal/start {mode:""}
      • mode is a string that points to a specified function.
  • Items now drop from the eye anchor instead of a hardcoded position.

Toolkit

Extensions

  • glacier_players:extensions ext_namespace now only accepts string.
    • The new format is now ["ns:func","ns2:func"]
      • The old format was [{toolset_function:"ns:func"}]

Configs/Behaviours

  • Moved the following "Systems" config into the **Systems **toolset:
    • Toggle Experience.
    • Toggle Inventory.
    • Toggle Hunger.
    • Toggle Locator Bar.

General

  • gp_remove_hotbar is now keep_hotbar
  • Action Type back has been changed to change
  • gp_action in the custom data has been changed to be a proper structure in curly brackets {}
    • Type has been retained, the type value will be taken from the type data.
    • keep_hotbar has also moved into gp_action
    • gp_return_function and gp_event_function have been merged into function which is located inside of gp_action
    • The new format is now: {gp_action:{type:event,function:"namespace:event_function",keep_hotbar:true}}
      • The old format was {gp_action:"event",gp_event_function:"namespace:event_function",gp_remove_hotbar:false}
  • Movement speed when using toolkit items is now retained.

Hunger

  • Special tags on consumption no longer requires tags.
    • Special Tags is a list of strings that point to function(s) in storage; glacier_players:hunger consume_run which is processed upon consumption.
      • An example of a Special Tags list is provided: ["ns:func","ns2:func"]
  • GlacierPlayer.Inv_Food_ReplaceItem tag replaced by #ReplaceItem glacier_players.condition score.
  • The max Saturation is now based on the current Nutrition value.
  • Nutrition and Saturation now have a tenth decimal place.
    • All food items with decimal places in nutrition and saturation values have been adjusted.
    • Scoreboards represent the number as integer (20.0 -> 200) NOTE: The inventory and hunger changes are to make the processes more streamlined.

Building

  • Various data like sound_namespace, block, pos and rot has been merged. This is located inside of glacier_players:build_macro sequence_tmep
    • sound_namespace is now sound
    • block remains unchanged.
    • pos is now position
    • rot is now data
      • data contains the properties of the block.
  • type.rotation is now rotation_type as a string that points to a function.
    • Custom rotation types are now supported by this change.
  • Improved obstruction detection that supports scaling when placing down blocks.

Breaking

  • Improved functionality.

Hitbox

  • Glacier Hitbox is now as accurate as the player hitbox.

Respawning

  • angle is now renamed to pitch which is based on vertical rotation.
  • Added yaw which is based on horizontal rotation.

Dialog

  • Glacier Players is now a part of the pause menu.
    • This only include links for the Discord, Planet Minecraft, GitHub and Trello.

Sprays

  • Value for #MaxSprays glacier_players.config raised from 128 to 256.

Speech

  • Behaviour of starting a speech action has changed to have a adjustable speech rarity score which controls how common speech actions should be.

Movement

  • Sprint jumping is now way more accurate, jumping straight to the marker instead of turning to face the marker.

Pathing

  • Glaciers using Intermediate Simple pathing will avoid markers that are in the air.

General

  • Updated Pack Format to support new versions.
  • Visuals of the debug stats has been touched up to replace text with sprites which includes info on hover to clarify what the numbers represent.

Optimizations

  • Optimizations for @e and @n selectors.
    • More selector usages have been removed.
    • Several selectors now have x=0 included to limit the dimension.
  • Most cases of summons now optimized using summon subcommand in execute
  • Starving no longer uses UUID as its now ran by the Mannequin.
  • Reduced amount of copy pastes for a smaller file size.
  • Replaced player NBT check with item check for Toolkit.
  • Optimized inventory when merging items with less commands.
  • Optimized removing items upon consumption of food items with UUIDs.
  • Removed unneeded execute uses for swimming.
  • Regenerating health is now ran by the mannequin, removing the need for macros.
  • Simplified score operations when running hunger effects.
  • Heavily reduced command count when randomizing dmarker position.
  • Updating item stack after placing a block now only occur if the amount of blocks is over 1.
  • Micro optimization for handling voice messages.
  • Replaced a player data check with a block data check for getting the tool_data

Fixes

Building

  • Fixed facing type having wrong rotations.
  • Fixed rotation which was not working.
  • Blocks that have no rotation values now replace overridable blocks.
  • Corrected inverting the facing rotation type.

General

  • Glaciers no longer get targeted by Iron Golems.
  • Incorrect movements when over multiple dimensions no longer happen.
  • Spawnpoints when respawning is now at world spawn instead of the death location.
  • Duplicate entities when respawning no longer occur.
  • Glaciers no longer clip through blocks when damaged.
    • This was an issue due to how knockback was handled pre-mannequin.
  • The Hunger effect now defaults to level 1 if the amplifier given was 0
  • Fixed clearing the sprays cache not killing all spray entities.
  • Fixed experience not dropping if value was under 100
  • action advancement now revoked every tick

Removed

  • glacier_players:uuids and glacier_players:glacier_data merged into glacier_players:macro instances
  • The following UUIDs now obsolete:
    • 0000003d-0000-0017-0000-0025000adef5 cmarker.
    • 0000003d-0000-0017-0000-0025000adef2 hmarker.
    • 0000003d-0000-0017-0000-0025000adef4 pmarker.
    • 0000003d-0000-0017-0000-0025000adef3 mmarker.
    • 0000003d-0000-0017-0000-0025000adef bmarker.
  • Removed Airtime from Experimental settings.
  • Removed Datafixer due to massive changes for little benefit.
  • Stringlib removed.
  • HeightBoxLib removed.
  • 32_second_period predicate removed.

Removed Function Tags

  • extensions/inventory/modes
  • extensions/inventory/food_properties

Removed Tags

  • GP.Inventory_Selected.InvSection and related.
  • GlacierPlayer.Inv_Food_ReplaceItem
  • GlacierPlayer.Spray.Init
  • GlacierPlayer.Set_ReScoreID
  • glacier_players.processed_id
  • GlacierPlayer.Inventory_SelectedFood
  • GP.Used_Place
  • All related consumption tags removed.

Removed Storage data

  • glacier_players:abnormal_macro Merged into temp
  • glacier_players:temp_uuids Replaced by glacier_players:temp
  • glacier_players:pos_macro Merged into temp
  • glacier_Players:marker_macro Merged into temp
  • glacier_Players:motion Merged into temp
  • glacier_players:toolkit Merged into extensions
  • glacier_players:experience_macro Merged into temp
  • current_plr_ext_toolset from glacier_players:extensions removed.

Template

  • toolset_function removed. See Toolkit changes for more.

Removed Scores

  • glacier_players.inventory_saved_partition
  • glacier_players.speech_advanced_mode
  • glacier_players.previous_absorption
  • Following score objectives for respawn positions removed:
    • glacier_players.x_respawn_pos
    • glacier_players.y_respawn_pos
    • glacier_players.z_respawn_pos
  • glacier_players.communication_type
  • glacier_players.previous_health
  • glacier_players.inventory_slot_slot
  • glacier_players.inventory_slot_comparing_slot
  • glacier_players.inventory_slot_comparing_count
  • glacier_players.delay_totem_replace
  • glacier_players.speech_type

Known Issues

  • facing cannot have multiple at the same time. More obvious when trying to place a furnace on top of a block.

Комментарии

Загружаем…