Data Packs Mob

Glacier Players | The Player Bots

  • 18.2k views 2 today
  • save_alt 1.2k downloads 1 today
Compatibility
Minecraft 26.2
Changes include
  • Advancements
  • Functions
  • Predicates
Added CreditInspiration from Zeta / Lambda Players
  • 63
  • 59
  • 30
Mobberode
Lvl 34Artisan Team
3
In collaboration with

[ Glacier Players: Pure Vanilla and Optimized! ]

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.
    • Ability to emulate hunger, armour, inventory, experience and the locator bar.
    • Send messages in chat with additional features like polls.
      • Chat Filters
    • 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.
  • Extension Support.

Accuracy

FeatureStatusOverview
Connection+100%Connecting and disconnecting.
Chatting+100%Chat messages + Extras.
Death80%Death and respawning. Totems included
Hunger99%Hunger system with exhaustion, saturation, eating and difficutly changes.
Inventory99%Inventory system with how items are handled. Used by Hunger and Placing.
Mob Recognition0%Be able to get recognized by mobs.
Combat0%Ability to fight other mobs and glaciers.
Breaking and Tools1%Ability to break blocks and use tools.
Placing50%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 Emulation50%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 data packs 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 data packs in a vanilla client.

GitHubDiscordWikiTrello
Links: GitHub - Source CodeDiscord [​13+] Extensions WikiTrello
  License: MIT


[ Experimental Mob AI: More Capable and Performant! ]

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

ReleaseVersionSummary
11 - 17b24w21a - 1.21.1Hunger, Armour, Totems, New Configurations, UUID Cache, Absorption, Toolkits, Panic lines, Stability changes. Tons of fixes. Split between EXPAI and Glacier Players.
18 - 1924w39a - 1.21.4Building, Set Spawnpoints, Visual Storage rework, Optimizations and Cast changes.
2025w09a - 1.21.5Additional Configurations and Optimizations.
21 - 231.21.5 - 25w23aSprays, System reworks and minor changes.
241.21.11Mannequin Overhaul and heavy system reworks.

31 Update Logs

Release 24 : by I_Cement 12/17/2025 7:45:02 amDecember 17, 2025 @ 12:45 pm UTC

Commit Logs: R23..R24 | Release 24 - 1.21.11 | Get on GitHub! | Mobberode Discord Server
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.
LOAD MORE LOGS

More like this

  Have something to say?

Sickc
12/17/2025 6:07 pm
Level 1 : New Miner
Ill be trying this tommorow. Im fine with them not interacting with mobs (since it still makes actual players wonder if they are tracking a real player), but hopefully its planned. One thing i want to know is if you plan on letting them craft (just basic if they have the materials they have a chance to convert them to an item equivalent to those materials). Guessing they mine stuff already so only thing to make it more believable is allowing them to que up crafts then if they place a wood block (would turn into a crafting table if there are crafts qued up) just convert all the items according to the qued up "crafting".
2
I_Cement
12/17/2025 10:04 pm
Level 24 : Expert Pixel Painter Loremaster
history
I really want mobs to recognise glacier players so badly but I know that it’s gonna be unreasonably complex and at best, wonky with the limitations I have at the moment. I don’t think it’s even possible to get something that's good and I consider myself at least a relatively good coder for mcfunction.

I do want them to be able to craft things, it’s always been one of those things I wanted to get done ages ago but it’s not easy. Making sure the systems like inventory, hunger and the placing system are great has been a massive pain to work on. Crafting would probably be something minor that I’ll leave for later cause it would need a lot of work. Yeah I can make it simple like you said but that wouldn’t really be up to my standards.

its quite hard to try to bridge the gap between real and glacier players because of limitations like having to be purely vanilla. Some stuff unfortunately can’t ever be replicated like making them show up in the player list or making them be selectable through the player selectors.

I at some point want to make glaciers use A* pathfinding the same method that mobs use in general and that might be in a seperate branch.

I have also been dealing with the absolute nightmare that is my chunks of horrible coding from over 6 months ago which I have been optimizing and improving.

Plus with me woking on multiple projects. Some things may take way longer than expected.
1
Sickc
12/18/2025 6:47 am
Level 1 : New Miner
I mean i like it. Can you point me to configuration i wish to configure the number of joins and leaves aswell as messages, and if possible remove the poll mechanic from appearing. I did not encounter them farming, but that might just be possible if they come across farmland not that they create thier own farms (or they didnt have seeds and tools idk).

Few other aspects of this dp i think could be nice to be configurable is how often they build vs mine stuff, when they do so (so they could mine or build multiple blocks one after another), how far is the average distance to thier next location beeing tied to the resources they have (if they manage to make plenty of farms they would stay in the same general area, if they run out of tools they run around more hoping to run into a tree ofc that would need crafting from what you said before they cant craft the tools even if they get resources).

Only bugs i saw where with messages they send placeholder variable names as messages pretty often. On join i lost my hotbar as it got replaced with the candles, and I also saw some level up messages do they perhaps gain items from those level ups?
2
I_Cement
12/18/2025 8:18 am
Level 24 : Expert Pixel Painter Loremaster
When you joined, the candles you were given were to lock the toolset. If you used the blue candle, you'll need to re-enable toolset usage with /trigger glacier_players.disable_toolset set 0

You will be given the toolset to play around with the glaciers. The second item is the config where you can go to the connections hotbar via the blue candle which you can configure if players can automatically connect and disconnect with a max connected limit that you can change. You can disable polls in the config toolset with the chat settings.

They can plant crops if they have the items and if they get lucky with their placements, but they can't harvest.

Being able to configure how often an action is done will be in the next release as some of this functionality is already included with chatting.

Making them stay around a general area could be included. I want glaciers that are nomads those that have bases.

The bugs you mentioned aren't bugs. The Extensions Template includes those placeholder messages so other people can create their own messages. Having the hotbar be replaced by the candles is intentional but can be changed to only affect the first 3 slots.

The level up messages are just visual for a glacier gained enough XP to level up. Theres no gain from these level ups.
1
sashanckabot12666
12/17/2025 12:04 pm
Level 11 : Journeyman Miner
Update experemental mob ai please and add mobs make the mobs climb on top of each other and climb down, and also see through walls if possible, that would be very interesting
2
I_Cement
12/17/2025 3:00 pm
Level 24 : Expert Pixel Painter Loremaster
history
Update for EXPMAI [​R6B] is releasing tomorrow.

If the rest is for EXPMAI then:
  • Mob climbing on top of each other seems good as an idea but I'm not sure how that will play out.
  • Seeing through walls even though they have no knowledge that a player is potentially there is straight up unfair and unfun. It being linked to how much noise the player makes would be better, but with the current code I have. I would have to change things up.
If for Glacier Players:
  • Glaciers being able to ride other glaciers is pretty silly but that isn't really possible when real players want to do it with each other. If it does get included, it'll be an extension that you have to download than being included in the base pack.
  • I'm not really sure about them being able to see through walls. I feel like that might make running several Glaciers at once really expensive on the TPS.
2
sashanckabot12666
12/18/2025 2:12 am
Level 11 : Journeyman Miner
history
Yes, yes, this is cooler, add this in you i say about expmai/ Ok don't add ability fr mobs see through walls this rl cheating/ If its still possible, then you could make it so they could make a second jump using a wind change, and when, for example, they werent allowed to, if there are blocks in front of them that they didnt reach, they stop in the air, they are thrown up and thrown to the side that wanted one of these 2/ You know, I just like to give ideas, but I understand that some of them are impossible to implement, so its completely up to your discretion. But made this later bro if this too hard

2
I_Cement
12/18/2025 8:05 am
Level 24 : Expert Pixel Painter Loremaster
Wind charge idea is being considered for EXPMAI R7B
2
sashanckabot12666
12/18/2025 10:42 am
Level 11 : Journeyman Miner
oki
1
Stevethecaveman
12/06/2025 5:06 pm
Level 1 : New System
How do I make them have skins?
2

Welcome