Economy and city hooks

Cash, bank, commerce, property, law, city systems, medical, taxi, contracts, chat and phone events.

Hooks and payloads

All channels on this page run synchronously on the host. Requested payloads inherit LitherarpCancelableRequest unless the row describes another mutable decision.

HookPayload and public membersTiming and effect
MoneyChangedLitherarpMoneyChangedEvent
Player, Delta, NewBalance
Post-event for any wallet change. This is a high-frequency channel.
BalanceChangeRequestedLitherarpBalanceChangeRequest
Player, Kind, PreviousBalance, RequestedBalance, NewBalance, RequestedDelta, Delta, Reason; SetNewBalance, Deny
Universal cancelable cash or bank mutation before commit. Persistence restore is excluded. Compound operations preflight every leg.
ShopPurchaseRequestedLitherarpShopPurchaseRequest
Player, EntryId, Cost, Deny
Cancelable before a spawn shop entity purchase.
ShopPurchaseCompletedLitherarpShopPurchaseCompletedEvent
Player, EntryId, Cost
Post-event after money and entity spawn commit.
DealerPurchaseRequestedLitherarpDealerPurchaseRequest
Player, Kind, ItemId, Price, Deny
Cancelable before a native NPC dealer charges the player.
DealerPurchaseCompletedLitherarpDealerPurchaseCompletedEvent
Player, Dealer, ProductKind, ProductId, Quantity, AmountPaid
Host post-event after successful debit and delivery by the native weapon or food dealer. It covers weapons, ammo, kevlar, food, phones and backpacks. Quantity is the amount actually delivered after inventory policy; direct weapon, phone and backpack delivery reports one. AmountPaid is the amount actually charged after BalanceChangeRequested.
DrugSaleRequestedLitherarpDrugSaleRequest
Player, DealerKind, Deny
Cancelable before contraband items are consumed.
DrugSaleCompletedLitherarpDrugSaleCompletedEvent
Player, DealerKind, UnitsSold, Earnings
Post-event after sale completion.
PrinterCollectRequestedLitherarpPrinterCollectRequest
Player, Amount, Deny
Cancelable before stored printer money is credited. A denial leaves it stored.
PrinterMoneyCollectedLitherarpPrinterMoneyCollectedEvent
Player, Amount
Post-event after printer collection.
PropertyPurchaseRequestedLitherarpPropertyPurchaseRequest
Buyer, PropertyId, Price, Deny
Cancelable before charging for a door group, single door or penthouse.
PropertyPurchasedLitherarpPropertyPurchasedEvent
Buyer, PropertyId, Price
Post-event after ownership commits.
PropertySoldLitherarpPropertySoldEvent
nullable Seller, SellerSteamId, PropertyId, Refund
Post-event after release or eviction. Offline sellers have no pawn and receive no in-memory refund.
BankBalanceChangedLitherarpBankBalanceChangedEvent
Player, Delta, NewBalance
Post-event for any bank change. The game permits bank debt.
BankOperationRequestedLitherarpBankOperationRequest
Player, Kind, Amount, Deny
Cancelable before an ATM deposit or withdrawal.
BankTransferRequestedLitherarpBankTransferRequest
Sender, RecipientName, Amount, Deny
Cancelable before a player-to-player wire commits.
SalaryPaymentRequestedLitherarpSalaryPaymentRequest
Player, JobId, Amount; SetAmount, Deny
Cancelable before any leg of the salary movement. Amount is the post-tax base before a mayor bonus.
CuffRequestedLitherarpCuffRequest
Officer, Target, Deny
Cancelable before cuffing.
PlayerCuffedLitherarpPlayerCuffedEvent
nullable Officer, Target
Post-event after cuff state commits.
PlayerUncuffedLitherarpPlayerUncuffedEvent
Target
Post-event for normal uncuff and struggle escape.
JailRequestedLitherarpJailRequest
Target, nullable Officer, Reason, DurationSeconds; SetDurationSeconds, Deny
Cancelable before arrest or admin jail commits.
PlayerJailedLitherarpPlayerJailedEvent
Target, nullable Officer, Reason, DurationSeconds
Post-event after jail state commits.
PlayerReleasedLitherarpPlayerReleasedEvent
Target
Post-event after timer, admin or reconnect release.
ArrestRequestedLitherarpArrestRequest
Officer, Target, ArrestId, Label, DurationSeconds, Deny
Cancelable before an officer arrests a cuffed player.
FineRequestedLitherarpFineRequest
Officer, Target, FineId, Label, Amount, Deny
Cancelable before a fine is applied.
FineIssuedLitherarpFineIssuedEvent
Officer, Target, FineId, Label, Amount, FromCash, FromBank
Post-event after fine payment allocation.
WarrantRequestedLitherarpWarrantRequest
Officer, TargetSteamId, TargetName, Reason, Deny
Cancelable before a warrant enters the system.
WarrantIssuedLitherarpWarrantIssuedEvent
RequesterSteamId, TargetSteamId, TargetName, Reason
Post-event for a pending mayor-approval warrant.
RawChatInputRequestedLitherarpRawChatInputRequest
Player, Text, integer Channel, IsProtectedSystemInput, IsConsumed; SetText, SetChannel, Consume, Deny
Global host input before addon and built-in command dispatch. Text mutations reject blank input and cap it at 300 characters; channels accept 0 through 2. Protected admin-ticket input is observable, but mutation, consumption and denial are ignored by the protected core path.
ChatMessageRequestedLitherarpChatMessageRequest
Player, Text, integer Channel; SetText, SetChannel, Deny
Cancelable after sanitize, mute and spam gates, before dispatch. Addon commands are consumed first. SetText rejects blank input and caps it at 300 characters; SetChannel accepts 0 through 2.
ChatMessageSentLitherarpChatMessageSentEvent
Player, Text, integer Channel
Post-event after channel dispatch.
VoteStartedLitherarpVoteStartedEvent
Kind, InitiatorSteamId, TargetSteamId, Subject
Post-event when a job or demote vote opens.
VoteFinishedLitherarpVoteFinishedEvent
Kind, Passed, Yes, No, TargetSteamId
Post-event when a vote concludes.
LotteryEndedLitherarpLotteryEndedEvent
WinnerSteamId, WinnerName, Payout
Post-event after the lottery draw.
HeistStartedLitherarpHeistStartedEvent
Actor, Payout
Post-event when the City Hall vault opens.
HeistEndedLitherarpHeistEndedEvent
no members
Post-event when the heist vault resets.
LawToggledLitherarpLawToggledEvent
LawId, IsActive, Mayor
Post-event after a predefined law changes.
TaxRateChangedLitherarpTaxRateChangedEvent
NewRate, Mayor
Post-event after the mayor changes tax rate.
GroupBankOperationRequestedLitherarpGroupBankOperationRequest
Actor, AccountId, Kind, Amount, Deny
Cancelable before group-account checks and movement.
GroupBankOperationCompletedLitherarpGroupBankOperationCompletedEvent
Actor, AccountId, AccountName, Kind, Amount, NewBalance
Post-event after group-account commit.
ReviveRequestedLitherarpReviveRequest
Medic, nullable Target, Deny
Cancelable before the medic success roll.
ReviveCompletedLitherarpReviveCompletedEvent
Medic, nullable Target, Success, Reward
Post-event after the revive attempt, including a failed roll.
ClinicHealRequestedLitherarpClinicHealRequest
Player, Cost, HealAmount, Deny
Cancelable before the clinic charges the player.
ClinicHealCompletedLitherarpClinicHealCompletedEvent
Player, Cost, HealAmount
Post-event after paid healing.
TaxiFareRequestedLitherarpTaxiFareRequest
Passenger, Fare, Deny
Cancelable before fare billing.
TaxiFareCompletedLitherarpTaxiFareCompletedEvent
Passenger, nullable Driver, Fare, PaidToDriver
Post-event after billing. The driver may already be gone.
HitContractRequestedLitherarpHitContractRequest
Client, Hitman, Target, Amount, Reason, Deny
Cancelable before a new contract charges its client.
HitContractAcceptedLitherarpHitContractAcceptedEvent
ClientSteamId, HitmanSteamId, TargetSteamId, TargetName, Amount
Post-event after a hitman accepts.
HitContractCompletedLitherarpHitContractCompletedEvent
nullable Hitman, HitmanSteamId, ClientSteamId, TargetSteamId, TargetName, Amount
Post-event after target death and payout.
HitContractCancelledLitherarpHitContractCancelledEvent
ClientSteamId, HitmanSteamId, TargetSteamId, Amount, Refunded
Post-event after cancel, refusal or expiry.
DrugCollectRequestedLitherarpDrugCollectRequest
Player, Kind, Deny
Cancelable before collecting finished weed or meth products.
DrugProducedLitherarpDrugProducedEvent
Player, Kind, ItemId, Quantity, Purity
Post-event when a player-owned drug drop enters the world.
PhoneCallRequestedLitherarpPhoneCallRequest
Caller, PeerSteamId, Deny
Early cancelable hook before callee reachability gates.
PhoneCallAcceptRequestedLitherarpPhoneCallAcceptRequest
Accepter, Caller, Deny
Cancelable after both players resolve, before the ringing call becomes connected.
PhoneCallStartedLitherarpPhoneCallStartedEvent
CallerSteamId, AccepterSteamId
Post-event after both sides connect.
PhoneCallEndingLitherarpPhoneCallEndingEvent
EnderSteamId, PeerSteamId
Notification immediately before a connected call or unanswered ring is cleared. This event is not cancelable.
PhoneCallEndedLitherarpPhoneCallEndedEvent
EnderSteamId, PeerSteamId
Post-event after a call or unanswered ring ends. Peer id zero means an unanswered ring.
PhoneMessageRequestedLitherarpPhoneMessageRequest
Sender, PeerSteamId, Body; SetBody, Deny
Cancelable after reachability gates, before delivery. SetBody rejects blank text.
PhoneMessageSentLitherarpPhoneMessageSentEvent
Sender, PeerSteamId, Body
Post-event after delivery.

Economy enums

TypeValues
LitherarpBalanceKindCash, Bank.
LitherarpBankOperationKindDeposit, Withdraw.
LitherarpDealerPurchaseKindWeapon, Ammo, Kevlar, Phone, Backpack, Food.
LitherarpNpcPurchaseDealerWeapon, Food.

Balance atomicity

BalanceChangeRequested is the final gameplay cash and bank policy point. Compound operations preflight every balance leg before any leg commits. Use the specific purchase or salary hook for domain intent, and use the balance hook only when the rule truly applies to every balance mutation.