diff --git a/Facepunch.Steamworks/Interfaces/Workshop.Editor.cs b/Facepunch.Steamworks/Interfaces/Workshop.Editor.cs
index 761cb64..e57d2fa 100644
--- a/Facepunch.Steamworks/Interfaces/Workshop.Editor.cs
+++ b/Facepunch.Steamworks/Interfaces/Workshop.Editor.cs
@@ -24,6 +24,7 @@ public class Editor
public ItemType? Type { get; set; }
public string Error { get; internal set; } = null;
public string ChangeNote { get; set; } = "";
+ public uint WorkshopUploadAppId { get; set; }
public enum VisibilityType : int
{
@@ -109,7 +110,7 @@ private void StartCreatingItem()
if ( !Type.HasValue )
throw new System.Exception( "Editor.Type must be set when creating a new item!" );
- CreateItem = workshop.ugc.CreateItem( workshop.steamworks.AppId, (SteamNative.WorkshopFileType)(uint)Type, OnItemCreated );
+ CreateItem = workshop.ugc.CreateItem( WorkshopUploadAppId, (SteamNative.WorkshopFileType)(uint)Type, OnItemCreated );
}
private void OnItemCreated( SteamNative.CreateItemResult_t obj, bool Failed )
@@ -130,7 +131,7 @@ private void OnItemCreated( SteamNative.CreateItemResult_t obj, bool Failed )
private void PublishChanges()
{
- UpdateHandle = workshop.ugc.StartItemUpdate( workshop.steamworks.AppId, Id );
+ UpdateHandle = workshop.ugc.StartItemUpdate(WorkshopUploadAppId, Id );
if ( Title != null )
workshop.ugc.SetItemTitle( UpdateHandle, Title );
diff --git a/Facepunch.Steamworks/Interfaces/Workshop.cs b/Facepunch.Steamworks/Interfaces/Workshop.cs
index e35bc4b..c32713a 100644
--- a/Facepunch.Steamworks/Interfaces/Workshop.cs
+++ b/Facepunch.Steamworks/Interfaces/Workshop.cs
@@ -98,9 +98,20 @@ public Query CreateQuery()
///
public Editor CreateItem( ItemType type )
{
- return new Editor() { workshop = this, Type = type };
+ return CreateItem(this.steamworks.AppId, type);
}
-
+
+ ///
+ /// Create a new Editor object with the intention of creating a new item.
+ /// Your item won't actually be created until you call Publish() on the object.
+ /// Your item will be published to the provided appId.
+ ///
+ /// You need to add app publish permissions for cross app uploading to work.
+ public Editor CreateItem( uint workshopUploadAppId, ItemType type )
+ {
+ return new Editor() { workshop = this, WorkshopUploadAppId = workshopUploadAppId, Type = type };
+ }
+
///
/// Returns a class representing this ItemId. We don't query
/// item name, description etc. We don't verify that item exists.