#your only neuro is sama

1 messages · Page 1 of 1 (latest)

rapid quest
#

im trying to make a neuro integration mod for your only move is hustle. small issue, yomi hustle runs on godot 3.5 and the neuro sdk is for 4.1, is there a version made for godot 3 or can someone help me out. first time touching the sdk and dont really now where to start
https://github.com/Dynamite227/YourOnlyNeuroIsSama

GitHub

a work in progress neuro integration for Your Only Move Is Hustle - Dynamite227/YourOnlyNeuroIsSama

wintry hound
#

annytfSmile i guess you're in luck. since im currently working on a brotato integration i had to convert it to godot 3.6.
the code is a mess from the conversion and you would need to do a search and replace for Adesi-NeuroIntegration because custom classes don't work. so you need to directly load the files.
https://github.com/Adesii/Neuro-sdk-Brotato-Integration/tree/main/mods-unpacked/Adesi-NeuroIntegration/neuro-sdk
i also had to create 2 child nodes on the mod
https://github.com/Adesii/Neuro-sdk-Brotato-Integration/blob/f1701656c248f5141caf34a3b811376828cbccc5/mods-unpacked/Adesi-NeuroIntegration/mod_main.gd#L65-L75

im not 100% certain my sdk conversion has the same behaviour in all scenarios but so far i haven't had any issues with it

rapid quest
wintry hound
# rapid quest thank you. also, this is my first time messing with websockets or anything onlin...

well.. my version is basically just the normal godot-sdk version downgraded to work in 3.6.
in this case you don't really need to know anything about how it connects to neuro or talks to it. The underlying websocket and networking stuff is already handled and you only really need to use the functions provided by the sdk like the NeuroAction class, ActionWindow and Context.
these 3 are basically all the ones you are gonna use. and maybe the NeuroActionHandler class for manually registering and unregistering actions

rapid quest
#

my main issue is I dont really know where to start

#

once i have that ill be able to figure it out

wintry hound
#

well.. getting your mod loaded in the actual game is likely the first step.

#

assuming YOMIH uses the godot-modloader addon for the workshop integration it should be fairly easy to mod from there on out.
i would definitely recommend seeing how others have integrated neuro into their games. the other integrations like #1377258855288930356 and #1387262088359055360 etc. are a good place to look even tho they aren't in gdscript. the sdk usage is very similar

rapid quest
#

alright, ill check it out. thanks

#

on your github i just need the neuro-sdk folder right?

wintry hound
#

but you do have to set it up a bit. beyond that

rapid quest
#

i figured, ill try again later when im actually awake. thanks

wintry hound
#

tink i just decompiled YOMI and it does seem to be similar in structure to brotato. So... after you get through the initial pain of setting it up, it should be fairly easy to set everything up beyond that.

cerulean escarp
#

oops didn't mean to ping reply

cerulean escarp
wintry hound
toxic leaf
#

The main challenge will be how to tell Neuro what is going on

rapid quest
#

currently my main issue is i have no idea how to set it up. honestly i think ill have an easier time describing whats happening lmao

#

spent a lot of time today just reading files trying to wrap my head around what i need to edit and what i need to add

#

im probably severly overcomplicating it

wintry hound
#

i would recommend not pre-planning too much. there are a few caveats with modding godot 3.x that you will only run into once you start putting things together. The way i handle my project is by going 1 step at a time and once its working move onto the next one or refactor the old solution.

rapid quest
#

im using jippity

#

i can get it to listen to port 8000 but idk how to get it to connect

wintry hound
#

you search Environment Variables in the search box on windows. click on Environment Variables and add a new User variable for NEURO_SDK_WS_URL
you might need to restart or atleast logout for it to be detected. but after that godot should connect to the websocket

#

i personally haven't had much luck with jippity using actions and properly working (tho i have to add i used it with LM Studio and not with gpt 4 or 5 etc..). i would personally recommend using a local LLM with gary. something like Llama-3.1-8B-Instruct has worked really well for me

rapid quest
#

should i use absolute filepaths or local filepaths for fixing the filepaths?

wintry hound
#

well.. the godot filepaths

#

the ones that start with res://

rapid quest
#

ah ok

#

sorry if that sounds like a dumb question lol

wintry hound
#

but if you are using my sdk. a simple search and replace of Adesi-NeuroIntegration with your modname should be enough

#

since the structure you need to put it in is the same between the versions afaik

#

so: mods-unpacked/YOUR-MOD/....

#

since thats how the modloader expects the mods to be located and packed up

#

another thing you could do to easily setup the mod folders. is by installing the mod tool from the asset lib. that can generate you a manifest and a basic template so you for sure have a proper mod.
it can also export the mod so you can upload it elsewhere

#

or test it in the actual game

rapid quest
#

theres an addon called yh mod helper, or somethng like that. its made specifically for yomi hustle so ive been using that

wintry hound
#

tink well.. the mod tool is made by the modloader guys. not sure if yh mod helper integrates that or not

rapid quest
#

i think i should use the one made by the modloader guys. the yh mod helper is mostly for custom characters i found

wintry hound
#

this is the one i've been using

#

tho... not sure if it works in 3.5

rapid quest
#

i try to enable it and it gives an error

wintry hound
#

:/ yeah.. maybe it doesn't work for this godot version

rapid quest
#

the one ive been using is the yh mod assistant

wintry hound
#

mhm that one seems to do about the same as the mod tool... so should be enough

rapid quest
#

alright then ill try what you said and see if i can get it to work

wintry hound
#

hmm interesting... this mod assistant doesn't put it in a mods-unpacked folder..

#

so you might need to remove that from the path also

rapid quest
#

do i put the mods_unloaded in the modloader folder or the neuro integreation

#

i was just asking that lol

wintry hound
#

nah. it seems like yomi mods don't need the mods-unpacked path

rapid quest
#

ok i assume i put it into the neuro_integration folder that the yh assistant made

wintry hound
#

so.. it basically just res://YOUR-MOD/

#

you do need to do a tiny bit more for it to load tho

rapid quest
#

in the main scene i make a node with the mod_main script and main as a child node of that?

wintry hound
#

no

rapid quest
#

ah

wintry hound
#

the mod loader takes care of all that

#

you cannot change any of the project

#

you can only do stuff through your mod_main.gd script

rapid quest
#

yea i was a bit confused about how that might work

wintry hound
#

any changes you do to the project like adding or removing settings will not apply to the actual game once you export

rapid quest
#

makes sense

wintry hound
#

the project is basically just a testbed. so you can have a editor to work with for your mod's assets

rapid quest
#

alright. how do i get the modloader to do that

wintry hound
#

well. your mod_main.gd should be automatically be loaded. if you launch the project and put a print in your init function it should be called

rapid quest
#

im guessing i replace the modmain file that the yh assistant made with the mod_main, or do i move the code over

#

the name of the file is important im guessing

wintry hound
#

tink wdym?

#

are you taking my whole mod and putting that into your new one as a base?

rapid quest
wintry hound
#

hmm.. looking at the thing it generated it seems like the structure isn't the same between the modloader versions so i doubt it works

rapid quest
#

ah

wintry hound
#

you basically just need to replicate these few things in your mod_main.gd

rapid quest
#

no wonder nothing was loading

wintry hound
#

(the add_child_nodes() is called in the _init() function)

#

i just updated my repository btw. just moved some stuff about and used a script extension. not sure if the changes will affect you really

#

i had the changes on my local git. but didn't push them until just now

#

in yomi's case you probably want to extend the ModOverride.gd script instead of how i done Utils

rapid quest
#

what do the changes do

wintry hound
#

i used script extensions basically

#

decoupled the logic a bit.

#

script extensions basically just allows you to change logic in scripts or add new logic to them. very useful for autoloads.
and.. i basically use a script extension to store all the different neuro-sdk stuff like ActionWindow class etc. so i can just create a new one with: Utils.ActionWindow.new() instead of having to load the file every time

rapid quest
#

sounds easier to use

wintry hound
#

it is YES

rapid quest
#

also the about section on your repository says balatro

wintry hound
#

INSANECAT i knew i would forget to change it somewhere

rapid quest
#

always happens

wintry hound
#

brotato, balatro... i always mix them up ICANT

rapid quest
#

what file is the util_ext.gd file extending? its not in the mod

wintry hound
#

well. that comes from whatever game your modding

#

in your case you probably want to extend "res://ModOverride.gd"

rapid quest
#

think i found itr

wintry hound
#

no

rapid quest
#

oh

wintry hound
#

Yomi doesn't have a Utils autoload

#

you need to extend something from the autoload list. in yomi's case its probably best to just use the one that is intended to be overriden

rapid quest
#

ok i changed it to extend modoverride

wintry hound
#

well.. if you've done that. and added the child nodes in your mod_main and installed the script extension. it should probably just work?

#

assuming you changed all the paths to your own mod

rapid quest
#

ive changed the paths but im a bit confused about changes i need to make to modmain

wintry hound
#
extends Node


const AUTHORNAME_MODNAME_DIR := "Adesi-NeuroIntegration" 

var mod_dir_path := ""
var extensions_dir_path := ""

var mod_loader

func _init(ml = ModLoader):
    mod_loader = ml
    
    mod_dir_path = "res://your-mod/"

    install_script_extensions()

    add_child_nodes()

var action_handler
func add_child_nodes():
    var websocket = load("res://mods-unpacked/Adesi-NeuroIntegration/neuro-sdk/websocket/websocket.gd").new()
    websocket.name = "WebsocketNode"
    add_child(websocket)

    action_handler = load("res://mods-unpacked/Adesi-NeuroIntegration/neuro-sdk/actions/neuro_action_handler.gd").new()
    action_handler.name = "NeuroActionHandlerNode"
    add_child(action_handler)

func install_script_extensions() -> void:
    extensions_dir_path = mod_dir_path.plus_file("extensions")

    mod_loader.installScriptExtension(extensions_dir_path.plus_file("utils_ext.gd"))


func _ready() -> void:
    ModOverride.NeuroActionHandler = action_handler

tink i think this should work if you change out the paths...

#

uhhh actually.. the mod_dir_path won't work..

#

so you might need to just manually set it to "res://your-mod/"

rapid quest
#

i did that and its not doing anything when i run the game

wintry hound
#

does it not output anything in the console?

rapid quest
#

yea it doesnt put anything in the console

wintry hound
#

NeurOhISee wait i see... you need to create a mods folder next to your editor's binary files

#

and then export the mod in there

#

you can use the YHMA to auto-export the mod there

rapid quest
#

do i move it to there

#

ah

wintry hound
#

no

rapid quest
#

i see

#

i probably did something wrong when i run the project i get this

#

oh

#

wrong paths

#

whoops

#

found the issue, my stupid ass just put this

wintry hound
rapid quest
#

ok it gives me the same error but slightly different

wintry hound
#

i mean... that path is clearly wrong

rapid quest
#

it is?

wintry hound
#

do you have a Adesi-NeuroIntegration in your project?

rapid quest
#

res://Neuro_integration/Adesi-NeuroIntegration/extensions/utils_ext.gd thats the path

#

yea ill edit it soon

#

but the path is the correct path

wintry hound
#

scrajj can you show the filesystem for your project?

rapid quest
wintry hound
#

i found the issue

rapid quest
#

wait do i gotta move the modmain

wintry hound
#

Neuro_Integration =/= Neuro-Integration

rapid quest
#

ah

wintry hound
#

you have the wrong path LULE

rapid quest
#

bruh

wintry hound
#

my mod_main shouldn't cause a issue

#

since it shouldn't be loaded

rapid quest
#

it loads

#

thanks

wintry hound
rapid quest
#

when trying to run jippity in the consol is it supposed to say this

#

i should probably use Llama

wintry hound
#

mhm that looks like a correct output

rapid quest
#

oh wait right i gotta have a different tool to see what its trying to output

wintry hound
#

tho... looking at the console output in your godot. you didn't setup your environment variable correctly annytfXD

rapid quest
#

-_-

wintry hound
#

i would definitely still recommend using gary for getting started. since you won't need a full gpt when starting to test your game. once you have all the actions and everything figured out you can switch to jippity to finetune the context and see if a actual llm can play the game

#

tink unless you use jippity with something like ollama or lm studio the way i did

rapid quest
#

alright i guess i could start trying to set up the actions

#

ill start with character selection seems the simplest to start with

wintry hound
#

thats also what i started with

#

i would also probably automatically just go to the character screen without making it an action

#

thats the way i do it in brotato

rapid quest
#

wouldnt it be better to set it to pick a character when its on the character select screen? would be cool to work with online play as well

wintry hound
#

i mean yeah. but it needs to get there somehow. neuro can't press buttons. and registering a action to get from the main menu to a character screen seems... unnecessary. but i guess it depends on what you want

#

to what screen it goes to should probably be a config file or something so vedal can set it up if needed

rapid quest
#

i think im thinking too far ahead, i should make sure it works first

wintry hound
rapid quest
#

so for right now, for testing ill have it start in singleplayer and the ai will be player 2 i think\

#

Actually there's no real reason to make it player 2. It would just make it more complicated later

wintry hound
#

YES probably best to just make it player 1 for now

rapid quest
#

yea

#

first i gotta change the action files you made to actually work with yomi hustle

rapid quest
#

i did manage to get jippity working. but the game keeps crashing
i dont know what to do with outgoing message

#

@wintry hound can you help me a bit here?

wintry hound
#

hmm...

#

is that all the error is? is there more to it that you could show?

rapid quest
#

it crashes and thats the only error it gives

#

this is

wintry hound
#

scrajj well.. that means the message/action is null

#

so you didn't do something correct when creating a action maybe... or something else is messed up

rapid quest
#

most likely i did something wrong with creating actions

#

ill show you my code for that

#

i probably did something wrong in the first image where i try to set the action in the main.gd file

wintry hound
#

scrajj are the actions extending NeuroAction?

rapid quest
#

yes

wintry hound
#

scrajj weird

#

yeah im not seeing any direct issues in these

cerulean escarp
# rapid quest

is that schema wrapper putting it inside an object schema? (I'm assuming it does but just making sure)

rapid quest
#

its saying its an error in the get_ws_message function so ill show you that

#

ah wait get ws message doesnt have that function

wintry hound
#

try commenting out all the Context.send you have. i want to see something

rapid quest
#

ok

wintry hound
cerulean escarp
#

also what does jippity say when it happens

wintry hound
#

a crash on the godot side. shouldn't matter to jippity

#

especially if its about sending messages and not receiving

rapid quest
cerulean escarp
wintry hound
#

annytfHmm could you maybe send your mod here? that way i could debug it on my side and see if i see anything wrong with it

#

like the packed zip

rapid quest
#

heres what jippity is saying

cerulean escarp
#

(sometimes it does reveal some problems I didn't think it would reveal so)

cerulean escarp
wintry hound
#

just connection closed on top

rapid quest
#

maybe i accidentally broke something

#

in the message codes

#

oh wait. looking at the open ai logs, the only message jippity is getting sent is "you are now playing your only move is hustle"

wintry hound
#

well.. yeah because you are crashing on trying to send the other messages

rapid quest
#

oh, yea

wintry hound
#

scrajj i think i might have found the issue... let me test real quick

#

uhhh but im also just crashing when the single player button gets pressed..

rapid quest
#

oh. also i did use copilot a little while starting the project, it made some changes that broke everything and maybe i forgot to revert all of them

rapid quest
wintry hound
#

oh the what

rapid quest
#

its in yomi hustles file location, you just gotta copy it over to the lib folder in the yomi extracted

wintry hound
#

oh yeah now it works

rapid quest
#

alright

#

i think its the turn based fighting game framework. it doesnt get decompiled

wintry hound
#

alright... now i have the same error as you

rapid quest
#

ah so i did brake something

#

(we already knew that)

#

early on im pretty sure copilot edited this but im worried about changing it in case it brakes something

wintry hound
#

huhh wait... yeah that is completely wrong

rapid quest
#

i have since learned that vibe coding fucking sucks lmao

wintry hound
rapid quest
#

last time i try that

wintry hound
#

good

rapid quest
#

whats it supposed to say?

wintry hound
#

well.. you are creating a ws_message directly

#

when it should create a context class

rapid quest
#

oh so its not using the one that i need to send its just making a new one

wintry hound
#

not even that. that function is basically so you can call Context.send from anywhere

#

but you need to create a Context object that then gets passed as a outgoing message to the websocket node

#

thats why that function is static. it creates a instance of the script its in

#

thats why it was loading context.gd
load("res://mods-unpacked/Adesi-NeuroIntegration/neuro-sdk/messages/outgoing/context.gd").new(message, silent)
and passing it into itself

#

well. im getting a new error now. but it works annytfOk

#

replace the static func with this:

static func send(message: String, silent: bool = false):
    var websocket_node = ModLoader.get_tree().root.get_node_or_null("/root/ModLoader/@@2/WebsocketNode")
    if websocket_node != null:
        var ws_message = load("res://Neuro_integration/Adesi-NeuroIntegration/neuro-sdk/messages/outgoing/context.gd").new(message, silent)
        websocket_node.send(ws_message)
    else:
        print("WebSocket node not found at /root/ModLoader/Adesi-NeuroIntegration/WebsocketNode")
#

also i would recommend just giving your mod node a name instead of using @@2 everywhere

rapid quest
#

i copied the code and im getting the same error

wintry hound
#

like this instead and then search and replace the @@2 everywhere

#

tink its only the load that you need to change.

rapid quest
#

i downloaded the one i sent you in case somethng happened and now i get this error

#

it is sending the actions though

wintry hound
#

like these 2?

rapid quest
#

i guess i forgot a couple

wintry hound
#

annytfSigh i don't like all this path mangling either... but godot 3.x doesn't leave us another choice from what i saw..

#

once i got my brotato thing working i'll clean up the neuro-sdk and maybe release it as its own thing with clearer instructions on how to use it

rapid quest
#

now i get this error

wintry hound
#

thats the same one im getting

rapid quest
#

pretty sure i can fix this one though, i think i just gave the wrong variable for the character buttons

wintry hound
#

yeah. atleast now it seems like it isn't a neuro-sdk issue

rapid quest
#

thanks for helping

wintry hound
#

annytfOk no problem

rapid quest
#

trying to test it and

#

-_-

#

also how do i fix this error: Error calling OpenAI API with request ID req_8f3ea212a9b04622abc2236a63c7cf24 -> 400 An assistant message with 'tool_calls' must be followed by tool messages responding to each 'tool_call_id'. The following tool_call_ids did not have response messages: call_iE6zVjG6EtDcsT5IW0ZuzKr5

rapid quest
#

this is the first time i got that error

cerulean escarp
#

yeah but when you retried did it happen again

rapid quest
#

it happens sometimes, not every time

#

the game always does crash though

cerulean escarp
#

probably due to the crash

#

i'm guessing

#

||I tried looking it up to make sure I'm not yapping misinfo and didn't get any results||

rapid quest
#

thats what ive been thinking

rapid quest
#

BREAKING NEWS, THE AI CAN SUCCESSFULLY SELECT A CHARACTER

#

this is big

toxic leaf
rapid quest
#

what is bro on about

#

theres no fireball move T_T

#

HE FUCKING BURSTED IN NEUTRAL LMFAO

#

the shurriken thrower

#

actually making progress it can choose moves, currently it sometimes chooses moves that arent avaliable so i gotta fix that

#

its able to choose any character but for some reason it has only chosen ninja or wizard

wintry hound
#

what model are you using? some are really bad at this kind of thing

rapid quest
#

gtp 4o mini, the issue was on my end end, it no longer picks nonexistant actions

rapid quest
#

just played the first full match with the ai and it loved to spam hustle

#

its max combo on me was 2

#

it just got a 4 hit combo on me, they grow up so fast

rapid quest
#

the mod technically works, its just not good and i gotta refractor

rapid quest
#

i got a couple of clips of the ai doing things, in the clips the ai is the ninja

rapid quest
toxic leaf
rapid quest
#

i spent the last 6 hours tryin to get the ai to be able to set the adjustable data (like angle of shurrikens thrown) but nothing has worked and now i have a headache.

rapid quest
#

Progress. The ai can now sometimes adjust the data

cerulean escarp
#

sometimes

keen flame
#

Which might explain that

#

This whole thing is really sick to see, though

rapid quest
#

T_T

#

whoops

#

since im setting the aim value directly i forgot to call the function in xyplot that clamps the aim value

keen flame
#

lol

rapid quest
#

its playing wizard

keen flame
#

It's only a matter of time until its winning tournaments

rapid quest
#

Progress is slowing down a lot since I'm mainly trying to get good context for the ai

rapid quest
#

i have a silly idea

#
#

i kinda wanna try it T_T

#

just to see what would happen

toxic leaf
#

Tell us what happens

keen flame
#

It would probably be more efficient than trying to cram all the context into one program

toxic leaf
rapid quest
toxic leaf
keen flame
#

I'd assume globally

toxic leaf
#

@round lantern @slim sage you wouldn't believe this, but...

round lantern
#

???

rapid quest
#

whuh

toxic leaf
round lantern
#

WAIT I GET THE TITLE OF THIS PROJECT NOW POGGG

rapid quest
#

i finally got xy plot to actualy work lmao. took long enough

round lantern
#

So would this work with modded characters or just the base 5?

#

I assume you would have to write out what the modded character can do?

rapid quest
#

I don't currently have any plans on modded characters

round lantern
#

Dang, I was gonna try and make a Neuro mod if it would work. Oki <3

rapid quest
round lantern
#

Gotcha

toxic leaf
#

So they will be able to play them, but would have little idea of what they are doing.

keen flame
#

Unless you added context for them to work off of

toxic leaf
round lantern
#

Bet

toxic leaf
toxic leaf
round lantern
#

I've been busy with a lot of things rn. Maybe if I get some free time

toxic leaf
#

Is this considered completed?

#

@rapid quest