Steamworks-Dokumentation
Steam-Inventar: Schema

Übersicht über das ItemDef-Schema

Hauptschema und Gegenstandstypen

Hierbei handelt es sich um die grundlegenden Eigenschaften, die von Steam verstanden und interpretiert werden und die für das einwandfreie Funktionieren aller Ansichten im Wirtschaftssystem, Handelssystem und Inventar notwendig sind. Viele dieser Eigenschaften sind dieselben, die auch von der Web-API ISteamEconomy/GetAssetClassInfo zurückgegeben werden.

Bei ItemDefs muss es sich um einen der folgenden Typen handeln:

NameBeschreibung
itemEin Gegenstandstyp aus einem Spielerinventar.
bundleEine Sammlung von ItemDefs mit einer festgelegten Menge für jeden Typ. Wenn dieser Gegenstand vergeben wird, bezieht sich dies automatisch auf den gesamten Satz von Gegenständen gemäß der Definition in der Eigenschaft bundle.
generatorEin zufälliger Gegenstand. Wenn dieser Gegenstand vergeben wird, wird automatisch ein Gegenstandstyp aus der Eigenschaft bundle ausgewählt und eine Instanz dieses Typs erstellt. (Beispiel: Stellen Sie sich vor, dass beim Öffnen einer Kiste einer der möglichen Gegenstände erzeugt wird.)
playtimegeneratorDies ist eine spezielle Form von generator, die über einen Aufruf von ISteamInventory::TriggerItemDrop durch die Anwendung vergeben werden kann.
tag_generatorEine spezielle Gegenstandsdefinition, die Gegenstandsinstanzen Tags zufügt. (Weitere Details finden Sie hier: Steam-Inventar: Gegenstandstags)
Details zur Festlegung von komplexen Gegenstandstypen finden Sie unten.

ItemDef-Eigenschaften

NameBeschreibung
appidDie ID Ihrer Anwendung.
nameDer englische Name Ihres Gegenstands. Sie können auch lokalisierte Versionen des Gegenstandsnamens bereitstellen. Folgen Sie dazu diesem Beispiel:
name_english: "Hat" name_french: "Chapeau"
Informationen zu gültigen Sprachnamen als Suffix finden Sie in der Dokumentation zu Lokalisierung und Sprachen.
descriptionDie englische Beschreibung Ihres Gegenstands.
Sie können auch lokalisierte Versionen der Beschreibung bereitstellen. Folgen Sie dazu diesem Beispiel:
description_english: "This is a tall hat" description_french: "Ceci est un chapeau haut de forme"
Informationen zu gültigen Sprachnamen als Suffix finden Sie in der Dokumentation zu Lokalisierung und Sprachen.
display_typeDie englische Beschreibung Ihres „Gegenstandstyps“.
Sie können auch lokalisierte Versionen des Gegenstandstyps bereitstellen. Folgen Sie dazu diesem Beispiel:
display_type_english: "Weapon" display_type_french: "Arme"
Informationen zu gültigen Sprachnamen als Suffix finden Sie in der Dokumentation zu Lokalisierung und Sprachen.
itemdefidDie ID der Gegenstandsdefinition (ItemDef). Muss für Workshop-Inhalte kleiner als 1.000.000 sein.
typeInterner Wert. (item | bundle | generator | playtimegenerator | tag_generator)
bundle(Siehe: Gegenstandstypen „bundle“ und „generator“)
promo(Siehe: Promo-Format)
drop_start_timeUTC-Zeitstempel, der verhindert, dass vor diesem Zeitpunkt Promo-Gegenstände vergeben werden. Trifft nur zu, wenn promo = manual gesetzt wurde. (Siehe: Promo-Format)
exchange(Siehe: Austauschformat)
price(Siehe: Preisformat)
price_categoryEin voreingestellter Preis in unterschiedlichen Währungen, den wir für Sie verwalten. (Siehe: Preisformat)
background_colorDie Farbe (6-stelliger Hex-Farbcode) zur Darstellung des Inventarhintergrunds.
name_colorDie Farbe (6-stelliger Hex-Farbcode) zur Darstellung des Namens im Inventar.
icon_urlDie URL zum kleinen Symbol des Gegenstands. Die URL muss öffentlich zugänglich sein, weil die Steam-Server diese herunterladen und zwischenspeichern. Die empfohlene Größe ist 200 × 200 Pixel.
icon_url_largeDie URL zum großen Symbol des Gegenstands. Die URL muss öffentlich zugänglich sein, weil die Steam-Server diese herunterladen und zwischenspeichern. Die empfohlene Größe ist 2048 × 2048 Pixel.
marketable„false” oder „true”. Gibt an, ob der Gegenstand marktfähig ist, d. h. im Steam-Communitymarkt an andere Nutzer verkauft werden kann.
tradable„false” oder „true”. Gibt an, ob der Gegenstand handelbar ist, d. h. auf Steam mit anderen Nutzern gehandelt werden kann.
tags(Siehe: Steam-Inventar: Gegenstandstags)
tag_generatorsListe der anzuwendenden Gegenstandsdefinitions-IDs des Typs „tag_generator”. (Siehe: Steam-Inventar: Gegenstandstags)
tag_generator_nameTokenname der Tag-Kategorie (Siehe: Steam-Inventar: Gegenstandstags).
tag_generator_valuesListe der Tag-Werte und wie wahrscheinlich deren Auswahl ist (Siehe: Steam-Inventar: Gegenstandstags).
store_tagsString mit Tags, getrennt durch Semikola (;). Diese Tags dienen zum Kategorisieren und Filtern der Gegenstände Ihrer Anwendung im Steam-Shop.
store_imagesURLs für Bilder, getrennt durch Semikola (;). Diese Bilder werden zwischengespeichert und auf der Detailseite des Steam-Gegenstandsshops für Ihre Anwendung angezeigt.
game_only„false” oder „true”. Bei „true“ werden weder die Gegenstände im Steam-Inventar des Nutzers noch die Gegenstandsbenachrichtigungen angezeigt. Diese Einstellung wird beispielsweise oft verwendet, wenn vergebene Gegenstände sofort verbraucht werden.
hidden„false” oder „true”. Bei „true“ wird die Gegenstandsdefinition dem Client nicht angezeigt und kann nicht gekauft werden. Mit dieser Einstellung können Sie nicht verwendete oder unfertige Gegenstandsdefinitionen verbergen.
store_hidden„false” oder „true”. Bei „true“ wird der Gegenstand im Steam-Shop Ihrer Anwendung versteckt. Standardmäßig werden alle mit einem Preis versehenen Gegenstände im Shop angezeigt.
use_drop_limit„false” oder „true”. Bei „true“ wird bei der Vergabe von Gegenständen durch die API ISteamInventory::TriggerItemDrop der Parameter drop_limit berücksichtigt. (Siehe: Gegenstandsfunde nach Spielzeit)
drop_limitInteger. Beschränkt, wie oft ein Nutzer diesen Gegenstand über ISteamInventory::TriggerItemDrop erhalten kann. Wenn dieser Wert auf 0 gesetzt wird, erscheint der Gegenstand nicht mehr als Gegenstandsfund. (Siehe: Gegenstandsfunde nach Spielzeit)
drop_intervalInteger. Spielzeit in Minuten, bevor der Gegenstand an den Nutzer vergeben werden kann. (Siehe: Gegenstandsfunde nach Spielzeit)
use_drop_window„false” oder „true”. Bei „true“ wird für diese Gegenstandsdefinition der Parameter „drop_window“ berücksichtigt. (Siehe: Gegenstandsfunde nach Spielzeit)
drop_windowInteger. Verstrichene Zeit in Minuten, bevor ein Gegenstand vergeben wird. (Siehe: Gegenstandsfunde nach Spielzeit)
drop_max_per_windowInteger. Die Anzahl der möglichen vergebenen Gegenstände innerhalb des Zeitfensters, bevor eine Wartezeit anfällt. Standardwert ist 1. (Siehe: Gegenstandsfunde nach Spielzeit)
granted_manually„false” oder „true”. Bei „true“ wird dieser Gegenstand nur dann vergeben, wenn AddPromoItem() oder AddPromoItems() explizit mit der ID der Gegenstandsdefinition aufgerufen werden. Andernfalls kann er über GrantPromoItems() vergeben werden. Der Standardwert ist „false“.
use_bundle_price„false” oder „true”. Siehe: Bündel verkaufen Der Standardwert ist „false“.
auto_stack„false” oder „true”. Bei „true“ werden vergebene Gegenstände automatisch einem einzelnen Stapel des entsprechenden Typs hinzugefügt. Vergebene Gegenstände werden in Rückrufen an das Inventar als Änderungen der Anzahl angezeigt. Der Standardwert ist „false“.

Erweitertes Schema

Sie können auch beliebige weitere Eigenschaften definieren, die Sie speziell für Ihr Spiel benötigen.

Komplexe Gegenstandsdefinitionen nutzen

Gegenstandstypen „bundle“ und „generator“

Die Regeln für „bundle“, „generator“ und „playtimegenerator“ werden im Parameter bundle definiert.

Bei „bundle“ wird der Typ und die Menge der darin enthaltenen Gegenstände beschrieben.

Bei „generator“ oder „playtimegenerator“ werden die Typen der Gegenstände, die generiert werden können, und deren relative Gewichtung definiert. Alle Gewichtungen zusammen müssen nicht unbedingt 100 ergeben, aber oft ist dies sinnvoll.

Der Parameter bundle besteht aus einer Reihe von Herstellungsformeln, getrennt durch Semikola (;). Jede Herstellungsformel besteht aus der ID einer Gegenstandsdefinition, optional gefolgt vom Trennzeichen „x” und der gewünschten Menge.

Wenn die Menge nicht ausdrücklich angegeben ist, wird standardmäßig 1 angenommen.

Format für „bundle“

bundle_def : item_recipe , { ";" , item_recipe } item_recipe : item_def , []

Beispiele für „bundle“

  • Dieses Beispiel vergibt jeweils einmal Gegenstandsdefinition 201, Gegenstandsdefinition 202 und Gegenstandsdefinition 203:
    type: bundle bundle: 201;202;203
  • Dieses Beispiel vergibt einmal Gegenstandsdefinition 101 und fünfmal Gegenstandsdefinition 102:
    type: bundle bundle: 101x1;102x5
  • Dieses Beispiel generiert zu einer 90%igen Wahrscheinlichkeit Gegenstandsdefinition 501, zu einer 9%igen Wahrscheinlichkeit Gegenstandsdefinition 502 und zu einer 1%igen Wahrscheinlichkeit Gegenstandsdefinition 503:
    type: generator bundle: 501x90;502x9;503x1
  • Dieses Beispiel generiert zu 90%iger Wahrscheinlichkeit einen gewöhnlichen Gegenstand und zu 10%iger Wahrscheinlichkeit einen besonderen Gegenstand:
    itemdefid: 600 name: Common generator type: generator bundle: 601;602;603;604;605 itemdefid: 700 name: Special generator type: generator bundle: 701;702;703;704;705 itemdefid: 800 name: Master generator type: generator bundle: 600x9;700x1

Beachten Sie, dass, wie im letzten Beispiel gezeigt, die Defintionen für „bundle“ und „generator“ auch aufeinander verweisen können. Zum Zeitpunkt der Vergabe des Gegenstands werden komplexe Gegenstandstypen wiederholt erweitert, bis nur noch eine einfache Gegenstandsdefinition übrig bleibt.

Austauschformeln

Mit der ExchangeItems-API können Sie Formeln zur Herstellung und Verwandlung von Gegenständen definieren, die sicher vom Client abgerufen werden können. Die Steam-Server überprüfen das Inventar des Spielers, verbrauchen die angegebenen Materialien und vergeben dann den Zielgegenstand, wenn die Anforderungen erfüllt sind.

Beim Zielgegenstand kann es sich auch um eine Gegenstandsdefinition vom Typ „bundle“ oder „generator“ handeln.

Die Formel wird beim Zielgegenstand im Parameter exchange als eine Menge von einer oder mehrerer Herstellungsformeln definiert, getrennt durch Semikola (;).

Jede Herstellungsformel besteht aus einer Menge erforderlicher Materialien, getrennt durch Kommata (,).

Die erforderlichen Materialien können explizit als ID der Gegenstandsdefinition oder als Tag angegeben werden. Falls keine Menge angegeben ist, wird standardmäßig 1 angenommen.

Bei der Verwendung von ExchangeItems gibt der Aufrufende eine Liste von Materialgegenständen an, die gegen den Zielgegenstand ausgetauscht werden. Der Server prüft die einzelnen Herstellungsformeln und wählt die erste aus, die mit den angegebenen Materialien übereinstimmt.

Der Austausch ist flexibel – die Formeln ermöglichen das Öffnen einer Kiste mit einem Schlüssel, die Herstellung eines komplexen Gegenstands aus Komponenten sowie Recycling und Upgrades von Gegenständen.

Format für Austauschformeln

<exchange>: <recipe> { ";" <recipe> } <recipe>: <material> { "," <material> } <material>: <item_def_descriptor> / <item_tag_descriptor> <item_def_descriptor>: <itemdefid> [] <item_tag_descriptor>: <tag_name> ":" <tag_value> []
Falls nicht explizit anders angegeben, wird als benötigte Menge standardmäßig 1 angenommen.

Beispiele für Austauschformeln

// erfordert eine der folgenden Gegenstandskombinationen: // - einmal Gegenstand#100 und einmal Gegenstand#101; oder // - fünfmal Gegenstand#102; oder // - dreimal Gegenstand#103 und dreimal Gegenstand#104 "exchange":"100,101;102x5;103x3,104x3" // erfordert einen linken und einen rechten Handschuh: "exchange":"handed:left,handed:right" // erfordert drei Bäume und einen komplexen Gegenstand: "exchange":"type:tree*3,quality:fancy" // erfordert entweder: // - Gegenstand#201 und Gegenstand#202; oder // - einen Gegenstand mit Bananengeschmack und ein schweres Objekt "exchange":"201x1,202x1;flavor:banana,mass:heavy" // recycelt fünf „gewöhnliche” (common) Artefakte in ein „besonderes” (special) Artefakt: { "name":"special_generator", "type":"generator", "tags":"rarity:special", "bundle":…, "exchange":"rarity:common*5", … }

Promo-Gegenstände

Die Vergabe von Promo-Gegenständen kann anhand verschiedener Kriterien erfolgen:

  • Besitz einer App-ID (kann auch eine App-ID für Zusatzinhalte sein)
  • Errungenschaft
  • Spielzeit in einer App-ID
  • Manuelle Vergabe: Der Client muss AddPromoItem mit der ID der Gegenstandsdefinition aufrufen.

Die Promo-Gegenstände werden von Steam überprüft, sodass sie problemlos vom Client angefordert werden können. Siehe: ISteamInventory::AddPromoItem Zur Definition eines Promo-Gegenstands werden im Parameter „promo“ der Gegenstandsdefinition eine oder mehrere Regeln für die Vergabe des Gegenstands festgelegt.

Beachten Sie, dass es sich bei einem Promo-Gegenstand auch um ein Bündel handeln kann.

Für manuell vergebene Promo-Gegenstände können Sie auch bestimmte Fundintervalle festlegen. Sie können beispielsweise jede Woche ein paar Gegenstände vergeben, wenn ein Spieler eine bestimmte Aufgabe meistert (etwa eine Spielmission). Zur Verwendung dieser Funktion müssen für drop_start_time und drop_interval Werte in der Gegenstandsdefinition festgelegt sein.

Bei temporärem Besitz eines kostenlosen Titels (z. B. während eines Gratiswochenendes oder bei Zugriff über die Familienbibliothek) werden keine Promo-Gegenstände vergeben.

Format für Promo-Regeln

<promo>: <rule> { ";" <rule> } <rule>: app_rule / ach_rule / played_rule / manual_rule <app_rule>: "owns:" <appid> <ach_rule>: "ach:" <achievement name> <played_rule>: "played:" <appid>/<minutes played, defaults to 1> <manual>: "manual"

Beispiele für Promotionen

// einfache Promo-Regeldefinitionen: "promo":"owns:440;owns:480" // hat mindestens 15 Minuten App-ID 570 gespielt: "promo":"played:570/15" // Verbrauchsgegenstand, der einmal pro Woche vergeben werden kann: "itemdefid": 404, "type": "item", "name": "Weekly Quest Item", "promo": "manual", "drop_start_time": "20170801T120000Z", "drop_interval": 10080, …

Fundstartzeit

Wenn Sie für Ihren Promo-Gegenstand „drop_start_time“ festlegen, kann der Gegenstand nicht vor diesem Zeitpunkt vergeben werden. Damit können Sie den notwendigen Code zur Vergabe des Promo-Gegenstands schon deutlich vor Beginn der Promotion im Spiel implementieren. Der Zeitstempel muss im Format ISO 8601 in der Zeitzone UTC angegeben werden:YYYYMMDDTHHMMSSZ. Beispiel: 20050515T171151Z.

Gegenstandsfunde nach Spielzeit

Die Funktion für Gegenstandsfunde nach Spielzeit ermöglicht den Steam-Servern, Gegenstandsfunde anhand der Spielzeit des Benutzers zu verwalten. Ihr Spiel muss zum gewünschten Zeitpunkt lediglich die Funktion ISteamInventory::TriggerItemDrop aufrufen. Damit Gegenstandsfunde funktionieren, müssen Sie Gegenstände des Typs „playtimegenerator“ definieren.
Die Gewährung von Gegenständen nach Spielzeit wird von Ihrer Anwendung gesteuert. Automatische Gewährungen, die einzig und allein von der Spielzeit des Benutzers abhängen, werden nicht unterstützt. In anderen Worten: Die Spielzeit ist eine Bedingung für die Gewährung, aber die Gewährung selbst wird von Ihrer Anwendung ausgelöst.

Die Häufigkeit der Gegenstandsfunde steuern Sie auf Anwendungsebene im Abschnitt „Community“ -> „Inventardienst“ -> „Spielzeitgegenstandsbelohnungen“. Es gibt drei Steuerelemente, die die folgende Anpassung ermöglichen:
(1) Wie viel Zeit muss bis zu einem Gegenstandsfund vergehen?
(2) Wie viele Gegenstände können in einem Zeitfenster gefunden werden? Und,
(3) Wie lange ist die Wartezeit zwischen einem Fund und dem nächsten?

Diese Steuerelemente gibt es auch pro Gegenstandsdefinition. Die Werte auf der Ebene des Gegenstands selbst haben Vorrang vor den Werten, die auf Anwendungsebene für den betreffenden Gegenstand festgelegt wurden. So können Sie für jeden Gegenstand eine eigene Fundrate, eine eigene Höchstmenge pro Zeitfenster und eine eigene Wartezeit festlegen.

Wenn eine der folgenden Fundeinstellungen festgelegt ist, werden die Gegenstandsfunde pro Spielzeit-Generator überwacht: ('drop_interval', 'use_drop_window', 'drop_window', 'drop_max_per_window' ). Anders ausgedrückt: Wenn die Gegenstandsdefinition selbst KEINE Fundeinstellungen aufweist, verwendet sie dieselben Einstellungen wie die anderen Spielzeit-Generatoren ohne eigene Fundeinstellungen, begrenzt durch das in der Anwendung festgelegte Fundintervall. Andernfalls (wenn also die Gegenstandsdefinition eine ausdrückliche Fundeinstellung besitzt) werden die Funde separat auf Generatorebene gewährt und überwacht, und zwar unabhängig von der Anwendung oder einem anderen Spielzeit-Generator in der ItemDef.

Beispiel für Gegenstandsgewährung nach Spielzeit

  1. Ermöglicht die Gewährung eines Gegenstands für einen Benutzer nach 30 Minuten Spielzeit. Wenn Sie nur diese Einstellung festlegen, hat dies einen großen Nachteil:
    Da der Gegenstand alle 30 Minuten gewährt wird, kann er gefarmt werden. Wir empfehlen daher dringend, dies durch ein Fundzeitfenster zu ergänzen:
    "drop_interval" : 30
  2. Begrenzt die Gegenstandsgewährung auf einen Fund pro Tag nach 30 Minuten Spielzeit. So belohnen Sie Ihre Spieler, wenn sie jeden Tag zu Ihrem Spiel zurückkehren.
    "drop_interval" : 30,
    "use_drop_window" : "true",
    "drop_window" : "1440"

  3. Erlaubt dem Benutzer, 3 Gegenstände pro Tag zu finden, wenn er mindestens 90 Minuten lang spielt. Die Anzahl der Minuten muss nicht am Stück gespielt werden. So belohnen Sie längere Spielzeiten.
    "drop_interval" : 30,
    "use_drop_window" : "true",
    "drop_window" : "1440",
    "drop_max_per_window" : "3"
Wenn eine ItemDef-Einstellung fehlt, wird dafür automatisch der in der Anwendung festgelegte Wert genommen.

Maximale Funde

Die Variable drop_limit erlaubt die Festlegung einer Höchstanzahl von spielzeitbasierten Belohnungen pro Generator.
Sie können damit begrenzen, wie oft ein Gegenstand generiert werden kann (beispielsweise: auf den Zeitpunkt, wenn das Spiel zum ersten Mal im Schwierigkeitsgrad Legendär abgeschlossen wird).
Sie können damit auch zukünftige Funde eines veralteten Gegenstands verhindern, indem Sie den Wert auf 0 setzen. Diese Einstellung ist nur dann wirksam, wenn use_drop_limit „true“ ist.

Verkauf von Gegenständen

Damit bestimmte Spielgegenstände verkauft werden können, legen Sie in den entsprechenden Gegenstandsdefinitionen einfach Preise oder Preiskategorien fest.
Informationen zur Aktivierung und Anpassung Ihrer Shopseite erhalten Sie in der Dokumentation zum Gegenstandsshop.

Festlegung von Preisen

Die Preise für Gegenstände können in einem – aber nicht beiden – der folgenden Felder definiert werden:
NameBeschreibung
priceLegt einen spezifischen Preis in jeder Währung fest. Nicht definierte Währungen werden zum Zeitpunkt des Kaufs automatisch konvertiert.
price_categoryLegt einen allgemeingültigen Preis fest, der über eine von Valve gepflegte Preistabelle in allen unterstützten Währungen angezeigt wird.

Das Feld price_category kann nur Werte in der speziellen Währung VLV aufnehmen. VLV100 entspricht 0,99 USD und wird gemäß dem Valve-Wechselkurs in alle unterstützten Währungen umgewandelt.

Die Wechselkurse für VLV werden sorgfältig gepflegt und berücksichtigen eventuelle Veränderungen im Laufe der Zeit. Die Preise werden dann nach Bedarf angepasst. Kleine Schwankungen werden hingegen akzeptiert, um die Preise möglichst stabil und benutzerfreundlich zu halten.

Preisformat

Price: <version>;<pricelist> Version: "1" <pricelist> : <originalprice>(;<price>)* <originalprice>: <currency><integer>(,<currency><integer)* <price>: (<daterange>)<currency><integer>(,<currency><integer)* <currency> 3 Buchstaben wie „USD“ <integer> Anzahl in währungsspezifischen Einheiten <daterange>: YYYYMMDDTHHMMSSZ-YYYYMMDDTHHMMSSZ
<daterange> muss exakt 33 Zeichen lang sein.

Die Liste der Datumsbereiche muss in absteigender Reihenfolge vorliegen (zukünftige Termine oben).

Beispiele für Preise

  • price_category: 1;VLV100
    Voreingestellte Preiskategorie unter Verwendung der Valve-Preistabelle.
  • price: 1;USD100
    (1,00 US-Dollar)
  • price: 1;USD100,EUR080
    (1,00 US-Dollar oder 0,80 Euro)
  • price: 1;USD100,EUR080;20130607T080000Z-20130606T080000ZUSD50,EUR40
    (1,00 US-Dollar oder 0,80 Euro. Ausnahme nach dem 6. 6. 2013: 0,50 US-Dollar bzw. 0,40 Euro)
  • price: 1;USD100,EUR080;20130609T080000Z-20130606T080000ZUSD50,EUR40
    (1,00 US-Dollar oder 0,80 Euro. Ausnahme vom 6. 6. 2013 bis 6. 9. 2013: 0,50 US-Dollar bzw. 0,40 Euro)

Verkauf von Bündeln


Auch gebündelte Gegenstände können im Shop zum Verkauf angeboten werden. Bei der Bezahlung wird das Bündel erweitert, sodass der Benutzer die vollständige Liste der gekauften Gegenstände sieht. Die Rückerstattungsbestimmungen von Steam erlauben die Rückgabe der gekauften Gegenstände innerhalb eines bestimmten Zeitraums, sofern sich die erworbenen Gegenstände noch in unveränderter Form im Inventar des Käufers befinden.

Preise für Bündel

Beim Festlegen eines Preises für ein Bündel müssen einige zusätzliche Schritte berücksichtigt werden. Steam verwendet die Preise der einzelnen Artikel innerhalb des Bündels, um den Bündelpreis zu ermitteln und den Bündelumsatz anteilig aufzuteilen. Diese Verteilung bestimmt die Höhe der Auszahlungen für Workshop-Beitragende. Ein Bündel kann Inhalte von verschiedenen Workshop-Beitragenden oder neben Ihren eigenen Erstanbieter-Inhalten weitere Workshop-Inhalte enthalten.

So legen Sie den Preis für einen gebündelten Gegenstand fest:
  • Geben Sie einen Preis für jeden Gegenstand im Bündel an.
  • Wenn einige Gegenstände im Bündel einzeln nicht verkauft werden dürfen, setzen Sie für diese Gegenstände den Wert store_hidden
    auf „true“.
  • Setzen Sie das Feld price or price_category des Bündels auf einen einfachen Preis (etwa VLV0).
    Dieser Preis wird im Shop nicht verwendet, signalisiert dem Shop jedoch, dass es sich um einen verkäuflichen Gegenstand handelt.
  • Optional können Sie für das Bündel mit purchase_bundle_discount einen Rabatt in Prozent festlegen.

Wenn Sie dies bevorzugen, können Sie einen genauen Bündelpreis in jeder Währung festlegen. Die Überschreibung des Bündelpreises ignoriert jeden von Ihnen angegebenen purchase_bundle_discount. Die einzelnen Artikelpreise werden jedoch weiterhin verwendet, um die Bündelerlöse proportional zu verteilen. Daher müssen sie angegeben werden.

So überschreiben Sie automatische Bündelpreise:
  • Setzen Sie den gewünschten Preis für das Bündel im Feld price oder price_category fest.
  • Setzen Sie use_bundle_price für den Gegenstand auf true.

Verkauf von Gegenstandstypen

Versuchen Sie nicht, Gegenstände des Typs generator direkt im Gegenstandshop zu verkaufen.

Wenn Sie einen Artikel mit einer Zufallskomponente (Truhe) verkaufen möchten, definieren Sie die Truhe als einfachen item-Typ. Erstellen Sie anschließend einen „generator“-Gegenstand, der die Truhe als Eingabe für eine Austauschformel akzeptiert.

Nach dem Kauf kann der Spieler die Truhe öffnen. Das ist der Zeitpunkt, an dem Sie über ISteamInventory::ExchangeItems den Generator aufrufen können. Sobald die Truhe geöffnet wurde, kann sie nicht mehr zurückgegeben werden.

Voreingestellte VLV-Preistabelle

Hier finden Sie die aktuellen möglichen Werte zur Festlegung einer price_category für Ihren Gegenstand.
NamePreis in USD
VLV250,25 USD
VLV500,49 USD
VLV750,75 USD
VLV1000,99 USD
VLV1501,49 USD
VLV2001,99 USD
VLV2502,49 USD
VLV3002,99 USD
VLV3503,49 USD
VLV4003,99 USD
VLV4504,49 USD
VLV5004,99 USD
VLV5505,49 USD
VLV6005,99 USD
VLV6506,49 USD
VLV7006,99 USD
VLV7507,49 USD
VLV8007,99 USD
VLV8508,49 USD
VLV9008,99 USD
VLV9509,49 USD
VLV10009,99 USD
VLV110010,99 USD
VLV120011,99 USD
VLV130012,99 USD
VLV140013,99 USD
VLV150014,99 USD
VLV160015,99 USD
VLV170016,99 USD
VLV180017,99 USD
VLV190018,99 USD
VLV200019,99 USD
VLV250024,99 USD
VLV300029,99 USD
VLV350034,99 USD
VLV400039,99 USD
VLV450044,99 USD
VLV500049,99 USD
VLV600059,99 USD
VLV700069,99 USD
VLV800079,99 USD
VLV900089,99 USD
VLV1000099,99 USD

Beispiel für ein ItemDef-Schema

{ "appid": 480, "items": [ { "itemdefid": 10, "type": "playtimegenerator", "bundle": "100x100;101x50;102x25;103x2;110x20;111x20;120x5;121x3", "name": "Drop Generator", "name_color": "7D6D00", "background_color": "3C352E", "item_slot": "generator", "icon_url": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "icon_url_large": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "tradable": false, "marketable": false }, { "itemdefid": 100, "type": "item", "name": "Hat decoration", "description": "Hat decoration description", "price": "1;USD99", "name_color": "7D6D00", "background_color": "3C352E", "item_slot": "decoration", "icon_url": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "icon_url_large": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "tradable": true, "marketable": true }, { "itemdefid": 200, "type": "item", "price": "1;VLV100", "name_english": "Red Hat", "name_german": "Roter Hut", "description_english": "Red Hat", "description_german": "Roter Hut", "store_tags": "hat;featured", "icon_url": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "icon_url_large": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png", "tradable": true, "marketable": true } ] }