Is it normal that Unreal Engine compile shaders each time I modify a material ?

Each time I modify a material (adding a color or changing refraction, it goes compiling 100~450+ shaders depending on the material being modified. Is it normal or is there a way to prevent this from happening every time? It makes previewing changes very tiring.

Yes it is normal. Certain materials like landscape materials will require more combinations. You can go down to the usage flags and uncheck as many as possible. Sometimes those flags check themselves once a mesh is used in a certain way. IE, as soon as a material gets loaded in a map with static lighting, that flag gets set. Same with skelmesh and a bunch of other things.

So you could make a non-static version of a material for quicker compiling if you don’t need to test it with static lighting etc.

Material instances allow to modify Scalar/vector/texture paramaters without shader compilations. You should check those.