Polymart is now Voxel Shop! We're upgrading many features of the site, and during this open beta you will experience occasional bugs. Learn more
factory, economy, mechanic, custom gui, achievement, quest
[FEATURES & ENHANCEMENTS]
- [add] Added "Factory Protection" system with a dedicated GUI (accessible via slot 48 in the main factory menu).
- [add] Introduced 18 Protection Flags: Block Break, Block Place, Player Interact, Container Access, Entity Damage, PvP, Explosion, Mob Spawning, Item Pickup, Item Drop, Redstone, Vehicle Place, Fire Spread, Liquid Flow, Piston, Crop Trample, Hanging Break, and Armor Stand.
- [add] Added "Enable All" and "Disable All" bulk toggle buttons in the Factory Protection GUI.
- [add] Added tax countdown timer and total tax amount information in the "My Factories" menu.
- [add] Implemented "Total Produced" value accumulation based on suggested prices, displayed in factory information lore.
- [add] Added right-click functionality on production confirmation to enable continuous production until resources or funds are exhausted.
- [add] Added language keys for protection toggle messages (protection-flag-enabled, protection-flag-disabled, etc.).
- [add] Added a distinct "Auto-Producing" bossbar (green with ♻ icon) for multi-production to differentiate it from single production.
[MECHANICS & REFACTORING]
- [system] increase default border-particle-spacing from 3.5 to 8
- [refactor] Centralized tax calculation method for all factory types.
- [refactor] Expanded PlayerFactoryProtectionListener with 16 event handlers for comprehensive flag support.
- [fix] Standardized default tax and salary intervals to 1-day ticks.
- [balance] Reduced default distribution tax from 25% to 5% in config.yml.
- [system] Protection flags are now persisted per factory in player_factories.yml.
[NEW RESOURCES]
- Added 3 Advanced Resources (Tier II): Lapis Pigment Paste, Emerald Catalyst, Netherite Alloy Bar.
- Added 3 Machine Parts (Tier II): Arc Welder Tip, Resonance Coil, Netherite Drill Bit.
- Added 9 Final Products (Tier III) across Military, Electronics, Automotive, and Aerospace sectors.
- Added Industrial Netherite Scrap and its processing recipe from Ancient Debris.
[RECIPE & CONTENT UPDATES]
- Steel Mill: Added recipes for Lapis Paste, Emerald Catalyst, and Netherite Alloy.
- Workshop: Added recipes for Arc Welder Tips, Resonance Coils, and Netherite Drill Bits.
- Smeltery: Added recipes for Lapis Lazuli, Emerald, and Deepslate variants (Coal, Iron, Gold, Diamond, Copper, Redstone).
- Smeltery: Removed batch raw ore recipes (Iron/Copper/Gold) for better balancing.
- New assembly lines implemented for Military, Electronics, Automotive, and Aerospace factories.
[ECONOMY & EVENTS]
- Balanced all production times and costs (targeting ~20% profit margin).
- Added 15+ new company demand events in events.yml.
- Introduced "Mega-Orders" and mixed-tier contracts for late-game supply chain challenges.
- Integrated new resources into existing company portfolios (Quantum Optics, NexGen, Ironclad, etc.).
[CONSISTENCY & MISCELLANEOUS]
- All content standardized to English for global compatibility.
- Unique Custom Model Data assigned for future texture pack integration.
- Balanced rarity distribution across all items (Common to Legendary).
- [consistency] Translated all remaining Indonesian GUI strings to English, ensuring a uniform language experience.
v1.2.9 Update Log
[FEATURES & ENHANCEMENTS]
- [add] Added support for vanilla material requirements in factory upgrades using the `vanilla:MATERIAL` prefix in `config.yml`.
- [add] Enhanced `UpgradeGUI` with real-time inventory tracking for vanilla materials, providing accurate "Have/Required" feedback in the UI lore.
- [add] Added support for player-created factories in `/fc admin list`, with clear categorization between "Admin Factories" and "Player Factories".
- [add] Updated `/fc admin info <id>` to display detailed information for player-created factories, including world, min/max coordinates, and center location.
- [add] Enhanced `/fc admin remove <id>` to support one-click administrative removal of player-created factories with full cleanup of associated NPCs, BossBars, and storage contents.
- [add] Improved `/fc admin teleport <id>` to allow admins to teleport to any factory (admin or player-created) bypassing ownership restrictions.
- [add] Implemented comprehensive tab-completion for all admin commands (`info`, `remove`, `teleport`, `setowner`), providing intelligent ID suggestions for both regular and player-created factories.
- [add] Enhanced `FactoryCoreCommand` with improved validation, multi-manager lookup support, and comprehensive tab-completion for all admin-related sub-commands.
- [add] Added a new toggle button in the Main Menu (Slot 53) to set the output destination: "Output Storage" (default) or "Player Inventory".
- [add] Enhanced the Main Menu GUI to dynamically update the toggle button's icon (Chest vs Player Head) and lore to reflect the current setting.
- [add] Added a dedicated "Employee Info" button (Slot 49) in the Shop and My Employees menus to provide a quick guide for NPC tiers (Apprentice to Master).
- [add] Improved the "My Employees" button lore in the shop to show live counts of owned and unassigned employees, matching the information provided in the Employees Center.
- [add] Added a new "Transfer Owner" button in `MainMenuGUI` at slot 50, enabling ownership transfer flow directly from the factory main menu.
- [add] Implemented an online-player selection submenu for transfer targets, showing all currently active players except the current owner.
- [add] Added a dedicated transfer confirmation submenu before ownership is changed to reduce accidental transfers.
- [add] Added configurable transfer tax support via `factory.transfer-owner-tax-rate` in `config.yml` (default: `5.0%`).
[MECHANICS & REFACTORING]
- [refactor] Refactored `PlayerFactoryManager` to include a robust `startUpgrade` API, ensuring consistent resource and economy checks between Admin and Player factories.
- [refactor] Refactored `PlayerFactoryManager` with a new `removeFactory(id)` internal API for safer and more robust management of player assets by administrators.
- [refactor] Updated `PlayerFactory` model to allow owner reassignment through `setOwner(UUID)`.
- [fix] Fixed a major indentation bug in `UpgradeGUI.java` from previous version.
- [fix] Fixed a critical issue where player-created factories bypassed material requirements during upgrades.
- [fix] Fixed NPC duplication by adding chunk-load guards in `NPCManager` to skip respawning NPCs in unloaded chunks.
- [fix] Improved `removeVillagerEntity` to force-load chunks briefly, ensuring stale/phantom NPC entities are properly deleted.
- [system] Improved `FactoryManager` and `PlayerFactoryManager` to automatically consume required materials (custom resources OR vanilla items) when an upgrade starts.
- [system] Integrated automatic `FactoryNPC` and `BossBar` cleanup mechanisms into the player factory removal workflow.
- [system] Optimized `NPCManager` performance by reducing behavior scheduler frequency from 20 ticks/sec to 5 ticks/sec, reducing teleport and entity-lookup overhead by 75%.
- [system] Added a deduplication guard in `spawnVillager` to automatically scan and remove any lingering villagers mapped to the same NPC ID.
- [system] Batch-optimized database saves in `NPCManager` to reduce file I/O operations during mass NPC respawns.
- [system] Redesigned the output delivery system in `FactoryManager` and `PlayerFactoryManager` to route items directly to the owner's inventory if the player is online and has the routing set to inventory.
- [system] Implemented a robust inventory-full fallback: if the player's inventory is full, overflow items are automatically redirected to the factory's Output Storage with a clear notification for the player.
- [system] Added persistence for the output routing setting in `data/output-destination.yml`, ensuring that player preferences are saved across server restarts.
- [system] Applied transfer tax calculation based on original factory price and charged it to the current owner during transfer.
- [system] Ownership transfer now preserves all existing factory data and only updates the owner UUID.
- [system] Added validation safeguards for transfer flow: owner check, target online check, target factory-limit check, and owner balance check.
- [system] Extended `InventoryClickListener` menu routing to support the new Transfer Owner submenus.
[CONSISTENCY & MISCELLANEOUS]
- [consistency] Synchronized the navigation buttons in EmployeeShopGUI.java (Shop, My Employees, Factory Assign) with the layout of EmployeesCenterGUI.java (Slots 47-51).
- [consistency] Standardized the "Back" button position to slot 51 across all employee-related menus for a more uniform navigation experience.
- [consistency] Enhanced the Shop and My Employees headers and navigation labels to clearly indicate "YOU ARE HERE" for better orientation within the NPC workforce system.
- [Removed] Removed Invoice Management and InvoiceGUI from the main menu and factory GUI system.
- [Update] Increased Main Menu GUI capacity to 54 slots with a cleaner and more intuitive layout.
- [Update] Changed the "Back" button in Main Menu to return directly to My Factories GUI instead of the Hub.
- [New] "Set Display Name" feature to customize factory display names via chat input.
- [New] "Set Factory Icon" feature to change factory material icon in the My Factories menu (with right-click support to reset to default).
- [New] "Sell Factory" system integrated with a security confirmation mechanism (Confirm Sale GUI) before selling a factory to the system.
- [Update] Integrated FactoryChatListener for real-time player text input handling during renaming or icon material changes.
- [Update] Updated Factory and PlayerFactory models to store display name (Display Name) and custom icon (Custom Icon) data.
- [Update] Updated MyFactoriesGUI to display custom names and icons personalized by players, and simplified item name display by removing short ID and [Player] tag.
- [New] Added left-click to open Input Storage and right-click to open Output Storage on the Factory Storage button in Main Menu GUI, with NPC employee ownership validation for output access.
- [New] Added "disable-item-output" feature in recipes (recipes.yml) to disable item output, allowing rewards to be fully controlled via console-commands.
- [New] Added "Rarity" system for resources with four tiers: Common, Uncommon, Rare, and Epic.
- [Update] Added `%rarity%` placeholder in item lore to automatically display item rarity with appropriate color formatting.
- [Update] Updated all default items in `resources.yml` with unique rarity assignments for each resource category.
- [New] Added "Recipes Wiki" GUI — a comprehensive in-game encyclopedia accessible from the main hub menu. Features include:
- Automatically lists all registered resources from resources.yml (no code edits needed).
- Left-click on any resource to view its crafting recipe (inputs, outputs, production time, cost).
- Right-click on any resource to view all recipes that use it as an ingredient.
- Detailed item information panel showing rarity, type, price, source factory, and production time.
- Sort buttons to organize resources by Name, Price, Rarity, Type, or Source factory.
- Paginated display supporting unlimited resources.
- Data refreshes automatically on `/fc admin reload`.
- Integrated into the main hub menu with configurable slot, material, and lore via `custom_gui/main_menu.yml`.
- [New] Dynamic Storage Slot Scaling system: Factory storage capacity now grows with every level increase.
- [Update] Added `slots-per-level` (default: 9) in `config.yml` to specify additional slots per factory level for both Input and Output storage.
- [Update] Total storage calculation: `Base Slots (9) + (Level - 1) * Bonus Slots`. (Level 5 reaches 45 storage slots).
- [Update] Redesigned OutputStorageGUI with a cleaner layout:
- Added "Collect All" button (Chest) to withdraw all items into player inventory in one click.
- Added "Back" button (Arrow) to return to previous menu.
- Added "Storage Info" (Book) displaying current capacity and stored items count.
- [Update] Redesigned StorageGUI (Input) with a cleaner layout:
- Organized control row: Back, Deposit All, Info, and Withdraw All.
- Consistent design style with Output Storage for a premium experience.
- [Update] Updated UpgradeGUI to show storage capacity bonuses for both current level and next level in the upgrade panel and confirmation dialog.
- [New] Added "Distribution Center" feature — a complete delivery request system where companies request materials from players. Features include:
- Virtual company entities loaded from `company.yml` with detailed info (name, industry, CEO, HQ, reputation stars, lore).
- Distribution events loaded from `event.yml` with weighted random selection, time limits, and configurable demands.
- 21 sample companies across 7 industries: Heavy Industry, Mining, Technology, Energy, Military & Defense, Luxury & Commerce, Engineering, and Construction.
- 82 sample events ranging from basic (common ore deliveries) to elite (multi-resource contracts).
- Custom Distribution Center GUI accessible from the main hub menu with clean, modern design.
- Request detail view showing company info, timer with color-coded status, reward breakdown, and clickable resource delivery.
- "Deliver All" button to submit all demanded resources from inventory at once.
- Speed bonus system: completing requests quickly (configurable % of time remaining) awards a multiplier on the payout.
- Multi-resource requests: events can demand multiple different resources in a single delivery.
- Command execution on request appear and completion (supports %player% placeholder).
- Automatic request expiration with cleanup.
- Periodic event spawning via configurable scheduler interval.
- Data persistence for active requests and tax records via YAML.
- Full reload support via `/fc admin reload`.
- [New] Added "TAX_DISTRIBUTION" as a new InvoiceType data type representing tax deducted from distribution center payouts.
- [New] Added `distribution` section to `config.yml` with settings: enabled, tax_distribution_rate (default 25%), max-active-requests, spawn-interval-ticks, min-spawn-cooldown, broadcast-new-requests, allow-offline-spawning.
- [New] Added Distribution Center item to the main hub menu (`custom_gui/main_menu.yml`) with `{distribution_active_count}` placeholder.
- [New] Added `open_gui_distribution_center` as a supported on_click action in main_menu.yml.
- [New] Added `/fc distribution` (alias `/fc dist`) command to open the Distribution Center GUI directly.
- [New] Added `distribution-request` notification sound in config.yml.
- [New] Added PlaceholderAPI placeholders: `%factorycore_distribution_active%`, `%factorycore_distribution_tax_paid%`.
- [New] Distribution Center status displayed in the startup banner (company count, event count).
- [New] Added admin command /fc admin event <id> [player] to force-spawn distribution events (ignores spawn chance and interval/cooldown settings) with full tab completion support for event IDs and player names.
- [Removed] Removed unused 'economy.currency-symbol' and 'economy.decimal-places' settings from config.yml and pruned MoneyFormatter.java to clean up the codebase.
- [New] Added "command-on-leave" configuration to distribution events (event.yml). When a player's delivery request expires without being fulfilled, the configured commands will be executed automatically.
- [Update] Removed "Tax Center" button from Main Menu and moved "Distribution Center" into its previous slot (Slot 23).
- [Update] Moved "Recipes Wiki" button to Slot 40 in the Main Menu GUI.
- [Update] Refactored factory display names in Employees Center GUI to remove factory IDs and [Player] tags from titles, favoring custom display names.
- [Update] Refactored factory display in Invoice Center GUI lore to use custom display names (or type names) instead of raw IDs.
- [Update] Added support for item quantities in Distribution Center demands (format: resource_id amount).
- [Update] Refreshed all sample events in event.yml with balanced resource quantities and payout offers.
- [Update] Updated DistributionCenterGUI and DistributionManager to correctly parse and display these resource quantities.
- [New] Added "Timer Reminder BossBar" system for active distribution requests:
- Displays a real-time countdown bossbar for each active delivery request.
- Added `distribution.bossbar` configuration in `config.yml` to fully control the bossbar color (e.g., BLUE), style (e.g., SOLID), and title format (supports `{event_name}` and `{time}`).
- Added "Toggle Timer Reminder" button (Clock) at Slot 31 in the Distribution Center GUI.
- Feature is disabled by default; player toggle state is saved across sessions.
- Dynamic update: Bossbars will appear/disappear immediately when the feature is toggled, even for pre-existing active requests.
- Automatic cleanup of bossbars when requests expire or are completed.
- [Change] change default tax rate from 25% to 5% and default tax interval from 3 days minecraft to 1 day real life.
- [New] Added configurable distribution event messages in `language.yml` (spawn, complete, leave) with support for {player}, {company}, and {event} placeholders for personalized player notifications.
- [New] Added "Distribution Master" daily quest - Complete 20 delivery requests from the Distribution Center to earn 150 EXP and $10,000.
- [Update] Refactored Daily Quest configuration: Moved bonus reward, sound effects, and notification settings from `daily-quest.yml` to `config.yml` under the `daily-quest` section for more centralized management.
- [Update] Updated DailyQuestManager to dynamically read these settings from the main configuration file.
- [New] Added "Distribution Tycoon" achievement - Earn a total of $500,000 from distribution center events.
- [New] Added "Distribution Logistics Optimization" research to `research.yml` which reduces the distribution tax rate per level.
- [Update] Modified `DistributionManager` tax calculation: the research reduces the *percentage points* of the default tax rate (e.g., if default is 25% and research reduction is 5%, the new rate becomes 20%).
- [Update] Refactored admin research commands: `/fc admin research <upgrade|set>` now uses `<player>` instead of `<factory_id>` to match the global-player nature of research buffs. Includes improved tab completion for players and research IDs.
- [Update] Updated `/fc admin tax assess` to support an optional `<factory_id>` argument, allowing admins to manually assess taxes for a specific factory (works for both admin-created and player-created factories).
- [Bugfix] Fixed Distribution Center BossBar timer not disappearing immediately upon request expiration (now updates every second).
- [Change] Renamed raw resource IDs (iron_ore, coal_ore, copper_ore, gold_ore, diamond_ore, redstone_dust) to `industrial_` prefix (e.g., `industrial_iron_ore`) to avoid confusion with vanilla materials.
- [Update] Synchronized all recipe inputs/outputs, Smeltery recipe IDs, and distribution event demands to match the new resource ID naming convention.
- [Update] Overhauled Factory System to be fully dynamic:
- Refactored `FactoryType` from a hardcoded Enum to a flexible registry class.
- All factory types are now loaded dynamically from the `factory-types` section in `config.yml`.
- Admin can now add new factory categories (e.g. Assembly Plant, Robotics Complex) without any Java code modifications.
- Integrated dynamic loading into `/fc admin reload`, allowing for real-time category updates.
- Expanded `FactoryTypeSelectGUI` from 27 to 54 slots, increasing selection menu capacity to 28 factory types.
- [Bugfix] Fixed an issue where newer factory categories (like Aerospace Foundry) were not visible in the creation menu.
- [Change] Updated default icons for Automotive Plant (MINECART) and Aerospace Foundry (ENDER_CHEST) in config.yml.
- Successfully validated build with a clean Maven package cycle.
- [Update] Redesigned Recipes Wiki Detail View with a "Crafting Table" style layout:
- Visual 3x3 input grid, arrow, and output slot for a more intuitive crafting experience.
- Consolidates multiple recipes into interactive pages with "Previous Recipe" and "Next Recipe" navigation.
- Enhanced item lore in the detail view showing amounts, rarities, and unit prices for all ingredients.
- Recipe metadata (factory, time, cost) now displayed on the central arrow and info panel.
- [New] Additional "Distribution Offers" toggle:
- Added a new toggle in the Distribution Center GUI (Slot 13, Ender Pearl) to enable or disable new delivery requests.
- When disabled, the system will not generate or send new `event.yml` offers to the player.
- Player toggle state is persisted in `distribution.yml` under the `distribution-toggles` section.
- Integrated with HubClickListener for real-time menu updates and auditory feedback.
- [New] removing nearly all types of resources including the recipes, replacing them with new resources (more balanced), and add 4 new TIER III Factory
- added 3 new resources for refinery factory
- added 12 new resources for steel mill factory
- added 11 new resources for workshop factory
- added 5 new final resources for military factory
- added 6 new final resources for Electronics Assembly factory
- added 5 new final resource for Automotive Plant factory
- added 5 new final resources for Aerospace Foundry