- 🚀 ¡Nuevo en v3.0! - Rebranding como DotaTwin
- ✨ ¿Qué es DotaTwin?
- 🎯 Características Principales
- 📋 Descripción
- 🔥 Características Destacadas
- 🖥️ Interfaz de Usuario
- 🛠️ Requisitos del Sistema
- 📦 Instalación
- �️ Alerta de Seguridad de Windows
- �🚀 Uso
- 📁 Estructura del Proyecto
- ⚙️ Configuración
- 🔒 Seguridad
- 🐛 Solución de Problemas
- 🤝 Contribuciones
- 📄 Licencia
- 👨💻 Autor
- 🙏 Agradecimientos
- 📞 Contacto y Soporte
- 📈 Roadmap
DotaTwin es la evolución de Dota 2 Config Copier con un nuevo nombre que refleja perfectamente su propósito: crear gemelos perfectos de tus configuraciones de Dota.
Una aplicación de escritorio que permite duplicar configuraciones de Dota 2 entre cuentas de Steam de manera sencilla y eficiente. Como tener un "gemelo digital" de tu setup perfecto.
Twin your Dota experience - Copia configuraciones entre cuentas de Steam
- Interfaz moderna y limpia: Rediseñada con el nuevo branding DotaTwin
- Arquitectura modular sólida: Base técnica robusta y mantenible
- Configuración avanzada de Steam: Detección automática y configuración manual
- Layout responsive: Se adapta perfectamente a cualquier tamaño de ventana
- Sistema de copia completa: Garantiza que todos los archivos .vcfg se copien correctamente
- Desarrollo asistido por IA: Evolucionado desde v2.0 usando pair programming con GitHub Copilot
La versión 2.0 presenta una refactorización completa con arquitectura modular que mejora significativamente la mantenibilidad, extensibilidad y robustez del código:
- Código Modular: Separación clara de responsabilidades
- Fácil Mantenimiento: Estructura organizada y documentada
- Testing Automatizado: Suite completa de tests unitarios
- Logging Avanzado: Sistema de logging detallado para debugging
- Extensibilidad: Base sólida para futuras mejoras
- Principios SOLID: Aplicación de mejores prácticas de desarrollo
- Servicios de Negocio: Lógica separada en servicios especializados
- Modelos de Dominio: Entidades robustas con validaciones integradas
- Componentes UI Reutilizables: Widgets modulares y consistentes
- Configuración Centralizada: Settings unificados y flexibles
- Manejo de Errores: Sistema robusto de manejo de excepciones
Dota 2 Config Copier es una herramienta que permite transferir configuraciones completas de Dota 2 (controles, configuraciones de video, audio, hotkeys, etc.) desde una cuenta de Steam a otra. Ideal para usuarios que tienen múltiples cuentas o que quieren compartir su configuración optimizada.
- Detecta automáticamente todas las cuentas de Steam con Dota 2 instalado
- Extrae nombres de usuario y avatares de Steam
- Muestra información detallada de cada cuenta (SteamID, nombre)
- Pestañas organizadas: Cuentas disponibles y cuentas ignoradas
- Iconos descriptivos: Facilitan la identificación de funciones
- Paginación inteligente: Maneja eficientemente listas grandes de cuentas
- Selección visual: Colores distintivos para origen y destino
- Layout responsive: Todos los controles siempre visibles y accesibles
- Scrollbar automática: Lista de cuentas se desplaza automáticamente cuando es necesario
- Control personalizable de elementos por página (10, 15, 20, 25, 30)
- Navegación con botones numerados
- Auto-navegación a cuentas seleccionadas
- Persistencia de preferencias de visualización
- Ignorar cuentas: Oculta cuentas no utilizadas del listado principal
- Restaurar cuentas: Devuelve cuentas ignoradas cuando sea necesario
- Persistencia: Las preferencias se guardan automáticamente
- Recuerda última selección de origen y destino
- Guarda lista de cuentas ignoradas
- Mantiene preferencias de paginación
- Archivo JSON para configuraciones de usuario
- 📤 Origen: Selecciona la cuenta fuente de la configuración
- 📥 Destino: Selecciona la cuenta que recibirá la configuración
- 🚫 Ignorar: Oculta la cuenta del listado principal
- ↩️ Restaurar: Devuelve cuenta ignorada al listado
- 📋 Copiar configuración: Ejecuta la transferencia
- ❌ Cancelar selección: Limpia selecciones actuales
- ⬅️ Anterior / ➡️ Siguiente: Navegación entre páginas
- Botones numerados: Acceso directo a páginas específicas
- 📄 Control de elementos: Personaliza cuántas cuentas mostrar por página
- Sistema Operativo: Windows 7/8/10/11
- Python: 3.7 o superior (para ejecutar desde código fuente)
- Steam: Instalado con al menos una cuenta que tenga Dota 2
- Librerías Python (instalación automática con
pip install -r requirements.txt
):tkinter
(incluida con Python)Pillow
(PIL) - Para manejo de imágenesjson
(incluida con Python)
pytest
- Para ejecutar tests automatizadosblack
- Para formateo de códigomypy
- Para verificación de tipos
- Descargar el archivo
DotaTwin_v3.1.0.exe
desde GitHub Releases - Colocar en cualquier carpeta
- Ejecutar haciendo doble clic
⚠️ Nota: Puede aparecer una alerta de Windows SmartScreen (ver sección de Alerta de Seguridad)
🆕 ¡Nuevo en v3.1.0! - Versión portable que evita las alertas de Windows SmartScreen
- Descargar el archivo
DotaTwin_v3.1.0_Portable.zip
desde GitHub Releases - Extraer en cualquier carpeta
- Ejecutar
run.bat
para iniciar
✅ Ventajas del portable:
- Sin alertas de Windows SmartScreen
- No requiere instalación
- Código fuente visible y auditable
- Incluye Python embebido (~21 MB)
- Portable entre sistemas Windows
📋 Requisitos:
- Windows 7 o superior
- Para GUI completa: Python con tkinter (o usar Python del sistema)
# Clonar repositorio
git clone https://github.com/sadohu/DotaTwin.git
cd DotaTwin
# Instalar dependencias
pip install -r requirements.txt
# Ejecutar aplicación
python main.py
Windows SmartScreen puede mostrar mensajes como:
- "Windows protegió su PC"
- "Aplicación no reconocida"
- "El editor no pudo ser verificado"
Esto es NORMAL y ocurre porque:
- DotaTwin es un ejecutable no firmado digitalmente (requiere certificado costoso ~$300/año)
- Es una aplicación nueva sin suficiente "reputación" en Windows
- Windows es extremadamente cauteloso con aplicaciones de desarrolladores independientes
¡SÍ, absolutamente! DotaTwin es 100% seguro:
- ✅ Código abierto: Todo el código fuente está disponible en GitHub
- ✅ Sin malware: Solo copia archivos de configuración de Dota 2
- ✅ Sin acceso a red: No se conecta a internet ni envía datos
- ✅ Sin modificaciones del sistema: Solo lee/escribe archivos .vcfg de Steam
- ✅ Desarrollado responsablemente: Código revisable y transparente
Si aparece la alerta de Windows SmartScreen:
- Hacer clic en "Más información"
- Hacer clic en "Ejecutar de todas formas"
- ¡Listo! DotaTwin se ejecutará normalmente
Captura de pantalla del proceso:
[Windows protegió su PC]
[Más información] ← Hacer clic aquí
[Ejecutar de todas formas] ← Después hacer clic aquí
- 🆕 Usar versión portable: Descarga
DotaTwin_v3.1.0_Portable.zip
- Sin alertas de Windows - Ejecutar desde código fuente: Descargar el proyecto y ejecutar con
python main.py
- Revisar el código: Todo está disponible en GitHub para inspección
- Usar antivirus: Escanear el archivo con tu antivirus preferido
Si tienes preguntas adicionales:
- 💬 Discord: Únete a nuestra comunidad
- 📧 GitHub Issues: Reportar consultas
- Ejecutar la aplicación
- Seleccionar origen: Hacer clic en "📤 Origen" de la cuenta que tiene la configuración deseada
- Seleccionar destino: Hacer clic en "📥 Destino" de la cuenta que recibirá la configuración
- Copiar: Hacer clic en "📋 Copiar configuración"
- Confirmar: Aceptar la confirmación de copia
- Ignorar cuenta: Usar "🚫 Ignorar" para ocultar cuentas no utilizadas
- Restaurar cuenta: Ir a pestaña "Cuentas Ignoradas" y usar "↩️ Restaurar"
- Cambiar elementos por página: Usar el dropdown "📄 Mostrar"
- Navegar: Usar botones numerados o "⬅️ Anterior / ➡️ Siguiente"
dota2-config-copier/
├── main.py # 🚀 Punto de entrada principal
├── src/ # 📦 Código fuente modular
│ ├── models/ # 🏗️ Modelos de dominio
│ │ └── domain_models.py # Entidades y objetos de valor
│ ├── core/ # 💼 Lógica de negocio
│ │ ├── steam_service.py # Servicios de Steam
│ │ └── config_service.py # Servicios de configuración
│ ├── gui/ # 🖥️ Interfaz de usuario
│ │ ├── main_app.py # Aplicación principal
│ │ ├── main_tab.py # Componentes pestaña principal
│ │ └── ignored_tab.py # Componentes pestaña ignoradas
│ └── utils/ # 🔧 Utilidades
│ ├── logging_utils.py # Sistema de logging
│ └── ui_utils.py # Utilidades de interfaz
├── config/ # ⚙️ Configuración
│ └── settings.py # Constantes y configuraciones
├── tests/ # 🧪 Tests automatizados
│ └── test_refactor.py # Tests de validación
├── docs/ # 📚 Documentación
│ ├── ARQUITECTURA_MODULAR.md # Documentación técnica
│ ├── ICONOS_IMPLEMENTADOS.md
│ ├── PAGINACION_IMPLEMENTADA.md
│ └── CAMBIOS_IMPLEMENTADOS.md
├── requirements.txt # 📋 Dependencias
├── dota_main_config.py # 🔄 Versión legacy (v1.3)
├── ultima_seleccion.json # 💾 Configuración del usuario
├── dota2.ico # 🎨 Icono de la aplicación
├── README.md # 📖 Este archivo
├── CHANGELOG.md # 📝 Historial de cambios
└── LICENSE # 📄 Licencia MIT
- ✅ Compatibilidad completa: Tus configuraciones se migran automáticamente
- ✅ Funcionalidad idéntica: Todas las características de v1.3 están disponibles
- ✅ Ambas versiones: Puedes usar v1.3 (
dota_main_config.py
) o v2.0 (main.py
) - ✅ Datos conservados: Configuraciones, cuentas ignoradas y preferencias se mantienen
{
"origen": "steamid_origen",
"destino": "steamid_destino",
"cuentas_ignoradas": ["steamid1", "steamid2"],
"items_por_pagina": 10
}
- Steam UserData:
C:\Program Files (x86)\Steam\userdata
- Avatar Cache:
C:\Program Files (x86)\Steam\config\avatarcache
- Dota 2 Config:
[userdata]\[steamid]\570\
- ✅ Solo lectura/escritura: No modifica archivos de Steam core
- ✅ Backup automático: Steam mantiene backups en la nube
- ✅ Validación: Confirma rutas antes de copiar
- ✅ Error handling: Manejo seguro de errores de E/O
No detecta cuentas:
- Verificar que Steam esté instalado en la ruta estándar
- Asegurar que las cuentas tengan Dota 2 instalado
- Ejecutar como administrador
Error al copiar:
- Cerrar Steam antes de copiar
- Verificar permisos de escritura
- Comprobar espacio en disco
No aparecen avatares:
- Los avatares se cargan desde caché de Steam
- Algunos usuarios pueden no tener avatar
Las contribuciones son bienvenidas. Para cambios importantes:
- Fork el proyecto
- Crear rama para feature (
git checkout -b feature/AmazingFeature
) - Commit cambios (
git commit -m 'Add AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abrir Pull Request
Este proyecto está bajo la Licencia MIT. Ver LICENSE
para más detalles.
Sadohu
- Desarrollo y mantenimiento principal
- EpziTecho por sugerir el nombre "DotaTwin" que captura perfectamente la esencia del proyecto
- GitHub Copilot por el apoyo continuo en la generación de código desde la v2.0 usando pair programming asistido por IA
- Comunidad de Dota 2 por feedback y testing
- Valve por la estructura abierta de configuraciones
- Usuarios beta por reportes de bugs y sugerencias
Este proyecto utiliza pair programming con GitHub Copilot desde la v2.0, combinando experiencia humana con asistencia de IA para un desarrollo más eficiente y código de mayor calidad.
¡Únete a nuestra comunidad oficial!
- 💬 Discord: https://discord.gg/MYNyKQvk
- 👥 Ayuda de la comunidad y soporte técnico
- 🔄 Intercambio de configuraciones y tips
- 📢 Anuncios de nuevas versiones
- 📂 GitHub: https://github.com/sadohu/DotaTwin
- 🐛 Issues: Para reportar bugs y solicitar características
- 📝 Pull Requests: Contribuciones bienvenidas
- 📚 Wiki: Documentación adicional y FAQ
- 🎯 Discord Personal:
Sadohu
- 📧 GitHub: @sadohu
- ✅ Bugs y errores: GitHub Issues
- ✅ Preguntas generales: Discord community
- ✅ Solicitudes de características: GitHub Issues
- ✅ Documentación: Wiki del proyecto
- ✅ Contribuciones: Pull Requests
- Sistema de plugins para extensibilidad
- Configuración avanzada por archivo YAML
- Tests automatizados completos con CI/CD
- Optimizaciones de rendimiento
- Backup automático antes de copiar
- Soporte para configuraciones específicas (solo hotkeys, solo video, etc.)
-
Modo portable (sin instalación)✅ Implementado en v3.1.0 - Perfiles de configuración múltiples
- Soporte para otros juegos de Steam
- Sistema de plantillas de configuración
- Sincronización automática entre cuentas
- Interfaz web opcional
- API REST para integración
- Soporte para múltiples plataformas (Linux, macOS)
- Base de datos externa opcional
Desarrollado con ❤️ por Sadohu
🔗 Enlaces importantes:
Simplificando la gestión de configuraciones de Dota 2 desde 2025