How does one make a detailed changelog that is still simple to add new logs to?

I’ve been struggling thinking about ways to display a changelog that’s ever-growing from updates while keeping management of logs simple. I just want to know how one makes a changelog system, then display them in a UI.

I thought of using ModuleScripts inside ServerScriptService called by a receiver script, then just return what details are inside the module to the player, but it doesn’t seem friendly to me as the code would be cluttered with strings in a dictionary as more updates come. I also thought of StringValues in a folder in the said service but the one-line text editor would just suck.

I’ve researched everywhere and only unrelated Google results come in, so I guess people don’t really talk about this much. Maybe I’m wrong.

So, how do I make such a system?

You’d want to store the changelog strings in a string value. There’s most likely a plug-in for that. You could then stick them in a folder. Then, on start, loop through those and put them in a scrolling frame on a GUI. Just an idea. It’ll still be some work to implement that.

Hope it helps!

1 Like

Thanks for the idea but I already stated this on my question though. As I said the one-line text editor of the StringValues are not that good, and also to add, even if I were to separate each detail, I would have to rename them to numbers, which makes it more confusing, and I would run the risk of being randomly sorted if I were not to deal with the 0-9, A-Z sorting by name of objects.

Yeah, it would be hard to use the string values in folder idea. The only way it would really be possible is through a plugin. I honestly might make one for this though (I need to learn how to make them anyway), but don’t count on it. Good luck otherwise. I’ll be following this to see what the solution ends up as because it eventually should be important to me too.

I am not sure if this is the solution you are looking for, but you can use a table and then “cycle” through the strings in that table.

Code Example
local changelog = {
	
	[[Added changelog
	wow very nice]];
	"This is a change";
	"That is a change";
	
}

local UIListLayout = Instance.new("UIListLayout", ChangelogFrame)

for i = 1, #changelog, 1 do
	-- instance a textlabel into ChangelogFrame
	TextLabel.Text = changelog[i]
end

I’m kind of not wanting to do this because I feel like it could make the script use more memory as more references/strings are added in the table. I might be wrong though. Also this is kinda like what I said in the post though except on a Script.

you can use the table.sort

put all objects in a table. give them a date value in seconds then run table.sort. now ur table is sorted loop though it.

table.sort(logs, function(a, b)
return a.date > b.date
end)

you should not let youself be held back on something as memory usage. if you want to achieve an affect and it needs lots of memory you should use it.

the memory is there. (I can confirm, since I made a game that generated over 2000 MB in memory)

you can always look for ways to improve it ofcourse.

as far as i know this is the only way to do it. it will kinda be like a database. but then its just a local table.