Communitygithub.com

IAmCosmin-YT/emotion-factory-devlog-shorts

빌드, 수정 및 Roblox 게임 Emotion Tycoon을 Studio MCP와 Blender를 통해 홍보합니다: 당신의 규칙, 에셋 ID, 패스 ID, 알려진 문제점 및 자동 프로모션 비디오 레시피를 포함합니다.

emotion-factory-devlog-shorts란 무엇인가요?

이 스킬은 독특한 Roblox 게임 'Emotion Tycoon'을 위한 포괄적인 작업 협약 및 플레이북입니다. 사용자는 솔로 Roblox 개발자로, AI 생성 느낌의 아트를 싫어하며 모든 수정 사항을 직접 제어합니다. 이 플레이북은 게임 내 다양한 요소(나무, 작업자, 드로퍼, 부스트, 이벤트, 층, 저장 슬롯, 게임 패스, 습격, 코드, 관리자 패널)를 다루며, 아이콘, 파티클, UI, 모델, 썸네일 및 프로모션 비디오 제작을 위한 지침을 제공합니다. 핵심은 사용자의 엄격한 디자인 규칙(예: AI 느낌의 UI 금지, 기존 승인된 창 복제, 숫자 표시는 현금 바 형식 사용)을 존중하고, Studio MCP를 통한 워크플로우(예: Play 모드에서 데이터모델 편집 불가, 특정 모듈의 로컬 레지스터 한계, FBX 파이프라인)를 안내하며, 게임 맵의 각 요소 위치와 알려진 문제점을 상세히 설명합니다. 또한 완전 자동화된 프로모션 비디오 제작 레시피(스튜디오 포커스, 게임 바 녹화, 스크립트로 각 장면 실행)를 포함하여, 사용자가 최소한의 클릭으로 프로모션 영상을 제작할 수 있도록 돕습니다. 이 스킬은 주로 Cursor, Codex, Claude Code 같은 AI 에이전트와 함께 사용되며, 사용자가 장시간 음성 입력으로 보내는 요청들을 작업 목록으로 변환하고, 빠른 버그부터 처리하며, 모든 항목에 대한 답변을 최종 보고서에 포함시키는 방식을 따릅니다.

지원 대상~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

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Emotion Tycoon — 작업 협약 및 플레이북

사용자가 Emotion Tycoon, 그 나무, 작업자, 드로퍼, 부스트, 이벤트, 층, 저장 슬롯, 게임 패스, 습격, 코드, 관리자 패널을 언급하거나, 아이콘, 파티클, UI, 모델, 썸네일, 프로모션 비디오를 요청할 때 — 심지어 증상만 설명해도 ("나무가 멈췄어요", "파티클이 작아 보여요", "0원에서 못 빠져나와요") 이 문서를 사용하세요.

사용자는 솔로 Roblox 개발자(그룹 "Squashed Stuidos", id 706695552)로, 아트를 직접 많이 그리며 "vibecoded" 또는 AI 생성처럼 보이는 것을 싫어합니다. 아래 내용은 모두 사용자의 직접적인 수정에서 비롯된 것입니다; 제안이 아닌 사용자의 스타일로 간주하세요. 사용자는 종종 긴 음성 입력으로 요청을 보냅니다: 각 배치를 작업 목록으로 바꾸고, 빠른 버그부터 처리하며, 최종 보고서에 모든 항목(거절한 항목 포함)에 답변하세요.

사용자의 고정 규칙

  • 수정 사항을 존중하세요. 사용자가 직접 수정한 모델/UI 변경을 덮어쓰지 마세요. 쓰기 전에 읽으세요.
  • AI 느낌의 UI 금지. 텍스트 태그/칩/배지("PASS", "NEW", "HOT"), 광택 그라데이션 알약, 아이콘이 텍스트 필드를 겹치는 것, 설명하는 평범한 떠 있는 텍스트 줄을 금지합니다. 레이아웃, 외곽선 스타일, 색상 또는 그룹화로 구분하세요.
  • 새 창: 사용자가 이미 승인한 창을 복제하세요 (HUD.FriendModal 2열 레이아웃, RebirthModal, OfflineModal) 그리고 내용물을 교체하세요. 처음부터 새로 만든 창은 "AI가 만든 게 분명하다"며 거부되었습니다. 텍스트 필드 = 움푹 들어간 흰색 상자에 진한 3px 외곽선, 진한 텍스트.
  • 플레이어가 소유한 숫자는 현금 바처럼 보입니다. 예: Raid Tokens = HUD.Cash의 복제본 옆에 토큰 아이콘, 호버(PC) / 탭(모바일) 시 툴팁. 항상 모바일에서도 호버 정보가 작동하도록 하세요 (탭으로 토글).
  • UI 배경에는 실제 스터드 텍스처 사용: rbxassetid://100839690373358 (절차적 생성 금지).
  • 먼저 사용자가 직접 만든 에셋을 사용하세요 (아래 ID). 사용자의 에셋이 있으면 대체품을 생성하지 마세요.
  • 시각적 요소를 추가하는 모든 답변 끝에는 플레이스홀더를 대체할 에셋 목록을 짧게 적어주세요.
  • Robux 글리프는 전용 문자 U+E002입니다.
  • 환각을 생성하지 마세요. API나 ID가 확실하지 않으면 웹 검색 / 코드 읽기를 하세요.
  • Roblox Studio를 두 개 열지 마세요. 컴퓨터 사용은 MCP가 할 수 없는 작업(FBX 가져오기, Game Bar)에만 사용하세요.
  • 절대 .blend 파일을 저장하지 마세요 (C:\Users\cosul\Desktop\models_for_roblox\RobloxTycoon.blend); 저장하는 것을 잊지 말라고 알려주세요 (Ctrl+S).
  • Blender의 3D 모델: 모디파이어 기반, 깔끔한 로우 폴리, 플랫 쉐이딩; /roblox-r6-armor 키트 스타일의 기어.
  • 데일리 리워드 없음 (오프라인/AFK 수익 선호). 모든 곳에 "?" 미스터리 헥스를 유지하세요 — "?"가 실제 노드가 되면, 그 너머에 새로운 "?" 헥스를 추가하세요.
  • 결정됨 / 거부됨 (재제안 금지): 베이스 보호, 리버스 스킵, "전체 업그레이드" (NPC당 Max 버튼만), 코스메틱 샵, Trophy 트리 (Raid Tokens 유지; 리버스 일일 상위 3위 + 5번째 리버스마다 획득). Weather Machine = 플롯당 정확히 1개. 시너지 튜토리얼: 사용자가 요청할 때까지 보류.
  • 플레이어가 완전히 막히지 않도록 하세요. 비용/트리/리버스 변경은 항상 작동하는 라인으로 가는 경로를 유지해야 합니다 (Main에는 lineCost + rescue 최고 및 Cash-Tree 가드가 있음 — 작동 상태 유지).

Studio MCP 워크플로우

  • Studio id는 세션마다 변경됩니다 — list_roblox_studios로 가져오세요.
  • Play 모드에서는 데이터모델 편집이 불가능합니다. 사용자가 직접 플레이테스트합니다: get_studio_state를 확인하세요; 플레이 중에는 여전히 Server 데이터모델을 통해 스크립트를 읽을 수 있습니다 (Game.ServerScriptService.Main.Source). 사용자가 끝낼 때까지 기다리세요 (몇 분마다 폴링); 사용자가 몇 분 동안 움직이지 않으면 플레이테스트를 중지하고, 그 사실을 알리세요. "저장되었는지 확인해줘"라고 요청하면: 편집 모드에서만 수정 사항이 유지됩니다.
  • execute_luau in Client/Server에는 자체 require 캐시가 있습니다: 거기서 require(module)은 실행 중인 복사본이 아니라 새로운 복사본입니다 (몽키패칭은 효과 없음). 게임의 리모트를 통해 실행 상태에 도달하세요 (ReplicatedStorage.Remotes.Request:InvokeServer(action, ...), admin ops 포함) 또는 인스턴스/속성을 통해. 편집 모드에서 Config 편집을 테스트하려면 require(Config:Clone())을 사용하세요.
  • 스크립트 편집: execute_luau를 통한 ScriptEditorService:UpdateSourceAsync, string.find(src, old, 1, true)로 정확한 찾기/바꾸기 및 일치가 고유한지 확인. [==[ ]==] 문자열 사용 (코드에 종종 ]] 포함).
  • UI 모듈의 시작 함수는 Luau의 200개 로컬 레지스터 제한에 도달합니다 ("Out of local registers"). 거기에 새로운 최상위 로컬을 추가하지 마세요: 새로운 상태/함수는 공유 ext 테이블 또는 do ... end 블록 안에 넣으세요.
  • 드문 상태(예: 전체 라인)를 테스트하려면 편집 모드에서 Config 상수를 일시적으로 변경하고, 플레이테스트한 다음 되돌리세요.
  • ET_NoSave로 플레이테스트하여 확인: start_stop_play, screen_capture, get_console_output. user_mouse_input x/y는 GUI/화면 좌표입니다: 월드 포인트는 WorldToScreenPoint 사용 (= 뷰포트 y - 58); UI는 AbsolutePosition 사용. 스크린샷은 스케일링됩니다 (~2011px 뷰포트의 0.955). TextBox에 textInput은 도달하지 않음 — 대신 리모트를 통해 리딤 스타일 플로우를 테스트하세요.
  • Studio의 DataStore는 실제 것입니다 (API 접근 켜짐): 테스트 중에 작성하는 모든 것(예: 테스트 코드)은 나중에 삭제되어야 합니다.

게임 맵 (항목 위치)

  • ReplicatedStorage.Shared.Config — 모든 튜닝: Items, Employees, Perks, Materials, Events, Robux, RobuxClusters, Themes, TreePaths/TreeLayout/RebirthLayout, AURA (누가 어떤 타일을 버프/디버프하는지), CAPACITY_PERKS, MAX_LIVE_CUBES (드로퍼 라인당) / MAX_PLOT_CUBES, Weather Machine 함수 (weatherChance, weatherUpgradeCost = 레벨당 다음 리버스 비용의 일부, weatherRoll, weatherOwned), Raid 정의 + 토큰.
  • ReplicatedStorage.Shared.Grid — 셀 수학 (20x20 타일, TILE=4). 회전 r: 0=-Z 1=+X 2=+Z 3=-X.
  • ReplicatedStorage.Shared.VFX — 파티클 프리셋; VFX.burst는 색상당 하나의 이미터를 만듭니다.
  • ServerScriptService.Main — 세션, 모든 리모트 액션에 대한 handlers.* (batch 드래그-빌드, upgradeWeather, redeemCode, buyRaidToken 포함), Weather Machine 데이터 (data.wm, Factory.weatherHook), rescue, Heartbeat 루프. pushState는 배치 중에 보류될 수 있습니다 (s.holdPush).
  • ServerScriptService.Server.{Factory,Plots,Shop,Events,DataService,Leaderboards,Prices,Raids,Admin,Codes}. Factory: 라인당 큐브 수 (session.lineCount, uncount), lineCap, 드로퍼의 LineFull 속성, 버킷 블로커 검사 (O(n) 유지, 라인은 100개 큐브 보유 가능), 배치 리빌드를 위한 Factory.hold. Admin: 관리자 전용 ops (온라인/오프라인/크로스-서버 선물, 이벤트, 공지, 코드). Codes: DataStore ET_Codes_v1 (키 codes + uses_<CODE>), 종류 cash/scaled/rp/token/boost, 날짜, 최대 사용 (0 = 무제한).
  • StarterPlayerScripts.ClientModules.{UI,Build,Cubes,Life,Boards,Aura,Pop} — UI = HUD, 트리, 모달, 검사 패널; Build = 고스트, 드래그/배치 배치(투명 플레이스홀더 포함), 오른쪽-홀드 삭제, 이동; Aura = 녹색/빨간색/노란색 타일 사각형. 관리자 패널 UI: ServerStorage.AdminGui (+ AdminClient), 관리자의 PlayerGui에만 복제됨.
  • 트리 캔버스는 StarterGui.TreeGui.Window.Pan.{Canvas,RebirthCanvas,RobuxCanvas}.Nodes에 있는 작성된 노드입니다 (속성 Q, R, Ring, Path, Mystery). 새 노드 = 해당 셀에서 "?" 노드 이름 변경/변환 (Mystery 제거, Path 설정) + ID를 Config.TreePaths/RebirthLayout에 추가. 위치: 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.
  • Studio 전용 개발 리모트: devEvent, devCash, devRobux, devRobuxRemove, devRobuxReset, devOffline, devTutorial. 관리자 리모트 (admin, op, ...)는 Studio에서 소유자에게 작동합니다 (자신에게 rp/cash/token 선물).
  • 실제 저장 데이터에 실수로 테스트하지 마세요. workspace:SetAttribute("ET_NoSave", true)를 편집 모드에서 설정한 후 임시 플레이테스트하고, 이후에 제거하세요.

알려진 문제점 (각각 한 번씩 우리를 괴롭혔습니다)

  • 프리미엄 NPC 배치 오류가 "고스트" 타일을 남겼습니다 → place는 pcall 내에서 롤백과 함께 빌드합니다; 그 패턴을 유지하세요.
  • PlayerAdded가 일시 중단됩니다 (Shop.checkPasses, DataStore 로드): 각 일시 중단 후 세션이 여전히 유효한지 확인하거나, 떠난 플레이어가 소유자 없이 플롯이 재구성됩니다. PlayerRemoving은 저장 전에 플롯을 해제합니다.
  • UIGradient는 BackgroundColor3를 곱합니다 — 복제된 청록색 프레임에 보라색 그라데이션을 적용하면 네이비색이 렌더링됩니다. 그라데이션을 통해 색상을 변경할 때 배경을 흰색으로 설정하세요.
  • 현금 바에는 Bump UIScale이 있습니다: AbsoluteSize에서 위치를 지정하는 모든 것은 해당 스케일로 나누어야 합니다.
  • 빌드 모드에서 마우스 오른쪽 버튼 = 홀드하여 삭제; 카메라 팬은 가운데 마우스 / WASD입니다.
  • 트리 드래그 시작은 UIS.InputBegan을 사용해야 합니다 (버튼 누름이 win.InputBegan에 도달하지 않음).
  • 바닥 테마 텍스처는 바닥 위에 있어야 합니다 (Texture 인스턴스); 절대 바닥의 Material을 변경하지 마세요.
  • 사용자 파티클 시트는 작은 모양의 2x2 플립북입니다 → Size를 ~2–2.5x 스케일; 멀티컬러 = 여러 이미터.
  • 새로 업로드된 텍스처는 잠시 동안 흐릿하게 보일 수 있습니다 (Roblox 처리).
  • 높은 등급의 드로퍼는 단계당 엄청난 작업이 필요합니다; 약한 라인은 ~$1에 판매됩니다 (빈 큐브 가치).
  • 이미지: upload_image는 로컬 http 서버에서 작동합니다 (예: http://127.0.0.1:8765/<file>).
  • FBX 파이프라인: Blender에서 use_selection=True, object_types={'MESH'}, apply_unit_scale=True, mesh_smooth_type='FACE'로 %LOCALAPPDATA%\Temp\et_export\로 내보내기; 컴퓨터 사용으로 가져오기 (Asset Manager → Import → 경로 입력 → Import), workspace.<FbxName>에 배치됩니다. 가져오기는 X축을 미러링합니다: Blender 좌표에서 CFrame.new(-x_b, z_b, y_b)로 부품을 배치하세요. 미리보기 렌더링: 임시 "ET_Preview" 장면 → 단계별 이미지.
  • 게임 내 외부 링크는 허용되지 않습니다: Discord/그룹은 게임 페이지의 Social Links에; 게임 내에는 GroupService:PromptJoinAsync(groupId) "Join group" 버튼만.

현재 수익화 레이아웃

  • Robux 상점 = 서로 팬으로 넘길 수 있는 별도의 섬 (Config.RobuxClusters: Game Passes, Premium Workers, Cash, Boosts & Events). 패스 추가 = 해당 패스의 id를 섬의 items에 추가 + RobuxCanvas.Nodes에 헥스 추가.
  • 패스와 제품은 섬과 외곽선 애니메이션으로 구분되며, 레이블로는 절대 구분하지 않습니다.
  • 가격은 실시간으로 가져옵니다 (Server.Prices → ReplicatedStorage 속성 RobuxPrices).
  • 패스 ID: HypeQueen 2026442663, DiamondWorker 2026394625, PassMidas 2025590666, PassLuck 2025848628, PassDrop 2025464639, PassVIP 2026922652, GoldenRobot 2025374681, LayoutSlot3 2026652648, LayoutSlot4 2026010654, Pass2x 2027138654.
  • 제품 ID: 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.
  • 층은 설정에서 선택할 수 있는 무료 리버스 보상입니다. 공장 저장: 2개의 무료 슬롯, 슬롯 3–4는 패스.
  • 후반 게임 플레이어는 수십 경 이상과 30+ 리버스를 보유합니다: 후반 콘텐츠 가격을 고정 숫자가 아닌 Config.rebirthCost의 일부(영원히 스케일링)로 책정하세요; 같은 이유로 코드는 기본적으로 "다음 리버스의 %"입니다.

사용자의 에셋

아이콘: 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 (line-full sign), backpack_cubes 84466301181838 / crate_cubes 108346564955404 / chest_cubes 131689000211065 (capacity perks).

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

파티클 (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"] (Decals 목록에서 ID 확인): 유용한 것들 — Down arrow 17368169201, Codes 17368032566, MultiGifts 15402969720, Expand 17368183719, Click 17260727409, Rocket 16670799841, Box 17368122337, Crate 17368402884. CubePets 17368391613은 개 — 펫이 아닌 것에는 절대 사용하지 마세요.

프로모션 비디오 레시피 (완전 자동화, 첫 승인 후 사용자 클릭 없음)

  1. 한 번 승인: 컴퓨터 사용으로 Roblox Studio + 시스템 키 조합이 있는 Game Bar에 접근, 그리고 ~/Videos 폴더 접근 (Game Bar는 Videos\Captures에 저장).
  2. 쇼케이스 상태: ET_NoSave 설정, Play 시작, 그런 다음 Request 리모트를 통해: devCash, 모든 현금-트리 노드 잠금 해제 (진행이 없을 때까지 unlock 반복), 레이아웃 지우기, 4개 라인 구축 (드로퍼 x=1 r=1, 벨트 x=2..17, 셀러 x=18; 양쪽에 작업자가 벨트를 향하도록). Dropper2–4를 사용하여 큐브가 실제로 채워지고 실제 숫자로 판매되도록 합니다.
  3. 클라이언트의 디렉터: CameraType=Scriptable과 _G.DirCF를 강제하는 BindToRenderStep at Camera+5; Hold/Move/Orbit 헬퍼; HUD ScreenGui 토글 (TreeGui 제외). 셀→월드: Plot1의 경우 X = -134 + 4x, Z = -96 + 4z. 녹화 전 screen_capture로 미리보기 프레이밍.
  4. 녹화: Studio 포커스, win+alt+r → 샷 실행 (execute_luau, < 60 초) → win+alt+r. 샷 사이에 devEvent("")로 자연스러운 이벤트 중지. devEvent("Thunderstorm" | "MeteorShower" | "BloodMoon" | "CashRain" | "GoldenHour" | "Frost")로 이벤트 트리거. 타임스탬프가 있는 연락처 시트로 클립 확인하고 나쁜 것은 다시 찍기. 5.*

…

[번역을 위해 잘림]

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.

관련 스킬