Sorry I just noticed you'd messaged again. When you create the conversation using the kps_create_conversation() only add them as a member, then use the add member function (its in the newest release) to add your mc to it later, it will instantly appear on their contact list :) You can create a conversation with 0 members if you want, theres nothing stopping you, but the second a member name == a phone name, the conversation will appear
Kesash
Creator of
Recent community posts
Just to add, ive created some helper functions to add a member, remove a member, and rename a member. Will be in the next release, so should be a lot easier soon :) If there's anything else you're struggling with, please let me know
I'd rather add helper functions for common use cases than have people getting frustrated :)
Its been changed to a group chat so its using the group chat name, this means there is either 1 member, or 3+. Make sure that when you remove a member you add another one, and if you add another one you remove the original one. If you shift+o for the console (this causes a rollback so make sure you click to advance dialogue once before you do) and type conversation_name['members'] (obv replace conversation_name with what its actually called) then it will print the members out for you, and you can check.
def _kps_play_message_sent_received_sound(entry):
if not (renpy.get_screen("dynamic_scrollable_text") or renpy.get_screen("dynamic_scrollable_text_group")):
return
if not isinstance(entry, dict):
return
sender = next(iter(entry.keys()), None)
me = phone_data.get("name")
if sender in ("image", "video", "code"):
return
if sender == me:
renpy.play(var_kps_message_sent_sound, channel="sound")
else:
renpy.play(var_kps_message_recieved_sound, channel="sound")
Yea this one is a little more complicated, it will be in the next update but if you want it now-
Create this function anywhere in the init python block at the top (will reply to this with a copy paste):

(The vars in using here I've just added to config and done = "thesoundfile")
Run the function in these 3 places:
1-

2-

3-

That should do it :)
(Also, add "code" with the image and video, so it doesn't play a sound when code executes)
I haven't decided how im going to handle image messages yet, but you can just change the 'return' there to a custom 'sent image message' sound if you want. Or if you've only ever going to be receiving images just set it to the received sound.
Here, throw this in (change the member name of 'mc' if that isnt your phones name) and it will add a convo with a changing name:
default unknown_convo = [
{"ember":"Hey"},
{"mc":"Hey who is this"},
{"ember":"Ember"},
{"mc":"OH! Ill update your name"},
{"code":"""
mc_ember_convo['members'].pop('unknown', None)
mc_ember_convo['members']['ember']= {'profile':'addaprofilepic.png'}
"""},
{"mc":"done"}
]
default mc_ember_convo = build_conversation(
unknown_convo,
member("mc"),
member("unknown", profile = "test/mc_profile.png")
)
You can obviously replace it from wherever you want, i just showed it being done in the phone here.
Set the name of the 'member' to unknown, then later, just replace that member with one with a name. So create it with the name unknown, then later remove it and replace it with one with a name.
The name of the contact is made by checking all the members keys, and just using the one that isnt you. So if a conversationg has two members: 'mc' and 'unknown', and the phone owner is 'mc' the contact is 'unknown', as thats the one that doesnt match the phone. If you then remove the unknown member and replace it with a member called 'sarah' it will now use that as the contact name.
But as youre still using the same conversation, just changing the other member, it will still keep all the history.
Let me know if you need an example in code, im just on my phone atm so cant do one right now.
This shows a simple conversation, contact and phone, with a screen to open the phone. The hardest part is defining the contact, but once that's done you never need to do it again, you can just swap out which conversation is loaded in and that one will play out :)
(i forgot to add 'default test_dialogue_list_index = 0', should be done after the conversation list is defined and 'all_dialogue' can just be set to an empty list, half of this will become unnecessary in the next release btw, ive completely reworked how its all set up, check the devlog, you may want to wait for the next release)

Using Opera GX on windows 10, using a pc that can run anything in existence NOTHING else browser based will work while this game is in view. Like the second I open the tab YouTube just stops playing video's, even if its completely buffered. Weirdest bug I've ever seen. Even if I load the game in a private browser with other things in a normal one it still happens.
Checked in Edge and it doesn't happen there.
I really like this game. The main issue I have with it is the timer on the spawn tree button, its too slow. I don't mean in a balance way, but in a playability way.
Most people can get into a rhythm pressing a button, but anything over 2 seconds and it becomes very hard to 'know' instinctively when it will come off cooldown, so you end up just clicking constantly.
A shorter cooldown on it makes it easier to get into the rhythm of just pressing it when it comes of cooldown without needing to stare at it constantly or click all the time.
The other thing would be to add a loading bar type effect over it so you can see when it will be available again.
It's the very first thing anyone who plays the game interacts with so it needs to be 'perfect'.






