My problem is that I spawn humanoid with different textures, which can influence the y position, thus I wander how is it possible to change the lowest vertex of a mesh somehow through script in order to set it y position to 0.
You can access a mesh and iterate over every vertex to find the lowest one. Accessing can be done with
Vector3 verts = gameobject.GetComponent<MeshFilter>().mesh.vertices;
See here for more info. After you changed your vertex, you’ll have to reassign the vertices to the mesh and recalculate normals / bounds. Its probably best not to do it in every update step