public Room CreateRoom(Connection User, String RoomName, String ModelName)
    {
        if (!Models.containsKey(ModelName))
        {
            User.SendNotif("Lo sentimos, este modelo de sala no esta disponible.");
            return null;
        }

        RoomModel Model = Models.get(ModelName);

        if (Model.ClubOnly && User.Data.Subscription.Type == 0)
        {
            User.SendNotif("Debes ser Miembro Club para poder utilizar este modelo.");
            return null;
        }

        if (Model.VipOnly && User.Data.Subscription.Type != 2)
        {
            User.SendNotif("Debes ser Miembro VIP para usar este modelo.");
            return null;
        }

        if (RoomName.length() < 3)
        {
            User.SendNotif("¡El nombre de la sala es muy corto!");
            return null;
        }


        Room Room = new Room(Environment);
        Room.SetFlag(Server.rmIsNew,true);
        Room.Id = Environment.GenerateRoomId();
        Room.Name = RoomName;
        Room.Description = "";
        Room.Owner = User.Data.UserName;
        Room.State = 0;
        Room.Category = 0;
        Room.UsersNow = 0;
        Room.UsersMax = 25;
        Room.ModelName = ModelName;
        Room.Score = 0;
        Room.SetFlag(Server.rmAllowPets,true);
        Room.SetFlag(Server.rmAllowWalkthrough,true);
        Room.Password = "";
        Room.Wallpaper = "0.0";
        Room.Floor = "0.0";
        Room.Landscape = "0.0";
        Room.Model = Models.get(Room.ModelName);
        Room.UserMatrix = new boolean[Room.Model.MapSizeX][Room.Model.MapSizeY];
        Room.OwnerId = User.Data.Id;
        Room.Icon = new RoomIcon(1, 0, new String[0]);

        Room.BETA_ListId = new int[Room.Model.MapSizeX][Room.Model.MapSizeY];
        int index = 0;
        for(int a = 0;a<Room.Model.MapSizeX;a++)
        {
            for(int b = 0;b<Room.Model.MapSizeY;b++)
            {
                Room.BETA_ItemsContainer.add(index, new ArrayList<RoomItem>());
                Room.BETA_ListId[a][b] = index++;
            }
        }

        Room.GenerateMap();

        Rooms.put(Room.Id, Room);

        User.Data.OwnRooms.add(Room.Id);

        return Room;
    }