promotional bannermobile promotional banner

EasyMoneyAddon

EasyMoney Addon connects Easy NPC, DiceMCMM, z_dicemoneyaddon, and FTB Quests. It adds money actions, an interactive NPC bank, and FTB Quests tasks that complete from NPC interactions or EasyMoney actions.
Back to Files

easymoneyaddonmod-0.3.7.jar

File nameeasymoneyaddonmod-0.3.7.jar
Uploader
PoppawoodyPoppawoody
Uploaded
Sep 17, 2026
Downloads
19
Size
111.2 KB
Mod Loaders
NeoForge
File ID
8900007
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:easymoneyaddon-1694769:8900007"

Learn more about Curse Maven

What's new

Requirements

Install the same EasyMoney Addon, Easy NPC, and FTB Quests versions on the dedicated server and every client. DiceMCMM and z_dicemoneyaddon run on the server and provide the player-money account used by all payments and banks.

Location Required mods
Server EasyMoney Addon, Easy NPC, FTB Quests, DiceMCMM, z_dicemoneyaddon
Client EasyMoney Addon, Easy NPC, FTB Quests

The mod's common configuration is created at config/easymoneyaddonmod-common.toml after the first server start.

NPC Bank

Each NPC can be a separate bank. Individual players retain their own accounts until they join an FTB Teams party or server team; then every member of that team shares one joint savings account at each NPC bank. Leaving a team returns the player to their individual account without deleting the joint account.

Fastest setup: open the bank on interaction

This is the recommended setup. It uses the existing Easy NPC editor and requires no commands, UUIDs, or dialog configuration.

  1. Edit the NPC with the Easy NPC configuration GUI.
  2. Open Action Events, then select On Interaction.
  3. Add an action and select Custom as its action type.
  4. Enter easymoneyaddonmod:bank_menu as the custom action ID. Leave arguments empty.
  5. Do not select Command. Commands are intentionally guarded by Easy NPC's command allowlist and cannot invoke the bank action.
  6. Remove any Open Default Dialog or Open Trading Screen action from this event, or move bank_menu below them so it executes last.
  7. Save the NPC.

Right-clicking the NPC now opens the bank menu. The bank menu contains deposit and withdrawal controls for 1, 10, 100, 1,000, and all available money, plus wallet and savings balances.

Easy NPC 7.11.0 does not offer an API that lets add-ons insert a new configuration tab or checkbox in its editor. Action Events -> On Interaction -> Custom Action -> bank_menu is the supported in-GUI equivalent of enabling the bank option for an NPC. It stores the setup with the NPC, survives restarts, and works with every Easy NPC type.

Dialog-button setup

Use this when the player should read NPC dialogue and explicitly select a bank option.

  1. Edit the NPC, then create or select a dialog in the Easy NPC dialog editor.
  2. Add a dialog button, such as Open Bank.
  3. Configure that button's action type as Custom (not Command).
  4. Enter easymoneyaddonmod:bank_menu with no arguments.
  5. Save the dialog and NPC.

The player opens the dialogue normally and selects the button to open the same bank menu. You can freely customize the dialog text, button text, NPC appearance, and other dialog buttons.

Bank action IDs

The bank menu is the simplest setup. The fixed-value actions remain available for custom dialog flows.

Action ID Arguments Result
easymoneyaddonmod:bank_menu None Opens the interactive bank menu.
easymoneyaddonmod:bank_deposit <amount> Deposits exactly that amount.
easymoneyaddonmod:bank_withdraw <amount> Withdraws exactly that amount.
easymoneyaddonmod:bank_balance None Shows current savings balance in chat.
easymoneyaddonmod:loan <amount> Issues a player loan, up to maxLoanAmount.
easymoneyaddonmod:repay_loan <amount> Repays an outstanding player loan.
easymoneyaddonmod:bounty_menu None or <max_bounty> Opens the interactive bounty board. An optional positive cap overrides the global menu cap for this NPC.
easymoneyaddonmod:gambling_menu None or <max_bet> Opens the interactive dice/coin-flip table. An optional positive cap overrides the global menu cap for this NPC.
easymoneyaddonmod:place_bounty <online-player> <amount> Escrows money as a bounty on another online player.
easymoneyaddonmod:cancel_bounty <online-player> Cancels and refunds the caller's bounty on an online player.
easymoneyaddonmod:claim_bounty None Claims rewards earned by killing bounty targets.
easymoneyaddonmod:gamble_dice <bet_amount> Rolls a server-side die using the configured win threshold and gross payout.
easymoneyaddonmod:gamble_coin_flip <bet_amount> Runs a server-side coin flip using the configured chance and gross payout.

Amounts must be finite positive decimal numbers. For example, use 1010.5, or 250.00. Amounts are stored and processed to two decimal places.

Bank safety and configuration

These server-wide settings apply to every NPC bank:

Config key Default Meaning
transactionCooldownSeconds 1 Minimum time between successful transactions at an NPC. 0 disables it.
dailyDepositLimit 0.0 Per-player, per-NPC UTC-day deposit cap. 0 means unlimited.
dailyWithdrawLimit 0.0 Per-player, per-NPC UTC-day withdrawal cap. 0 means unlimited.
transactionFeePercent 0.0 Percentage removed from deposits and withdrawals.
dailyInterestPercent 2.0 Compounded interest added after each completed 24-hour period.
dailyInterestFluctuationPercent 0.0 Maximum random daily variation above or below the base interest rate.
maximumSavingsBalance 0.0 Maximum savings at one NPC bank. 0 means unlimited.
maxLoanAmount 0.0 Maximum outstanding player loan. 0 disables loans.
loanInterestRatePercent 0.0 Interest added to a loan when it is issued.
loanRepaymentPeriodDays 7 Days to repay before bank services are blocked.
maxGambleBet 0.0 Default menu and fixed-action wager cap; 0 disables no-argument gambling menus and legacy actions.
dailyGamblingLossLimit 0.0 Maximum net gambling loss per player per UTC day; 0 is unlimited.
gamblingCooldownSeconds 0 Minimum delay between any dice or coin-flip wager.
wagerIncrementOne 10.0 First shared wager/bounty-menu increment and decrease amount.
wagerIncrementTwo 100.0 Second shared wager/bounty-menu increment.
wagerIncrementThree 1000.0 Third shared wager/bounty-menu increment.
diceWinThreshold 4 Dice values at or above this value win.
dicePayoutMultiplier 2.0 Gross wallet payout for a winning dice wager.
coinFlipWinChancePercent 50.0 Server-side coin-flip win chance.
coinFlipPayoutMultiplier 2.0 Gross wallet payout for a winning coin flip.
casinoHouseEdgePercent 5.0 Percentage deducted from configured winning gambling payouts; 0 preserves fair configured odds.
maxBountyAmount 0.0 Default menu and fixed-action bounty cap; 0 disables no-argument bounty menus and legacy actions.
bountyExpirationDays 7 Days before an unclaimed bounty expires and refunds its payer.
bountyCooldownSeconds 0 Minimum delay between bounty placements.
bountyRepeatKillCooldownSeconds 0 Delay before a killer may receive another bounty for the same victim.
bountyMinimumKillerPlaytimeMinutes 0 Tracked playtime required before a killer can earn rewards.
bountyDisallowSameFtbTeam false Rejects rewards for kills within the same FTB Teams party or server team.
requiredPermissionLevel 0 Vanilla permission level required to use a bank. 0 allows all players.

For a deposit fee, the player pays the entered amount and the account receives the amount after the fee. For a withdrawal fee, the account loses the entered amount and the player receives the amount after the fee. If a fee would leave no money to credit or pay, the transaction is rejected.

Bank menus remain valid only while the player is within 8 blocks of the source NPC. They close if the player walks away or the NPC is no longer available. Shift-clicking cannot move bank-menu items. Successful and rejected transactions are written to the server log as BANK_AUDIT.

Savings data is stored with the overworld in easymoneyaddonmod_npc_banks. It persists through restarts. Interest is calculated from real time, including time while the server is offline.

Gambling and bounties

Gambling and bounties are disabled by default. They are NPC Custom Actions, so players use them through dialog buttons rather than chat commands.

Server setup

  1. Start the server once so it creates config/easymoneyaddonmod-common.toml.

  2. Stop the server and open that file. In the [bank] section, set a nonzero maxGambleBet to enable no-argument gambling actions and a nonzero maxBountyAmount to enable no-argument bounties. For example:

    [bank]
    maxGambleBet = 100.0
    maxBountyAmount = 500.0
    dailyGamblingLossLimit = 250.0
    gamblingCooldownSeconds = 10
    wagerIncrementOne = 10.0
    wagerIncrementTwo = 100.0
    wagerIncrementThree = 1000.0
    diceWinThreshold = 4
    dicePayoutMultiplier = 2.0
    coinFlipWinChancePercent = 50.0
    coinFlipPayoutMultiplier = 2.0
    casinoHouseEdgePercent = 5.0
    bountyExpirationDays = 7
    bountyCooldownSeconds = 30
    bountyRepeatKillCooldownSeconds = 300
    bountyMinimumKillerPlaytimeMinutes = 60
    bountyDisallowSameFtbTeam = true
    
  3. Start the server again. Alternatively, an operator can apply each setting immediately with /easymoney admin set <setting> <value>; for example, /easymoney admin set maxGambleBet 100.

  4. Edit an Easy NPC, create or select a dialog, and add a Custom--not Command--button using easymoneyaddonmod:bounty_menu or easymoneyaddonmod:gambling_menu. Leave arguments empty to use global caps, or enter one positive cap to give that NPC a specific limit. Save the dialog and NPC.

Existing buttons configured as Command actions with exactly one of those menu IDs also open the matching menu for backward compatibility, but new buttons should use Custom.

maxGambleBet and maxBountyAmount are the global defaults and caps for the fixed legacy actions. A menu's one optional Custom Action argument overrides its cap, so a casino or bounty NPC can have its own positive limit even when the global default is 0. Set dailyGamblingLossLimit to 0 for no daily loss cap. A cooldown of 0 disables that action's cooldown.

Creating NPC buttons

Create a button for each service using the following Custom action IDs. The interactive menu actions require no arguments:

Button example Custom action ID Arguments
Open bounty board easymoneyaddonmod:bounty_menu None, or one positive <max_bounty>
Open game table easymoneyaddonmod:gambling_menu None, or one positive <max_bet>

The fixed-value place_bountycancel_bountyclaim_bountygamble_dice, and gamble_coin_flip actions remain available for custom dialog flows. Fixed actions always use the global caps.

Player guide

Dice and coin-flip gambling

  1. Visit the NPC and open the dice table.
  2. Use the three configured Add buttons, Decrease, and Reset Wager to set the wager. The displayed cap is enforced by the server.
  3. Select Dice or Coin Flip, then select Play. The wager is immediately removed from your DiceMCMM wallet. Dice win at or above the configured threshold; coin flips use the configured server-side chance. A win pays the configured gross multiplier, while a loss loses the stake.
  4. Both games share the configured cooldown and UTC-day net-loss limit.

Bounties

  1. Visit the bounty NPC and open the bounty board.
  2. Use the configured AddDecrease, and Reset Bounty controls. The board shows every other online player's head, current active bounty total, and earliest remaining contract time.
  3. Select a player's head, then select Confirm Bounty. Confirmation is required before money is removed from your wallet and held in escrow. Select Claim Rewards to collect rewards you have already earned.
  4. Another player must directly kill that target player. The killer earns all active bounties on the victim; self-kills do not award them.
  5. The killer visits the NPC and selects Claim Rewards to receive the accumulated reward in their wallet.
  6. Select View My Contracts to see your active contracts, each refund total and remaining time, including offline targets. Select a contract and then Confirm Cancel / Refund to cancel it from the UI. The legacy cancel_bounty <online-player> action remains available.
  7. If a bounty expires first, it is returned to the payer as a claimable bounty reward; use Claim Rewards to collect it.

Bounty anti-farming semantics

A bounty is awarded only for a direct player kill after the killer passes the configured minimum playtime, optional same-FTB-Team restriction, and killer/victim repeat-kill cooldown. A rejected kill does not consume or refund the victim's active contracts: they remain available for a later eligible kill or normal expiry. The repeat cooldown starts only when a bounty was actually awarded, so ordinary kills cannot block a valid future reward.

FTB Teams server-team bank

Every FTB Teams server team receives a separate bank account when the server starts or as soon as it is created. Team members can deposit their own wallet money; officers and owners can also withdraw money:

/easymoney team-bank <server_team> balance
/easymoney team-bank <server_team> deposit <amount>
/easymoney team-bank <server_team> withdraw <amount>
/easymoney team-bank <server_team> ledger
/easymoney team-bank <server_team> menu

Bank balances and the interactive team-bank menu are operator-only. Operators may use /easymoney team-bank <server_team> or /bank <server_team> as balance shortcuts.

Deposits require server-team membership. Withdrawals require an officer, owner, or vanilla permission-level-2 operator. These commands do not use or alter NPC bank savings accounts. Team-bank balances persist with the overworld in easymoneyaddonmod_team_banks.

ledger shows the ten newest deposits, withdrawals, admin changes, and DiceMCMM admin-shop sale proceeds. menu opens a button-based interface for the same deposit and withdrawal operations. Operators can view or set any server-team bank, including offline teams:

/easymoney admin team-bank <server_team> balance
/easymoney admin team-bank <server_team> set <amount>

DiceMCMM server-sell admin shops in a chunk claimed by a server team deposit a successful sale's proceeds into that claiming server team's bank instead of the seller's wallet. Admin shops outside a server-team claim retain DiceMCMM's normal seller payout.

An operator can explicitly route one nearby activated server-sell shop to a server team, independent of claims:

/easymoney admin admin-shop assign <server_team>

Stand within 8 blocks of the shop sign when running the command.

Money actions

Add an Easy NPC Custom Action and set one of the following IDs:

Action ID Arguments Result
easymoneyaddonmod:spend <amount> Removes money from the interacting player.
easymoneyaddonmod:pay <amount> Charges the player's DiceMCMM wallet as payment to this NPC.
easymoneyaddonmod:complete_task <ftb-task-id> Completes an available FTB Quests task.
easymoneyaddonmod:pay_for_task <amount> <ftb-task-id> Charges money and completes the task atomically.

pay_for_task checks the task before taking money. If the task ID is invalid, unavailable, locked by quest progression, or already complete, it does not charge the player. Task IDs are decimal FTB task IDs, not quest IDs.

Selling an NPC item or service

Add easymoneyaddonmod:pay as a Custom action on the dialog button or interaction with the price as its only argument. It debits the player's DiceMCMM wallet only when it has the full price. Use pay_for_task for a service that should also complete an FTB Quests task. Configure paid item or service rewards through the corresponding FTB Quests reward, since Easy NPC action sequences do not conditionally stop later actions when a custom action rejects payment.

FTB Quests integration

Easy NPC Interaction task

The addon adds the Easy NPC Interaction task type to FTB Quests.

  1. Create and save the Easy NPC.
  2. In FTB Quests edit mode, add an Easy NPC Interaction task to a quest.
  3. Set the task's npc_uuid field to the NPC entity UUID.
  4. Save and exit edit mode.

Right-clicking that NPC completes every available matching task for the interacting player's FTB team. This works with Basic Dialogue, configured dialog, direct-open banks, and dialog-button banks. The task writes actual completed FTB progress and triggers normal FTB Quests completion events, rewards, and notifications.

To find the UUID, right-click the NPC and locate this Easy NPC server-log format:

Opening menu <menu-uuid> for npc <npc-entity-uuid> and player <player>

Use the value after for npc, not the menu UUID, NPC display name, dialog ID, or FTB task ID. An empty npc_uuid intentionally never matches an NPC.

Easy NPC Custom Action task

The Easy NPC Custom Action task completes when a configured EasyMoney Addon action successfully runs at a configured NPC.

  1. Add Easy NPC Custom Action to the FTB Quest.
  2. Set npc_uuid to the NPC entity UUID.
  3. Set action_id to an action ID, such as easymoneyaddonmod:bank_deposit.

For bank_menu, the task completes when the bank menu opens. For deposit or withdrawal tasks, it completes only when the transaction succeeds.

Easy NPC Payment task

The Easy NPC Payment task completes when a player successfully spends, pays, or uses pay_for_task at the configured NPC for at least minimum_amount. Set npc_uuid to the NPC entity UUID and set the minimum payment required. This is useful for paid NPC items, services, and access fees.

Easy NPC Bank Transaction task

The Easy NPC Bank Transaction task completes after a successful bank deposit or withdrawal at the configured NPC. Set operation to depositwithdraw, or either, and set minimum_amount to require a minimum transaction size. The task never completes from a rejected transaction.

Easy NPC Wealth Milestone task

The Easy NPC Wealth Milestone task completes once a player or their FTB Team's combined savings across every NPC bank reaches required_savings. It is evaluated after each successful deposit.

Tax districts

Tax districts are assigned to individual bank NPCs and owned by FTB server teams. Stand within 8 blocks of a bank NPC and run this operator command:

/easymoney district set <server_team> <tax_percent>

For example, /easymoney district set mayor 5 assigns a 5% district tax to the nearby NPC bank. The tax is deducted after the normal bank fee from deposits and withdrawals. Collected district tax is stored in the server's persistent district ledger.

Administration and ledgers

Operators can change bank settings without restarting with:

/easymoney admin set <setting> <value>

Supported settings are transactionCooldownSecondsdailyDepositLimitdailyWithdrawLimittransactionFeePercentdailyInterestPercentdailyInterestFluctuationPercentmaximumSavingsBalancemaxLoanAmountloanInterestRatePercent, and loanRepaymentPeriodDaysmaxGambleBetdailyGamblingLossLimitgamblingCooldownSecondswagerIncrementOnewagerIncrementTwowagerIncrementThreediceWinThresholddicePayoutMultipliercoinFlipWinChancePercentcoinFlipPayoutMultipliercasinoHouseEdgePercentmaxBountyAmountbountyExpirationDaysbountyCooldownSecondsbountyRepeatKillCooldownSeconds, and bountyMinimumKillerPlaytimeMinutesbountyDisallowSameFtbTeam is a boolean common-config setting and is not changed by this numeric command.

/easymoney ledger <online-player> shows that player's current individual or joint savings ledger and outstanding loan.

Command autocomplete and permissions

/easymoney is visible in chat command suggestions. The ledgeradmin, and district subcommands require vanilla permission level 2 (operator). Tab completion suggests online player names for /easymoney ledger and supported setting names for /easymoney admin set.

Troubleshooting

Problem Check
bank_menu does nothing Confirm the action type is Custom, not Command; the action ID must be exactly easymoneyaddonmod:bank_menu with no arguments. A Blocked execute-as-player command log warning confirms that Command was selected.
Bank opens but buttons reject transactions Check money balance, cooldown, daily limits, fee, and required permission level in the common config.
Menu closes immediately Stand within 8 blocks of the configured NPC and confirm it is loaded.
FTB task does not complete Use Easy NPC Interaction, set the entity UUID, leave FTB edit mode, and confirm the quest is unlocked.
Wrong NPC completes a task Recheck npc_uuid; it must be the entity UUID after for npc in the Easy NPC log message.
Changes to config do not apply Restart the server after editing the common config.

When an NPC interaction completes a matching FTB task, the server log includes:

Completed <count> Easy NPC interaction task(s) for player <player> at NPC <npc-uuid>

If this message appears but the task remains incomplete, verify the server and client both use the same current addon jar and that there is only one EasyMoney Addon jar in the server's mods folder.

This mod has no additional files