-
Notifications
You must be signed in to change notification settings - Fork 4
/
OpenComputers.cfg
1730 lines (1444 loc) · 75.9 KB
/
OpenComputers.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# OpenComputers configuration. This file uses typesafe config's HOCON syntax.
# Try setting your syntax highlighting to Ruby, to help readability. At least
# in Sublime Text that works really well. Note that this file is overwritten
# whenever you start the game! Changes to the comments may vanish.
# Note that all mentions of 'KB' or 'kilobyte' mean 1024 bytes.
opencomputers {
# Chunkloader Upgrade settings.
chunkloader {
# This is a list of forbidden dimensions in the form of numeric IDs.
# Chunkloaders may only be activated in dimensions that aren't present in
# this list.
dimBlacklist=[]
# This is a list of allowed dimensions in the form of numeric IDs.
# Chunkloaders may only be activated in dimensions that are present in
# this list. If this list is empty, chunkloaders may be activated to all
# dimensions not forbidden. Note that the blacklist is always applied,
# so if an entry is present in both the whitelist and the blacklist, the
# blacklist will win.
dimWhitelist=[]
}
# Client side settings, presentation and performance related stuff.
client {
# The radius in which computer beeps can be heard.
beepRadius=16
# The sample rate used for generating beeps of computers' internal
# speakers. Use custom values at your own responsibility here; if it
# breaks OC you'll get no support. Some potentially reasonable
# lower values are 16000 or even 8000 (which was the old default, but
# leads to artifacting on certain frequencies).
beepSampleRate=44100
# The base volume of beeps generated by computers. This may be in a
# range of [0, 127], where 0 means mute (the sound will not even be
# generated), and 127 means maximum amplitude / volume.
beepVolume=32
# Whether to emit particle effects around players via nanomachines. This
# includes the basic particles giving a rough indication of the current
# power level of the nanomachines as well as particles emitted by the
# particle effect behaviors.
enableNanomachinePfx=true
# This is the scaling of the individual chars rendered on screens. This
# is set to slightly overscale per default, to avoid gaps between fully
# filled chars to appear (i.e. the block symbol that is used for cursor
# blinking for example) on less accurate hardware.
fontCharScale=1.01
# Which font renderer to use. Defaults to `unifont` if invalid.
# Possible values:
# - unifont: the (since 1.3.2) default font renderer. Based on the
# Unifont and capable of rendering many unicode glyphs.
# The used font data can be swapped out using resource packs,
# but is harder to work with, since it involves binary data.
# - texture: the old, font-texture based font renderer that was used
# in OC versions prior to 1.3.2. This will allow overriding
# the font texture as before. Keep in mind that this renderer
# is slightly less efficient than the new one, and more
# importantly, can only render code page 437 (as opposed to...
# a *lot* of unicode).
fontRenderer=unifont
# The distance at which to start fading out the hologram (as with
# hologramRenderDistance). This is purely cosmetic, to avoid image
# disappearing instantly when moving too far away from a projector.
# It does not affect performance. Holograms are transparent anyway.
hologramFadeStartDistance=48
# This controls how often holograms 'flicker'. This is the chance that it
# flickers for *each frame*, meaning if you're running at high FPS you
# may want to lower this a bit, to avoid it flickering too much.
hologramFlickerFrequency=0.025
# The maximum render distance of a hologram projected by a highest tier
# hologram projector when at maximum scale. Render distance is scaled
# down with the actual scale of the hologram.
hologramRenderDistance=64
# The maximum distance at which to render text on screens. Rendering text
# can be pretty expensive, so if you have a lot of screens you'll want to
# avoid huge numbers here. Note that this setting is client-sided, and
# only has an impact on render performance on clients.
maxScreenTextRenderDistance=20
# The color of monochrome text (i.e. displayed when in 1-bit color depth,
# e.g. tier one screens / GPUs, or higher tier set to 1-bit color depth).
# Defaults to white, feel free to make it some other color, tho!
monochromeColor="0xFFFFFF"
# Position of the power indicator for nanomachines, by default left to the
# player's health, specified by negative values. Values in [0, 1) will be
# treated as relative positions, values in [1, inf) will be treated as
# absolute positions.
nanomachineHudPos=[
-1,
-1
]
# Render robots' names as a label above them when near them
robotLabels=true
# The distance at which to start fading out the text on screens. This is
# purely cosmetic, to avoid text disappearing instantly when moving too
# far away from a screen. This should have no measurable impact on
# performance. Note that this needs OpenGL 1.4 to work, otherwise text
# will always just instantly disappear when moving away from the screen
# displaying it.
screenTextFadeStartDistance=15
# The volume multiplier applied to sounds from this mod like the computer
# running noise. Disable sounds by setting this to zero.
soundVolume=1
# If you prefer the text on the screens to be aliased (you know, *not*
# anti-aliased / smoothed) turn this option off.
textAntiAlias=true
# Whether to apply linear filtering for text displayed on screens when the
# screen has to be scaled down - i.e. the text is rendered at a resolution
# lower than their native one, e.g. when the GUI scale is less than one or
# when looking at a far away screen. This leads to smoother text for
# scaled down text but results in characters not perfectly connecting
# anymore (for example for box drawing characters. Look it up on
# Wikipedia.)
textLinearFiltering=false
}
# Computer related settings, concerns server performance and security.
computer {
# The provided call budgets by the three tiers of CPU. Higher budgets
# mean that more direct calls can be performed per tick. You can raise
# this to increase the "speed" of computers at the cost of higher real
# CPU time. Lower this to lower the load Lua executors put on your
# machine / server, at the cost of slower computers. This list must
# contain exactly three entries, or it will be ignored.
callBudgets=[
10,
20,
30
]
# This determines whether computers can only be used by players that are
# registered as users on them. Per default a newly placed computer has no
# users. Whenever there are no users the computer is free for all. Users
# can be managed via the Lua API (computer.addUser, computer.removeUser,
# computer.users). If this is true, the following interactions are only
# possible for users:
# - input via the keyboard and touch screen.
# - inventory management.
# - breaking the computer block.
# If this is set to false, all computers will always be usable by all
# players, no matter the contents of the user list. Note that operators
# are treated as if they were in the user list of every computer, i.e. no
# restrictions apply to them.
# See also: `maxUsers` and `maxUsernameLength`.
canComputersBeOwned=true
# The number of components the different CPU tiers support. This list
# must contain exactly four entries, or it will be ignored.
cpuComponentCount=[
8,
12,
16,
1024
]
# The maximum size of the byte array that can be stored on EEPROMs as configuration data.
eepromDataSize=256
# The maximum size of the byte array that can be stored on EEPROMs as executable data..
eepromSize=4096
# Whether to delete all contents in the /tmp file system when performing
# a 'soft' reboot (i.e. via `computer.shutdown(true)`). The tmpfs will
# always be erased when the computer is completely powered off, even if
# it crashed. This setting is purely for software-triggered reboots.
eraseTmpOnReboot=false
# The time in milliseconds that scheduled computers are forced to wait
# before executing more code. This avoids computers to "busy idle",
# leading to artificially high CPU load. If you're worried about
# performance on your server, increase this number a little (it should
# never exceed 50, a single tick, though) to reduce CPU load even more.
executionDelay=1
# Settings specific to the Lua architecture.
lua {
# Whether to allow loading precompiled bytecode via Lua's `load`
# function, or related functions (`loadfile`, `dofile`). Enable this
# only if you absolutely trust all users on your server and all Lua
# code you run. This can be a MASSIVE SECURITY RISK, since precompiled
# code can easily be used for exploits, running arbitrary code on the
# real server! I cannot stress this enough: only enable this is you
# know what you're doing.
allowBytecode=false
# Whether to allow user defined __gc callbacks, i.e. __gc callbacks
# defined *inside* the sandbox. Since garbage collection callbacks
# are not sandboxed (hooks are disabled while they run), this is not
# recommended.
allowGC=false
# Whether to make the Lua 5.3 architecture the default architecture.
# If enabled, a crafted CPU will first be the Lua 5.3 architecture.
defaultLua53=false
# Whether to make the Lua 5.3 architecture available. If enabled, you
# can reconfigure any CPU to use the Lua 5.3 architecture.
enableLua53=true
# Whether to make the Lua 5.4 architecture available. If enabled, you
# can reconfigure any CPU to use the Lua 5.4 architecture.
enableLua54=false
# The total maximum amount of memory a Lua machine may use for user
# programs. The total amount made available by components cannot
# exceed this. The default is 64*1024*1024. Keep in mind that this does
# not include memory reserved for built-in code such as `machine.lua`.
# IMPORTANT: DO NOT MESS WITH THIS UNLESS YOU KNOW WHAT YOU'RE DOING.
# IN PARTICULAR, DO NOT REPORT ISSUES AFTER MESSING WITH THIS!
maxTotalRam=67108864
# This setting allows you to fine-tune how RAM sizes are scaled internally
# on 64 Bit machines (i.e. when the Minecraft server runs in a 64 Bit VM).
# Why is this even necessary? Because objects consume more memory in a 64
# Bit environment than in a 32 Bit one, due to pointers and possibly some
# integer types being twice as large. It's actually impossible to break
# this down to a single number, so this is really just a rough guess. If
# you notice this doesn't match what some Lua program would use on 32 bit,
# feel free to play with this and report your findings!
# Note that the values *displayed* to Lua via `computer.totalMemory` and
# `computer.freeMemory` will be scaled by the inverse, so that they always
# correspond to the "apparent" sizes of the installed memory modules. For
# example, when running a computer with a 64KB RAM module, even if it's
# scaled up to 96KB, `computer.totalMemory` will return 64KB, and if there
# are really 45KB free, `computer.freeMemory` will return 32KB.
ramScaleFor64Bit=1.8
# The sizes of the six levels of RAM, in kilobytes. This list must
# contain exactly six entries, or it will be ignored. Note that while
# there are six levels of RAM, they still fall into the three tiers of
# items (level 1, 2 = tier 1, level 3, 4 = tier 2, level 5, 6 = tier 3).
ramSizes=[
512,
768,
1024,
2048,
4096
]
}
# The maximum depth a machine will queue signals before dropping them
# A machine state should be pulling signals via computer.pullSignal
# As the machine receives signals they are queued for pulling, and
# this maximum defines the max queue size. All signals recieved when
# the queue is full are discarded. Note that clipboard text creates
# a signal for each line of text. Thus client are limited to pasting
# text of this many lines. The default (and minimum) is 256
maxSignalQueueSize=256
# Sanity check for username length for users registered with computers. We
# store the actual user names instead of a hash to allow iterating the
# list of registered users on the Lua side.
# See also: `canComputersBeOwned`.
maxUsernameLength=32
# The maximum number of users that can be registered with a single
# computer. This is used to avoid computers allocating unchecked amounts
# of memory by registering an unlimited number of users. See also:
# `canComputersBeOwned`.
maxUsers=16
# The time in seconds to wait after a computer has been restored before it
# continues to run. This is meant to allow the world around the computer
# to settle, avoiding issues such as components in neighboring chunks
# being removed and then re-connected and other odd things that might
# happen.
startupDelay=0.25
# The overall number of threads to use to drive computers. Whenever a
# computer should run, for example because a signal should be processed or
# some sleep timer expired it is queued for execution by a worker thread.
# The higher the number of worker threads, the less likely it will be that
# computers block each other from running, but the higher the host
# system's load may become.
threads=8
# The time in seconds a program may run without yielding before it is
# forcibly aborted. This is used to avoid stupidly written or malicious
# programs blocking other computers by locking down the executor threads.
# Note that changing this won't have any effect on computers that are
# already running - they'll have to be rebooted for this to take effect.
timeout=2147483647
}
# Settings that are intended for debugging issues, not for normal use.
# You usually don't want to touch these unless asked to do so by a developer.
debug {
# On some platforms the native library can crash the game, so there are
# a few checks in place to avoid trying to load it in those cases. This
# is Windows XP and Windows Server 2003, right. If you think it might
# work nonetheless (newer builds of Server2k3 e.g.) you might want to
# try setting this to `true`. Use this at your own risk. If the game
# crashes as a result of setting this to `true` DO NOT REPORT IT.
alwaysTryNative=false
# Enable debug card functionality. This may also be of use for custom
# maps, so it is enabled by default. If you run a server where people
# may cheat in items but should not have op/admin-like rights, you may
# want to set this to false or `deny`. Set this to `whitelist` if you
# want to enable whitelisting of debug card users (managed by command
# /oc_debugWhitelist). This will *not* remove the card, it will just
# make all functions it provides error out.
debugCardAccess=allow
# Prevent OC calling Lua's os.setlocale method to ensure number
# formatting is the same on all systems it is run on. Use this if you
# suspect this might mess with some other part of Java (this affects
# the native C locale).
disableLocaleChanging=false
# Disable memory limit enforcement. This means Lua states can
# theoretically use as much memory as they want. Only relevant when
# using the native library.
disableMemoryLimit=true
# Disable computer state persistence. This means that computers will
# automatically be rebooted when loaded after being unloaded, instead
# of resuming with their exection (it also means the state is not even
# saved). Only relevant when using the native library.
disablePersistence=false
# Disable user data support. This means any otherwise supported
# userdata (implementing the Value interface) will not be pushed
# to the Lua state.
disableUserdata=false
# Enable debug card functionality. This may also be of use for custom
# maps, so it is enabled by default. If you run a server where people
# may cheat in items but should not have op/admin-like rights, you may
# want to set this to false. This will *not* remove the card, it will
# just make all functions it provides error out.
enableDebugCard=true
# Force the buffered file system to be case insensitive. This makes it
# impossible to have multiple files whose names only differ in their
# capitalization, which is commonly the case on Windows, for example.
# This only takes effect when bufferChanges is set to true.
forceCaseInsensitiveFS=false
# Forces the use of the LuaJ fallback instead of the native libraries.
# Use this if you have concerns using native libraries or experience
# issues with the native library.
forceLuaJ=false
# Force the native library loader to check the specified directory for natives first,
# before trying to find libraries packaged with OpenComputers. Use this if you want to
# use custom native libraries, or are on an unsupported platform. If unsure, leave blank.
#
# This can be an absolute or relative path. If relative, the base directory will be the .minecraft
# directory of the running Minecraft instance.
forceNativeLibPathFirst=""
# Force the platform name for the native libraries, instead of relying
# on auto-detecting it. Use this if your system is using an otherwise
# unsupported operating system or CPU architecture. If unsure, leave blank.
#
# Examples of platform strings include "solaris-x86_64" for 64-bit Solaris,
# or "windows-aarch64" for Windows on the aarch64 (64-bit arm) architecture.
forceNativeLibPlatform=""
# Force loading one specific library, to avoid trying to load any
# others. Use this if you get warnings in the log or are told to do
# so for debugging purposes ;-)
forceNativeLibWithName=""
# Pass along IDs of items and fluids when converting them to a table
# representation for Lua.
insertIdsInConverters=false
# This setting is meant for debugging errors that occur in Lua callbacks.
# Per default, if an error occurs and it has a message set, only the
# message is pushed back to Lua, and that's it. If you encounter weird
# errors or are developing an addon you'll want the stacktrace for those
# errors. Enabling this setting will log them to the game log. This is
# disabled per default to avoid spamming the log with inconsequentual
# exceptions such as IllegalArgumentExceptions and the like.
logCallbackErrors=false
# Logs the full error when a native library fails to load. This is
# disabled by default to avoid spamming the log, since libraries are
# iterated until one works, so it's very likely for some to fail. Use
# this in case all libraries fail to load even though you'd expect one
# to work.
logFullNativeLibLoadErrors=false
# Logs information about malformed glyphs (i.e. glyphs that deviate in
# width from what wcwidth says).
logHexFontErrors=false
# Used to suppress log spam for OpenGL errors on derpy drivers. I'm
# quite certain the code in the font render is valid, display list
# compatible OpenGL, but it seems to cause 'invalid operation' errors
# when executed as a display list. I'd be happy to be proven wrong,
# since it'd restore some of my trust into AMD drivers...
logOpenGLErrors=false
# Logs information about malformed glyphs (i.e. glyphs that deviate in
# width from what wcwidth says).
logUnifontErrors=false
# Extract the native library with Lua into the system's temporary
# directory instead of the game directory (e.g. /tmp on Linux). The
# default is to extract into the game directory, to avoid issues when
# the temporary directory is mounted as noexec (meaning the lib cannot)
# be loaded. There is also less of a chance of conflicts when running
# multiple servers or server and client on the same machine.
nativeInTmpDir=false
# Due to a bug in Minecraft's lighting code there's an issue where
# lighting does not properly update near light emitting blocks that are
# fully solid - like screens, for example. This can be annoying when
# using other blocks that dynamically change their brightness (e.g. for
# the addon mod OpenLights). Enable this to force light emitting blocks
# in oc to periodically (every two seconds) do an update. This should
# not have an overly noticeable impact on performance, but it's disabled
# by default because it is unnecessary in *most* cases.
periodicallyForceLightUpdate=false
# Whether to always register the LuaJ architecture - even if the native
# library is available. In that case it is possible to switch between
# the two like any other registered architecture.
registerLuaJArchitecture=false
# This is meant for debugging errors. Enabling this has a high impact
# on computers' save and load performance, so you should not enable
# this unless you're asked to.
verbosePersistenceErrors=false
}
# File system related settings, performance and and balancing.
filesystem {
# Whether persistent file systems such as disk drivers should be
# 'buffered', and only written to disk when the world is saved. This
# applies to all hard drives. The advantage of having this enabled is that
# data will never go 'out of sync' with the computer's state if the game
# crashes. The price is slightly higher memory consumption, since all
# loaded files have to be kept in memory (loaded as in when the hard drive
# is in a computer).
bufferChanges=false
# The base 'cost' of a single file or directory on a limited file system,
# such as hard drives. When computing the used space we add this cost to
# the real size of each file (and folders, which are zero sized
# otherwise). This is to ensure that users cannot spam the file system
# with an infinite number of files and/or folders. Note that the size
# returned via the API will always be the real file size, however.
fileCost=512
# The size of writable floppy disks, in kilobytes.
floppySize=512
# Number of physical platters to pretend a disk has in unmanaged mode. This
# controls seek times, in how it emulates sectors overlapping (thus sharing
# a common head position for access).
hddPlatterCounts=[
2,
4,
6
]
# The sizes of the three tiers of hard drives, in kilobytes. This list
# must contain exactly three entries, or it will be ignored.
hddSizes=[
1024,
2048,
4096
]
# The maximum number of file handles any single computer may have open at
# a time. Note that this is *per filesystem*. Also note that this is only
# enforced by the filesystem node - if an add-on decides to be fancy it
# may well ignore this. Since file systems are usually 'virtual' this will
# usually not have any real impact on performance and won't be noticeable
# on the host operating system.
maxHandles=16
# The maximum block size that can be read in one 'read' call on a file
# system. This is used to limit the amount of memory a call from a user
# program can cause to be allocated on the host side: when 'read' is,
# called a byte array with the specified size has to be allocated. So if
# this weren't limited, a Lua program could trigger massive memory
# allocations regardless of the amount of RAM installed in the computer it
# runs on. As a side effect this pretty much determines the read
# performance of file systems.
maxReadBuffer=2048
# When skipping more than this number of sectors in unmanaged mode, the
# pause specified in sectorSeekTime will be enforced. We use this instead
# of linear scaling for movement because those values would have to be
# really small, which is hard to conceptualize and configure.
sectorSeekThreshold=128
# The time to pause when the head movement threshold is exceeded.
sectorSeekTime=0.01
# The size of the /tmp filesystem that each computer gets for free. If
# set to a non-positive value the tmp file system will not be created.
tmpSize=64
}
# Graphics Card Component Settings
gpu {
# This setting assigns the budget call cost to invoke bitblt to write vram
# to a screen. Video ram can bitblit to a screen which can cause real life
# network laod the defaults settings put bitblit network impact close to gpu.set
# Increase these values to throttle bitblt more. The cost tier N is bitbltCost * 2^(tier)
# default is .5, which gives: .5, 1, 4
bitbltCost=0.5
# Video ram can be allocated on a gpu. The amount of vram you can allocate
# is equal to the width*height of the max resolution of the gpu multiplied
# by the "vramSize" for that tier. For example, a T2 gpu can have 80*25*2 of
# text buffer space allocated
vramSizes=[
1,
2,
3
]
}
hologram {
# Whether the hologram block should provide light. It'll also emit light
# when off, because having state-based light in MC is... painful.
emitLight=true
# This controls the maximum scales of holograms, by tier.
# The size at scale 1 is 3x2x3 blocks, at scale 3 the hologram will
# span up to 9x6x9 blocks. Unlike most other `client' settings, this
# value is only used for validation *on the server*, with the effects
# only being visible on the client.
# Warning: very large values may lead to rendering and/or performance
# issues due to the high view distance! Increase at your own peril.
maxScale=[
3,
4
]
# This controls the maximum translation of holograms, by tier.
# The scale is in "hologram sizes", i.e. scale 1 allows offsetting a
# hologram once by its own size.
maxTranslation=[
0.25,
0.5
]
# The delay forced on computers between calls to `hologram.setRaw`, in
# seconds. Lower this if you want faster updates, raise this if you're
# worried about bandwidth use; in *normal* use-cases this will never be
# an issue. When abused, `setRaw` can be used to generate network traffic
# due to changed data being sent to clients. With the default settings,
# the *worst case* is ~30KB/s/client. Again, for normal use-cases this
# is actually barely noticeable.
setRawDelay=0.2
}
# Settings for mod integration (the mod previously known as OpenComponents).
integration {
buildcraft {
# Cost to convert a loot disk to another in the BuildCraft programming table.
programmingTableCost=5000
}
# The name to use for the global fake player needed for some mod
# interactions.
fakePlayerName="[OpenComputers]"
# The UUID to use for the global fake player needed for some mod
# interactions.
fakePlayerUuid="7e506b5d-2ccb-4ac4-a249-5624925b0c67"
# A list of mods (by mod id) for which support should NOT be enabled. Use
# this to disable support for mods you feel should not be controllable via
# computers (such as magic related mods, which is why Thaumcraft is on this
# list by default.)
modBlacklist=[]
# A list of tile entities by class name that should NOT be accessible via
# the Adapter block. Add blocks here that can lead to crashes or deadlocks
# (and report them, please!)
peripheralBlacklist=[
"net.minecraft.tileentity.TileEntityCommandBlock"
]
# Vanilla integration related settings.
vanilla {
# Whether to allow the item stack converter to push NBT data in
# compressed format (GZIP'ed). This can be useful for pushing this
# data back to other callbacks. However, given a sophisticated
# enough software (Lua script) it is possible to decode this data,
# and get access to things that should be considered implementation
# detail / private (mods may keep "secret" data in such NBT tags).
# The recommended method is to use the database component instead.
allowItemStackNBTTags=true
# Whether to enable the command block driver. Enabling this allows
# computers to set and execute commands via command blocks next to
# adapter blocks. The commands are run using OC's general fake player.
enableCommandBlockDriver=false
# Whether to enable the inventory driver. This driver allows interacting
# with inventories adjacent to adapters in a way similar to what the
# inventory controller upgrade allows when built into a robot or placed
# inside an adapter. It is therefore considered to be somewhat cheaty by
# some, and disabled by default. If you don't care about that, feel free
# to enable this driver.
enableInventoryDriver=false
# Whether to enable the tank driver. This driver is like the inventory
# driver, just for fluid tanks, and is disabled by default with the same
# reasoning as the inventory driver - using a tank controller upgrade in
# an adapter has pretty much the same effect.
enableTankDriver=false
}
}
# Internet settings, security related.
internet {
# No longer used! See internet.filteringRules.
#
# Previous contents:
blacklist=[]
# Whether to allow HTTP requests via internet cards. When enabled,
# the `request` method on internet card components becomes available.
enableHttp=true
# Whether to allow adding custom headers to HTTP requests.
enableHttpHeaders=true
# Whether to allow TCP connections via internet cards. When enabled,
# the `connect` method on internet card components becomes available.
enableTcp=true
# This is a list of filtering rules. For any HTTP request or TCP socket
# connection, the target address will be processed by each rule, starting
# from first to last. The first matching rule will be applied; if no rule
# contains a match, the request will be denied.
# Two types of rules are currently supported: "allow", which allows an
# address to be accessed, and "deny", which forbids such access.
# Rules can be suffixed with additional filters to limit their scope:
# - all: apply to all addresses
# - default: apply built-in allow/deny rules; these may not be up to date,
# so one should primarily rely on them as a fallback
# - private: apply to all private addresses
# - bogon: apply to all known bogon addresses
# - ipv4: apply to all IPv4 addresses
# - ipv6: apply to all IPv6 addresses
# - ipv4-embedded-ipv6: apply to all IPv4 addresses embedded in IPv6
# addresses
# - ip:[address]: apply to this IP address in string format (10.0.0.3).
# CIDR notation is supported and allows defining address ranges
# (1.0.0.0/8).
# - domain:[domain]: apply to this domain. Domains are resolved to their
# actual IP only once (on startup), future requests are resolved and
# compared to the resolved addresses. Wildcards are not supported.
# The "removeme" rule does not have any use, but is instead present to
# detect whether to emit a warning on dedicated server configurations.
# Modpack authors are asked not to remove this rule; server administrators
# are free to remove it once the filtering rules have been adjusted.
# By default all private addresses are blocked. This is only meant as a
# thin layer of security, to avoid average users hosting a game on their
# local machine having players access services in their local network.
# Server hosters are expected to configure their network outside of the
# mod's context in an appropriate manner, e.g. using a system firewall.
filteringRules=[
"allow all"
]
# The maximum concurrent TCP connections *each* internet card can have
# open at a time.
maxTcpConnections=8
# The time in seconds to wait for a response to a request before timing
# out and returning an error message. If this is zero (the default) the
# request will never time out.
requestTimeout=0
# The number of threads used for processing host name lookups and HTTP
# requests in the background. The more there are, the more concurrent
# connections can potentially be opened by computers, and the less likely
# they are to delay each other.
threads=8
# No longer used! See internet.filteringRules.
#
# Previous contents:
whitelist=[]
}
# Other settings that you might find useful to tweak.
misc {
# Allow robots to get a table representation of item stacks using the
# inventory controller upgrade? (i.e. whether the getStackInSlot method
# of said upgrade is enabled or not). Also applies to tank controller
# upgrade and it's fluid getter method.
allowItemStackInspection=true
# List of item descriptors of assembler template base items to blacklist,
# i.e. for disabling the assembler template for. Entries must be of the
# format 'itemid@damage', were the damage is optional.
# Examples: 'OpenComputers:case3', 'minecraft:stonebrick@1'
assemblerBlacklist=[]
# Hard limit for size of byte arrays passed to data card callbacks. If this
# limit is exceeded, the call fails and does nothing.
dataCardHardLimit=1048576
# Soft limit for size of byte arrays passed to data card callbacks. If this
# limit is exceeded, a longer sleep is enforced (see dataCardTimeout).
dataCardSoftLimit=8192
# Time in seconds to pause a calling machine when the soft limit for a data
# card callback is exceeded.
dataCardTimeout=1
# By default the disassembler can only be used to disassemble items from
# OpenComputers itself (or objects whitelisted via the API). If you'd
# like to allow the disassembler to work on all kinds of items, even from
# other mods, set this to true.
disassembleAllTheThings=false
# The probability that an item breaks when disassembled. This chance
# applies *per extracted item*. For example, if an item was crafted from
# three other items and gets disassembled, each of those three items has
# this chance of breaking in the process.
disassemblerBreakChance=0.05
# Names of items / blocks that are blacklisted. Recipes containing these
# as inputs will be ignored by the disassembler.
disassemblerInputBlacklist=[
"minecraft:fire"
]
# Delay between disk activity sounds, specified in milliseconds.
# If set to -1, no disk activity update packets are sent.
diskActivitySoundDelay=500
# Controls how noisy results from the Geolyzer are. This is the maximum
# deviation from the original value at the maximum vertical distance
# from the geolyzer. Noise increases linearly with the vertical distance
# to the Geolyzer. So yes, on the same height, the returned value are of
# equal 'quality', regardless of the real distance. This is a performance
# trade-off.
geolyzerNoise=2
# The range, in blocks, in which the Geolyzer can scan blocks. Note that
# it uses the maximum-distance, not the euclidean one, i.e. it can scan
# in a cube surrounding it with twice this value as its edge length.
geolyzerRange=32
# Whether to give a new player a free copy of the manual. This will only
# happen one time per game, not per world, not per death. Once. If this
# is still too much for your taste, disable it here ;-)
giveManualToNewPlayers=false
# Whether to not show your special thinger (if you have one you know it).
hideOwnSpecial=false
# Whether to pass along the name of the user that caused an input signals
# to the computer (mouse and keyboard signals). If you feel this breaks
# the game's immersion, disable it.
# Note: also applies to the motion sensor.
inputUsername=true
# The probability (or rather, weighted chance) that a program disk is
# spawned as loot in a treasure chest. For reference, iron ingots have
# a value of 10, gold ingots a value of 5 and and diamonds a value of 3.
# This is the chance *that* a disk is created. Which disk that will be
# is decided in an extra roll of the dice.
lootProbability=5
# Whether to allow loot disk cycling by crafting them with a wrench.
lootRecrafting=true
# The maximum length of a string that may be pasted. This is used to limit
# the size of the data sent to the server when the user tries to paste a
# string from the clipboard (Shift+Ins on a screen with a keyboard).
maxClipboard=1024
# Maximum distance for visual effects sent from the client to the server.
# These are non-essential - losing them should not cause glitches on the client side.
maxNetworkClientEffectPacketDistance=64
# Maximum distance for updates sent from the client to the server, in blocks.
# This is further modulated by the server's maximum view distance.
# If set to 0, this option is ignored.
maxNetworkClientPacketDistance=0
# Maximum distance for sound effects sent from the client to the server.
# These are non-essential - losing them should not cause glitches on the client side.
maxNetworkClientSoundPacketDistance=32
# The maximum number of "data parts" a network packet is allowed to have.
# When sending a network message, from Lua this may look like so:
# component.modem.broadcast(port, "first", true, "third", 123)
# This limits how many arguments can be passed and are wrapped into a
# packet. This limit mostly serves as a protection for lower-tier
# computers, to avoid them getting nuked by more powerful computers.
maxNetworkPacketParts=8
# The maximum size of network packets to allow sending via network cards.
# This has *nothing to do* with real network traffic, it's just a limit
# for the network cards, mostly to reduce the chance of computer with a
# lot of RAM killing those with less by sending huge packets. This does
# not apply to HTTP traffic.
maxNetworkPacketSize=8192000
# The maximum number of ports a single network card can have opened at
# any given time.
# Note that the order for this list is: Wired Network Card -> Tier 1 Wireless
# Network Card -> Tier 2 Wireless Network Card
maxOpenPorts=[
16,
1,
16
]
# The maximum height of multi-block screens, in blocks. This is limited to
# avoid excessive computations for merging screens. If you really need
# bigger screens it's probably safe to bump this quite a bit before you
# notice anything, since at least incremental updates should be very
# efficient (i.e. when adding/removing a single screen).
maxScreenHeight=6
# The maximum width of multi-block screens, in blocks.
# See also: `maxScreenHeight`.
maxScreenWidth=8
# The maximum distance a wireless message can be sent. In other words,
# this is the maximum signal strength a wireless network card supports.
# This is used to limit the search range in which to check for modems,
# which may or may not lead to performance issues for ridiculous ranges -
# like, you know, more than the loaded area.
# See also: `wirelessCostPerRange`.
# These values are for the tier 1 and 2 wireless cards, in that order.
maxWirelessRange=[
16000,
40000
]
# Radius the MFU is able to operate in
mfuRange=64
# Probablility that at certain celebratory times crafting an OC item will
# spawn a present in the crafting player's inventory. Set to zero to
# disable.
presentChance=0.05
# Enforced delay when changing a redstone emitting component's output,
# such as the redstone card and redstone I/O block. Lowering this can
# have very negative impact on server TPS, so beware.
redstoneDelay=0
# The general upgrade tier of the switch built into server racks, i.e. how
# upgraded server racks' switching logic is. Prior to the introduction of
# this setting (1.5.15) this was always none. This applies to all
# properties, i.e. througput, frequency and buffer size.
# Valid values are: 0 = none, 1 = tier 1, 2 = tier 2, 3 = tier 3.
serverRackSwitchTier=1
# The number of remote terminals supported by each server tier.
terminalsPerTier=[
2,
4,
8
]
# Override for the worker threads' thread priority. If set to a value
# lower than 1 it will use the default value, which is half-way between
# the system minimum and normal priority. Valid values may differ between
# Java versions, but usually the minimum value (lowest priority) is 1,
# the normal value is 5 and the maximum value is 10. If a manual value is
# given it is automatically capped at the maximum.
# USE THIS WITH GREAT CARE. Using a high priority for worker threads may
# avoid issues with computers timing out, but can also lead to higher
# server load. AGAIN, USE WITH CARE!
threadPriority=6
# The maximum range between the drone/robot and a villager for a trade to
# be performed by the trading upgrade
tradingRange=8
# Transposer fluid transfer rate in millibuckets per second
# It may transfer unlimited amount per operation, but will then
# wait ((Amount in mbuckets)/transposerFluidTransferRate) seconds
transposerFluidTransferRate=512000
# Whether to perform an update check and informing local players and OPs
# if a new version is available (contacts Github once the first player
# joins a server / the first map in single player is opened).
updateCheck=false
}
# Nanomachine related values. Note that most of these are relative, as
# they scale with the number of total effects controlled by nanomachines,
# which may very much vary depending on other mods used together with OC.
# To configure this, you'll need to know how this works a bit more in-
# depth, so here goes: there are three layers, the behavior layer, the
# connector layer, and the input layer. The behavior layer consists of
# one node for each behavior provided by registered providers (by default
# these will be potion effects and a few other things). The connector
# layer merely serves to mix things up a little. The input layer is made
# up from nodes that can be triggered by the nanomachines. Each connector
# node has behavior nodes it outputs to, and gets signals from input nodes.
# Behavior nodes get signals from both the connector and the input layers.
# Reconfiguring builds up random connections. Some behaviors change what
# they do based on the number of active inputs (e.g. potion effects will
# increase their amplification value).
nanomachines {
# Time in seconds it takes for the nanomachines to process a command
# and send a response.
commandDelay=1
# The distance in blocks that nanomachines can communicate within. If
# a message comes from further away, it'll be ignored. When responding,
# the response will only be sent this far.
commandRange=2
# The relative number of connectors based on the number of available
# behaviors (see triggerQuota).
connectorQuota=0.2
# Radius in blocks of the disintegration behavior for each active input.
disintegrationRange=1
# How much damage the hungry behavior should deal to the player when the
# nanomachine controller runs out of energy.
hungryDamage=5
# How much energy the hungry behavior should restore when damaging the
# player.
hungryEnergyRestored=50
# Range of the item magnet behavior added for each active input.
magnetRange=8
# The maximum number of inputs for each node of the "neural network"
# nanomachines connect to. I.e. each behavior node and connector node
# may only have up to this many inputs.
maxInputs=2
# Hard maximum number of active inputs. This is mainly to avoid people
# bumping other nanomachines' inputs to max, killing them in a matter
# of (milli)seconds.
maxInputsActive=4
# The maximum number of outputs for each node (see maxInputs).
maxOutputs=2
# Whitelisted potions, i.e. potions that will be used for the potion
# behaviors nanomachines may trigger. This can contain strings or numbers.
# In the case of strings, it has to be the internal name of the potion,
# in case of a number it has to be the potion ID. Add any potion effects
# to make use of here, since they will all be disabled by default.
potionWhitelist=[
"potion.moveSpeed",
"potion.digSpeed",
"potion.damageBoost",
"potion.jump",
"potion.resistance",
"potion.fireResistance",
"potion.waterBreathing",
"potion.nightVision",
"potion.absorption",
"potion.blindness",
"potion.confusion",
"potion.digSlowDown",
"potion.harm",
"potion.hunger",
"potion.moveSlowdown",
"potion.poison",
"potion.weakness",
"potion.wither"