Uncategorized is used for any commands that don't have a category defined at declaration. It doesn't necessarily imply a permissions issue. It's not uncommon to have commands in uncategorized, especially if you move things around and forget to either hard-code the category or include the variable that contains the value. For example, below would be uncategorized if I forgot to set CATEGORY_NAME to a value in the script.
That being said, if something is showing in uncategorized AND showing unexpected permissions issues (ie, you don't have an obvious permissions configuration issue), then I'd say something is more deeply wrong with the script than simply a missing cat name.
function ulx.vote( calling_ply, title, ... )
if ulx.voteInProgress then
ULib.tsayError( calling_ply, "There is already a vote in progress. Please wait for the current one to end.", true )
return
end
ulx.doVote( title, { ... }, voteDone )
ulx.fancyLogAdmin( calling_ply, "#A started a vote (#s)", title )
end
local vote = ulx.command( CATEGORY_NAME, "ulx vote", ulx.vote, "!vote" )
vote:addParam{ type=ULib.cmds.StringArg, hint="title" }
vote:addParam{ type=ULib.cmds.StringArg, hint="options", ULib.cmds.takeRestOfLine, repeat_min=2, repeat_max=10 }
vote:defaultAccess( ULib.ACCESS_ADMIN )
vote:help( "Starts a public vote." )