Communitygithub.com

IAmCosmin-YT/emotion-factory-devlog-shorts

Erstelle, repariere und vermarkte das Roblox-Spiel Emotion Tycoon über Studio MCP und Blender: Deine Hausregeln, Asset-IDs, Pass-IDs, bekannte Fallstricke und das automatisierte Promo-Video-Rezept.

Was ist emotion-factory-devlog-shorts?

Dieses Skill-Dokument definiert eine umfassende Betriebsvereinbarung und ein Playbook für die Entwicklung und Wartung des Roblox-Spiels 'Emotion Tycoon' in der Gruppe 'Squashed Studios' (ID 706695552). Es enthält die strengen Designregeln des Benutzers (keine KI-aussehende UI, immer vorhandene handgezeichnete Assets bevorzugen, bestimmte Layout-Vorlagen für Fenster) sowie eine vollständige Karte des Spielarchivs (Konfiguration, Server-Skripte, Client-Module, Admin-Tools). Das Dokument beschreibt den genauen Arbeitsablauf mit Studio MCP, einschließlich der Handhabung von Studio-ID-Änderungen, Play-Test-Praktiken, direkter Bearbeitung von Skripten und dem Ausführen von Luau. Es behandelt auch die Monetarisierung (Shop-Aufteilung, Pass- und Produkt-IDs) und die handgezeichneten Assets des Benutzers (Icons, Böden, Partikel). Ein detailliertes Rezept für automatisierte Promo-Videos ist enthalten. Der Fokus liegt darauf, dass der Entwickler die volle Kontrolle behält, ohne sich mit KI-generierten Elementen oder fehlerhaften Änderungen auseinandersetzen zu müssen.

Funktioniert mit~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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Emotion Tycoon – Arbeitsvereinbarung und Playbook

Verwende dies immer, wenn der Benutzer Emotion Tycoon, seine Bäume, Arbeiter, Auswerfer, Boosts, Events, Stockwerke, Speicherplätze, Spielpässe, Überfälle, Codes, das Admin-Panel erwähnt oder Symbole, Partikel, UI, Modelle, Thumbnails oder ein Promo-Video dafür anfordert – selbst wenn er nur ein Symptom beschreibt („Der Baum steckt fest“, „Partikel sehen klein aus“, „Ich habe $0 und bin festgefahren“).

Der Benutzer ist ein Solo-Roblox-Entwickler (Gruppe „Squashed Studios“, ID 706695552), der einen Großteil der Kunst selbst zeichnet und wählerisch ist, wenn etwas nach „vibecoded“ oder KI-generiert aussieht. Alles unten stammt aus seinen eigenen Korrekturen; behandle es als seinen Hausstil, nicht als Vorschlag. Er sendet oft lange sprachgetippte Batches von Anfragen: Wandle jeden Batch in eine Aufgabenliste um, erledige zuerst die schnellen Bugs und beantworte jeden Punkt im Abschlussbericht (einschließlich derer, die du abgelehnt hast).

Die stehenden Regeln des Benutzers

  • Respektiere seine Änderungen. Überschreibe niemals manuelle Modell-/UI-Änderungen des Benutzers. Lies vor dem Schreiben.
  • Keine KI-aussehende UI. Keine Text-Tags/Chips/Abzeichen („PASS“, „NEU“, „HEISS“), keine glänzenden Gradienten-Pills auf Dingen, keine Symbole, die Textfelder überlappen, keine einfachen schwebenden Textzeilen, die Dinge erklären. Unterscheide Dinge durch Layout, Umriss-Stil, Farbe oder Gruppierung.
  • Neue Fenster: klone ein Fenster, das der Benutzer bereits genehmigt hat (HUD.FriendModal Zwei-Spalten-Layout, RebirthModal, OfflineModal) und tausche seinen Inhalt aus, anstatt eines von Grund auf neu zu erstellen. Ein von Grund auf neu erstelltes Fenster wurde als „sichtbar mit KI gemacht“ abgelehnt. Textfelder = versenkte weiße Box mit dem dunklen 3px-Umriss, dunkler Text.
  • Zahlen, die der Spieler besitzt, sehen aus wie die Geldleiste. Z.B. Raid-Tokens = ein Klon von HUD.Cash daneben mit dem Token-Symbol, Hover (PC) / Tippen (Handy) für einen Tooltip. Sorge immer dafür, dass Hover-Info auf Mobilgeräten funktioniert (Tippen schaltet um).
  • Echte Stud-Textur für UI-Hintergründe: rbxassetid://100839690373358 (niemals eine prozedurale).
  • Verwende zuerst ihre handgefertigten Assets (IDs unten). Generiere keine Ersatzteile, wenn eines von ihnen existiert.
  • Beende jede Antwort, die visuelle Elemente hinzufügt, mit einer kurzen Liste von Assets, die sie zeichnen könnten, um Platzhalter zu ersetzen.
  • Robux-Glyphe ist das Private-Use-Zeichen U+E002.
  • Halluziniere nicht. Suche im Web / lies den Code, wenn du dir bei einer API oder ID unsicher bist.
  • Öffne kein zweites Roblox Studio. Computerbenutzung ist nur für Dinge, die MCP nicht kann (FBX-Import, Game Bar).
  • Speichere niemals ihre .blend (C:\Users\cosul\Desktop\models_for_roblox\RobloxTycoon.blend); erinnere sie an Strg+S.
  • 3D-Modelle in Blender: modifier-basiert, sauberes Low-Poly, flach schattiert; Ausrüstung im /roblox-r6-armor Kit-Stil.
  • Keine täglichen Belohnungen (sie bevorzugen Offline/AFK-Verdienste). Behalte überall „?“-Mystery-Hexes – wenn ein „?“ zu einem echten Knoten wird, füge neue „?“-Hexes dahinter hinzu.
  • Entschieden / abgelehnt (nicht erneut vorschlagen): Basisschutz, Überspringen der Wiedergeburt, „Alle verbessern“ (nur ein Max-Button pro NPC), ein Kosmetik-Shop, ein Trophäen-Baum (Raid-Tokens bleiben; verdient durch tägliche Top 3 bei Wiedergeburt + alle 5 Wiedergeburt). Wettermaschine = genau 1 pro Grundstück. Synergie-Tutorial: auf Eis, bis sie fragen.
  • Lass den Spieler niemals in einer Sackgasse stecken. Jede Änderung an Kosten/Bäumen/Wiedergeburt muss einen Pfad zu einer funktionierenden Linie erhalten (Main hat lineCost + rescue-Aufladung und einen Cash-Tree-Wächter – halte sie funktionsfähig).

Studio MCP-Workflow

  • Die Studio-ID ändert sich pro Sitzung – hole sie mit list_roblox_studios.
  • Datenmodell bearbeiten ist im Play-Modus nicht verfügbar. Der Benutzer testet selbst: Prüfe get_studio_state; während er spielt, kannst du Skripte immer noch über das Server-Datenmodell lesen (game.ServerScriptService.Main.Source). Warte auf ihn (pollen alle paar Minuten); stoppe seinen Playtest nur, wenn er minutenlang inaktiv war, und sag es ihm. Wenn er fragt „Stelle sicher, dass Dinge gespeichert sind“: Änderungen bestehen nur, wenn sie im Edit-Modus vorgenommen wurden.
  • execute_luau in Client/Server hat seinen eigenen require-Cache: require(module) dort ist eine frische Kopie, nicht die laufende (Monkey-Patching bewirkt nichts). Erreiche den laufenden Zustand über die Remotes des Spiels (ReplicatedStorage.Remotes.Request:InvokeServer(action, ...), inkl. admin-Ops) oder Instanzen/Attribute. Um Config-Änderungen im Edit-Modus zu testen, require(Config:Clone()).
  • Skript-Änderungen: ScriptEditorService:UpdateSourceAsync via execute_luau, exaktes Suchen/Ersetzen mit string.find(src, old, 1, true) und bestätige, dass der Treffer eindeutig ist. Verwende [==[ ]==]-Strings (Code enthält oft ]]).
  • Die Startfunktion des UI-Moduls ist am Limit von 200 lokalen Registern von Luau („Out of local registers“). Füge dort niemals neue Top-Level-Lokale hinzu: Lege neuen Zustand/Funktionen auf die gemeinsame ext-Tabelle oder innerhalb von do ... end-Blöcken.
  • Um einen seltenen Zustand zu testen (z.B. eine volle Linie), ändere vorübergehend eine Konfigurationskonstante im Edit-Modus, spiele dann und stelle sie zurück.
  • Verifiziere durch Spieltests mit ET_NoSave: start_stop_play, screen_capture, get_console_output. user_mouse_input x/y sind GUI-/Bildschirmkoordinaten: für einen Weltpunkt verwende WorldToScreenPoint (= Viewport y - 58); für UI verwende AbsolutePosition. Screenshots werden skaliert (~0,955 des 2011px-Viewports). textInput in ein TextBox erreicht es nicht – teste stattdessen Redeem-artige Flows über das Remote.
  • DataStores in Studio sind die LIVE-DataStores (API-Zugriff aktiv): Alles, was du beim Testen schreibst (z.B. Test-Codes), muss danach gelöscht werden.

Spielkarte (wo was lebt)

  • ReplicatedStorage.Shared.Config – alle Einstellungen: Items, Employees, Perks, Materials, Events, Robux, RobuxClusters, Themes, TreePaths/TreeLayout/RebirthLayout, AURA (wer welche Kacheln bufft/debufft), CAPACITY_PERKS, MAX_LIVE_CUBES (pro Auswerfer-Linie) / MAX_PLOT_CUBES, Wettermaschinen-Funktionen (weatherChance, weatherUpgradeCost = Anteil der Verdopplung der nächsten Wiedergeburt pro Level, weatherRoll, weatherOwned), Raid-Definitionen + Tokens.
  • ReplicatedStorage.Shared.Grid – Zellen-Mathematik (20x20 Kacheln, TILE=4). Rotation r: 0=-Z 1=+X 2=+Z 3=-X.
  • ReplicatedStorage.Shared.VFX – Partikel-Voreinstellungen; VFX.burst erstellt einen Emitter pro Farbe.
  • ServerScriptService.Main – Sitzungen, handlers.* für jede Remote-Aktion (inkl. batch für Drag-Bauen, upgradeWeather, redeemCode, buyRaidToken), Wettermaschinen-Daten (data.wm, Factory.weatherHook), Rettung, Heartbeat-Schleife. pushState kann gehalten werden (s.holdPush) während eines Batches.
  • ServerScriptService.Server.{Factory,Plots,Shop,Events,DataService,Leaderboards,Prices,Raids,Admin,Codes}. Factory: Würfelanzahl pro Linie (session.lineCount, uncount), lineCap, LineFull-Attribut auf Auswerfern, Bucket-Blocker-Prüfung (halte es O(n), Linien können 100 Würfel halten), Factory.hold zum Batch-Neubau. Admin: Admin-only ops (Gift online/offline/cross-server, Events, Announce, Codes). Codes: DataStore ET_Codes_v1 (key codes + uses_<CODE>), Arten cash/scaled/rp/token/boost, Daten, max. Verwendungen (0 = keine Begrenzung).
  • StarterPlayerScripts.ClientModules.{UI,Build,Cubes,Life,Boards,Aura,Pop} – UI = HUD, Bäume, Modals, Inspect-Panel; Build = Geist, Drag/Batch-Platzieren mit durchsichtigen Platzhaltern, Rechtsklick-Halten Löschen, Bewegen; Aura = die grünen/roten/gelben Kachel-Quadrate. Admin-Panel-UI: ServerStorage.AdminGui (+ AdminClient), wird nur in das PlayerGui von Admins geklont.
  • Baum-Canvases sind erstellte Knoten in StarterGui.TreeGui.Window.Pan.{Canvas,RebirthCanvas,RobuxCanvas}.Nodes (Attribute Q, R, Ring, Path, Mystery). Ein neuer Knoten = benennen/konvertieren eines „?“-Knotens an dieser Zelle (Mystery entfernen, Path setzen) + die ID zu Config.TreePaths/RebirthLayout hinzufügen. Position: Cash x = 0,4654 + 0,0691q, y = 0,6062 + 0,0850r + 0,0425q; Wiedergeburt x = 0,5 + 0,1230q, y = 0,5 + 0,1300r + 0,0650q.
  • Studio-only Dev-Remotes: devEvent, devCash, devRobux, devRobuxRemove, devRobuxReset, devOffline, devTutorial. Admin-Remotes (admin, op, ...) funktionieren im Studio für den Besitzer (Gift rp/cash/token an sich selbst).
  • Teste niemals versehentlich am echten Speicher. workspace:SetAttribute("ET_NoSave", true) im Edit vor einem Wegwerf-Playtest, entferne es danach.

Bekannte Fallstricke (jeder hat uns einmal gebissen)

  • Premium-NPC-Platzierungsfehler hinterließen „Geister“-Kacheln → place baut innerhalb von pcall mit Rollback; behalte dieses Muster bei.
  • PlayerAdded gibt nach (Shop.checkPasses, DataStore-Ladevorgänge): Überprüfe nach jedem Yield, ob die Sitzung noch aktuell ist, sonst bekommt ein Spieler, der gegangen ist, sein Grundstück ohne Besitzer neu aufgebaut. PlayerRemoving gibt das Grundstück VOR dem Speichern frei.
  • Ein UIGradient multipliziert BackgroundColor3 – ein geklonter türkiser Rahmen mit einem lila Gradienten ergibt marineblau. Setze den Hintergrund auf Weiß, wenn du durch den Gradienten umfärbst.
  • Die Geldleiste hat eine Bump UIScale: alles, was von ihrer AbsoluteSize positioniert wird, muss durch diese Skala geteilt werden.
  • Rechte Maustaste im Build-Modus = Halten zum Löschen; Kamerabewegung ist mittlere Maustaste / WASD.
  • Baum-Drag-Start muss UIS.InputBegan verwenden (Tastendrücke erreichen nie win.InputBegan).
  • Boden-Themen-Texturen gehen oben auf den Boden (Texture-Instanz); ändere niemals das Material des Bodens.
  • Benutzer-Partikel-Bögen sind 2x2 Flipbooks mit kleinen Formen → skaliere Größe ~2–2,5x; Mehrfarben = mehrere Emitter.
  • Neu hochgeladene Texturen können eine Weile unscharf aussehen (Roblox-Verarbeitung).
  • Hochstufige Auswerfer benötigen riesige Arbeit pro Stufe; schwache Linien verkaufen sich für ~$1 (leerer Würfelwert).
  • Bilder: upload_image funktioniert von einem lokalen http-Server (z.B. http://127.0.0.1:8765/<file>).
  • FBX-Pipeline: Export aus Blender mit use_selection=True, object_types={'MESH'}, apply_unit_scale=True, mesh_smooth_type='FACE' nach %LOCALAPPDATA%\Temp\et_export\; Import durch Computerbenutzung (Asset Manager → Import → Pfad eingeben → Import), landet in workspace.<FbxName>. Der Importer spiegelt X: platziere Teile mit CFrame.new(-x_b, z_b, y_b) aus Blender-Koordinaten. Vorschau-Renderings: temporäre „ET_Preview“-Szene → stufige Bilder.
  • Externe Links im Spiel sind nicht erlaubt: Discord/Gruppe gehen auf die Spielseiten-Social-Links; im Spiel nur ein GroupService:PromptJoinAsync(groupId) „Gruppe beitreten“-Button.

Monetarisierungs-Layout (aktuell)

  • Robux-Shop = getrennte Inseln, zwischen denen man schwenkt (Config.RobuxClusters: Spielpässe, Premium-Arbeiter, Bargeld, Boosts & Events). Einen Pass hinzufügen = seine ID zu den items einer Insel hinzufügen + ein Hex in RobuxCanvas.Nodes hinzufügen.
  • Pässe vs. Produkte werden durch Insel- und Umriss-Animation unterschieden, niemals durch Labels.
  • Preise werden live abgerufen (Server.Prices → ReplicatedStorage-Attribut RobuxPrices).
  • Pass-IDs: HypeQueen 2026442663, DiamondWorker 2026394625, PassMidas 2025590666, PassLuck 2025848628, PassDrop 2025464639, PassVIP 2026922652, GoldenRobot 2025374681, LayoutSlot3 2026652648, LayoutSlot4 2026010654, Pass2x 2027138654.
  • Produkt-IDs: 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.
  • Stockwerke sind kostenlose Wiedergeburt-Belohnungen, die in den Einstellungen ausgewählt werden. Factory-Speicher: 2 freie Slots, Slots 3–4 sind Pässe.
  • Spieler im späten Spiel haben Sextillionen und 30+ Wiedergeburt: Preise für späte Inhalte als Anteil an Config.rebirthCost (skaliert für immer) anstatt als feste Zahl; Codes standardmäßig „% der nächsten Wiedergeburt“ aus demselben Grund.

Die Assets des Benutzers

Symbole: 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 (Linie-voll-Schild), backpack_cubes 84466301181838 / crate_cubes 108346564955404 / chest_cubes 131689000211065 (Kapazitäts-Perks).

Böden: ocean_lights 138556700370722, holy 105026190310831, pink 83692624195325, pink_green 136148045549462, redx 124121848293779.

Partikel (2x2 Bögen): 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"] (liste seine Decals für IDs auf): nützliche – Pfeil runter 17368169201, Codes 17368032566, MultiGifts 15402969720, Expand 17368183719, Click 17260727409, Rocket 16670799841, Box 17368122337, Crate 17368402884. CubePets 17368391613 ist ein HUND – verwende es niemals für Nicht-Haustier-Dinge.

Promo-Video-Rezept (vollständig automatisiert, keine Benutzereingriffe nach den ersten Genehmigungen)

  1. Einmalige Genehmigungen: Computer-Zugriff auf Roblox Studio + Game Bar mit System-Tastenkombinationen und Ordnerzugriff auf ~/Videos (Game Bar speichert in Videos\Captures).
  2. Showcase-Zustand: ET_NoSave setzen, Play starten, dann via Request-Remote: devCash, jeden Cash-Tree-Knoten entsperren (Schleife unlock bis kein Fortschritt mehr), Layout löschen, 4 Linien bauen (Auswerfer bei x=1 r=1, Bänder x=2..17, Verkäufer x=18; Arbeiter auf beiden Seiten zum Band ausgerichtet). Verwende Dropper2–4, sodass Würfel tatsächlich gefüllt und zu echten Zahlen verkauft werden.
  3. Regisseur im Client: BindToRenderStep bei Camera+5 erzwingt CameraType=Scriptable und ein _G.DirCF; Helfer für Halten/Bewegen/Orbit; HUD ScreenGuis ausblenden (nicht TreeGui). Zelle→Welt: X = -134 + 4x, Z = -96 + 4z für Plot1. Vorschau-Rahmung mit screen_capture vor der Aufnahme.
  4. Aufnahme: Studio fokussieren, win+alt+r → Aufnahme ausführen (execute_luau, < 60 s) → win+alt+r. Stoppe natürliche Events mit devEvent("") zwischen den Aufnahmen. Löse Events aus mit devEvent("Thunderstorm" | "MeteorShower" | "BloodMoon" | "CashRain" | "GoldenHour" | "Frost"). Überprüfe Clips mit einem zeitgestempelten Kontaktblatt und wiederhole schlechte Aufnahmen.

…

[abgeschnitten für Übersetzung]

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.

Verwandte Skills