Detecting a player in a boat Minecraft 1.12.2

Minecraft v. 1.12.2

I currently have a scoreboard:

/scoreboard objectives add Riding dummy that adds the Riding dummy.

My second command sets Riding to 1 if a player is in a boat:

/scoreboard players set @a[type=Player] Riding 1 RootVehicle:{Entity:{id:Boat}} (Command is set to repeat)

If the above command is not active, then this one fires instead:

/scoreboard players set @a[type=Player] Riding 0 (Also on repeat)

Here's what it looks like:

enter image description here

The command on the far right, that detects is the player is in a boat, never fires off. Is there an update that I missed in 1.12.2 that changes the tags? The command block output remains blank, ad the other purple command block outputs that it found my player and set the Riding value to 0. Why is it not detecting me in a boat?

(Yes, I am using the right kind of boat, the default oak boat)

EDIT: I'm testing to see if the player is in a boat with:

/execute @a[score_Riding=0] ~ ~ ~ detect ~ ~ ~ water 0 /effect @p 7 1 2

This is a multiplayer server.


Two fixes. Your initial command has a few formatting issues, it should be:
scoreboard players set @a Riding 1 {RootVehicle:{Entity:{id:"minecraft:boat"}}}

Then, you're executing when Riding=0 instead of Riding_min=1. Use this instead: execute @a[score_Riding_min=1] ~ ~ ~ detect ~ ~ ~ water 0 /effect @p 7 1 2?

Ensure that you set the Riding score of all players to 0 BEFORE you run the check to see if a player is in a boat, otherwise the score of all players will always be 0.

Also, @a[type=Player] is redundant, because @a already selects all player entities.

Finally, I would recommend using chain command blocks in sequence as opposed to redstone, because the update order can be confusing. Use this to help: enter image description here