diff --git a/artTools/game_suffixes.txt b/artTools/game_suffixes.txt
new file mode 100644
index 0000000000000000000000000000000000000000..27af55c14505a871af0bd8c4ed74e8e78e87453b
--- /dev/null
+++ b/artTools/game_suffixes.txt
@@ -0,0 +1,53 @@
+NoClothing
+FuckdollSuit
+AttractiveLingerie
+StringBikini
+Cutoffs
+Slutty
+UncomfortableStraps
+FallenNunsHabit
+PenitentNunsHabit
+SluttyJewelry
+HaremGauze
+SlaveGown
+SluttyBusinessAttire
+NiceBusinessAttire
+ComfortableBodysuit
+SluttyMaid
+NiceNurse
+SluttyNurse
+Schoolgirl
+Kimono
+Hijab
+Battledress
+NiceMaid
+RestrictiveLatex
+LatexCatsuit
+MilitaryUniform
+Minidress
+ConservativeClothing
+Chains
+Cheerleader
+ClubslutNetting
+ShibariRopes
+WesternClothing
+BodyOil
+Toga
+SluttyQipao
+Huipil
+Bunny
+Leotard
+ChattelHabit
+HalterTopDress
+BallGown
+Succubus
+AttractiveLingerie
+MaternityDress
+StretchPants
+Spats
+ScalemailBikini
+Monokini
+Apron
+Cybersuit
+RedArmyUniform
+SchutzstaffelUniform
diff --git a/artTools/generate_game_suffixes.sh b/artTools/generate_game_suffixes.sh
new file mode 100644
index 0000000000000000000000000000000000000000..e2ba0179523a91e541b1ffaa47c25d263dba1817
--- /dev/null
+++ b/artTools/generate_game_suffixes.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# This script reads all possible values of $slave.clothes as mentioned by the documentation.
+# This script uses the actual implementation of the JS clothing2artSuffix function as defined in src/art/vector/Helper_Functions.tw
+# This script outputs suffixes to be used in the SVG naming scheme
+# This script is meant to be executed at the project root directory.
+# This script depends on bash, grep, sed, paste and nodejs (so best executed on Linux, I guess)
+
+( 
+  echo 'var window = {};'
+  grep -v '^:' src/art/vector/Helper_Functions.tw
+  echo -n 'Array('
+  sed '/^clothes:/,/:/!d' "slave variables documentation - Pregmod.txt" | grep '"' | paste -sd,
+  echo ').forEach(v => {console.log(window.clothing2artSuffix(v));});' 
+) | nodejs
diff --git a/artTools/suffixes.py b/artTools/suffixes.py
new file mode 100644
index 0000000000000000000000000000000000000000..5709ae95cb86566cb69b1ea67e4b39bc31495915
--- /dev/null
+++ b/artTools/suffixes.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+
+import sys
+import re
+
+svg = open(sys.argv[1]).read()
+outfits = re.findall('(?<=")[^"]*Outfit_[^"]+', svg)
+outfits = set(outfits)
+#re_suffix = re.compile('(?<=Outfit_).+')
+re_suffix = re.compile('(?<=Outfit_)[^_]+')
+mapping = {o : re_suffix.search(o).group(0) for o in outfits}
+
+suffixes = set(mapping.values())
+
+for v in sorted(suffixes):
+  print(v)
diff --git a/artTools/suffixes_mapping.csv b/artTools/suffixes_mapping.csv
new file mode 100644
index 0000000000000000000000000000000000000000..14df5b1ddc8bc0600af6c3c180dad975ffa96b93
--- /dev/null
+++ b/artTools/suffixes_mapping.csv
@@ -0,0 +1,55 @@
+Abaya;Hijab
+Ballgown;BallGown
+Bangles;SluttyJewelry
+Battledress;Battledress
+Bodysuit;ComfortableBodysuit
+Bunny;Bunny
+Chains;Chains
+Chattelhabit;ChattelHabit
+Cheerleader;Cheerleader
+Clubslut;ClubslutNetting
+Conservative;Conservative
+Croptop;StretchPants
+Cutoffs;Cutoffs
+Cybersuit;Cybersuit
+Fallennun;FallenNunsHabit
+Halteropdress;HalterTopDress
+Haltertopdress;HalterTopDress
+Harem;HaremGauze
+Huipil;Huipil
+Kimono;Kimono
+Latex;
+Leotard;Leotard
+Lingeriepreg;AttractiveLingerie
+Maidnice;NiceMaid
+Maidslut;SluttyMaid
+Maternity;MaternityDress
+Military;MilitaryUniform
+Minidress;Minidress
+Monokini;Monokini
+Nicelingerie;AttractiveLingerie
+Nursenice;NiceNurse
+Nurseslut;SluttyNurse
+Oil;BodyOil
+Penitentnun;PenitentNunsHabit
+Qipao;SluttyQipao
+Scalebikini;ScalemailBikini
+Schoolgirl;Schoolgirl
+Schutzstaffel;SchutzstaffelUniform
+SchutzstaffelLeft;SchutzstaffelUniform
+Shibari;ShibariRopes
+Slavegown;SlaveGown
+Sluttyoutfit;Slutty
+Soviet;RedArmyUniform
+Spats;Spats
+Straps;UncomfortableStraps
+Stringbikini;StringBikini
+Succubus;Succubus
+Suitnice;NiceBusinessAttire
+Suitslutty;SluttyBusinessAttire
+Toga;Toga
+Western;WesternClothing
+;
+;RestrictiveLatex
+;FuckdollSuit
+;LatexCatsuit
diff --git a/artTools/svg_suffixes.txt b/artTools/svg_suffixes.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d273140c95f2a23ddc9c4288524dc2d0937481a7
--- /dev/null
+++ b/artTools/svg_suffixes.txt
@@ -0,0 +1,53 @@
+Abaya
+Apron
+Ballgown
+Bangles
+Battledress
+Bodysuit
+Bunny
+Chains
+Chattelhabit
+Cheerleader
+Clubslut
+Conservative
+Croptop
+Cutoffs
+Cybersuit
+Fallennun
+Halteropdress
+Haltertopdress
+Harem
+Huipil
+Kimono
+Latex
+Leotard
+Lingeriepreg
+Maidnice
+Maidslut
+Maternity
+Military
+Minidress
+Monokini
+Nicelingerie
+Nursenice
+Nurseslut
+Oil
+Penitentnun
+Qipao
+Scalebikini
+Schoolgirl
+Schutzstaffel
+SchutzstaffelLeft
+Shibari
+Shine
+Slavegown
+Sluttyoutfit
+Soviet
+Spats
+Straps
+Stringbikini
+Succubus
+Suitnice
+Suitslutty
+Toga
+Western
diff --git a/src/art/vector/Helper_Functions.tw b/src/art/vector/Helper_Functions.tw
new file mode 100644
index 0000000000000000000000000000000000000000..06e89d804a59da374d9202737e571af681995b22
--- /dev/null
+++ b/src/art/vector/Helper_Functions.tw
@@ -0,0 +1,14 @@
+:: Art_Vector_Helper_Functions_ [script]
+
+window.clothing2artSuffix = function(v) {
+  return v.replace(/^a[n]? /,"") /* remove "a" and "an" from the beginning*/
+          .replace(/ ?(outfit|clothing) ?/,"") /* remove "outfit" and "clothing" (redundant) */
+          .replace(/ (and|for) .+/,"") /* remove concatenated descriptions */
+          .replace(/\w\S*/g, 
+            function(txt){
+                return txt.charAt(0).toUpperCase() + 
+                       txt.substr(1).toLowerCase();
+            }
+          ) /* CamelCase by whitespace */
+          .replace(/\W/g,""); /* remove remaining whitespace */
+}