WebGL Hornycraft - Goldshire Adventures [v0.3.1] [hc dev]

3.00 star(s) 5 Votes
Jan 4, 2019
135
176
Decided to try this game out, but haven't had much luck. I'm using a slightly older computer (i7-8700K + RTX 2080). Moving around ingame works, although there's a lot of ghosting. However, the bigger problem seems to be the response speed of the LLM. I set it up per the included guide, and see "Processing Query" ingame and the "Generating" spinner plus logs in LM Studio that it is "running chat completion on conversation", but I've waited for 5+ minutes without getting a response to a single chat.

I love the concept of AI-powered roleplay, but this seems to be taking way longer than I'd expect. Is this just a limitation of my hardware, or is there something I should try to troubleshoot?

There did seem to be a lot of different tiger-gemma-9b-v3 models, so I went with this one, which had a large number of downloads:

TheDrummer/Tiger-Gemma-9B-v3-GGUF

I also tested directly chatting with the model in LM Studio, where I was able to get back a response in about 5 seconds.

EDIT:

Spent some more time troubleshooting but haven't been able to get this working.

I tried switching models to tiger-gemma-9b-v3-finetuned which seems to be the only tiger-gemma-9b-v3 model which matches the installation size referenced in the tutorial document. I also tested my local LM Studio endpoints via Postman, and my `GET /v1/models` and `POST /v1/chat/completions` endpoints both respond to me in less than a second. However, even when explicitly setting my ingame server address to the one I successfully used in Postman, I'm still getting a hang when trying to chat.

It might be worth noting the game also slows down when I try to chat with an NPC, so I guess it's doing something... but unfortunately not something that leads to a response.
 
Last edited:

youraccount69

I'm like a karate chop
Donor
Dec 30, 2020
5,611
2,592
HornycraftGoldshireAdventures-0.3
You don't have permission to view the spoiler content. Log in or register now.
rpdl torrents are unaffiliated with F95Zone and the game developer.
Please note that we do not provide support for games.
For torrent-related issues use here, or join us on !
, . Downloading issues? Look here.​
 

hcdev6

Newbie
Game Developer
Mar 19, 2023
54
110
Decided to try this game out, but haven't had much luck. I'm using a slightly older computer (i7-8700K + RTX 2080). Moving around ingame works, although there's a lot of ghosting. However, the bigger problem seems to be the response speed of the LLM. I set it up per the included guide, and see "Processing Query" ingame and the "Generating" spinner plus logs in LM Studio that it is "running chat completion on conversation", but I've waited for 5+ minutes without getting a response to a single chat.

I love the concept of AI-powered roleplay, but this seems to be taking way longer than I'd expect. Is this just a limitation of my hardware, or is there something I should try to troubleshoot?

There did seem to be a lot of different tiger-gemma-9b-v3 models, so I went with this one, which had a large number of downloads:

TheDrummer/Tiger-Gemma-9B-v3-GGUF

I also tested directly chatting with the model in LM Studio, where I was able to get back a response in about 5 seconds.

EDIT:

Spent some more time troubleshooting but haven't been able to get this working.

I tried switching models to tiger-gemma-9b-v3-finetuned which seems to be the only tiger-gemma-9b-v3 model which matches the installation size referenced in the tutorial document. I also tested my local LM Studio endpoints via Postman, and my `GET /v1/models` and `POST /v1/chat/completions` endpoints both respond to me in less than a second. However, even when explicitly setting my ingame server address to the one I successfully used in Postman, I'm still getting a hang when trying to chat.

It might be worth noting the game also slows down when I try to chat with an NPC, so I guess it's doing something... but unfortunately not something that leads to a response.
Have you tried enabling options "Enable CORS" and "Serve on Local Network" in your LM Studio?
You don't need these two options enabled to chat directly with LLM in your LM Studio, but you must have these two enabled for game to be able to make requests towards LLM server. Also your default ip and port should be
if not, change in game options to match the IP and Port in your LM Studio. Also make sure your nw.js is not blocked by firewall or antivirus.
 

Paitryn

Well-Known Member
Mar 10, 2017
1,613
2,286
Big favor. Basic settings on the main menu so we can adjust things like in game sound. Takes forever to load and the sound is strait deafening.
 
Jan 4, 2019
135
176
Have you tried enabling options "Enable CORS" and "Serve on Local Network" in your LM Studio?
You don't need these two options enabled to chat directly with LLM in your LM Studio, but you must have these two enabled for game to be able to make requests towards LLM server. Also your default ip and port should be
if not, change in game options to match the IP and Port in your LM Studio. Also make sure your nw.js is not blocked by firewall or antivirus.
Thanks for the advice. Unfortunately, I'd already enabled both of those options, and have been copy/pasting my server address from LM Studio into the game.

One thing I will note is that the "Serve On Local Network" slider shows yellow instead of green when my server is running, not sure if that's related to the [WARN] message about "Server accepting connections from local network" or if it's possibly a sign of a messed up configuration.

As I said, though, I'm able to get responses by hitting the server from Postman on the same computer using the same network address.

Today, I also tried adding nw.js to my firewall exceptions, but it didn't change the behavior. I don't think it's a firewall issue, because LM Studio does receive the game's API call, but gets stuck processing and never generates a response. This is basically where it gets stuck, with the GENERATING wheel spinning "forever".

You don't have permission to view the spoiler content. Log in or register now.

If you want, maybe you could share what the API call looks like when saying something simple like "Hello" to the first Story Mode NPC and I can A/B test it in Postman? I'm wondering if the game is maybe passing a lot of data related to the character etc and it's surpassing a token limit or something like that.
 

hcdev6

Newbie
Game Developer
Mar 19, 2023
54
110
Big favor. Basic settings on the main menu so we can adjust things like in game sound. Takes forever to load and the sound is strait deafening.
As soon as you start game in free/story mode just press M on keyboard to mute/unmute sound
 
  • Like
Reactions: Paitryn

hcdev6

Newbie
Game Developer
Mar 19, 2023
54
110
Thanks for the advice. Unfortunately, I'd already enabled both of those options, and have been copy/pasting my server address from LM Studio into the game.

One thing I will note is that the "Serve On Local Network" slider shows yellow instead of green when my server is running, not sure if that's related to the [WARN] message about "Server accepting connections from local network" or if it's possibly a sign of a messed up configuration.

As I said, though, I'm able to get responses by hitting the server from Postman on the same computer using the same network address.

Today, I also tried adding nw.js to my firewall exceptions, but it didn't change the behavior. I don't think it's a firewall issue, because LM Studio does receive the game's API call, but gets stuck processing and never generates a response. This is basically where it gets stuck, with the GENERATING wheel spinning "forever".

You don't have permission to view the spoiler content. Log in or register now.

If you want, maybe you could share what the API call looks like when saying something simple like "Hello" to the first Story Mode NPC and I can A/B test it in Postman? I'm wondering if the game is maybe passing a lot of data related to the character etc and it's surpassing a token limit or something like that.
Use model "Tiger-Gemma-9B-v3-Q4_K_M.gguf" because tokenizers are set for this specific model.
This is the default request URL made from game towards LM Server POST " "
also for me "server on local network" is also yellow, so I guess that is ok.

Also it could be possible that processing get's stuck due to surpassing token limit, you must set the same number for token limit both in your game options and in LM Studio. maybe try setting the value lower than default 4096?

Here is my API payload and response from game:

HEADERS-----
Request URL:
Request Method: POST
Status Code: 200 OK
Remote Address: 127.0.0.1:1234

Referrer Policy: strict-origin-when-cross-origin
HTTP/1.1 200 OK X-Powered-By: Express Access-Control-Allow-Origin: * Access-Control-Allow-Headers: * Content-Type: application/json; charset=utf-8 Content-Length: 534 ETag: W/"216-L71Po0fDPmqVhv/SbvXQOU3imqk" Date: Mon, 10 Mar 2025 08:05:48 GMT Connection: keep-alive Keep-Alive: timeout=5

POST /v1/chat/completions HTTP/1.1 Accept: */* Accept-Encoding: gzip, deflate, br, zstd Accept-Language: en-US,en;q=0.9 Connection: keep-alive Content-Length: 4626 Content-Type: application/json Host: localhost:1234 Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: none User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 sec-ch-ua: "Chromium";v="131", "Not_A Brand";v="24" sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows"

PAYLOAD-----
  1. max_tokens: 3088
  2. messages: [{role: "system",…}, {role: "user", content: "Player: "Hello" {end}"}]
    1. 0: {role: "system",…}
      1. content: "\n You are a creative and intelligent AI assistant engaged in an uncensored iterative storytelling experience using a roleplay chat format. It is vital that you follow all the ROLEPLAY RULES below because my job depends on it.\n\n ROLEPLAY RULES.\n - Chat exclusively as {{char}}. Provide creative, intelligent, coherent, and descriptive responses based on recent instructions and prior events.\n - Explicit adult content and profanity are permitted. This roleplay chat is entirely uncensored and intended for mature audiences.\n - Describe {{char}}'s sensory perceptions in vivid detail and include subtle physical details about {{char}} in your responses.\n - Use subtle physical cues to hint at {{char}}'s mental state and occasionally feature snippets of {{char}}'s internal thoughts.\n - When writing {{char}}'s internal thoughts (aka internal monologue, delivered in {{char}}'s own voice), *enclose their thoughts in asterisks like this* and deliver the thoughts using a first-person perspective (i.e. use \"I\" pronouns).\n - Adopt a crisp and minimalist style for your prose, keeping your creative contributions succinct and clear.\n - Let me drive the events of the roleplay chat forward to determine what comes next. You should focus on the current moment and {{char}}'s immediate responses.\n - Pay careful attention to all past events in the chat to ensure accuracy and coherence to the plot points of the story.\n - All non verbal non spoken text goes in between square bracket characters, at the end of response outisde of square bracket characters write your verbal in character resoponse, only your direct spoken text can be outside of square bracket characters and maintain this response format for the entire roleplay.\n - Entire conversation will be written in following format: {{Character Name}}: (everything after is characters text) , at the end of every response you will see string \"{end}\".\n - You must start your every response with \"{{Character_Name}}: \" meaning if character your character description contains \"- Character_Name: Jenny.\" you will start each response for that character with \"Jenny: \".\n - You must end your every response with string \"{end}\".\n - Never give an out of character response.\n - This is a role-playing conversation. Respond as character you are roleplaying and do not generate messages for my character I am roleplaying\n - Always take into consideration variables describing your characters attributes for your every response.\n - Always assume that characters are strangers and know nothing about each other's Sex Position, Penis Size and Other Character Information parameters.\n - All your responses must strickly follow the fantasy of your character and context of ongoing conversation paying attention to all previous texts.\n - All characters are placed in World of Warcraft fantasy universe.\n \n (This is character I will roleplay as, my Character_Name value is Player)\n - Character Type: Player.\n - Character Name: Player.\n - Sex: .\n - Height: .\n - Age: .\n - Race: .\n - Pronouns: .\n - Class: .\n - Skin Color: .\n - Eye Color: .\n - Hair Color: .\n - Body Shape: .\n - Sex Position: .\n - Breast Size: .\n - Ass Size: .\n - Penis Size: .\n - Other Character Information: .\n (variables above describe attributes about my character)\n \n (This is character you will roleplay as, your Character_Name value is NPC)\n - Character Type: NPC.\n - Character Name: NPC.\n - Sex: .\n - Height: .\n - Age: .\n - Race: .\n - Pronouns: .\n - Class: .\n - Skin Color: .\n - Eye Color: .\n - Hair Color: .\n - Body Shape: .\n - Sex Position: .\n - Breast Size: .\n - Ass Size: .\n - Penis Size: .\n - Other Character Information: .\n (variables above describe attributes about your character)\n "
      2. role: "system"
    2. 1: {role: "user", content: "Player: "Hello" {end}"}
      1. content: "Player: \"Hello\" {end}"
      2. role: "user"
  3. model: "tiger-gemma-9b-v3"
  4. n: 1
  5. stop: ["{end}"]
    1. 0: "{end}"
  6. stream: false
  7. temperature: 0.7
RESPONSE-----
{
"id": "chatcmpl-u8f4atg1ubdntogzhfl0dr",
"object": "chat.completion",
"created": 1741593946,
"model": "tiger-gemma-9b-v3",
"choices": [
{
"index": 0,
"logprobs": null,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "NPC: \"Greetings, traveler. What brings you to these parts?\""
}
}
],
"usage": {
"prompt_tokens": 903,
"completion_tokens": 14,
"total_tokens": 917
},
"stats": {},
"system_fingerprint": "tiger-gemma-9b-v3"
}
 
Last edited:
  • Like
Reactions: lordofthewhales

SteamTyson

Newbie
Jun 7, 2020
26
48
Not sure if i'm missing something but it gets stuck on loading, i see the characters moving but the loading text never fades out and am unable to do anything.
 
  • Like
Reactions: hcdev6

hcdev6

Newbie
Game Developer
Mar 19, 2023
54
110
Not sure if i'm missing something but it gets stuck on loading, i see the characters moving but the loading text never fades out and am unable to do anything.
That's strange, its stupid but the only thing I can think of is to restart game and try again.
 
Jan 4, 2019
135
176
Use model "Tiger-Gemma-9B-v3-Q4_K_M.gguf" because tokenizers are set for this specific model.
This is the default request URL made from game towards LM Server POST " "
also for me "server on local network" is also yellow, so I guess that is ok.

Also it could be possible that processing get's stuck due to surpassing token limit, you must set the same number for token limit both in your game options and in LM Studio. maybe try setting the value lower than default 4096?

Here is my API payload and response from game:
I appreciate your detailed response. I'll try some of the steps you suggested, I think I'll start by raising/lowering token limit on both sides. From what I can see, it looks like the model you listed is no longer available, but I see a "Q5" version of the same, which would appear to be the closest.

You don't have permission to view the spoiler content. Log in or register now.

Thanks again, I'll update here if I'm able to make some progress.
 

hcdev6

Newbie
Game Developer
Mar 19, 2023
54
110
I appreciate your detailed response. I'll try some of the steps you suggested, I think I'll start by raising/lowering token limit on both sides. From what I can see, it looks like the model you listed is no longer available, but I see a "Q5" version of the same, which would appear to be the closest.

You don't have permission to view the spoiler content. Log in or register now.

Thanks again, I'll update here if I'm able to make some progress.
Not so long ago the model was available, anyways I reuploaded model "Tiger-Gemma-9B-v3-Q4_K_M.gguf"

 

Horny Potato20

Member
Game Developer
Jun 7, 2020
130
99
That's strange, its stupid but the only thing I can think of is to restart game and try again.
yeah that very dame happen to me too, and believe me I restarted lot of times and let It load for like almost one hour but no, but It looks fluid its just the loading wall
 
  • Like
Reactions: hcdev6

hcdev6

Newbie
Game Developer
Mar 19, 2023
54
110
yeah that very dame happen to me too, and believe me I restarted lot of times and let It load for like almost one hour but no, but It looks fluid its just the loading wall
I just tried it, I got my loading stuck at first attempt to, I restarted the game and on second load it worked fine. I guess you just need stronger hardware on your PC to run my shitty javascript code... the reason for loader being stuck means that some NPC in scene didn't load properly, however if you don't care about NPCs that really don't serve any function in the scene, you can remove the loader, download nwjs-sdk

extract the nwjs-sdk folder anywhere you want, now what you want to do is copy the following folders/files from your hornycraft game folder into this nwjs-sdk folder:

assets
node_modules
python
tokenizer
favicon.ico
favicon.png
index.html
OpenSans-SemiBold.ttf
package.json
package-lock.json
save.json
chats.json
story-state.json
tokenizer.py
bundle.2a2b6c9977b1d05d7acd.js
bundle.2a2b6c9977b1d05d7acd.js.map

Copy these 16 files/folders from your hornycraft game folder into your nwjs-sdk folder and run the game by double clicking the nw.exe in your nwjs-sdk folder, this will enable you to run the game in dev mode, now when your loader gets stuck just press F12 on your keyboard to open dev console. After that in your dev console at the top look for tabs, click Console tab and paste the following code:

document.getElementById('init-loading-overlay').remove();
document.getElementById('init-loading-text').remove();
window.app.isLoading = false;
window.gameState.saveStateLoading = false;
window.gameState.storyScene = false;
window.gameState.initHairLoad = false;
window.finalLoad = true;

This will allow you to play through story mode, however there are specific actions that happen at specific points in quest, like NPC playing an emote, NPC taking her clothes off, or NPC starting a sex scene with player, these should work fine if the NPC you should RP with didn't get stuck in load, hoping that your loading gets stuck on NPCs that don't serve any function

Doing these things will allow you to "hack" game and remove the loader, and you will be able to play the story mode. If you don't want to go through all this trouble you can manually create your own custom NPCs and AI roleplay profiles in free mode, since you won't be loading a scene in free mode you won't be stuck in loader there.

Sorry, but right now I can't give you a better solution than hacking the game this way, or just playing in free mode.
 
Last edited:

Horny Potato20

Member
Game Developer
Jun 7, 2020
130
99
I just tried it, I got my loading stuck at first attempt to, I restarted the game and on second load it worked fine. I guess you just need stronger hardware on your PC to run my shitty javascript code... the reason for loader being stuck means that some NPC in scene didn't load properly, however if you don't care about NPCs that really don't serve any function in the scene, you can remove the loader, download nwjs-sdk Google Drive

extract the nwjs-sdk folder anywhere you want, now what you want to do is copy the following folders/files from your hornycraft game folder into this nwjs-sdk folder:

assets
node_modules
python
tokenizer
favicon.ico
favicon.png
index.html
OpenSans-SemiBold.ttf
package.json
package-lock.json
save.json
chats.json
story-state.json
tokenizer.py
bundle.2a2b6c9977b1d05d7acd.js
bundle.2a2b6c9977b1d05d7acd.js.map

Copy these 16 files/folders from your hornycraft game folder into your nwjs-sdk folder and run the game by double clicking the nw.exe in your nwjs-sdk folder, this will enable you to run the game in dev mode, now when your loader gets stuck just press F12 on your keyboard to open dev console. After that in your dev console at the top look for tabs, click Console tab and paste the following code:

document.getElementById('init-loading-overlay').remove();
document.getElementById('init-loading-text').remove();
window.app.isLoading = false;
window.gameState.saveStateLoading = false;
window.gameState.storyScene = false;
window.gameState.initHairLoad = false;
window.finalLoad = true;

This will allow you to play through story mode, however there are specific actions that happen at specific points in quest, like NPC playing an emote, NPC taking her clothes off, or NPC starting a sex scene with player, these should work fine if the NPC you should RP with didn't get stuck in load, hoping that your loading gets stuck on NPCs that don't serve any function

Doing these things will allow you to "hack" game and remove the loader, and you will be able to play the story mode. If you don't want to go through all this trouble you can manually create your own custom NPCs and AI roleplay profiles in free mode, since you won't be loading a scene in free mode you won't be stuck in loader there.

Sorry, but right now I can't give you a better solution than hacking the game this way, or just playing in free mode.
ur not gonna believe it!!! first of all i dont really know a thing bout programs, but I follow every thing and it worked like a charm!! and I thing I become smarter!!!, ok no, buuuuuuuuuuuuuuuuuuuuuuuuut then I realize that also I have a not so good (shitty) PC so I couldn´t do that much, still thanks man!!! maybe later i'll try again...
 
  • Like
Reactions: hcdev6

Dragon x62

New Member
Oct 4, 2019
1
1
Amazing work, but I found some of the AI to be to difficult to get to do what I needed them to do for the quests. Either way, I'm curious to how each of the NPCs in story mode are set up. The AI I make don't seem to be as detailed and wordy as them.

Either way, new fetish unlocked: doms with erectile dysfunction.
 
  • Like
Reactions: hcdev6

hcdev6

Newbie
Game Developer
Mar 19, 2023
54
110
Amazing work, but I found some of the AI to be to difficult to get to do what I needed them to do for the quests. Either way, I'm curious to how each of the NPCs in story mode are set up. The AI I make don't seem to be as detailed and wordy as them.

Either way, new fetish unlocked: doms with erectile dysfunction.
I pretty much intended to make them all impossibly difficult, however most of them are not that difficult.
AI is a little stupid sometimes, so you just need to describe same thing with sentences containing different words to describe similar thought, also I put roughly around 5-6 sentences in total maybe around 50-60 words in total in field "other character information". Ofc some fetishes are easier for AI to roleplay than others, depending on data model was trained on, so I assume that less popular stuff might have less text for AI to reply with. Also as your RP progresses you might want to update that text in "other character information" to account for new context in which AI should think about its responses, depending on your max token length but AI can't take more than previous 20-30 messages in chat into consideration before generating new response. in Story mode that field is updated for NPC after completing each of 3 objectives within 1 quest. Also character profiles and quest goals are stored in story-state.json so you can modify profiles and quest objectives for AI npcs in story state however you like in that file.
 
Last edited:
3.00 star(s) 5 Votes