I've created a new phone system for renpy. Completely label and jump free, so it can just sit in the UI and be opened, closed and used at any point. Was hoping for just some feedback I guess? or if anyone wanted to use it. I've programmed python for a while but this is my first renpy project.
Also if anyone has any suggestions on what can be added, or wants help integrating it into a game, feel free to message.
Created and tested in renpy 8.3.7
It has:
- Branching dialogue with choices being made mid text conversation
- Allows images and videos to be sent
- Can execute code to modify variables mid conversation with the phone still open
- Multiple phone support
- Conversation mirroring, so if you pick up two phones who spoke to each other, they will always mirror the conversation, even if it was stopped mid way through.
- Safe to close at any point, even mid conversation or when you get to a choice. It will just continue from where you left off before closing it
- Automatic index tracking for conversations. You can loop a label until a specific conversation is had, or even have a character react if their message wasn't replied to fast enough (or you closed it and moved on half way through)
- Skip seen messages. Exactly the same as the normal renpy system, it has a custom built 'skip function' to be able to skip any messages previously seen, even cross save
- Autoloading gallery with automatic image unlock. It scans game files for images with correct naming convention based on a list you create, and will create character specific galleries for each person. If an image is sent via text and is in the gallery, it is unlocked automatically (a function exists to unlock images manually)
- Messages can be sent with the phone closed. So a character can message you and the UI will instantly update to show a message is waiting for you to open.
- Message deletion, so a message can be deleted by a character once they have sent it. Can be done with the phone open or closed.
- System messages. So things like time stamps or '3 days later'.
- Permanent chat history. Regardless of what conversations you load in, what choices they make and what order they were in the chat history is permanent. Always scrollable right back to the top. It is easy to clear though if needed.
- Each phone has it's own contact list and gallery.
- Simple(ish) setup. Each phone is created with a dict, each contact on that phone is a dict, every conversation is just a list. If you know how to make all that, you can set this up.
- A lot of config variables to control things like message speed, if messages are click to send or just send, variable message speed based on the length of the next message, typing indicator messages and some other things.
- A really cool ascii fox
- Comes with a completely playable demo that talks about the features and shows them working, all through the text system.
- 100% label safe. Let players open the phone, browse the gallery, message a character, make a choice, message another character, all mid label.
It does need some UI polish, but I have someone who offered to do that for me, just waiting for them to get back to me.
Its got my 'slightly' unconventional copy paste non free use slapped at the top, but I'll give anyone in this forum free use for any non R18 game. I say that completely unsure if its 'game ready'. I've tested it as much as I can, but I'm just one person.... (I have my reasons for the no R-18 game thing, sorry)
It's posted here, enjoy! https://kesash.itch.io/kesashs-dynamic- ... one-system
-^^,--,~ (obligatory fox)
## Legal free use stuff..... just so its official yk
Although this system is not released under a general free-use license, I am granting permission for users of this forum to use it under the following terms:
You are allowed to use the system shared in this post for your own game projects, both commercial and non-commercial, provided the game is not adult (R18) in nature. You may modify and adapt it as needed within your project.
The comment block at the top of phone.rpy must be left intact in its entirety.
You may not use this system in any R18 content, and you may not resell, redistribute, or package the system itself (modified or unmodified) as a standalone asset.