{"id":23666670,"url":"https://github.com/iteranya/mobtalkersdk","last_synced_at":"2025-12-11T06:30:14.881Z","repository":{"id":259714567,"uuid":"879241437","full_name":"Iteranya/MobTalkerSDK","owner":"Iteranya","description":"A python script to Json FSM for Mob Talker Mod","archived":false,"fork":false,"pushed_at":"2024-11-27T08:38:49.000Z","size":96375,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-29T07:33:29.525Z","etag":null,"topics":["alpha-python","building-bridges","fsm-but-it-s-quirky","jsonxpython","lua-bashing","minecraft-fandom","omega-json","python-json-enemiestolovers","python-lua-loverstoenemies","self-indulgent"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Iteranya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-27T11:47:59.000Z","updated_at":"2024-11-27T01:58:59.000Z","dependencies_parsed_at":"2024-11-12T04:17:52.020Z","dependency_job_id":"afe45373-8a9d-4630-8c5a-0dd868efe5c2","html_url":"https://github.com/Iteranya/MobTalkerSDK","commit_stats":null,"previous_names":["iteranya/mobtalkersdk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iteranya%2FMobTalkerSDK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iteranya%2FMobTalkerSDK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iteranya%2FMobTalkerSDK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iteranya%2FMobTalkerSDK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Iteranya","download_url":"https://codeload.github.com/Iteranya/MobTalkerSDK/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239675035,"owners_count":19678516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpha-python","building-bridges","fsm-but-it-s-quirky","jsonxpython","lua-bashing","minecraft-fandom","omega-json","python-json-enemiestolovers","python-lua-loverstoenemies","self-indulgent"],"created_at":"2024-12-29T07:33:38.233Z","updated_at":"2025-12-11T06:30:14.842Z","avatar_url":"https://github.com/Iteranya.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mob Talker Redux SDK\n\n### Yes, I'm doing this...\n\n## Foreword\n\nThis thing is made because of how bloody frustrating it is to integrate scripting language like Lua to Minecraft. From the path files that just asking for trouble and the way JVM is... Yeah, no, hell no, I am not compiling anything in Minecraft.\n\nSo I ditched Lua and I put together THIS!\n\nWhat this does is that, you can use this to comfortably build and test your Mob Talker Script. It also come with a resouece pack compiler. Create your resource pack for  the Mob Talker Script in one click, etc, etc.\n\nThis is a tool designed for Mod Developer's use for now. (To Compliment the Mob Talker Redux VN Framework). I want to make a nicer version of this tiny SDK, but eh, this is as far as I can go for now. \n\n...\n\nAnyway, if I pull this off, consider Mob Talker Mod revived.\n\n## TO DO\n\n- [x] Build A Dummy Script For Testing\n- [x] Build A Bunch of Basic Commands\n- [x] Build The Compiler\n- [x] Build The FSM Reader\n- [x] Build The Terminal VN Game Engine\n- [x] Build A Better Read Me\n- [ ] Build A Better Documentation\n- [ ] Organize The SDK into an Actual SDK\n- [ ] Organize The Script\n- [ ] Set Project Directory\n- [ ] Fix The Import (Why is Import so hard? I don't get it)\n\n## Features\n\n- An example script to reverse engineer!\n- Somewhat Organized Codebase \n- Extensible By Design, just yoink and extend.\n- ~~A Terminal VN Engine \"That Just Works\" written by Claude!~~ \n- Everything is written by human. AI Coding Attempts have been tried and fail spectacularly and is immortalized somewhere in the commit history. Do not use AI. Believe in yourself. Whatever messs you cook up is always better than the sophisticated BS an AI can cook up. I learned this the hard way.\n\n(No, I am not a good programmer if you're wondering)\n\n## Setting Up Your Workshop\n\nStep 0: Install Python, then `pip install dataclasses` (You might be able to skip the pip install dataclasses part, I forgot if this is default python stuff, I'll consider turning to primitive class)\n\nStep 1: Make an empty folder\n\nStep 2: `git clone https://github.com/Iteranya/MobTalkerSDK`\n\nStep 3: Open the thing in VS code\n\nStep 4: Locate the Workshop folder\n\nRight... That\n\n## Script Development Workflow\n\n0. The Folders\n\nbackups - Just some stuff, nothing important\n\nworkshop - Where you'll do your script making\n\nworkshop/core - Don't touch, unless you're looking to add new features\n\nworkshop/script - an example of how to organize your stuff into multiscript\n\n1. `singleFileDemo.py`\n\nYou can think of this as a 'template' file that you can use to create your script.\nThere's comments in there explaining the bare basics. \n\nYou can run this file and it will automatically compile it into a json file.\n\n(if you're in VS Code, that's the run bottom at the top right of the screen)\n\nIt'll show up somewhere outside the workshop, near main.py, usually\n\n2. `multiFileDemo.py`\n\nExactly what it says on the tin. This and the script folder and everything in it, is an example of how you can use this thing work on Multiple Script.\n\nAgain, just run the file and it'll create a single Json (the scripts get combined into one, yes)\n\n(More on this later)\n\n3. `characters.py`\n\nThis is where you make character.\nYou can get creative, most of the stuff there are fluff (like description and traits)\n\nThe important parts are:\n\n- id - this is the name of the folder containing character sprites\n- name - this is the character's displayed name\n- outfit - it's \"default\" by default, it contains character's default outfit (more info on this at the characters file)\n\n3. main.py\n\nYou can think of this as your very own debugger to test the script. \nJust run\n\n`python main.py \"storyname.json\"`\n\nAnd you should be able to start playing it in your terminal before cracking open Minecraft.\n\nTest the branching, states, make sure stuff happen as you like\nIt's a terminal, it doesn't support images. \n\n(Yet, might make a simple UI Presentation after this)\n\nAnyway, the storyname.json is the end product. \n\nWhat to do with the storyname.json???\n\n4. Minecraft\n\nCheck out the [Mob Talker Redux](https://github.com/Iteranya/MobTalkerRedux) in my repo for the mod itself.\n\nIt's currently a framework, not a functional mod. I mean it is a functional mod. Just doesn't have a content beyond the demo...\n\nBut VN Engine is already in the mod, just check out the current mod for example implementation.\n\n## The Methods/Scripting\n```\nfrom characters import Cupa,Andr # Import characters you've defined in characters.py\nvn = VisualNovelModule() # Planned to have Multi Module support, but for now... Yeah, just this... unfortunately...\nc = Cupa # Defined in characters folder (Not Inside Core)\np = \"Player\" # Works with String Too~ (The 'say' function, I mean)\nstoryName = \"First Meeting\" # This will be the name of the Json File\n\ndef story(): ## This is the main method for running the story.\n    vn.setVar(\"aff\",0) # Setup the variables\n    vn.setVar(\"gamemode\",\"None for now\") # Initialize them\n\n    vn.initialize(storyName) # Actually unused for now, but good practice for future proof stuff\n    vn.start() # Same as above\n    vn.label(\"start\") # This is a 'Label', it will be used by the jump and choice to know where to go\n    vn.show_left(c,\"normal\") # c is 'Cupa', \"normal\" is the sprite name, normal.png. It will be displayed on the left.\n    vn.say(\"???\",\"Hmm?\") # Say function (name, content). The name takes either Character class or a regular string.\n    vn.show(c,\"normal\") # just `show()` function makes the character move to the middle\n    vn.say(None,\"The girl standing before you was strange. She looks like a human wearing a creeper hoodie, is she lost?\") # Yes, can be blank too\n    vn.say(\"???\",\"Oh, a player, hey\")\n    vn.choice({\n        \"hi\": \"Hi?\", # Format is (label to jump to : displayed text), this goes to the 'hi' label\n        \"who\": \"Who are you?\",\n        \"engarde\": \"EN GARDE!!!\"\n    })\n\n    vn.label(\"hi\") # This one is hi label\n    vn.addVar(\"aff\", 5) # Adds a variable~\n    vn.show(c,\"happy\") # happy.png under cupa/default/happy.png\n    vn.say(\"???\",\"Hi! Didn't expect to meet you, ever...\")\n    vn.say(p,\"You know me?\")\n    vn.show(c,\"normal\")\n    vn.say(\"???\",\"Oh for sure! You're 'The Player\")\n    vn.say(p,\"Is that a big deal?\")\n    vn.show(c,\"happy\")\n    vn.say(\"???\",\"Is it a big deal for a creeper to look like a chick?\")\n    vn.jumpTo(\"who\") # Jump~\n```\nRead More Comments and Instructions on how each method do stuff in the demo files (Still WIP, sorry)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiteranya%2Fmobtalkersdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiteranya%2Fmobtalkersdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiteranya%2Fmobtalkersdk/lists"}