AutoSchematicBuilder
make (Continue developing my Minecraft Java Fabric 1.21.11 Auto Schematic Builder mod. I want a complete, working mod — not a mockup or pseudocode. Follow every requirement below carefully. ## 1. GUI AND KEYBIND - Pressing **Right Ctrl** must open and close the Auto Schematic Builder menu. - Right Ctrl must be the default keybind, but let me change it in the settings. - The menu must look clean, modern, and professional, with an easy-to-use layout. - The menu must not cause lag, freeze Minecraft, or interfere with normal gameplay. - Remember my settings between game launches.
Read the full description
- Make sure Right Ctrl works independently of Left Ctrl. ## 2. SCHEMATIC FOLDER AND LOADING SYSTEM I want the schematic loader to work exactly like this: 1. I press Right Ctrl to open the mod menu. 2. I click a button labeled **Load Schematic**. 3. A file-selection window opens so I can browse my computer and select a schematic. 4. Alternatively, there must be a button labeled **Open Schematic Folder**. 5. Clicking that button opens the exact folder where I can put my schematic files. 6. If the folder does not exist, the mod automatically creates it. 7. I can copy and paste my schematic files into this folder. 8. When I return to the mod menu, I can press **Refresh Schematics** to see the files I added. 9. I click a schematic's name to select it, then click **Load**. 10. The mod loads the schematic and displays its preview in the Minecraft world. The folder should have a clear name, such as `schematic-builder`, inside the Minecraft instance's configuration directory. Display the exact folder path in the GUI, with a button that opens it directly. Support `.schem` and `.schematic` files wherever technically possible. Detect invalid or unsupported files and show understandable error messages instead of crashing. Display the following information for each loaded schematic: - File name - Width, height, and length - Total block count - Loading status Do not require me to edit Java code or configuration files manually to load a schematic. ## 3. PLACING THE SCHEMATIC WITH A STICK I want to control exactly where the schematic goes. - Provide a configurable positioning tool, using a Minecraft stick by default. - When I hold the positioning stick and right-click a block, set that block as the schematic's anchor point. - The schematic preview must move to the selected location. - Clearly show where the schematic will be placed before I start building. - Let me adjust the X, Y, and Z coordinates through the GUI. - Add rotation buttons for 90°, 180°, and 270°. - Add buttons to raise or lower the schematic and move it horizontally. - Let me cancel positioning without placing anything. - Prevent accidental activation of Minecraft's normal stick interaction when using the positioning tool, where appropriate. - Make the anchor point and rotation easy to understand. The preview must update smoothly whenever I change the position or rotation. ## 4. NATURAL, SMOOTH MOVEMENT This is extremely important. I do not want the player or camera to shake, snap around, jerk, or rapidly rotate while the schematic builder operates. - Keep camera movement stable and smooth. - Never make the camera instantly snap toward blocks. - Avoid repeated rapid rotation changes. - Use gradual, controlled interpolation for visual transitions where appropriate. - Prevent jitter when targeting blocks or updating the schematic preview. - Keep the player from visibly shaking while the preview moves. - Make movement speed, rotation speed, and delays configurable. - Keep the preview responsive without making it flicker. - Avoid unnecessary camera movement entirely whenever possible. Do not fake smoothness by adding random movements. The behavior must be consistent and controlled. ## 5. BUILDING CONTROLS Include these controls in the GUI: - Load Schematic - Open Schematic Folder - Refresh Schematics - Start - Pause - Resume - Stop - Restart - Toggle Preview - Rotate Left - Rotate Right - Move Up - Move Down - Reset Position - Settings Display building progress as a percentage and show the current block or coordinates being processed where possible. Clearly distinguish between loading, previewing, and actually placing blocks. Never imply that a block was successfully placed when the game or server rejected the action. ## 6. PREVIEW AND RENDERING - Render a transparent ghost preview of the schematic. - Make the preview easy to see without obscuring the whole screen. - Distinguish blocks that still need placement from blocks already confirmed as placed, when possible. - Ensure the preview does not cause major FPS drops. - Support large schematics efficiently. - Do not rebuild every rendered block unnecessarily every frame. - Provide an option to turn the preview off. ## 7. SETTINGS All important settings must be available in the GUI, including: - Menu keybind, default Right Ctrl - Positioning tool, default stick - Preview visibility - Movement and rotation smoothing - Placement delay, where applicable - Render distance or preview range - Schematic folder location - Preview opacity - Automatic preview refresh Save settings persistently so they remain after restarting Minecraft. ## 8. TECHNICAL REQUIREMENTS - Minecraft Java Edition 1.21.11. - Fabric Loader and compatible Fabric API. - Java, using APIs compatible with the specified Minecraft version. - Use a proper schematic parsing library if appropriate. - Use separate, maintainable classes for the GUI, file management, schematic parsing, preview rendering, positioning, building logic, settings, and keybinds. - Handle missing files, invalid schematics, large files, and rendering errors gracefully. - Avoid blocking the main game thread during expensive file operations. - Include all required dependencies and configuration files. - Do not invent methods or use outdated Fabric APIs. - Make sure the project can actually compile for the specified Minecraft version. ## 9. IMPORTANT SERVER LIMITATIONS The mod must respect server permissions and server-side restrictions. In single-player or a test world, it may use the appropriate local building functionality. On multiplayer servers, only use placement methods permitted by the server and available to the player. Do not claim that a client-side mod can force a server to accept blocks. ## 10. HOW I WANT YOU TO DEVELOP IT Before coding, check the correct Fabric and Minecraft 1.21.11 APIs and choose compatible dependencies. Then implement the complete project, including: - Full source code - Gradle build files - Fabric mod metadata - Required dependencies - Default configuration - Clear installation instructions - A compiled JAR if your environment supports building it Do not stop after creating a GUI mockup. The file picker, schematic folder, loading process, positioning tool, preview, settings, and keybind must be connected to actual implementations. If a feature cannot work exactly as requested, explain the technical limitation and implement the closest functional alternative. Test the project for compilation errors and fix them before presenting the final result. My main priorities are: **easy schematic importing, a working Right Ctrl menu, precise stick-based positioning, a stable ghost preview, and smooth behavior without camera shaking or snapping.)**