File Details
[Fabric] v3.0.0 MC 1.18.2
- B
- Jan 25, 2024
- 2.54 MB
- 167
- 1.18.2
- Fabric
File Name
fancymenu_fabric_3.0.0_MC_1.18.2.jar
Supported Versions
- 1.18.2
Curse Maven Snippet
CHANGELOG | FANCYMENU v3.0.0 - The "Don't Panic, Your Layouts Still Work" Update
IMPORTANT! PLEASE READ!
Most layouts should still work fine, but some very deprecated stuff (and the Audio element of the extension)
got removed, so there will be some special cases where you need to fix some parts.
The following changelog only contains SOME of the maaaany changes in FancyMenu v3.
It's just too much stuff to mention every change in detail.
It's also very likely that I forgot some of the bigger changes, because I worked on v3 for over 8 months.
In these 8+ months I rewrote like 90% of the code (some parts multiple times), shared progress updates with
you all and got a lot of feedback from you to polish as many of the new/rewritten stuff as possible!
Thank you SO MUCH to all of the Alpha and Beta testers and people who made suggestions for v3!
This update wouldn't be possible without you! <3
But well, since sooo much stuff got rewritten in this update, there's like no chance it will not contain bugs and some of them
could harm your layouts, so please make sure to BACKUP YOUR LAYOUTS AND MINECRAFT INSTANCE before updating to this version!
And now have fun reading that frickin book, uhm I mean changelog!
tl;dr: BACKUP your LAYOUTS and Minecraft INSTANCE before updating!
------------------------------
- The new wiki for v3: docs.keksuccino.net
- FancyMenu v3 is available for 1.18.2, 1.19.2, 1.20.1, 1.20.4 and future Minecraft versions (all other versions not listed here get dropped with v3)
- Old Audio elements from the Audio extension don't work anymore, you need to add the new Audio element of the base mod (sorry)
- Old v2 layouts, variables, custom GUIs and other things get CONVERTED to v3, so there's no going back to v2 after loading your setuo in v3!
--> Make sure to backup your setup before loading it in v3!
- Button tooltips (custom and Vanilla buttons) now look like Vanilla ones
- Button tooltips will not jump to the complete opposite site of the mouse cursor anymore when hitting the edge of the screen
- If "Preserve Background Aspect Ratio" is enabled, menu backgrounds will now always get rendered with the correct aspect ratio, no matter how big/small the screen is
- Orientations are now called "Anchor Points"
- You can now use all customizable Vanilla elements of menus as base for the "Element" anchor point (was only Vanilla buttons before)
- All assets (textures, sounds, etc.) now need to be in "config/fancymenu/assets" (old assets still work, but new ones need to be in the assets dir)
- Variables now get saved in a new format (Old variables get converted to the new format, but you need to enable "Reset on Launch" again, because the config option for it no longer exists)
- New elements now stay on screen by default (they never go out of screen by resizing the window or changing the GUI scale; this can be disabled per-element)
- New elements now have "mid-centered" as default anchor point
- When adding a new element by using the right-click context menu, the new element will now get added at the spot where you've opened the context menu
- Custom window icon system now allows you to set your own icon paths (You will need to set your custom icons again and move them to /config/fancymenu/assets/)
- You don't need to restart the game anymore after changing the custom window icon(s) (gets updated automatically)
- You don't need to restart the game anymore after changing the custom window title (gets updated automatically)
- The "/openguiscreen" and "/closeguiscreen" commands now accept a player argument to remotely open/close GUIs for other players (OP permissions needed)
- The "/openguiscreen" and "/closeguiscreen" commands can now be executed from console (as non-player) by setting a player argument
- The "/fmvariable" command now supports setting values with spaces, quotation marks and backslashes
- Completely reworked all APIs and registries (so if you've used these in an extension mod, this mod is broken now, sorry >.<)
- Most UI stuff got a full rewrite (context menus, menu bars, screens, etc.)
- FancyMenu's settings are now part of the menu bar at the top of menu screens and should be way easier to navigate through now
- The header and footer textures of scrollable screens (like Singleplayer, Multiplayer, Video Settings, etc.) are now customizable
- It's now possible to set an inactive background for buttons (inactive means greyed out and not clickable)
- There's a short placeholder format for variables now: $$variable_name
- The action system now supports IF, ELSE-IF und ELSE statements (IF and ELSE-IF take loading requirements)
- You can drag-&-drop actions (and statements) in the "Edit Actions" screen now (to move them)
- Complex loading requirements like "Is Number" now have a GUI to build/edit their values more easily
- Complex actions like "Execute Terminal/CMD Command" now have a GUI to build/edit their values more easily
- FancyMenu's "config.txt" file is now called "options.txt" (It's NOT recommended to rename the old one to "options.txt"!)
--> This also means everything from the old config needs to get set again (like custom window title, window icon, etc.) (sorry for that!)
- The pose of Player Entity elements is now fully customizable (Every body part can be rotated on its X, Y and Z axis, except base body/torso, which only rotates on X and Y)
- Player Entity elements now have separate "follow mouse" toggles for head and body
- Player Entity elements now keep their customized pose while "follow mouse" is enabled
- Player Entity elements now have full placeholder support for pose (all body part rotations) and scale
- Most screens now have shorter, universal identifiers (no too.long.identifiers.nobody.can.read anymore!)
- Universal identifiers (previously known as "compatibility identifiers") for buttons are now shorter (there's no "button_compatibility_id:" prefix anymore)
- All elements of the Progress Screen are now customizable
- All elements of the Level Loading Screen are now customizable
- All elements of the Receiving Level Screen are now customizable
- All elements of the Connect Screen are now customizable
- It is now possible to set a serialized text component (like in the '/tellraw' command for example) as label for buttons and as text for Splash Text elements
- The "Execute Terminal/CMD Command" action now prints its process output to the game log
- There's now a layout index system to customize the loading order of multi-layout setups (multiple layouts for the same menu)
- The old overlay to show the screen identifier got replaced with a full debug overlay that shows useful information about performance, loaded layouts and more
- You can now fully customize Vanilla/Mod Slider handle and background textures
- The Image menu background type now supports web sources (and allows you to set a local fallback texture in case the web source fails to load)
- It's now possible to set GIF images as menu background
- Text elements are now locked at a maximum of 45,000 characters, because the game isn't really usable anymore when using longer texts
- The placeholder parser is now locked at a maximum of 17,000 characters per text that can be checked for placeholders
--> So if you use placeholders in text elements, this overrides the normal 45,000 characters maximum
- Universal layouts now get always loaded BEFORE normal ones, so normal layouts can override parts of universal ones
- The grid in the layout editor now always gets rendered at the same scale, no matter what GUI scale is used
- FancyMenu now supports APNG textures (Animated PNGs, like GIFs, but better)
- It is now possible to pre-load specific resources
--> Accessible via Customization Menu Bar -> Customization -> Pre-Load Resources
--> Recommended for APNGs used as game intro
- The game intro now fades to the Title screen like the loading overlay (can be toggled off)
- You can now undo/redo steps in the text editor
- Backported Vanilla 1.19.4+ widget background rendering (9-slicing) to 1.18.2 and 1.19.2
- Backported Vanilla 1.19.4+ widget label rendering (sliding left to right) to 1.18.2 and 1.19.2
- Panoramas should now load when its properties file name is "properties.txt.txt" (you know why)
- Slideshows should now load when its properties file name is "properties.txt.txt" (you know why)
- Animations are now deprecated!
--> APNGs exist now (and maybe videos soon), so there's no real need for animations anymore
--> It's not possible to add new Animation elements to layouts, but existing ones still work for now
--> Animations can't get set as game intro anymore, but existing animation intros still work for now
--> Animations can't get set as button background anymore, but existing animation button backgrounds still work for now
--> Animations can't get set as menu background anymore, but existing animation menu background still work for now
- Added loading requirement "File/Folder Exists" to check if a file/folder exists
- Added loading requirement "Is Button Active" to check if a button is active (clickable/not greyed out)
- Added loading requirement "Is ANY Element Hovered" to check if any element is hovered (takes no value and checks for ALL elements in the layout, not just buttons)
- Added loading requirement "Is ANY Button Hovered" to check if any button is hovered (takes no value and checks for both Vanilla and custom buttons)
- Added loading requirement "Is Menu Title" to check for the title at the top of some menus like the Options or Pause screen
- Added action "Leave World or Server" to leave a world or server (allows you to set a screen that should open after leaving)
- Added action "Set Minecraft Option" to set the value of a Minecraft option
- Added action "Update Screen" to update/reload the current screen's customizations without reloading the whole mod
- Added placeholder "Absolute File/Folder Path" to get the absolute path of a file/folder
- Added placeholder "Random Number" to get a random number in the specified range
- Added placeholder "World Loading Progress" that reflects the current world loading progress percentage while in a progress screen
- Added placeholder "Minecraft Option Value" to get the value of a Minecraft option
- Added placeholder "Mod Loader Version" to get the mod loader version (Fabric, Forge, etc.)
- Added placeholder "Mod Loader Name" to get the mod loader name (Fabric, Forge, etc.)
- Added "Cursor" element that allows you to set a custom cursor texture (supports loading requirements)
- Added placeholder "Max Number" that returns the greater of two numbers
- Added placeholder "Min Number" that returns the smaller of two numbers
- Added placeholder "Absolute Number" to get the absolute (positive) value of a number
- Added placeholder "Negate Number" to negate a number
- Added placeholder "pi" that returns the double value that is closer to pi than any other
- Added placeholder "Trigonometric Sine" to calculate the trigonometric sine of an angle
- Added placeholder "Hyperbolic Sine" to calculate the hyperbolic sine of a double value
- Added placeholder "Trigonometric Cosine" to calculate the trigonometric cosine of an angle
- Added placeholder "Hyperbolic Cosine" to calculate the hyperbolic cosine of a double value
- Added placeholder "Trigonometric Tangent" to calculate the trigonometric tangent of an angle
- Added placeholder "Hyperbolic Tangent" to calculate the hyperbolic tangent of a double value
- Added placeholder "Current Time in Millis (Unix Timestamp)" to get the current time in milliseconds, measured by the time that has elapsed since 00:00:00 UTC on 1 January 1970
- Added placeholder "CPU Usage (JVM)" to get the current CPU usage of the Java Virtual Machine
- Added placeholder "CPU Usage (OS)" to get the current CPU usage of the Operating System
- Added placeholder "CPU Info" to get information about the CPU
- Added placeholder "GPU Info" to get information about the GPU
- Added placeholder "Java Version" to get the Java version
- Added placeholder "OpenGL version" to get the OpenGL version
- Added placeholder "Operating System Name" to get the name of the OS
- Added placeholder "Java Virtual Machine Name" to get the name of the JVM
- Added placeholder "FPS (Frames Per Second)" to get the current FPS
- Added a bunch of accessibility stuff
--> UI Themes to change the color scheme of FancyMenu's UI (dark and light themes included by default and you can make your own themes!)
--> Toggle the text shadow of all of FancyMenu's UI text
--> Toggle the click sound of all of FancyMenu's UI elements
--> FancyMenu's UI Scale is now "Auto" by default (automatically shows the UI at scale 2 instead of 1 if the window is bigger than 1920x1080)
- The Layout Editor got a full rewrite
--> Better menu navigation
--> Added an anchor point overlay that shows the anchor of elements and lets you set the anchor of elements by hovering over an anchor
--> You can now move multiple elements at the same time with the mouse by holding CTRL (was only possible by using the arrow keys before)
--> Replaced "moving/dragging not allowed" message when moving an element with indicator that tells you the element in not moveable
--> You can now draw a mouse selection rectangle to select multiple elements
--> There's a "Layer" widget now that lets you easily reorder elements (and it lets you rename elements!)
--> Removed the delete confirmation for elements, because undo/redo exists
- Reworked Text elements
--> Text elements now have auto line wrapping/breaking (toggleable; enabled by default)
--> There's now full markdown support for web and local text sources
--> Special markdown formatting code to colorize text parts with HEX colors
--> Special markdown formatting codes to make text parts centered or right-sided
- Reworked Slider elements
--> Sliders now execute actions (just like buttons) when their value gets changed
--> To get the current value of a Slider for use in its loading requirements and actions, use $$value as placeholder
--> Sliders now have 3 modes: List (pre-defined value list), Integer Range (range of whole numbers) and Decimal Range (range of decimals)
--> Just like Vanilla Sliders, custom ones have fully customizable textures now (handle and background)
--> Old Slider elements are deprecated now
- Reworked Audio elements
--> Their options got simplified while keeping all features of the old version
--> They now have a detailed memory of what tracks they already played, so even in Shuffle mode they only play every audio once per loop (or once in total if not looping)
--> They never play the same track twice in a row (well except they only have one track)
--> The logic of when Audio elements keep playing across menus is more in line with the rest of FM now, so Audio elements only keep playing across menus if they are part of a universal layout now
--> The Manage Tracks GUI lets you easily reorder tracks to let them play in the correct order (if not in Shuffle)
--> They support WEB audio sources now!
--> Oh and they are part of the BASE MOD now! No Audio extension anymore!
- Reworked Custom GUIs
--> OLD SCREEN OVERRIDES DON'T WORK ANYMORE! You need to override screens again (sorry >.<)
--> They should now be way more stable and shouldn't cause so many issues anymore
--> Custom GUIs can now be managed more easily (custom GUI controls are now located in the "Customization" tab of the menu bar)
--> Overriding Vanilla/Mod screens should be more stable now and there's now a menu where you can see and manage (delete) all overridden screens
- Removed deprecated (old) text element and web text element (this does not affect the new text element added in FancyMenu v2.12.0)
- Removed deprecated background audio feature of layouts, since the Audio Extension is a thing now (install the extension mod and add an Audio element to the layout)
- Removed deprecated feature to use the localization key/label of a Vanilla button to identify it (this was an _ancient_ thing and was probably unused zombie code for like 2-3 years)
- Removed deprecated 'prevbackground' and 'nextbackground' actions (leftover of ancient menu background handling; wasn't really functional anymore in modern layouts)
- Removed deprecated 'opencustomgui' action, because 'opengui' can open custom GUIs for a long time now
- Removed deprecated (old) placeholder system (the old ones that looked like %placeholder%, not the new JSON-like ones)
- Removed legacy "Required Mods" option of layouts, since loading requirements can be used for that instead
- Removed legacy "Maximum/Minimum Minecraft Version" option of layouts, since loading requirements can be used for that instead
- Removed legacy "Maximum/Minimum FancyMenu Version" option of layouts, since loading requirements can be used for that instead
- Removed legacy "Screen Height/Width Requirements" option of layouts, since loading requirements can be used for that instead
- Removed legacy "Only In Multiplayer/Singleplayer" options of button elements, because loading requirements can be used for that instead
- Removed customizability of the Vanilla Splash Text element in the Title Screen, because you can simply add a custom one and set it to Vanilla mode
- Removed config options to toggle the visibility of the percentage and chunk elements of the Level Loading Screen (these are now customizable in the layout editor)
- Fixed: Probably a lot of bugs that were caused by old spaghetti code (and probably added the same amount of new bugs)
- Fixed: MC 1.19.4+: Vanilla buttons that got moved or resized flicker when resizing some screens like the Create World screen
- Fixed: Button tooltips sometimes sticking to next menu screen
- Fixed: Copyright button is deletable (you can't delete or resize it anymore, but moving still works as long as the button stays on-screen)
- Fixed: Resizing not working correctly when using the "Element" anchor point
- Fixed: Element-Info (X-pos, Y-pos, width, etc.) at the side of elements in the editor can go off-screen when the element is too far right or at the top
- Fixed: Incompatibility with "Remove Reloading Screen" mod
- Fixed: Minecraft's "/help" command doesn't work correctly for FancyMenu's "/fmvariable" command
- Fixed: "&" formatting codes in "Paste to Chat" action get replaced with "§" formatting codes
- Fixed: "&" formatting codes in "Send Message" action get replaced with "§" formatting codes
- Fixed: Crash when pressing DELETE on an empty line in the text editor
- Fixed: It is possible to remove/reset the Forced GUI Scale of a layout without disabling Auto-Scaling first, which can lead to the layout scaling the menu to infinity
- Fixed: Panoramas sometimes not loading properly (not showing up in panorama menu)

