Mineuniverse
Log in Register
Mods

JobsFabric

A comprehensive serverside jobs system with progression, economy rewards, and customizable jobs for Minecraft 1.20.1
by Toastie01
Download Claim this project
74 downloads
0 likes
Updated Jul 6, 2026
0 hypes
Server Utility

JobsFabric - Minecraft Fabric Mod

A comprehensive serverside jobs system with progression, economy rewards, and customizable tasks for Minecraft 1.20.1 Fabric servers.

Minecraft Fabric Java License

🌟 Features

  • Multiple Jobs System: Players can have up to 3 active jobs simultaneously
  • Progressive Leveling: Custom formula-based progression system with configurable requirements
  • Economy Integration: Integrates with Impactor Economy for monetary rewards
  • Anti-Exploit Protection: Prevents farming player-placed blocks and bonemeal abuse
  • Modded Content Support: Fully compatible with modded blocks and items
  • Auto-Detection: Automatically detects all ores, crops, and blocks on server startup
  • Serverside Only: No client-side mod required - works with vanilla clients
  • Customizable Jobs: JSON-based configuration for easy job creation and modification
  • Interactive GUIs: Server-side GUI menus for job management and progress tracking

📋 Available Jobs

Phase 1 (Implemented)

  • ⛏️ Miner: Break ores and stones to level up
  • 🌾 Farmer: Harvest crops and plants
  • 🏗️ Builder: Place blocks to earn progress

Phase 2 (Planned)

17+ additional jobs including Fighter, Fisherman, Hunter, Tamer, and more!

🔧 Dependencies

 
  • Impactor Economy: 5.3.0+ (for economy rewards)

Bundled (Already Included in the Mod)

  • SgUi: 1.2.2+1.20 (for server-side GUIs) - No separate installation needed

Note: These libraries are bundled for convenience. If you experience conflicts with other mods using these libraries, please report the issue on GitHub.

Optional

  • LuckPerms: For permission-based features (planned)

📥 Installation

  1. Download the latest release: JobsFabric-0.1-1.20.1.jar
  2. Place in your server's mods/ folder
  3. Install required dependencies:
    • Fabric API (0.92.6+1.20.1)
    • Impactor Economy (5.3.0+)
  4. Start your server
  5. Configure jobs in config/jobs/

⚙️ Configuration

Configuration files are located in config/jobs/:

Main Config (config.json)

{
  "jobs": {
    "maxActiveJobs": 3,
    "leaveCooldownMinutes": 15,
    "saveProgressOnLeave": true
  },
  "storage": {
    "autoSaveIntervalSeconds": 180
  },
  "autoDetection": {
    "enabled": true,
    "defaultOreProgress": 1.0,
    "defaultCropProgress": 1.0,
    "defaultBlockProgress": 1.0
  }
}
 

Auto-Detection Settings:

  • enabled: Automatically scan registry for ores/crops/blocks on startup
  • defaultOreProgress: Default progress value for auto-detected ores
  • defaultCropProgress: Default progress value for auto-detected crops
  • defaultBlockProgress: Default progress value for auto-detected placeable blocks

Note: Manual config entries always override auto-detected values!

Job Definitions (jobs/*.json)

Each job has its own JSON configuration file with:

  • Progress Formula: Custom mathematical expressions (e.g., 100 * (level^2))
  • Action Types: break, harvest, place, etc.
  • Special Progress: Material-specific multipliers
  • Rewards: Economy rewards per level
  • GUI Configuration: Custom icons and descriptions

Example job structure:

{
  "id": "miner",
  "name": "&6&lMiner",
  "progressFormula": "100 * (level^2)",
  "actionType": "break",
  "xpReward": 0,
  "xpRewardFormula": "",
  "specialProgress": {
    "_ore": 5.0,
    "stone": 1.0
  }
}

🎮 Usage

Player Commands

  • /jobs - Open the jobs menu (GUI)
  • Join jobs by clicking in the GUI
  • View progress and statistics
  • Leave jobs with progress saved

Admin Commands

(Coming in Phase 2)

🚀 Performance Optimizations

This mod includes several performance enhancements:

  • Formula Caching: 50-80% reduction in mathematical calculations
  • Memory Management: Automatic cleanup of tracking data every 5 minutes
  • Dirty Tracking: Only saves modified player data
  • Async Operations: Economy transactions run asynchronously
  • Time-Based Expiry: Old entries auto-expire after 10 minutes

See OPTIMIZATION_REPORT.md for detailed analysis.

🔒 Anti-Exploit Features

  • Block Placement Tracking: Player-placed blocks don't give mining progress
  • Bonemeal Cooldown: 1-second cooldown prevents bonemeal farming
  • Timestamp Tracking: Automatic cleanup prevents memory leaks
  • Validation System: Action-type whitelists prevent invalid progress

🧩 Modded Content Support

The mod fully supports modded blocks and items:

  • Uses full resource identifiers (e.g., modname:copper_ore)
  • Wildcard support (e.g., _ore matches all ores)
  • Automatic compatibility with any mod
  • No additional configuration required

See MODDED_CONTENT_SUPPORT.md for details.

🏗️ Development

Building from Source

# Clone the repository
git clone https://github.com/Toastie0/Jobs.git
cd Jobs

# Build with Gradle
./gradlew build

# Output: build/libs/JobsFabric-0.1-1.20.1.jar
 

Project Structure

src/main/java/net/advancedjobs/
├── AdvancedJobsMod.java          # Main mod entry point
├── config/
│   └── ConfigManager.java         # Configuration loader
├── controller/
│   └── JobController.java         # Core job logic
├── economy/
│   └── ImpactorEconomyHandler.java
├── gui/
│   ├── JobListMenu.java           # Main jobs GUI
│   └── JobProgressMenu.java       # Job details GUI
├── handlers/
│   ├── BlockBreakHandler.java     # Miner job
│   ├── CropHarvestHandler.java    # Farmer job
│   └── BlockPlaceHandler.java     # Builder job
├── objects/
│   ├── Job.java                   # Job data model
│   ├── User.java                  # Player data model
│   └── UserJobInfo.java           # Job progress data
└── storage/
    └── JsonStorageManager.java    # JSON persistence
 

Tech Stack

  • Language: Java 21
  • Build Tool: Gradle 8.8
  • Mod Loader: Fabric
  • GUI Library: SgUi (server-side)
  • Economy: Impactor API
  • Storage: JSON with dirty tracking

📊 Roadmap

Phase 1: Core System ✅

  • <input id="" class="task-list-item-checkbox" checked="checked" disabled="disabled" type="checkbox" aria-label="Completed task"> Job framework
  • <input id="" class="task-list-item-checkbox" checked="checked" disabled="disabled" type="checkbox" aria-label="Completed task"> Progress tracking
  • <input id="" class="task-list-item-checkbox" checked="checked" disabled="disabled" type="checkbox" aria-label="Completed task"> Economy integration
  • <input id="" class="task-list-item-checkbox" checked="checked" disabled="disabled" type="checkbox" aria-label="Completed task"> Basic jobs (Miner, Farmer, Builder)
  • <input id="" class="task-list-item-checkbox" checked="checked" disabled="disabled" type="checkbox" aria-label="Completed task"> Anti-exploit systems
  • <input id="" class="task-list-item-checkbox" checked="checked" disabled="disabled" type="checkbox" aria-label="Completed task"> Performance optimizations

Phase 2: Expansion 🚧

  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> 17+ additional jobs
  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> Job-specific achievements
  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> Leaderboards
  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> Boosters & multipliers
  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> Permission integration

Phase 3: Advanced Features 📋

  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> Custom job creation GUI
  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> Job rewards (items, commands)
  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> Job quests/milestones
  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> Statistics dashboard
  • <input id="" class="task-list-item-checkbox" disabled="disabled" type="checkbox" aria-label="Incomplete task"> API for developers

🤝 Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.

📄 License

This project is licensed under the CC0 1.0 Universal (Public Domain) License - see the LICENSE file for details.

This means you can use, modify, and distribute this mod freely without any restrictions or attribution requirements.

👤 Author

Toastie

🙏 Acknowledgments

  • Fabric Team: For the excellent modding framework
  • Impactor: For the economy API
  • SgUi: For server-side GUI capabilities
  • Minecraft Modding Community: For resources and support

📞 Support

For issues, questions, or suggestions:


Note: This mod is serverside only. Players with vanilla Minecraft clients can join and use all features without installing anything.

JobsFabric-0.1-1.20.1.jar
MC Fabric, 1.20.1, Server
Release 2026-01-15 Get

You Might Also Like

APTweaks: Items (11.x Classic)
Item clustering (fallen blocks, experience orbs, ...) and garbage cleanup.
9,884,514
VanillaDeathChest (Fabric)
Places containers when players die that contain their items.
994,762
Styled Nicknames
Simple, but configurable nicknaming mod allowing your server's players (and admins) to change their nickname with full formatting support
989,499
Tiquality
Make server lag the problem of the source player.
99,489
Blame (Fabric)
Those gosh darn crashlogs not saying which worldgen feature is crashing!
99,012
Weathering with You
Forecast Minecraft weather with a radar or a hat!
98,579