I have now integrated a wiki within ini Writer that should hopefully provide enough detail to begin working on your own plugins.
As always, happy to field questions and feedback :)
Hi! Thanks for taking an interest in my app!
I suspect you're using Godot 4 which is why you're getting those deprecation issues.
You need to use the specific version of godot outlined in the tutorial. It does provide a link to the specific versions archive. (Should be approx. 3.5.x if I remember correctly)
Since I've left this one out in the cold for a while I'm going to bring it up-to-spec with my newer apps and port it over to godot 4 starting in the new year.
Hopefully I've solved your issue but do reach out if you have any other questions :)
I see.
The reason I ask this question is because my file path looks a little like this:
res://App/Extensions/My_current_extension/files_i_want_to_pack
res://App/Extensions/My_other_extension/files_i_dont_want_to_pack
etc..
the problem is that I want to pack only 'my_current_extension' but with the full file path from res://
If I wanted to do the full file path I would need to select 'App' as the root folder and deselect every other file but I have too many files for that to be something feasible so I was hoping there was an alternative way of customizing the file path used in the pck.
I was thinking like a textbox where I can write a custom path to attach to the front of the root folder path.
Like this: 'res://App/Extensions/' and then my root folder is 'my_current_extension'
This would remove the need to deselect a ton of misc files that I don't want exported.
Hello fellow devs!
Currently the example is pretty poopy.
I want to let you know that I'm working on improving the resources available for you so that you can have a better experience creating extensions.
For the latest developments check out the github page so you can get improvements before they get released here.
For those of you who want to make an extension but don't know how to get started I'll give you a little setup guide.
That should get you setup for creating extensions. I know that I haven't talked about how to write the scripts.
I'll try to get some helpful docs created so that it will be easier for you. In the meanwhile please use existing extensions as a reference.
If you need help or have questions, leave a comment here and I'll help you when I can.
If anybody has some screenshots of a project made with LoreKeeper that they would like to share, I would love to see them!!
I feel that my front page is a little lacking in good example images and I would really like to add some images of the community using my app.
If you do have images you'd like to share please reply to this post with a link or even just attach them directly and I will have a look.
Thanks for using LK and I hope to hear from you all, till next time!
I fear this may be a result of my current lack of documentation but all of what you have just mentioned is already possible.
I do admit that currently it isn't really accessible by the general user.
The reason why the default style uses the same elements for every window is because it is the most basic style, the default. But you are not limited to this style, close to everything is customizable from your end if you go look for it inside the AppData folder. (Despite the file extensions you can open all of them with notepad++)
I see potential for an in-app editor of sorts so I'll add that to the production list.
I'll also start working on documentation so that users can get a guide on how to create their own layouts and elements.
You are correct. I basically have the delete element overlay on a timer from when you mouse over it.
I did it this way because it was the simplest implementation I could think of but I'll definitely look into other options.
Alternatively you can also edit the delay timer by tweaking the relevant script in the AppData/Custom/FreeformElements/Scripts folder.
I'm absolutely open to ideas so feel free to lay them on me, if for some reason I can't do it then I'll let you know about it.
Thanks for taking an interest in my project :)
Update Release Plans:
I plan to limit updates on itch to around once at the end of the week. I do this because no one enjoys notification spam and it makes updates more meaningful to download rather than having everyone download an update everyday. Of course you can get the latest progress by cloning my git repo so even if there is no updated version here you can still get the latest work there.
I'm not saying there will be weekly updates for certain but if I've made progress that is stable and ready for release then there will be an update at the end of that week.
Made With:
Godot Engine
Repo:
https://github.com/ArcturusForge/LoreKeeper
Planned Updates:
Have you used the Unity Profiler to make sure the rendering is your issue?
I'm a Unity Programmer so sadly that falls outside of my scope however I do have some tips for coding that may help.
1. Don't use GetComponent / GetObjectOfType in the update loop (unless you have to). These are resource intensive functions in Unity. Ideally you would cache the data in a variable and have it be assigned during the Start/Awake functions.
2. If you are instantiating a lot of prefabs in the update loop, you may wish to consider using Object Pooling instead. This recycles unused GO's instead of Destroying them. Brackeys has a video explaining the benefits of pooling on youtube if you wish to know more. Additionally I do have a Unity Package available on my itch page that you can download (It's free) that will handle the logistics of pooling for you, I do believe it has an example scene included if you don't know how to use it. (if not you can always reach out to me through this comment.)
Other than that all I can really recommend, without having a look at your code, is that you try to move logic that doesn't need to be in the update loop out. For example:
There is a button that handles the activation of a ui panel by setting a bool in your code. The ui panel, or its manager, checks this bool every frame (in the update) to see whether it should turn on or not.
Obviously for this example you would just have the button directly turn this panel on when you click it instead, however what I'm trying to suggest is that the ui panel does not need to know every frame whether it should turn on or not. You simply turn it on the moment the button is pressed. What this means is that instead of every frame some logic runs to check whether the ui should be on, this same logic runs only on one frame to turn it on.
I hope your optimization adventure goes well and that you can take back your frames. Happy hunting!