Automaticly generating watermark for each user

Hello. Currently I have exe file that i distribute to every user. But I wanted to take advantage of watermarks feature that would allow me to track which user leaked and cracked the program. I’m wondering is there any way I could modify or add watermark with value that I will specify?

	local vmp_core = vmprotect.core()
	local watermark_name = "BUILD_INFO"
	local watermark_data = "12321312"
	
	vmp_core:watermarks():add(watermark_name) --how do i put watermark_data in here
	print("Watermark has been generated!")

Are you a registered user?

Yes, I bought pro version

What is your registered email?

I sent in PM

Try the following code:

	local vmp_core = vmprotect.core()
	local watermark_name = "BUILD_INFO"
	local watermark_data = "12321312"
	
	vmp_core:watermarks():add(watermark_name, watermark_data)
	print("Watermark has been generated!")

I have been playing around with watermarks and I’m not sure how they work. Because there is a list of watermarks where each can be blocked, but there is option to select one. What is the difference between not blocking and selecting?
I saw that Watermark class has setBlocked(bool) function, but i see that whether i set it to true or false, it always unblocks the watermark. I tested it with following script, comments reflect what is happening for me during tests

function OnBeforeCompilation()	
	local vmp_core = vmprotect.core()
	
	for i = 1, vmp_core:watermarks():count() do
		local found_watermark = vmp_core:watermarks():item(i)
		local found_watermark_name = found_watermark:name()
		
		-- now there are listed correct states that are set manually by user
		print(found_watermark_name .. " first state: " .. (found_watermark:blocked() and "" or "not ") .. "blocked")
		
		found_watermark:setBlocked(true)

		-- they all should be locked, but everything is getting unlocked
		print(found_watermark_name .. " second state: " .. (found_watermark:blocked() and "" or "not ") .. "blocked")
		
		found_watermark:setBlocked(false)
	
		-- for test, they still remain unlocked
		print(found_watermark_name .. " third state: " .. (found_watermark:blocked() and "" or "not ") .. "blocked")
	end
end

I saw that Watermark class has setBlocked(bool) function, but i see that whether i set it to true or false, it always unblocks the watermark.

Fixed in the 2372 build.