The model and the name of the compass can be customized using a resource pack.
Compass Model
The client item used by the compass can be specified in its datapack definition.
While you may use any client item, if you only want to change your compass' background texture and its needle colors, it is recommended to use the following format, which only requires a single model for the background.
Item definition in assets/<provided_namespace>/items/<provided_name>.json, where the first model is the compass base and the others are the needle models:
Click to expand
{"model": {"type": "minecraft:composite","models": [{"type": "minecraft:model","model": "omnicompass:item/biome_compass_base"},{"type": "minecraft:range_dispatch","entries": [{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_16","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 0.0},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_17","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 0.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_18","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 1.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_19","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 2.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_20","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 3.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_21","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 4.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_22","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 5.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_23","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 6.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_24","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 7.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_25","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 8.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_26","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 9.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_27","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 10.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_28","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 11.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_29","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 12.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_30","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 13.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_31","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 14.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_00","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 15.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_01","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 16.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_02","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 17.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_03","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 18.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_04","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 19.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_05","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 20.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_06","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 21.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_07","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 22.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_08","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 23.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_09","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 24.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_10","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 25.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_11","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 26.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_12","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 27.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_13","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 28.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_14","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 29.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_15","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 30.5},{"model": {"type": "minecraft:model","model": "omnicompass:compass/needle_16","tints": [{"type": "omnicompass:needle","shadow": true},{"type": "omnicompass:needle"}]},"threshold": 31.5}],"property": "omnicompass:target_position","scale": 32.0}]}}
Model for the compass base in assets/<provided_namespace>/models/<provided_name>.json:
{"parent": "minecraft:item/generated","textures": {"layer0": "omnicompass:item/biome_compass_base"}}
Needle Colors
You can apply a color tint to the compass's needle and its shadow using a datapack.
Compass Translation
Each compass type requires a translation for its name, which has to be specified in assets/<namespace>/lang/en_us.json:
"compass_type.<namespace>.<compass_name>": "Compass Name"