Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add medy-gribkov/arcana --skill monetization-systemsgit clone --depth 1 https://github.com/medy-gribkov/arcanaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/medy-gribkov/arcana/monetization-systems)<a href="https://agentmods.dev/skills/medy-gribkov/arcana/monetization-systems"><img src="https://agentmods.dev/badge/skills/medy-gribkov/arcana/monetization-systems/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/medy-gribkov/arcana/monetization-systems"><img src="https://agentmods.dev/badge/skills/medy-gribkov/arcana/monetization-systems.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00033 | $0.02790 |
| Opus 5 | $0.00016 | $0.01395 |
| Sonnet 5 | $0.00007 | $0.00558 |
| Haiku 4.5 | $0.00003 | $0.00279 |
Grade A, and why
monetization-systems scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 341 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Monetization Systems
Monetization Models
CHOOSING YOUR MODEL:
┌─────────────────────────────────────────────────────────────┐
│ GAME TYPE → RECOMMENDED MODEL │
├─────────────────────────────────────────────────────────────┤
│ Story-driven / Single play → PREMIUM ($10-60) │
│ Competitive multiplayer → F2P + Battle Pass │
│ Mobile casual → F2P + Ads + Light IAP │
│ MMO / Live service → Subscription + Cosmetics │
│ Indie narrative → Premium + Optional tip jar │
└─────────────────────────────────────────────────────────────┘
ETHICAL PRINCIPLES:
┌─────────────────────────────────────────────────────────────┐
│ ✅ DO: ❌ DON'T: │
│ • Cosmetics only • Pay-to-win │
│ • Clear pricing • Hidden costs │
│ • Earnable alternatives • Predatory targeting │
│ • Transparent odds • Gambling mechanics │
│ • Respect time/money • Exploit psychology │
│ • Value for purchase • Bait and switch │
└─────────────────────────────────────────────────────────────┘
IAP Implementation
// ✅ Production-Ready: Unity IAP Manager
public class IAPManager : MonoBehaviour, IStoreListener
{
public static IAPManager Instance { get; private set; }
private IStoreController _storeController;
private IExtensionProvider _extensionProvider;
// Product IDs (match store configuration)
public const string PRODUCT_STARTER_PACK = "com.game.starterpack";
public const string PRODUCT_GEMS_100 = "com.game.gems100";
public const string PRODUCT_BATTLE_PASS = "com.game.battlepass";
public const string PRODUCT_VIP_SUB = "com.game.vip_monthly";
public event Action<string> OnPurchaseComplete;
public event Action<string, string> OnPurchaseFailed;
private void Awake()
{
if (Instance != null) { Destroy(gameObject); return; }
Instance = this;
DontDestroyOnLoad(gameObject);
InitializePurchasing();
}
private void InitializePurchasing()
{
var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
// Consumables
builder.AddProduct(PRODUCT_GEMS_100, ProductType.Consumable);
// Non-consumables
builder.AddProduct(PRODUCT_STARTER_PACK, ProductType.NonConsumable);
// Subscriptions
builder.AddProduct(PRODUCT_VIP_SUB, ProductType.Subscription);
builder.AddProduct(PRODUCT_BATTLE_PASS, ProductType.Subscription);
UnityPurchasing.Initialize(this, builder);
}
public void BuyProduct(string productId)
{
if (_storeController == null)
{
OnPurchaseFailed?.Invoke(productId, "Store not initialized");
return;
}
var product = _storeController.products.WithID(productId);
if (product != null && product.availableToPurchase)
{
_storeController.InitiatePurchase(product);
}
else
{
OnPurchaseFailed?.Invoke(productId, "Product not available");
}
}
public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
{
var productId = args.purchasedProduct.definition.id;
// Validate receipt (server-side recommended for security)
if (ValidateReceipt(args.purchasedProduct.receipt))
{
// Grant the purchase
GrantPurchase(productId);
OnPurchaseComplete?.Invoke(productId);
}
return PurchaseProcessingResult.Complete;
}
private void GrantPurchase(string productId)
{
switch (productId)
{
case PRODUCT_GEMS_100:
PlayerInventory.AddGems(100);
break;
case PRODUCT_STARTER_PACK:
PlayerInventory.UnlockStarterPack();
break;
case PRODUCT_BATTLE_PASS:
BattlePassManager.Activate();
break;
}
}
// IStoreListener implementation...
public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
{
_storeController = controller;
_extensionProvider = extensions;
}
public void OnInitializeFailed(InitializationFailureReason error) { }
public void OnPurchaseFailed(Product product, PurchaseFailureReason reason) { }
}
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 341 lines · 33 tokens per session scan A ed8162bc28cb
monetization-systems is a skill published in the GitHub repository medy-gribkov/arcana (1 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 33 tokens to every session and 2,790 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
pixel-art
Design pixel art sprites, tilesets, and animations — game assets, retro icons, and character sheets.
ar-vr-xr
AR/VR/XR development with Unity XR, WebXR, ARKit, ARCore, Meta Quest SDK, and spatial computing. Use when building augmented reality, virtual reality, mixed reality applications, or spatial experiences.
hue
Meta-skill that generates new design language skills. Works on Claude Code and Codex. Use when the user says 'create a design skill', 'generate design language', 'new design system skill', 'design skill inspired by X', 'design skill from this screenshot', '/hue', or 'use hue'. Also triggers for 'remix my design skill'…
unity-ai-behavior
Use when implementing AI and NPC behavior — state machines, behavior trees, GOAP, NavMesh navigation, decision-making patterns, and when to use each approach.
unity-ecs
Use when considering ECS/DOTS architecture — when to use ECS vs MonoBehaviour, Burst compiler, Job System, hybrid approaches, and migration strategies from MonoBehaviour to ECS.
unity-input
Use when implementing input handling — new Input System setup, action maps, multi-device support, input rebinding, local multiplayer input, and input abstraction patterns.