#Hint Service Meow

1920 messages · Page 2 of 2 (latest)

deft turret
#

But the bug did not reappear

deft turret
#

how's the result?

fathom inlet
#

Thanks

deft turret
#

Nice, if there's any bug please tell me

versed timber
#

@rotund marlin

#

It fucking works

versed timber
#

Are we allowed to use padding in tags?

<mark=#000000aa padding="20, 400, -20, 850">

deft turret
#

Why are you using that? I have never tried it before, but you can try it and see if it works.

versed timber
versed timber
deft turret
#

Do you mean you want to write some information into hint ID?

versed timber
deft turret
#

I am not 100% sure waht you are talking about(

#

OK

versed timber
#

Player.ShowHint(ID, "message", 5)

Player.ShowHint(1, "rewrites 1", 5)
Player.ShowHint(1, "I have rewriten 1", 5)
Player.ShowHint(2, "I am second ID", 5)

#

It will obviously be another method and not the base that Exiled uses

deft turret
#

I see what you mean

versed timber
deft turret
#

I think that's interesting.

#

I think it can help simplify the Hint usage.

versed timber
deft turret
#

Y is 0-1080 on any screen.

#

Anyway, thanks.

versed timber
#

well I did not mean resolution but creating command and then placing text where I want to

deft turret
#

I see

deft turret
versed timber
bold creek
deft turret
split quiver
#

@deft turret why isnt work ID: [PId] ?

pulsar halo
#

well show code

versed timber
#

-# I mean ID of hint

split quiver
split quiver
pulsar halo
#

Then not right thread

versed timber
pulsar halo
slender crown
#

Hello, I'm new to HintServiceMeow. I tried using the API instead of player.ShowHint. I attempted to implement it in my XP system, but no hints are being displayed. Any ideas?

bold creek
#

wait a second

#

@slender crown

slender crown
#

Ah tysm

bold creek
slender crown
bold creek
slender crown
bold creek
#

did you try Sync = Desync ?

#

to see if it's work

slender crown
#

How do i do that?

bold creek
slender crown
#

SyncSpeed?

strong shale
#

no idea what it means because i don't code that much

#

might be useful

#

might not be

slender crown
bold creek
slender crown
# bold creek yep

It works also with Timing.CallDelayed. Im updating this here also and somehow it duplicates.

bold creek
#

can you send the cood please ?

slender crown
# bold creek can you send the cood please ?
        private async Task DisplayHUD(CancellationToken token)
        {
            try
            {
                while (Round.IsStarted)
                {
                    if (token.IsCancellationRequested)
                        break;

                    foreach (var player in Player.List)
                    {
                        if (player.IsAlive)
                        {
                        string playerName = player.Nickname;
                        string roleName = player.Role.Type.ToString();
                        float tps = (float)Server.Tps;
                        int playerId = player.Id;
                        string badge = player.Group?.BadgeText ?? " ";
                        string customInfo = player.CustomInfo ?? " ";

                        var gameTime = $"{Round.ElapsedTime.Minutes:D2}:{Round.ElapsedTime.Seconds:D2}";

                        var pd = player.GetPlayerDisplay();
                        var HUD = new HintServiceMeow.Core.Models.Hints.Hint()
                        {
                             Text = $"<size=40%>ZEIT: {gameTime} | TPS: {tps}/60</size>\r\n<size=40%><b><color=#8B0000>UNDERGROUND</color><color=#FF4500>GAMING</color><color=#FFA500>NETWORK</color></b></size>",
                             Alignment = HintAlignment.Center,
                             YCoordinate = 1060,
                        };

                        pd.AddHint(HUD);
                        }
                    }
                    await Task.Delay(TimeSpan.FromSeconds(Plugin.Instance.Config.UpdateInterval), token);
                }
            }
            catch (TaskCanceledException)
            {
                Log.Info("Fehler");
            }
        }```
bold creek
#

do you want the hint to be updated ?

slender crown
#

uh yeah

bold creek
#

ok heu wait a few seconds

#
        private void OnPlayerConnected(VerifiedEventArgs ev)
        {
            var pd = player.GetPlayerDisplay();
            var HUD = new HintServiceMeow.Core.Models.Hints.Hint()
            {
                 AutoText = () => {
                     if (!ev.Player.IsAlive)
                         return string.Empty;
                     string playerName = player.Nickname;
                     string roleName = player.Role.Type.ToString();
                     float tps = (float)Server.Tps;
                     int playerId = player.Id;
                     string badge = player.Group?.BadgeText ?? " ";
                     string customInfo = player.CustomInfo ?? " ";
  
                     var gameTime = $"{Round.ElapsedTime.Minutes:D2}:{Round.ElapsedTime.Seconds:D2}";

                     return $"<size=40%>ZEIT: {gameTime} | TPS: {tps}/60</size>\r\n<size=40%><b><color=#8B0000>UNDERGROUND</color><color=#FF4500>GAMING</color><color=#FFA500>NETWORK</color></b></size>";
                 }
                 Alignment = HintAlignment.Center,
                 YCoordinate = 1060,
                 SyncSpedd = blahlah.Fastest #i don't remember this name,
            };

            pd.AddHint(HUD);
        }
#

@slender crown

#

this will work

slender crown
bold creek
bold creek
#

@slender crown this work ?

slender crown
bold creek
slender crown
# bold creek 👍

So it doesnt work, do i need this also?

        private CancellationTokenSource cancellationTokenSource;

        public void OnRoundStarted()
        {
            cancellationTokenSource = new CancellationTokenSource();
            Task.Run(() => DisplayHUD(cancellationTokenSource.Token));
        }

        public void OnRoundEnded(Exiled.Events.EventArgs.Server.RoundEndedEventArgs ev)
        {
            cancellationTokenSource?.Cancel();
        }```
#

or does SyncSpeed the same job

bold creek
#

@slender crown why using a Task for htis ?

slender crown
#

Its not my plugin, just using it.

bold creek
#

normally it's work

#

without a Task.run or a CancellationToken

slender crown
#

Yeah i had if (Round.isStarted) that breaked everything

bold creek
#

?

slender crown
bold creek
#

np !

slender crown
slender crown
bold creek
slender crown
bold creek
#

so -300 is suffisant

#

try and restart

#

i think

slender crown
bold creek
#

600 is for right

slender crown
#

yeah i want it right

bold creek
#

but idk if you will see something

slender crown
#

How far do i need to go XD

bold creek
#

yo what

slender crown
bold creek
#

Mmmmmm

slender crown
bold creek
feral atlas
slender crown
deft turret
#

If there's any issue please tell me

velvet trellis
#

you just have to use \n

rose badger
#

hi @deft turret there is a problem with your plugin

versed timber
rose badger
#

so it happens when I kill a player and I want to display text to him in the latest version of EXILED

versed timber
#

-# (show code)

rose badger
versed timber
rose badger
rose badger
versed timber
rose badger
rose badger
versed timber
#

Create a coroutine and use player data to go thru every player

If you use the hint just set player data with key ID 1 5

In the coroutine it will go down every second and when it reaches 0 it does

HintAttacker(ev.Player, " ")

With the constructors you create new called message which will be string.

#

Ply = player

Set:
ply.SessionVariables[keyName] = Arguments.JoinMessage(3);

Add:
ply.SessionVariables.Add(keyName, Arguments.JoinMessage(3));

Check:
(ply.SessionVariables.ContainsKey(keyName))

Remove:
ply.SessionVariables.Remove(keyName);

-# Andrzejki Today at 12:56 AM
-# I feel like I saw this code before
-# and that the JoinMessage method does not exist by default

versed timber
# rose badger

And try to do pd. and see what will pop up there should be time removal

ocean nimbus
#

and that the JoinMessage method does not exist by default

rotund marlin
versed timber
#

Session vars are great

rotund marlin
versed timber
#

The fuck are u about?

rotund marlin
#

Its for if you need to talk between plugins

feral atlas
versed timber
rotund marlin
#

Yes

versed timber
#

It has more uses as I see

#

I'll use it more to secretly break plugins trollface

deft turret
rose badger
deft turret
#

Nice

earnest inlet
#
  disabled_compat_adapter:
  - 'RespawnTimer'```

by putting RespawnTimer, it shouldn´t modify the hint behaviour of it right? (btw it is not working)
slender crown
#

it didnt work for me either, until i made every hint with HSM, including RespawnTimer

versed timber
#

The line height is big problem for compability adaptor

#

@deft turret

versed timber
earnest inlet
deft turret
deft turret
#

I think you should put the full name

velvet trellis
#

Quick question will you update hsm for the 14.0 beta?

deft turret
#

?Does HSM break in 14.0

#

Sorry, I have not tried 14.0 yet...

#

If it breaks, I will fix it,

versed timber
#

No one knows yet

deft turret
#

I heard that if you sponsored NW, they will give you the beta version.

velvet trellis
queen lance
#

Hey @deft turret
I'm guessing this error is cause the plugins using hints displaying too much and overloading it?
on 14.0 Beta

[2024-12-09 08:02:34.007 +00:00] [Error] [HintServiceMeow] System.IndexOutOfRangeException: NetworkWriter.WriteString - Value too long: 65581 bytes. Limit: 65534 bytes
                                   at Mirror.NetworkWriterExtensions.WriteString (Mirror.NetworkWriter writer, System.String value) [0x00071] in <84ea3dc030f3498e8a7ba9bad879f9f9>:0 
                                   at Hints.TextHint.Serialize (Mirror.NetworkWriter writer) [0x0000e] in <99d0d3ec5df64fbeb8a2a74b5700add7>:0 
                                   at Hints.HintMessageParameterFunctions.Serialize (Mirror.NetworkWriter writer, Hints.HintMessage value) [0x0003d] in <99d0d3ec5df64fbeb8a2a74b5700add7>:0 
                                   at (wrapper delegate-invoke) System.Action`2[Mirror.NetworkWriter,Hints.HintMessage].invoke_void_T1_T2(Mirror.NetworkWriter,Hints.HintMessage)
                                   at Mirror.NetworkWriter.Write[T] (T value) [0x00023] in <84ea3dc030f3498e8a7ba9bad879f9f9>:0 
                                   at Mirror.NetworkConnection.Send[T] (T message, System.Int32 channelId) [0x00006] in <84ea3dc030f3498e8a7ba9bad879f9f9>:0 
                                   at HintServiceMeow.Core.Utilities.DefaultDisplayOutput.ShowHint (HintServiceMeow.Core.Models.Arguments.DisplayOutputArg ev) [0x00047] in <058a78fbf7b24748a7867410a3f81929>:0
versed timber
#

It isn't just this plugin but SL itself

#

Can't give too much of a hint

queen lance
versed timber
queen lance
versed timber
#

What are you doing anyways?

versed timber
#

Are u using the newest version of hint service meow?

#

Because he added new version

queen lance
versed timber
#

Still should be alright

queen lance
#

It goes fine for a while but later into the round it pops up
Get like 25-35 players

versed timber
#

We need Fansh ⚠️

queen lance
#

Hah

deft turret
#

emmmm

#

I don't really know why,

deft turret
#

It might be plugin's issue instead of HSM, but I'm not sure. If you the bug occurs again please let me know.

queen lance
split quiver
#

why there is no duration hint option?

#

I mean, it would be nice to add like 3 seconds of Hint. I mean, not if it's the same as normal hints.

deft turret
#

you can use PlayerDisplay::RemoveAfter or Hint::HideAfter

#

Or use Player::ShowHint() directly and HSM will adapt it automatically.

#

@split quiver

tacit shell
#

Any solution for this? I use respawn timer and even if I move the lines up or down it's still there and also the tracks disappear very quickly about 1-1.5 seconds

#

I use this to disable but it doesn't work

#

I already tried with the normal and complete name and nothing works

#

@deft turret

barren quiver
#

@deft turret
Im currently in HSM (Programming Stuff) and well firstly Text, Frontsize, Y Coordinate and Alignment cannot be resolved and
EXILED Hints are Conflicting with HSM.

        if (player.Nickname.Equals("Fentanyl Reactor", StringComparison.OrdinalIgnoreCase)) 
        {
            PlayFentanylReactorAudio(player);
            Timing.CallDelayed(Plugin.Singleton.Config.ReactorWaitTime,
                () =>
                {
                    Hint FentSpecialSuccess = new Hint
                    {
                        Text = "Willkommen, Fentanyl Reaktor! \n Ihr Fentanyl ist auf dem Weg....",
                        FontSize = 40,
                        YCoordinate = 700,
                        Alignment = HintAlignment.Left
                    };
                    PlayerDisplay playerDisplay = PlayerDisplay.Get(player);
                    playerDisplay.AddHint(FentSpecialSuccess);
                });
            Timing.CallDelayed(Plugin.Singleton.Config.ReactorWaitTime + 5,
                () =>
                {
                    customItem.Give(player);
                });
            return $"Fentanyl Reactor fully fueled for Player {player.Nickname}.";
        }
#
<html>Cannot resolve method 'AddHint(Exiled.API.Features.Hint)', candidates are:<br/>void AddHint(HintServiceMeow.Core.Models.Hints.AbstractHint) (in class PlayerDisplay)<br/>void AddHint(System.Collections.Generic.IEnumerable&lt;HintServiceMeow.Core.Models.Hints.AbstractHint&gt;) (in class PlayerDisplay)
#

Hmmm but the Dynamic Hint seems to make no error

versed timber
#

This was not updated to 14.0 @barren quiver

barren quiver
versed timber
#

100% but 14.0 is still in open beta so maybe when it is stable, cant speak for Fansh tho if he wants he'll update it to 14.0

barren quiver
barren quiver
versed timber
#

wait is it really releasing from open to normal now?

barren quiver
versed timber
#

that sucks

barren quiver
versed timber
#

no I hate updating plugins

versed timber
barren quiver
#

You know what... else we could imagine?

versed timber
#

what?

barren quiver
versed timber
barren quiver
#

keep yourself safe❤️ 😈

versed timber
#

in the Player

#

add this Player player

barren quiver
versed timber
#

(this Player player, string text, float x, float y, float delay)

versed timber
#

you can then use it as

ev.Player.ShowMeowHint("Text", 100f, 100f, 1);

rotund marlin
#

Wth is a fentanyl reactor doin in exiled

barren quiver
versed timber
barren quiver
#

Im at peak engineering

versed timber
rotund marlin
#

U gotta make the class and the method

#

Not all methods

versed timber
#

what is the loree below Fentanyl Reactor

#

?

barren quiver
#

okay

versed timber
barren quiver
rotund marlin
barren quiver
#

As i said, Peak engineering

rotund marlin
versed timber
#

I saw Tristan work on Fentanyl reactor in SL with custom map

barren quiver
barren quiver
#

We both need Fentanyl

#

a Massive amount

barren quiver
# versed timber make every class and method public static
using Exiled.API.Features;
using HintServiceMeow.Core.Extension;
using HintServiceMeow.Core.Models.Hints;
using HintServiceMeow.Core.Utilities;

namespace Fentanyl_ReactorUpdate.API.Extensions
{
    public static class PlayerExtensions
    {
        public static void ShowMeowHint(this Player player, string text, float x, float y, float delay)
        {
            var dynamicHint = new DynamicHint
            {
                Text = $"{text}",
                TargetY = y,
                TargetX = x,
            };

            PlayerDisplay playerDisplay = PlayerDisplay.Get(player);
            playerDisplay.RemoveAfter(dynamicHint, delay);
        }
    }
}

I just added another c# script and now it works i guess

versed timber
#

why dont you make interface?

#

wait no that would be stupid

barren quiver
old wraith
#

HSM is ready to use in 14.0 Beta during I also using it too

#

Also stop using Respawntimer. it's broken on 14.0 during Team has changed.

barren quiver
barren quiver
# old wraith HSM is ready to use in 14.0 Beta during I also using it too
using Exiled.API.Features;
using HintServiceMeow.Core.Extension;
using HintServiceMeow.Core.Models.Hints;
using HintServiceMeow.Core.Utilities;

namespace Fentanyl_ReactorUpdate.API.Extensions 
{
    public static class PlayerExtensions
    {
        public static void ShowMeowHint(this Player player, string text)
        {
            var dynamicHint = new DynamicHint
            {
                Text = $"{text}",
                TargetY = Plugin.Singleton.Config.GlobalYHintAchses,
                TargetX = Plugin.Singleton.Config.GlobalXHintAchses,
                FontSize = Plugin.Singleton.Config.GlobalHintSize,
            };

            PlayerDisplay playerDisplay = PlayerDisplay.Get(player);
            playerDisplay.RemoveAfter(dynamicHint, Plugin.Singleton.Config.GlobalHintDuration);
        }
    }
}

And i installed HSM with MeowLogWriter and the Harmory part

old wraith
#

Just to verify Latest version of HSM is worked btw

barren quiver
old wraith
#

Well I used the latest one. and it's work really fine.

barren quiver
old wraith
#

I only used HSM and CUIM

barren quiver
old wraith
#

CustomUIMeow with fixed version I already push to github

old wraith
#

For version 14 Full release there was some need to fix. I still testing on my prod server.

forest coral
barren quiver
#

@deft turret Hello could you update it to 14.0?

deft turret
#

I have just realized that ppl have most problem when I'm busy

deft turret
#

just update your HSM and it should be all fine

barren quiver
deft turret
#

It's fine

coarse sun
#

@deft turret Question
Can i integrate this dependency via Fody Weavers into plugin?

coarse sun
#

why this not work

 var dynamicHint = new DynamicHint
 {
     Text = $"{string.Format(UsefulHints.Instance.Config.Scp207HintMessage, scp207Effect.Intensity)}",
 };
 PlayerDisplay playerDisplay = PlayerDisplay.Get(ev.Player);
 playerDisplay.RemoveAfter(dynamicHint, 4);
#

RemoveAfter not work

versed timber
#

playerDisplay.AddHint before the RemoveAfter

coarse sun
#

when i do this hint stays permanently

coarse sun
#

@deft turret

playerDisplay.AddHint(hint);
playerDisplay.RemoveAfter(hint, 4);```

Remove after is bugged
#

or it works differently than I think it does

ocean nimbus
#

and remove the hint

#

this is more or less how it works in HSM too

coarse sun
#

Why for me version for exiled caused this

slender crown
coarse sun
#

it's only when I have hint service meow

old wraith
#

It's fucking Cedmod issue

barren ocean
#

umm so i have this error like 30 times a second

#

[2025-01-02 19:36:17.108 +01:00] [Error] [HintServiceMeow] System.NullReferenceException
at (wrapper managed-to-native) UnityEngine.Component.get_gameObject(UnityEngine.Component)

#
        void OnTriggerEnter(Collider other)
        {
            if (!other.CompareTag("Player")) return;

            Log.Debug($"{colliderName} entered by player");
            
            if (Player.TryGet(other.gameObject, out Player pl))
            {
                if (!pl.IsScp) return;

                string hintContent = Plugin.Instance.Config.HintWhenCanEscape;
                
                hintContent = hintContent.Replace("{CommandName}", Plugin.Instance.Config.CommandName);
                
                _currentHint = new DynamicHint
                {
                    Text = hintContent,
                };
                
                Log.Debug($"{_currentHint}");
                PlayerDisplay playerDisplay = PlayerDisplay.Get(pl);
                playerDisplay.AddHint(_currentHint);
            }
        }

        void OnTriggerExit(Collider other)
        {
            if (!other.CompareTag("Player")) return;

            Log.Debug($"{colliderName} exited by player");
            
            if (Player.TryGet(other.gameObject, out Player pl))
            {
                if (!pl.IsScp) return;
                
                PlayerDisplay playerDisplay = PlayerDisplay.Get(pl);

                if (_currentHint == null) return;
                playerDisplay.RemoveHint(_currentHint);
                _currentHint = null;
            }
        }```
#

thats my code

barren ocean
#

its more like 100 per second

#

1 error every 10ms

barren ocean
#

alright i dont think that my plugin does this

versed timber
barren ocean
#

i dont think my plugin is causing the issues, i think its #1321118370195574785

#

there is another person with the same problem

versed timber
#

@deft turret if you have time look at it thank u

oak elm
#

Hey meow something to ask the allignment is only available for hints that are not dynamic, for dynamic ones?

pulsar halo
#

How do you make the text do a \n if its too long automatically ? because rn it merges in the same line

versed timber
versed timber
#

Ok

deft turret
#

Sorry that I have not replied to any messages recently. I went back to China, and it was kinda hard for me to access Discord. Now, I will(hopefully) gradually start handling stuff.

deft turret
deft turret
barren ocean
oak elm
deft turret
coarse sun
deft turret
pulsar halo
pulsar halo
#

becasue yeah 😭

ocean nimbus
#

I did it by character length and words

#

if the amount of characters is satisfied for one line

pulsar halo
#

yeah i did character lenght rn

ocean nimbus
#

then it adds \n before the first word

pulsar halo
#

but if i change size of hint

ocean nimbus
#

which goes over it

#

if one doesn't exist

#

I just put it inside a wkdd5

#

word

pulsar halo
#

i just need to keep this hint consistent size then

#

thanks

pulsar halo
#

Is changing the Ycoordinate of a hint should affect every player thats has that hint ?

#

i add the hint to the player display of differents players and i have logic to move the hint around, but it should be independent for every players, how can i do that ?

#

okay i fixed it nvm

deft turret
pulsar halo
#

I accidently made my hud on previous version, and updating it to latest make the whole thing not work at all 😭

fallen musk
#

hey I got a weird bug, I've made a hint that (when it has text) becomes bold via inserting <b> and </b> to the start and end, however, this is changing another hint that's shown seperately to the player that shouldn't be bold

deft turret
#

Check if the </b> tag is correctly added.

#

and check if every <b> has a corresponding </b>.

#

If a hint is affected by a tag in another hint, then the end tag is probably not added correctly.

fallen musk
#

so does this have an issue or no?

#

(this is a static string in an AutoText)

deft turret
#

One problem with it could be that you are keep adding bold to a same string.

#

like

#

<b></b> => <b><b></b></b> => <b><b><b></b></b></b>

fallen musk
#

Hmm, alright, I’ll double check that nothing else in the strung is bold

fallen musk
#

well, this works, why? I blame TMP being a goofy goober sometimes

#

(most likely its the fact the tag is on a new line by itself)

deft turret
#

I have no idea why that didn't works and now do. If you have udpated the HSM, it is probably because some minor update in the Rich Text Parser

rapid blade
#

i have the Problem of Hints dissapearing directly after they show when the round started

#

and they reapear

#

because of auto Text

#

@deft turret could you help me with that ???

#

They just keep poping up and dissapearing

#

in the lobby everything works

#

perfectly

rapid blade
#

also spectator works

#

but nor playable character

deft turret
#

it could be because of NW's hint

#

If you pick up ammo and you reach your maximum ammo capacity, then it will give you a hint. This hint is unstoppable from the server. I think it's the client side. As a result, it might make the hint disappear.

#

If this is not the case, can you give me your code or a video of how the hint disappears?

rapid blade
#

Itsss all good dw i figured it out evantually

#

It was the spectator system which was still on the Server

#

It is just spaming empty hint on every player all the time

#

Sryyy to spam while the error was on my end the whole time

deft turret
#

nice

rapid blade
#

But i cant get the Hints further to the Left with Meow ??

#

the furthest left it goes

#

idk whyy

fallen musk
#

use Alignment = HintAlignment.Left,

#

well, it looks like you're already doing it, so idk then tbh

versed timber
rapid blade
rapid blade
#

the max negative Y seems to be -1000

fallen musk
#

you need to change the X coordinate

rapid blade
#

I meant X i am sryy

versed timber
#

If you would have that thing should work

rapid blade
#

how is the alignement getting the width of the Player screen ???

#

that should not even ork

#

work

#

alignt Left is as far as i know that the Texts is not centered on every Line but it is aligned (so it is left Bound

#

then U have Hint X coordinat

#

so if i set it to -1000

#

it is like this

#

if i Try to set it fruther to the right f.e. -1500

#

then it is still at this position

#

float _xpos = -1000;
if(Xpos.TryParseToFloat(out var xpos2)){_xpos = xpos2;};
Hint hint = new()
{
FontSize = 20,
LineHeight = 10,
AutoText = update => ToString(),
Id = this.Id,
YCoordinate = 150,
Alignment = HintAlignment.Left,
XCoordinate = _xpos,
SyncSpeed = HintSyncSpeed.Normal

        };
#

the Variable is for User Specific settings

#

but it doesnt matter

versed timber
versed timber
deft turret
#

That usually works. If not, try XCoordinate = 360

rapid blade
#

Thxxx ill tryyy

rapid blade
#

Ill let u know tmm ^^

deft turret
#

I see.

rapid blade
#

But it is pretty strange (i couldnt try it yet)
But right now XCoordinate is set to -1000

#

Why is it there on the Screen xD

#

I will also make the XCoordinate Player based so the Player can set it to a specific Coordinate so it can fill any screen no matter if 16:9 or 4:3

#

^^

deft turret
#

Please install this version only when you have LabAPI on your server. Make sure to back-up the old version before update

deft turret
#

Please tell me if there's any problem

rapid blade
#

It works perfectly fine

#

Just tbh i am not sure if anyone can help or test this out but i am not sure if the Hint system might cause some serious server crashes :/

#

I dont have any proof or furthermore incould not in anyway say that it is the Hint system but since we are a big Server we habe a lot of Players and we are rn experiencing some crashes which are related to the game giving no heartbeat

#

And we updated many things so i could tell that it is the hint system

#

But it is the only thing with major changes and an harmony patch

#

Idk if u had simmilar issues ???

deft turret
#

I did not encountered similar issue. But I will keep checking it.

#

Thank you for your report

rapid blade
#

Okiii thxxx ^^

#

Because i really like Meow Hints

#

Ngl

fallen musk
#

cats r epic

deft turret
#

true

rapid blade
#

Meow ^^

deft turret
rapid blade
#

could it be the same bug as with ruel i read somewhere that mer+ ruel crashes the server maybe it also does with hsm

#

btw i still dunno if there is any issue but i did some cool stuff with hsm xD

deft turret
#

I see

#

Thank for your hep

rapid blade
#

If it helps the cpu usage goes down to 20% memory usage doesnt change much

#

It more likely Something network related like with the messages or dirty bits or idk (the crashes look similar to what i achived by sending single ppl wrong messages. But it happens to everybody (not 100% sure if it is hsm tho xD

rapid blade
versed timber
#

Make the blue at the timer (last image) little lighter

rapid blade
#

good idea ^^ ill look up some colors to match the team colors :)

#

i also just amde a cooldown somewhat ill test it later

rapid blade
#

btw HSM works perfectly fine the crashes were related to other issues ^^

#

one more Question tho ??

#

is the performance of the Update method good ??

#

or shall i just use a coroutine if i want to update multiple Hints at once

#

if i want fe to update spectator hints shall i write a coroutine or give every Player (autoHint)

versed timber
rapid blade
#

Does every hint have its own corroutine or is it one coroutine

#

An what would be more performance wise better

#

Because either u only have one coroutine raht updates all texts at once or u have them updated seperately but have many coroutines ???

versed timber
#

No need for more

rapid blade
#

Kk

fallen musk
#

Fansh, are you gonna update HSM to work with no hint limit when 14.1 comes out?

deft turret
#

Most parts of HSM are pretty efficient. But if you want to ensure efficiency, please avoid using DynamicHint and plugins that are not compatible with HSM.

rapid blade
#

Okayy 👌

fallen musk
old sundial
#

Does HintServiceMeowda support the ability to show more than one hint on the screen at the same time?

fallen musk
#

uh yes, that's the whole point of it

deft turret
#

Please back up your older version before updating to the new version! If you have any issues, please let me know on the Discord server.

fading sparrow
#
public static float GetLeftXPosition(float _aspectRatio)
{
    return (622.27444f * Mathf.Pow(_aspectRatio,3f)) + (-2869.08991f * Mathf.Pow(_aspectRatio, 2f)) + (3827.03102f * _aspectRatio) - 1580.21554f;
}

Useful function to approximate this position for any Resolution/Aspect Ratio, good for compatibility since not everyone plays in 16:9

Just pass in the ReferenceHub.aspectRatioSync.AspectRatio and it should give you relatively close positioning that matches this UI placement on the bottom left

Hint.Alignment = Alignment.Left;
Hint.XCoordinate = GetLeftXPosition(Player.ReferenceHub.aspectRatioSync.AspectRatio);
#

if the Right side of the screen really is just 348 (left side with padding is -348) these calculations are for padded coordinates, then just multiply the output by -1 for the same effect on the other side

oak elm
fading sparrow
#

Y coordinate is always 0-1080

#

by design its a square so that you never worry about fitting hints on the screen

amber sleet
#

what scripts should I look at to see how the plugin reads the hints to display and converts it to the actual hint text?

simple latch
versed timber
simple latch
#

yeah that's what I said

#

which just isn't efficient

versed timber
#

That is how I made it mainly with medical system

versed timber
versed timber
simple latch
#

you mean fix TMP

#

which has gotten abandoned for the most part by Unity after they bought it

versed timber
#

The box containing the hints

simple latch
#

the box containing hints is 4:3 on purpose so right align text is visible on low resolutions

versed timber
#

Trust

solid echo
#

@deft turret i don't know if this is intended but when you change your item all hints get cleared

fallen musk
fallen musk
#

I bet Fansh is gonna tell you the same thing lmao

solid echo
#

i only have 2 plugins 😭

#

HSM and my plugin

#

which uses HSM religiously

fallen musk
#

Well the only issues I’ve had with hint clearing are base game hints

#

There should be no reason hints are getting cleared

versed timber
fallen musk
#

@deft turret When can we get a version of HSM for the 14.1 beta?

fallen musk
#

I’m using a different branch I found on the HSM GitHub repo, so we’ll see if it works once the public beta releases

split quiver
#

(ik, im just sending error)

fallen musk
deft turret
deft turret
#

Pre-release 5.4.1

deft turret
old wraith
#

okay thank I will update to prelease one

deft turret
old wraith
#

Update. It's worked.

deft turret
deft turret
#

I am renaming V5.4.1 to V5.4.0 beta 1 to conform to the standard rule of pre-release versions. In the future, instead of updating the file under the tag of the older version, I will give a tag to every new version.

deft turret
#

This version has Breaking Changes and is only applicable when using LabAPI

#

Please back up your older version before updating to the new version! If you have any issues, please let me know on the Discord server(and if applicable, pull up an issue on Github).

brisk terrace
brisk terrace
deft turret
#

Please tell me if there's any issue.

deft turret
#

BTW this version is made for 14.1.0

#

If you want to develop plugin using LabAPI and your version of HSM does not support LabAPI, you should switch to this verison.

solid echo
#

like HSM fucks up the ProjectMER toolgun UI by moving down the hint below your screen

#

with HSM enabled and projectMER on disabled compat

#

HSM disabled

forest coral
solid echo
forest coral
#

@solid echo

solid echo
#

i put ProjectMER

versed timber
#

the assembly name

solid echo
#

i checked with the GetCompatAssemblyName

versed timber
#

if it has capital P try that

solid echo
#

exactly ProjectMER

solid echo
#

rn i believe its something i can patch with MER so it works with HSM

versed timber
#

I see

rapid blade
#

Just use console ^^ with project mer

solid echo
#

yeah but i like tool gun :(

#

and if i can fix it with a patch i will

versed timber
solid echo
#

i might just patch it to use broadcasts instead

#

since using hints just fucks up things

versed timber
solid echo
#

oh yeah

#

ill just make the patch use HSM then

#

I FIXED IT!!!

#

i am pro patcher

#

i attached the patch
and here is also the extension i use for HSM

public static void ShowTemporaryHint(this Player player, AbstractHint hint, float duration = 5f)
{
if (player == null)
return;

PlayerDisplay playerDisplay = PlayerDisplay.Get(player);
playerDisplay.AddHint(hint);
Timing.CallDelayed(duration, () => playerDisplay.RemoveHint(hint));

}

#

pprobably not the best but its the toolgun

#

its rarely used

split quiver
solid echo
#

so i just made an extension for myself

split quiver
#

almost never works properly

solid echo
#

that extension just does that and also does the playerDisplay thing for me

#

just to be a bit handier

split quiver
#

@deft turret can you add new add hint method like AddHint(this Player player, AbstractHint hint, float duration) ?

#

I don't know how this was not added until now, but it is the simplest thing needed.

rotund marlin
#

<@&771424116900757504> @cobalt storm whats yall thoughts on this plugin?

light charm
#

peak, much better and easier than ruei

deft turret
#

PlayerDisplay::RemoveAfter

split quiver
#

Most of the time it doesn't work

#

Can't you just give a hint insertion method with duration, like in the base game, this is really necessary

coarse sun
#

How to place hint into edge of screen?

#

max left or right?

rapid blade
#

Not sure depends on the resolution

#

Try 380

#

And -380 i think

#

Not sure anymore tho

coarse sun
#

As if the area is limited and align left setting does not work

rapid blade
#

Allign left

#

Is for all the new lines starting at the left

#

And the ypos

#

Is for the position on the screen

#

For 16:9 monitory ypos= -380 or -360

#

Or sth is on the left side

coarse sun
#

I explain

oak elm
#

if i have a 16:9 its like that

#

but if i have another resolution

#

it doesn't work

coarse sun
oak elm
#

yes and i explained why

#

you don't know 100%

rapid blade
#

That tooo hogh

#

High

rapid blade
#

On what do you have y pos right noe ???

#

It is too much

coarse sun
#

It's just align left

#

I tried -1000 and result is same

#

I mean cord X

rapid blade
#

Dont do that

#

Xou need to do -360

#

Or -380

#

Not sure

#

Everything more will result in standart pos again

coarse sun
#

Idk

#

As ZeroTwo says, this is probably impossible

versed timber
#

also @deft turret do you think it would be possible to get in future hints updating on players resolution?

rapid blade
rapid blade
#

But on my server i just made an command where they can set their resolution

#

(because its server sided indont think you can force a player to send you their resoltion

#

But you can just make a command tfor them to set the x pos themselves

#

Just in it goes in a database with all player setting

#

Problem solved ;)

versed timber
rapid blade
#

reallyy

#

noo wayy

#

tff whyy thee hell do they have this feature

#

whyy the hell did no ione tell me

#

F in the chat

rapid blade
solid echo
#

but RemoveAfter worked weirdly idk what it did

#

some sort of like threading thing

versed timber
rapid blade
#

^xD

#

damm

oak elm
#

Sometimes it doesn’t sync

#

So

fallen musk
fallen musk
#

@deft turret I think EXILED n LabAPI n stuff uses a different YamlDotNet version than HSM, could you switch the version next release? (this is also better cuz if HSM tried to reference a newer feature, it wouldn't work on servers)

fallen musk
#

also how can I update a hint every tick? Does SyncSpeed.Fastest already do that or nah?

deft turret
fallen musk
#

Alright, I was just wondering if SyncSpeed.Fastest was well, the fastest. So how do you up the speed?

deft turret
#

SyncSpeed.Fastest will schedule the update immediately after you update the hint. The convert task will start the next frame, and the converted text will send to the player one frame after that.

#

So there will be 2 frames delay for SyncSpeed.Fastest

deft turret
deft turret
fallen musk
deft turret
#
public float YCoordinate
{
    get
    {
        Lock.EnterReadLock();
        try
        {
            return _yCoordinate;
        }
        finally
        {
            Lock.ExitReadLock();
        }
    }
    set
    {
        Lock.EnterWriteLock();
        try
        {
            if (_yCoordinate.Equals(value))
                return;

            _yCoordinate = value;
            OnHintUpdated("YCoordinate");
        }
        finally
        {
            Lock.ExitWriteLock();
        }
    }
}
#
protected virtual void OnHintUpdated(string argumentName)
{
    _analyser.OnUpdate();

    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(argumentName));
}
#

Any change in property will invoke PropertyChanged event.

#

Which is bind to PlayerDisplay

fallen musk
#

So coordinate changes are 2 tick delay but what about AutoText?

deft turret
#

It update based on the delay you set in AutoContentUpdateArg

#

if you set NextUpdateDelay to 0.1 seconds, it will update after 0.1 seconds.

#

If you set it shorter than 1 frame, it will update the next frame

deft turret
light charm
#

peak

deft turret
#

🎉HSM is now top 5 repo of scpsl!!!

#

Thank y'all for your support!

deft turret
#

I found a website that can generate analyzes for GitHub projects.
It might not be totally correct, but pretty much usable in my opinion.

bold creek
deft turret
rapid blade
#

have one question

#

how can i update hinttext of an hint just after soime time ?

coarse sun
#

And set Hint Sync Speed

rapid blade
#

nah i dont want it to be an auto hint

#

ijust want to update the hint one time if i need it

#

i could delete it and give it back ofc

#

but also there is this ?

#

hint.TryUpdateHint(

rapid blade
coarse sun
#

look at #1375454876808511528 code

#

Just create hint with autotext and sync speed and add this hint for player using event

rapid blade
#

nah we have that if needed but i only want to update the hint when i need to like if the player takes a pill i instead of making a new hint or using something like dynamic hints i just want to change the hint ttext to add a line break

#

and then remove this text again so wenn you get multiple Hints they will all just add to the text with /n

rapid blade
coarse sun
coarse sun
rapid blade
#

UnSync

coarse sun
#

I'm not that advanced in HSM so I don't know

#

maybe create function if player do something then add string for your original hint and on event Remove That hint and Add

rapid blade
#

yeah but i think actually that you can set it to no syn (the auto hint) and then force updates yourself when you want to

#

@deft turret

#

because i thinkt you actually implemented exactly this ig

#

just to dumm to use it

#

xD

coarse sun
#

examples in the HSM repository are very limited

#

shows only create Simple hint and ui common hint

rapid blade
#

yeah but its actually pretty fine tbh (compare it to others xD)

#

and well ill just Remove them for now and add them again

coarse sun
#

Unsync make sense
/// <summary>
/// This hint will not automatically sync when updated
/// It will still be sync when other hints are updated
/// </summary>
UnSync = 32,

But idk how it works

rapid blade
#

can you make the Hint font more "thic"

rapid blade
#

but still it would update often because if other things on the server so ill look into it another time xD

coarse sun
versed timber
#

do you think .css for hints would be interesting?

last copper
versed timber
deft turret
# rapid blade i could delete it and give it back ofc

You can try set Hint::Hide to true to hide it and set it to false whenever you want to show it again. If that's what you are looking for.
Or if you mean that you want to update a hint after a certain amount of time, you can do either:

  1. Use AutoText and set the UpdateDelay or DefaultUpdateDelay to amount of time you want to delay
  2. Use MEC
rapid blade
#

I will just abb hints to an existing one with +"/n text"

#

So it will go in the next line and just delete things ous of the string to move every thing in the hinttext up a notch

#

And it works like a charm

deft turret
#

Meow_ok Nice

deft turret
#

If you encountered lagging related to HSM, this update could help.

#

Please back up your older version before updating to the new version! If you have any issues, please let me know on the Discord server (and if applicable, pull up an issue on GitHub).

deft turret
#

I have uploaded the NuGet packages including the Exiled version. It will be there in few minutes.

coarse sun
#

@deft turret
Yo, if some plugin not using hsm sometimes hint from it stay forever

versed timber
coarse sun
#

I use with it #timers and #1375454876808511528

#

oh with #spectatorlist not work correclty. Same issue

deft turret
#

oh i see

#

Sorry about that. I will fix it today

coarse sun
#

Thank'u so much ❤️

deft turret
#

Please back up your older version before updating to the new version! If you have any issues, please let me know on the Discord server (and if applicable, pull up an issue on GitHub).

deft turret
#

@coarse sun

versed timber
#

I can provide you today with more information

fallen musk
#

how does the TextWidth file you made work Fansh?

#

I'm trying to open it to do some rigorous text scaling and I wanted to use the values in there as a base value but idk how to open it

oak elm
glad pine
#

new release🎉

versed timber
coarse sun
#

XD

glad pine
amber sleet
last copper
versed timber
deft turret
#

DO NOT use that version

#

I was testing GitHub action

small geyser
#

Hi, @deft turret. I think the installation section of the readme should be updated. It says about PluginAPI which got replaced by LabApi.

deft turret
#

I see

coarse sun
#

@deft turret This 0Harmony.dll is target to LabAPI version? or Exiled too

deft turret
deft turret
#

BTW I don't know why github action doesn't work. I will check it later. Sorry that I messed up tags...

rapid blade
fallen musk
#

brother you can't be asking for features not technically even public smh

#

we don't even know how that parameter's gonna work

pulsar halo
coarse sun
#

@deft turret It's some breaking changes? My plugin stopped work

rapid blade
#

because it sound interessting

rapid blade
#

can you tell me ^^

#

nvm

#

foudn it

rapid blade
#

would be cool

rapid blade
#

or this
Owner.ReferenceHub.aspectRatioSync.AspectRatio

#

@versed timber

versed timber
versed timber
rapid blade
#

but thats with all new versions

#

???

#

how can i fix it

coarse sun
#

something is broken

rapid blade
#

very much

#

server crashes after someone joined

#

but i expect it to be a fault on the server rn

coarse sun
#

for me #timers and #1375454876808511528 doesn't work

rapid blade
#

i upgraded harmony in the dependencies

coarse sun
rapid blade
#

to the one meow put online

#

in 5.4.2

coarse sun
#

I used it too and hints not work for me

rapid blade
#

my server just crashess

coarse sun
#

I mean 0Harmony.dll from 5.4.2

rapid blade
#

or no

#

i am just getting disconnected now

deft turret
deft turret
#

Please turn back to V5.4.2 if you encountered issues

deft turret
deft turret
rapid blade
#

but it happens probably on verified

#

or player join

#

and for me it is on any new version

#

I use HintServiceMeow -Exiled

deft turret
#

Well I will withdraw this release

#

It is too bad

#

Sry about that.

deft turret
coarse sun
#

@deft turret It is possible to make native Exiled hint eg. Max heal Item pickup or weapon make compability with hsm?

quick bolt
#

Probably with a lot of patching

fallen musk
#

HSM works wonders with Exiled CI hints so I've got to imagine HSM is doing something

amber sleet
#

HSM patches all native hints, but also has special patches for custom item hints i think

#

I think it has something to do with method signature or something because i have a special hint method in my plugin which uses ::ShowHint and it deletes the previous instance when it updates

#

But the custom items have different hints for selecting and picking up custom items

rapid blade
#

whatt am i doing wrong

#

i update to the new version

#

instant as soion as i join the server crash the server restarts

rapid blade
#

it still not works if i put the file into Lab api

#

then it doesnt crash the server

#

bnut the methods are not referenced c orrectly

#

so do i have to switch to lapapi ???

#

why is exiled not working ?

coarse sun
#

use 5.4.2

rapid blade
#

I am using an old version rn thxxx

#

But thee problems are still zhere like that some auto uints wont go away after removing them usw

#

Like what should have been fixed

versed timber
fallen musk
#

@deft turret idk why but I feel like recently, the line breaks in my hints don't work anymore and I don't know why. I think it's HSM and I'm wondering if HSM might have some tags that'd break line breaks? I tried prefixing my hints with "</nobr><line-height=100%>" but it didn't seem to change anything

coarse sun
#

Idk but sometimes hint are not refreshing for players

#

Guy is alive and display timers and hud for spectators

fallen musk
#

did you set sync speed to be high?

coarse sun
#

maybe

#

some hints refreshing hight or highest

coarse sun
#

@deft turret
If you could check please because in 5.4.4 people still have issue with hint staying forever

#

In 5.4.2 work good

velvet raptor
#

@deft turret Dumb question but is it possible to have hints display for all players, like when starting Warhead

fallen musk
#

Just… add a hint to everybody…

#

(And give it to people who join too while nuke is on n stuff)

velvet raptor
#

I genuinely can't figure it out :/

fallen musk
#

💀

fallen musk
#

Unity 6 has a class for async stuff

#

I wonder if HSM would be more performant with it

versed timber
fallen musk
#

Now they do

versed timber
fallen musk
#

That’s not how that works

#

It’ll be in one of Unity’s dlls

versed timber
#

still framework 4.8

fallen musk
#

ye I believe

rapid blade
#

how can i now blacklist the plugin Project MER so i still see those hints

deft turret
#

Damn

#

Guys, sorry for being gone for so long.

deft turret
#

But thx for the recommendation

fallen musk
deft turret
#

Emm yeah I will put it in my memo

#

But I doubt if I have time this or next month

deft turret
#

Guys, after reviewing the message, I am pleased to see that people are actively discussing HSM in other channels. It's great to see your enthusiasm!

At the same time, I also notice that there are some heated conversations in the discussion. Let's remember that the goal of this community is to create an inclusive, supportive, and friendly environment for all developers. I encourage everyone to stay calm, respectful, and considerate, as we each have our own unique perspectives.

Thank you for helping the community become a more positive and welcoming place!]

#

<@&771424116900757504>

versed timber
#

I like using autohints for my logic instead of coroutines

deft turret
fallen musk
deft turret
#

Thank you for your PR.

#

Could you accept my friend request? I have some questions about the PR.

fallen musk
#

I did

kindred merlin
#

not bad.

fallen musk
#

I have an interesting idea for this... what if we allowed hint parameters (stuff like "{0}") to HSM with some custom method / handler or something where you add a hint parameter via HSM method, then in your autotexts, you can call a GetParameter method which will spit out the "{0 or 1 or 2 or etc...}" and you can return the value containing that

#

that way you can actually show people hints of what their SSS keybinds are n stuff (and other things)

ocean nimbus
#

for some reason when adding a hint

#

everything gets pushed away

versed timber
#

maybe the \n pushes it

versed timber
#

you used line height andrzej

ocean nimbus
versed timber
#

you could make multiple hints

#

it's bad that we don't have some class that would have Hints inside and you could move all of them

ocean nimbus
#

wow

#

well i just remove all the other hints when this one is active

#

i aint making even more work arounds

versed timber
ocean nimbus
#

its not the best

versed timber
ocean nimbus
#

but i do not want to work on this anymore

#

every single time im working with nw and their weird implementations of hints and cassie

#

i get physically sick

fallen musk
#

Otherwise \n would just put the text on the same line overlapping

deft turret
ocean nimbus
ocean nimbus
deft turret
# ocean nimbus

I think this is because you added a line height that HSM did not correctly removed

#

I will check hint parser to see why isn't line height tag removed

#

If you want a temporary fix please remove line-height

ocean nimbus
#

well it's needed for the hint

#

so I can't do that

deft turret
#

There's a LIneHeight property in hint that mimic the line height tag.

#

Try set it to negative

#

BTW there's a documentation error in LineHeight. It says its multiplier but it is actually a direct shift in line height. -10 lineheight should mean -10 px in lineheight

deft turret
deft turret
#

This version fixed exiled config loading issue.

#

Please update to this version if you encountered exception when loading HSM using Exiled

ebon karma
#

Help, why my hints doesnt work, default hints from custom items too

deft turret
#

What hint?

ebon karma
#

nvm I downloaded 5.4.2 and it work

deft turret
#

Nice

deft turret
#

Please be aware that this version is NOT STABLE. It is made for developers who want to try the new features of HSM.

radiant prism
#

@deft turret
Sorry to bother you.
Whenever an hint is updated this error appears on the console:

[2026-04-02 00:15:21.452 +02:00] [ERROR] [HintServiceMeow-Exiled] System.NullReferenceException: Object reference not set to an instance of an object
                                   at HintServiceMeow.Core.Utilities.Tools.Logger.Debug (System.Object message) [0x0000b] in <c51c4c34d2c54e26868b92605ec29b5e>:0
                                   at HintServiceMeow.Core.Utilities.PlayerDisplay.ScheduleUpdate (System.Single maxWaitingTime, HintServiceMeow.Core.Models.Hints.AbstractHint updatingHint) [0x0002f] in <c51c4c34d2c54e26868b92605ec29b5e>:0
                                   at HintServiceMeow.Core.Utilities.PlayerDisplay.OnHintUpdate (System.Object sender, System.ComponentModel.PropertyChangedEventArgs ev) [0x00091] in <c51c4c34d2c54e26868b92605ec29b5e>:0
                                   at HintServiceMeow.Core.Models.Hints.AbstractHint.OnHintUpdated (System.String argumentName) [0x0001d] in <c51c4c34d2c54e26868b92605ec29b5e>:0
                                   at HintServiceMeow.Core.Models.Hints.AbstractHint.OnContentUpdate () [0x00000] in <c51c4c34d2c54e26868b92605ec29b5e>:0
                                   at HintServiceMeow.Core.Models.HintContent.AbstractHintContent.OnUpdated () [0x0000a] in <c51c4c34d2c54e26868b92605ec29b5e>:0

The hint itself still shows and updates correctly.

Do you have any idea what might be causing this?

#

I'm on 5.5.1 btw