Maybe because when you require a module script you get a version of it that’s parented to nil? That was just a guess, I have no idea why this happened, but you can just get to the ObjectValue with a path starting with game instead of a path starting with script.
local ov = game.ReplicatedStorage.Folder.ObjectValue
This way it doesn’t matter if script’s parent is nil.
The first reply is a good guess, but incorrect. Requiring Modulescripts runs the code in the modulescript “from” the modulescript (so using script works like it would in any other lua container), so requiring a module with this code in it that is parented under workspace will print workspace:
print(script.Parent.Name)
My guess is you have something parenting scripts to nil, or something that destroys the script. Have you checked the modulescript is still there on whatever side (server or client) you’re requiring it from? By default modulescripts don’t have this strange behavior, so its very likely something you did. If you have no code that could be destroying the modulescript, try opening a baseplate and putting a modulescript under workspace with the code above and requiring it, and it should print workspace. If it doesn’t print that, then some plugin might be destroying scripts or something.