As mentioned, successive consonants lacking a vowel in between them may physically join together as a 'conjunct'. The government of these clusters ranges from widely to narrowly applicable rules, with special exceptions within. While standardized for the most part, there are certain variations in clustering, of which the Unicode used on this page is just one scheme. The rules[3]:

* 23 out of the 36 consonants contain a vertical right stroke (ખ, ધ, ળ etc.). As first or middle fragments/members of a cluster, they lose that stroke. e.g. ત + વ = ત્વ, ણ + ઢ = ણ્ઢ, થ + થ = થ્થ.
o શ ś(a) appears as a different, simple ribbon-shaped fragment preceding વ va, ન na, ચ ca and ર ra. Thus શ્વ śva, શ્ન śna, શ્ચ śca and શ્ર śra. In the first three cases the second member appears to be squished down to accommodate શ's ribbon fragment. In શ્ચ śca we see ચ's Devanagari equivalent of च as the squished-down second member. See the note on ર to understand the formation of શ્ર śra.
* ર r(a)
o as a first member it takes the form of a curved upward dash above the final character or its kāno. e.g. ર્વ rva, ર્વા rvā, ર્સ્પ rspa, ર્સ્પા rspā.
o as a final member
+ with ટ, ઠ, ડ, ઢ and દ, it is two lines below the character, pointed downwards and apart. Thus ટ્ર, ઠ્ર, ડ્ર, ઢ્ર and દ્ર.
+ elsewhere it is a diagonal stroke jutting leftwards and down. e.g. ક્ર, ગ્ર, ભ્ર. ત ta is shifted up to make ત્ર tra.
* Vertical combination of  geminates ṭṭa, ṭhṭha, ḍḍa and ḍhḍha: ટ્ટ, ઠ્ઠ, ડ્ડ, ઢ્ઢ. Also, ટ્ઠ ṭṭha and ડ્ઢ ḍḍha.
* As first shown with શ્ચ śca, while Gujarati is a separate script with its own novel characters, for compounds it will often use the Devanagari versions.
o દ d(a) as द preceding ગ ga, ઘ gha, ધ dha, બ ba (as ब), ભ bha, વ va, મ ma and ર ra. The first six second members are shrunken and hang at an angle off the bottom left corner of the preceding દ/द. Thus દ્ગ dga, દ્ઘ dgha, દ્ધ ddha, દ્બ dba, દ્ભ dbha, દ્વ dva, દ્મ dma and દ્ર dra.
o હ h(a) as ह preceding ન na, મ ma, ય ya, ર ra, વ va and ઋ ṛ. Thus હ્ન hna, હ્મ hma, હ્ય hya, હ્ર hra, હ્વ hva and હૃ hṛ.
o when ઙ ṅa and ઞ ña are first members we get second members of ક ka as क, ચ ca as च and જ ja as ज. ઙ forms compounds through vertical combination. ઞ's strokeless fragment connects to the stroke of the second member, jutting upwards while pushing the second member down. Thus ઙ્ક ṅka, ઙ્ગ ṅga, ઙ્ઘ ṅgha, ઙ્ક્ષ ṅkṣa, ઞ્ચ ñca and ઞ્જ ñja.
* The remaining vertical stroke-less characters join by squeezing close together. e.g. ક્ય kya, જ્જ jja.
* Outstanding special forms: ન્ન nna, ત્ત tta, દ્દ dda and દ્ય dya.

The role and nature of Sanskrit must be taken into consider to understand the occurrence of consonant clusters. The orthography of written Sanskrit was completely phonetic, and had a tradition of not separating words by spaces. Morphologically it was highly synthetic, and it had a great capacity to form large compound words. Thus clustering was highly frequent, and it is Sanskrit loanwords to the Gujarati language that are the grounds of most clusters. Gujarati, on the other hand, is more analytic, has phonetically smaller, simpler words, and has a script whose orthography is slightly imperfect (a-elision) and separates words by spaces. Thus evolved Gujarati words are less a cause for clusters. The same can be said of Gujarati's other longstanding source of words, Persian, which also provides phonetically smaller and simpler words.

An example attesting to this general theme is that of the series of d- clusters. These are essentially Sanskrit clusters, using the original Devanagari forms. There are no cluster forms for formations such as dta, dka, etc. because such formations weren't permitted in Sanskrit phonology anyway. They are permitted under Gujarati phonology, but are written unclustered (પાદતું pādtuṃ "farting", કૂદકો kūdko "leap"), with patterns such as a-elision at work instead.