How to get the string value from a hash("string")


Hi! Need a little bit of help please.
Give hash(“stringvaluehere”), how to do i extract the string inside the hash? I would like to use it for an operation that requires a string.


You can use hash_to_hex on a hash to get that value returned as a string.


do you mind giving me an example?
I tried doing hash_to_hex(hash(“string”))
wanted to get “string”, but instead got a hex value (as expected from the function name)


Hashing a string is one way. When you send a hashed value that’s the kind of value sent, because they are meant to be unique IDs for message passing.


Thats what i thought. Thanks for confirming that. So i guess my real question is why i cant seem to declare a string property. I’d like to pass a string to another script but wont allow me strings.

@Pkeod do u mind jumping to my other question?


By the way, hashing the same string will always give the same hash. You can pre-hash strings too.

I’ll answer that on other thread sure.


Sorry for bumping this topic, but I just try to solve that maybe will help out how to get the answer…
Since I have a same problem with it, but I solve with tricky way, here my example:

local texture = gui.get_flipbook(self.node) -- example, need to get the animation from that node
print(texture) -- > DEBUG:SCRIPT: hash: [Button_Red]
self.texture = string.sub(tostring(texture), 8, #tostring(texture)-1)
print(self.texture) -- > DEBUG:SCRIPT: Button_Red

why 8 and -1? You can count it from tostring console output that string you wanted to get


You should not do this. It will only work in debug builds. In a release build there’s no reverse hash look-up enabled and your code will not work.

In your case of matching a flipbook animation id to a string you’d need to create the look-up table from hash to string yourself, or even better always work with the hashed values.


Sorry for asking in this thread, but can I get the reference/example for look-up table from hash or get hash value? As you said. Because I need to return val/string that texture/animation’s node have. (Same like title thread)


May I ask why you need this?


Based on this button implementation:

I want to make button implementation that behave like 2 sprite when pressed and not

And for implement this, then I have 1 node on .gui with not-pressed flipbook/animation or texture(?) in component, called “button_red”.
So, when it clicked, it will change to “button_red2”, but since I have no idea to return that hash into string because I get_texture from that node, then im doing this:

-- button.lua
function, node_name, type, handler)
if self.button_type == SPRITE_TYPE then
	local texture = gui.get_flipbook(self.node)
	self.texture = string.sub(tostring(texture), 8, #tostring(texture)-1)
	self.next_texture = string.sub(tostring(texture), 8, #tostring(texture)-1).."2"

later, I call this string value on variable to change node

-- button.lua
function Button:press()
	if self.button_type == SPRITE_TYPE then
		gui.play_flipbook(self.node, self.next_texture)

Sorry for long explanation, maybe its bit weird grammar, but yeah, I have no idea in the first place to make polished button on GUI, then this is why im doing it.


I think you’re complicating things a bit. I’ve created an example of how to create buttons with visual states using only a couple of lines of reusable Lua code:


There’s also the button example:
And if you want something more advanced then check out Gooey: