Sales voice: Do you think it's annoying that you cannot give players read-only access to character sheets? So do I! This is a script to help out with that problem. It will create (for characters of your choice) public copies of the sheets that mirror the private ones. A non-GM player will only see one version (either the public one, or the private one, if they control the character). Any changes on the private sheets will be propagated to the public ones, while any changes to the public sheets will be reversed. Usage: enter "!publicsheet" in chat. The rest should be self-explanatory. Code: Github . Config options By default, the public version of a character will be named "(Public) NAME ", but you can adjust that by entering "!publicsheet config publicname X " in chat, where X is the new naming convention. All-caps NAME in X is replaced by the character name. Enter "!publicsheet config unsynced LIST" to define a list of non-synchronized attributes (for tabs and such). LIST should be a comma-separated list of attribute names that will be ignored by the script. "!publicsheet config onlyshowcontrolled [on|off]" will either show, or not show, NPCs in the default query for adding characters (probably makes it easier to handle for huge games).