Communitygithub.com

IAmCosmin-YT/emotion-factory-devlog-shorts

Construye, arregla y promociona el juego de Roblox Emotion Tycoon mediante Studio MCP y Blender: tus reglas internas, IDs de assets, IDs de pases, trampas conocidas y la receta automatizada de vídeos promocionales.

¿Qué es emotion-factory-devlog-shorts?

Este skill, destinado a un desarrollador de Roblox que trabaja en el juego 'Emotion Tycoon', centraliza el flujo de trabajo completo: desde la edición del modelo de datos en Roblox Studio usando MCP, pasando por la creación de assets 3D en Blender, hasta la generación automatizada de vídeos promocionales. Incluye reglas de estilo muy estrictas (rechazo de UI 'generada por IA', preferencia por assets dibujados a mano, etc.), IDs concretos de pases de juego, productos, texturas y partículas, así como una lista detallada de 'trampas conocidas' (gotchas) que previenen errores comunes como problemas con `UIGradient`, `PlayerAdded`, o el límite de registros locales en Lua. El skill se apoya en un acuerdo de trabajo que define cómo el agente debe responder: priorizar bugs rápidos, respetar las ediciones del usuario, y usar los assets propietarios antes que generarlos. También proporciona una receta paso a paso para grabar vídeos promocionales sin intervención manual, utilizando comandos de teclado de Windows y Game Bar. Es compatible con Studio MCP y Blender, y está diseñado para agentes como Claude Code, Cursor o Codex.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/IAmCosmin-YT/emotion-factory-devlog-shorts/tree/HEAD/extracted_skills/emotion-tycoon-dev/emotion-tycoon-dev

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Emotion Tycoon — acuerdo de trabajo y manual de jugadas

Usa esto cada vez que el usuario mencione Emotion Tycoon, sus árboles, trabajadores, soltadores, mejoras, eventos, pisos, espacios de guardado, pases de juego, incursiones, códigos, el panel de administración, o pida iconos, partículas, interfaz de usuario, modelos, miniaturas o un vídeo promocional para ello — incluso si solo describen un síntoma ("el árbol está atascado", "las partículas se ven pequeñas", "estoy atascado con $0").

El usuario es un desarrollador de Roblox en solitario (grupo "Squashed Studios", id 706695552) que dibuja a mano gran parte del arte y es exigente con todo lo que parezca "generado por IA" o "vibecodeado". Todo lo que sigue proviene de sus propias correcciones; trátalo como su estilo personal, no como una sugerencia. A menudo envían lotes largos de solicitudes escritas por voz: convierte cada lote en una lista de tareas, corrige primero los bugs rápidos, y responde a todos los elementos del informe final (incluyendo aquellos que decidiste no hacer).

Las reglas permanentes del usuario

  • Respeta sus ediciones. Nunca sobrescribas cambios en modelos/UI que el usuario haya hecho a mano. Lee antes de escribir.
  • Sin UI con aspecto de IA. Sin etiquetas/chips/insignias de texto ("PASS", "NEW", "HOT"), sin píldoras brillantes con degradado pegadas a las cosas, sin iconos superpuestos a campos de texto, sin líneas de texto flotantes explicando cosas. Diferencia las cosas por diseño, estilo de contorno, color o agrupación.
  • Ventanas nuevas: clona una ventana que el usuario ya haya aprobado (la de dos columnas HUD.FriendModal, RebirthModal, OfflineModal) e intercambia su contenido, en lugar de componer una desde cero. Una ventana hecha desde cero fue rechazada por "visiblemente hecha con IA". Campos de texto = caja blanca empotrada con contorno oscuro de 3 px, texto oscuro.
  • Los números que el jugador posee se ven como la barra de dinero. Ej.: Tokens de Incursión = un clon de HUD.Cash junto a él con el icono de token, hover (PC) / tocar (móvil) para un tooltip. Siempre haz que la información hover funcione en móvil (tocar alterna).
  • Textura real de stud para fondos de UI: rbxassetid://100839690373358 (nunca una procedural).
  • Usa primero sus assets hechos a mano (IDs abajo). No generes reemplazos cuando exista uno de ellos.
  • Termina cada respuesta que añada imágenes con una breve lista de assets que podrían dibujar para reemplazar los marcadores de posición.
  • El glifo de Robux es el carácter de uso privado U+E002.
  • No alucines. Busca en la web / lee el código cuando no estés seguro sobre una API o ID.
  • No abras una segunda instancia de Roblox Studio. El uso del ordenador es solo para cosas que MCP no puede hacer (importación FBX, Game Bar).
  • Nunca guardes su .blend (C:\Users\cosul\Desktop\models_for_roblox\RobloxTycoon.blend); recuérdale que presione Ctrl+S.
  • Modelos 3D en Blender: basados en modificadores, low-poly limpio, sombreado plano; gear en el estilo del kit /roblox-r6-armor.
  • Sin recompensas diarias (prefieren ganancias offline/AFK). Mantén hexágonos de misterio "?" por todas partes — cuando un "?" se convierta en un nodo real, añade nuevos hexágonos "?" más allá.
  • Decidido / rechazado (no lo vuelvas a proponer): protección base, saltar renacimiento, "Mejorar Todo" (solo un botón de Máximo por NPC), una tienda de cosméticos, un árbol de Trofeo (los Tokens de Incursión se mantienen; se ganan por ser top 3 diario en Renacimientos + cada 5 renacimientos). Máquina del Clima = exactamente 1 por parcela. Tutorial de sinergia: en espera hasta que lo pidan.
  • Nunca dejes que un jugador se quede atascado. Cualquier cambio en costos/árboles/renacimiento debe mantener un camino hacia una línea funcional (Main tiene lineCost + recarga rescue y un guardia del Árbol de Dinero — mantenlos funcionando).

Flujo de trabajo de Studio MCP

  • El id de Studio cambia por sesión — obténlo con list_roblox_studios.
  • Editar el modelo de datos no está disponible en modo Jugar. El usuario mismo prueba el juego: comprueba get_studio_state; mientras juega, aún puedes LEER scripts a través del modelo de datos del Servidor (game.ServerScriptService.Main.Source). Espera a que termine (pregunta cada pocos minutos); detén su prueba de juego solo si ha estado inactivo durante minutos, y dímelo. Si pregunta "asegúrate de que las cosas se guarden": las ediciones solo persisten cuando se hacen en Editar.
  • execute_luau en Cliente/Servidor tiene su propia caché de require: require(módulo) allí es una copia nueva, no la que se está ejecutando (monkey-patch no hace nada). Alcanza el estado en ejecución a través de los remotos del juego (ReplicatedStorage.Remotes.Request:InvokeServer(acción, ...), incl. operaciones admin) o instancias/atributos. Para probar ediciones de Config en modo Editar, require(Config:Clone()).
  • Ediciones de scripts: ScriptEditorService:UpdateSourceAsync mediante execute_luau, buscar/reemplazar exacto con string.find(src, old, 1, true) y afirmar que la coincidencia es única. Usa cadenas [==[ ]==] (el código a menudo contiene ]]).
  • La función de inicio del módulo UI está en el límite de 200 registros locales de Luau ("Out of local registers"). Nunca añadas nuevas variables locales de nivel superior allí: pon el nuevo estado/funciones en la tabla compartida ext o dentro de bloques do ... end.
  • Para probar un estado poco común (ej.: una línea completa), cambia temporalmente una constante de Config en Editar, prueba el juego, luego reviértelo.
  • Verifica probando el juego con ET_NoSave: start_stop_play, screen_capture, get_console_output. user_mouse_input x/y son coordenadas de GUI/pantalla: para un punto del mundo usa WorldToScreenPoint (= viewport y - 58); para UI usa AbsolutePosition. Las capturas de pantalla están escaladas (~0.955 del viewport de 2011 px). textInput en un TextBox no llega a él — prueba flujos de tipo canjeo a través del remoto.
  • Las DataStores en Studio son las REALES (acceso API activado): cualquier cosa que escribas mientras pruebas (ej.: códigos de prueba) debe ser eliminada después.

Mapa del juego (dónde viven las cosas)

  • ReplicatedStorage.Shared.Config — todo el ajuste: Items, Employees, Perks, Materials, Events, Robux, RobuxClusters, Themes, TreePaths/TreeLayout/RebirthLayout, AURA (quién mejora/empeora qué casillas), CAPACITY_PERKS, MAX_LIVE_CUBES (por línea de soltador) / MAX_PLOT_CUBES, funciones de la Máquina del Clima (weatherChance, weatherUpgradeCost = parte del próximo renacimiento duplicándose por nivel, weatherRoll, weatherOwned), definiciones de incursiones + tokens.
  • ReplicatedStorage.Shared.Grid — matemáticas de celdas (20x20 casillas, TILE=4). Rotación r: 0=-Z 1=+X 2=+Z 3=-X.
  • ReplicatedStorage.Shared.VFX — preajustes de partículas; VFX.burst hace un emisor por color.
  • ServerScriptService.Main — sesiones, handlers.* para cada acción remota (incl. batch para construcción por arrastre, upgradeWeather, redeemCode, buyRaidToken), datos de la Máquina del Clima (data.wm, Factory.weatherHook), rescate, bucle Heartbeat. pushState puede ser retenido (s.holdPush) durante un lote.
  • ServerScriptService.Server.{Factory,Plots,Shop,Events,DataService,Leaderboards,Prices,Raids,Admin,Codes}. Factory: recuentos de cubos por línea (session.lineCount, uncount), lineCap, atributo LineFull en los soltadores, comprobación de bloqueo por cubos (mantenlo O(n), las líneas pueden contener 100 cubos), Factory.hold para reconstrucciones por lotes. Admin: operaciones ops solo para administradores (regalar online/offline/cross-server, eventos, anunciar, códigos). Codes: DataStore ET_Codes_v1 (clave codes + uses_<CÓDIGO>), tipos cash/scaled/rp/token/boost, fechas, usos máximos (0 = sin límite).
  • StarterPlayerScripts.ClientModules.{UI,Build,Cubes,Life,Boards,Aura,Pop} — UI = HUD, árboles, modales, panel de inspección; Build = fantasma, colocación por arrastre/lote con marcadores de posición translúcidos, eliminar manteniendo clic derecho, mover; Aura = los cuadrados de casilla verde/rojo/amarillo. UI del panel de administración: ServerStorage.AdminGui (+ AdminClient), clonado solo en el PlayerGui de los administradores.
  • Los lienzos de los árboles son nodos creados en StarterGui.TreeGui.Window.Pan.{Canvas,RebirthCanvas,RobuxCanvas}.Nodes (atributos Q, R, Ring, Path, Mystery). Un nuevo nodo = renombrar/convertir un nodo "?" en esa celda (eliminar Mystery, establecer Path) + añadir el id a Config.TreePaths/RebirthLayout. Posición: cash x = 0.4654 + 0.0691q, y = 0.6062 + 0.0850r + 0.0425q; rebirth x = 0.5 + 0.1230q, y = 0.5 + 0.1300r + 0.0650q.
  • Remotos de desarrollo solo para Studio: devEvent, devCash, devRobux, devRobuxRemove, devRobuxReset, devOffline, devTutorial. Los remotos de administración (admin, op, ...) funcionan en Studio para el propietario (regalarse rp/cash/token a uno mismo).
  • Nunca pruebes sobre la partida real por accidente. workspace:SetAttribute("ET_NoSave", true) en Editar antes de una prueba de juego desechable, elimínalo después.

Trampas conocidas (cada una nos ha mordido una vez)

  • Los errores de colocación de NPC Premium dejaban casillas "fantasma" → place construye dentro de pcall con rollback; mantén ese patrón.
  • PlayerAdded espera (Shop.checkPasses, cargas de DataStore): después de cada espera, verifica que la sesión sigue siendo actual, o un jugador que se fue hará que su parcela se reconstruya sin dueño. PlayerRemoving libera la parcela ANTES de guardar.
  • Un UIGradient multiplica BackgroundColor3 — un marco teal clonado con un gradiente púrpura se renderiza azul marino. Pon el fondo en blanco cuando cambies de color a través del gradiente.
  • La barra de dinero tiene un UIScale Bump: cualquier cosa posicionada desde su AbsoluteSize debe dividirse por esa escala.
  • Botón derecho del ratón en Construir = mantener para eliminar; el paneo de la cámara es el botón central / WASD.
  • El inicio de arrastre del árbol debe usar UIS.InputBegan (las pulsaciones de botón nunca llegan a win.InputBegan).
  • Las texturas de los temas de piso van encima del piso (instancia Texture); nunca cambies el Material del piso.
  • Las hojas de partículas del usuario son flipbooks 2x2 con formas pequeñas → escala Size ~2–2.5x; multicolor = múltiples emisores.
  • Las texturas recién subidas pueden verse borrosas por un tiempo (procesamiento de Roblox).
  • Los soltadores de alto nivel necesitan un trabajo enorme por etapa; las líneas débiles se venden por ~$1 (valor del cubo vacío).
  • Imágenes: upload_image funciona desde un servidor http local (ej.: http://127.0.0.1:8765/<archivo>).
  • Pipeline FBX: exporta desde Blender con use_selection=True, object_types={'MESH'}, apply_unit_scale=True, mesh_smooth_type='FACE' a %LOCALAPPDATA%\Temp\et_export\; importa mediante uso del ordenador (Asset Manager → Import → escribir ruta → Import), aterriza en workspace.<FbxName>. El importador refleja en X: coloca las partes con CFrame.new(-x_b, z_b, y_b) desde las coordenadas de Blender. Vistas previas de render: escena temporal "ET_Preview" → imágenes escenificadas.
  • No se permiten enlaces externos dentro del juego: Discord/grupo van en los Enlaces Sociales de la página del juego; dentro del juego solo un botón GroupService:PromptJoinAsync(groupId) "Unirse al grupo".

Disposición de monetización (actual)

  • Tienda de Robux = islas separadas entre las que se navega (Config.RobuxClusters: Pases de Juego, Trabajadores Premium, Dinero, Mejoras y Eventos). Añadir un pase = añadir su id a los items de una isla + añadir un hexágono en RobuxCanvas.Nodes.
  • Los pases frente a los productos se distinguen por isla y animación del contorno, nunca por etiquetas.
  • Los precios se obtienen en vivo (Server.Prices → atributo RobuxPrices de ReplicatedStorage).
  • IDs de pases: HypeQueen 2026442663, DiamondWorker 2026394625, PassMidas 2025590666, PassLuck 2025848628, PassDrop 2025464639, PassVIP 2026922652, GoldenRobot 2025374681, LayoutSlot3 2026652648, LayoutSlot4 2026010654, Pass2x 2027138654.
  • IDs de productos: OfflineDouble 3717787338, BuyBlood 3717787331, BuyMeteor 3717787319, BuyThunder 3717787307, BuyGolden 3717787299, BuyRain 3717787292, Boost3x 3717787279, Boost2x 3717787271, CashVault 3717787265, CashBag 3717787258, CashPouch 3717787249, RaidPortal 3717992673, RaidSiphon 3717992684, RaidJunk 3717992698, RaidGloom 3717992711.
  • Los pisos son recompensas gratuitas de renacimiento elegidas en Configuración. Fábrica guarda: 2 espacios gratuitos, los espacios 3–4 son pases.
  • Los jugadores avanzados tienen sextillones y 30+ renacimientos: pon precio al contenido avanzado como una parte de Config.rebirthCost (escala para siempre) en lugar de un número fijo; los códigos por defecto son "% del próximo renacimiento" por la misma razón.

Los assets del usuario

Iconos: moneyboost3 105474801162476, moneybag 79223369019300, goldenhour 71253971041485, thunderstorm 106415624997312, moneyvault 114456854945836, moneyboost2 88658276906960, meteor 110778083355096, rain 112383447314124, coinpouch 115820638833486, faster_hoppers 85633043652627, x2coins 100838792374750, crown 89385624200044, midas_touch 108493524899149, bloodmoon_2 79508274280864, moon2 97357609209998, hammer 89643796486723, floppydisk 127943322640811, star 119578070875725, zzz 130218032337173, frost 109343690555707, raid_token 112843349186486, weather_machine 112719886234229, conveyor_full 79879060986006 (letrero de línea llena), backpack_cubes 84466301181838 / crate_cubes 108346564955404 / chest_cubes 131689000211065 (ventajas de capacidad).

Pisos: ocean_lights 138556700370722, holy 105026190310831, pink 83692624195325, pink_green 136148045549462, redx 124121848293779.

Partículas (hojas 2x2): anger 97456853400445, happy_love 83569352224420, bolts 125645422252125, steam 115369146046246, confetti 108450399478144, swirls_sparkles 131593243447656, waterdrops 125415103859140, happy_confetti 103582469151146, money 128140468436252, music_notes 92525208060800, ice_shards 123359736235888.

workspace["Simulator Icon Pack"] (lista sus Decals para IDs): útiles — Flecha abajo 17368169201, Códigos 17368032566, MultiGifts 15402969720, Expandir 17368183719, Click 17260727409, Rocket 16670799841, Caja 17368122337, Crate 17368402884. CubePets 17368391613 es un PERRO — nunca lo uses para cosas que no sean mascotas.

Receta de vídeo promocional (completamente automatizada, sin clics del usuario después de las primeras aprobaciones)

  1. Aprobaciones una vez: acceso por uso del ordenador a Roblox Studio + Game Bar con combinaciones de teclas del sistema, y acceso a la carpeta ~/Videos (Game Bar guarda en Videos\Captures).
  2. Estado de exhibición: establece ET_NoSave, inicia el juego, luego a través del remoto Request: devCash, desbloquea cada nodo del árbol de dinero (bucle unlock hasta que no haya progreso), limpia el diseño, construye 4 líneas (soltador en x=1 r=1, cintas x=2..17, vendedor x=18; trabajadores a ambos lados mirando hacia la cinta). Usa Dropper2–4 para que los cubos realmente se llenen y se vendan por números reales.
  3. Director en el cliente: BindToRenderStep en Camera+5 forzando CameraType=Scriptable y un _G.DirCF; ayudantes para Hold/Move/Orbit; alterna ScreenGuis del HUD (no TreeGui). Celda→mundo: X = -134 + 4x, Z = -96 + 4z para Plot1. Encuadre de vista previa con screen_capture antes de grabar.
  4. Grabar: enfoca Studio, win+alt+r → ejecuta la toma (execute_luau, < 60 s) → win+alt+r. Detén eventos naturales con devEvent("") entre tomas. Activa eventos con devEvent("Thunderstorm" | "MeteorShower" | "BloodMoon" | "CashRain" | "GoldenHour" | "Frost"). Comprueba los clips con una hoja de contactos con marcas de tiempo y repite las tomas malas.

…

[truncado para traducción]

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

IAmCosmin-YT/emotion-factory-devlog-shorts

>- Use this skill when editing, reviewing, scripting, or programmatically generating high-retention YouTube Shorts, TikTok devlogs, and gaming promo videos in the style of Vedinad, Danidev, c dev, Wishbone Games, SSundee, or wynge. Built from a frame-by-frame forensic analysis of 81 videos across all 6 creator corpora (all 28 Vedinad Shorts + 2 devlogs, 15 Danidev devlogs/clips/shorts, 10 Wishbone Games shorts/devlogs, 14 c dev shorts/devlogs, 5 SSundee videos, and 7 viral reference shorts). Covers 60fps OpenCV/PIL frame-by-frame motion-graphics compositing, word-by-word animated comment zoom hooks, black-screen deadpan text slams, 3D perspective-tilted code/UI cards, animated stat counters, rarity ladders, browser-based human voiceover generation, and hyper-compressed audio mastering.

IAmCosmin-YT/emotion-factory-devlog-shorts

Create and revise gaming devlogs and Shorts using visually inspected creator references, natural narration, real gameplay, downloaded video effects, sourced SFX, smooth reframing, and verified exports. Use for scriptwriting, recording, asset sourcing, editing, and video critique.

IAmCosmin-YT/emotion-factory-devlog-shorts

Make vertical TikTok / YouTube Shorts promo videos for a Roblox game, end to end, by code — analyze reference shorts, record cinematic fly-throughs and real gameplay straight out of Roblox Studio, cut a kinetic motion-graphics explainer ("I let AI build my update") or a streamer-reaction meme edit (iShowSpeed-style facecam over gameplay), mix royalty-free Pixabay SFX + music with the drop on the reveal, and render covers/thumbnails. Use this whenever the user wants a short, TikTok, Reel, YouTube Short, promo, trailer, edit, meme video, thumbnail or cover for their Roblox game, asks to "make a video" about their game or update, wants Studio footage/gameplay recorded, or shares reference shorts to copy the style of — even if they never say "skill" or name a format.

Skills relacionados