Thanks for having doawnloaded LegibleNei.
LegibleNei is an Not Enough Items plugin which adds custom dynamic filters with config files.
Version: 1.3

This page is for people who want to customise and create new filters.
If you only want to use default filter config, you don't need to read this page.
the only thing you need to know is that you can disable/enable filters with APOSTROPHE key
and you can modify this key in: 
	Option/KeyBindings/Inventory when Nei panel is opened for 1.7.10
	Minecraft control panel for JEI in 1.8+


---------------------------------Filters-------------------------------------------------------
You can write a filter in a new file placed in config/LegibleNei/filters
Put filter in unused filters directory if you do not want to use it.

Filters syntax uses json so a filter is written like this:
You can use pure json syntax:
{
"mod1":[
	{"ruleType":["prefix",["parttern*","idname"],"suffix",[0,"5*","10-20",50],["{*}","","{display{Name:\"Custom Name\"}}"]]}, 
	{"ruleType2":[["*"],[]]}
],
"mod2":[
	{"ruleType3":[["idPattern1","IdPattern2"],[]]}
]
}
But I use Gson parser which is very permissive, so you can also use this syntax:
{
mod1:[
	{ruleType:[prefix,[parttern*,idname],suffix,[0,5*,10-20,50],['{*}','','{display{Name:"Custom Name"}}']]};
	{ruleType2:[[*],[]]};
],
mod2:[
	{ruleType3:[[idPattern1,IdPattern2],[]]};
]
}

Personally, I recommend the second syntax, but you are free to use valid json syntax if you want.
Here is an example of filter.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
Mekanism:[
	{keep-one:[[BasicBlock2],[3,4]]};
	{hide:[[MachineBlock],[5-7]]};
	{keep-one:[[MachineBlock2],[11]]};
	{keep:[[*Plastic*,GlowPanel,Balloon],[15]]};
	{hide:[[Clump, DirtyDust, Shard, Crystal],[]]};
],
appliedenergistics2:[
	{keep-one:[[item.ItemCrystalSeed],[0,600,1200]]};
	{keep:[item.Tool,[EntropyManipulator,WirelessTerminal,
		ChargedStaff,ToolMassCannon,PortableCell,ColorApplicator],[0],['{}','']]};
	{keep-one:[[item.ItemFacade],[]]};
	{keep:[item.,[ItemPaintBall],[0]]};
	{hide:[tile.Block,[MatrixFrame,CableBus,Paint],[]]};
	{hide:[[item.ItemEncodedPattern],[]]};
	{hide:[[item.ItemMultiPart],[0-15,20-35,40-55,60-75]]};
]
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////Rule Creation //////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
Before writing rules, rules have to be defined.

You can write and use your own rules in config/LegibleNei/LegibleNei.json file.
You can use default rules or write custom rules if you need it.


------------------------------------------------------Votes---------------------------------------------------
Rules work with a voting system. each rule matching an item return a Vote and the one with highest priority is choosen.
You can define Vote list or use the default List.
Write a new Vote:
NAME: [priority, hide]
- NAME: The Vote name, In uppercase.
- priority: an interger;
- hide: (true or false[or anything else]) Say if the Vote hide the item or not.

See Vote List in config/LegibleNei/LegibleNei.json
-------------------------------------------------------Modules-----------------------------------------------------
Modules are not customisable, you can only choose given responses.
Only default module is required, others are optional.
Current Modules:
- default:[DEFAULT] / Define default Vote for rules.
- one:[ONE,OTHERS] / Answer ONE for one nbt tag per damage value and OTHERS for others.
- onedamage:[ONE,OTHERS] / Answer ONE for one damage value per item id and OTHERS for others.
- oneid:[ONE,OTHERS] / Answer ONE for one one item id per id pattern and OTHERS for others.


Write a Module:
name: [<Modules list>]
- name: the module name in lowercase.
- <Modules list>: a customisable list of modules. Size list depend on module.

Votes are Modules, so you can use a Vote or a Module indifferently.
-------------------------------------------------------Rules-----------------------------------------------------
All rules are customisable and you can use your own rules if you want.
Write a new rule:
name:[<Module list>]
- name: rule name, in lowercase
- <Module list> a customisable list of modules. Size list can be 1, 2, 4 or 9. These number will be explained later.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////Write rules //////////////////////////////////////////////////////////////
In config/LegibleNei/filters/Mod-name.json you can write rules for a mod.


-------------------------------------------------------Filter-----------------------------------------------------
A Filter has the following pattern:
{rule:[prefix,[<patterns>],suffix,[<damages>],[<nbts>]]};

rule: The rule name.
prefix,suffix: optionnal fields for patterns.
patterns: patterns list to match item id, you can use * as wildcard. 
damages: metas list to match metas. You can use number(ex: 1, 5, 10);
	patterns(ex: 2*, 1*1) or intervalles(ex: 0-15, 100-105). You cannot combine 
	patterns and intervalle.
nbts:(optional) patterns list to match item nbt, you can use * as wildcard. 


As you can disable filters, you can make a filter keep running by writing "_" before rule name.
Exemple "_keep" to write a "keep" filter always running when using toggle key.
So when you write your own rules, do not name them with "_"

                                                -------------------------
A rule matches 9 cases for an item matched by <patterns>:
1 - <damages> empty and <nbts> empty
2 - <damages> matched and <nbts> empty
3- <damages> unmatched and <nbts> empty
4 - <damages> empty and <nbts> matched
5 - <damages> matched and <nbts> matched
6 - <damages> unmatched and <nbts> matched
7 - <damages> empty and <nbts> unmatched
8 - <damages> matched and <nbts> unmatched
9 - <damages> unmatched and <nbts> unmatched

nbt \ damage --->
 |	1	2	3
 |	4	5	6
 |	7	8	9
 \/

When you define a rule in config/LegibleNei/LegibleNei.json, you can use 1, 2, 4 or 9 Modules:
If you write module list as [m1,...], modules match 1,2,3,4,5,6,7,8,9 cases as following:

Size 1: 
	m1		m1		default
	m1		m1		default
	default	default default
	
Size 2: 
	m1		m1		m2
	m1		m1		m2
	m2		m2 		m2
	
Size 4: 
	m1		m1		m2	
	m1		m1		m2	
	m3		m3		m4
	
Size 9: 
	m1		m2		m3
	m4		m5		m6
	m7		m8		m9

default is de default module.

-------------------------------------------------------------------------------------------------------------------
Rules comprehension can be a little complex, but Filters are very easy to use.	

----------------------------------------------------------Examples-------------------------------------------------
You want to hide colored wools from minecraft and keep white wool(damage 0):
	{minecraft:[{keep:[[wool],[0]]}]}
You want to keep one of each forge microblock:
	{ForgeMicroblock:[{keep-one:[[microblock],[]]}]}
You want to hide colored cables from applied energistics 2:
	{appliedenergistics2:[{hide:[[item.ItemMultiPart],[0-15,20-35,40-55,60-75]]}]}
You want to hide wooden tools from Tinker's Construct:
	{TConstruct:[{hide:[[*],[0],[*Wooden*]]}]}
You want to hide full charged items from Mekanism:
	{Mekanism:[{hide:[[*],[],[*electricity*,*amount*]]}]}
You want to keep only empty capsules from Forestry:
	{Forestry:[
		{hide:[[can*,wax*,refractory*],[]]};
		{show:[[canEmpty,waxCapsule,refractoryEmpty],[0]]};
	]}
You want to hide charged items from Applied energistics 2:
	{appliedenergistics2:[
	   {keep:[item.Tool,[EntropyManipulator,WirelessTerminal,
		  ChargedStaff,MassCannon,PortableCell,ColorApplicator],[0],['{}','']]};
	]}
You want to keep one minecraft record:
	{minecraft:[{keep-onei:[[record_*],[0]]}]}

As you can see, LegibleNei filters are very simple and powerful.

---------------------------------------------------------Commands-------------------------------------------------
In game, enter /legiblenei <command> in the chat
commands:
- reload: Reload filters from files, you do not have to restart your game
- stop: disable filters. All items will be shown in nei panel even those hidden by locked filters.
- start: enable filters.
- choice: show chosen Vote for held item in your hotbar
- itemData: show id and NBT tag for held item in your hotbar 

Commands do not work in multiplayer.
You can only use shortcut key to disable/enable filters.
By default, toggle key is binded on APOSTROPHE. (On top-left of your keyboard, between esc, tab and 1 keys)
You can congifure key binding in Option/KeyBindings/Inventory in Nei panel for 1.7.10
And in minecraft control panel for JEI for 1.8+