HintService (Archived) | Legacy hints reimagined, customizable, straight-forward, and simple

Can’t replicate, code?

Could you also provide code?

I’m using the standard example code

I’m not too sure of how GitHub works. I’ll definitely be implementing this, and your features.

Turns out :getHintLabel() wasn’t an added method and HintAdded and HintRemoving were returning hint labels instead of HintObjects. I fixed this including the changes above. I published the version 2.4.2 of this module on github as well as my commit. Here you can see my changes:

I recommend you google it, it is very easy to get started.

P.S:

Also for my own use, I removed this as I think it is bad practice:

However if you wish to keep that, make sure you wrap the marketplace service call in a pcall in case of errors.

1 Like

It is very easy to setup and it makes it very easy to keep track of issues, pull requests and source code. I created a GitHub for my own use but if you wish to approve my code and merge it let me know.

Update

I recently deployed an update. Thanks for your patience!

Read More

Attempt to index nil on playerGui on line 35

1 Like

Thanks for the bug report! Can you show me your code so I know what is wrong specifically?

sorry for responding so late, i was in school, here

1 Like

basically makes so the module cant be used

1 Like



1 Like

I don’t believe this is a bug. You can’t use HintService on the server. I see you use the HintAdded event in a server script.

1 Like

I deleted that HS.HintAdded but it still doesnt works

I released a patch related to your problem. Check the output again after inserting v30

now it prints “HintService Cannot be used on the server”, but i dont know what i am doing wrong, i just tested it on a single localScript and it worked, but i am just firing a remote from the server, i dont know why is that the problem

Simply requiring it on the server can stop the module from working. Remove line 10 in your main server, and the HintAdding function if you haven’t already.

1 Like

Didn’t know that!, Thanks =))))

1 Like

This is really cool and I like all the utilitarian features it provides! But there were some issues with the source code that I found that you might want to change:

-- Line 507
local isBroadcasted = self.IsBroadcasted

isBroadcasted = true

This will only change local isBroadcasted to true, not self.IsBroadcasted causing cancelBroadcast to fail.

-- Line 518
task.spawn(function()
	animateHint(self)
end)

Use task.defer instead of task.spawn; deferring the thread schedules it to run on the next resumption cycle while spawn runs it immediately. There are very few cases where you would want to run a thread immediately, but animating a hint is not one of them.

-- Line 499
if debounceEnabled then
	if tick() - lastHint < debounceTime then return end
end

lastHint = tick()

tick is on the road to deprecation. time would be a more future-proof global for this.

-- Line 531
if isBroadcasted then
	broadcastCancelled:Fire()
	cancelBroadcast(self)

cancelBroadcast yields but is not ran in a separate thread, causing the running thread to yield as well.

-- Line 137
local borderStroke = label:FindFrstChild("BorderStroke")

Misspelling causing cancelBroadcast break.

My only other issue I have is all the returned methods are in camelCase instead of LuaU-Standard PascalCase, but that’s totally just a nitpick thing with me and I can just fork it anytime.

1 Like

What do you mean by this?

Thanks for the criticism! Will be making patches.