Gör egna prisplaner med belöningar

Med EarnFX kan du skapa anpassade prisplaner för att ge spelare möjlighet att stödja din server och samtidigt belönas med exklusiva förmåner. Följ dessa steg för att konfigurera och anpassa prisplanerna efter dina behov:

1. Hitta inställningsfilen

Navigera till EarnFX_Master-mappen i din spelservers resources-mapp.
Öppna filen settings.json med en textredigerare, exempelvis Notepad++ eller Visual Studio Code.

2. Förstå strukturen för prisplaner

I settings.json hittar du sektionen "Plans". Varje prisplan representeras av ett objekt som innehåller följande nycklar:

  • amount: Beloppet som donatorn ska betala (i valutan som Stripe konfigurerats för).
  • name: Namnet på prisplanen.
  • description (valfritt): En kort beskrivning av förmånerna.
  • perks: En lista över belöningar eller åtgärder som utförs när spelaren donerar.
{
    "amount": 250,
    "name": "Member",
    "description": "Exklusiv discordroll",
    "perks": []
}

3. Skapa en ny prisplan

Lägg till en ny prisplan som ett objekt i "Plans"-listan.
Bestäm vilket belopp och namn planen ska ha, samt vilka belöningar den ska inkludera.

Exempel på en ny plan:

{
    "amount": 750,
    "name": "Elite Member",
    "description": "VIP Discord-roll + Specialtillgång till serverns resurser",
    "perks": [
        {
            "type": "trigger-webhook",
            "webhookadress": "https://example.com/webhook",
            "webhookmethod": "POST",
            "webhookheaders": "{\"Authorization\": \"Bearer secretkey\"}",
            "webhookdata": "{\"username\": \"EliteMember\"}"
        }
    ]
}

4. Lägg till belöningar i prisplaner

Under nyckeln "perks" kan du ange belöningar som triggas automatiskt. Här är några exempel på vad du kan lägga till:

Utlös en serverhändelse: Skicka en händelse till servern.

{
    "type": "trigger-server-event",
    "eventname": "server:event:donation"
}

Utlös en spelarhändelse: Skicka en händelse till en spelare.
{
    "type": "trigger-client-event",
    "eventname": "client:event:donation"
}

5. Spara och testa

  • Spara ändringarna i settings.json.
  • Starta om servern och resursen EarnFX.
  • Testa att prisplanerna fungerar genom att donera via portalen och verifiera att belöningarna aktiveras som förväntat.

Olika sätt att belöna spelare

Skicka en önskan

Den här belöningen gör det möjligt för en donator att skicka in en önskan, exempelvis att lägga till ett specifikt fordon eller föremål till servern. Önskan vidarebefordras till administratörerna för granskning och implementering.

1. Skapa en "wish-to-staff"-belöning

Lägg till följande objekt i "perks"-listan för den aktuella prisplanen:

{
    "type": "wish-to-staff",
    "texttitle": "Välj ett fordon du vill lägga till",
    "donatorcontact": "Discordnamn"
}

2. Förklaring av nycklar

  • type: Anger vilken typ av belöning detta är. För önskningar används "wish-to-staff".
  • texttitle: En titel som beskriver vad donatorn ska fylla i (t.ex. "Välj ett fordon"). Detta visas i donationens meny eller portal.
  • donatorcontact: Specifierar vilken kontaktinformation donatorn ska fylla i (t.ex. Discordnamn eller e-postadress).

3. Hur det fungerar

När en donator väljer denna prisplan får de möjlighet att fylla i ett formulär där de anger önskad information, exempelvis ett fordon de vill lägga till.
Uppgifterna skickas till servern eller vidarebefordras via webhook för att informera administratörerna.

Skicka data till en extern tjänst

Denna belöning används för att integrera din server med externa tjänster genom att skicka en förfrågan till en webhook.

1. Skapa en "trigger-webhook"-belöning

Lägg till följande objekt i "perks"-listan för den aktuella prisplanen:

{
    "type": "trigger-webhook",
    "webhookadress": "https://example.com/webhook",
    "webhookmethod": "POST",
    "webhookheaders": "{\"Authorization\": \"Bearer secretkey\"}",
    "webhookdata": "{\"username\": \"EliteMember\", \"plan\": \"VIP\"}"
}

2. Förklaring av nycklar

  • type: Anger vilken typ av belöning detta är. För webhook-belöningar används "trigger-webhook".
  • webhookadress: URL-adressen till webhooken som förfrågan ska skickas till.
  • webhookmethod: HTTP-metoden som ska användas (t.ex. POST eller GET). Vanligtvis används POST.
  • webhookheaders: (Valfritt) JSON-objekt som innehåller headers som skickas med förfrågan, t.ex. autentiseringstokens.
  • webhookdata: (Valfritt) JSON-data som skickas i förfrågan. Detta kan innehålla information om donatorn eller prisplanen.

3. Hur det fungerar

När en donator väljer denna prisplan skickas en förfrågan till den angivna webhooken.

Exempel på vad webhooken kan användas till:

  • Skicka en Discord-notifikation.
  • Uppdatera en databas.
  • Aktivera en extern tjänst, som att lägga till donatorn till en lista.

4. Exempel: Skicka data till Discord

Här är ett exempel på hur du kan använda en Discord-webhook för att skicka ett meddelande till en kanal när någon donerar:

{
    "type": "trigger-webhook",
    "webhookadress": "https://discord.com/api/webhooks/12345/abcde",
    "webhookmethod": "POST",
    "webhookheaders": "{\"Content-Type\": \"application/json\"}",
    "webhookdata": "{\"content\": \"En ny donation har kommit in! Donator: PlayerName, Plan: Elite\"}"
}

Exempel på färdiga prisplaner

Här är ett exempel på en fullständig "Plans"-sektion med flera prisplaner:

"Plans": [
    {
        "amount": 50,
        "name": "Player",
        "perks": []
    },
    {
        "amount": 100,
        "name": "Supporter",
        "perks": []
    },
    {
        "amount": 250,
        "name": "Member",
        "description": "Exklusiv discordroll",
        "perks": []
    },
    {
        "amount": 500,
        "name": "Pro member",
        "description": "Exklusiv discordroll + Önska en bil",
        "perks": [
            {
                "type": "trigger-webhook",
                "webhookadress": "https://webhook.site/example",
                "webhookmethod": "POST",
                "webhookheaders": "{\"Authorization\": \"Bearer token\"}",
                "webhookdata": "{\"donator\": \"PlayerName\", \"reward\": \"CustomCar\"}"
            }
        ]
    }
]
Tillbaka till dokumentationen