diff --git a/1.4/Assemblies/Crests.dll b/1.4/Assemblies/Crests.dll
new file mode 100644
index 0000000..3353da5
Binary files /dev/null and b/1.4/Assemblies/Crests.dll differ
diff --git a/1.4/Defs/HediffDefs/Hediffs_Crests.xml b/1.4/Defs/HediffDefs/Hediffs_Crests.xml
new file mode 100644
index 0000000..c86b5ce
--- /dev/null
+++ b/1.4/Defs/HediffDefs/Hediffs_Crests.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+ HediffWithComps
+ false
+ A crest drawn on the genital region.
+
+
+
+ AppliedCrest_Lust
+ lust crest
+ A crest of lust, making the user require nothing but sex.
+ (255, 105, 180)
+
+ InstallCrest_Lust
+
+
+
+ -5
+
+ 250
+
+
+
+
+
+
+ AppliedCrest_Fertility
+ fertility crest
+ A crest of fertility, making the user much more likely to get pregnant.
+ (0, 255, 255)
+
+ InstallCrest_Fertility
+
+
+
+
+
+ RJW_Fertility
+ 3
+
+
+
+
+
+
+
+ AppliedCrest_Alluring
+ alluring crest
+ A crest of allure, making the user appear irresistible.
+ (255, 0, 0)
+
+ InstallCrest_Alluring
+
+
+
+
+ 10
+ 4
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.4/Defs/RecipeDefs/Recipes_Surgery.xml b/1.4/Defs/RecipeDefs/Recipes_Surgery.xml
new file mode 100644
index 0000000..9b090b3
--- /dev/null
+++ b/1.4/Defs/RecipeDefs/Recipes_Surgery.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+ Crests.Recipe_InstallCrestBase
+ false
+ true
+ Drawing crest.
+ GeneralLaborSpeed
+ 1
+ 800
+
+ Human
+
+
+ 2
+
+
+
+
+
+ Dye
+
+
+ 1
+
+
+
+ Genitals
+
+
+
+
+ InstallCrest_Lust
+ draw crest of lust
+ Draws a crest of lust onto the genital region.
+
+ AppliedCrest_Lust
+
+ AppliedCrest_Lust
+
+
+
+ InstallCrest_Fertility
+ draw crest of fertility
+ Draws a crest of fertility onto the genital region.
+
+ AppliedCrest_Fertility
+
+ AppliedCrest_Fertility
+
+
+
+ InstallCrest_Alluring
+ draw crest of allure
+ Draws a crest of allure onto the genital region.
+
+ AppliedCrest_Alluring
+
+ AppliedCrest_Alluring
+
+
+
+ Recipe_RemoveHediff
+ false
+ true
+ Erasing crest.
+ GeneralLaborSpeed
+ 1
+ 200
+
+ Human
+
+
+ Genitals
+
+
+
+
+ RemoveCrest_Lust
+ erase crest of lust
+ Erases a crest of lust from the genital region.
+
+ AppliedCrest_Lust
+
+ AppliedCrest_Lust
+
+
+
+ RemoveCrest_Fertility
+ erase crest of fertility
+ Erases a crest of fertility from the genital region.
+
+ AppliedCrest_Fertility
+
+ AppliedCrest_Fertility
+
+
+
+ RemoveCrest_Alluring
+ erase crest of allure
+ Erases a crest of allure from the genital region.
+
+ AppliedCrest_Alluring
+
+ AppliedCrest_Alluring
+
+
+
\ No newline at end of file
diff --git a/About/About.xml b/About/About.xml
new file mode 100644
index 0000000..778fbd0
--- /dev/null
+++ b/About/About.xml
@@ -0,0 +1,24 @@
+
+
+ RJW - Crests
+ Euclidean
+
+ 1.4
+
+ Euclidean.crests
+ Womb crests/tattoos than can be drawn onto pawns for "special" effects.
+ This mod is still very much a work in progress, so the crests don't do much yet.
+
+ Art Source: https://www.pixiv.net/en/users/3799108
+
+
+
+ rim.job.world
+ RimJobWorld
+ https://www.loverslab.com/files/file/7257-rimjobworld/
+
+
+
+ rim.job.world
+
+
\ No newline at end of file
diff --git a/About/Preview.png b/About/Preview.png
new file mode 100644
index 0000000..b72d07b
Binary files /dev/null and b/About/Preview.png differ
diff --git a/Source/Crests.csproj b/Source/Crests.csproj
new file mode 100644
index 0000000..576c03c
--- /dev/null
+++ b/Source/Crests.csproj
@@ -0,0 +1,71 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {C58A6C93-A487-435A-8F64-C6A8BBE14134}
+ Library
+ Properties
+ Crests
+ Crests
+ v4.7.2
+ 512
+ true
+
+
+ false
+ none
+ false
+ ..\..\1.4\Assemblies\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\..\..\..\..\..\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll
+ False
+
+
+ ..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
+ False
+
+
+ ..\..\..\rjw-master\1.4\Assemblies\RJW.dll
+ False
+
+
+
+
+
+
+
+
+
+
+ ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll
+ False
+
+
+ ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/Crests.sln b/Source/Crests.sln
new file mode 100644
index 0000000..094b6fb
--- /dev/null
+++ b/Source/Crests.sln
@@ -0,0 +1,30 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30717.126
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Crests", "Crests.csproj", "{C58A6C93-A487-435A-8F64-C6A8BBE14134}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{DD3B3221-E930-4CF3-AD02-DD17BD1918BE}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C58A6C93-A487-435A-8F64-C6A8BBE14134}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C58A6C93-A487-435A-8F64-C6A8BBE14134}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C58A6C93-A487-435A-8F64-C6A8BBE14134}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C58A6C93-A487-435A-8F64-C6A8BBE14134}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {77A3BEF8-B198-49D6-ABB8-389A53880CE3}
+ EndGlobalSection
+EndGlobal
diff --git a/Source/Main.cs b/Source/Main.cs
new file mode 100644
index 0000000..a8fe841
--- /dev/null
+++ b/Source/Main.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using RimWorld;
+using Verse;
+using HarmonyLib;
+
+namespace Crests
+{
+
+ public class Recipe_InstallCrestBase : RecipeWorker
+ {
+ public override IEnumerable GetPartsToApplyOn(Pawn pawn, RecipeDef recipe)
+ {
+ if (rjw.Genital_Helper.has_genitals(pawn) || rjw.xxx.is_slime(pawn))
+ {
+ bool blocked = rjw.Genital_Helper.genitals_blocked(pawn);
+
+ if (!blocked)
+ {
+ foreach (BodyPartRecord bodyPart in pawn.health.hediffSet.GetNotMissingParts())
+ {
+ if (recipe.appliedOnFixedBodyParts.Contains(bodyPart.def))
+ yield return bodyPart;
+ }
+ }
+
+ }
+ }
+
+ public override void ApplyOnPawn(Pawn pawn, BodyPartRecord part, Pawn billDoer, List ingredients, Bill bill)
+ {
+ pawn.health.AddHediff(recipe.addsHediff, part);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Source/Properties/AssemblyInfo.cs b/Source/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..2360e4d
--- /dev/null
+++ b/Source/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("Crests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Crests")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
+[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("c58a6c93-a487-435a-8f64-c6a8bbe14134")]
+
+// 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/Source/bin/Debug/Crests.dll b/Source/bin/Debug/Crests.dll
new file mode 100644
index 0000000..f09a427
Binary files /dev/null and b/Source/bin/Debug/Crests.dll differ
diff --git a/Source/bin/Debug/Crests.pdb b/Source/bin/Debug/Crests.pdb
new file mode 100644
index 0000000..638123a
Binary files /dev/null and b/Source/bin/Debug/Crests.pdb differ
diff --git a/Source/obj/Debug/Crests.csproj.AssemblyReference.cache b/Source/obj/Debug/Crests.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..204fdef
Binary files /dev/null and b/Source/obj/Debug/Crests.csproj.AssemblyReference.cache differ
diff --git a/Source/obj/Debug/Crests.csproj.CoreCompileInputs.cache b/Source/obj/Debug/Crests.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..7ba0b5f
--- /dev/null
+++ b/Source/obj/Debug/Crests.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+f6b962a76f1e5054f3fcc301cb57d7aff90b4ed9
diff --git a/Source/obj/Debug/Crests.csproj.FileListAbsolute.txt b/Source/obj/Debug/Crests.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..fa8b93e
--- /dev/null
+++ b/Source/obj/Debug/Crests.csproj.FileListAbsolute.txt
@@ -0,0 +1,14 @@
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests\Source\Crests\bin\Debug\Crests.dll
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests\Source\Crests\bin\Debug\Crests.pdb
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests\Source\Crests\obj\Debug\Crests.csproj.CoreCompileInputs.cache
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests\Source\Crests\obj\Debug\Crests.dll
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests\1.4\Assemblies\Crests.dll
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests-0.1\Source\Crests\obj\Debug\Crests.csprojAssemblyReference.cache
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests-0.1\Source\Crests\obj\Debug\Crests.csproj.CoreCompileInputs.cache
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests-0.1\Source\Crests\obj\Debug\Crests.dll
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests-0.1\1.4\Assemblies\Crests.dll
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests-0.2\1.4\Assemblies\Crests.dll
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests-0.2\Source\Crests\obj\Debug\Crests.csprojAssemblyReference.cache
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests-0.2\Source\Crests\obj\Debug\Crests.csproj.CoreCompileInputs.cache
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests-0.2\Source\Crests\obj\Debug\Crests.dll
+C:\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-crests\Source\Crests\obj\Debug\Crests.csproj.AssemblyReference.cache
diff --git a/Source/obj/Debug/Crests.dll b/Source/obj/Debug/Crests.dll
new file mode 100644
index 0000000..3353da5
Binary files /dev/null and b/Source/obj/Debug/Crests.dll differ
diff --git a/Source/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Source/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..bb50aac
Binary files /dev/null and b/Source/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ