How to Set Up a Lineage 2 Donation Shop That Players Trust

A Lineage 2 donation shop is how most private servers pay for the dedicated box, the DDoS protection and the domain. It is also where a lot of them quietly kill their own population. This guide covers the three parts you actually have to build: the in-game shop (multisell), the payment-to-item pipeline, and the rules for what you put on the shelf. It also covers the legal exposure nobody likes to talk about.
Build the shop on multisell, not a custom store
Every L2J-family emulator, from Interlude packs through High Five and later, already ships the mechanism you need: the multisell. The L2J datapack documentation describes it as a "special" shop where the player hands over items called ingredients and gets back items called products. One entry can take several ingredients and give several products. Each list is an XML file named after its numeric multisell ID.
That model fits a donation shop well. You create a custom "Donate Coin" item, make it the ingredient, and the reward is the product. No adena involved, no new Java code, no custom packet. A thread on the L2 Extender project's Bitbucket gives the same advice: a multisell NPC in each town is the quick way to sell donation items.
The list attributes are where owners slip up. Two of them default to false, and you should know what each does before touching it:
- applyTaxes: when on, the adena price is taxed and the tax goes to the castle that owns the area. Ancient Adena costs get taxed partly in regular adena. Leave this off for a coin shop. Otherwise the price a donor pays shifts with whoever holds the castle that week.
- maintainEnchantment: when on, in inventory-only mode, the product keeps the enchant level of the weapon or armor given in. The docs' example turns a Crystal Staff +3 into a Crystal Staff with Body Bless +3. This is the attribute you want for exchanges where a player swaps a gear piece for a variant without losing the enchant.
Tip: read the documentation.txt in your own fork's multisell folder before copying lists from a forum. Attribute names and the item schema can differ between datapacks.
Full list vs inventory-only mode
The datapack exposes two bypasses, and they behave differently:
| Bypass | What the player sees | Use it for |
|---|---|---|
npc_%objectId%_multisell | The whole list as written in the XML | A normal coin shop: buffs, cosmetics, consumables |
npc_%objectId%_exc_multisell | Only entries whose ingredients are unequipped weapons or armor in the player's inventory | Exchanges and upgrades, paired with maintainEnchantment |
Keep the two apart. A window that mixes coin purchases with gear exchanges confuses players, and confused players open tickets.

Get the payment to the item without a GM
The multisell only spends coins. Getting coins onto the account after someone pays is the harder half, and it is where manual setups break down. If a GM has to read a payment email and run an admin command, donors wait hours.
You have three realistic routes:
- A ready-made panel. VDSystem on GitHub (nightw0lv) lists support for DenArt Designs Automatic Donation Panels on Mobius projects. Paid options exist too. One example is a Node.js web community board for Interlude sold on Gumroad that offers Stripe donations with a "donate and claim rewards" flow.
- Your own webhook handler. The payment provider calls your endpoint, you verify the call, write a pending reward row to the database, and the player claims it in game. A claim step is safer than pushing items into a live inventory.
- Manual delivery. Fine for the first week of a tiny server. Past that it does not scale, and it puts a lot of trust in a GM account.
Whatever you pick, log every transaction ID and refuse to credit the same one twice. A handler that credits on every notification it receives, without checking, hands out free coins the first time a message arrives twice.
If your PayPal IPN script stopped crediting coins
A lot of old auto-donation panels were built on PayPal IPN. PayPal's own Payments v1-to-v2 migration guide says webhooks replace IPN and that notify_url is no longer supported. If coins stopped arriving and nothing in your code changed, start there.
The migration is more than swapping one URL. The fields move:
| IPN (old) | Webhook (v2) |
|---|---|
mc_gross | resource.amount.value |
custom | custom_id |
| status "Completed" | status "COMPLETED" |
That last row catches people. A script that compares the status against "Completed" as an exact string will reject every valid payment without an error. The custom field is often where old panels stored the account name, so if your code still reads the old key, the coins go nowhere. Verification changes too: you check the signature or call the verify-webhook-signature API. Never credit coins on an unverified call, since anyone can POST fake JSON to a public endpoint.
You will see a specific IPN shutdown date on third-party blogs. We could not confirm it in PayPal's docs, so migrate now instead of waiting for a deadline.

What to sell without turning the server pay-to-win
The official game is the model most owners copy. NA Lineage II went free to play on November 30, 2011, alongside Goddess of Destruction. From then on everything was free except store items and packs from the L2 Galleria, such as Exploration Packs with Luxury Cocktails, Super Minion Coupons and Blessed Spiritshots. High Five, which went live in February 2011, had no item mall in anything we found. So a coin shop on a High Five or Interlude server adds something the original chronicle never had. Players know that.
A rough split that holds up on most servers:
- Usually safe: cosmetics, name or title color changes, convenience such as extra teleport or storage options, and consumables any player can also farm.
- Handle with care: buff scrolls and XP or drop boosts. They speed up progress but do not decide a fight on their own. Keep durations short.
- Kills servers: top-grade weapons and armor, enchant scrolls, and anything that decides PvP or sieges. Once a clan can buy the castle, free players leave, and the donors follow because nobody is left to beat.
Publish the shop contents on your website before launch. A public price list that does not change mid-season is the cheapest trust you can buy.
The legal side you should not skip
Any Lineage 2 private server runs on NCSoft's IP, and taking money makes the exposure worse. The precedents are real. The FBI and NCsoft shut down L2Extreme in 2006. A Greek court ruled against e-GLOBAL. In March 2026 the Seoul Central District Court granted NCSoft a provisional attachment of the bank accounts of operators of four illegal private servers for the original Lineage, with damages suits under way. NC specifically pointed at illicit profit from cash exchange and item trading.
That Korean case is about the original Lineage, not Lineage II, but it is the same publisher with the same legal theory. There is a counterexample: a Taiwan IP court overturned a conviction on appeal because the operator had not modified or reproduced the game. Do not read that as a safe harbour. It turned on the facts of one case.
The practical point: a donation shop creates a money trail that leads to your payment account. Know that before you open one, and get local legal advice if the amounts are meaningful.
Get players in front of the shop
A donation shop only earns if people log in. Once the multisell lists load, the handler credits coins on a verified webhook, and the price list is public, the next problem is traffic. List your server on L2Calendar for free so players searching by chronicle and opening date actually find it. If you want the top slots during launch week, VIP placement puts you above the free listings when it matters most.
