CustomHud

CustomHud

Mod

A highly customizable variable-based text hud

Client DecorationUtility

68.3k downloads
223 followers
Created3 years ago
Updated4 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.
Filter versions...
Filter channels...

What's New?

  • Updated to 1.20.3/4

What's New in v3.3?

  • Fixed {ping} not working unless certain variables were also used
  • Target Entity Variables now use the same distance as Target Block and Fluid
  • Add Music Variables for Background Music and Records
    • {music_id}, {music_name}, {music_playing}
    • {record_id}, {record_name}, {record_playing}
    • {record_length},{record_elapsed}, {record_remaining}
    • {record_elapsed_per}, {record_icon}
  • Added Status Bar Variables:
    • {health}, {max_health}, {health_per}
    • {food}, {food_per}
    • {saturation}, {saturation_per}
    • {armor}, {armor_per}
    • {air}, {air_per}
    • {xp_level}, {xp}, {xp_needed}, {xp_per}
  • Added Gamemode Variables:
    • {gamemode}
    • {survival}, {creative}, {adventure}, {spectator}
  • Added Min/Max/Avg for FPS and TPS:
    • {fps_min}, {fps_max}, {fps_avg}, {fps_samples}
    • {tps_min}, {tps_max}, {tps_avg}, {tps_samples}
  • Added {sprint_held} (sprint key is pressed, or is toggled on)
  • Added {flying}
  • Added Variables for when player list / chat / screen is open:
    • {tab_open}/{player_list_open}
    • {chat_open}, {screen_open}
  • Added Variables about slots in the player inventory
    • {slots_empty}, {slots_used}, {slots_per}
  • Added Noise Router and Biome Builder Variables:
    • {has_noise}
    • {nr_temp}, {nr_veg}, {nr_cont}, {nr_erosion}, {nr_depth}
    • {nr_ridges}, {nr_peaks}, {nr_init}, {nr_final}
    • {bb_peaks}, {bb_cont}, {bb_erosion}, {bb_temp}, {bb_veg}
  • {biome} now uses the translated name
  • Fixed {real_time:<format>} not working with spaces
  • Fixed local font theming (=Font:<name>=) not working
  • Fixed crash if a conditional was just true
  • Conditional comparisons are now case insensitive
    • Fixes some conditionals comparisons never working

What's New?

  • Updated to 1.20.2
  • {ping} now shows ping rather than latency
  • Added {latency}
  • Added more performance metrics
    • Ticks (Singleplayer): {tick_ms_<min/max/avg/samples>}
    • Packet Size (Multiplayer): {packet_size_<min/max/avg/samples>}
    • Ping: {ping_<min/max/avg/samples>}

What's New?

  • Updated for Sodium 0.5.0 and above
  • Added Simplified Chinese (thanks WForst-Breeze)

What's New?

  • Updated to 1.20 / 1.20.1

What's New in v3.1?

v3.1 fixed a bunch of crashes and bugs, some QoL improvements and over 30 new variables!

Critical Crash/Bug Fixes

  • Example profile now shows again on first boot, and profile saving is no longer broken during first boot
  • No longer crashes when:
    • BetterF3 is installed
    • The mod is disabled in-game
    • Invalid variables, Variables with caps, or !/. are in conditionals
    • When you have just {item:} with no slot or anything
    • You open the errors screen with an invalid {itemcount:<item>} variable

Features

  • Added Named Colors
  • Added Vanilla / None Crosshair options
  • 5 New Section Locations (TopCenter, CenterLeft, CenterCenter, CenterRight, BottomCenter)
  • {light} now takes into account time/weather
  • Target Entity X/Y/Z can now be decimals
  • Target Variables without short versions now have them
  • Updated default profile

Variables
Full Docs For These

  • {name}/{display_name}, {username}, {uuid}
  • {world_name}, {server_name}
  • {server_address}/{ip} now aliases for {address}
  • Target Entity Display Name / UUID
  • {item:<slot>:count} and {item:<slot>:max_count} (slot)
  • {space:<pixels>}: a more precisise way to position things
  • {reach}: Player's Reach
  • {solar_time}, {lunar_time}: Time in ticks
  • {light_sun}: Sky Light, but takes into account time/weather
  • {snowing}
  • Fishing Rod:
    • {fishing_is_cast}: Fishing rod is cast
    • {fishing_is_hooked}: Fishing rod hooked on an entity
    • {fishing_has_caught}: Fishing rod caught fish/loot
    • {fishing_in_open_water}: In water that allows it to catch treasure
    • {fishing_hook_distance}: How far away the bobber is
    • Hooked Entity Type / ID / Name / UUID / XYZ / Distance

Bug Fixes:

  • Fixed crosshair conflict with Feather Client
  • Default transparency for background colors is now 44 instead of ff
  • Fixed local theming (for real this time)
  • Item Variable's boolean value are no longer inverted
  • {facing_towards_pn_word} now properly shows "positive" instead of "ifTrue"
  • "Show Errors" key no longer missing translation
  • String flags now work on the {setting:<setting>} variable
  • Texture Icon now works with namespaces
  • A missing =endif= now shows an error

What's New?

  • Updated to 1.19.4
  • Fixed {gpu}

What's New?

  • Fixed {gpu}

What's New in v3.0?

New Features:

  • User Friendly Error Screen
  • New User Friendly Wiki
  • Multi-line conditionals
  • Else-if support in conditionals
  • Theming can now be done locally instead of only profile-wide
  • Crosshair theme option
  • Added Update Checker

New Variables:

  • Icon Variables
  • Way better item variables
  • Variable that allows you to show the value of any minecraft setting
  • Left/Right Clicks per Second ({lcps} & {rcps})
  • {sprinting}, {sneaking}, {swimming}, {on_ground}
  • {facing_short}
  • {seconds} (mc time scale)
  • {singleplayer} and {multiplayer}
  • {raining} and {thundering}
  • {frame_ms_min}, {frame_ms_max}, {frame_ms_avg}, {frame_ms_samples}
  • {gizmo} (debug crosshair)

Changes and Bugs Fixes:

  • Fixed {nether_x} and {nether_z} in the nether
  • {real_time:<format>} no longer crashes when given an invalid format
  • Scale and Precision variable flags now work on integers
  • Precision now show trailing 0s
  • Changed example profile
  • Performance Improvements (batched render calls)

What's New?

  • Added {moon_phase} (1-8)
  • Added {moon_phase_word}
  • Added {cpu_name} and {gpu_name}
  • Added {cpu_cores} and {cpu_threads}
  • Added {display_refresh_rate}
  • Added support for \n
    • This will be useful in the future for variables like: status effects, blockdata, etc
  • Fixed conditional parsing of variables with numbers in them ({hour12} and {hour24})
  • Fixed negative numbers not working in conditionals
  • Re-added {hour} which was removed by accident
  • Fixed TextShadow flag requiring a space after the colon.

What's new in v2.0.0!

  • All the new stuff is documented!
  • Huge refactor needed to allow for conditionals (some variables act a bit differently now)
  • Finally add better conditionals, with comparison support (#2, #14)
    • Also includes 1-deep nesting! (hey, it's better than the previous 0) To nest, use ' instead of " in the inner one
  • Added variable flags:(#5, #26)
    • uppercase (-uc), lowercase (-lc), titlecase (-tc), smallcaps (-sc), and no dashes (-nd) for String variables
    • precision (-p<precision>) and scale (-s<scale>, can either be decimal or fraction) for Decimal variables
  • Added a Statistic variable (#19)
    • Syntax: {stat:<minecraft_statistic_id>} or {stat:<type>:<value>}
    • Since mc stats are ints, you can use the scale and precision flags to get it to the right unit
    • Also has -f flag to use the stat's built-in formatter (doesn't work with scale and precision flags)
    • Updates twice a second for now (it's limited as it has to send and receive a packet from the server to update)
  • Added variables for target block, fluid, and entity (#8)
    • Block: {target_block} (block name) and {target_block_id} (target cord variables already exist)
    • Fluid: {target_fluid}, {target_fluid_id}, {target_fluid_x}/{tfx}, {target_fluid_y}/{tfy}, {target_fluid_z}/{tfz}
    • Entity: {target_entity}, {target_entity_id}, {target_entity_x}/{tex}, {target_entity_y}/{tey}, {target_entity_z}/{tez}
  • Added variables for held items: (#23)
    • Main hand: {item}, {item_id}, {item_dur}, {item_max_dur}, {item_dur_per}, {item_has_dur}
    • Offhand: {oitem}, {oitem_id}, {oitem_dur}, {oitem_max_dur}, {oitem_dur_per}, {oitem_has_dur}
  • Added Region variables (in 1.18, it's the number and file name next to chunk_x and chunk_z)
    • Region: {region_x}/{rex}, {region_z}/{rez}
    • Region Relative: {region_relative_x}/{rrx}, {region_relative_z}/{rrz}
  • Added CPU Usage ({cpu}/{cpu_usage}) (#14)
  • Added GPU Usage ({gpu}/{gpu_usage})
  • Added Slime Chunk boolean variable ({slime_chunk}) (#13)
  • Added Simulation Distance ({simulation_distance}/{sd})
  • Added Off Heap Memory ({memory_off_heap})
  • Added Sodium Support:
    • {sodium_version}, {sodium_chunk_arena_allocator}, {sodium_staging_buffers}, {sodium_buffer_objects}, {sodium_memory_used}, {sodium_memory_allocated}
    • Currently ignores flags
  • Added (some) Iris Support:
    • {iris_version}, {iris_shaderpack}, {iris_shaderpack_profile}, {iris_shaderpack_changes},
  • Add optional width for sections (#27)
  • Add ability for certain sections to hide when the chat is open (#21)
  • Ability to select font
    • Using the ==Font:<font>== flag
    • 1.18's new illageralt font was modified to allow non-alphanumeric characters to show (aka not be boxes) so that it's usable for the hud
    • Same thing with the alt font (the one used in the enchanting table, the Standard Galactic Alphabet)
    • Made an illageralt2 font that's the same as above, but also displays numbers normally
  • Added ability for other mods to add their own variables
    • Done by using the CustomHudRegistry.register(name, element) method
  • Updated to 1.19
  • Added a default profile with instructions on how to edit
  • Fixed right padding (#18)
  • Fixed scaling shifting bottom/right sections (#7)
  • Fixed translation keys (#17, I swore I merged this before, but oh well)
  • Added Portuguese (Portugal) translation (#17)
  • Removed {client_chunk_cache}, {client_chunk_cache_capacity}, and {server_chunk_cache}

What's New?

  • Fixed crash with Iris

In 2.0.0-beta.1:

  • All the new stuff is documented!
  • Huge refactor needed to allow for conditionals (some variables act a bit differently now)
  • Finally add better conditionals, with comparison support (#2, #14)
    • Also includes 1-deep nesting! (hey, it's better than the previous 0) To nest, use ' instead of " in the inner one
  • Added variable flags:(#5, #26)
    • uppercase (-uc), lowercase (-lc), titlecase (-tc), smallcaps (-sc), and no dashes (-nd) for String variables
    • precision (-p<precision>) and scale (-s<scale>, can either be decimal or fraction) for Decimal variables
  • Added a Statistic variable (#19)
    • Syntax: {stat:<minecraft_statistic_id>} or {stat:<type>:<value>}
    • Since mc stats are ints, you can use the scale and precision flags to get it to the right unit
    • Also has -f flag to use the stat's built-in formatter (doesn't work with scale and precision flags)
    • Updates twice a second for now (it's limited as it has to send and receive a packet from the server to update)
  • Added variables for target block, fluid, and entity (#8)
    • Block: {target_block} (block name) and {target_block_id} (target cord variables already exist)
    • Fluid: {target_fluid}, {target_fluid_id}, {target_fluid_x}/{tfx}, {target_fluid_y}/{tfy}, {target_fluid_z}/{tfz}
    • Entity: {target_entity}, {target_entity_id}, {target_entity_x}/{tex}, {target_entity_y}/{tey}, {target_entity_z}/{tez}
  • Added variables for held items: (#23)
    • Main hand: {item}, {item_id}, {item_dur}, {item_max_dur}, {item_dur_per}, {item_has_dur}
    • Offhand: {oitem}, {oitem_id}, {oitem_dur}, {oitem_max_dur}, {oitem_dur_per}, {oitem_has_dur}
  • Added Region variables (in 1.18, it's the number and file name next to chunk_x and chunk_z)
    • Region: {region_x}/{rex}, {region_z}/{rez}
    • Region Relative: {region_relative_x}/{rrx}, {region_relative_z}/{rrz}
  • Added CPU Usage (and CPU & GPU Temps aren't feasible) (#14)
  • Added Slime Chunk boolean variable ({slime_chunk}) (#13)
  • Added Simulation Distance ({simulation_distance}/{sd})
  • Added Off Heap Memory ({memory_off_heap})
  • Added Sodium Support:
    • {sodium_version}, {sodium_chunk_arena_allocator}, {sodium_staging_buffers}, {sodium_buffer_objects}, {sodium_memory_used}, {sodium_memory_allocated}
    • Currently ignores flags
  • Added (some) Iris Support:
    • {iris_version}, {iris_shaderpack}, {iris_shaderpack_profile}, {iris_shaderpack_changes},
  • Add optional width for sections (#27)
  • Add ability for certain sections to hide when the chat is open (#21)
  • Ability to select font
    • Using the ==Font:<font>== flag
    • 1.18's new illageralt font was modified to allow non-alphanumeric characters to show (aka not be boxes) so that it's usable for the hud
    • Same thing with the alt font (the one used in the enchanting table, the Standard Galactic Alphabet)
    • Made an illageralt2 font that's the same as above, but also displays numbers normally
  • Added ability for other mods to add their own variables
    • Done by using the CustomHudRegistry.register(name, element) method
  • Updated to 1.18.2 (#29)
  • Fixed missing right padding #18
  • Fixed scale being weird #7
  • Fixed translation keys (#17, I swore I merged this before, but oh well)
  • Added Portuguese (Portugal) translation (#17)
  • Removed {client_chunk_cache}, {client_chunk_cache_capacity}, and {server_chunk_cache}

What's left before full 2.0 release:

  • Make Sodium variables work with flags
  • Finish Iris Support
    • {iris_shadow_half_plane}, {iris_shadow_res}, {iris_shadow_entities}, {iris_shadow_blockentities}, {iris_should_render_translucent}, {iris_should_render_terrain}
    • Distance Terrain/Entity, Shadow Culling, Shadow Terrain, Shadow Entity Batching, Entity Batching
  • (Maybe) A couple other things added to the F3 menu in 1.18. Not sure how useful they are though
    • Noise Router
    • Biome Builder
    • More Chunk Info
  • Updated to 1.18
  • Fixed crash related to the particle variable that happened in v1.2.2

External resources



Project members

Minenash

Owner


Technical information

License
MIT
Client side
required
Server side
unsupported
Project ID