diff --git a/RobloxAssetDownloader/RobloxAssetDownloader.sln b/RobloxAssetDownloader/RobloxAssetDownloader.sln
new file mode 100644
index 0000000..c086332
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31112.23
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RobloxAssetDownloader", "RobloxAssetDownloader\RobloxAssetDownloader.csproj", "{0469D9EF-8197-48D0-8747-59D3A1FD6112}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0469D9EF-8197-48D0-8747-59D3A1FD6112}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0469D9EF-8197-48D0-8747-59D3A1FD6112}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0469D9EF-8197-48D0-8747-59D3A1FD6112}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0469D9EF-8197-48D0-8747-59D3A1FD6112}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {7E3D67E1-E130-4B25-93BD-B61A032DE3C4}
+ EndGlobalSection
+EndGlobal
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/App.config b/RobloxAssetDownloader/RobloxAssetDownloader/App.config
new file mode 100644
index 0000000..3916e0e
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Program.cs b/RobloxAssetDownloader/RobloxAssetDownloader/Program.cs
new file mode 100644
index 0000000..1cd6065
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/Program.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace RobloxAssetDownloader {
+ static class Program {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main() {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new UI());
+ }
+ }
+ }
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Properties/AssemblyInfo.cs b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..6c150a0
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("RobloxAssetDownloader")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("RobloxAssetDownloader")]
+[assembly: AssemblyCopyright("Copyright © 2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("0469d9ef-8197-48d0-8747-59d3a1fd6112")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Resources.Designer.cs b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..5b7259b
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Resources.Designer.cs
@@ -0,0 +1,113 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace RobloxAssetDownloader.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RobloxAssetDownloader.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap background {
+ get {
+ object obj = ResourceManager.GetObject("background", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap github {
+ get {
+ object obj = ResourceManager.GetObject("github", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
+ ///
+ internal static System.Drawing.Icon logo {
+ get {
+ object obj = ResourceManager.GetObject("logo", resourceCulture);
+ return ((System.Drawing.Icon)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap pants_template {
+ get {
+ object obj = ResourceManager.GetObject("pants-template", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap shirt_template {
+ get {
+ object obj = ResourceManager.GetObject("shirt-template", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Resources.resx b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Resources.resx
new file mode 100644
index 0000000..a94377b
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Resources.resx
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\Resources\background.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\github.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\logo.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\pants-template.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\shirt-template.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Settings.Designer.cs b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..7c5b12e
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Settings.Designer.cs
@@ -0,0 +1,25 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+
+namespace RobloxAssetDownloader.Properties {
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+ }
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Settings.settings b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Settings.settings
new file mode 100644
index 0000000..abf36c5
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Resources/background.png b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/background.png
new file mode 100644
index 0000000..e107586
Binary files /dev/null and b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/background.png differ
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Resources/github.png b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/github.png
new file mode 100644
index 0000000..73db1f6
Binary files /dev/null and b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/github.png differ
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Resources/logo.ico b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/logo.ico
new file mode 100644
index 0000000..edde791
Binary files /dev/null and b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/logo.ico differ
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Resources/pants-template.png b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/pants-template.png
new file mode 100644
index 0000000..719bd8f
Binary files /dev/null and b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/pants-template.png differ
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/Resources/shirt-template.png b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/shirt-template.png
new file mode 100644
index 0000000..3e3d49f
Binary files /dev/null and b/RobloxAssetDownloader/RobloxAssetDownloader/Resources/shirt-template.png differ
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/RobloxAssetDownloader.csproj b/RobloxAssetDownloader/RobloxAssetDownloader/RobloxAssetDownloader.csproj
new file mode 100644
index 0000000..79a765b
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/RobloxAssetDownloader.csproj
@@ -0,0 +1,102 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {0469D9EF-8197-48D0-8747-59D3A1FD6112}
+ WinExe
+ RobloxAssetDownloader
+ RobloxAssetDownloader
+ v4.8
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ Resources\logo.ico
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ UI.cs
+
+
+
+
+ UI.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/UI.Designer.cs b/RobloxAssetDownloader/RobloxAssetDownloader/UI.Designer.cs
new file mode 100644
index 0000000..68d0d06
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/UI.Designer.cs
@@ -0,0 +1,226 @@
+
+namespace RobloxAssetDownloader {
+ partial class UI {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent() {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UI));
+ this.URLBox = new System.Windows.Forms.TextBox();
+ this.DownloadButton = new System.Windows.Forms.Button();
+ this.ImageOutput = new System.Windows.Forms.PictureBox();
+ this.Shirt = new System.Windows.Forms.RadioButton();
+ this.Pants = new System.Windows.Forms.RadioButton();
+ this.noOverlay = new System.Windows.Forms.RadioButton();
+ this.templateOverlayBg = new System.Windows.Forms.Panel();
+ this.overlayText = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.githubLink = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)(this.ImageOutput)).BeginInit();
+ this.templateOverlayBg.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.githubLink)).BeginInit();
+ this.SuspendLayout();
+ //
+ // URLBox
+ //
+ this.URLBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.URLBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.URLBox.ForeColor = System.Drawing.Color.Gray;
+ this.URLBox.Location = new System.Drawing.Point(16, 581);
+ this.URLBox.Margin = new System.Windows.Forms.Padding(7);
+ this.URLBox.Name = "URLBox";
+ this.URLBox.Size = new System.Drawing.Size(544, 39);
+ this.URLBox.TabIndex = 0;
+ this.URLBox.Text = "Enter Clothing ID or Catalog URL (eg. 6607924538)";
+ this.URLBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ this.URLBox.TextChanged += new System.EventHandler(this.TextFocus);
+ this.URLBox.Enter += new System.EventHandler(this.TextFocus);
+ //
+ // DownloadButton
+ //
+ this.DownloadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.DownloadButton.BackColor = System.Drawing.Color.White;
+ this.DownloadButton.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100)))));
+ this.DownloadButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.DownloadButton.Font = new System.Drawing.Font("Segoe UI Light", 16F);
+ this.DownloadButton.Location = new System.Drawing.Point(564, 579);
+ this.DownloadButton.Name = "DownloadButton";
+ this.DownloadButton.Size = new System.Drawing.Size(154, 43);
+ this.DownloadButton.TabIndex = 1;
+ this.DownloadButton.Text = "Download";
+ this.DownloadButton.UseVisualStyleBackColor = false;
+ this.DownloadButton.Click += new System.EventHandler(this.Download);
+ //
+ // ImageOutput
+ //
+ this.ImageOutput.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.ImageOutput.Location = new System.Drawing.Point(16, 12);
+ this.ImageOutput.Name = "ImageOutput";
+ this.ImageOutput.Size = new System.Drawing.Size(585, 559);
+ this.ImageOutput.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
+ this.ImageOutput.TabIndex = 2;
+ this.ImageOutput.TabStop = false;
+ //
+ // Shirt
+ //
+ this.Shirt.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.Shirt.Appearance = System.Windows.Forms.Appearance.Button;
+ this.Shirt.BackColor = System.Drawing.Color.White;
+ this.Shirt.Checked = true;
+ this.Shirt.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100)))));
+ this.Shirt.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(225)))), ((int)(((byte)(136)))), ((int)(((byte)(240)))));
+ this.Shirt.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.Shirt.Location = new System.Drawing.Point(2, 54);
+ this.Shirt.Name = "Shirt";
+ this.Shirt.Size = new System.Drawing.Size(106, 45);
+ this.Shirt.TabIndex = 3;
+ this.Shirt.TabStop = true;
+ this.Shirt.Text = "Shirt";
+ this.Shirt.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.Shirt.UseVisualStyleBackColor = false;
+ //
+ // Pants
+ //
+ this.Pants.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.Pants.Appearance = System.Windows.Forms.Appearance.Button;
+ this.Pants.BackColor = System.Drawing.Color.White;
+ this.Pants.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100)))));
+ this.Pants.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(225)))), ((int)(((byte)(136)))), ((int)(((byte)(240)))));
+ this.Pants.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.Pants.Location = new System.Drawing.Point(2, 101);
+ this.Pants.Name = "Pants";
+ this.Pants.Size = new System.Drawing.Size(106, 45);
+ this.Pants.TabIndex = 4;
+ this.Pants.Text = "Pants";
+ this.Pants.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.Pants.UseVisualStyleBackColor = false;
+ //
+ // noOverlay
+ //
+ this.noOverlay.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.noOverlay.Appearance = System.Windows.Forms.Appearance.Button;
+ this.noOverlay.BackColor = System.Drawing.Color.White;
+ this.noOverlay.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100)))));
+ this.noOverlay.FlatAppearance.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(225)))), ((int)(((byte)(136)))), ((int)(((byte)(240)))));
+ this.noOverlay.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.noOverlay.Location = new System.Drawing.Point(2, 148);
+ this.noOverlay.Name = "noOverlay";
+ this.noOverlay.Size = new System.Drawing.Size(106, 45);
+ this.noOverlay.TabIndex = 5;
+ this.noOverlay.Text = "None";
+ this.noOverlay.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.noOverlay.UseVisualStyleBackColor = false;
+ //
+ // templateOverlayBg
+ //
+ this.templateOverlayBg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.templateOverlayBg.BackColor = System.Drawing.Color.White;
+ this.templateOverlayBg.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.templateOverlayBg.Controls.Add(this.overlayText);
+ this.templateOverlayBg.Controls.Add(this.noOverlay);
+ this.templateOverlayBg.Controls.Add(this.Shirt);
+ this.templateOverlayBg.Controls.Add(this.Pants);
+ this.templateOverlayBg.Location = new System.Drawing.Point(606, 12);
+ this.templateOverlayBg.Name = "templateOverlayBg";
+ this.templateOverlayBg.Size = new System.Drawing.Size(112, 197);
+ this.templateOverlayBg.TabIndex = 6;
+ //
+ // overlayText
+ //
+ this.overlayText.Font = new System.Drawing.Font("Segoe UI Light", 14F);
+ this.overlayText.Location = new System.Drawing.Point(2, 2);
+ this.overlayText.Name = "overlayText";
+ this.overlayText.Size = new System.Drawing.Size(108, 50);
+ this.overlayText.TabIndex = 6;
+ this.overlayText.Text = "Template\r\nOverlay";
+ this.overlayText.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // label1
+ //
+ this.label1.BackColor = System.Drawing.Color.Transparent;
+ this.label1.Font = new System.Drawing.Font("Segoe UI Semilight", 9.75F);
+ this.label1.ForeColor = System.Drawing.Color.White;
+ this.label1.Location = new System.Drawing.Point(16, 625);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(702, 59);
+ this.label1.TabIndex = 7;
+ this.label1.Text = resources.GetString("label1.Text");
+ this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // githubLink
+ //
+ this.githubLink.BackColor = System.Drawing.Color.Transparent;
+ this.githubLink.Image = global::RobloxAssetDownloader.Properties.Resources.github;
+ this.githubLink.Location = new System.Drawing.Point(638, 212);
+ this.githubLink.Name = "githubLink";
+ this.githubLink.Size = new System.Drawing.Size(48, 48);
+ this.githubLink.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+ this.githubLink.TabIndex = 8;
+ this.githubLink.TabStop = false;
+ this.githubLink.Click += new System.EventHandler(this.GithubLink);
+ //
+ // UI
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(13F, 32F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackgroundImage = global::RobloxAssetDownloader.Properties.Resources.background;
+ this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
+ this.ClientSize = new System.Drawing.Size(723, 687);
+ this.Controls.Add(this.githubLink);
+ this.Controls.Add(this.DownloadButton);
+ this.Controls.Add(this.URLBox);
+ this.Controls.Add(this.ImageOutput);
+ this.Controls.Add(this.templateOverlayBg);
+ this.Controls.Add(this.label1);
+ this.Font = new System.Drawing.Font("Segoe UI Light", 18F);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Margin = new System.Windows.Forms.Padding(7);
+ this.Name = "UI";
+ this.Text = "Roblox Asset Downloader";
+ this.Load += new System.EventHandler(this.Loaded);
+ ((System.ComponentModel.ISupportInitialize)(this.ImageOutput)).EndInit();
+ this.templateOverlayBg.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.githubLink)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private System.Windows.Forms.TextBox URLBox;
+ private System.Windows.Forms.Button DownloadButton;
+ private System.Windows.Forms.PictureBox ImageOutput;
+ private System.Windows.Forms.RadioButton Shirt;
+ private System.Windows.Forms.RadioButton Pants;
+ private System.Windows.Forms.RadioButton noOverlay;
+ private System.Windows.Forms.Panel templateOverlayBg;
+ private System.Windows.Forms.Label overlayText;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.PictureBox githubLink;
+ }
+ }
+
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/UI.cs b/RobloxAssetDownloader/RobloxAssetDownloader/UI.cs
new file mode 100644
index 0000000..eed2c8f
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/UI.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Diagnostics;
+using System.Drawing;
+using System.IO;
+using System.Net;
+using System.Text.RegularExpressions;
+using System.Windows.Forms;
+
+namespace RobloxAssetDownloader {
+ public partial class UI : Form {
+ public UI() { InitializeComponent(); }
+ public string GetBetween(string source, string start, string end) {
+ int Start, End;
+ if (source.Contains(start) && source.Contains(end))
+ if (source.Substring(source.IndexOf(start)).Contains(end))
+ try {
+ Start = source.IndexOf(start, 0) + start.Length;
+ End = source.IndexOf(end, Start);
+ return source.Substring(Start, End - Start); }
+ catch (ArgumentOutOfRangeException) { return ""; }
+ else return "";
+ else return ""; }
+ private void Loaded(object sender, EventArgs e) { Directory.CreateDirectory(Environment.CurrentDirectory + "\\Download"); }
+
+ private void TextFocus(object sender, EventArgs e) {
+ URLBox.ForeColor = Color.Black;
+ if (URLBox.Text == "Enter Clothing ID or Catalog URL (eg. 6607924538)") URLBox.Text = "";
+ URLBox.Text = Regex.Replace(URLBox.Text, "[^0-9]", ""); }
+
+ private void GithubLink(object sender, EventArgs e) { Process.Start("https://github.com/uDMBK/RobloxAssetDownloader-CSharp"); }
+
+ private void Download(object sender, EventArgs e) {
+ string html, imagelocation = "";
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"https://assetdelivery.roblox.com/v1/asset/?id={URLBox.Text}");
+ request.AutomaticDecompression = DecompressionMethods.GZip;
+
+ using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
+ using (Stream stream = response.GetResponseStream())
+ using (StreamReader reader = new StreamReader(stream)) { html = reader.ReadToEnd(); }}
+
+ string AssetId = GetBetween(html, "http://www.roblox.com/asset/?id=", "");
+ HttpWebRequest imagelocationreq = (HttpWebRequest)WebRequest.Create($"https://assetdelivery.roblox.com/v1/assetid/{AssetId}");
+ imagelocationreq.AutomaticDecompression = DecompressionMethods.GZip;
+
+ using (HttpWebResponse iresponse = (HttpWebResponse)imagelocationreq.GetResponse())
+ using (Stream istream = iresponse.GetResponseStream())
+ using (StreamReader reader = new StreamReader(istream)) { imagelocation = reader.ReadToEnd(); }
+
+ string imageloc = GetBetween(imagelocation, "{\"location\":\"", "\"");
+ HttpWebRequest imagereq = (HttpWebRequest)WebRequest.Create(imageloc);
+ imagereq.AutomaticDecompression = DecompressionMethods.GZip;
+
+ Bitmap img = new Bitmap(1, 1);
+ using (HttpWebResponse iresponse = (HttpWebResponse)imagereq.GetResponse())
+ using (Stream istream = iresponse.GetResponseStream()) img = (Bitmap)Image.FromStream(istream);
+
+ if (!noOverlay.Checked)
+ using (Graphics g = Graphics.FromImage(img)) {
+ g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
+ g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
+
+ if (Shirt.Checked) g.DrawImage(Properties.Resources.shirt_template, new RectangleF(0, 0, img.Width, img.Height));
+ else g.DrawImage(Properties.Resources.pants_template, new RectangleF(0, 0, img.Width, img.Height)); }
+ ImageOutput.Image = img;
+
+ Directory.CreateDirectory(Environment.CurrentDirectory + "\\Download");
+ img.Save($"{Environment.CurrentDirectory}\\Download\\{URLBox.Text}.png", System.Drawing.Imaging.ImageFormat.Png); }}}
diff --git a/RobloxAssetDownloader/RobloxAssetDownloader/UI.resx b/RobloxAssetDownloader/RobloxAssetDownloader/UI.resx
new file mode 100644
index 0000000..9cc9a00
--- /dev/null
+++ b/RobloxAssetDownloader/RobloxAssetDownloader/UI.resx
@@ -0,0 +1,497 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Roblox and its various marks and logos are trademarks of Roblox Corporation
+Asset Downloader and DMBK Development are not endorsed, sponsored or affiliated with Roblox Corporation.
+We take no responsibility for misuse of this tool. Reuploading clothing assets is against the Roblox Community Standards.
+
+
+
+
+ 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
+
+
+
\ No newline at end of file