# Why NFT Randomizer?

NFT Randomizer is the only plugin for Cinema4D that allows you to mix your 3D elements and prepare your NFT collection for a future submission to the blockchain. NFT Randomizer generates your .JSON file of metadata using OpenSea standards.

# Prerequisites

The NFT Randomizer plugin will only work on versions of Cinema4D equal to or greater than R23. This is due to an outdated version of Python in versions of Cinema4D less than R23.

# Installation

Installing the plugin is very simple. Simply place the plugin folder in the "plugins" directory located at the root of your Cinema4D software installation directory. Once this is done, the NFT Randomizer extension will appear in the "Extensions" tab of your Cinema4D software. You can now open it by clicking on it and this interface will appear.

# Categories

Your 3D scene must contain a neutral for each category, the name given to this neutral will be the one used and written for the writing of your metadata, so be careful to properly name your categories (ex: Hat, Body, Glasses, etc.).

# Attributes

Each category must contain the different possible attributes in the form of neutrals as well (although this is not mandatory, it can be the object in question directly). The name given to the attribute is also the name that will be used in the writing of metadata (ex: Bowler hat, Pirate hat, Cap, etc.).

# Rarity of Attributes

Each attribute must have a rarity, which is represented again in the form of a neutral that will be the first element placed under the attribute (the first child in the neutral).

This is represented in the form of a weight. This weight is a number that will determine the probability of the attribute appearing based on the weights assigned to other attributes in the same category. The weight can be a decimal or an integer (ex: 1, 0.5, 58, 12.6)

This probability is calculated as follows:

probability of attribute appearance = (weight of attribute / (sum of all weights of attributes in the same category)) * 100

If we take the following example:

In the hat category, I have a bowler hat with a weight of 20, a pirate hat with a weight of 38 and a sombrero with a weight of 124. The probability of seeing a pirate hat will be (38 / (38 + 20 + 124)) * 100 = 20.9%.

To make every object have the same probability of appearing, it is therefore sufficient to provide the same weight for all.

# Exclude attribute combinations

In some cases, certain attributes may not overlap or you may not want to see certain attribute combinations appear (ex: a certain pair of glasses with a certain hat). To do this, you must add a neutral named "excluded" as the second child of your attribute. In this neutral, you will place as many neutrals as you like with a name in the form of "category:attribute". All these attributes will never be associated with the parent attribute of "excluded".

# Generating Your NFTs

Once your categories and attributes are ready, simply drag and drop your categories into the "Categories" area. Choose the desired number of NFTs, keep in mind these are unique combinations, so there is a maximum number of NFTs possible. For example, if you have two categories of three attributes, the maximum number of combinations will be 9.

Then click on the "Generate random combinations" button. From this moment on, each attribute will have as many animation keys on its visibility as the number of desired NFTs. A JSON file containing all the metadata will also be generated in the folder where your Cinema4D file is stored. You can also retrieve your metadata by directly copying it via the "Copy JSON result" button.

# Separated JSON files

You can separate the metadata of your NFTs by unchecking the "Merged JSON" checkbox. A "json_files" folder will then be created at the root and filled with all the metadata files for each of your NFTs.