
Glacier Players
Mannequins that are designed to mimic real players in a server.
- Загрузки
- 224
- Подписчики
- 2
- Обновлён
- 17 декабря 2025 г.
- Лицензия
- MIT
Опубликован 25 июля 2024 г.
Glacier Players
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.
- More info on Extensions at the Glacier Players Extension Wiki
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
- Lambda Players | The main inspiration.
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.
standingDefault pose.swimmingSwimming pose for when a Glacier sprints in water.
- Hitbox sizes change depending on the pose.
- The following poses are used.
Additions
Dahesor's NBT Transformer
- Glacier Players now has DNT packaged. Replaces StringLib.
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,UpandDownallow block placing by default. and values are contained inside of theglacier_players.numberobjective:#Block.Border.Side.N.AvailableNorth#Block.Border.Side.E.AvailableEast#Block.Border.Side.S.AvailableSouth#Block.Border.Side.W.AvailableWest#Block.Border.Side.Up.AvailableUp#Block.Border.Side.Down.AvailableDown
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_conditionsthat will get the function value.- An example of Special Conditions is:
["namespace:function","other_namespace:other_function","#namespace:function_tag"]
- An example of Special Conditions is:
- The format of Special Conditions is a list;
General
#Block.Fail glacier_players.conditionis used to determine if the process is to be finalized. Other functions can change this.fireandsoul_fireare 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/cropsitem tag.
- Crops are planted by holding items that are registered in the
Health
- Support for the
max_healthattribute.- 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.
- Default value:
Hunger
- Added new storage;
glacier_players:hunger - Consumption sound can be overridden when applying data from a consumable item.
glacier_players:hungeris the storage that holdsconsume_soundwhich points to a sound.entity.generic.eatis 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;
chainis nowiron_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_wielderwill 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
- If the Toolset is already locked. Operators will have to give themselves or other players permission via
- If the lock status hasn't been setup. The first player will get to lock/unlock the Toolset.
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
- There are 2 methods.
- Added new section: Systems This will be store any future configs related to the internals.
General
- Added
retained_datawhich retains important data.- This is located inside of
gp_action
- This is located inside of
- 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.
- Triggering will wipe the all Toolset items and give the starting tools.
- 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,creativeandadventureare accepted.
- The values
- Survival, Creative and Adventure mode are supported.
World Spawnpoint Marker
- The position of the world spawnpoint is saved.
- The position gets saved to
glacier_players:macroworldspawnevery 10 seconds.
- The position gets saved to
Tags
Function
glacier_players:extensions/behaviour/player/apply_waypointglacier_players:extensions/tool_types
Misc
- Added
glacier_players:emptyloot_table. - Added
glacier_players:toolset_retainitem modifier. - Added pack.png
Changes
Glacier Data and UUIDs
- Data and UUIDs are now merged into one storage;
glacier_players:macro instancesglacier_players:macro instancerefers 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/alloverrides the instance with{}empty/dataclears data.empty/uuidsclears UUIDs.createappendsinstanceintoinstances- Requires input of
instance_id
- Requires input of
deletedeletes the specified instance- Requires input of
instance_id
- Requires input of
mark_editsetsinstancefrom the most recent entry inactive_instancespushapply changes to specified instance ininstancesand marks as inactive.- Requires input of
instance_id
- Requires input of
updatepushes in-edit instance.uploadappends specified instance frominstancestoactive_instances- Requires input of
num
- Requires input of
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:""}modeis a string that points to a specified function.
- Inventory modes are now run with the following function:
- Items now drop from the eye anchor instead of a hardcoded position.
Toolkit
Extensions
glacier_players:extensions ext_namespacenow only accepts string.- The new format is now
["ns:func","ns2:func"]- The old format was
[{toolset_function:"ns:func"}]
- The old format was
- The new format is now
Configs/Behaviours
- Moved the following "Systems" config into the **Systems **toolset:
- Toggle Experience.
- Toggle Inventory.
- Toggle Hunger.
- Toggle Locator Bar.
General
gp_remove_hotbaris nowkeep_hotbar- Action Type
backhas been changed tochange gp_actionin 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
typedata. keep_hotbarhas also moved intogp_actiongp_return_functionandgp_event_functionhave been merged intofunctionwhich is located inside ofgp_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}
- The old format was
- Type has been retained, the type value will be taken from the
- 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_runwhich is processed upon consumption.- An example of a Special Tags list is provided:
["ns:func","ns2:func"]
- An example of a Special Tags list is provided:
- Special Tags is a list of strings that point to function(s) in storage;
GlacierPlayer.Inv_Food_ReplaceItemtag replaced by#ReplaceItem glacier_players.conditionscore.- 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,posandrothas been merged. This is located inside ofglacier_players:build_macrosequence_tmepsound_namespaceis nowsoundblockremains unchanged.posis nowpositionrotis nowdatadatacontains the properties of the block.
type.rotationis nowrotation_typeas 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
angleis now renamed topitchwhich is based on vertical rotation.- Added
yawwhich 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.configraised 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
@eand@nselectors.- More selector usages have been removed.
- Several selectors now have
x=0included to limit the dimension.
- Most cases of summons now optimized using
summonsubcommand inexecute - 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
executeuses 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
facingtype having wrong rotations. - Fixed
rotationwhich was not working. - Blocks that have no rotation values now replace overridable blocks.
- Corrected inverting the
facingrotation 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
actionadvancement now revoked every tick
Removed
glacier_players:uuidsandglacier_players:glacier_datamerged intoglacier_players:macro instances- The following UUIDs now obsolete:
0000003d-0000-0017-0000-0025000adef5cmarker.0000003d-0000-0017-0000-0025000adef2hmarker.0000003d-0000-0017-0000-0025000adef4pmarker.0000003d-0000-0017-0000-0025000adef3mmarker.0000003d-0000-0017-0000-0025000adefbmarker.
- Removed Airtime from Experimental settings.
- Removed Datafixer due to massive changes for little benefit.
- Stringlib removed.
- HeightBoxLib removed.
32_second_periodpredicate removed.
Removed Function Tags
extensions/inventory/modesextensions/inventory/food_properties
Removed Tags
GP.Inventory_Selected.InvSectionand related.GlacierPlayer.Inv_Food_ReplaceItemGlacierPlayer.Spray.InitGlacierPlayer.Set_ReScoreIDglacier_players.processed_idGlacierPlayer.Inventory_SelectedFoodGP.Used_Place- All related consumption tags removed.
Removed Storage data
glacier_players:abnormal_macroMerged intotempglacier_players:temp_uuidsReplaced byglacier_players:tempglacier_players:pos_macroMerged intotempglacier_Players:marker_macroMerged intotempglacier_Players:motionMerged intotempglacier_players:toolkitMerged intoextensionsglacier_players:experience_macroMerged intotempcurrent_plr_ext_toolsetfromglacier_players:extensionsremoved.
Template
toolset_functionremoved. See Toolkit changes for more.
Removed Scores
glacier_players.inventory_saved_partitionglacier_players.speech_advanced_modeglacier_players.previous_absorption- Following score objectives for respawn positions removed:
glacier_players.x_respawn_posglacier_players.y_respawn_posglacier_players.z_respawn_pos
glacier_players.communication_typeglacier_players.previous_healthglacier_players.inventory_slot_slotglacier_players.inventory_slot_comparing_slotglacier_players.inventory_slot_comparing_countglacier_players.delay_totem_replaceglacier_players.speech_type
Known Issues
facingcannot have multiple at the same time. More obvious when trying to place a furnace on top of a block.
Комментарии
Загружаем…