Hey mate, so one way you could handle this is:
Enable permission based trees, so players require permissions to see each tree.
Assign permissions to the default oxide group for each default tree so the players can see them.
Create a new tree in the config and call it whatever you want. Add a node in at level 1 that will provide the user with the permission. Do not give permission for players to see this tree. See my video if you need help with this.
Go to the leveling rewards section of your config and add in the desired level, and add a command that fires off a permission to give the player access to the new tree you just created when they achieve that level.
"List of rewards the player receives based on level": {
"100": {
"List of commands and chat messages that the player receives when reaching the specified level [Left = command. Right = Private message to player]. {id} = steam ID. {name} == name.": {
"o.grant user {id} skilltree.mytreenamehere": "You have unlocked the <insert name here> skill tree and can now learn on shot kill."
},
"List of commands that are fired off when the player data is reset": [
"o.revoke user {id} skilltree.mytreenamehere"
]
}
},