ζ³₯鰍 commited on
Commit
eb0e957
Β·
1 Parent(s): ec76e53

Add ocr ai

Browse files
Files changed (19) hide show
  1. Dockerfile +0 -21
  2. LICENSE +0 -21
  3. README.md +11 -12
  4. app.py +708 -0
  5. bukkit.yml +0 -32
  6. config/paper-global.yml +0 -129
  7. config/paper-world-defaults.yml +0 -316
  8. eula.txt +0 -3
  9. ngrok +0 -3
  10. ops.json +0 -2
  11. plugins/.nothing +0 -1
  12. pufferfish.yml +0 -34
  13. purpur.jar +0 -3
  14. purpur.yml +0 -1566
  15. requirements.in +9 -0
  16. requirements.txt +12 -0
  17. server.properties +0 -59
  18. spigot.yml +0 -173
  19. start.sh +0 -7
Dockerfile DELETED
@@ -1,21 +0,0 @@
1
- FROM debian:stable
2
-
3
- USER root
4
-
5
- ENV DEBIAN_FRONTEND noninteractive
6
-
7
- COPY . /app
8
-
9
- RUN chmod -R 777 /app
10
-
11
- WORKDIR /app
12
-
13
- RUN apt-get update && apt-get install openjdk-21-jdk -y
14
-
15
- RUN --mount=type=secret,id=NGROK_TOKEN,mode=0444,required=true echo $(cat /run/secrets/NGROK_TOKEN) > token.txt
16
-
17
- RUN mkdir -p /.config/ngrok
18
- RUN chown -R root:root /.config/ngrok
19
- RUN chmod -R 777 /.config/ngrok
20
-
21
- CMD ["sh", "start.sh"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2023 Joseph Attano
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md CHANGED
@@ -1,12 +1,11 @@
1
- ---
2
- title: Server
3
- emoji: 🏒
4
- colorFrom: yellow
5
- colorTo: red
6
- sdk: docker
7
- pinned: false
8
- license: mit
9
- short_description: Space
10
- ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
+ ---
2
+ title: OCR Time Machine
3
+ emoji: πŸ“š
4
+ colorFrom: purple
5
+ colorTo: pink
6
+ sdk: gradio
7
+ sdk_version: 5.30.0
8
+ app_file: app.py
9
+ ---
10
+
11
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
app.py ADDED
@@ -0,0 +1,708 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from PIL import Image
3
+ import xml.etree.ElementTree as ET
4
+ import os
5
+ import torch
6
+ import json
7
+ from transformers import AutoProcessor, AutoModelForImageTextToText, AutoModelForCausalLM, pipeline, Qwen2VLForConditionalGeneration, Qwen2_5_VLForConditionalGeneration
8
+ import spaces
9
+
10
+ os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1" # turn on HF_TRANSFER
11
+ # --- Global Model and Processor ---
12
+ MODELS = {}
13
+ PROCESSORS = {}
14
+ PIPELINES = {}
15
+ MODEL_LOAD_ERROR_MSG = {}
16
+
17
+ # Available models
18
+ AVAILABLE_MODELS = ["RolmOCR", "Nanonets-OCR-s", "olmOCR", "OCRFlux-3B", "Ovis2.5-9B"]
19
+
20
+ # Load RolmOCR
21
+ try:
22
+ PROCESSORS["RolmOCR"] = AutoProcessor.from_pretrained("reducto/RolmOCR")
23
+ MODELS["RolmOCR"] = AutoModelForImageTextToText.from_pretrained(
24
+ "reducto/RolmOCR", torch_dtype=torch.bfloat16, device_map="auto"
25
+ )
26
+ PIPELINES["RolmOCR"] = pipeline(
27
+ "image-text-to-text", model=MODELS["RolmOCR"], processor=PROCESSORS["RolmOCR"]
28
+ )
29
+ except Exception as e:
30
+ MODEL_LOAD_ERROR_MSG["RolmOCR"] = f"Failed to load RolmOCR: {str(e)}"
31
+ print(f"Error loading RolmOCR: {e}")
32
+
33
+ # Load Nanonets-OCR-s
34
+ try:
35
+ PROCESSORS["Nanonets-OCR-s"] = AutoProcessor.from_pretrained(
36
+ "nanonets/Nanonets-OCR-s"
37
+ )
38
+ MODELS["Nanonets-OCR-s"] = AutoModelForImageTextToText.from_pretrained(
39
+ "nanonets/Nanonets-OCR-s", torch_dtype=torch.bfloat16, device_map="auto"
40
+ )
41
+ PIPELINES["Nanonets-OCR-s"] = pipeline(
42
+ "image-text-to-text",
43
+ model=MODELS["Nanonets-OCR-s"],
44
+ processor=PROCESSORS["Nanonets-OCR-s"],
45
+ )
46
+ except Exception as e:
47
+ MODEL_LOAD_ERROR_MSG["Nanonets-OCR-s"] = f"Failed to load Nanonets-OCR-s: {str(e)}"
48
+ print(f"Error loading Nanonets-OCR-s: {e}")
49
+
50
+ # Load olmOCR
51
+ try:
52
+ PROCESSORS["olmOCR"] = AutoProcessor.from_pretrained("Qwen/Qwen2-VL-7B-Instruct")
53
+ MODELS["olmOCR"] = Qwen2VLForConditionalGeneration.from_pretrained(
54
+ "allenai/olmOCR-7B-0225-preview", torch_dtype=torch.bfloat16, device_map="auto"
55
+ )
56
+ PIPELINES["olmOCR"] = pipeline(
57
+ "image-text-to-text", model=MODELS["olmOCR"], processor=PROCESSORS["olmOCR"]
58
+ )
59
+ except Exception as e:
60
+ MODEL_LOAD_ERROR_MSG["olmOCR"] = f"Failed to load olmOCR: {str(e)}"
61
+ print(f"Error loading olmOCR: {e}")
62
+
63
+ # Load OCRFlux-3B
64
+ try:
65
+ PROCESSORS["OCRFlux-3B"] = AutoProcessor.from_pretrained("ChatDOC/OCRFlux-3B")
66
+ MODELS["OCRFlux-3B"] = Qwen2_5_VLForConditionalGeneration.from_pretrained(
67
+ "ChatDOC/OCRFlux-3B", torch_dtype=torch.bfloat16, device_map="auto"
68
+ )
69
+ PIPELINES["OCRFlux-3B"] = pipeline(
70
+ "image-text-to-text",
71
+ model=MODELS["OCRFlux-3B"],
72
+ processor=PROCESSORS["OCRFlux-3B"]
73
+ )
74
+ except Exception as e:
75
+ MODEL_LOAD_ERROR_MSG["OCRFlux-3B"] = f"Failed to load OCRFlux-3B: {str(e)}"
76
+ print(f"Error loading OCRFlux-3B: {e}")
77
+
78
+ # Load Ovis2.5-9B
79
+ try:
80
+ # For Zero GPU compatibility, load to CPU first then move in predict function
81
+ MODELS["Ovis2.5-9B"] = AutoModelForCausalLM.from_pretrained(
82
+ "AIDC-AI/Ovis2.5-9B",
83
+ torch_dtype=torch.bfloat16,
84
+ trust_remote_code=True
85
+ )
86
+ # Ovis uses its own preprocessing, so we handle it differently
87
+ PROCESSORS["Ovis2.5-9B"] = None # Ovis has built-in preprocessing
88
+ PIPELINES["Ovis2.5-9B"] = None # We'll use the model directly
89
+ except Exception as e:
90
+ MODEL_LOAD_ERROR_MSG["Ovis2.5-9B"] = f"Failed to load Ovis2.5-9B: {str(e)}"
91
+ print(f"Error loading Ovis2.5-9B: {e}")
92
+
93
+
94
+ # --- Helper Functions ---
95
+
96
+
97
+ def get_xml_namespace(xml_file_path):
98
+ """
99
+ Dynamically gets the namespace from the XML file.
100
+ Returns both the namespace and the format type (ALTO or PAGE).
101
+ """
102
+ try:
103
+ tree = ET.parse(xml_file_path)
104
+ root = tree.getroot()
105
+ if "}" in root.tag:
106
+ ns = root.tag.split("}")[0] + "}"
107
+ # Determine format based on root element
108
+ if "PcGts" in root.tag:
109
+ return ns, "PAGE"
110
+ elif "alto" in root.tag.lower():
111
+ return ns, "ALTO"
112
+ except ET.ParseError:
113
+ print(f"Error parsing XML to find namespace: {xml_file_path}")
114
+ return "", "UNKNOWN"
115
+
116
+
117
+ def parse_page_xml_for_text(xml_file_path):
118
+ """
119
+ Parses a PAGE XML file to extract text content.
120
+ Returns:
121
+ - full_text (str): All extracted text concatenated.
122
+ """
123
+ full_text_lines = []
124
+
125
+ if not xml_file_path or not os.path.exists(xml_file_path):
126
+ return "Error: XML file not provided or does not exist."
127
+
128
+ try:
129
+ ns_prefix, _ = get_xml_namespace(xml_file_path)
130
+ tree = ET.parse(xml_file_path)
131
+ root = tree.getroot()
132
+
133
+ # Find all TextLine elements
134
+ for text_line in root.findall(f".//{ns_prefix}TextLine"):
135
+ # First try to get text from TextEquiv/Unicode
136
+ text_equiv = text_line.find(f"{ns_prefix}TextEquiv/{ns_prefix}Unicode")
137
+ if text_equiv is not None and text_equiv.text:
138
+ full_text_lines.append(text_equiv.text)
139
+ continue
140
+
141
+ # If no TextEquiv, try to get text from Word elements
142
+ line_text_parts = []
143
+ for word in text_line.findall(f"{ns_prefix}Word"):
144
+ word_text = word.find(f"{ns_prefix}TextEquiv/{ns_prefix}Unicode")
145
+ if word_text is not None and word_text.text:
146
+ line_text_parts.append(word_text.text)
147
+
148
+ if line_text_parts:
149
+ full_text_lines.append(" ".join(line_text_parts))
150
+
151
+ return "\n".join(full_text_lines)
152
+
153
+ except ET.ParseError as e:
154
+ return f"Error parsing XML: {e}"
155
+ except Exception as e:
156
+ return f"An unexpected error occurred during XML parsing: {e}"
157
+
158
+
159
+ def parse_alto_xml_for_text(xml_file_path):
160
+ """
161
+ Parses an ALTO XML file to extract text content.
162
+ Returns:
163
+ - full_text (str): All extracted text concatenated.
164
+ """
165
+ full_text_lines = []
166
+
167
+ if not xml_file_path or not os.path.exists(xml_file_path):
168
+ return "Error: XML file not provided or does not exist."
169
+
170
+ try:
171
+ ns_prefix, _ = get_xml_namespace(xml_file_path)
172
+ tree = ET.parse(xml_file_path)
173
+ root = tree.getroot()
174
+
175
+ for text_line in root.findall(f".//{ns_prefix}TextLine"):
176
+ line_text_parts = []
177
+ for string_element in text_line.findall(f"{ns_prefix}String"):
178
+ if text := string_element.get("CONTENT"):
179
+ line_text_parts.append(text)
180
+ if line_text_parts:
181
+ full_text_lines.append(" ".join(line_text_parts))
182
+
183
+ return "\n".join(full_text_lines)
184
+
185
+ except ET.ParseError as e:
186
+ return f"Error parsing XML: {e}"
187
+ except Exception as e:
188
+ return f"An unexpected error occurred during XML parsing: {e}"
189
+
190
+
191
+ def parse_xml_for_text(xml_file_path):
192
+ """
193
+ Main function to parse XML files, automatically detecting the format.
194
+ """
195
+ if not xml_file_path or not os.path.exists(xml_file_path):
196
+ return "Error: XML file not provided or does not exist."
197
+
198
+ try:
199
+ _, xml_format = get_xml_namespace(xml_file_path)
200
+
201
+ if xml_format == "PAGE":
202
+ return parse_page_xml_for_text(xml_file_path)
203
+ elif xml_format == "ALTO":
204
+ return parse_alto_xml_for_text(xml_file_path)
205
+ else:
206
+ return "Error: Unsupported XML format. Expected ALTO or PAGE XML."
207
+
208
+ except Exception as e:
209
+ return f"Error determining XML format: {str(e)}"
210
+
211
+
212
+ @spaces.GPU
213
+ def predict(pil_image, model_name="RolmOCR"):
214
+ """Performs OCR prediction using the selected Hugging Face model."""
215
+ global MODELS, PIPELINES, MODEL_LOAD_ERROR_MSG
216
+
217
+ # Special handling for Ovis2.5-9B
218
+ if model_name == "Ovis2.5-9B":
219
+ if model_name not in MODELS:
220
+ error_to_report = MODEL_LOAD_ERROR_MSG.get(
221
+ model_name,
222
+ f"Model {model_name} could not be initialized or is not available.",
223
+ )
224
+ raise RuntimeError(error_to_report)
225
+
226
+ model = MODELS[model_name]
227
+
228
+ # Move model to CUDA within the GPU-decorated function
229
+ model = model.cuda()
230
+
231
+ # Format messages in Ovis format
232
+ messages = [{
233
+ "role": "user",
234
+ "content": [
235
+ {"type": "image", "image": pil_image},
236
+ {"type": "text", "text": "Extract and return all text from this document image. Preserve the reading order and layout structure. Return the complete text content."}
237
+ ],
238
+ }]
239
+
240
+ # Preprocess inputs using Ovis's built-in method
241
+ input_ids, pixel_values, grid_thws = model.preprocess_inputs(
242
+ messages=messages,
243
+ add_generation_prompt=True
244
+ )
245
+
246
+ # Move inputs to CUDA
247
+ input_ids = input_ids.cuda()
248
+ pixel_values = pixel_values.cuda() if pixel_values is not None else None
249
+ grid_thws = grid_thws.cuda() if grid_thws is not None else None
250
+
251
+ # Generate output
252
+ with torch.inference_mode():
253
+ outputs = model.generate(
254
+ inputs=input_ids,
255
+ pixel_values=pixel_values,
256
+ grid_thws=grid_thws,
257
+ max_new_tokens=8096,
258
+ do_sample=False,
259
+ temperature=0.0
260
+ )
261
+
262
+ # Decode the output using text_tokenizer
263
+ response = model.text_tokenizer.decode(outputs[0], skip_special_tokens=True)
264
+
265
+ # Extract only the assistant's response (after the user message)
266
+ # The response includes the conversation, so we need to extract just the generated part
267
+ if "assistant\n" in response:
268
+ response = response.split("assistant\n")[-1].strip()
269
+ elif len(response.split("\n\n")) > 1:
270
+ # Fallback: take the last part after double newline
271
+ response = response.split("\n\n")[-1].strip()
272
+
273
+ # Return in a format similar to pipeline output for consistency
274
+ return [{"generated_text": response}]
275
+
276
+ # Standard pipeline handling for other models
277
+ if model_name not in PIPELINES:
278
+ error_to_report = MODEL_LOAD_ERROR_MSG.get(
279
+ model_name,
280
+ f"Model {model_name} could not be initialized or is not available.",
281
+ )
282
+ raise RuntimeError(error_to_report)
283
+
284
+ selected_pipe = PIPELINES[model_name]
285
+
286
+ # Format the message based on the model
287
+ if model_name == "RolmOCR":
288
+ messages = [
289
+ {
290
+ "role": "user",
291
+ "content": [
292
+ {"type": "image", "image": pil_image},
293
+ {
294
+ "type": "text",
295
+ "text": "Return the plain text representation of this document as if you were reading it naturally.\n",
296
+ },
297
+ ],
298
+ }
299
+ ]
300
+ elif model_name == "Nanonets-OCR-s":
301
+ messages = [
302
+ {
303
+ "role": "user",
304
+ "content": [
305
+ {"type": "image", "image": pil_image},
306
+ {
307
+ "type": "text",
308
+ "text": "Extract and return all the text from this image. Include all text elements and maintain the reading order. If there are tables, convert them to markdown format. If there are mathematical equations, convert them to LaTeX format.",
309
+ },
310
+ ],
311
+ }
312
+ ]
313
+ elif model_name == "olmOCR":
314
+ messages = [
315
+ {
316
+ "role": "user",
317
+ "content": [
318
+ {"type": "image", "image": pil_image},
319
+ {
320
+ "type": "text",
321
+ "text": "Extract all text from this document image, preserving the original reading order and layout structure. Return the plain text representation.",
322
+ },
323
+ ],
324
+ }
325
+ ]
326
+ else: # OCRFlux-3B
327
+ messages = [
328
+ {
329
+ "role": "user",
330
+ "content": [
331
+ {"type": "image", "image": pil_image},
332
+ {
333
+ "type": "text",
334
+ "text": "Convert this document page to clean, readable markdown format. Preserve all text content, maintain the original reading order, convert tables to markdown table format, and include any mathematical equations in LaTeX format.",
335
+ },
336
+ ],
337
+ }
338
+ ]
339
+ max_tokens = 8096
340
+ # Use the pipeline with the properly formatted messages
341
+ return selected_pipe(messages, max_new_tokens=max_tokens)
342
+
343
+
344
+ def run_hf_ocr(image_path, model_name="RolmOCR"):
345
+ """
346
+ Runs OCR on the provided image using the selected Hugging Face model (via predict function).
347
+ """
348
+ if image_path is None:
349
+ return "No image provided for OCR."
350
+
351
+ try:
352
+ pil_image = Image.open(image_path).convert("RGB")
353
+ ocr_results = predict(
354
+ pil_image, model_name
355
+ ) # predict handles model loading and inference
356
+
357
+ # Parse the output based on the user's example structure
358
+ if (
359
+ isinstance(ocr_results, list)
360
+ and ocr_results
361
+ and "generated_text" in ocr_results[0]
362
+ ):
363
+ generated_content = ocr_results[0]["generated_text"]
364
+
365
+ if isinstance(generated_content, str):
366
+ # Check if it's JSON format from olmOCR
367
+ if model_name == "olmOCR":
368
+ try:
369
+ json_data = json.loads(generated_content)
370
+ if "natural_text" in json_data:
371
+ return json_data["natural_text"]
372
+ except (json.JSONDecodeError, KeyError, TypeError):
373
+ pass
374
+ return generated_content
375
+
376
+ if isinstance(generated_content, list) and generated_content:
377
+ if assistant_message := next(
378
+ (
379
+ msg["content"]
380
+ for msg in reversed(generated_content)
381
+ if isinstance(msg, dict)
382
+ and msg.get("role") == "assistant"
383
+ and "content" in msg
384
+ ),
385
+ None,
386
+ ):
387
+ # Check if it's JSON format from olmOCR
388
+ if model_name == "olmOCR":
389
+ try:
390
+ json_data = json.loads(assistant_message)
391
+ if "natural_text" in json_data:
392
+ return json_data["natural_text"]
393
+ except (json.JSONDecodeError, KeyError, TypeError):
394
+ pass
395
+ return assistant_message
396
+
397
+ # Fallback if the specific assistant message structure isn't found but there's content
398
+ if (
399
+ isinstance(generated_content[0], dict)
400
+ and "content" in generated_content[0]
401
+ ):
402
+ if (
403
+ len(generated_content) > 1
404
+ and isinstance(generated_content[1], dict)
405
+ and "content" in generated_content[1]
406
+ ):
407
+ content = generated_content[1]["content"]
408
+ # Check if it's JSON format from olmOCR
409
+ if model_name == "olmOCR":
410
+ try:
411
+ json_data = json.loads(content)
412
+ if "natural_text" in json_data:
413
+ return json_data["natural_text"]
414
+ except (json.JSONDecodeError, KeyError, TypeError):
415
+ pass
416
+ return content # Assuming second part is assistant
417
+ else:
418
+ content = generated_content[0]["content"]
419
+ # Check if it's JSON format from olmOCR
420
+ if model_name == "olmOCR":
421
+ try:
422
+ json_data = json.loads(content)
423
+ if "natural_text" in json_data:
424
+ return json_data["natural_text"]
425
+ except (json.JSONDecodeError, KeyError, TypeError):
426
+ pass
427
+ return content
428
+
429
+ print(f"Unexpected OCR output structure from HF model: {ocr_results}")
430
+ return "Error: Could not parse OCR model output. Check console."
431
+
432
+ else:
433
+ print(f"Unexpected OCR output structure from HF model: {ocr_results}")
434
+ return "Error: OCR model did not return expected output. Check console."
435
+
436
+ except RuntimeError as e: # Catch model loading/initialization errors from predict
437
+ return str(e)
438
+ except Exception as e:
439
+ print(f"Error during Hugging Face OCR processing: {e}")
440
+ return f"Error during Hugging Face OCR: {str(e)}"
441
+
442
+
443
+ # --- Gradio Interface Function ---
444
+
445
+
446
+ def process_files(image_path, xml_path, model_name):
447
+ """
448
+ Main function for the Gradio interface.
449
+ Processes the image for display, runs OCR with selected model,
450
+ and parses XML if provided.
451
+ """
452
+ img_to_display = None
453
+ xml_text_output = "XML not provided or not processed."
454
+ hf_ocr_text_output = "Image not provided or OCR not run."
455
+ ocr_download = gr.DownloadButton(visible=False)
456
+ xml_download = gr.DownloadButton(visible=False)
457
+
458
+ if image_path:
459
+ try:
460
+ img_to_display = Image.open(image_path).convert("RGB")
461
+ hf_ocr_text_output = run_hf_ocr(image_path, model_name)
462
+
463
+ # Create download file for OCR output
464
+ if hf_ocr_text_output and not hf_ocr_text_output.startswith("Error"):
465
+ ocr_filename = f"vlm_ocr_output_{model_name}.txt"
466
+ with open(ocr_filename, "w", encoding="utf-8") as f:
467
+ f.write(hf_ocr_text_output)
468
+ ocr_download = gr.DownloadButton(
469
+ label="Download VLM OCR", value=ocr_filename, visible=True
470
+ )
471
+ except Exception as e:
472
+ img_to_display = None # Clear image if it failed to load
473
+ hf_ocr_text_output = f"Error loading image or running {model_name} OCR: {e}"
474
+ else:
475
+ hf_ocr_text_output = "Please upload an image to perform OCR."
476
+
477
+ if xml_path:
478
+ xml_text_output = parse_xml_for_text(xml_path)
479
+
480
+ # Create download file for XML text
481
+ if xml_text_output and not xml_text_output.startswith("Error"):
482
+ xml_filename = "traditional_ocr_output.txt"
483
+ with open(xml_filename, "w", encoding="utf-8") as f:
484
+ f.write(xml_text_output)
485
+ xml_download = gr.DownloadButton(
486
+ label="Download XML Text", value=xml_filename, visible=True
487
+ )
488
+ else:
489
+ xml_text_output = "No XML file uploaded."
490
+
491
+ # If only XML is provided without an image
492
+ if not image_path and xml_path:
493
+ img_to_display = None # No image to display
494
+ hf_ocr_text_output = "Upload an image to perform OCR."
495
+
496
+ return (
497
+ img_to_display,
498
+ xml_text_output,
499
+ hf_ocr_text_output,
500
+ ocr_download,
501
+ xml_download,
502
+ )
503
+
504
+
505
+ # --- Create Gradio App ---
506
+
507
+ with gr.Blocks() as demo:
508
+ gr.Markdown("# πŸ•°οΈ OCR Time Machine")
509
+ gr.Markdown(
510
+ "Travel through time to see how OCR technology has evolved! \n\n "
511
+ "For decades, galleries, libraries, archives, and museums (GLAMs) have used Optical Character Recognition "
512
+ "to transform digitized books, newspapers, and manuscripts into machine-readable text. Traditional OCR "
513
+ "produces complex XML formats like ALTO, packed with layout details but difficult to use. "
514
+ "Now, Vision-Language Models (VLMs) are revolutionizing OCR with simpler, cleaner output. "
515
+ "This Space lets you compare four leading VLM-based OCR models against traditional approaches. "
516
+ "Upload a historical document image and its XML file to see them side-by-side. "
517
+ "We'll extract the reading order from your XML for an apples-to-apples comparison of the actual text content.\n\n"
518
+ "**Available models:**\n"
519
+ "β€’ [RolmOCR](https://huggingface.co/reducto/RolmOCR) - Fast & general-purpose\n"
520
+ "β€’ [Nanonets-OCR-s](https://huggingface.co/nanonets/Nanonets-OCR-s) - Advanced with table/math support\n"
521
+ "β€’ [olmOCR](https://huggingface.co/allenai/olmOCR-7B-0225-preview) - Allen AI's pioneering 7B document specialist\n"
522
+ "β€’ [OCRFlux-3B](https://huggingface.co/ChatDOC/OCRFlux-3B) - Document specialist with table parsing & cross-page merging\n"
523
+ "β€’ [Ovis2.5-9B](https://huggingface.co/AIDC-AI/Ovis2.5-9B) - Native-resolution multimodal model with advanced reasoning"
524
+ )
525
+
526
+ gr.Markdown("---")
527
+
528
+ # How it works section
529
+ gr.Markdown("## πŸš€ How it works")
530
+ gr.Markdown(
531
+ "1. πŸ“€ **Upload Image**: Select a historical document image (JPG, PNG, JP2)\n"
532
+ "2. πŸ“„ **Upload XML** (Optional): Add the corresponding ALTO or PAGE XML file for comparison\n"
533
+ "3. πŸ€– **Choose Model**: Select between RolmOCR (new) or Nanonets-OCR-s (even newer!)\n"
534
+ "4. πŸ” **Compare**: Click 'Compare OCR Methods' to process\n"
535
+ "5. πŸ’Ύ **Download**: Save the results for further analysis"
536
+ )
537
+
538
+ gr.Markdown("---")
539
+
540
+ # Input section
541
+ gr.Markdown("## πŸ“₯ Upload Files")
542
+ with gr.Row():
543
+ with gr.Column(scale=1):
544
+ with gr.Group():
545
+ gr.Markdown("### πŸ“€ Step 1: Upload your document")
546
+ image_input = gr.File(
547
+ label="Historical Document Image",
548
+ type="filepath",
549
+ file_types=["image"],
550
+ )
551
+ xml_input = gr.File(
552
+ label="XML File (Optional - ALTO or PAGE format)",
553
+ type="filepath",
554
+ file_types=[".xml"],
555
+ )
556
+
557
+ with gr.Group():
558
+ gr.Markdown("### πŸ€– Step 2: Select OCR Model")
559
+ model_selector = gr.Radio(
560
+ choices=AVAILABLE_MODELS,
561
+ value="RolmOCR",
562
+ label="Choose Model",
563
+ info="RolmOCR: Fast & general-purpose | Nanonets: Advanced with table/math support | olmOCR: 7B specialized for documents | OCRFlux-3B: Document specialist with cross-page merging | Ovis2.5-9B: Native-resolution with advanced reasoning",
564
+ )
565
+
566
+ submit_button = gr.Button(
567
+ "πŸ” Compare OCR Methods", variant="primary", size="lg"
568
+ )
569
+
570
+ # Results section
571
+ gr.Markdown("## πŸ“Š Results")
572
+ with gr.Row():
573
+ with gr.Column(scale=1):
574
+ with gr.Group():
575
+ gr.Markdown("### πŸ–ΌοΈ Document Image")
576
+ output_image_display = gr.Image(
577
+ label="Uploaded Document", type="pil", interactive=False
578
+ )
579
+ with gr.Column(scale=1):
580
+ with gr.Group():
581
+ gr.Markdown("### πŸ€– Modern VLM OCR Output")
582
+ hf_ocr_output_textbox = gr.Markdown(
583
+ label="Markdown Format",
584
+ show_copy_button=True,
585
+ )
586
+ ocr_download_btn = gr.DownloadButton(
587
+ label="πŸ’Ύ Download VLM OCR", visible=False, size="sm"
588
+ )
589
+ with gr.Group():
590
+ gr.Markdown("### πŸ“œ Traditional OCR Output")
591
+ xml_output_textbox = gr.Textbox(
592
+ label="XML Reading Order",
593
+ lines=10,
594
+ interactive=False,
595
+ show_copy_button=True,
596
+ )
597
+ xml_download_btn = gr.DownloadButton(
598
+ label="πŸ’Ύ Download XML Text", visible=False, size="sm"
599
+ )
600
+
601
+ submit_button.click(
602
+ fn=process_files,
603
+ inputs=[image_input, xml_input, model_selector],
604
+ outputs=[
605
+ output_image_display,
606
+ xml_output_textbox,
607
+ hf_ocr_output_textbox,
608
+ ocr_download_btn,
609
+ xml_download_btn,
610
+ ],
611
+ )
612
+
613
+ gr.Markdown("---")
614
+
615
+ # Examples section
616
+ with gr.Group():
617
+ gr.Markdown("## 🎯 Try an Example")
618
+ gr.Examples(
619
+ examples=[
620
+ [
621
+ "examples/one/74442232.3.jpg",
622
+ "examples/one/74442232.34.xml",
623
+ "RolmOCR",
624
+ ],
625
+ [
626
+ "examples/one/74442232.3.jpg",
627
+ "examples/one/74442232.34.xml",
628
+ "Nanonets-OCR-s",
629
+ ],
630
+ [
631
+ "examples/one/74442232.3.jpg",
632
+ "examples/one/74442232.34.xml",
633
+ "olmOCR",
634
+ ],
635
+ [
636
+ "examples/one/74442232.3.jpg",
637
+ "examples/one/74442232.34.xml",
638
+ "OCRFlux-3B",
639
+ ],
640
+ [
641
+ "examples/one/74442232.3.jpg",
642
+ "examples/one/74442232.34.xml",
643
+ "Ovis2.5-9B",
644
+ ],
645
+ ],
646
+ inputs=[image_input, xml_input, model_selector],
647
+ outputs=[
648
+ output_image_display,
649
+ xml_output_textbox,
650
+ hf_ocr_output_textbox,
651
+ ocr_download_btn,
652
+ xml_download_btn,
653
+ ],
654
+ fn=process_files,
655
+ cache_examples=False,
656
+ )
657
+ gr.Markdown(
658
+ "*Example from ['A Medical History of British India'](https://data.nls.uk/data/digitised-collections/a-medical-history-of-british-india/) "
659
+ "collection, National Library of Scotland*"
660
+ )
661
+
662
+ gr.Markdown("---")
663
+
664
+ # Tips section
665
+ with gr.Accordion("πŸ’‘ Tips & Information", open=False):
666
+ gr.Markdown(
667
+ "### πŸ“š About ALTO/PAGE XML\n"
668
+ "- **ALTO** (Analyzed Layout and Text Object) and **PAGE** are XML formats that store OCR results with detailed layout information\n"
669
+ "- These files are typically generated by traditional OCR software and include position data for each text element\n"
670
+ "- This tool extracts just the reading order text for easier comparison\n\n"
671
+ "### 🎯 Best Practices\n"
672
+ "- Use high-resolution scans (300+ DPI) for best results\n"
673
+ "- Historical documents with clear text work best\n"
674
+ "- The VLM models can handle complex layouts, tables, and mathematical notation\n\n"
675
+ )
676
+ gr.Code(
677
+ value=(
678
+ """<alto xmlns="http://www.loc.gov/standards/alto/v3/alto.xsd">
679
+ <Layout>
680
+ <Page>
681
+ <PrintSpace>
682
+ <TextLine>
683
+ <String CONTENT="Hello World"/>
684
+ </TextLine>
685
+ </PrintSpace>
686
+ </Page>
687
+ </Layout>
688
+ </alto>"""
689
+ ),
690
+ interactive=False,
691
+ )
692
+
693
+ # Footer
694
+ gr.Markdown("---")
695
+ gr.Markdown(
696
+ "<center>\n\n"
697
+ "Built with ❀️ for the GLAM community | "
698
+ "[Learn more about OCR formats](https://www.loc.gov/standards/alto/) | "
699
+ "Questions? [Open an issue](https://github.com/davanstrien/ocr-playground/issues)\n\n"
700
+ "</center>"
701
+ )
702
+
703
+ if __name__ == "__main__":
704
+ print("Attempting to launch Gradio demo...")
705
+ print(
706
+ "If the Hugging Face model is large, initial startup might take some time due to model download/loading (on first OCR attempt)."
707
+ )
708
+ demo.launch()
bukkit.yml DELETED
@@ -1,32 +0,0 @@
1
- settings:
2
- allow-end: true
3
- warn-on-overload: true
4
- permissions-file: permissions.yml
5
- update-folder: update
6
- plugin-profiling: false
7
- connection-throttle: 4000
8
- query-plugins: true
9
- deprecated-verbose: default
10
- shutdown-message: Server closed
11
- minimum-api: none
12
- use-map-color-cache: true
13
- spawn-limits:
14
- monsters: 50
15
- animals: 15
16
- water-animals: 5
17
- water-ambient: 20
18
- water-underground-creature: 5
19
- axolotls: 5
20
- ambient: 15
21
- chunk-gc:
22
- period-in-ticks: 600
23
- ticks-per:
24
- animal-spawns: 400
25
- monster-spawns: 1
26
- water-spawns: 1
27
- water-ambient-spawns: 1
28
- water-underground-creature-spawns: 1
29
- axolotl-spawns: 1
30
- ambient-spawns: 1
31
- autosave: 6000
32
- aliases: now-in-commands.yml
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
config/paper-global.yml DELETED
@@ -1,129 +0,0 @@
1
- # This is the global configuration file for Paper.
2
- # As you can see, there's a lot to configure. Some options may impact gameplay, so use
3
- # with caution, and make sure you know what each option does before configuring.
4
- #
5
- # If you need help with the configuration or have any questions related to Paper,
6
- # join us in our Discord or check the docs page.
7
- #
8
- # The world configuration options have been moved inside
9
- # their respective world folder. The files are named paper-world.yml
10
- #
11
- # Docs: https://docs.papermc.io/
12
- # Discord: https://discord.gg/papermc
13
- # Website: https://papermc.io/
14
-
15
- _version: 28
16
- chunk-loading:
17
- autoconfig-send-distance: true
18
- enable-frustum-priority: false
19
- global-max-chunk-load-rate: -1.0
20
- global-max-chunk-send-rate: -1.0
21
- global-max-concurrent-loads: 500.0
22
- max-concurrent-sends: 2
23
- min-load-radius: 2
24
- player-max-chunk-load-rate: -1.0
25
- player-max-concurrent-loads: 20.0
26
- target-player-chunk-send-rate: 100.0
27
- chunk-system:
28
- gen-parallelism: default
29
- io-threads: -1
30
- worker-threads: -1
31
- collisions:
32
- enable-player-collisions: true
33
- send-full-pos-for-hard-colliding-entities: true
34
- commands:
35
- fix-target-selector-tag-completion: true
36
- suggest-player-names-when-null-tab-completions: true
37
- time-command-affects-all-worlds: false
38
- console:
39
- enable-brigadier-completions: true
40
- enable-brigadier-highlighting: true
41
- has-all-permissions: false
42
- item-validation:
43
- book:
44
- author: 8192
45
- page: 16384
46
- title: 8192
47
- book-size:
48
- page-max: 2560
49
- total-multiplier: 0.98
50
- display-name: 8192
51
- lore-line: 8192
52
- resolve-selectors-in-books: false
53
- logging:
54
- deobfuscate-stacktraces: true
55
- log-player-ip-addresses: true
56
- use-rgb-for-named-text-colors: true
57
- messages:
58
- kick:
59
- authentication-servers-down: <lang:multiplayer.disconnect.authservers_down>
60
- connection-throttle: Connection throttled! Please wait before reconnecting.
61
- flying-player: <lang:multiplayer.disconnect.flying>
62
- flying-vehicle: <lang:multiplayer.disconnect.flying>
63
- no-permission: <red>I'm sorry, but you do not have permission to perform this command.
64
- Please contact the server administrators if you believe that this is in error.
65
- use-display-name-in-quit-message: false
66
- misc:
67
- chat-threads:
68
- chat-executor-core-size: -1
69
- chat-executor-max-size: -1
70
- fix-entity-position-desync: true
71
- lag-compensate-block-breaking: true
72
- load-permissions-yml-before-plugins: true
73
- max-joins-per-tick: 3
74
- region-file-cache-size: 256
75
- strict-advancement-dimension-check: false
76
- use-alternative-luck-formula: false
77
- use-dimension-type-for-custom-spawners: false
78
- packet-limiter:
79
- all-packets:
80
- action: KICK
81
- interval: 7.0
82
- max-packet-rate: 500.0
83
- kick-message: <red><lang:disconnect.exceeded_packet_rate>
84
- overrides:
85
- ServerboundPlaceRecipePacket:
86
- action: DROP
87
- interval: 4.0
88
- max-packet-rate: 5.0
89
- player-auto-save:
90
- max-per-tick: -1
91
- rate: -1
92
- proxies:
93
- bungee-cord:
94
- online-mode: true
95
- proxy-protocol: false
96
- velocity:
97
- enabled: false
98
- online-mode: false
99
- secret: ''
100
- scoreboards:
101
- save-empty-scoreboard-teams: false
102
- track-plugin-scoreboards: false
103
- spam-limiter:
104
- incoming-packet-threshold: 300
105
- recipe-spam-increment: 1
106
- recipe-spam-limit: 20
107
- tab-spam-increment: 1
108
- tab-spam-limit: 500
109
- timings:
110
- enabled: true
111
- hidden-config-entries:
112
- - database
113
- - proxies.velocity.secret
114
- history-interval: 300
115
- history-length: 3600
116
- really-enabled: false
117
- server-name: Unknown Server
118
- server-name-privacy: false
119
- url: https://timings.aikar.co/
120
- verbose: true
121
- unsupported-settings:
122
- allow-grindstone-overstacking: false
123
- allow-headless-pistons: false
124
- allow-permanent-block-break-exploits: false
125
- allow-piston-duplication: false
126
- perform-username-validation: true
127
- watchdog:
128
- early-warning-delay: 10000
129
- early-warning-every: 5000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
config/paper-world-defaults.yml DELETED
@@ -1,316 +0,0 @@
1
- # This is the world defaults configuration file for Paper.
2
- # As you can see, there's a lot to configure. Some options may impact gameplay, so use
3
- # with caution, and make sure you know what each option does before configuring.
4
- #
5
- # If you need help with the configuration or have any questions related to Paper,
6
- # join us in our Discord or check the docs page.
7
- #
8
- # Configuration options here apply to all worlds, unless you specify overrides inside
9
- # the world-specific config file inside each world folder.
10
- #
11
- # Docs: https://docs.papermc.io/
12
- # Discord: https://discord.gg/papermc
13
- # Website: https://papermc.io/
14
-
15
- _version: 29
16
- anticheat:
17
- anti-xray:
18
- enabled: true
19
- engine-mode: 1
20
- hidden-blocks:
21
- - copper_ore
22
- - deepslate_copper_ore
23
- - gold_ore
24
- - deepslate_gold_ore
25
- - iron_ore
26
- - deepslate_iron_ore
27
- - coal_ore
28
- - deepslate_coal_ore
29
- - lapis_ore
30
- - deepslate_lapis_ore
31
- - mossy_cobblestone
32
- - obsidian
33
- - chest
34
- - diamond_ore
35
- - deepslate_diamond_ore
36
- - redstone_ore
37
- - deepslate_redstone_ore
38
- - clay
39
- - emerald_ore
40
- - deepslate_emerald_ore
41
- - ender_chest
42
- lava-obscures: false
43
- max-block-height: 64
44
- replacement-blocks:
45
- - stone
46
- - oak_planks
47
- - deepslate
48
- update-radius: 2
49
- use-permission: false
50
- obfuscation:
51
- items:
52
- hide-durability: false
53
- hide-itemmeta: false
54
- hide-itemmeta-with-visual-effects: false
55
- chunks:
56
- auto-save-interval: default
57
- delay-chunk-unloads-by: 10s
58
- entity-per-chunk-save-limit:
59
- area_effect_cloud: 8
60
- arrow: 16
61
- dragon_fireball: 3
62
- egg: 8
63
- ender_pearl: 8
64
- experience_bottle: 3
65
- experience_orb: 16
66
- eye_of_ender: 8
67
- fireball: 8
68
- firework_rocket: 8
69
- llama_spit: 3
70
- potion: 8
71
- shulker_bullet: 8
72
- small_fireball: 8
73
- snowball: 8
74
- spectral_arrow: 16
75
- trident: 16
76
- wither_skull: 4
77
- fixed-chunk-inhabited-time: -1
78
- max-auto-save-chunks-per-tick: 8
79
- prevent-moving-into-unloaded-chunks: true
80
- collisions:
81
- allow-player-cramming-damage: false
82
- allow-vehicle-collisions: true
83
- fix-climbing-bypassing-cramming-rule: true
84
- max-entity-collisions: 2
85
- only-players-collide: false
86
- entities:
87
- armor-stands:
88
- do-collision-entity-lookups: false
89
- tick: false
90
- behavior:
91
- baby-zombie-movement-modifier: 0.5
92
- disable-chest-cat-detection: false
93
- disable-creeper-lingering-effect: false
94
- disable-player-crits: false
95
- door-breaking-difficulty:
96
- husk:
97
- - HARD
98
- vindicator:
99
- - NORMAL
100
- - HARD
101
- zombie:
102
- - HARD
103
- zombie_villager:
104
- - HARD
105
- zombified_piglin:
106
- - HARD
107
- ender-dragons-death-always-places-dragon-egg: false
108
- experience-merge-max-value: -1
109
- mobs-can-always-pick-up-loot:
110
- skeletons: false
111
- zombies: false
112
- nerf-pigmen-from-nether-portals: false
113
- parrots-are-unaffected-by-player-movement: false
114
- phantoms-do-not-spawn-on-creative-players: true
115
- phantoms-only-attack-insomniacs: true
116
- phantoms-spawn-attempt-max-seconds: 119
117
- phantoms-spawn-attempt-min-seconds: 60
118
- piglins-guard-chests: true
119
- pillager-patrols:
120
- disable: false
121
- spawn-chance: 0.2
122
- spawn-delay:
123
- per-player: false
124
- ticks: 12000
125
- start:
126
- day: 5
127
- per-player: false
128
- player-insomnia-start-ticks: 72000
129
- should-remove-dragon: false
130
- spawner-nerfed-mobs-should-jump: false
131
- zombie-villager-infection-chance: -1.0
132
- zombies-target-turtle-eggs: true
133
- entities-target-with-follow-range: false
134
- mob-effects:
135
- immune-to-wither-effect:
136
- wither: true
137
- wither-skeleton: true
138
- spiders-immune-to-poison-effect: true
139
- undead-immune-to-certain-effects: true
140
- spawning:
141
- all-chunks-are-slime-chunks: false
142
- alt-item-despawn-rate:
143
- enabled: true
144
- items:
145
- acacia_leaves: 300
146
- andesite: 300
147
- bamboo: 300
148
- birch_leaves: 300
149
- cactus: 300
150
- cobblestone: 300
151
- dark_oak_leaves: 300
152
- diorite: 300
153
- dirt: 300
154
- granite: 300
155
- grass: 300
156
- gravel: 300
157
- jungle_leaves: 300
158
- kelp: 300
159
- mangrove_leaves: 300
160
- melon_slice: 300
161
- netherrack: 300
162
- oak_leaves: 300
163
- pumpkin: 300
164
- red_sand: 300
165
- sand: 300
166
- scaffolding: 600
167
- spruce_leaves: 300
168
- sugar_cane: 300
169
- twisting_vines: 300
170
- weeping_vines: 300
171
- count-all-mobs-for-spawning: false
172
- creative-arrow-despawn-rate: '20'
173
- despawn-ranges:
174
- ambient:
175
- hard: 128
176
- soft: 32
177
- axolotls:
178
- hard: 128
179
- soft: 32
180
- creature:
181
- hard: 128
182
- soft: 32
183
- misc:
184
- hard: 128
185
- soft: 32
186
- monster:
187
- hard: 128
188
- soft: 32
189
- underground_water_creature:
190
- hard: 128
191
- soft: 32
192
- water_ambient:
193
- hard: 64
194
- soft: 32
195
- water_creature:
196
- hard: 128
197
- soft: 32
198
- disable-mob-spawner-spawn-egg-transformation: false
199
- duplicate-uuid:
200
- mode: SAFE_REGEN
201
- safe-regen-delete-range: 32
202
- filter-nbt-data-from-spawn-eggs-and-related: true
203
- iron-golems-can-spawn-in-air: false
204
- monster-spawn-max-light-level: -1
205
- non-player-arrow-despawn-rate: '20'
206
- per-player-mob-spawns: true
207
- scan-for-legacy-ender-dragon: true
208
- skeleton-horse-thunder-spawn-chance: default
209
- slime-spawn-height:
210
- slime-chunk:
211
- maximum: 40.0
212
- surface-biome:
213
- maximum: 70.0
214
- minimum: 50.0
215
- spawn-limits:
216
- ambient: -1
217
- axolotls: -1
218
- creature: -1
219
- monster: -1
220
- underground_water_creature: -1
221
- water_ambient: -1
222
- water_creature: -1
223
- wandering-trader:
224
- spawn-chance-failure-increment: 25
225
- spawn-chance-max: 75
226
- spawn-chance-min: 25
227
- spawn-day-length: 24000
228
- spawn-minute-length: 1200
229
- wateranimal-spawn-height:
230
- maximum: default
231
- minimum: default
232
- environment:
233
- disable-explosion-knockback: false
234
- disable-ice-and-snow: false
235
- disable-teleportation-suffocation-check: false
236
- disable-thunder: false
237
- fire-tick-delay: 30
238
- frosted-ice:
239
- delay:
240
- max: 40
241
- min: 20
242
- enabled: true
243
- generate-flat-bedrock: false
244
- nether-ceiling-void-damage-height: disabled
245
- optimize-explosions: true
246
- portal-create-radius: 16
247
- portal-search-radius: 128
248
- portal-search-vanilla-dimension-scaling: true
249
- treasure-maps:
250
- enabled: true
251
- find-already-discovered:
252
- loot-tables: default
253
- villager-trade: false
254
- water-over-lava-flow-speed: 5
255
- feature-seeds:
256
- generate-random-seeds-for-all: false
257
- fishing-time-range:
258
- maximum: 600
259
- minimum: 100
260
- fixes:
261
- disable-unloaded-chunk-enderpearl-exploit: true
262
- falling-block-height-nerf: disabled
263
- fix-curing-zombie-villager-discount-exploit: true
264
- fix-items-merging-through-walls: false
265
- prevent-tnt-from-moving-in-water: false
266
- split-overstacked-loot: true
267
- tnt-entity-height-nerf: disabled
268
- hopper:
269
- cooldown-when-full: true
270
- disable-move-event: false
271
- ignore-occluding-blocks: false
272
- lootables:
273
- auto-replenish: false
274
- max-refills: -1
275
- refresh-max: 2d
276
- refresh-min: 12h
277
- reset-seed-on-fill: true
278
- restrict-player-reloot: true
279
- maps:
280
- item-frame-cursor-limit: 128
281
- item-frame-cursor-update-interval: 10
282
- max-growth-height:
283
- bamboo:
284
- max: 16
285
- min: 11
286
- cactus: 3
287
- reeds: 3
288
- misc:
289
- disable-end-credits: false
290
- disable-relative-projectile-velocity: false
291
- disable-sprint-interruption-on-attack: false
292
- light-queue-size: 20
293
- max-leash-distance: 10.0
294
- redstone-implementation: ALTERNATE_CURRENT
295
- shield-blocking-delay: 5
296
- show-sign-click-command-failure-msgs-to-player: false
297
- update-pathfinding-on-block-update: false
298
- scoreboards:
299
- allow-non-player-entities-on-scoreboards: false
300
- use-vanilla-world-scoreboard-name-coloring: false
301
- spawn:
302
- allow-using-signs-inside-spawn-protection: false
303
- keep-spawn-loaded: true
304
- keep-spawn-loaded-range: 4
305
- tick-rates:
306
- behavior:
307
- villager:
308
- validatenearbypoi: -1
309
- container-update: 1
310
- grass-spread: 1
311
- mob-spawner: 2
312
- sensor:
313
- villager:
314
- secondarypoisensor: 40
315
- unsupported-settings:
316
- fix-invulnerable-end-crystal-exploit: true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eula.txt DELETED
@@ -1,3 +0,0 @@
1
- #By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
2
- #Sun Apr 09 23:50:37 MSK 2023
3
- eula=true
 
 
 
 
ngrok DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:2d11a3ff9fb6eb598afeba352379f5941280e33e0f043adb9a1c656528483f37
3
- size 25112760
 
 
 
 
ops.json DELETED
@@ -1,2 +0,0 @@
1
- [
2
- ]
 
 
 
plugins/.nothing DELETED
@@ -1 +0,0 @@
1
- .nothing
 
 
pufferfish.yml DELETED
@@ -1,34 +0,0 @@
1
- # Pufferfish Configuration
2
- # Check out Pufferfish Host for maximum performance server hosting: https://pufferfish.host
3
- # Join our Discord for support: https://discord.gg/reZw4vQV9H
4
- # Download new builds at https://ci.pufferfish.host/job/Pufferfish
5
- info:
6
- version: '1.0'
7
- enable-suffocation-optimization: true
8
- inactive-goal-selector-throttle: true
9
- # Optimizes entity brains when
10
- # they're far away from the player
11
- dab:
12
- enabled: true
13
- start-distance: 12
14
- max-tick-freq: 20
15
- activation-dist-mod: 8
16
- blacklisted-entities: []
17
- # These values define a entity's maximum lifespan. If an
18
- # entity is in this list and it has survived for longer than
19
- # that number of ticks, then it will be removed. Setting a value to
20
- # -1 disables this feature.
21
- entity_timeouts:
22
- SNOWBALL: -1
23
- LLAMA_SPIT: -1
24
- sentry-dsn: ''
25
- enable-async-mob-spawning: true
26
- # Optimizes projectile settings
27
- projectile:
28
- max-loads-per-tick: 10
29
- max-loads-per-projectile: 8
30
- enable-books: true
31
- # Settings for things that don't belong elsewhere
32
- misc:
33
- disable-method-profiler: true
34
- disable-out-of-order-chat: false
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
purpur.jar DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:ca08ed9a9909d07f066bb71e384cece80bb420a2b5b21689d74ca4df52b384e4
3
- size 55668355
 
 
 
 
purpur.yml DELETED
@@ -1,1566 +0,0 @@
1
- # This is the main configuration file for Purpur.
2
- # As you can see, there's tons to configure. Some options may impact gameplay, so use
3
- # with caution, and make sure you know what each option does before configuring.
4
- #
5
- # If you need help with the configuration or have any questions related to Purpur,
6
- # join us in our Discord guild.
7
- #
8
- # Website: https://purpurmc.org
9
- # Docs: https://purpurmc.org/docs
10
-
11
- verbose: false
12
- settings:
13
- messages:
14
- cannot-ride-mob: <red>Низя
15
- afk-broadcast-away: <yellow><italic>%s АЀК
16
- afk-broadcast-back: <yellow><italic>%s большС нС АЀК
17
- afk-tab-list-prefix: '[AFK] '
18
- afk-tab-list-suffix: ''
19
- credits-command-output: <green>%s смотрит Ρ‚ΠΈΡ‚Ρ€Ρ‹
20
- demo-command-output: <green>%s смотрит дСмосцСну
21
- ping-command-output: <green>%s's ping is %sms
22
- ram-command-output: '<green>ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Ρ‹ ΡŽΠ·Π½ΡƒΡ‚ΠΎ: <used>/<xmx> (<percent>)'
23
- rambar-command-output: <green>Rambar toggled <onoff> for <target>
24
- tpsbar-command-output: <green>Tpsbar toggled <onoff> for <target>
25
- dont-run-with-scissors: <red><italic>НС Π±Π΅Π³Π°ΠΉ с Π½ΠΎΠΆΠ½ΠΈΡ†Π°ΠΌΠΈ!!!
26
- uptime-command-output: <green>Аптайм >> <uptime>
27
- unverified-username: default
28
- sleep-skipping-night: default
29
- sleeping-players-percent: default
30
- death-message:
31
- run-with-scissors: <player> Π½Π΅ ΠΏΠΎΡΠ»ΡƒΡˆΠ°Π»ΡΡ ΠΈ Π±Π΅Π³Π°Π» с Π½ΠΎΠΆΠ½ΠΈΡ†Π°ΠΌΠΈ
32
- stonecutter: <player> распилил сСбя Π±ΠΎΠ»Π³Π°Ρ€ΠΊΠΎΠΉ
33
- tps-catchup: true
34
- server-mod-name: NewWorld
35
- command:
36
- rambar:
37
- title: <gray>ΠžΠ—Π£<yellow>:</yellow> <used>/<xmx> (<percent>)
38
- overlay: NOTCHED_20
39
- progress-color:
40
- good: GREEN
41
- medium: YELLOW
42
- low: RED
43
- text-color:
44
- good: <gradient:#55ff55:#00aa00><text></gradient>
45
- medium: <gradient:#ffff55:#ffaa00><text></gradient>
46
- low: <gradient:#ff5555:#aa0000><text></gradient>
47
- tick-interval: 20
48
- tpsbar:
49
- title: <gray>TPS<yellow>:</yellow> <tps> MSPT<yellow>:</yellow> <mspt> Пинг<yellow>:</yellow>
50
- <ping>ms
51
- overlay: NOTCHED_20
52
- fill-mode: MSPT
53
- progress-color:
54
- good: GREEN
55
- medium: YELLOW
56
- low: RED
57
- text-color:
58
- good: <gradient:#55ff55:#00aa00><text></gradient>
59
- medium: <gradient:#ffff55:#ffaa00><text></gradient>
60
- low: <gradient:#ff5555:#aa0000><text></gradient>
61
- tick-interval: 20
62
- compass:
63
- title: 'S Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· SW Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· W Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· NW Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· N Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· NE Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· E Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· SE Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· S Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· SW Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· W Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· NW Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· N Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· NE Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· E Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· SE Β· β—ˆ Β· β—ˆ Β· β—ˆ Β· '
64
- overlay: PROGRESS
65
- progress-color: BLUE
66
- percent: 1.0
67
- tick-interval: 5
68
- gamemode:
69
- requires-specific-permission: false
70
- fill:
71
- max-area: 32768
72
- hide-hidden-players-from-entity-selector: false
73
- uptime:
74
- format: <days><hours><minutes><seconds>
75
- day: '%02d day, '
76
- days: '%02d days, '
77
- hour: '%02d hour, '
78
- hours: '%02d hours, '
79
- minute: '%02d minute, and '
80
- minutes: '%02d minutes, and '
81
- second: '%02d second'
82
- seconds: '%02d seconds'
83
- broadcasts:
84
- advancement:
85
- only-broadcast-to-affected-player: false
86
- death:
87
- only-broadcast-to-affected-player: false
88
- blocks:
89
- barrel:
90
- rows: 3
91
- ender_chest:
92
- six-rows: false
93
- use-permissions-for-rows: false
94
- crying_obsidian:
95
- valid-for-portal-frame: false
96
- beehive:
97
- max-bees-inside: 3
98
- anvil:
99
- cumulative-cost: true
100
- lightning_rod:
101
- range: 128
102
- grindstone:
103
- ignored-enchants:
104
- - minecraft:binding_curse
105
- - minecraft:vanishing_curse
106
- remove-attributes: false
107
- remove-name-and-lore: false
108
- cave_vines:
109
- max-growth-age: 25
110
- kelp:
111
- max-growth-age: 25
112
- twisting_vines:
113
- max-growth-age: 25
114
- weeping_vines:
115
- max-growth-age: 25
116
- disable-mushroom-updates: false
117
- disable-note-block-updates: false
118
- disable-chorus-plant-updates: false
119
- seed:
120
- structure:
121
- buried_treasure: -1
122
- mineshaft: -1
123
- lagging-threshold: 19.0
124
- entity:
125
- enderman:
126
- short-height: false
127
- network:
128
- upnp-port-forwarding: false
129
- max-joins-per-second: false
130
- kick-for-out-of-order-chat: true
131
- logger:
132
- suppress-init-legacy-material-errors: false
133
- suppress-ignored-advancement-warnings: false
134
- suppress-unrecognized-recipe-errors: false
135
- suppress-setblock-in-far-chunk-errors: false
136
- suppress-sent-expired-chat: false
137
- suppress-library-loader: false
138
- food-properties: {}
139
- fix-projectile-looting-transfer: false
140
- disable-give-dropping: false
141
- use-alternate-keepalive: true
142
- blast-resistance-overrides: {}
143
- block-fall-multipliers:
144
- minecraft:lime_bed:
145
- distance: 0.5
146
- minecraft:yellow_bed:
147
- distance: 0.5
148
- minecraft:black_bed:
149
- distance: 0.5
150
- minecraft:orange_bed:
151
- distance: 0.5
152
- minecraft:green_bed:
153
- distance: 0.5
154
- minecraft:blue_bed:
155
- distance: 0.5
156
- minecraft:cyan_bed:
157
- distance: 0.5
158
- minecraft:gray_bed:
159
- distance: 0.5
160
- minecraft:white_bed:
161
- distance: 0.5
162
- minecraft:hay_block:
163
- damage: 0.2
164
- minecraft:red_bed:
165
- distance: 0.5
166
- minecraft:pink_bed:
167
- distance: 0.5
168
- minecraft:light_blue_bed:
169
- distance: 0.5
170
- minecraft:purple_bed:
171
- distance: 0.5
172
- minecraft:magenta_bed:
173
- distance: 0.5
174
- minecraft:light_gray_bed:
175
- distance: 0.5
176
- minecraft:brown_bed:
177
- distance: 0.5
178
- username-valid-characters: ^[a-zA-Z0-9_.]*$
179
- allow-water-placement-in-the-end: true
180
- enchantment:
181
- allow-infinity-and-mending-together: false
182
- allow-infinity-on-crossbow: false
183
- allow-looting-on-shears: false
184
- allow-transparent-blocks-in-enchantment-box: false
185
- anvil:
186
- allow-unsafe-enchants: false
187
- allow-inapplicable-enchants: true
188
- allow-incompatible-enchants: true
189
- allow-higher-enchants-levels: true
190
- allow-unsafe-enchant-command: false
191
- clamp-levels: true
192
- config-version: 30
193
- world-settings:
194
- default:
195
- blocks:
196
- sculk_shrieker:
197
- can-summon-default: false
198
- flowering_azalea:
199
- growth-chance: 0.0
200
- budding_amethyst:
201
- silk-touch: false
202
- respawn_anchor:
203
- explode: true
204
- explosion-power: 5.0
205
- explosion-fire: true
206
- explosion-effect: DESTROY
207
- big_dripleaf:
208
- tilt-delay:
209
- UNSTABLE: 10
210
- PARTIAL: 10
211
- FULL: 100
212
- stonecutter:
213
- damage: 0.0
214
- enchantment-table:
215
- lapis-persists: false
216
- conduit:
217
- effect-distance: 16
218
- mob-damage:
219
- distance: 8.0
220
- damage-amount: 4.0
221
- valid-ring-blocks:
222
- - minecraft:prismarine
223
- - minecraft:prismarine_bricks
224
- - minecraft:sea_lantern
225
- - minecraft:dark_prismarine
226
- cauldron:
227
- fill-chances:
228
- rain: 0.05000000074505806
229
- powder-snow: 0.10000000149011612
230
- dripstone-water: 0.17578125
231
- dripstone-lava: 0.05859375
232
- observer:
233
- disable-clock: false
234
- bed:
235
- explode: true
236
- explode-on-villager-sleep: false
237
- explosion-power: 5.0
238
- explosion-fire: true
239
- explosion-effect: DESTROY
240
- azalea:
241
- growth-chance: 0.0
242
- beacon:
243
- effect-range:
244
- level-1: 20
245
- level-2: 30
246
- level-3: 40
247
- level-4: 50
248
- anvil:
249
- allow-colors: false
250
- use-mini-message: false
251
- iron-ingots-used-for-repair: 0
252
- obsidian-used-for-damage: 0
253
- campfire:
254
- lit-when-placed: true
255
- chest:
256
- open-with-solid-block-on-top: false
257
- door:
258
- requires-redstone: []
259
- composter:
260
- sneak-to-bulk-process: false
261
- coral:
262
- die-outside-water: true
263
- dispenser:
264
- apply-cursed-to-armor-slots: true
265
- place-anvils: false
266
- cactus:
267
- breaks-from-solid-neighbors: true
268
- farmland:
269
- bypass-mob-griefing: false
270
- gets-moist-from-below: false
271
- use-alpha-farmland: false
272
- disable-trampling: false
273
- only-players-trample: false
274
- feather-fall-distance-affects-trampling: false
275
- trample-height: -1.0
276
- furnace:
277
- use-lava-from-underneath: false
278
- end_portal:
279
- safe-teleporting: true
280
- end-crystal:
281
- baseless:
282
- explode: true
283
- explosion-power: 6.0
284
- explosion-fire: false
285
- explosion-effect: DESTROY
286
- base:
287
- explode: true
288
- explosion-power: 6.0
289
- explosion-fire: false
290
- explosion-effect: DESTROY
291
- dragon_egg:
292
- teleport: true
293
- packed_ice:
294
- allow-mob-spawns: true
295
- blue_ice:
296
- allow-mob-spawns: true
297
- allow-snow-formation: true
298
- turtle_egg:
299
- break-from-exp-orbs: true
300
- break-from-items: true
301
- break-from-minecarts: true
302
- bypass-mob-griefing: false
303
- random-tick-crack-chance: 500
304
- feather-fall-distance-affects-trampling: false
305
- piston:
306
- block-push-limit: 12
307
- powder_snow:
308
- bypass-mob-griefing: false
309
- powered-rail:
310
- activation-range: 8
311
- sign:
312
- right-click-edit: false
313
- allow-colors: false
314
- magma-block:
315
- damage-when-sneaking: false
316
- damage-with-frost-walker: false
317
- sand:
318
- fix-duping: true
319
- slab:
320
- break-individual-slabs-when-sneaking: false
321
- lava:
322
- infinite-source: false
323
- infinite-required-sources: 2
324
- speed:
325
- nether: 10
326
- not-nether: 30
327
- shulker_box:
328
- allow-oversized-stacks: false
329
- spawner:
330
- deactivate-by-redstone: false
331
- fix-mc-238526: false
332
- sponge:
333
- absorption:
334
- area: 64
335
- radius: 6
336
- absorbs-lava: false
337
- water:
338
- infinite-source: true
339
- infinite-required-sources: 2
340
- mobs:
341
- ender_dragon:
342
- ridable: false
343
- ridable-in-water: false
344
- controllable: true
345
- ridable-max-y: 320.0
346
- attributes:
347
- max_health: 200.0
348
- always-drop-full-exp: false
349
- bypass-mob-griefing: false
350
- takes-damage-from-water: false
351
- can-ride-vehicles: false
352
- elder_guardian:
353
- ridable: false
354
- controllable: true
355
- attributes:
356
- max_health: 80.0
357
- takes-damage-from-water: false
358
- always-drop-exp: false
359
- iron_golem:
360
- ridable: false
361
- ridable-in-water: false
362
- controllable: true
363
- can-swim: false
364
- attributes:
365
- max_health: 100.0
366
- takes-damage-from-water: false
367
- poppy-calms-anger: false
368
- healing-calms-anger: false
369
- always-drop-exp: false
370
- husk:
371
- ridable: false
372
- ridable-in-water: false
373
- controllable: true
374
- attributes:
375
- max_health: 20.0
376
- spawn_reinforcements: 0.1
377
- jockey:
378
- only-babies: true
379
- chance: 0.05
380
- try-existing-chickens: true
381
- takes-damage-from-water: false
382
- always-drop-exp: false
383
- hoglin:
384
- ridable: false
385
- ridable-in-water: false
386
- controllable: true
387
- attributes:
388
- max_health: 40.0
389
- breeding-delay-ticks: 6000
390
- takes-damage-from-water: false
391
- always-drop-exp: false
392
- horse:
393
- ridable-in-water: false
394
- attributes:
395
- max_health:
396
- min: 15.0
397
- max: 30.0
398
- jump_strength:
399
- min: 0.4
400
- max: 1.0
401
- movement_speed:
402
- min: 0.1125
403
- max: 0.3375
404
- breeding-delay-ticks: 6000
405
- takes-damage-from-water: false
406
- stand-with-rider: true
407
- stand-when-hurt: true
408
- always-drop-exp: false
409
- illusioner:
410
- ridable: false
411
- ridable-in-water: false
412
- controllable: true
413
- movement-speed: 0.5
414
- follow-range: 18.0
415
- attributes:
416
- max_health: 32.0
417
- takes-damage-from-water: false
418
- always-drop-exp: false
419
- mule:
420
- ridable-in-water: false
421
- attributes:
422
- max_health:
423
- min: 15.0
424
- max: 30.0
425
- jump_strength:
426
- min: 0.5
427
- max: 0.5
428
- movement_speed:
429
- min: 0.175
430
- max: 0.175
431
- breeding-delay-ticks: 6000
432
- takes-damage-from-water: false
433
- always-drop-exp: false
434
- magma_cube:
435
- ridable: false
436
- ridable-in-water: false
437
- controllable: true
438
- attributes:
439
- max_health: size * size
440
- attack_damage: size
441
- takes-damage-from-water: false
442
- always-drop-exp: false
443
- mooshroom:
444
- ridable: false
445
- ridable-in-water: false
446
- controllable: true
447
- attributes:
448
- max_health: 10.0
449
- breeding-delay-ticks: 6000
450
- takes-damage-from-water: false
451
- always-drop-exp: false
452
- llama:
453
- ridable: false
454
- ridable-in-water: false
455
- controllable: true
456
- attributes:
457
- max_health:
458
- min: 15.0
459
- max: 30.0
460
- jump_strength:
461
- min: 0.5
462
- max: 0.5
463
- movement_speed:
464
- min: 0.175
465
- max: 0.175
466
- breeding-delay-ticks: 6000
467
- takes-damage-from-water: false
468
- join-caravans: true
469
- always-drop-exp: false
470
- panda:
471
- ridable: false
472
- ridable-in-water: false
473
- controllable: true
474
- attributes:
475
- max_health: 20.0
476
- breeding-delay-ticks: 6000
477
- takes-damage-from-water: false
478
- always-drop-exp: false
479
- ocelot:
480
- ridable: false
481
- ridable-in-water: false
482
- controllable: true
483
- attributes:
484
- max_health: 10.0
485
- breeding-delay-ticks: 6000
486
- takes-damage-from-water: false
487
- always-drop-exp: false
488
- pig:
489
- ridable: false
490
- ridable-in-water: false
491
- controllable: true
492
- attributes:
493
- max_health: 10.0
494
- give-saddle-back: false
495
- breeding-delay-ticks: 6000
496
- takes-damage-from-water: false
497
- always-drop-exp: false
498
- phantom:
499
- ridable: false
500
- ridable-in-water: false
501
- controllable: true
502
- ridable-max-y: 320.0
503
- flames:
504
- damage: 1.0
505
- fire-time: 8
506
- allow-griefing: false
507
- attributes:
508
- max_health: '20.0'
509
- attack_damage: 6 + size
510
- attacked-by-crystal-range: 0.0
511
- attacked-by-crystal-damage: 1.0
512
- orbit-crystal-radius: 0.0
513
- spawn:
514
- min-sky-darkness: 5
515
- only-above-sea-level: true
516
- only-with-visible-sky: true
517
- local-difficulty-chance: 3.0
518
- per-attempt:
519
- min: 1
520
- max: -1
521
- burn-in-light: 0
522
- burn-in-daylight: true
523
- ignore-players-with-torch: false
524
- flames-on-swoop: false
525
- takes-damage-from-water: false
526
- always-drop-exp: false
527
- size:
528
- min: 0
529
- max: 0
530
- parrot:
531
- ridable: false
532
- ridable-in-water: false
533
- controllable: true
534
- ridable-max-y: 320.0
535
- attributes:
536
- max_health: 6.0
537
- takes-damage-from-water: false
538
- can-breed: false
539
- always-drop-exp: false
540
- piglin:
541
- ridable: false
542
- ridable-in-water: false
543
- controllable: true
544
- attributes:
545
- max_health: 16.0
546
- bypass-mob-griefing: false
547
- takes-damage-from-water: false
548
- portal-spawn-modifier: 2000
549
- always-drop-exp: false
550
- rabbit:
551
- ridable: false
552
- ridable-in-water: false
553
- controllable: true
554
- attributes:
555
- max_health: 3.0
556
- spawn-toast-chance: 0.0
557
- spawn-killer-rabbit-chance: 0.0
558
- breeding-delay-ticks: 6000
559
- bypass-mob-griefing: false
560
- takes-damage-from-water: false
561
- always-drop-exp: false
562
- polar_bear:
563
- ridable: false
564
- ridable-in-water: false
565
- controllable: true
566
- attributes:
567
- max_health: 30.0
568
- breedable-item: ''
569
- breeding-delay-ticks: 6000
570
- takes-damage-from-water: false
571
- always-drop-exp: false
572
- pufferfish:
573
- ridable: false
574
- controllable: true
575
- attributes:
576
- max_health: 3.0
577
- takes-damage-from-water: false
578
- always-drop-exp: false
579
- pillager:
580
- ridable: false
581
- ridable-in-water: false
582
- controllable: true
583
- attributes:
584
- max_health: 24.0
585
- bypass-mob-griefing: false
586
- takes-damage-from-water: false
587
- always-drop-exp: false
588
- shulker:
589
- ridable: false
590
- ridable-in-water: false
591
- controllable: true
592
- attributes:
593
- max_health: 30.0
594
- takes-damage-from-water: false
595
- spawn-from-bullet:
596
- base-chance: 1.0
597
- require-open-lid: true
598
- nearby-range: 8.0
599
- nearby-equation: (nearby - 1) / 5.0
600
- random-color: false
601
- change-color-with-dye: false
602
- always-drop-exp: false
603
- sheep:
604
- ridable: false
605
- ridable-in-water: false
606
- controllable: true
607
- attributes:
608
- max_health: 8.0
609
- breeding-delay-ticks: 6000
610
- bypass-mob-griefing: false
611
- takes-damage-from-water: false
612
- always-drop-exp: false
613
- jeb-shear-random-color: false
614
- silverfish:
615
- ridable: false
616
- ridable-in-water: false
617
- controllable: true
618
- attributes:
619
- max_health: 8.0
620
- bypass-mob-griefing: false
621
- takes-damage-from-water: false
622
- always-drop-exp: false
623
- salmon:
624
- ridable: false
625
- controllable: true
626
- attributes:
627
- max_health: 3.0
628
- takes-damage-from-water: false
629
- always-drop-exp: false
630
- ravager:
631
- ridable: false
632
- ridable-in-water: false
633
- controllable: true
634
- attributes:
635
- max_health: 100.0
636
- bypass-mob-griefing: false
637
- takes-damage-from-water: false
638
- griefable-blocks:
639
- - minecraft:oak_leaves
640
- - minecraft:spruce_leaves
641
- - minecraft:birch_leaves
642
- - minecraft:jungle_leaves
643
- - minecraft:acacia_leaves
644
- - minecraft:dark_oak_leaves
645
- - minecraft:beetroots
646
- - minecraft:carrots
647
- - minecraft:potatoes
648
- - minecraft:wheat
649
- always-drop-exp: false
650
- squid:
651
- ridable: false
652
- controllable: true
653
- attributes:
654
- max_health: 10.0
655
- immune-to-EAR: true
656
- water-offset-check: 0.0
657
- can-fly: false
658
- takes-damage-from-water: false
659
- always-drop-exp: false
660
- slime:
661
- ridable: false
662
- ridable-in-water: false
663
- controllable: true
664
- attributes:
665
- max_health: size * size
666
- attack_damage: size
667
- takes-damage-from-water: false
668
- always-drop-exp: false
669
- skeleton:
670
- ridable: false
671
- ridable-in-water: false
672
- controllable: true
673
- attributes:
674
- max_health: 20.0
675
- takes-damage-from-water: false
676
- always-drop-exp: false
677
- head-visibility-percent: 0.5
678
- feed-wither-roses: 0
679
- bow-accuracy: 14 - difficulty * 4
680
- snow_golem:
681
- ridable: false
682
- ridable-in-water: false
683
- controllable: true
684
- leave-trail-when-ridden: false
685
- attributes:
686
- max_health: 4.0
687
- drop-pumpkin-when-sheared: true
688
- pumpkin-can-be-added-back: false
689
- min-shoot-interval-ticks: 20
690
- max-shoot-interval-ticks: 20
691
- snow-ball-modifier: 10.0
692
- attack-distance: 1.25
693
- bypass-mob-griefing: false
694
- takes-damage-from-water: true
695
- always-drop-exp: false
696
- turtle:
697
- ridable: false
698
- ridable-in-water: false
699
- controllable: true
700
- attributes:
701
- max_health: 30.0
702
- breeding-delay-ticks: 6000
703
- takes-damage-from-water: false
704
- always-drop-exp: false
705
- stray:
706
- ridable: false
707
- ridable-in-water: false
708
- controllable: true
709
- attributes:
710
- max_health: 20.0
711
- takes-damage-from-water: false
712
- always-drop-exp: false
713
- tadpole:
714
- ridable: false
715
- ridable-in-water: false
716
- controllable: true
717
- strider:
718
- ridable: false
719
- ridable-in-water: false
720
- controllable: true
721
- attributes:
722
- max_health: 20.0
723
- breeding-delay-ticks: 6000
724
- give-saddle-back: false
725
- takes-damage-from-water: true
726
- always-drop-exp: false
727
- spider:
728
- ridable: false
729
- ridable-in-water: false
730
- controllable: true
731
- attributes:
732
- max_health: 16.0
733
- takes-damage-from-water: false
734
- always-drop-exp: false
735
- can-climb-world-border: true
736
- vindicator:
737
- ridable: false
738
- ridable-in-water: false
739
- controllable: true
740
- attributes:
741
- max_health: 24.0
742
- johnny:
743
- spawn-chance: 0.0
744
- takes-damage-from-water: false
745
- always-drop-exp: false
746
- vex:
747
- ridable: false
748
- ridable-in-water: false
749
- controllable: true
750
- ridable-max-y: 320.0
751
- attributes:
752
- max_health: 14.0
753
- takes-damage-from-water: false
754
- always-drop-exp: false
755
- villager:
756
- ridable: false
757
- ridable-in-water: false
758
- controllable: true
759
- attributes:
760
- max_health: 20.0
761
- brain-ticks: 1
762
- use-brain-ticks-only-when-lagging: true
763
- follow-emerald-blocks: false
764
- can-be-leashed: false
765
- can-breed: true
766
- breeding-delay-ticks: 6000
767
- clerics-farm-warts: false
768
- cleric-wart-farmers-throw-warts-at-villagers: true
769
- bypass-mob-griefing: false
770
- takes-damage-from-water: false
771
- allow-trading: true
772
- always-drop-exp: false
773
- minimum-demand: 0
774
- lobotomize:
775
- enabled: false
776
- check-interval: 100
777
- display-trade-item: true
778
- spawn-iron-golem:
779
- radius: 0
780
- limit: 0
781
- zoglin:
782
- ridable: false
783
- ridable-in-water: false
784
- controllable: true
785
- attributes:
786
- max_health: 40.0
787
- takes-damage-from-water: false
788
- always-drop-exp: false
789
- warden:
790
- ridable: false
791
- ridable-in-water: false
792
- controllable: true
793
- wither:
794
- ridable: false
795
- ridable-in-water: false
796
- controllable: true
797
- ridable-max-y: 320.0
798
- attributes:
799
- max_health: 300.0
800
- health-regen-amount: 1.0
801
- health-regen-delay: 20
802
- bypass-mob-griefing: false
803
- takes-damage-from-water: false
804
- can-ride-vehicles: false
805
- explosion-radius: 1.0
806
- play-spawn-sound: true
807
- always-drop-exp: false
808
- witch:
809
- ridable: false
810
- ridable-in-water: false
811
- controllable: true
812
- attributes:
813
- max_health: 26.0
814
- takes-damage-from-water: false
815
- always-drop-exp: false
816
- wolf:
817
- ridable: false
818
- ridable-in-water: false
819
- controllable: true
820
- attributes:
821
- max_health: 8.0
822
- default-collar-color: RED
823
- milk-cures-rabid-wolves: true
824
- spawn-rabid-chance: 0.0
825
- breeding-delay-ticks: 6000
826
- takes-damage-from-water: false
827
- always-drop-exp: false
828
- zombie:
829
- ridable: false
830
- ridable-in-water: false
831
- controllable: true
832
- attributes:
833
- max_health: 20.0
834
- spawn_reinforcements: 0.1
835
- jockey:
836
- only-babies: true
837
- chance: 0.05
838
- try-existing-chickens: true
839
- aggressive-towards-villager-when-lagging: true
840
- bypass-mob-griefing: false
841
- takes-damage-from-water: false
842
- always-drop-exp: false
843
- head-visibility-percent: 0.5
844
- zombie_villager:
845
- ridable: false
846
- ridable-in-water: false
847
- controllable: true
848
- attributes:
849
- max_health: 20.0
850
- spawn_reinforcements: 0.1
851
- jockey:
852
- only-babies: true
853
- chance: 0.05
854
- try-existing-chickens: true
855
- takes-damage-from-water: false
856
- curing_time:
857
- min: 3600
858
- max: 6000
859
- cure:
860
- enabled: true
861
- always-drop-exp: false
862
- zombie_horse:
863
- ridable-in-water: false
864
- can-swim: false
865
- attributes:
866
- max_health:
867
- min: 15.0
868
- max: 15.0
869
- jump_strength:
870
- min: 0.4
871
- max: 1.0
872
- movement_speed:
873
- min: 0.2
874
- max: 0.2
875
- spawn-chance: 0.0
876
- takes-damage-from-water: false
877
- always-drop-exp: false
878
- zombified_piglin:
879
- ridable: false
880
- ridable-in-water: false
881
- controllable: true
882
- attributes:
883
- max_health: 20.0
884
- spawn_reinforcements: 0.0
885
- jockey:
886
- only-babies: true
887
- chance: 0.05
888
- try-existing-chickens: true
889
- count-as-player-kill-when-angry: true
890
- takes-damage-from-water: false
891
- always-drop-exp: false
892
- piglin_brute:
893
- ridable: false
894
- ridable-in-water: false
895
- controllable: true
896
- attributes:
897
- max_health: 50.0
898
- takes-damage-from-water: false
899
- always-drop-exp: false
900
- tropical_fish:
901
- ridable: false
902
- controllable: true
903
- attributes:
904
- max_health: 3.0
905
- takes-damage-from-water: false
906
- always-drop-exp: false
907
- skeleton_horse:
908
- ridable-in-water: true
909
- can-swim: false
910
- attributes:
911
- max_health:
912
- min: 15.0
913
- max: 15.0
914
- jump_strength:
915
- min: 0.4
916
- max: 1.0
917
- movement_speed:
918
- min: 0.2
919
- max: 0.2
920
- takes-damage-from-water: false
921
- always-drop-exp: false
922
- trader_llama:
923
- ridable: false
924
- ridable-in-water: false
925
- controllable: true
926
- attributes:
927
- max_health:
928
- min: 15.0
929
- max: 30.0
930
- jump_strength:
931
- min: 0.5
932
- max: 0.5
933
- movement_speed:
934
- min: 0.175
935
- max: 0.175
936
- breeding-delay-ticks: 6000
937
- takes-damage-from-water: false
938
- always-drop-exp: false
939
- wither_skeleton:
940
- ridable: false
941
- ridable-in-water: false
942
- controllable: true
943
- attributes:
944
- max_health: 20.0
945
- takes-damage-from-water: false
946
- always-drop-exp: false
947
- wandering_trader:
948
- ridable: false
949
- ridable-in-water: false
950
- controllable: true
951
- attributes:
952
- max_health: 20.0
953
- follow-emerald-blocks: false
954
- can-be-leashed: false
955
- takes-damage-from-water: false
956
- allow-trading: true
957
- always-drop-exp: false
958
- cat:
959
- ridable: false
960
- ridable-in-water: false
961
- controllable: true
962
- attributes:
963
- max_health: 10.0
964
- spawn-delay: 1200
965
- scan-range-for-other-cats:
966
- swamp-hut: 16
967
- village: 48
968
- breeding-delay-ticks: 6000
969
- default-collar-color: RED
970
- takes-damage-from-water: false
971
- always-drop-exp: false
972
- blaze:
973
- ridable: false
974
- ridable-in-water: false
975
- controllable: true
976
- ridable-max-y: 320.0
977
- attributes:
978
- max_health: 20.0
979
- takes-damage-from-water: true
980
- always-drop-exp: false
981
- allay:
982
- ridable: false
983
- ridable-in-water: false
984
- controllable: true
985
- respect-nbt: []
986
- axolotl:
987
- ridable: false
988
- controllable: true
989
- attributes:
990
- max_health: 14.0
991
- breeding-delay-ticks: 6000
992
- takes-damage-from-water: false
993
- always-drop-exp: false
994
- bee:
995
- ridable: false
996
- ridable-in-water: false
997
- controllable: true
998
- ridable-max-y: 320.0
999
- attributes:
1000
- max_health: 10.0
1001
- breeding-delay-ticks: 6000
1002
- takes-damage-from-water: false
1003
- can-work-at-night: false
1004
- can-work-in-rain: false
1005
- always-drop-exp: false
1006
- dies-after-sting: true
1007
- bat:
1008
- ridable: false
1009
- ridable-in-water: false
1010
- controllable: true
1011
- ridable-max-y: 320.0
1012
- attributes:
1013
- max_health: 6.0
1014
- takes-damage-from-water: false
1015
- always-drop-exp: false
1016
- cod:
1017
- ridable: false
1018
- controllable: true
1019
- attributes:
1020
- max_health: 3.0
1021
- takes-damage-from-water: false
1022
- always-drop-exp: false
1023
- cow:
1024
- ridable: false
1025
- ridable-in-water: false
1026
- controllable: true
1027
- attributes:
1028
- max_health: 10.0
1029
- feed-mushrooms-for-mooshroom: 0
1030
- breeding-delay-ticks: 6000
1031
- takes-damage-from-water: false
1032
- naturally-aggressive-to-players:
1033
- chance: 0.0
1034
- damage: 2.0
1035
- always-drop-exp: false
1036
- cave_spider:
1037
- ridable: false
1038
- ridable-in-water: false
1039
- controllable: true
1040
- attributes:
1041
- max_health: 12.0
1042
- takes-damage-from-water: false
1043
- always-drop-exp: false
1044
- chicken:
1045
- ridable: false
1046
- ridable-in-water: false
1047
- controllable: true
1048
- attributes:
1049
- max_health: 4.0
1050
- retaliate: false
1051
- breeding-delay-ticks: 6000
1052
- takes-damage-from-water: false
1053
- always-drop-exp: false
1054
- creeper:
1055
- ridable: false
1056
- ridable-in-water: false
1057
- controllable: true
1058
- attributes:
1059
- max_health: 20.0
1060
- naturally-charged-chance: 0.0
1061
- allow-griefing: true
1062
- bypass-mob-griefing: false
1063
- takes-damage-from-water: false
1064
- explode-when-killed: false
1065
- health-impacts-explosion: false
1066
- always-drop-exp: false
1067
- head-visibility-percent: 0.5
1068
- encircle-target: false
1069
- donkey:
1070
- ridable-in-water: false
1071
- attributes:
1072
- max_health:
1073
- min: 15.0
1074
- max: 30.0
1075
- jump_strength:
1076
- min: 0.5
1077
- max: 0.5
1078
- movement_speed:
1079
- min: 0.175
1080
- max: 0.175
1081
- breeding-delay-ticks: 6000
1082
- takes-damage-from-water: false
1083
- always-drop-exp: false
1084
- drowned:
1085
- ridable: false
1086
- ridable-in-water: false
1087
- controllable: true
1088
- attributes:
1089
- max_health: 20.0
1090
- spawn_reinforcements: 0.1
1091
- jockey:
1092
- only-babies: true
1093
- chance: 0.05
1094
- try-existing-chickens: true
1095
- takes-damage-from-water: false
1096
- can-break-doors: false
1097
- always-drop-exp: false
1098
- dolphin:
1099
- ridable: false
1100
- controllable: true
1101
- spit:
1102
- cooldown: 20
1103
- speed: 1.0
1104
- damage: 2.0
1105
- attributes:
1106
- max_health: 10.0
1107
- disable-treasure-searching: true
1108
- takes-damage-from-water: false
1109
- naturally-aggressive-to-players-chance: 0.0
1110
- always-drop-exp: false
1111
- fox:
1112
- ridable: false
1113
- ridable-in-water: false
1114
- controllable: true
1115
- attributes:
1116
- max_health: 10.0
1117
- tulips-change-type: false
1118
- breeding-delay-ticks: 6000
1119
- bypass-mob-griefing: false
1120
- takes-damage-from-water: false
1121
- always-drop-exp: false
1122
- enderman:
1123
- ridable: false
1124
- ridable-in-water: false
1125
- controllable: true
1126
- attributes:
1127
- max_health: 40.0
1128
- allow-griefing: true
1129
- can-despawn-with-held-block: false
1130
- bypass-mob-griefing: false
1131
- takes-damage-from-water: true
1132
- aggressive-towards-endermites: true
1133
- aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls: false
1134
- ignore-players-wearing-dragon-head: false
1135
- disable-player-stare-aggression: false
1136
- ignore-projectiles: false
1137
- always-drop-exp: false
1138
- evoker:
1139
- ridable: false
1140
- ridable-in-water: false
1141
- controllable: true
1142
- attributes:
1143
- max_health: 24.0
1144
- bypass-mob-griefing: false
1145
- takes-damage-from-water: false
1146
- always-drop-exp: false
1147
- frog:
1148
- ridable: false
1149
- ridable-in-water: false
1150
- controllable: true
1151
- ridable-jump-height: 0.6499999761581421
1152
- breeding-delay-ticks: 6000
1153
- endermite:
1154
- ridable: false
1155
- ridable-in-water: false
1156
- controllable: true
1157
- attributes:
1158
- max_health: 8.0
1159
- takes-damage-from-water: false
1160
- always-drop-exp: false
1161
- goat:
1162
- ridable: false
1163
- ridable-in-water: false
1164
- controllable: true
1165
- attributes:
1166
- max_health: 10.0
1167
- breeding-delay-ticks: 6000
1168
- takes-damage-from-water: false
1169
- always-drop-exp: false
1170
- glow_squid:
1171
- ridable: false
1172
- controllable: true
1173
- attributes:
1174
- max_health: 10.0
1175
- can-fly: false
1176
- takes-damage-from-water: false
1177
- always-drop-exp: false
1178
- rainglow-mode: rainbow
1179
- guardian:
1180
- ridable: false
1181
- controllable: true
1182
- attributes:
1183
- max_health: 30.0
1184
- takes-damage-from-water: false
1185
- always-drop-exp: false
1186
- ghast:
1187
- ridable: false
1188
- ridable-in-water: false
1189
- controllable: true
1190
- ridable-max-y: 320.0
1191
- attributes:
1192
- max_health: 10.0
1193
- takes-damage-from-water: false
1194
- always-drop-exp: false
1195
- giant:
1196
- ridable: false
1197
- ridable-in-water: false
1198
- controllable: true
1199
- movement-speed: 0.5
1200
- attack-damage: 50.0
1201
- attributes:
1202
- max_health: 100.0
1203
- step-height: 2.0
1204
- jump-height: 1.0
1205
- have-ai: false
1206
- have-hostile-ai: false
1207
- takes-damage-from-water: false
1208
- always-drop-exp: false
1209
- hunger:
1210
- starvation-damage: 1.0
1211
- settings:
1212
- entity:
1213
- shared-random: true
1214
- tools:
1215
- axe:
1216
- strippables:
1217
- minecraft:mangrove_log:
1218
- into: minecraft:stripped_mangrove_log
1219
- drops: {}
1220
- minecraft:birch_log:
1221
- into: minecraft:stripped_birch_log
1222
- drops: {}
1223
- minecraft:warped_hyphae:
1224
- into: minecraft:stripped_warped_hyphae
1225
- drops: {}
1226
- minecraft:acacia_log:
1227
- into: minecraft:stripped_acacia_log
1228
- drops: {}
1229
- minecraft:jungle_wood:
1230
- into: minecraft:stripped_jungle_wood
1231
- drops: {}
1232
- minecraft:dark_oak_log:
1233
- into: minecraft:stripped_dark_oak_log
1234
- drops: {}
1235
- minecraft:jungle_log:
1236
- into: minecraft:stripped_jungle_log
1237
- drops: {}
1238
- minecraft:crimson_stem:
1239
- into: minecraft:stripped_crimson_stem
1240
- drops: {}
1241
- minecraft:acacia_wood:
1242
- into: minecraft:stripped_acacia_wood
1243
- drops: {}
1244
- minecraft:crimson_hyphae:
1245
- into: minecraft:stripped_crimson_hyphae
1246
- drops: {}
1247
- minecraft:oak_wood:
1248
- into: minecraft:stripped_oak_wood
1249
- drops: {}
1250
- minecraft:birch_wood:
1251
- into: minecraft:stripped_birch_wood
1252
- drops: {}
1253
- minecraft:spruce_wood:
1254
- into: minecraft:stripped_spruce_wood
1255
- drops: {}
1256
- minecraft:spruce_log:
1257
- into: minecraft:stripped_spruce_log
1258
- drops: {}
1259
- minecraft:oak_log:
1260
- into: minecraft:stripped_oak_log
1261
- drops: {}
1262
- minecraft:mangrove_wood:
1263
- into: minecraft:stripped_mangrove_wood
1264
- drops: {}
1265
- minecraft:dark_oak_wood:
1266
- into: minecraft:stripped_dark_oak_wood
1267
- drops: {}
1268
- minecraft:warped_stem:
1269
- into: minecraft:stripped_warped_stem
1270
- drops: {}
1271
- waxables:
1272
- minecraft:waxed_exposed_cut_copper:
1273
- into: minecraft:exposed_cut_copper
1274
- drops: {}
1275
- minecraft:waxed_cut_copper:
1276
- into: minecraft:cut_copper
1277
- drops: {}
1278
- minecraft:waxed_cut_copper_stairs:
1279
- into: minecraft:cut_copper_stairs
1280
- drops: {}
1281
- minecraft:waxed_exposed_copper:
1282
- into: minecraft:exposed_copper
1283
- drops: {}
1284
- minecraft:waxed_weathered_cut_copper_slab:
1285
- into: minecraft:weathered_cut_copper_slab
1286
- drops: {}
1287
- minecraft:waxed_oxidized_cut_copper_slab:
1288
- into: minecraft:oxidized_cut_copper_slab
1289
- drops: {}
1290
- minecraft:waxed_exposed_cut_copper_stairs:
1291
- into: minecraft:exposed_cut_copper_stairs
1292
- drops: {}
1293
- minecraft:waxed_weathered_cut_copper:
1294
- into: minecraft:weathered_cut_copper
1295
- drops: {}
1296
- minecraft:waxed_oxidized_cut_copper:
1297
- into: minecraft:oxidized_cut_copper
1298
- drops: {}
1299
- minecraft:waxed_weathered_copper:
1300
- into: minecraft:weathered_copper
1301
- drops: {}
1302
- minecraft:waxed_oxidized_copper:
1303
- into: minecraft:oxidized_copper
1304
- drops: {}
1305
- minecraft:waxed_copper_block:
1306
- into: minecraft:copper_block
1307
- drops: {}
1308
- minecraft:waxed_cut_copper_slab:
1309
- into: minecraft:cut_copper_slab
1310
- drops: {}
1311
- minecraft:waxed_exposed_cut_copper_slab:
1312
- into: minecraft:exposed_cut_copper_slab
1313
- drops: {}
1314
- minecraft:waxed_weathered_cut_copper_stairs:
1315
- into: minecraft:weathered_cut_copper_stairs
1316
- drops: {}
1317
- minecraft:waxed_oxidized_cut_copper_stairs:
1318
- into: minecraft:oxidized_cut_copper_stairs
1319
- drops: {}
1320
- weatherables:
1321
- minecraft:weathered_cut_copper_slab:
1322
- into: minecraft:exposed_cut_copper_slab
1323
- drops: {}
1324
- minecraft:oxidized_cut_copper_slab:
1325
- into: minecraft:weathered_cut_copper_slab
1326
- drops: {}
1327
- minecraft:weathered_cut_copper:
1328
- into: minecraft:exposed_cut_copper
1329
- drops: {}
1330
- minecraft:exposed_cut_copper_slab:
1331
- into: minecraft:cut_copper_slab
1332
- drops: {}
1333
- minecraft:oxidized_cut_copper_stairs:
1334
- into: minecraft:weathered_cut_copper_stairs
1335
- drops: {}
1336
- minecraft:oxidized_copper:
1337
- into: minecraft:weathered_copper
1338
- drops: {}
1339
- minecraft:exposed_cut_copper_stairs:
1340
- into: minecraft:cut_copper_stairs
1341
- drops: {}
1342
- minecraft:weathered_copper:
1343
- into: minecraft:exposed_copper
1344
- drops: {}
1345
- minecraft:exposed_cut_copper:
1346
- into: minecraft:cut_copper
1347
- drops: {}
1348
- minecraft:oxidized_cut_copper:
1349
- into: minecraft:weathered_cut_copper
1350
- drops: {}
1351
- minecraft:exposed_copper:
1352
- into: minecraft:copper_block
1353
- drops: {}
1354
- minecraft:weathered_cut_copper_stairs:
1355
- into: minecraft:exposed_cut_copper_stairs
1356
- drops: {}
1357
- hoe:
1358
- tillables:
1359
- minecraft:coarse_dirt:
1360
- into: minecraft:dirt
1361
- drops: {}
1362
- condition: air_above
1363
- minecraft:dirt_path:
1364
- into: minecraft:farmland
1365
- drops: {}
1366
- condition: air_above
1367
- minecraft:rooted_dirt:
1368
- into: minecraft:dirt
1369
- drops:
1370
- minecraft:hanging_roots: 1.0
1371
- condition: always
1372
- minecraft:dirt:
1373
- into: minecraft:farmland
1374
- drops: {}
1375
- condition: air_above
1376
- minecraft:grass_block:
1377
- into: minecraft:farmland
1378
- drops: {}
1379
- condition: air_above
1380
- replant-crops: false
1381
- replant-nether-warts: false
1382
- ridable-settings:
1383
- babies-are-ridable: true
1384
- untamed-tamables-are-ridable: true
1385
- use-night-vision: false
1386
- gameplay-mechanics:
1387
- player:
1388
- netherite-fire-resistance:
1389
- duration: 0
1390
- amplifier: 0
1391
- ambient: false
1392
- show-particles: false
1393
- show-icon: true
1394
- idle-timeout:
1395
- kick-if-idle: true
1396
- tick-nearby-entities: true
1397
- count-as-sleeping: false
1398
- update-tab-list: false
1399
- mobs-target: true
1400
- spawn-invulnerable-ticks: 60
1401
- invulnerable-while-accepting-resource-pack: false
1402
- exp-dropped-on-death:
1403
- equation: expLevel * 7
1404
- maximum: 100
1405
- teleport-if-outside-border: true
1406
- teleport-on-nether-ceiling-damage: false
1407
- totem-of-undying-works-in-inventory: false
1408
- fix-stuck-in-portal: false
1409
- one-punch-in-creative: false
1410
- sleep-ignore-nearby-mobs: false
1411
- can-skip-night: true
1412
- critical-damage-multiplier: 1.5
1413
- burp-delay: 10
1414
- burp-when-full: false
1415
- armor-click-equip:
1416
- allow-hot-swapping: false
1417
- creative-makes-copy: true
1418
- ridable-in-water: false
1419
- curse-of-binding:
1420
- remove-with-weakness: false
1421
- shift-right-click-repairs-mending-points: 0
1422
- exp-pickup-delay-ticks: 2
1423
- allow-void-trading: false
1424
- use-better-mending: false
1425
- always-tame-in-creative: false
1426
- boat:
1427
- eject-players-on-land: false
1428
- do-fall-damage: true
1429
- disable-drops-on-cramming-death: false
1430
- entities-can-use-portals: false
1431
- entities-pick-up-loot-bypass-mob-griefing: false
1432
- fireballs-bypass-mob-griefing: false
1433
- impose-teleport-restrictions-on-gateways: false
1434
- milk-cures-bad-omen: true
1435
- milk-clears-beneficial-effects: true
1436
- note-block-ignore-above: false
1437
- persistent-tileentity-display-names-and-lore: false
1438
- persistent-droppable-entity-display-names: false
1439
- projectiles-bypass-mob-griefing: false
1440
- tick-fluids: true
1441
- entity-blindness-multiplier: 1.0
1442
- trident-loyalty-void-return-height: 0.0
1443
- void-damage-height: -64.0
1444
- void-damage-dealt: 4.0
1445
- raid-cooldown-seconds: 0
1446
- animal-breeding-cooldown-seconds: 0
1447
- mobs-ignore-rails: false
1448
- rain-stops-after-sleep: true
1449
- thunder-stops-after-sleep: true
1450
- mob-last-hurt-by-player-time: 100
1451
- infinity-bow:
1452
- works-without-arrows: false
1453
- normal-arrows: true
1454
- spectral-arrows: false
1455
- tipped-arrows: false
1456
- daylight-cycle-ticks:
1457
- daytime: 12000
1458
- nighttime: 12000
1459
- projectile-offset:
1460
- bow: 1.0
1461
- crossbow: 1.0
1462
- egg: 1.0
1463
- ender-pearl: 1.0
1464
- throwable-potion: 1.0
1465
- trident: 1.0
1466
- snowball: 1.0
1467
- halloween:
1468
- force: false
1469
- head-chance: 0.25
1470
- entity-lifespan: 0
1471
- entity-left-handed-chance: 0.05000000074505806
1472
- arrow:
1473
- movement-resets-despawn-counter: true
1474
- armorstand:
1475
- step-height: 0.0
1476
- set-name-visible-when-placing-with-custom-name: false
1477
- fix-nametags: false
1478
- can-movement-tick: true
1479
- can-move-in-water: true
1480
- can-move-in-water-over-fence: true
1481
- place-with-arms-visible: false
1482
- drowning:
1483
- air-ticks: 300
1484
- ticks-per-damage: 20
1485
- damage-from-drowning: 2.0
1486
- elytra:
1487
- damage-per-second: 1
1488
- damage-multiplied-by-speed: 0.0
1489
- ignore-unbreaking: false
1490
- damage-per-boost:
1491
- firework: 0
1492
- trident: 0
1493
- kinetic-damage: true
1494
- item:
1495
- immune:
1496
- cactus: []
1497
- explosion: []
1498
- fire: []
1499
- lightning: []
1500
- shears:
1501
- damage-if-sprinting: false
1502
- sprinting-damage: 1.0
1503
- ender-pearl:
1504
- damage: 5.0
1505
- cooldown: 20
1506
- creative-cooldown: 20
1507
- endermite-spawn-chance: 0.05000000074505806
1508
- glow_berries:
1509
- eat-glow-duration: 0
1510
- shulker_box:
1511
- drop-contents-when-destroyed: true
1512
- compass:
1513
- holding-shows-bossbar: false
1514
- snowball:
1515
- extinguish:
1516
- fire: false
1517
- candles: false
1518
- campfires: false
1519
- mob-effects:
1520
- health-regen-amount: 1.0
1521
- minimal-health-poison-amount: 1.0
1522
- poison-degeneration-amount: 1.0
1523
- wither-degeneration-amount: 1.0
1524
- hunger-exhaustion-amount: 0.004999999888241291
1525
- saturation-regen-amount: 1.0
1526
- mob-spawning:
1527
- village-cats: default
1528
- raid-patrols: default
1529
- phantoms: default
1530
- wandering-traders: default
1531
- village-sieges: default
1532
- ignore-creative-players: false
1533
- projectile-damage:
1534
- snowball: -1
1535
- silk-touch:
1536
- enabled: false
1537
- spawner-name: <reset><white>Spawner
1538
- minimal-level: 1
1539
- spawner-lore:
1540
- - Spawns a <mob>
1541
- tools:
1542
- - minecraft:iron_pickaxe
1543
- - minecraft:golden_pickaxe
1544
- - minecraft:diamond_pickaxe
1545
- - minecraft:netherite_pickaxe
1546
- shovel-turns-block-to-grass-path:
1547
- - minecraft:coarse_dirt
1548
- - minecraft:dirt
1549
- - minecraft:grass_block
1550
- - minecraft:mycelium
1551
- - minecraft:podzol
1552
- - minecraft:rooted_dirt
1553
- minecart:
1554
- max-speed: 0.4
1555
- place-anywhere: false
1556
- powered-rail:
1557
- boost-modifier: 0.06
1558
- controllable:
1559
- enabled: false
1560
- step-height: 1.0
1561
- hop-boost: 0.5
1562
- fall-damage: true
1563
- base-speed: 0.1
1564
- block-speed:
1565
- grass_block: 0.3
1566
- stone: 0.5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
requirements.in ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ --extra-index-url https://download.pytorch.org/whl/cu113
2
+ torch
3
+ gradio
4
+ Pillow
5
+ lxml
6
+ transformers
7
+ spaces
8
+ hf-transfer
9
+ hf-xet
requirements.txt ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ --extra-index-url https://download.pytorch.org/whl/cu113
2
+ torch
3
+ gradio
4
+ Pillow
5
+ lxml
6
+ transformers>=4.49.0
7
+ qwen-vl-utils
8
+ spaces
9
+ torchvision
10
+ accelerate
11
+ hf-transfer
12
+ hf-xet
server.properties DELETED
@@ -1,59 +0,0 @@
1
- #Minecraft server properties
2
- #Mon Apr 10 06:12:17 MSK 2023
3
- allow-flight=false
4
- allow-nether=true
5
- broadcast-console-to-ops=true
6
- broadcast-rcon-to-ops=true
7
- debug=false
8
- difficulty=easy
9
- enable-command-block=false
10
- enable-jmx-monitoring=false
11
- enable-query=false
12
- enable-rcon=false
13
- enable-status=true
14
- enforce-secure-profile=true
15
- enforce-whitelist=false
16
- entity-broadcast-range-percentage=100
17
- force-gamemode=false
18
- function-permission-level=2
19
- gamemode=survival
20
- generate-structures=true
21
- generator-settings={}
22
- hardcore=false
23
- hide-online-players=false
24
- level-name=world
25
- level-seed=8486672581758651406
26
- level-type=minecraft\:normal
27
- max-chained-neighbor-updates=1000000
28
- max-players=25
29
- max-tick-time=60000
30
- max-world-size=29999984
31
- motd=\u00A76NewWorld\u00A7r\n\u00A7fReseting all data every few days\!
32
- network-compression-threshold=256
33
- online-mode=false
34
- op-permission-level=4
35
- player-idle-timeout=0
36
- prevent-proxy-connections=false
37
- previews-chat=false
38
- pvp=true
39
- query.port=7860
40
- rate-limit=0
41
- rcon.password=
42
- rcon.port=25575
43
- require-resource-pack=false
44
- resource-pack=
45
- resource-pack-prompt=
46
- resource-pack-sha1=
47
- server-ip=
48
- server-name=testserver
49
- server-port=7860
50
- simulation-distance=5
51
- spawn-animals=true
52
- spawn-monsters=true
53
- spawn-npcs=true
54
- spawn-protection=0
55
- sync-chunk-writes=false
56
- text-filtering-config=
57
- use-native-transport=true
58
- view-distance=4
59
- white-list=false
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
spigot.yml DELETED
@@ -1,173 +0,0 @@
1
- # This is the main configuration file for Spigot.
2
- # As you can see, there's tons to configure. Some options may impact gameplay, so use
3
- # with caution, and make sure you know what each option does before configuring.
4
- # For a reference for any variable inside this file, check out the Spigot wiki at
5
- # http://www.spigotmc.org/wiki/spigot-configuration/
6
- #
7
- # If you need help with the configuration or have any questions related to Spigot,
8
- # join us at the Discord or drop by our forums and leave a post.
9
- #
10
- # Discord: https://www.spigotmc.org/go/discord
11
- # Forums: http://www.spigotmc.org/
12
-
13
- settings:
14
- debug: false
15
- timeout-time: 60
16
- restart-on-crash: true
17
- restart-script: ./start.sh
18
- save-user-cache-on-stop-only: false
19
- moved-too-quickly-multiplier: 10.0
20
- moved-wrongly-threshold: 0.0625
21
- bungeecord: false
22
- sample-count: 12
23
- player-shuffle: 0
24
- user-cache-size: 1000
25
- log-villager-deaths: true
26
- log-named-deaths: true
27
- attribute:
28
- maxHealth:
29
- max: 2048.0
30
- movementSpeed:
31
- max: 2048.0
32
- attackDamage:
33
- max: 2048.0
34
- netty-threads: 4
35
- messages:
36
- whitelist: You are not whitelisted on this server!
37
- unknown-command: Unknown command. Type "/help" for help.
38
- server-full: The server is full!
39
- outdated-client: Outdated client! Please use {0}
40
- outdated-server: Outdated server! I'm still on {0}
41
- restart: Server is restarting
42
- advancements:
43
- disable-saving: false
44
- disabled:
45
- - minecraft:story/disabled
46
- commands:
47
- silent-commandblock-console: false
48
- tab-complete: 0
49
- send-namespaced: true
50
- log: true
51
- replace-commands:
52
- - setblock
53
- - summon
54
- - testforblock
55
- - tellraw
56
- spam-exclusions:
57
- - /skill
58
- players:
59
- disable-saving: false
60
- world-settings:
61
- default:
62
- below-zero-generation-in-existing-chunks: true
63
- merge-radius:
64
- item: 3.5
65
- exp: 4.0
66
- item-despawn-rate: 6000
67
- mob-spawn-range: 3
68
- wither-spawn-sound-radius: 0
69
- hanging-tick-frequency: 100
70
- enable-zombie-pigmen-portal-spawns: true
71
- view-distance: default
72
- simulation-distance: default
73
- thunder-chance: 100000
74
- zombie-aggressive-towards-villager: true
75
- arrow-despawn-rate: 1200
76
- trident-despawn-rate: 1200
77
- nerf-spawner-mobs: false
78
- end-portal-sound-radius: 0
79
- growth:
80
- cactus-modifier: 100
81
- cane-modifier: 100
82
- melon-modifier: 100
83
- mushroom-modifier: 100
84
- pumpkin-modifier: 100
85
- sapling-modifier: 100
86
- beetroot-modifier: 100
87
- carrot-modifier: 100
88
- potato-modifier: 100
89
- wheat-modifier: 100
90
- netherwart-modifier: 100
91
- vine-modifier: 100
92
- cocoa-modifier: 100
93
- bamboo-modifier: 100
94
- sweetberry-modifier: 100
95
- kelp-modifier: 100
96
- twistingvines-modifier: 100
97
- weepingvines-modifier: 100
98
- cavevines-modifier: 100
99
- glowberry-modifier: 100
100
- entity-tracking-range:
101
- players: 48
102
- animals: 48
103
- monsters: 48
104
- misc: 32
105
- other: 64
106
- ticks-per:
107
- hopper-transfer: 8
108
- hopper-check: 1
109
- hopper-amount: 1
110
- hopper-can-load-chunks: false
111
- entity-activation-range:
112
- animals: 24
113
- monsters: 24
114
- raiders: 48
115
- misc: 16
116
- water: 16
117
- villagers: 32
118
- flying-monsters: 32
119
- wake-up-inactive:
120
- animals-max-per-tick: 4
121
- animals-every: 1200
122
- animals-for: 100
123
- monsters-max-per-tick: 8
124
- monsters-every: 400
125
- monsters-for: 100
126
- villagers-max-per-tick: 4
127
- villagers-every: 600
128
- villagers-for: 100
129
- flying-monsters-max-per-tick: 8
130
- flying-monsters-every: 200
131
- flying-monsters-for: 100
132
- villagers-work-immunity-after: 100
133
- villagers-work-immunity-for: 20
134
- villagers-active-for-panic: true
135
- tick-inactive-villagers: true
136
- ignore-spectators: false
137
- seed-village: 10387312
138
- seed-desert: 14357617
139
- seed-igloo: 14357618
140
- seed-jungle: 14357619
141
- seed-swamp: 14357620
142
- seed-monument: 10387313
143
- seed-shipwreck: 165745295
144
- seed-ocean: 14357621
145
- seed-outpost: 165745296
146
- seed-endcity: 10387313
147
- seed-slime: 987234911
148
- seed-nether: 30084232
149
- seed-mansion: 10387319
150
- seed-fossil: 14357921
151
- seed-portal: 34222645
152
- seed-ancientcity: 20083232
153
- seed-buriedtreasure: 10387320
154
- seed-mineshaft: default
155
- seed-stronghold: default
156
- max-tick-time:
157
- tile: 50
158
- entity: 50
159
- hunger:
160
- jump-walk-exhaustion: 0.05
161
- jump-sprint-exhaustion: 0.2
162
- combat-exhaustion: 0.1
163
- regen-exhaustion: 6.0
164
- swim-multiplier: 0.01
165
- sprint-multiplier: 0.1
166
- other-multiplier: 0.0
167
- max-tnt-per-tick: 100
168
- dragon-death-sound-radius: 0
169
- verbose: false
170
- config-version: 12
171
- stats:
172
- disable-saving: false
173
- forced-stats: {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
start.sh DELETED
@@ -1,7 +0,0 @@
1
- #!/bin/bash
2
- export HOME=/root
3
- export USER=root
4
-
5
- ./ngrok config add-authtoken 31mik7FlKqvnSQ22n3dBopz1tMV_2oHR4gTCgt5U15qmStb49
6
- ./ngrok tcp 7860 > /dev/null &
7
- java -Xmx14336M -Xms14336M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Daikars.new.flags=true -Dusing.aikars.flags=https://mcflags.emc.gs -jar purpur.jar --nogui