]> de.git.xonotic.org Git - xonotic/xonotic.wiki.git/commitdiff
Update Compiling: add libtool dependency master
authorbones_was_here <bones_was_here@xonotic.au>
Sun, 14 Apr 2024 11:46:33 +0000 (11:46 +0000)
committerbones_was_here <bones_was_here@xonotic.au>
Sun, 14 Apr 2024 11:46:33 +0000 (11:46 +0000)
282 files changed:
Authors.md
BaI-mod.md [new file with mode: 0644]
Basic-server-configuration.md
Blender-to-IQM.md
Channels.md [deleted file]
Chat-Rooms.md [new file with mode: 0644]
Comms-Rules-[draft].md [new file with mode: 0644]
Compiling.md [new file with mode: 0644]
Complete-list-of-command-line-parameters.md [deleted file]
Complete-list-of-q3map2-command-line-parameters.md [new file with mode: 0644]
Creating-bot-waypoints.md [new file with mode: 0644]
DarkPlaces-Index.md
Editing.md
Effectinfo-Scripting.md [new file with mode: 0644]
Event-logging.md
Exporting-a-weapon-for-Xonotic.md [new file with mode: 0644]
Features.md
Freesh-Meat-Mod.md [new file with mode: 0644]
Git.md
Home.md
Introduction-to-QuakeC.md
Items.md
Key-Hunt.md
List-of-color-codes.md
Mapping-Introduction.md
Mapping-Setup.md
Mapping-packaging.md
Maps.md
Moderation-tools.md [new file with mode: 0644]
Monsters.md [new file with mode: 0644]
Murder-in-Megaerebus-Manor.md [new file with mode: 0644]
Music-contributions.md
Nades.md [new file with mode: 0644]
Netradiant.md
Powerups.md
Programming-QuakeC-stuff-in-Xonotic.md [new file with mode: 0644]
Programming-Tips.md
Repository_Access.md
SMB-modpack.md [new file with mode: 0644]
Score-logging.md
Shared-libraries-(buildfiles).md [new file with mode: 0644]
Survival.md [new file with mode: 0644]
Test-your-translations.md
Translating.md
Translation-guidelines.md
Trouble-in-Terrorist-Town.md [new file with mode: 0644]
Vehicles.md
Weapons.md
_Sidebar.md
assets/images/Blaster.png [deleted file]
assets/images/Blaster_thumb.png [deleted file]
assets/images/Crylink.png [deleted file]
assets/images/Crylink_thumb.png [deleted file]
assets/images/Devastator.png [deleted file]
assets/images/Devastator_thumb.png [deleted file]
assets/images/Electro.png [deleted file]
assets/images/Electro_thumb.png [deleted file]
assets/images/Hagar.png [deleted file]
assets/images/Hagar_thumb.png [deleted file]
assets/images/MachineGun.png [deleted file]
assets/images/MachineGun_thumb.png [deleted file]
assets/images/Mortar.png [deleted file]
assets/images/Mortar_thumb.png [deleted file]
assets/images/Shotgun.png [deleted file]
assets/images/Shotgun_thumb.png [deleted file]
assets/images/Vortex.png [deleted file]
assets/images/Vortex_thumb.png [deleted file]
assets/images/blaster-jumping.png [deleted file]
assets/images/blaster-jumping_thumb.png [deleted file]
assets/images/wall-blastering.png [deleted file]
assets/images/wall-blastering_thumb.png [deleted file]
handicap.md
mapping-MapPicture.md
modeldecompile-tool.md [new file with mode: 0644]
uploads/00874f6434cec98f1da6d951b9987399/zzz-bai-quickmenu-v2.pk3 [new file with mode: 0644]
uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg [new file with mode: 0644]
uploads/01d68ab92d511e0a8ee5c0e0905609ab/entrap.png [new file with mode: 0644]
uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg [new file with mode: 0644]
uploads/065948db90af125a0371938ab469713f/rotfish.png [new file with mode: 0644]
uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg [new file with mode: 0644]
uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg [new file with mode: 0644]
uploads/0a0cc65abe94db11d3a463f13ea01e53/shambler.jpg [new file with mode: 0644]
uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg [new file with mode: 0644]
uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3 [new file with mode: 0644]
uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3 [new file with mode: 0644]
uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem [new file with mode: 0644]
uploads/1249c46f461a504ce7e9d3d07d6fc35b/enforcer.jpg [new file with mode: 0644]
uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg [new file with mode: 0644]
uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg [new file with mode: 0644]
uploads/15add5938094995589a7d569e9195f24/entrap.jpg [new file with mode: 0644]
uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg [new file with mode: 0644]
uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg [new file with mode: 0644]
uploads/1b9a2ab2a1f5a3138b45d12830910c02/normalboom.png [new file with mode: 0644]
uploads/1f2be87e309d9afe5e9ea75f79dee8bf/zombie2.jpg [new file with mode: 0644]
uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg [new file with mode: 0644]
uploads/1f7cdac999e2efd1c5083a387b307670/medals1.jpg [new file with mode: 0644]
uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg [new file with mode: 0644]
uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3 [new file with mode: 0644]
uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg [new file with mode: 0644]
uploads/2698f60364ce425dd295fb2462cb682a/mage.png [new file with mode: 0644]
uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg [new file with mode: 0644]
uploads/2b7164ea021914d842f1f4022cc614c3/team_sb2.jpg [new file with mode: 0644]
uploads/2bad28f70051aede20cb7c3b6cea30c8/Vehicle-ll48tank.png [new file with mode: 0644]
uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg [new file with mode: 0644]
uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg [new file with mode: 0644]
uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg [new file with mode: 0644]
uploads/2fb59cdef8d1717526d86515f8138acc/attackername.jpg [new file with mode: 0644]
uploads/3042d31bb8a054ea7e177f6110570fb7/spawnnade.png [new file with mode: 0644]
uploads/335d584ff23ed34cc3a7a68683ae198c/chat1.jpg [new file with mode: 0644]
uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg [new file with mode: 0644]
uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg [new file with mode: 0644]
uploads/36275ed8dd703a58de9cb82e49919bb4/xonotic20230616230857-00.jpg [new file with mode: 0644]
uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg [new file with mode: 0644]
uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png [new file with mode: 0644]
uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg [new file with mode: 0644]
uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip [new file with mode: 0644]
uploads/3d3d116722312d471408c7d178595e6d/items.jpg [new file with mode: 0644]
uploads/400f17cde6ff8a2fb43bb2efffd1384f/timer2.jpg [new file with mode: 0644]
uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3 [new file with mode: 0644]
uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png [new file with mode: 0644]
uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg [new file with mode: 0644]
uploads/44db8ef2cb4c89e2442e9b97854eb474/vore.jpg [new file with mode: 0644]
uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg [new file with mode: 0644]
uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png [new file with mode: 0644]
uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg [new file with mode: 0644]
uploads/4846409eef51aa79ba47169c666fd8d1/xonotic20230616230550-00.jpg [new file with mode: 0644]
uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg [new file with mode: 0644]
uploads/49d1fa684ecd673367b4f3294195a37f/normal.png [new file with mode: 0644]
uploads/49f7b185c41d545a8736999a55a9a3da/mage.jpg [new file with mode: 0644]
uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png [new file with mode: 0644]
uploads/4d0ceb0f572aaf5ae3ecc9b1d56387da/soldier.png [new file with mode: 0644]
uploads/4d83e3253563e6fde2c17be1c7ff4e3d/xonotic20230616230630-00.jpg [new file with mode: 0644]
uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg [new file with mode: 0644]
uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png [new file with mode: 0644]
uploads/508f6b1a832daa7c16b0e3296e08e5c0/zzz-bai-jokes-v18.pk3 [new file with mode: 0644]
uploads/56b672332778d67b7c359b611d54c06f/demon.jpg [new file with mode: 0644]
uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg [new file with mode: 0644]
uploads/58cca074777c04803b43075d87b1589d/demon.png [new file with mode: 0644]
uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg [new file with mode: 0644]
uploads/5b6fb4928acca2a57cba1988b716fed0/zzz-bai-gfx-v10.pk3 [new file with mode: 0644]
uploads/5d31e87dd1da89af57d0be70103b7ce8/Vehicle-lightapc-thirdperson-view.png [new file with mode: 0644]
uploads/5ddae1fd58f18d61e3c88705cd04b0e7/rottweiler.jpg [new file with mode: 0644]
uploads/5df5aca2975cb939a9f091574ea12d6f/healingboom.png [new file with mode: 0644]
uploads/5e67f7c446756d56d7fef54c7bd4d418/iconTroubleinTerroristTown.png [new file with mode: 0644]
uploads/5ee301512f68a165fdec5bf16f14fbd9/Vehicle-r22helicopter-cockpit.png [new file with mode: 0644]
uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg [new file with mode: 0644]
uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg [new file with mode: 0644]
uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg [new file with mode: 0644]
uploads/6140abcafb7b60cb154b43ce5e835105/image.png [new file with mode: 0644]
uploads/624609a067a037559c2d3033df1618d7/wyvern.png [new file with mode: 0644]
uploads/6441f147f90aba34812ebc3cb733caa7/monsternadeboom.png [new file with mode: 0644]
uploads/64c214772da84aceb4d5f56184606d3a/teams2.jpg [new file with mode: 0644]
uploads/655f8b85825c0c6f4c092e898e2bb061/chat2.jpg [new file with mode: 0644]
uploads/6853c4cc8c82b8564ff1b94c89b224be/scrag.png [new file with mode: 0644]
uploads/68fc3a8a5ecad8d4a6bfa6e62b8f4a83/zzz-bai-gfx-v7.pk3 [new file with mode: 0644]
uploads/6cdb741c94684e2633821c7540269186/iconTTTgamemode.png [new file with mode: 0644]
uploads/6dba374fe3ca986cdc8551335bedc222/title1.jpg [new file with mode: 0644]
uploads/751564673b6ea39fadf17fb217579230/xonotic20230616230906-00.jpg [new file with mode: 0644]
uploads/7599a92aad08c45284b84e18c6bbfa5c/zombie.png [new file with mode: 0644]
uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3 [new file with mode: 0644]
uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg [new file with mode: 0644]
uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg [new file with mode: 0644]
uploads/78a63b420def6f1e228720d1d91c6e3f/Honeyview_armor_mega.png [new file with mode: 0644]
uploads/7a978ef8c57af58b558e9b670e5d475d/image.png [new file with mode: 0644]
uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg [new file with mode: 0644]
uploads/7deb9e6cb017bcc91ab2e4687a358b6a/nitro.png [new file with mode: 0644]
uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg [new file with mode: 0644]
uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg [new file with mode: 0644]
uploads/7f62d54a5763b007ade732feadeb13ec/title2.jpg [new file with mode: 0644]
uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg [new file with mode: 0644]
uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg [new file with mode: 0644]
uploads/80fea6093550c63fd50c099b50620372/teams1.jpg [new file with mode: 0644]
uploads/8195594de91adce2c8f62f9819c8e861/nitroboom.png [new file with mode: 0644]
uploads/81f43728f6f8a8fa07185ad9125b0b1d/Vehicle-lightapc.png [new file with mode: 0644]
uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg [new file with mode: 0644]
uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg [new file with mode: 0644]
uploads/86e23f5af2fa659b2a1b0ac71fed74fe/timer1.jpg [new file with mode: 0644]
uploads/87492fa3d375e4166c86d794257b7d78/Gitsettingsshortguide.jpg [new file with mode: 0644]
uploads/87ff1b41bfbbc6221bf9b715bd2993d8/chat_ready.jpg [new file with mode: 0644]
uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg [new file with mode: 0644]
uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3 [new file with mode: 0644]
uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem [new file with mode: 0644]
uploads/8c812cdb7f7bdad7a3b9d199cc3583fc/duel_sb2.jpg [new file with mode: 0644]
uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg [new file with mode: 0644]
uploads/8f643aba9800e682047c9818482718af/zzz-bai-announcer-v9.pk3 [new file with mode: 0644]
uploads/90d8ed4487ba478fcec90adb691c7a42/timer3.jpg [new file with mode: 0644]
uploads/922bfe3278e7ec8688c4b96448e1e2ed/shambler.png [new file with mode: 0644]
uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg [new file with mode: 0644]
uploads/9325a103e7052bec6ebdb05e4c3afe99/Vehicle-r22helicopter-thirdperson-view.png [new file with mode: 0644]
uploads/9573c68889648122385609f314b1f077/normal_wp.jpg [new file with mode: 0644]
uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg [new file with mode: 0644]
uploads/968d5da002ae4e9070381e09c833504e/health_medium.png [new file with mode: 0644]
uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3 [new file with mode: 0644]
uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg [new file with mode: 0644]
uploads/9b6498ef80aea439232ac35d020a3859/xonotic20230616230550-00.jpg [new file with mode: 0644]
uploads/9b9de99e09439a4afbbee0ef1ff9dd6a/spider.png [new file with mode: 0644]
uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg [new file with mode: 0644]
uploads/9edc77a777f634acf4185f7e6fbd0e84/Vehicle-lightapc-cockpit.png [new file with mode: 0644]
uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg [new file with mode: 0644]
uploads/a1fbbf13c4340542b10a126eb3eb4c27/exportiqmiqeblenderdetails.jpg [new file with mode: 0644]
uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg [new file with mode: 0644]
uploads/a34e5e8eabec5fde14bbd12aafec2810/ogre.png [new file with mode: 0644]
uploads/a3b5d15a9af637f1d10e5a284cbf9834/rotfish.jpg [new file with mode: 0644]
uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg [new file with mode: 0644]
uploads/a6789a82865f41522bfaa150e9c2bbc8/healing.png [new file with mode: 0644]
uploads/a686abf53ed2a7c0c39d264fce1a15bc/translocateboom.png [new file with mode: 0644]
uploads/a696bd29d305c0d58ec1a6c18cbaae0b/veilboom.png [new file with mode: 0644]
uploads/a90778308bad9c09bf02be9cdb760f76/napalm.png [new file with mode: 0644]
uploads/aa246c0d67cabd7a59ad0f330280b6b0/tttTGA.tga [new file with mode: 0644]
uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg [new file with mode: 0644]
uploads/ad2d82960ebaa51bf74370a32b7fffd2/items.jpg [new file with mode: 0644]
uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg [new file with mode: 0644]
uploads/af2f46e366956e6ec336515564664d42/th_waypointeditor_config.cfg [new file with mode: 0644]
uploads/b047fb813b9c5fd39dddd6475b54704f/spawn.png [new file with mode: 0644]
uploads/b17c8e0ffb023dcb60fd7e2c23039e44/xonotic20230616230550-00.jpg [new file with mode: 0644]
uploads/b557161f3f3918ef097b86cc282c9795/medals2.jpg [new file with mode: 0644]
uploads/b5880d748b8fae86cbc3106b1ad0e937/afrit.png [new file with mode: 0644]
uploads/b71c8b9d29a00a11a47e29a0033290d9/team_notify.jpg [new file with mode: 0644]
uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3 [new file with mode: 0644]
uploads/b74fcccf32fe79966f656030737bed2a/armor_mega.tga [new file with mode: 0644]
uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png [new file with mode: 0644]
uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg [new file with mode: 0644]
uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg [new file with mode: 0644]
uploads/b88705357f80b8216aff7fd545baa94f/entrapboom.png [new file with mode: 0644]
uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg [new file with mode: 0644]
uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png [new file with mode: 0644]
uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3 [new file with mode: 0644]
uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg [new file with mode: 0644]
uploads/bc616f2e01318d8e0f5e267ffd3d8b50/4eg.jpg [new file with mode: 0644]
uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3 [new file with mode: 0644]
uploads/bca5d877730c378b68e6f3bcf0a87879/Vehicle-ll48tank-cockpit.png [new file with mode: 0644]
uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg [new file with mode: 0644]
uploads/c04b290b3174036960a84590ade730f0/spawn.jpg [new file with mode: 0644]
uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png [new file with mode: 0644]
uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png [new file with mode: 0644]
uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png [new file with mode: 0644]
uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png [new file with mode: 0644]
uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg [new file with mode: 0644]
uploads/c78a23766edd66cea849944f9b0eb2e0/conv_armor_mega.png [new file with mode: 0644]
uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3 [new file with mode: 0644]
uploads/ca2ff9f964f1836eaa2550c5ab918c85/napalmboom.png [new file with mode: 0644]
uploads/ca88b1a8cbab9b9c5b81ef43bb9809f3/crylinkblendertexturesample.jpg [new file with mode: 0644]
uploads/cd28ad41832e53d9006402c8821c6a18/medals3.jpg [new file with mode: 0644]
uploads/cd466c80bb27a039b5e6702755707562/spider.jpg [new file with mode: 0644]
uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg [new file with mode: 0644]
uploads/ce02b51b844f1a2dd37d6d51f1fa6e67/zzz-bai-sounds-v11.pk3 [new file with mode: 0644]
uploads/ce3c707247027623f69dc6ea82495567/spect_hud.jpg [new file with mode: 0644]
uploads/cf0c9ed18c81f8281e2af454b071dbb6/zzz-bai-jingle-v1.pk3 [new file with mode: 0644]
uploads/cfae0d89095b3fc5bd31962c1c7b47af/wyvern.jpg [new file with mode: 0644]
uploads/d24c29720cbc633d181ee7ada882a3ad/Gitsettingsshortguide.jpg [new file with mode: 0644]
uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg [new file with mode: 0644]
uploads/d3a3586d41ffca7ea2316696c3e0b0c9/zombie.jpg [new file with mode: 0644]
uploads/d48adce41341a2c32dc5b077bb897216/rottweiler.png [new file with mode: 0644]
uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg [new file with mode: 0644]
uploads/d7ad82b11f40be35df21edea0ebd1b07/zzz-bai-jokes-v18.pk3 [new file with mode: 0644]
uploads/d7c63b18559c353165cee65dfd31aca3/spectating.png [new file with mode: 0644]
uploads/dbc9799a7d5caa91d6172b21e61f205e/translocate.png [new file with mode: 0644]
uploads/dead5dd822cfb3eef5470d1e4cfd64b5/Vehicle-r22helicopter.png [new file with mode: 0644]
uploads/dec906e1d2ca4f2ec2096e8461797592/murder_place.jpg [new file with mode: 0644]
uploads/e1f01cf95af8e73403a7652836427195/veil.png [new file with mode: 0644]
uploads/e220eae0a519de41f93aa90c1be0a273/creeper.png [new file with mode: 0644]
uploads/e5a8837b66fc96de4e30a19ed73d9e47/Vehicle-ll48tank-thirdperson-view.png [new file with mode: 0644]
uploads/e72bbcac022e75f3944c36ef7f7fd2c5/zzz-bai-gfx-v7.pk3 [new file with mode: 0644]
uploads/e7c23520812595b949077456d0e0b002/armor_big.png [new file with mode: 0644]
uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg [new file with mode: 0644]
uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg [new file with mode: 0644]
uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg [new file with mode: 0644]
uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg [new file with mode: 0644]
uploads/edac44d1319de43fd3529cee1368d128/iconTTTgamemodeoriginal.png [new file with mode: 0644]
uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg [new file with mode: 0644]
uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png [new file with mode: 0644]
uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg [new file with mode: 0644]
uploads/f16e2c669c122f62d8ae663f4df18823/zzz-bai-jokes-v18.pk3 [new file with mode: 0644]
uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg [new file with mode: 0644]
uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg [new file with mode: 0644]
uploads/f4895cc5bd728d6bbb81e0699206098b/zombie2.png [new file with mode: 0644]
uploads/f6696ed828d0b759321b2a9fb358f044/enforcer.png [new file with mode: 0644]
uploads/f6bee872e2ebfe4c3bb317bd1f0aa421/tttTGA.tga [new file with mode: 0644]
uploads/fad08dff4a3f011773ccd11bbf14fe57/vore.png [new file with mode: 0644]
uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg [new file with mode: 0644]
uploads/fbdb7eb49088219c3acc3095e4254a6a/monsternade.png [new file with mode: 0644]
uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg [new file with mode: 0644]

index ca77fec554b040f52e212d220ed9ff2c2de33a60..d54928a2b998b1ebb82724f9683db4b47ff4404f 100644 (file)
@@ -4,7 +4,7 @@ DarkPlaces Wiki
 Darkplaces Authors
 ==================
 
-Darkplaces was created by LordHavoc, and contributed to by a long list of people over the years. Here are just some of the people who have contributed code, artwork, bug fixes, hosting, etc.
+Darkplaces was created by LadyHavoc, and contributed to by a long list of people over the years. Here are just some of the people who have contributed code, artwork, bug fixes, hosting, etc.
 
 Supporters & Contributors
 -------------------------
@@ -26,3 +26,4 @@ Supporters & Contributors
 -   |Rain|
 -   VorteX
 -   Ludwig Nussel
+-   David "Cloudwalk" Knapp
\ No newline at end of file
diff --git a/BaI-mod.md b/BaI-mod.md
new file mode 100644 (file)
index 0000000..94d9b17
--- /dev/null
@@ -0,0 +1,147 @@
+> ## Table of Contents
+> 1. [Notes for developers](#notes-for-developers)
+> 2. [HUD configuration](#hud-configuration)
+> 3. [Chat sounds](#chat-sounds)
+> 4. [Country flags](#country-flags)
+> 5. [References](#references)
+
+
+[**Mod**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/z411/bai-server) developed by [**z411**](https://gitlab.com/z411) for the BaI Xonotic server. Most of these are features ported from Quake 3/Quake Live and some might be undesirable for some Xonotic players, here is the content in case Xonotic players want any of them in the main game.
+
+
+# Notes for developers
+
+### Mod resources
+
+Note: PATH is one of the following depending on your system
+
+|OS|Path|
+|:--|:--|
+|Windows|C:\Users\yourusername\Saved Games\xonotic|
+|Linux|~/.xonotic|
+|Mac|~/Library/Application Support/xonotic|
+Nothing should *ever* be added to the main installation folder of Xonotic, use these paths!
+
+The resources should be saved in `PATH/data`.
+
+- Announcer (execute `cl_announcer shobon` command to activate the resource):
+
+[zzz-bai-announcer-v9.pk3](uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3)
+
+- Icons of country flags, medals and scoreboard logo:
+
+[zzz-bai-gfx-v8.pk3](uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3)
+
+- Soundtrack of when a match is over and the players are in pause voting to select gamemodes/maps:
+
+[zzz-bai-jingle-v1.pk3](uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3)
+
+- Chat sounds:
+
+[zzz-bai-jokes-v19.pk3](uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3)
+
+- Quickmenu:
+
+[zzz-bai-quickmenu-v2.pk3](uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3)
+
+- Set of sound effects about when player shots, a flag is fallen, ...
+
+[zzz-bai-sounds-v11.pk3](uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3)
+
+### Source code
+
+The code is in z411's branch: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/z411/bai-server
+
+LegendGuard has forked the mod and added some stuff in this branch: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/LegendaryGuard/bai_mod
+
+Remember look the [**repository guide**](https://gitlab.com/xonotic/xonotic/-/wikis/Repository_Access) to use this code.
+
+#### List of source code files where mod was developed
+
+Client base:
+
+- [`qcsrc/server/client.qc`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/server/client.qc)
+
+Scoreboard:
+
+- [`qcsrc/client/hud/panel/scoreboard.qc`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/client/hud/panel/scoreboard.qc)
+
+- [`qcsrc/common/scores.qh`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/common/scores.qh)
+
+Chat:
+
+- [`qcsrc/client/hud/panel/chat.qc`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/client/hud/panel/chat.qc)
+
+Spectator HUD:
+
+- [`qcsrc/client/hud/panel/spect.qh`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/client/hud/panel/spect.qh)
+
+- [`qcsrc/client/hud/panel/spect.qc`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/blob/z411/bai-server/qcsrc/client/hud/panel/spect.qc)
+
+Attacker text:
+
+- All files inside this folder:
+[`qcsrc/common/mutators/mutator/attackertext/`](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/z411/bai-server/qcsrc/common/mutators/mutator/attackertext)
+
+
+# HUD configuration
+
+Cvars: 
+
+`hud_panel_spect_scores 1 //sets team spectator display HUD scores`
+
+`hud_panel_spect_playername 1 //sets player name spectator display HUD`
+
+<img src="uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg" alt="SpectatorHUD" width="500"/>
+
+
+`cl_attackertext 1 //sets attacker text to know who is attacking`
+
+<img src="uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg" alt="attackername" width="200"/>
+
+
+`hud_panel_itempickup 1 //sets item pickup entire display HUD`
+
+`hud_panel_itempickup_timer 1 //sets item pickup timer display`
+
+<img src="uploads/3d3d116722312d471408c7d178595e6d/items.jpg" alt="items" width="200"/>
+
+# Chat sounds
+
+To activate chat sounds, you can add sounds as you want:
+You should put the sounds inside a .pk3 in the path `sound/chat/sound_name.ogg`
+For example:
+```
+sound/chat/sound1.ogg
+sound/chat/sound2.ogg
+sound/chat/sound3.ogg
+```
+Then you should set the following cvars in your server config:
+```
+set sv_chat_sounds 1
+set sv_chat_sounds_list "sound1 sound2 sound3"
+```
+The cvar `cl_chat_sounds` is only on the client side in case you're on a server with sounds and these bother you, you can disable them from your side only.
+
+BaI server uses the following chat sounds configuration (chat sounds pk3 resource is needed to use these sounds):
+```
+cmd sounds //to check chat sound list
+set sv_chat_sounds 1
+set sv_chat_sounds_list "200 abusadores alert andate antabaka apruebo arigato au avispate aweonao batman bonk bork brigido bruh buitre callese chan chaojefe chimp choro choro2 choro3 combobreaker cristian ctm ctm2 ctm3 cyka daleboludo drop drop2 economia eliminado enfermedad fama felipe fumando1 fumando2 gallina garrotera gas gay gracias hitler homero israel jiji july3p lacra laputaquemepario larva lepego macaco matias mefunaron meopene meperdonas mequierematar mevoy mipixula mira mybody nana nice noloserick nopuedeser notengoidea nya ooh pablo pancito pencaql picasso picasso2 piropo probando problema que quepaso rage1 rage2 rage3 rata ratero risas roblox runbitch salee salee2 scream simp suck sugoi suspension talisto tarde tepillamos tin tom tontown tranquilo tuturu urss uuh uuy vetealamierda viejaculia watashi waton wena weonculiao willy windows winning xq yabai yabasta yamete yawey yoo"
+```
+
+You can write in the chat, the sound name to be played.
+
+# Country flags
+
+Keep in mind that country flags are saved inside zzz-bai-gfx-v8.pk3 file, each flag has its own number (0-249). Uses a bot to identify automatically player's IP and execute the following command:
+
+`setflag #player_id numberofflag`
+
+*Note* : this command can be tested on a server without this bot.
+
+<img src="uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg" alt="scoreboardCountryflag" width="500"/>
+
+# References
+
+https://omaera.org/~z411/xonotic/
\ No newline at end of file
index 0e318971830f4b89f6d44f7033aa1b2c3714c194..67d443159dbf655c269bbb6107ad4b4d772847da 100644 (file)
@@ -73,11 +73,15 @@ If set to 0, the players will be able to see the number of votes for each map (o
 # Bots
 ```
 minplayers 0
+minplayers_per_team 0
 ```
-If set to more than 0, the server will try to make sure that the number of all active players matches the value set. For example, if `minplayers` is 4 and there is 1 person playing, the server will have 3 bots. Bots will leave or join when the number of players changes. When nobody is connected to the server, no bots will be playing.
-
+If `minplayers` is set to a more than 0, the server will fill server with bots to reach this number of players (only in teamless games). For example, if `minplayers` is 4 and there is 1 person playing, the server will have 3 bots. Similarly, in team games `minplayers_per_team X` will make sure the minimum number of players per team is X. Bots will leave or join when the number of players changes. When nobody is connected to the server, no bots will be playing.
+```
+bot_number 0
+```
+If set to more than 0, the server will always spawn this number of bots. Note that server can still spawn more bots to reach the minimum number of players.
 ```
-skill 5
+skill 8
 ```
 Sets the skill level of bots. Higher values mean harder bots. Possible values are 0 through 10.
 
index 00abebe87bd028b0edf514ee2448d092fcd8eef2..be560456d6e901fd3dc63216cf3d50a617506c67 100644 (file)
@@ -26,6 +26,23 @@ Blender when exporting to IQM
 4. Export to a file path of your choosing, /path/to/umbra.iqm. Put the names of all the animations in the animations box, using commas for multiple anims. Then hit the export button and hopefully it will work without any errors.
 5. Your model will need a .framegroups file to be used in Xonotic, look at the example file at the beginning of this article or check the [Framegroups](Framegroups) section of this wiki.
 
+### Troubleshooting
+
+- _**Broken shadow artifacts (enabled with `r_shadows 2` and disabled `r_shadow_shadowmapping 0`):**_<br/>
+To solve this, the possible way is exporting to IQM from Blender, selecting bone and mesh (both highlighted). That issue could happen to player models.
+<br/>Reference: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2667
+
+- _**When exporting to IQM, get duplicated names in the texture:**_<br/> 
+<img src="uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg" alt="duplicatedtexturenameloadingerror" width=700 /><br/>
+Take a closer look what is telling here:<br/>
+_The "Materials" option controls how material names are generated. "material+image-ext" combines the name of the material and the name of the UV-map image (without its extension or directory) to generate the material name, "material" uses only the name of the material, and "image" just uses the name of the UV-map image (without its directory)._ <br/><br/>
+When you export to IQM, you need to watch out that detail after selected File > Export > Inter-Quake Model (.iqm, .iqe).<br/>
+Pay attention to this [section](##textures-and-materials) when you need to export correctly, the material/texture(image) should be one thing, so do the following: Export IQM > Materials: > select `material` or `image` instead `material+image-ext`.<br/>
+<img src="uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg" alt="exportiqmiqeblenderdetails" width=200 /><br/>
+
+- _**Model scale animations aren't working:**_<br/> 
+IQM and SMD formats don't support bone scaling animations, although you try to compile them into dpmodel tool, it won't change nothing. More info here: https://steamcommunity.com/groups/BlenderSourceTools/discussions/1/152392786900223348/ <br/>
+
 ### Notes
 
 As of 01/06/2012, Xonotic uses these animations:
diff --git a/Channels.md b/Channels.md
deleted file mode 100644 (file)
index 7a76f22..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-Internet Relay Chat and Instant Messaging channels
-==================================================
-
-IRC
----
-
-For a short introduction to IRC, [skip to the bottom of this page](Channels#general-irc-info-and-rules).
-
-### FreeNode (chat.freenode.net:6667) - https://webchat.freenode.net/
-
-    #xonotic - Game developer channel. Non-development subjects should be directed to the main Xonotic channel on QuakeNet
-
-### QuakeNet (irc.quakenet.org:6667) - https://webchat.quakenet.org/
-
-    #xonotic           - General purpose channel, bridged  to discord: https://discordapp.com/invite/0uxcsw1XMkaOB936
-    #xonotic.cup       - Cup channel
-    #xonotic.duel      - Duel servers (psyx, FPS, WTWRP, pacman)
-    #xonotic.editing   - Channel for mapmakers, modelers, texturers, etc.
-    #xonotic.maps      - Channel for xonotic.co
-    #xonotic.pickup    - Pickup channel
-    #xonotic.translate - Channel to discuss translation issues
-
-Country/Region specific IRC channels:
-
-    #xonotic.au - Xonotic Australia
-    #xonotic.de - Xonotic Germany
-    #xonotic.fr - Xonotic France
-    #xonotic.na - Xonotic North America
-    #xonotic.ru - Xonotic Russia
-
-Clan channels:
-
-    #bot.xonotic         - BOT
-    #cf.etqw             - Combat Folk
-    #clanexe             - .exe
-    #dietunichtguten     - Die Tunichtguten
-    #evil.ant.colony     - Evil Ant Colony
-    #Lover               - Lovers
-    #kwestion            - Kwestion
-    #mon.xonotic         - Monks of Nexuiz
-    #nsb.nexuiz          - NSB - The Dyslexic Loser Mob
-    #OHSNAP!             - OHSNAP!
-    #pb.xonotic          - PeaceBrothers
-    #psyx                - Psychos of Xonotic
-    #sh.nexuiz           - Shell
-    #smb                 - Super Mario Brothers
-    #smokebreak          - Smoke Break
-    #theregulars         - The Regulars
-    #uc.xonotic          - unconnected
-    #xonotic.butt        - BUTT
-    #xon.fsmp            - FSMP
-
-Server channels:
-
-    #clanexe           - .exe servers
-    #dtg.ctf           - Die Tunichtguten server (Insta CTF)
-    #eac.xonotic       - Evil Ant Colony servers
-    #element.ctf       - LMNT servers
-    #eris.xonotic      - Eris votable - the best motherfucking xon server
-    #jeff-xonotic      - Jeff servers
-    #mon.sa            - LX' Overkill (formerly MoN servers (Overkill + Vehicle))
-    #pac.xon           - WTWRP, FPS, pacman non-Duel servers
-    #Prophets.DM       - Prophets DM server
-    #Prophets.Duel     - Prophets Insta 1v1 server
-    #Prophets.XDF      - Propehts DeFrag server
-    #regulars.servers  - More The Regulars servers
-    #smb.1v1           - HUB Duel servers
-    #theregulars       - The Regulars InstaGib server
-    #wtwrp.ok          - WTWRP Overkill
-    #xdf               - Xonotic DeFrag server
-    #xonorun           - Gnom servers
-    #xonotic.smb       - SMB servers
-
-### ARCNet (irc.arcnet.vapor.com:6667)
-
-    #dcc.admins - DCC Admins
-    #dccdelight - DCC Delight servers
-
-### GlobalGamers (irc.globalgamers.net:6667)
-
-    #xonotic - General channel
-
-Jabber XMPP MUCs
-----------------
-
-    xonotic at conf.jabberes.org - Spanish channel
-    xonotic at conference.jabber.ru - Russian channel
-    xonotic at conference.jabber.org - English channel
-
-Discord
--------
-
-[invite link](https://discordapp.com/invite/0uxcsw1XMkaOB936)
-
-Some channels are bridged to IRC.
-
-General IRC info and rules
---------------------------
-
-### About
-
-Internet Relay Chat is one of the oldest methods for instant communication on the Internet. Interconnected Servers form a Network to which you can log on with an IRC client and provides channels (similar to conference calls or chats) where you can communicate with all others on the same channel in realtime and it’s possible to join and be present on multiple channels in parallel.
-
-Channels are synchronized across all servers of the same network, but not across Networks. Channels with the same name on different Networks are completely independent.
-Most modern IRC clients also allow you to connect to several networks in parallel.
-
-### Help
-
-Be conscious about security when connecting to any IRC network. Following these three rules will keep you out if trouble:
-
-1.  Don’t ever IRC as root! On Windows, don’t use an administrator account.
-2.  Don’t just click or open any link that gets posted unless you are sure it is safe.
-     Don’t type commands into your client or chatwindow that others tell you to. Verify it’s safe to do so or evil things might happen.
-3.  Especially if you want to stay around for longer on a network, get a bouncer or cloak.
-
-How to get a cloak depends on the network you are on. This normally means registering your nick on the network and setting some usermodes, then will prevent others from seeing your real IP address so you are less likely to get attacked for whatever reasons. Find your networks help channel and ask there if you can’t figure it otherwise.
-Some networks don’t provide this service, you might want to think twice before going there without a bouncer.
-You can also connect through Tor or a different anonymity service to hide your real whereabouts. But you might be blocked from some channels because these services are often used by spammers and other strange individuals.
-If you are paranoid your connection might get tapped or rerouted, most serious networks also provide SSL connections on port 7000 so you can be sure to have some privacy from your ISP. Also a good idea if you surf on WLANs or open networks.
-
-### Rules
-
-IRC has it’s own strange set of rules and etiquette. Newcomers without that knowledge often find it troublesome and frustrating until they get the hang of things.
-Here are the most important rules to get you started.
-
--   Be patient.
-
-People are often connected 24/7 and simply seeing them in a channel does not imply they are actually in front of their computer or watching the chat window all the time. Depending on channel and timezones of others, it might be hours until you get a reply.
-
--   Don’t ask to ask. Just ask.
-
-Noone likes to answer meta questions. Or nobody might be there to answer it. Waiting for it will just take you longer to get your real question answered.
-If you just ask your question someone who can help will likely speak up.
-Also don’t direct a generic question at someone if you don’t really mean to. Others who might know an answer and could help you are likely to ignore you then.
-
--   Don’t be rude. Don’t be demanding.
-
-Especially on help channels where people help you out on their free time, this will likely get you ignored very fast or even kicked from the channel.
-It is also considered rude to highlight (typing other peoples names) someone repeatedly to get their attention.
-
--   Don’t repeat yourself.
-
-This goes mostly for help channels, but repeating a question multiple times within minutes doesn’t get you an answer any faster.
-This is also considered rude and more likely will get you ignored.
-People who have been away tend to read their chat history or backlog and will get back to you on their own.
-But on a very busy channel, your text might get overlooked and you can repeat it after waiting an appropriate time.
-
diff --git a/Chat-Rooms.md b/Chat-Rooms.md
new file mode 100644 (file)
index 0000000..90addb2
--- /dev/null
@@ -0,0 +1,168 @@
+Matrix
+---
+[Matrix](https://matrix.org/docs/guides/introduction) rooms are organised into groups called Spaces to make it easier to find all the rooms for a community.  
+It's recommended to join the Xonotic official Space: [![#space:xonotic.org](https://xonotic.org/badgen/matrix/members/space/xonotic.org?color=orange)](https://matrix.to/#/#space:xonotic.org)  
+
+You can also join individual rooms directly:  
+| Link | Topic |
+| ------ | ------ |
+| [![#main:xonotic.org](https://xonotic.org/badgen/matrix/members/main/xonotic.org?color=blue)](https://matrix.to/#/#main:xonotic.org) | General chat and help |
+| [![#offtopic:xonotic.org](https://xonotic.org/badgen/matrix/members/offtopic/xonotic.org?color=blue)](https://matrix.to/#/#offtopic:xonotic.org) | Let's not go to Wicktown, 'tis a silly place |
+| [![#mapping:xonotic.org](https://xonotic.org/badgen/matrix/members/mapping/xonotic.org?color=blue)](https://matrix.to/#/#mapping:xonotic.org) | Mapping, modelling, texturing & shaders |
+| [![#dev:xonotic.org](https://xonotic.org/badgen/matrix/members/dev/xonotic.org?color=blue)](https://matrix.to/#/#dev:xonotic.org) | Strictly development of the official game |
+
+IRC
+---
+
+For a short introduction to IRC, [skip to the bottom of this page](Channels#general-irc-info-and-rules).
+
+### QuakeNet (irc.quakenet.org:6667) - https://webchat.quakenet.org/
+
+    #xonotic           - General purpose channel, bridged  to discord: https://discordapp.com/invite/0uxcsw1XMkaOB936
+    #xonotic.cup       - Cup channel
+    #xonotic.duel      - Former channel for duel servers (PsyX, PAC)
+    #xonotic.editing   - Channel for mapmakers, modelers, texturers, etc.
+    #xonotic.maps      - Channel for xonotic.co
+    #xonotic.pickup    - Pickup channel
+    #xonotic.translate - Channel to discuss translation issues
+    #xonotic.bar       - Off-topic conversations
+
+Country/Region specific IRC channels:
+
+    #xonotic.au - Xonotic Australia
+    #xonotic.de - Xonotic Germany
+    #xonotic.fr - Xonotic France
+    #xonotic.na - Xonotic North America
+    #xonotic.ru - Xonotic Russia
+    #xonotic.sp - Xonotic Spanish
+
+Clan channels:
+
+    #bot.xonotic         - BOT
+    #cf.etqw             - Combat Folk
+    #clanexe             - .exe
+    #dietunichtguten     - Die Tunichtguten
+    #evil.ant.colony     - Evil Ant Colony
+    #hater.xonotic       - The Haters
+    #Lover               - Lovers
+    #kwestion            - Kwestion
+    #mon.xonotic         - Monks of Nexuiz
+    #nsb.nexuiz          - NSB - The Dyslexic Loser Mob
+    #OHSNAP!             - OHSNAP!
+    #pb.xonotic          - PeaceBrothers
+    #psyx                - Psychos of Xonotic
+    #sh.nexuiz           - Shell
+    #smb                 - Super Mario Brothers
+    #smokebreak          - Smoke Break
+    #theregulars         - The Regulars
+    #uc.xonotic          - unconnected
+    #xonotic.butt        - BUTT
+    #xon.fsmp            - FSMP
+
+Server channels:
+
+    #clanexe           - .exe servers
+    #dtg.ctf           - Die Tunichtguten server (Insta CTF)
+    #eac.xonotic       - Evil Ant Colony servers
+    #element.ctf       - LMNT servers
+    #eris.xonotic      - Eris votable - the best motherfucking xon server
+    #jeff-xonotic      - Jeff servers
+    #mon.sa            - LX' Overkill (formerly MoN servers (Overkill + Vehicle))
+    #pac.xon           - WTWRP, FPS, pacman non-Duel servers
+    #Prophets.DM       - Prophets DM server
+    #Prophets.Duel     - Prophets Insta 1v1 server
+    #Prophets.XDF      - Prophets DeFrag server
+    #psyx.servers      - PsyX servers
+    #regulars.servers  - More The Regulars servers
+    #smb.1v1           - HUB Duel servers
+    #theregulars       - The Regulars InstaGib server
+    #wtwrp.ok          - WTWRP Overkill
+    #xdf               - Xonotic DeFrag server
+    #xonorun           - Gnom servers
+    #xonotic.smb       - SMB servers
+
+### ARCNet (irc.arcnet.vapor.com:6667)
+
+    #dcc.admins - DCC Admins
+    #dccdelight - DCC Delight servers
+
+### GlobalGamers (irc.globalgamers.net:6667)
+
+    #xonotic - General channel
+
+Jabber XMPP MUCs
+----------------
+
+    xonotic at conf.jabberes.org - Spanish channel
+    xonotic at conference.jabber.ru - Russian channel
+    xonotic at conference.jabber.org - English channel
+
+Discord (unofficial)
+-------
+
+[invite link](https://discordapp.com/invite/0uxcsw1XMkaOB936)
+
+Some channels are bridged to QuakeNet IRC:
+
+| Discord | QuakeNet IRC |
+| ------ | ------ |
+| #general | #xonotic |
+| #mapping | #xonotic.editing |
+| #tournaments | #xonotic.cup |
+| #xonotic_pickup | #xonotic.pickup |
+| #stream_announcements | #xonotic.streams |
+| #french | #xonotic.fr |
+| #german | #xonotic.de |
+| #russian | #xonotic.ru |
+| #spanish | #xonotic.sp |
+
+General IRC info and rules
+--------------------------
+
+### About
+
+Internet Relay Chat is one of the oldest methods for instant communication on the Internet. Interconnected Servers form a Network to which you can log on with an IRC client and provides channels (similar to conference calls or chats) where you can communicate with all others on the same channel in realtime and it’s possible to join and be present on multiple channels in parallel.
+
+Channels are synchronized across all servers of the same network, but not across Networks. Channels with the same name on different Networks are completely independent.
+Most modern IRC clients also allow you to connect to several networks in parallel.
+
+### Help
+
+Be conscious about security when connecting to any IRC network. Following these three rules will keep you out if trouble:
+
+1.  Don’t ever IRC as root! On Windows, don’t use an administrator account.
+2.  Don’t just click or open any link that gets posted unless you are sure it is safe.
+     Don’t type commands into your client or chatwindow that others tell you to. Verify it’s safe to do so or evil things might happen.
+3.  Especially if you want to stay around for longer on a network, get a bouncer or cloak.
+
+How to get a cloak depends on the network you are on. This normally means registering your nick on the network and setting some usermodes, then will prevent others from seeing your real IP address so you are less likely to get attacked for whatever reasons. Find your networks help channel and ask there if you can’t figure it otherwise.
+Some networks don’t provide this service, you might want to think twice before going there without a bouncer.
+You can also connect through Tor or a different anonymity service to hide your real whereabouts. But you might be blocked from some channels because these services are often used by spammers and other strange individuals.
+If you are paranoid your connection might get tapped or rerouted, most serious networks also provide SSL connections on port 7000 so you can be sure to have some privacy from your ISP. Also a good idea if you surf on WLANs or open networks.
+
+### Rules
+
+IRC has it’s own strange set of rules and etiquette. Newcomers without that knowledge often find it troublesome and frustrating until they get the hang of things.
+Here are the most important rules to get you started.
+
+-   Be patient.
+
+People are often connected 24/7 and simply seeing them in a channel does not imply they are actually in front of their computer or watching the chat window all the time. Depending on channel and timezones of others, it might be hours until you get a reply.
+
+-   Don’t ask to ask. Just ask.
+
+Noone likes to answer meta questions. Or nobody might be there to answer it. Waiting for it will just take you longer to get your real question answered.
+If you just ask your question someone who can help will likely speak up.
+Also don’t direct a generic question at someone if you don’t really mean to. Others who might know an answer and could help you are likely to ignore you then.
+
+-   Don’t be rude. Don’t be demanding.
+
+Especially on help channels where people help you out on their free time, this will likely get you ignored very fast or even kicked from the channel.
+It is also considered rude to highlight (typing other peoples names) someone repeatedly to get their attention.
+
+-   Don’t repeat yourself.
+
+This goes mostly for help channels, but repeating a question multiple times within minutes doesn’t get you an answer any faster.
+This is also considered rude and more likely will get you ignored.
+People who have been away tend to read their chat history or backlog and will get back to you on their own.
+But on a very busy channel, your text might get overlooked and you can repeat it after waiting an appropriate time.
\ No newline at end of file
diff --git a/Comms-Rules-[draft].md b/Comms-Rules-[draft].md
new file mode 100644 (file)
index 0000000..c3617f2
--- /dev/null
@@ -0,0 +1,16 @@
+This document applies to communication channels moderated by the Xonotic Team: 
+- #xonotic on Freenode's IRC network
+- #xonotic on QuakeNet's IRC network
+- #xonotic.pickup on QuakeNet's IRC network
+- #xonotic.cup on QuakeNet's IRC network
+- #xonotic.editing on QuakeNet's IRC network
+- All forums found at forums.xonotic.org
+
+The following are prohibited and punishable by banishment:
+- Invective targeting persons;
+- Threats, incitement or support of abuse or violence;
+- Defamation, doxxing, harassment;
+- Malicious code or shell commands;
+- Spam;
+- Links to content prohibited herein;
+- Ban evasion.
diff --git a/Compiling.md b/Compiling.md
new file mode 100644 (file)
index 0000000..1b54a8d
--- /dev/null
@@ -0,0 +1,19 @@
+This page is about compiling the sources included in [stable](https://xonotic.org/download) and [beta](Autobuilds) releases, and is also applicable when [updating by rsync](https://xonotic.org/download#upgrading).  \r
+For development purposes (git builds), please see [Repository_Access](Repository_Access).\r
+\r
+The release Makefile aims to provide a convenient way to compile for alternative CPU architectures, or to get a build fully optimised for a recent x86 CPU (the official binaries are generic x86_64).  It would also allow you to run Xonotic on an OS too old to be supported by official binaries.\r
+\r
+To this end the Makefile default settings enable all optimisations that can be used on your current CPU without causing bugs, and compile using all available CPU threads.\r
+\r
+The engine builds will be dynamically linked except for d0_blind_id which is statically linked to ensure reliable player ID support and because OS distributions don't ship this.\r
+\r
+Invoking `make` or `make help` in the Xonotic directory will print the supported targets and current config.  \r
+\r
+**Most people will want `make update-stable client` or `make update-beta client`**\r
+\r
+## System package dependencies\r
+### Debian\r
+Build (client): `build-essential automake libtool libgmp-dev libjpeg-dev libsdl2-dev`  \r
+Build (server): `build-essential automake libtool libgmp-dev libjpeg-dev zlib1g-dev`  \r
+Runtime (client): `curl rsync libpng16-16 libfreetype6 libvorbisfile3`  \r
+Runtime (server): `curl rsync libpng16-16`  \r
diff --git a/Complete-list-of-command-line-parameters.md b/Complete-list-of-command-line-parameters.md
deleted file mode 100644 (file)
index 31f3f6a..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-Complete list of command line parameters
-========================================
-
-Common options
---------------
-
--   **`-connect` address:** Talk to a NetRadiant instance using a specific XML based protocol
--   **`-force`:** Allow reading some broken/unsupported BSP files e.g. when decompiling, may also crash
--   **`-fs_basepath` path:** Sets the given path as main directory of the game (can be used more than once to look in multiple paths)
--   **`-fs_game` gamename:** Sets a different game directory name (default for Q3A: baseq3)
--   **`-fs_homebase` dir:** Specifies where the user home directory name is on Linux (default for Q3A: .q3a)
--   **`-game` gamename:** Load settings for the given game (default: quake3)
--   **`-subdivisions` F:** multiplier for patch subdivisions quality
--   **`-threads` N:** number of threads to use
--   **`-v`:** Verbose mode
-
-BSP stage
----------
-
--   **`-bsp` ... filename.map:** Switch that enters this stage
--   **`-altsplit`:** Alternate BSP tree splitting weights (should give more fps)
--   **`-celshader` shadername:** Sets a global cel shader name
--   **`-custinfoparms`:** Read scripts/custinfoparms.txt
--   **`-debuginset`:** Push all triangle vertexes towards the triangle center
--   **`-debugportals`:** Make BSP portals visible in the map
--   **`-debugsurfaces`:** Color the vertexes according to the index of the surface
--   **`-deep`:** Use detail brushes in the BSP tree, but at lowest priority (should give more fps)
--   **`-de` F:** Distance epsilon for plane snapping etc.
--   **`-fakemap`:** Write fakemap.map containing all world brushes
--   **`-flares`:** Turn on support for flares (TEST?)
--   **`-flat`:** Enable flat shading (good for combining with -celshader)
--   **`-fulldetail`:** Treat detail brushes as structural ones
--   **`-leaktest`:** Abort if a leak was found
--   **`-meta`:** Combine adjacent triangles of the same texture to surfaces (ALWAYS USE THIS)
--   **`-minsamplesize` N:** Sets minimum lightmap resolution in luxels/qu
--   **`-mi` N:** Sets the maximum number of indexes per surface
--   **`-mv` N:** Sets the maximum number of vertices of a lightmapped surface
--   **`-ne` F:** Normal epsilon for plane snapping etc.
--   **`-nocurves`:** Turn off support for patches
--   **`-nodetail`:** Leave out detail brushes
--   **`-noflares`:** Turn off support for flares
--   **`-nofog`:** Turn off support for fog volumes
--   **`-nohint`:** Turn off support for hint brushes
--   **`-nosubdivide`:** Turn off support for `q3map_tessSize` (breaks water vertex deforms)
--   **`-notjunc`:** Do not fix T-junctions (causes cracks between triangles, do not use)
--   **`-nowater`:** Turn off support for water, slime or lava (Stef, this is for you)
--   **`-np` A:** Force all surfaces to be nonplanar with a given shade angle
--   **`-onlyents`:** Only update entities in the BSP
--   **`-patchmeta`:** Turn patches into triangle meshes for display
--   **`-rename`:** Append “bsp” suffix to miscmodel shaders (needed for SoF2)
--   **`-samplesize` N:** Sets default lightmap resolution in luxels/qu
--   **`-skyfix`:** Turn sky box into six surfaces to work around ATI problems
--   **`-snap` N:** Snap brush bevel planes to the given number of units
--   **`-tempname` filename.map:** Read the MAP file from the given file name
--   **`-texrange` N:** Limit per-surface texture range to the given number of units, and subdivide surfaces like with `q3map_tessSize` if this is not met
--   **`-tmpout`:** Write the BSP file to /tmp
--   **`-verboseentities`:** Enable `-v` only for map entities, not for the world
-
-VIS stage
----------
-
--   **`-vis` ... filename.map:** Switch that enters this stage
--   **`-fast`:** Very fast and crude vis calculation
--   **`-mergeportals`:** The less crude half of `-merge`, makes vis sometimes much faster but doesn’t hurt fps usually
--   **`-merge`:** Faster but still okay vis calculation
--   **`-nopassage`:** Just use PortalFlow vis (usually less fps)
--   **`-nosort`:** Do not sort the portals before calculating vis (usually slower)
--   **`-passageOnly`:** Just use PassageFlow vis (usually less fps)
--   **`-saveprt`:** Keep the PRT file after running vis (so you can run vis again)
--   **`-tmpin`:** Use /tmp folder for input
--   **`-tmpout`:** Use /tmp folder for output
-
-LIGHT stage
------------
-
--   **`-light` ... filename.map:** Switch that enters this stage
--   **`-vlight` ... filename.map:** Deprecated alias for `-light -fast` ... filename.map
--   **`-approx` N:** Vertex light approximation tolerance (never use in conjunction with deluxemapping)
--   **`-areascale` F, `-area` F:** Scaling factor for area lights (surfacelight)
--   **`-border`:** Add a red border to lightmaps for debugging
--   **`-bouncegrid`:** Also compute radiosity on the light grid
--   **`-bounceonly`:** Only compute radiosity
--   **`-bouncescale` F:** Scaling factor for radiosity
--   **`-bounce` N:** Number of bounces for radiosity
--   **`-cheapgrid`:** Use `-cheap` style lighting for radiosity
--   **`-cheap`:** Abort vertex light calculations when white is reached
--   **`-compensate` F:** Lightmap compensate (darkening factor applied after everything else)
--   **`-cpma`:** CPMA vertex lighting mode
--   **`-custinfoparms`:** Read scripts/custinfoparms.txt
--   **`-dark`:** Darken lightmap seams
--   **`-debugaxis`:** Color the lightmaps according to the lightmap axis
--   **`-debugcluster`:** Color the lightmaps according to the index of the cluster
--   **`-debugdeluxe`:** Show deluxemaps on the lightmap
--   **`-debugnormals`:** Color the lightmaps according to the direction of the surface normal
--   **`-debugorigin`:** Color the lightmaps according to the origin of the luxels
--   **`-debugsurfaces`, `-debugsurface`:** Color the lightmaps according to the index of the surface
--   **`-debugunused`:** This option does nothing
--   **`-debug`:** Mark the lightmaps according to the cluster: unmapped clusters get yellow, occluded ones get pink, flooded ones get blue overlay color, otherwise red
--   **`-deluxemode 0`:** Use modelspace deluxemaps (DarkPlaces)
--   **`-deluxemode 1`:** Use tangentspace deluxemaps
--   **`-deluxe`, `-deluxemap`:** Enable deluxemapping (light direction maps)
--   **`-dirtdebug`, `-debugdirt`:** Store the dirtmaps as lightmaps for debugging
--   **`-dirtdepth`:** Dirtmapping depth
--   **`-dirtgain`:** Dirtmapping exponent
--   **`-dirtmode 0`:** Ordered direction dirtmapping
--   **`-dirtmode 1`:** Randomized direction dirtmapping
--   **`-dirtscale`:** Dirtmapping scaling factor
--   **`-dirty`:** Enable dirtmapping
--   **`-dump`:** Dump radiosity from `-bounce` into numbered MAP file prefabs
--   **`-export`:** Export lightmaps when compile finished (like `-export` mode)
--   **`-exposure` F:** Lightmap exposure to better support overbright spots
--   **`-external`:** Force external lightmaps even if at size of internal lightmaps
--   **`-extravisnudge`:** Broken feature to nudge the luxel origin to a better vis cluster
--   **`-extrawide`:** Deprecated alias for `-super 2 -filter`
--   **`-extra`:** Deprecated alias for `-super 2`
--   **`-fastbounce`:** Use `-fast` style lighting for radiosity
--   **`-faster`:** Use a faster falloff curve for lighting; also implies `-fast`
--   **`-fastgrid`:** Use `-fast` style lighting for the light grid
--   **`-fast`:** Ignore tiny light contributions
--   **`-filter`:** Lightmap filtering
--   **`-floodlight`:** Enable floodlight (zero-effort somewhat decent lighting)
--   **`-gamma` F:** Lightmap gamma
--   **`-gridambientscale` F:** Scaling factor for the light grid ambient components only
--   **`-gridscale` F:** Scaling factor for the light grid only
--   **`-keeplights`:** Keep light entities in the BSP file after compile
--   **`-lightmapdir` directory:** Directory to store external lightmaps (default: same as map name without extension)
--   **`-lightmapsize` N:** Size of lightmaps to generate (must be a power of two)
--   **`-lomem`:** Low memory but slower lighting mode
--   **`-lowquality`:** Low quality floodlight (appears to currently break floodlight)
--   **`-minsamplesize` N:** Sets minimum lightmap resolution in luxels/qu
--   **`-nocollapse`:** Do not collapse identical lightmaps
--   **`-nodeluxe`, `-nodeluxemap`:** Disable deluxemapping
--   **`-nogrid`:** Disable grid light calculation (makes all entities fullbright)
--   **`-nolightmapsearch`:** Do not optimize lightmap packing for GPU memory usage (as doing so costs fps)
--   **`-normalmap`:** Color the lightmaps according to the direction of the surface normal (TODO is this identical to `-debugnormals`?)
--   **`-nostyle`, `-nostyles`:** Disable support for light styles
--   **`-nosurf`:** Disable tracing against surfaces (only uses BSP nodes then)
--   **`-notrace`:** Disable shadow occlusion
--   **`-novertex`:** Disable vertex lighting
--   **`-patchshadows`:** Cast shadows from patches
--   **`-pointscale` F, `-point` F:** Scaling factor for point lights (light entities)
--   **`-q3`:** Use nonlinear falloff curve by default (like Q3A)
--   **`-samplescale` F:** Scales all lightmap resolutions
--   **`-samplesize` N:** Sets default lightmap resolution in luxels/qu
--   **`-samples` N:** Adaptive supersampling quality
--   **`-scale` F:** Scaling factor for all light types
--   **`-shadeangle` A:** Angle for phong shading
--   **`-shade`:** Enable phong shading at default shade angle
--   **`-skyscale` F, `-sky` F:** Scaling factor for sky and sun light
--   **`-smooth`:** Deprecated alias for `-samples 2`
--   **`-style`, `-styles`:** Enable support for light styles
--   **`-sunonly`:** Only compute sun light
--   **`-super` N, `-supersample` N:** Ordered grid supersampling quality
--   **`-thresh` F:** Triangle subdivision threshold
--   **`-trianglecheck`:** Broken check that should ensure luxels apply to the right triangle
--   **`-trisoup`:** Convert brush faces to triangle soup
--   **`-wolf`:** Use linear falloff curve by default (like W:ET)
-
-Analyzing BSP-like file structure
----------------------------------
-
--   **`-analyze` ... filename.bsp:** Switch that enters this mode
--   **`-lumpswap`:** Swap byte order in the lumps
-
-Converting & Decompiling
-------------------------
-
--   **`-convert` ... filename.bsp:** Switch that enters this mode
--   **`-de` number:** Distance epsilon for the conversion
--   **`-format` converter:** Select the converter (available: map, ase, or game names)
--   **`-ne` F:** Normal epsilon for the conversion
--   **`-shadersasbitmap`:** (only for ase) use the shader names as \*BITMAP key so they work as prefabs
-
-Exporting lightmaps
--------------------
-
--   **`-export` filename.bsp:** Copies lightmaps from the BSP to `filename/lightmap_0000.tga` ff
-
-Fixing AAS checksum
--------------------
-
--   **`-fixaas` filename.bsp:** Switch that enters this mode
-
-Get info about BSP file
------------------------
-
--   **`-info` filename.bsp:** Switch that enters this mode
-
-Importing lightmaps
--------------------
-
--   **`-import` filename.bsp:** Copies lightmaps from `filename/lightmap_0000.tga` ff into the BSP
-
-MiniMap
--------
-
--   **`-minimap` ... filename.bsp:** Creates a minimap of the BSP, by default writes to `../gfx/filename_mini.tga`
--   **`-black`:** Write the minimap as a black-on-transparency RGBA32 image
--   **`-boost` F:** Sets the contrast boost value (higher values make a brighter image); contrast boost is somewhat similar to gamma, but continuous even at zero
--   **`-border` F:** Sets the amount of border pixels relative to the total image size
--   **`-gray`:** Write the minimap as a white-on-black GRAY8 image
--   **`-keepaspect`:** Ensure the aspect ratio is kept (the minimap is then letterboxed to keep aspect)
--   **`-minmax` xmin ymin zmin xmax ymax zmax:** Forces specific map dimensions (note: the minimap actually uses these dimensions, scaled to the target size while keeping aspect with centering, and 1/64 of border appended to all sides)
--   **`-nokeepaspect`:** Do not ensure the aspect ratio is kept (makes it easier to use the image in your code, but looks bad together with sharpening)
--   **`-o` filename.tga:** Sets the output file name
--   **`-random` N:** Sets the randomized supersampling count (cannot be combined with `-samples`)
--   **`-samples` N:** Sets the ordered supersampling count (cannot be combined with `-random`)
--   **`-sharpen` F:** Sets the sharpening coefficient
--   **`-size` N:** Sets the width and height of the output image
--   **`-white`:** Write the minimap as a white-on-transparency RGBA32 image
-
-Scaling
--------
-
--   **`-scale` S filename.bsp:** Scale uniformly
--   **`-scale` SX SY SZ filename.bsp:** Scale non-uniformly
--   **`-scale -tex` S filename.bsp:** Scale uniformly without texture lock
--   **`-scale -tex` SX SY SZ filename.bsp:** Scale non-uniformly without texture lock
-
diff --git a/Complete-list-of-q3map2-command-line-parameters.md b/Complete-list-of-q3map2-command-line-parameters.md
new file mode 100644 (file)
index 0000000..928f912
--- /dev/null
@@ -0,0 +1,219 @@
+Complete list of q3map2 command line parameters
+========================================
+
+Common options
+--------------
+
+-   **`-connect` address:** Talk to a NetRadiant instance using a specific XML based protocol
+-   **`-force`:** Allow reading some broken/unsupported BSP files e.g. when decompiling, may also crash
+-   **`-fs_basepath` path:** Sets the given path as main directory of the game (can be used more than once to look in multiple paths)
+-   **`-fs_game` gamename:** Sets a different game directory name (default for Q3A: baseq3)
+-   **`-fs_homebase` dir:** Specifies where the user home directory name is on Linux (default for Q3A: .q3a)
+-   **`-game` gamename:** Load settings for the given game (default: quake3)
+-   **`-subdivisions` F:** multiplier for patch subdivisions quality
+-   **`-threads` N:** number of threads to use
+-   **`-v`:** Verbose mode
+
+BSP stage
+---------
+
+-   **`-bsp` ... filename.map:** Switch that enters this stage
+-   **`-altsplit`:** Alternate BSP tree splitting weights (should give more fps)
+-   **`-celshader` shadername:** Sets a global cel shader name
+-   **`-custinfoparms`:** Read scripts/custinfoparms.txt
+-   **`-debuginset`:** Push all triangle vertexes towards the triangle center
+-   **`-debugportals`:** Make BSP portals visible in the map
+-   **`-debugsurfaces`:** Color the vertexes according to the index of the surface
+-   **`-deep`:** Use detail brushes in the BSP tree, but at lowest priority (should give more fps)
+-   **`-de` F:** Distance epsilon for plane snapping etc.
+-   **`-fakemap`:** Write fakemap.map containing all world brushes
+-   **`-flares`:** Turn on support for flares (TEST?)
+-   **`-flat`:** Enable flat shading (good for combining with -celshader)
+-   **`-fulldetail`:** Treat detail brushes as structural ones
+-   **`-leaktest`:** Abort if a leak was found
+-   **`-meta`:** Combine adjacent triangles of the same texture to surfaces (ALWAYS USE THIS)
+-   **`-minsamplesize` N:** Sets minimum lightmap resolution in luxels/qu
+-   **`-mi` N:** Sets the maximum number of indexes per surface
+-   **`-mv` N:** Sets the maximum number of vertices of a lightmapped surface
+-   **`-ne` F:** Normal epsilon for plane snapping etc.
+-   **`-nocurves`:** Turn off support for patches
+-   **`-nodetail`:** Leave out detail brushes
+-   **`-noflares`:** Turn off support for flares
+-   **`-nofog`:** Turn off support for fog volumes
+-   **`-nohint`:** Turn off support for hint brushes
+-   **`-nosubdivide`:** Turn off support for `q3map_tessSize` (breaks water vertex deforms)
+-   **`-notjunc`:** Do not fix T-junctions (causes cracks between triangles, do not use)
+-   **`-nowater`:** Turn off support for water, slime or lava (Stef, this is for you)
+-   **`-np` A:** Force all surfaces to be nonplanar with a given shade angle
+-   **`-onlyents`:** Only update entities in the BSP
+-   **`-patchmeta`:** Turn patches into triangle meshes for display
+-   **`-rename`:** Append “bsp” suffix to miscmodel shaders (needed for SoF2)
+-   **`-samplesize` N:** Sets default lightmap resolution in luxels/qu
+-   **`-skyfix`:** Turn sky box into six surfaces to work around ATI problems
+-   **`-snap` N:** Snap brush bevel planes to the given number of units
+-   **`-tempname` filename.map:** Read the MAP file from the given file name
+-   **`-texrange` N:** Limit per-surface texture range to the given number of units, and subdivide surfaces like with `q3map_tessSize` if this is not met
+-   **`-tmpout`:** Write the BSP file to /tmp
+-   **`-verboseentities`:** Enable `-v` only for map entities, not for the world
+
+VIS stage
+---------
+
+-   **`-vis` ... filename.map:** Switch that enters this stage
+-   **`-fast`:** Very fast and crude vis calculation
+-   **`-mergeportals`:** The less crude half of `-merge`, makes vis sometimes much faster but doesn’t hurt fps usually
+-   **`-merge`:** Faster but still okay vis calculation
+-   **`-nopassage`:** Just use PortalFlow vis (usually less fps)
+-   **`-nosort`:** Do not sort the portals before calculating vis (usually slower)
+-   **`-passageOnly`:** Just use PassageFlow vis (usually less fps)
+-   **`-saveprt`:** Keep the PRT file after running vis (so you can run vis again)
+-   **`-tmpin`:** Use /tmp folder for input
+-   **`-tmpout`:** Use /tmp folder for output
+
+LIGHT stage
+-----------
+
+-   **`-light` ... filename.map:** Switch that enters this stage
+-   **`-vlight` ... filename.map:** Deprecated alias for `-light -fast` ... filename.map
+-   **`-approx` N:** Vertex light approximation tolerance (never use in conjunction with deluxemapping)
+-   **`-areascale` F, `-area` F:** Scaling factor for area lights (surfacelight)
+-   **`-border`:** Add a red border to lightmaps for debugging
+-   **`-bouncegrid`:** Also compute radiosity on the light grid
+-   **`-bounceonly`:** Only compute radiosity
+-   **`-bouncescale` F:** Scaling factor for radiosity
+-   **`-bounce` N:** Number of bounces for radiosity
+-   **`-cheapgrid`:** Use `-cheap` style lighting for radiosity
+-   **`-cheap`:** Abort vertex light calculations when white is reached
+-   **`-compensate` F:** Lightmap compensate (darkening factor applied after everything else)
+-   **`-cpma`:** CPMA vertex lighting mode
+-   **`-custinfoparms`:** Read scripts/custinfoparms.txt
+-   **`-dark`:** Darken lightmap seams
+-   **`-debugaxis`:** Color the lightmaps according to the lightmap axis
+-   **`-debugcluster`:** Color the lightmaps according to the index of the cluster
+-   **`-debugdeluxe`:** Show deluxemaps on the lightmap
+-   **`-debugnormals`:** Color the lightmaps according to the direction of the surface normal
+-   **`-debugorigin`:** Color the lightmaps according to the origin of the luxels
+-   **`-debugsurfaces`, `-debugsurface`:** Color the lightmaps according to the index of the surface
+-   **`-debugunused`:** This option does nothing
+-   **`-debug`:** Mark the lightmaps according to the cluster: unmapped clusters get yellow, occluded ones get pink, flooded ones get blue overlay color, otherwise red
+-   **`-deluxemode 0`:** Use modelspace deluxemaps (DarkPlaces)
+-   **`-deluxemode 1`:** Use tangentspace deluxemaps
+-   **`-deluxe`, `-deluxemap`:** Enable deluxemapping (light direction maps)
+-   **`-dirtdebug`, `-debugdirt`:** Store the dirtmaps as lightmaps for debugging
+-   **`-dirtdepth`:** Dirtmapping depth
+-   **`-dirtgain`:** Dirtmapping exponent
+-   **`-dirtmode 0`:** Ordered direction dirtmapping
+-   **`-dirtmode 1`:** Randomized direction dirtmapping
+-   **`-dirtscale`:** Dirtmapping scaling factor
+-   **`-dirty`:** Enable dirtmapping
+-   **`-dump`:** Dump radiosity from `-bounce` into numbered MAP file prefabs
+-   **`-export`:** Export lightmaps when compile finished (like `-export` mode)
+-   **`-exposure` F:** Lightmap exposure to better support overbright spots
+-   **`-external`:** Force external lightmaps even if at size of internal lightmaps
+-   **`-extravisnudge`:** Broken feature to nudge the luxel origin to a better vis cluster
+-   **`-extrawide`:** Deprecated alias for `-super 2 -filter`
+-   **`-extra`:** Deprecated alias for `-super 2`
+-   **`-fastbounce`:** Use `-fast` style lighting for radiosity
+-   **`-faster`:** Use a faster falloff curve for lighting; also implies `-fast`
+-   **`-fastgrid`:** Use `-fast` style lighting for the light grid
+-   **`-fast`:** Ignore tiny light contributions
+-   **`-filter`:** Lightmap filtering
+-   **`-floodlight`:** Enable floodlight (zero-effort somewhat decent lighting)
+-   **`-gamma` F:** Lightmap gamma
+-   **`-gridambientscale` F:** Scaling factor for the light grid ambient components only
+-   **`-gridscale` F:** Scaling factor for the light grid only
+-   **`-keeplights`:** Keep light entities in the BSP file after compile
+-   **`-lightmapdir` directory:** Directory to store external lightmaps (default: same as map name without extension)
+-   **`-lightmapsize` N:** Size of lightmaps to generate (must be a power of two)
+-   **`-lomem`:** Low memory but slower lighting mode
+-   **`-lowquality`:** Low quality floodlight (appears to currently break floodlight)
+-   **`-minsamplesize` N:** Sets minimum lightmap resolution in luxels/qu
+-   **`-nocollapse`:** Do not collapse identical lightmaps
+-   **`-nodeluxe`, `-nodeluxemap`:** Disable deluxemapping
+-   **`-nogrid`:** Disable grid light calculation (makes all entities fullbright)
+-   **`-nolightmapsearch`:** Do not optimize lightmap packing for GPU memory usage (as doing so costs fps)
+-   **`-normalmap`:** Color the lightmaps according to the direction of the surface normal (TODO is this identical to `-debugnormals`?)
+-   **`-nostyle`, `-nostyles`:** Disable support for light styles
+-   **`-nosurf`:** Disable tracing against surfaces (only uses BSP nodes then)
+-   **`-notrace`:** Disable shadow occlusion
+-   **`-novertex`:** Disable vertex lighting
+-   **`-patchshadows`:** Cast shadows from patches
+-   **`-pointscale` F, `-point` F:** Scaling factor for point lights (light entities)
+-   **`-q3`:** Use nonlinear falloff curve by default (like Q3A)
+-   **`-samplescale` F:** Scales all lightmap resolutions
+-   **`-samplesize` N:** Sets default lightmap resolution in luxels/qu
+-   **`-samples` N:** Adaptive supersampling quality
+-   **`-scale` F:** Scaling factor for all light types
+-   **`-shadeangle` A:** Angle for phong shading
+-   **`-shade`:** Enable phong shading at default shade angle
+-   **`-skyscale` F, `-sky` F:** Scaling factor for sky and sun light
+-   **`-smooth`:** Deprecated alias for `-samples 2`
+-   **`-style`, `-styles`:** Enable support for light styles
+-   **`-sunonly`:** Only compute sun light
+-   **`-super` N, `-supersample` N:** Ordered grid supersampling quality
+-   **`-thresh` F:** Triangle subdivision threshold
+-   **`-trianglecheck`:** Broken check that should ensure luxels apply to the right triangle
+-   **`-trisoup`:** Convert brush faces to triangle soup
+-   **`-wolf`:** Use linear falloff curve by default (like W:ET)
+
+Analyzing BSP-like file structure
+---------------------------------
+
+-   **`-analyze` ... filename.bsp:** Switch that enters this mode
+-   **`-lumpswap`:** Swap byte order in the lumps
+
+Converting & Decompiling
+------------------------
+
+-   **`-convert` ... filename.bsp:** Switch that enters this mode
+-   **`-de` number:** Distance epsilon for the conversion
+-   **`-format` converter:** Select the converter (available: map, ase, or game names)
+-   **`-ne` F:** Normal epsilon for the conversion
+-   **`-shadersasbitmap`:** (only for ase) use the shader names as \*BITMAP key so they work as prefabs
+
+Exporting lightmaps
+-------------------
+
+-   **`-export` filename.bsp:** Copies lightmaps from the BSP to `filename/lightmap_0000.tga` ff
+
+Fixing AAS checksum
+-------------------
+
+-   **`-fixaas` filename.bsp:** Switch that enters this mode
+
+Get info about BSP file
+-----------------------
+
+-   **`-info` filename.bsp:** Switch that enters this mode
+
+Importing lightmaps
+-------------------
+
+-   **`-import` filename.bsp:** Copies lightmaps from `filename/lightmap_0000.tga` ff into the BSP
+
+MiniMap
+-------
+
+-   **`-minimap` ... filename.bsp:** Creates a minimap of the BSP, by default writes to `../gfx/filename_mini.tga`
+-   **`-black`:** Write the minimap as a black-on-transparency RGBA32 image
+-   **`-boost` F:** Sets the contrast boost value (higher values make a brighter image); contrast boost is somewhat similar to gamma, but continuous even at zero
+-   **`-border` F:** Sets the amount of border pixels relative to the total image size
+-   **`-gray`:** Write the minimap as a white-on-black GRAY8 image
+-   **`-keepaspect`:** Ensure the aspect ratio is kept (the minimap is then letterboxed to keep aspect)
+-   **`-minmax` xmin ymin zmin xmax ymax zmax:** Forces specific map dimensions (note: the minimap actually uses these dimensions, scaled to the target size while keeping aspect with centering, and 1/64 of border appended to all sides)
+-   **`-nokeepaspect`:** Do not ensure the aspect ratio is kept (makes it easier to use the image in your code, but looks bad together with sharpening)
+-   **`-o` filename.tga:** Sets the output file name
+-   **`-random` N:** Sets the randomized supersampling count (cannot be combined with `-samples`)
+-   **`-samples` N:** Sets the ordered supersampling count (cannot be combined with `-random`)
+-   **`-sharpen` F:** Sets the sharpening coefficient
+-   **`-size` N:** Sets the width and height of the output image
+-   **`-white`:** Write the minimap as a white-on-transparency RGBA32 image
+
+Scaling
+-------
+
+-   **`-scale` S filename.bsp:** Scale uniformly
+-   **`-scale` SX SY SZ filename.bsp:** Scale non-uniformly
+-   **`-scale -tex` S filename.bsp:** Scale uniformly without texture lock
+-   **`-scale -tex` SX SY SZ filename.bsp:** Scale non-uniformly without texture lock
+
diff --git a/Creating-bot-waypoints.md b/Creating-bot-waypoints.md
new file mode 100644 (file)
index 0000000..bce3aeb
--- /dev/null
@@ -0,0 +1,191 @@
+Xonotic bots require waypoints to roam about the map and find items such as CTF flags, weapons and health packs. In this guide we are gonna see how to create a good network of waypoints for them.
+
+## Creating waypoints
+
+#### Selecting the proper game mode
+
+First of all you need to know what game modes are supported by the map you are going to waypoint and start the appropriated mode. To know this information you can right click on a map in the map list (menu / Singleplayer / Create window). For a map to appear in that list you need to put its .pk3 file in your ${xon_settings}/data/ directory.
+
+* If a map supports **CTF**, you should start a CTF game since the editor automatically adds a waypoint for each flag. CTF waypoints are compatible with other modes (except Race and Assault) but keep in mind that waypoints of flags and all links from/to them will not be loaded in other modes. It's highly recommended to enable symmetrical editing on symmetrical maps as described in the [Symmetrical editing](https://gitlab.com/xonotic/xonotic/-/wikis/Creating-bot-waypoints#symmetrical-editing) section below.
+
+* If a map supports **Assault**, you should start an Assault game and destroy all the objective but the last one before editing waypoints because otherwise there are doors / obstacles that block paths to other parts of the map. If you forget to do so, don't worry, you can make up by relinking all the waypoints with `wpeditor relinkall` after having destroyed all the objectives.
+
+* If a map supports **Race or Race CTS and other modes** and if the map has the same layout in Race mode (some maps enable a completely different layout. e.g. Stormkeep) it's recommended to first edit and save waypoints for other modes (usually DM or CTF) so that whenever you start editing Race waypoints you can start from the existing ones. Once you save them in Race mode they become independent from the generic ones.
+
+* If a map supports **only Race or Race CTS** you should start a Race game since the editor automatically adds waypoints for every check point. Saved waypoints are specific for this mode.
+
+* For **all other game modes** you should start a DM game.
+
+## Configuration
+
+* Commands to edit waypoints:
+```
+wpeditor spawn               spawns a normal waypoint where you are standing
+wpeditor remove              removes the nearest waypoint
+wpeditor saveall             saves all waypoints and links
+wpeditor relinkall           relinks all waypoints
+wpeditor unreachable         determines waypoints, items and spawnpoints that can't be reached from the current position
+wpeditor spawn crosshair     spawns a waypoint at crosshair's position (in general useful to create special and hardwired links with ease from existing waypoints, in particular it's the only way to create custom jumppad waypoints (spawn another waypoint to create destination))
+wpeditor spawn jump          spawns a jump waypoint (spawn another waypoint to create destination)
+wpeditor spawn crouch        spawns a crouch waypoint
+wpeditor spawn support       spawns a support waypoint (spawn another waypoint to create destination from which all incoming links are removed), useful to replace links to problematic jumppad/teleport waypoints
+wpeditor hardwire            marks the nearest waypoint as origin of a new hardwired link (spawn another waypoint over an existing one to create destination)
+wpeditor hardwire crosshair  marks the waypoint at crosshair instead of the nearest waypoint
+```
+
+You can easily run all these commands and also toggle various useful settings in the waypoint editor menu (bind it to a key of your liking in the menu / Settings / Input window).
+
+To your convenience I set up a config file with all the commands described in this guide (and more) bound to keys in an alternative bindmap so that your default keys won't be overriden. Save [th_waypointeditor_config.cfg](uploads/af2f46e366956e6ec336515564664d42/th_waypointeditor_config.cfg) into your data directory, open it in a text editor if you want to change keys then in the Xonotic console run `fs_rescan` and `exec th_waypointeditor_config.cfg`. From now on to enable keys and settings on the fly you can just exec `th_waypointeditor_enable` to enable the waypoint editor and `th_waypointeditor_disable` to disable it (instead of toggling the g_waypointeditor cvar).
+
+#### Add / edit waypoints
+
+* Waypoint types:
+
+| Color | description |
+| ------ | ------ |
+| White  | normal waypoints                                                                                                       |
+| Yellow | autogenerated waypoint (jumppads, teleporters, warpzones, ladders)                                                     |
+| Red    | autogenerated waypoint for certain items that are crucial for the current game mode (e.g. CTF flags, Race checkpoints) |
+| Purple | waypoint with one or more hardwired (outgoing) links                                                                   |
+| Orange | Jump and Custom jumppad waypoints                                                                                      |
+| Cyan   | Crouch waypoint                                                                                                        |
+| Green  | Support waypoint (useful to replace incoming links of a problematic teleport / jumppad)                                |
+
+|  Normal waypoint |  Support waypoint |
+| :------: | :------: |
+| ![normal_wp](uploads/9573c68889648122385609f314b1f077/normal_wp.jpg)  | ![support_wp](uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg) |
+| Links to all the waypoints (except the teleporter waypoint which has a support waypoint) | Links only to the destination waypoint (the teleporter waypoint which can't have any other incoming link) |
+
+| Hardwired waypoint | Crouch waypoint |
+| :------: | :------: |
+| ![hardwired_wp](uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg) | ![crouch_wp](uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg) |
+| Normal waypoint with one or more hardwired link | Links to all the waypoints within 100 qu range |
+
+| Jump waypoint | Jump waypoint linked to a Crouch waypoint |
+| :------: | :------: |
+| ![jump_wp](uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg) | ![jump_wp_to_crouch_wp](uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg) |
+| Links only to the destination waypoint(s) | Links only to the destination waypoint(s) |
+
+Enable the waypoint editor with `g_waypointeditor 1` or `th_waypointeditor_enable`, start a map and become a player to be able to edit waypoints.
+
+If there are no user-made waypoints you can see only the autogenerated ones (yellow and red).
+Start by adding normal waypoints with the command `wpeditor spawn`, the editor will then automatically generate links between them. Outgoing links are displayed as lightnings popping out from the nearest waypoint, if you want to see the incoming links you have to hold the `CROUCH` key down (default key: SHIFT).
+
+A link from waypoint A to waypoint B means that a bot can theoretically safely walk from A to B (it can even jump obstacles but not gaps), even though in practice it depends on waypoint position and bot skill: bot may face some difficulties, for example if too close to a ledge or turning while approaching to A. In general to avoid bad surprises you shouldn't put waypoints too close to wall edges, gaps or dangerous places.
+
+It's recommended to add waypoints near items that bots often run to such as powerups, weapons and health/armor packs. When you spawn a waypoint really close to an item it gets automatically snapped to its origin. If not desired, this behavior can be turned off on the fly by holding the `CROUCH` key down (default key: SHIFT) when you create a waypoint.
+
+Bots can swim too if you put waypoints in the water or even above the water surface, which is preferable since players can move faster jumping over the water.
+
+Use the command `wpeditor saveall` to save waypoints and links, preferably run this command periodically to avoid accidental loss of waypoints you have added since the last save.  
+It will generate 3 files in your data directory:
+* `data/data/maps/<mapname>.waypoints` containing waypoints data
+* `data/data/maps/<mapname>.waypoints.cache` containing links data
+* `data/data/maps/<mapname>.waypoints.hardwired` containing hardwired and special links data
+
+In Race or Race CTS mode, you will get these files instead:
+* `data/data/maps/<mapname>.race.waypoints`
+* `data/data/maps/<mapname>.race.waypoints.cache`
+* `data/data/maps/<mapname>.race.waypoints.hardwired`
+
+#### Symmetrical editing:
+
+The waypoint editor has a very useful editing mode that halves time required to waypoint symmetrical maps (mostly the CTF ones): every time you spawn / remove a waypoint, the same operation is repeated on its symmetrical position.
+
+First of all you need to figure out the map symmetry:
+
+1. **Point reflection**: the most common among Xonotic maps (Dance, Implosion, Geoplanetary), half part of the map is (horizontally) rotated by 180 degrees around a point (origin) that is the center of the map.
+1. **Reflectional symmetry**: less common (Runningman CTF), half part of the map is a mirror-image of the other one, the axis of symmetry is in the mirror-line.
+1. **Rotational symmetry** (of order 3 or greater): rarely used as it needs 3 or more flags (gasoline_3teams, gasoline_4teams). With order 3 a part of the map is rotated twice by 120 and 240 degrees around a point (origin) that is the center of the map.
+
+_Automatic calculation_
+
+On CTF maps that are perfectly symmetrical, if you think map symmetry is 1) or 3) use `g_waypointeditor_symmetrical 1`, if you think it's 2) use `g_waypointeditor_symmetrical 2`.
+Check that the symmetry settings are correct by spawning some test waypoints and checking that the symmetrical waypoints are spawned *exactly* where they should be: if they respect map symmetry then you are ready to waypoint the map.
+
+_Manual calculation_
+
+On non-CTF maps or if automatically calculated symmetry doesn't work well (symmetrical waypoints can't be found or are in a wrong position) it's possible to manually determine the origin or axis of symmetry with the commands `wpeditor symorigin get|set p1 p2 ... pX` and `wpeditor symaxis get|set p1 p2` where p1 p2 ... pX are positions "x y z" that you know are perfectly symmetrical. With `get` values of origin / axis are printed to the console, with `set` values of origin / axis are applied immediately (saved to the g_waypointeditor_symmetrical_* cvars).
+
+To find perfectly symmetrical positions, you can go to a place of the map where you are blocked and can't move further away from origin / axis of symmetry, e.g. the corner of a room, print the origin of your player model to console for example with "say %o" or by spawning and removing a temporary waypoint, move to the symmetrical place of the map and do the same.
+
+Before calculating and applying symmetry settings from those positions, make sure there is no user-made waypoint on the map, you have to manually remove them because they lack the corresponding symmetrical waypoint. To calculate and apply symmetry settings, use the appropriated `set` command with those positions as parameters.
+
+Example 1:
+```
+p1: "-700 -2000 600"
+p2: "700 -2000 600"
+wpeditor symaxis set "-700 -2000 600" "700 -2000 600"
+```
+Output:
+```
+Axis of symmetry based on input points: "-1400000000 2000"
+ saved to g_waypointeditor_symmetrical_axis
+g_waypointeditor_symmetrical has been set to -2
+```
+
+Example 2:
+```
+p1: "-500 -1000 200"
+p2: "500 1000 200"
+wpeditor symorigin set "-500 -1000 200" "500 1000 200"
+```
+
+Output:
+```
+Origin of symmetry based on input points: "0 0"
+ saved to g_waypointeditor_symmetrical_origin
+Order of symmetry: 2
+ saved to g_waypointeditor_symmetrical_order
+g_waypointeditor_symmetrical has been set to -1
+```
+
+Spawn and verify some test waypoint to make sure the calculated settings are correct before proceeding waypointing the map.
+
+The symmetry settings are saved to the waypoint files and automatically reloaded from there when you restart the map.
+
+#### Advanced editing
+
+* *Hardwired links*  
+There are paths that bot can actually walk but the editor refuses to link due to small gaps or dangers. To link these kind of paths you can add a hardwired link with `wpeditor hardwire`: marks the nearest waypoint as origin of a new hardwired link (spawn another waypoint over an existing one to create destination).
+
+* *Jump waypoint and linking*  
+To create a jump waypoint you can use the command `wpeditor spawn jump` 60-80 qu before the edge depending on jump length then spawn a normal waypoint as destination waypoint on the other side of the gap. Note that jump waypoints (like jumppad waypoints) don't have any other normal outgoing link. Multiple jump links can be added to the same jump waypoint calling the command `wpeditor spawn jump` in the very same position of an existing jump waypoint and creating another normal waypoint as destination. You can recycle an existing destination waypoint as well by spawning a destination waypoint over an existing one.
+
+* *Custom jumppad waypoint and linking*  
+Sometimes jumppads with a vertical jump trajectory don't have any automatically generated link, you can manually make them usable by bots by adding a custom jumppad waypoint in this way: aim at a jumppad and spawn a waypoint with the command `wpeditor spawn crosshair` then spawn a normal waypoint on the desired destination point. Some testing is needed to make sure bots can really use it and reach the destination waypoint.  
+With the same procedure it's possible to change destination waypoint of an automatically linked jumppad, for example when the destination waypoint is in a too dangerous position.
+
+* *Spawn waypoint at crosshair*  
+The command spawning a waypoint at crosshair is very handy to add more jump links to a jump waypoint: simply aim at the jump waypoint and run `wpeditor spawn crosshair`, then aim at the desired destination waypoint and run the same command. To create a new hardwire link with ease you can use the command `wpeditor hardwire crosshair` to mark the aimed waypoint as origin, then `wpeditor spawn crosshair` to mark the aimed waypoint as destination.
+
+* *Crouch waypoint and linking*  
+To create a crouch waypoint you can use the command `wpeditor spawn crouch`. They are automatically linked to other waypoints but only if really close (less than 100 qu).
+
+* *Support waypoint and linking*  
+Some teleporters and jumppads refuse to create links from waypoints that aren't in front of them, to fix them you can create a support waypoint: spawn it very close to the problematic waypoint with the command `wpeditor spawn support`, then aim at the problematic teleporter / jumppad waypoint and execute `wpeditor spawn crosshair` to create a special link that is exclusive for that teleporter / jumppad. Since the support waypoint doesn't have any other outgoing link, bots will always use it as intermediate waypoint to reach the problematic waypoint. If you used a normal waypoint instead, it would create a lot of useless outgoing links.
+
+
+## Optimizing waypoints
+
+The less links / waypoints you add, the better because in game every bot takes up quite some processing power to determine the best path for a goal.
+To do so check that every waypoint is linked to as many waypoints as possible and remove redundant waypoints. Sometimes moving a waypoint a few qu (quake units) away is enough to create another link while keeping other links. For fine adjustments it's useful a key that temporarily sets slowmo to 0.1.
+If you want to examine better links of a certain waypoint you can lock link view by aiming at it and running the command `wpeditor lock` (to unlock it run the same command again while aiming somewhere else).
+
+Make sure most of the important items (weapons, health / armor packs) have a waypoint very close to them as it helps to speed up initial path search. In particular, for this optimization to work the nearest waypoint of an item should be within 50 qu from where the bot touches the item (sometimes depending on map layout an item can be reached only coming from a single direction). When possible use item waypoints as path waypoints so to keep waypoint count as low as possible.
+
+Use the command `wpeditor unreachable` to reveal waypoints and items unreachable from your current position; it will also reveal spawnpoints without a nearest waypoint where bots would stand still after spawning. Unconnected waypoints/items will appear with a different color and a detailed report is printed to console too. To restore correct waypoint colors you can either (save waypoints and) restart the map or run `wpeditor relinkall`.
+
+
+## Testing waypoints with bots
+
+Recomended settings:
+```
+bot_nofire 1
+bot_debug_goalstack 1
+skill 4
+bot_number 1
+```
+
+Check how well bot navigates the map with your waypoints: add a single bot with medium skills (`skill 4`) and spectate it (preferably in free third person view by pressing `BACKSPACE` twice so you can control camera angles with your mouse); if you notice it takes weird paths (zigzags), gets stuck, bumps into walls, falls down or can't jump an obstacle then you have to adjust waypoints to create more reliable links.
+It is also a good idea to test how high skilled bots behave as they can bunnyhop (skill 7 and higher) and sometimes they can lose control.
\ No newline at end of file
index 8777d02182b4708238e33980a6e298216e4e85f7..d1625fb1bec272a65e4c849ddc87d1832c994c3e 100644 (file)
@@ -8,8 +8,8 @@ You are welcome to update or improve them.)_
 
 **Main Page**
 
-This wiki was created in an effort to document the [Darkplaces engine](https://icculus.org/twilight/darkplaces/), created by Forest "LordHavoc" Hale.
-Anyone with a certain knowledge of Darkplaces and it's workings/features is welcome to give their input. Welcome to the Darkplaces Documentation Wiki!  
+This wiki was created in an effort to document the [Darkplaces engine](https://icculus.org/twilight/darkplaces/), created by Ashley Rose "LadyHavoc" Hale.
+Anyone with a certain knowledge of Darkplaces and it's workings/features is welcome to give their input. Welcome to the Darkplaces Documentation Wiki!
 
 Darkplaces Engine
 =================
@@ -38,6 +38,7 @@ Commercial Games
 ================
 
 -   [Steel Storm](http://steel-storm.com/)
+-   [WRATH: Aeon of Ruin](http://www.wrath.game/)
 
 Standalone Mods / Free Games
 ============================
@@ -48,3 +49,8 @@ Standalone Mods / Free Games
 -   [GPL Nexuiz](http://www.alientrap.org/nexuiz/)
 -   [Blood Omnicide](http://www.legacy-of-kain.ru/bo1/omnicide_eng.shtml)
 -   [Strap-on-bomb Car](http://www.kot-in-action.com/)
+
+Misc
+====
+
+- [`modeldecompile` tool](modeldecompile-tool)
\ No newline at end of file
index ca0718dc8aea4d26402d7d6f8ec4dca3f7897fd2..644542c48839213e2fea87a69219b05510975d85 100644 (file)
@@ -1,10 +1,11 @@
 Getting access
 --------------
 
-If you want write access, please tell us your GitLab username on [#xonotic on FreeNode](https://webchat.freenode.net/) or request access on the [main Xonotic project](https://gitlab.com/xonotic/xonotic), we'll gladly give it to you (unfortunately, there is no way to allow anonymous editing on GitLab).
+To apply for write access, please [request access](https://docs.gitlab.com/ee/user/project/members/#request-access-to-a-project) to the [main Xonotic project](https://gitlab.com/xonotic/xonotic) using the GitLab interface.  You can also request access on Matrix chat in [#dev:xonotic.org](https://matrix.to/#/#dev:xonotic.org) (remember to tell us your GitLab username!) but the admins might not see it amongst the other messages.  
 
 After that, you can edit the wiki online (there is an Edit button when logged in) or clone it to your machine using git (`git clone git@gitlab.com:xonotic/xonotic.wiki.git`).
 
+Anonymous wiki editing is not supported on GitLab.
 
 Guidelines
 ----------
diff --git a/Effectinfo-Scripting.md b/Effectinfo-Scripting.md
new file mode 100644 (file)
index 0000000..ca83e29
--- /dev/null
@@ -0,0 +1,316 @@
+Reference: https://www.quakewiki.net/darkplaces-wiki/effectinfo-scripting-reference/
+
+### [**Effectinfo Scripting Reference**](https://www.quakewiki.net/darkplaces-wiki/effectinfo-scripting-reference/ "Effectinfo Scripting Reference")
+
+<div>Posted on September 30th, 2012 | Last modified on August 15th, 2014</div>
+<div>
+
+EffectInfo is built-in scripting language to describe particle effects in DarkPlaces, it’s pretty simple and contains basic scripting functions.
+
+Each effect can have several emitters which is defined in effectinfo.txt or maps/mapname_effectinfo.txt
+
+<table>
+<tr>
+<td>
+
+<div>
+
+## Contents
+
+</div>
+[1. General syntax](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#General_syntax)<br/>
+[2. Console variables](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Console_variables)<br/>
+[3. Particle parameters](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Particle_parameters)<br/>
+[4. Particles leaving decals](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Particles_leaving_decals)<br/>
+[5. Dynamic lights](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Dynamic_lights)<br/>
+[6. Engine effect names](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Engine_effect_names)<br/>
+[7. Known bugs](http://web.archive.org/web/20100729132930/http://dpwiki.slipgateconstruct.com/index.php?title=Effectinfo_Scripting_Reference#Known_bugs)
+</td>
+</tr>
+</table>
+
+## General syntax
+
+```
+// emitter 1
+effect EFFECT_NAME
+parm value
+parm2 value
+...
+
+// emitter 2
+effect EFFECT_NAME
+parm value
+parm2 value
+...
+
+// emitter for another effect
+effect ANOTHER_EFFECT
+parm value
+parm2 value
+...
+```
+
+## Console variables
+
+`r_drawparticles` : toggle drawing of all particles
+
+`r_drawparticles_drawdistance` : set a maximal distance to draw particles at
+
+`cl_particles_size` : this will scale a size of all particles
+
+`cl_particles_quality` : multiplier of particles count spawned by emitters, better quality = more particles (1 – min, 4 – max. quality)
+
+`cl_particles_reloadeffects` : reloads effectinfo.txt while in the game; that eliminates a need to quit and restart DP to see updated effects
+
+## Particle parameters
+
+**effect**
+
+Defines a new emitter with effectname is belongs to, all parms after that will be applied to that emitter.
+
+**count**
+
+How many particles to spawn at this emitter, this setting is affected by cl_particles_quality cvar
+
+**countabsolute**
+
+Defines a count of particles spawned regardless of cl_particles_quality setting
+
+Total particles count = countabsolute + count \* cl_particles_quality
+
+**type**
+
+Sets a generic particle type, affect appearance, blending, physics.
+
+List of particle types:
+
+<dl>
+<dd>alphastatic : alpha-blended billboard</dd>
+<dd>static : additive-blended billboard</dd>
+<dd>spark : additive blended, stretched (based on velocity)</dd>
+<dd>beam : a beam particle, drawn from origin to origin + velocity</dd>
+<dd>rain : a rain particle, alpha-blended spart that will cause splash effect on impact</dd>
+<dd>raindecal: oriented rain decal, additive-blended</dd>
+<dd>snow: alpha blended, velocity jitters in realtime</dd>
+<dd>bubble: alpha-blended</dd>
+<dd>blood: inverse-modulated, leaves decal</dd>
+<dd>smoke: alpha-blended billboard</dd>
+<dd>decal: makes a decal on nearest surface</dd>
+<dd>entityparticle: alpha-blended, this particle gets removed after being drawn (used on EF_BRIGHTFIELD)</dd>
+</dl>
+
+**blend**
+
+Generic blend is set by type, but with this parm it cound be changed after type is defined.
+
+List of blend types:
+
+<dl>
+<dd>alpha : alpha blended</dd>
+<dd>add: additive blended</dd>
+<dd>invmod: inverse modulation (used on blood and blood decals)</dd>
+</dl>
+
+**orientation**
+
+Same as for blend, generic orientation is set by type, could be altered by this parm.
+
+List of orientation types:
+
+<dl>
+<dd>billboard : always turned to viewer</dd>
+</dl>
+
+<dl>
+<dd>oriented : ignores viewwer, turned to velocity</dd>
+</dl>
+
+<dl>
+<dd>beam : facing viewer on 2 axises, stretched from origin to origin + velocity</dd>
+</dl>
+
+<dl>
+<dd>spark : facing viewer on 2 axises, stretched (based on velocity)</dd>
+</dl>
+
+**color <min_color> <max_color>**
+
+Sets a color for particles. On each particle spawn, it’s color is linearly randomized betwen two given colors. Color should be defined as HEX 0xRRGGBB, like 0xFFFFFF is white, and 0xFF0000 is red.
+
+**tex <min_index> <max_index>**
+
+Sets a index of particle from particlefont. Indexes are counted from left to right, from up to down, last index is 63, first is 0. Randomized linearly on each particle spawn.
+
+**size <min_size> <max_size>**
+
+Size of particle in game units, typical value is 4, randomized.
+
+**sizeincrease**
+
+This will make particle grow or diminish over time. is to how much utits to add or subtract per second. Note that while diminishing particle, engine will not check if particle will go to negative size, it will just invert it.
+
+**alpha <min_alpha> <max_alpha> <fade_rate>**
+
+Opacity of particles, 256 is opaque, 0 is transparent. Randomized. Could be more that 256 (to simulate fade delay). Fade rate is how huch alpha to throw away per second, once particle gets alpha 0 (full transparence), it gets removed.
+
+**time <min_time> <max_time>**
+
+Particle time-to-live in seconds, randomized.
+
+**gravity**
+
+Particle gravity modifier, 1 is full gravity, 0.5 is half etc., negative values are supported (particle go up).
+
+**bounce**
+
+Particle bounce-of-walls factor, 1 – bounce with full speed, 0.5 bounce with half speed. A value of -1 means particle will be removed on impact. Not that particle physics considered slow and spawning lots of bouncing particles is not recommended.
+
+**airfriction**
+
+Particle friction while moving in air, good option for smoke emitters. A value of 0 means no friction, negative values will do acceleration.
+
+**liquidfriction**
+
+Particle friction while moving in liquids.
+
+**originoffset**
+
+Offset particle spawning origin by this values. Coordspace are world, x – forward, y – right, z – up.
+
+**velocityoffset**
+
+Add this amount of constant velocity to particle on spawn.
+
+**originjitter**
+
+Like originoffset but each axis is jittered between -value/+value. Hence it is defining spherical shape of particle random spawning.
+
+**velocityjitter**
+
+Same as originjitter but for velocity.
+
+**velocitymultiplier**
+
+Multiply particle starting velocity (one that set by QC or engine, whatever calls effect) by this value. Useful with trails. Negative values are supported.
+
+**underwater**
+
+Sets underwater flag for particles. Particles that are underwater will be removed in air. Useful for water bubbles.
+
+**notunderwater**
+
+Sets notunderwater flag for particles. Particles that are notunderwater will be removed in liquid. Useful for fire particles.
+
+**trailspacing**
+
+This parm is only useful when effect is spawned as trail, defines a game units gap between effect invocations.
+
+**stretchfactor**
+
+A custom stretch factor that is used on sparks.
+
+**rotate <startangle_min> <startangle_max> <spin_min> <spin_max>**
+
+Used to rotate particle, first 2 parms is start angle, other two are spin velocity.
+
+## Particles leaving decals
+
+Particles can leave decals once hit something. For this behavior a special set of parms should be used. This section is unfinished, futher explanation is required.
+
+**staincolor <min_color> <max_color>**
+
+A randomized color for decal particle.
+
+**stainalpha <min_alpha> <max_alpha>**
+
+A randomized alpha.
+
+**stainsize <min_size> <max_size>**
+
+A randomized size.
+
+**staintex <min_index> <max_index>**
+
+A randomized index into particlefont.
+
+**stainless**
+
+Disables decal spawning and returns all parms to it’s default values.
+
+## Dynamic lights
+
+Dynamic realtime lights could be placed in particle effects (useful for explosions) with this range of parms. This parms applied just like standart ones.
+
+**lightradius**
+
+Radius of light in game units. Typical value is 200.
+
+**lightradiusfade**
+
+Radius fade rate, how many units to add/subtract per second. Once light reaches radius of 0 it gets removed.
+
+**lighttime**
+
+If radius fading not set, this parm can be used to define light life time.
+
+**lightcolor**
+
+A RGB-normalized light color, 1 1 1 is white, 0 0 1 is blue. Can exceed 1 (overbright light).
+
+**lightshadow**
+
+Cast shadows from light, value is 0 or 1.
+
+**lightcubemapnum**
+
+Sets a numbered cubefilter for light, cubemap texture is cubemaps/
+
+## Engine effect names
+
+Heres a list of effect names used by engine.
+
+```
+TE_GUNSHOT
+TE_GUNSHOTQUAD
+TE_SPIKE
+TE_SPIKEQUAD
+TE_SUPERSPIKE
+TE_SUPERSPIKEQUAD
+TE_WIZSPIKE
+TE_KNIGHTSPIKE
+TE_EXPLOSION
+TE_EXPLOSIONQUAD
+TE_TAREXPLOSION
+TE_TELEPORT
+TE_LAVASPLASH
+TE_SMALLFLASH
+TE_FLAMEJET
+EF_FLAME
+TE_BLOOD
+TE_SPARK
+TE_PLASMABURN
+TE_TEI_G3
+TE_TEI_SMOKE
+TE_TEI_BIGEXPLOSION
+TE_TEI_PLASMAHIT
+EF_STARDUST
+TR_ROCKET
+TR_GRENADE
+TR_BLOOD
+TR_WIZSPIKE
+TR_SLIGHTBLOOD
+TR_KNIGHTSPIKE
+TR_VORESPIKE
+TR_NEHAHRASMOKE
+TR_NEXUIZPLASMA
+TR_GLOWTRAIL
+SVC_PARTICLE
+```
+
+## Known bugs
+
+~~maps/mapname_effectinfo.txt does not add effects at the moment, but replaces the whole effects info~~\
+The Engine now appends mapname_effectinfo.txt to effectinfo.txt. In other words you can create additional effects for your map without changing effectinfo.txt
+
+</div>
\ No newline at end of file
index 7b7b3d5f3fc6ea9d875f488f318edf3b95da5e1f..6450ce7ffb324ecc42bdb96280d9f38bde6fe3de 100644 (file)
 * `sv_eventlog_files_timestamps`: prefix log lines in the files with time events
 * `sv_eventlog_ipv6_delimiter`: change `:` in IPv6 addresses to `_` for easy parsing of :join lines with IPv6 IPs
 
+Also see: [Score logging](./Score-logging)
+
 ## Log format
 ```
 :logversion:3
 :gamestart:<gametype>_<mapname>:<matchid>
 :gameinfo:mutators:LIST:mutator1:mutator2:...
 ```
-(Note that mutators are listed by their cvar name with g_ removed, unless such a cvar is 1 by default - then the mutator is listed with a no_ prefix if the cvar is 0)
+Note that mutators are listed by their cvar name with g_ removed, unless such a cvar is 1 by default - then the mutator is listed with a no_ prefix if the cvar is 0.
 ```
 :gameinfo:end
 :join:<ID>:<slot>:<ip>:<nickname>
@@ -38,6 +40,8 @@
 :ctf:return:<flagcolor>:<teamcolor>:<ID of defender>
 :ctf:returned:<flagcolor>
 :dom:taken:<previouscolor>:<ID of player>
+:ft:autorevival:<ID of revived player>
+:ft:revival:<ID of revived player>:<ID of reviver1>,<ID of reviver2>,...
 :keyhunt:capture:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
 :keyhunt:carrierfrag:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
 :keyhunt:collect:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
@@ -70,7 +74,7 @@
 :time:<YYYY-MM-DD HH:MM:SS>
 :recordset:<ID of player>:<time in seconds>
 ```
-Note that only the :join and :player lines ever contain player names. The :time event only appears in the log files if sv_eventlog_files_timestamps is 1; there is no way to log these time stamps to the console (for console timestamps, set timestamps to 1).
+Note that only the :join, :name and :player lines ever contain player names. When splitting on ':', keep in mind that those 2 and (and all :chat* message texts) can contain ':'. The :time event only appears in the log files if sv_eventlog_files_timestamps is 1; there is no way to log these time stamps to the console (for console timestamps, set timestamps to 1).
 
 ### Team colors
 * 1 = No Team (Domination)
@@ -121,7 +125,7 @@ and weapon IDs are:
 Weapon IDs are below 10000.
 
 ### Death type
-Either a weapon ID ORed with weapon death flags, or one of the notifications in common/deathtypes.qh in the form of a string.
+Either a weapon ID ORed with weapon death flags, or one of the notifications in `common/deathtypes.qh` in the form of a string.
 
 Weapon death flags are:
 * 256 = secondary fire
@@ -130,4 +134,7 @@ Weapon death flags are:
 * 2048 = head shot (Vaporizer only)
 * 4096 = unused flag
 
-There will be a log analyzer parsing this file format soon.
\ No newline at end of file
+#### Example programs making use of event logs:
+
+* [incognico/erebus.pl](https://gitlab.com/incognico/erebus/-/blob/master/erebus.pl) - Links Discord<->Xonotic
+* [rcon2irc.pl](https://gitlab.com/xonotic/xonotic/-/blob/master/server/rcon2irc/rcon2irc.pl) Links IRC<->Xonotic (a bit outdated)
\ No newline at end of file
diff --git a/Exporting-a-weapon-for-Xonotic.md b/Exporting-a-weapon-for-Xonotic.md
new file mode 100644 (file)
index 0000000..2a34ee4
--- /dev/null
@@ -0,0 +1,249 @@
+_This article looks complete, [old methodology](#old-methodology) isn't a very complete section due to  the obsolescence._
+
+# _Table of Contents_
+> ### 1. [Modeling requirements](#modeling-requirements)
+> ### 2. [Introduction to export a weapon](#introduction-to-export-a-weapon)
+> ### 3. [Textures and UV map](#textures-and-uv-map)
+> ### 4. [Starting to export](#starting-to-export)
+> > 4.1. [Modifiers](#modifiers)<br/>
+> > 4.2. [Bones and animations](#bones-and-animations)<br/>
+> > 4.3. [Textures and materials](#textures-and-materials)
+> ### 5. [New methodology](#new-methodology)
+> > 5.1. [SMD (includes IQM converter and dpmodel guide)](#smd-includes-iqm-converter-and-dpmodel-guide)
+> ### 6. [Export troubleshooting](#export-troubleshooting)
+> ### 7. [Old methodology](#old-methodology)
+> > 7.1. [MD3](#md3)<br/>
+> > 7.2. [IQM](#iqm)
+
+# Modeling requirements
+### To follow this, you need knowledge about modeling using Blender
+
+Blender version recommended: [**2.79b**](https://download.blender.org/release/Blender2.79/) or [**later**](https://www.blender.org/)
+
+You need [dpmodel](https://icculus.org/twilight/darkplaces/files/) to convert SMD files:
+- [dpmodel tool](https://icculus.org/twilight/darkplaces/files/dpmodel20091008beta1.zip)
+
+Requires these following tools (addons) for Blender:
+- [IQM exporter](https://gitlab.com/xonotic/iqm) to export IQM files.
+- [Source Tools (SMD importer/exporter)](http://steamreview.org/BlenderSourceTools/archives/) to import/export SMD files.
+
+Optional:
+- [MD3 importer/exporter](https://github.com/neumond/blender-md3) to import/export MD3 files.
+
+***IMPORTANT NOTE**: if you want to contribute, it's strongly recommended using 2.79b version for compatibility cases, they need to open from this version. Share the .blend file using 2.79b or earlier , make sure to work properly from this version!*<br/>
+*If the version of a file is later than 2.79b, maybe some tweaks would need to take and would become tedious.*
+
+# Introduction to export a weapon
+**Keep in mind about weapon systems:**
+
+- `g_*.md3`: model mesh for item pickup spawn and third person.
+- `h_*.iqm`: for first person animations (if this step used [old methodology](#old-methodology) is a glue of `v_*`); the skeleton and the bones (the rigging and animation part). Keep in mind, you would need `*.iqm.framegroups` (more info: [Framegroups](framegroups), you can look `*.iqm.framegroups` opening a notepad to see what animations contain and the keyframes where these are set)
+- `v_*.md3`: model mesh for third person; if `h_*.iqm` doesn't match with the animations needed of `v_*.md3`, it will generate spamming errors and bad pivot position (usually happens in the [old methodology](#old-methodology)).
+
+More info: [Weapon modeling system](Weaponsystem)
+
+
+# Textures and UV map
+
+### For MD3 exportation:
+
+You have to add single material with single texture for every mesh object. Name of texture node will be written as is into MD3 data (suffixes like .001, .002 are ignored, feel free to use one texture for many meshes).
+<br />
+Keep in mind, when you've done your UV map in your model, you need to set this:
+<br />
+<br />
+<img src="uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png" alt="Md3exp" width="300" />
+<br />
+Texture must:
+
+- be of **Image** type
+- mapping type **UV**
+- have UV map assigned
+
+otherwise resulting data block will be filled with zeroes.
+<br />
+<br />
+<img src="uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png" alt="Md3_textures" width="360" />
+<br />
+<br />
+If you didn't this, the model will be invisible and it won't be able to interact shaders.
+<br />
+<br />
+[Blender reference about UV in MD3](https://archive.blender.org/wiki/index.php/Extensions:2.6/Py/Scripts/Import-Export/MD3/)
+
+# Starting to export
+
+## Modifiers
+
+Keep in mind, you need to set these modifiers for the mesh/model object: 
+
+<img src="uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg" alt="blendermodifiersiqmandmd3" />
+
+## Bones and animations
+
+MUST contain `tag_handle`, `tag_shell` and `tag_shot` bone names attached. These tag_names MUST be attached, if not the model will cause errors.
+
+`tag_Somename` is another one, you can add if you need some optional animation in this bone. (Not useful for [old methodology](#old-methodology))
+
+Moreover, watch out about position and rotation. `h_*.iqm` alterates the position and rotation of `v_*.md3`. The positions may not be equal.
+
+`g_*` and `v_*` MUST contain one bone. The animations can't be included. It isn't like `h_*`.
+
+Required animations and in the correct order: 
+- `fire`
+- `fire2`
+- `idle`
+- `reload`
+
+## Textures and materials
+
+Please note that before exporting, about textures and materials, you have to assign the same as the script like this example shader file (`crylink.shader` file):
+```
+crylink_new // your material name
+{
+       dpreflectcube cubemaps/default/sky
+       {
+               map textures/crylink_new.tga // the texture you wanna display in-game, make sure to test in Blender!
+               rgbgen lightingDiffuse
+       }
+}
+```
+Note: `crylink_new` must appear in the material.
+<br/><br/>Material:<br/>
+<img src="uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg" alt="crylinkblendermaterialsample" width=920 />
+<br/>
+
+# New methodology
+
+You can make optional customized animations adding bones for the animations.
+
+## SMD (includes IQM converter and dpmodel guide)
+
+Use Source Tools addon in Blender to export the model and animations. 
+
+- For `h_*`:<br/>
+Select the mesh and 1 animation and click Export, you need to export all animations one per one: 
+<br/><img src="uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg" alt="blenderSMDexport1" width=380 /><br/><br/>
+Repeat the process:<br/><img src="uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg" alt="blenderSMDexport2" width=350 /><br/><br/>
+<img src="uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg" alt="blenderSMDexport3" width=350 /><br/><br/><img src="uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg" alt="blenderSMDexport4" width=350 />
+<br/><br/>
+
+- For `g_*` and `v_*`:<br/>
+Just select the mesh:
+<br/><img src="uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg" alt="blenderSMDexport5" width=350 /><br/>
+
+Use `iqm.exe` from [IQM exporter](https://gitlab.com/xonotic/iqm), in Windows, in CMD execute for convert SMD to IQM for `v_*` and `g_*`: <br/>`iqm v_myweapon.iqm v_mesh.smd`
+<br/>`iqm g_myweapon.iqm g_mesh.smd`
+<br/><br/>Linux: `./iqm.exe g_myweapon.iqm g_mesh.smd`
+<br/>`./iqm.exe v_myweapon.iqm v_mesh.smd`
+
+Rename extension to MD3: <br/>`g_myweapon.iqm` to `g_myweapon.md3`<br/>and `v_myweapon.iqm` to `v_myweapon.md3`
+
+Use dpmodel tool to generate `h_myweapon.dpm` and `h_myweapon.dpm.framegroups`, in command line execute: `dpmodel yourconfig.txt`
+<br/>More info explained about dpmodel tool: [dpmodel](dpmodel)
+<br/>Rename extension to IQM: `h_myweapon.dpm` to `h_myweapon.iqm` and `h_myweapon.dpm.framegroups` to `h_myweapon.iqm.framegroups`.
+
+Save those compiled model files into `models/weapons/` folder where they belong.
+
+**Conclusion**: Sometimes, renaming formats can be useful to save effort. Note: it's a kind of weird way to do stuff, file formats are hardcoded in the gamecode rather than dynamically obtained. The issue of model resources was found here: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2629#note_686988936
+
+# Export troubleshooting
+
+- _**Spamming CSQC errors:**_<br/>
+If you received spamming errors like that:<br/>
+<img src="uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg" alt="spammingerrorstagweapon" width=450 /><br/>
+It's because you didn't do correctly the steps after exporting the models. Remember, `g_*` and `v_*` MUST contain one bone. 
+
+- _**Broken shadow artifacts (enabled with `r_shadows 2` and disabled `r_shadow_shadowmapping 0`):**_<br/>
+To solve this, the possible way is exporting to IQM from Blender, selecting bone and mesh (both highlighted). Usually, this issue happens in `g_*` and `v_*` ones.
+<br/>Reference: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2667
+
+- _**When exporting to IQM, get duplicated names in the texture:**_<br/> 
+<img src="uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg" alt="duplicatedtexturenameloadingerror" width=700 /><br/>
+Take a closer look what is telling here:<br/>
+_The "Materials" option controls how material names are generated. "material+image-ext" combines the name of the material and the name of the UV-map image (without its extension or directory) to generate the material name, "material" uses only the name of the material, and "image" just uses the name of the UV-map image (without its directory)._ <br/><br/>
+When you export to IQM, you need to watch out that detail after selected File > Export > Inter-Quake Model (.iqm, .iqe).<br/>
+Pay attention to this [section](##textures-and-materials) when you need to export correctly, the material/texture(image) should be one thing, so do the following: Export IQM > Materials: > select `material` or `image` instead `material+image-ext`.<br/>
+<img src="uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg" alt="exportiqmiqeblenderdetails" width=200 /><br/>
+
+- _**Model scale animations aren't working:**_<br/> 
+SMD format doesn't support bone scaling animations, although you try to compile them into dpmodel tool, it won't change nothing. More info here: https://steamcommunity.com/groups/BlenderSourceTools/discussions/1/152392786900223348/ <br/>
+Same goes for IQM.
+
+# Old methodology
+
+*Note: this section is obsolete.*
+
+**IMPORTANT**: In this methodology, you can't make cool animations with separated objects, because `h_*.iqm` here is a plane mesh with bones.
+
+Note: the model should be rotated as YXZ, instead being XYZ. Because the tip of the weapon is Y, horizontally is X.
+
+`tag_weapon` is a MUST bone for this methodology.
+
+## MD3
+
+Before to export, you need to select all objects in the scene. (Pressing A, seeing all objects highlighting orange or red)
+
+<img src="uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg" alt="exporttutorialMD3" />
+
+And export the model to MD3. _Attention: You can't export a model over than 8192 triangles/polys._
+
+## IQM
+
+Before to export, you need to select all objects and bones in the scene. (Pressing A, seeing all objects highlighting orange or red)
+
+<img src="uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg" alt="exporttutorialIQM" />
+
+<br/>
+<br/>
+
+For `h_*.iqm`, you will need to make a simple plane with a scale reduced to 0.01 and the following bones attached: `tag_weapon`, `tag_shell` and `tag_shot`.
+
+There's a post from InsideQC Forums explaining about IQM:
+
+There is a simple way:
+
+You just can use an iqm model like a regular mdl file, you only need to use each frame as a framegroup.
+
+For example, if you have an iqm called "rocketlauncher.iqm" with 20 frames you need to create a framegroup file with notepad like this:
+
+```
+1 1 1 0  
+2 1 1 0  
+3 1 1 0  
+4 1 1 0  
+5 1 1 0  
+6 1 1 0  
+7 1 1 0  
+8 1 1 0  
+9 1 1 0  
+10 1 1 0  
+11 1 1 0  
+12 1 1 0  
+13 1 1 0  
+14 1 1 0  
+15 1 1 0  
+16 1 1 0  
+17 1 1 0  
+18 1 1 0  
+19 1 1 0  
+20 1 1 0  
+```
+So you will save it with the name.
+
+"rocketlauncher.iqm.framegroups" and place it in the same directory where "rocketlauncher.iqm" is located.
+
+About the framegroups file (explained on [Framegroups](framegroups)):
+
+The first number represents the start frame of the animation (.framegroups files always start at frame 0, some modeling software starts at 1, so you might have to subtract 1 for the start frame).
+
+The second number represents how many frames is in that specific frame group.
+
+The third number is the frame rate at which the sequence plays. This is independent from what the monsters "think" rate is, which I have set at 10 frames-per-second.
+
+The fourth number is whether the frame sequence loops. 1 for true, 0 for false. The only frame groups that should loop are the standing, walking and running animations.
+
+It becomes very tedious to make framegroups for models with really many frames, you can use this sample generated for the DarkPlaces model compiler. It will work in every iqm model (if you wan you only need to cut the specific number of frames in the framegroups file, but it will work anyway)
+
+Reference: [IQM animation framegroups (InsideQC Forums)](https://forums.insideqc.com/viewtopic.php?p=55949&sid=952cd347938ae5f2bb8bde276b5a35cd#p55949)
+
index 0732cc4801992d5aa9b57d182fb03c1d2f983dc8..fd13dc520306357a7dbbee176eead03d3b0446b3 100644 (file)
@@ -14,6 +14,9 @@ Graphics Features
 -   [Skeletal Animation](Modeling)
 -   [Scriptable Surface Materials](Materials)
 -   Reflective/Refractive Water
+-   High dynamic range/iris adaptation to light levels
+-   Global illumination
+-   Chromatic aberration
 
 Supported Formats
 -----------------
@@ -50,3 +53,4 @@ Supported Formats
 -   WAV
 -   OGG
 -   CD Audio
+-   libxmp module sound
diff --git a/Freesh-Meat-Mod.md b/Freesh-Meat-Mod.md
new file mode 100644 (file)
index 0000000..d50361e
--- /dev/null
@@ -0,0 +1,51 @@
+This mod is in use on the Freesh Meat servers, maintained by h0tc0d3, and contains the following modifications:
+
+- Added voting for game type modifiers.
+    ![Freesh Meat Club Game Mods](https://freshmeat.fun/gamemod/gamemods.jpg)
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/63bbaec218093e16509de0ad799151a337bc2acf](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/63bbaec218093e16509de0ad799151a337bc2acf)
+
+    - <img src="https://freshmeat.fun/gamemod/arc.png" alt="arc" width="64" height="64" /> Replace Machinegun with Arc(Shaft in Quake)
+    - <img src="https://freshmeat.fun/gamemod/allweapons.png" alt="arc" width="64" height="64" /> Infinity Weapons
+    - <img src="https://freshmeat.fun/gamemod/superweapon.png" alt="arc" width="64" height="64" /> Super Weapon
+    - <img src="https://freshmeat.fun/gamemod/overkill.png" alt="Overkill" width="64" height="64" /> [Overkill](https://xonotic.org/okguide/)
+    - <img src="https://freshmeat.fun/gamemod/nade.png" alt="Nade" width="64" height="64" /> [Nades](https://gitlab.com/xonotic/xonotic/-/wikis/Nades)
+    - <img src="https://freshmeat.fun/gamemod/nix.png" alt="NIX" width="64" height="64" /> [NIX - Random Weapon Mod](https://gitlab.com/xonotic/xonotic/-/wikis/NIX)
+    - <img src="https://freshmeat.fun/gamemod/skill.png" alt="Skill" width="64" height="64" /> Skill - Reduce hagar and electro power. Which reduces the noskill advantage.
+      - [https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1057](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1057)
+      - [https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1056](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/1056)
+    - <img src="https://freshmeat.fun/gamemod/powerup.png" alt="Powerup" width="64" height="64" /> Powerups in game
+    - <img src="https://freshmeat.fun/gamemod/buff.png" alt="Buff" width="64" height="64" /> Buffs in game
+    - <img src="https://freshmeat.fun/gamemod/hook.png" alt="Grappling Hook" width="64" height="64" /> [Grappling Hook](https://gitlab.com/xonotic/xonotic/-/wikis/Grappling-Hook)
+    - <img src="https://freshmeat.fun/gamemod/xpm.png" alt="Xonotic PRO Mode" width="64" height="64" /> [Xonotic PRO Mode](https://xonotic.fandom.com/wiki/Mods)
+    - <img src="https://freshmeat.fun/gamemod/instagib.png" alt="Instagib" width="64" height="64" /> [Instagib](https://gitlab.com/xonotic/xonotic/-/wikis/InstaGib)
+
+- Added random movement and dodging for the bot. Which makes the game more like playing with a human. The bot also moves more left-right than back and forth to make it more like a strafe. [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/b2c1e5641fd45e2dad12fb422c85289b195e70bc](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/b2c1e5641fd45e2dad12fb422c85289b195e70bc)
+
+- Added hats for players models
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/92b99b188640c63d3e934a22dc5fa2f06739e1ba](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/92b99b188640c63d3e934a22dc5fa2f06739e1ba)
+
+- Added improved weapon effects. Allows you to better dodge and direct missiles. Enable: cl_particles_pro 1
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/d42f9d1da8298465ba72dec11ad5bff6ef61937b](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/d42f9d1da8298465ba72dec11ad5bff6ef61937b)
+
+- Improved voting window for maps and game type. Decrease title font size and raise it higher. The title looked disproportionate and wasted usable space. Solve the problem of incorrectly cropped text.
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/f4aca361e835a9e49673afb5427a70297fc34185](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/f4aca361e835a9e49673afb5427a70297fc34185)
+
+- Improved scoreboard. The game type font is too big and looks disproportionate. Most of the information did not fit on the screen. Brings the scoreboard to a more familiar look like in other games.
+  - [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/5289a443562381f7c8a03e95df438bf702c9710e](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commit/5289a443562381f7c8a03e95df438bf702c9710e)
+
+
+Complete source code (except possibly for server-only changes that do not affect csprogs.dat or other code sent to clients) to be found on [https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commits/archlinuxclub/](https://gitlab.com/h0tc0d3/xonotic-data.pk3dir/-/commits/archlinuxclub/)
+
+Build command:
+
+`make qc QCCFLAGS_WATERMARK=xonotic-v0.8.5_r9-votpidor-edition`
+
+Icons used:
+- https://www.flaticon.com/authors/amethystdesign
+- https://www.flaticon.com/authors/justicon
+- https://www.flaticon.com/authors/febrian-hidayat
+- https://www.flaticon.com/authors/smalllikeart
+- https://www.flaticon.com/authors/those-icons
+- https://www.flaticon.com/authors/flatart-icons
+- https://www.freepik.com/
+- https://flat-icons.com/
diff --git a/Git.md b/Git.md
index 37b340a3651820471015674b7be21a6d0aa59e63..3fa3aaa30f92b32541e4b6d4c30ef27e3663314f 100644 (file)
--- a/Git.md
+++ b/Git.md
@@ -1,9 +1,10 @@
-Git
-===
-
 Cloning the repository
 ----------------------
 
+    git clone https://gitlab.com/xonotic/xonotic.git
+    cd xonotic
+     ./all update -l best
+
 Expected time (~2.5MiB/s): ~2m (initial checkout) + ~75m (./all update)  
 Expected size: 11.7 GiB
 
@@ -17,10 +18,6 @@ Expected size: 11.7 GiB
 |maps       |5.6 GiB|
 |gmqcc      |22 MiB|
 
-    git clone https://gitlab.com/xonotic/xonotic.git
-    cd xonotic
-     ./all update -l best
-
 After cloning the repository
 ----------------------------
 
@@ -30,7 +27,7 @@ Please check [Repository Access](Repository_Access) to make sure you checked out
 Compiling
 ---------
 
-Run `./all compile` to compile the engine and gamecode. Add `-r` for a faster release build without debugging symbols.
+Run `./all compile` to compile the engine and gamecode. Add `-d` to include debugging symbols.
 
 Running
 -------
diff --git a/Home.md b/Home.md
index 8279b526beeeb102bf01c944b756f1ccb9762094..0e4904b789b64690f49cc7d3d78895ae35b37496 100644 (file)
--- a/Home.md
+++ b/Home.md
@@ -7,8 +7,8 @@ Welcome to the Xonotic wiki. If you wish to contribute, see [Editing](Editing).
 -      [Website](http://xonotic.org)
        -       [Forums](http://forums.xonotic.org) are a lively place for Xonotic players to discuss anything.
        -       [Xonotic game stats](http://stats.xonotic.org/) show useful statistics information about servers, players, scores, maps, etc.
--      [IRC channels](Channels) are where most players ask/answer questions, exchange ideas, organize game events, etc. in **real time**. You can even chat with players in the game.
--      [Discord](https://discord.gg/0uxcsw1XMkaOB936): there is also a Discord server that serves more or less the same purpose as the IRC channels.
+-      [Matrix and IRC channels](Chat-Rooms) are where most players ask/answer questions, exchange ideas, organize game events, etc. in **real time**. You can even chat with players in the game.
+-      [Discord](Chat-Rooms#discord): there is also an unofficial Discord server that serves more or less the same purpose as the IRC channels.
 -      [Facebook](https://www.facebook.com/xonotic/)
 -      [Twitter](https://twitter.com/xonotic)
 
@@ -17,12 +17,13 @@ Welcome to the Xonotic wiki. If you wish to contribute, see [Editing](Editing).
 ### Tutorials
 - [HALOGENE’S NEWBIE CORNER](https://xonotic.org/guide/) has rich information for beginners. **Must read!** You will enjoy the game more!
 - [Overkill Tutorial](https://xonotic.org/okguide/)
+- [Creating bot waypoints](https://gitlab.com/xonotic/xonotic/-/wikis/Creating-bot-waypoints)
 
 ### Unofficial map repositories
-- [xonotic.fps.gratis](http://xonotic.fps.gratis/) (or [dl.xonotic.fps.gratis](http://dl.xonotic.fps.gratis/) for a simple list that loads faster) - Run by [-z-](https://github.com/z/)/[detrate](https://gitlab.com/detrate). Same content as [xonotic.co](http://xonotic.co/).
+- [xonotic.fps.gratis](http://xonotic.fps.gratis/) (or [dl.xonotic.fps.gratis](http://dl.xonotic.fps.gratis/) for a simple list that loads faster) - Run by [-z-](https://github.com/z/)/[detrate](https://gitlab.com/detrate).
 - [gnome.xonotic.in.ua](http://gnome.xonotic.in.ua/)
 - [xon.recombi.net](http://xon.recombi.net/) (or [xon.recombi.net/dl](http://xon.recombi.net/dl/) for a simple list that loads faster) - Has content from both [fps.gratis](http://xonotic.fps.gratis/) and [gnome](http://gnome.xonotic.in.ua/), [fps.gratis](http://xonotic.fps.gratis/) has precedence in case of conflict.
-- [xonotic.co](http://xonotic.co/) - Currently down.
+-   [naitlee.github.io/map-repo-poc](https://naitlee.github.io/map-repo-poc/) - Stylized Xonotic map repository. Better performance. Run by [NaitLee](https://github.com/NaitLee).
 
 ### Unofficial Web-based Server Lists
 -   [dpmaster.deathmask.net](http://dpmaster.deathmask.net/?game=xonotic)
@@ -38,6 +39,7 @@ Welcome to the Xonotic wiki. If you wish to contribute, see [Editing](Editing).
 - [Items](Items)
 - [Vehicles](Vehicles)
 - [Weapons](Weapons)
+- [Monsters](Monsters)
 
 ### Game Modes (or Game Types)
 In Xonotic, game modes and game types mean the same thing -- different modes/types have different goals to achieve in a game.
@@ -51,8 +53,12 @@ The following modes are the more popular ones:
 -   [Freeze Tag](Freeze-Tag)
 -   [Keepaway](Keepaway)
 -   [Key Hunt](Key-Hunt)
+-   [Mayhem](Mayhem)
 -   [Race CTS](Race-CTS)
 -   [Team Deathmatch](Team-Deathmatch)
+-   [Team Mayhem](Team-Mayhem)
+-   [Team Keepaway](Team-Keepaway)
+
 
 The following modes are available, although slightly less common than the above:
 
@@ -62,9 +68,16 @@ The following modes are available, although slightly less common than the above:
 -   [Nexball](Nexball)
 -   [Onslaught](Onslaught)
 -   [Race](Race)
+-   [Survival](Survival)
+
+Old/experimental modes:
+
 -   [Invasion](Invasion) (experimental)
 -   [Arena](Arena) (removed)
 
+The following modes are mods:
+-   [Murder in Megaerebus Manor](Murder-in-Megaerebus-Manor)
+
 ### Standard Mutators
 Mutators change the configuration of the game play, e.g. how weapon appears, which special weapons are availabale, or the physics in the game. This is usually set by the game admins who set up games for other players. Standard Mutators are available in the game menu.
 
@@ -102,9 +115,13 @@ Other mutators:
 ### [Special Servers](Special-Servers)
 
 ### [Mods](Mods)
+- [SMB modpack (contains git dev guide about how is built)](SMB-modpack)
+- [BaI mod](BaI-mod)
+- [Fresh Meat Mod](Freesh-Meat-Mod)
 
 ### Misc
 -   [Autobuilds](Autobuilds)
+-   [Compiling](Compiling)
 -   [Privacy and Security](privacy-and-security)
 -   [Handicap](handicap)
 -   [Camera for demos explained](Demo-Camera)
@@ -129,6 +146,9 @@ Other mutators:
 -   [Event logging](Event-logging)
 -   [Score logging](Score-logging)
 
+### Moderation
+-   [Moderation tools](Moderation-tools)
+
 ### Troubleshooting
 -   [Performance](https://forums.xonotic.org/showthread.php?tid=7374&pid=80938#pid80938)
 
@@ -138,7 +158,8 @@ Other mutators:
 
 ## Development
 
--   [Repository Access](Repository_Access) (how to compile from git) (see also [Git repo structure](Git))
+-   [Repository Access: Compiling and Requesting Push Access](Repository_Access)
+-   [Git: HowTo and Repository Structure](Git)
 -   [Licensing / Legal](Legal)
 
 ### Programming
@@ -146,6 +167,8 @@ Other mutators:
 -   [DarkPlaces Wiki](DarkPlaces-Index)
 -   [Writing your first mutator](writing-your-first-mutator)
 -   [Tips for new developers](Programming-Tips)
+-   [Programming QuakeC stuff in Xonotic
+](Programming-QuakeC-stuff-in-Xonotic)
 
 ### [Translating](Translating)
 -   [Translation website](https://www.transifex.com/team-xonotic/xonotic/dashboard/)
@@ -161,7 +184,8 @@ Other mutators:
 -   [.framegroups](framegroups) file (allow self playing animations) know-how
 -   [.sounds](Voices-and-sounds) file (player model sounds) know-how
 -   [How to compile dpm models](dpmodel)
--   [How to make weapons](Weaponsystem)
+-   [Weapon modeling system](Weaponsystem)
+-   [Exporting a weapon for Xonotic](Exporting-a-weapon-for-Xonotic)
 -   How to get an animated mesh from [Blender to DPM](Blender-to-DPM)
 -   [Inter-Quake Model (IQM) Format](http://sauerbraten.org/iqm/)
 -   [Player Model Spec](Player-Model-Spec)
@@ -174,6 +198,9 @@ Other mutators:
 -   Some [tips](http://forums.xonotic.org/showthread.php?tid=63&pid=445#pid445) by *FruitieX*
 -   [Q3A Shader Manual](http://toolz.nexuizninjaz.com/shader/)
 
+### Effects and particles
+- [Effectinfo Scripting](Effectinfo-Scripting)
+
 ### [Mapping](Mapping)
 -   [Creating Maps](Creating-Maps)
 -   [Mapper resources](Mapper-resources)
@@ -196,4 +223,4 @@ Other mutators:
 ## Misc
 
 -   [Archive](Archive)
--   [Gitlab Markdown Reference](https://gitlab.com/help/user/markdown.md) (for editing this wiki)
+-   [Gitlab Markdown Reference](https://gitlab.com/help/user/markdown.md) (for editing this wiki)
\ No newline at end of file
index aaa5fe20cc0df577a13e510f7da0a95112666199..3c17852f2a158154630e027448463a96b6959cb3 100644 (file)
@@ -126,8 +126,6 @@ vector
 
 This type is basically three floats together. By declaring a `vector v`, you also create three floats `v_x`, `v_y` and `v_z` (note the underscore) that contain the components of the vector. GMQCC also accepts dot notation to access these components: `v.x`, `v.y` and `v.z`
 
-**COMPILER BUG:** Always use `entity.vector_x = float` instead of `entity.vector.x = float`, as the latter creates incorrect code! Reading from vectors is fine, however.
-
 Vectors can be used with the usual mathematical operators in the usual way used in mathematics. For example, `vector + vector` simply returns the sum of the vectors, and `vector * float` scales the vector by the given factor. Multiplying two vectors yields their dot product of type float.
 
 Common functions to be used on vectors are `vlen` (vector length), `normalize` (vector divided by its length, i.e. a unit vector).
@@ -671,36 +669,127 @@ vectoangles does not match makevectors
 The pitch angle is inverted between these two functions. You have to negate the pitch (i.e. the *x* component of the vector representing the euler angles) to make it fit the other function.
 As a rule of thumb, *vectoangles* returns angles as stored in the *angles* field (used to rotate entities for display), while *makevectors* expects angles as stored in the *v\_angle* field (used to transmit the direction the player is aiming). There is about just as much good reason in this as there is for 1:1 patch cables. Just deal with it.
 
+bound
+-----
+
+A bound is a variable that was previously free, but has been bound to a specific value or set of values. If x > upperlimit the upperlimit is returned, if x < lowerlimit then lowerlimit is returned, if lowerlimit < x < upperlimit then x is returned. That function returns an x value calling this way: 
+```c
+bound(lower_limit, x, upper_limit)
+```
+
+Ternary operator
+----------------
+
+QuakeC allows ternary operators like in C:
+```c
+int a = 2;
+int b = 3;
+int c = 6;
+int d = 8;
+int max = (a > b) ? c : d;
+```
+More [**info**](https://www.geeksforgeeks.org/conditional-or-ternary-operator-in-c-c/).
+
+There is a complex example using `bound` function with this operator:
+```c
+bound(1, ((hunter_count >= 1) ? hunter_count : floor(total * hunter_count)), total - 1);
+bool wholenumber = (hunter_count >= 1) //is hunter count a specified whole number or percentage
+
+if (!wholenumber) //if hunters are defined with percentage count
+{
+ int z = total * hunter_count //wanted percentage amount from total is z
+ int y = floor(z) //round z downwards to nearest whole number
+}
+
+int x = (wholenumber ? hunter_count : y) //if whole number was given use it, 
+//if not use y which is calculated above
+bound(1, x, total - 1) //use the value x if it's above 1 but below (total - 1)
+//Otherwise use the bounding value of that direction to quarantee that 
+//there is always at least 1 hunter and always at least 1 survivor
+```
+
 Entry points
 ============
 
 The server-side code calls the following entry points of the QuakeC code:
 
 -   **void ClientDisconnect()**: called when a player leaves the server. Do not forget to *strunzone* all *strings* stored in the player entity here, and do not forget to clear all references to the player!
+<br />
+
 -   **void SV\_Shutdown()**: called when the map changes or the server is quit. A good place to store persistent data like the database of race records.
+<br />
+
 -   **void SV\_ChangeTeam(float newteam)**: called when a player changes his team. Can be used to disallow team changes, or to clear the player’s scores.
+<br />
+
 -   **void ClientKill()**: called when the player uses the ”kill" console command to suicide.
+<br />
+
 -   **void RestoreGame()**: called directly after loading a save game. Useful to, for example, load the databases from disk again.
+<br />
+
 -   **void ClientConnect()**: called as soon as a client has connected, downloaded everything, and is ready to play. This is the typical place to initialize the player entity.
+<br />
+
 -   **void PutClientInServer()**: called when the client requests to spawn. Typically puts the player somewhere on the map and lets him play.
+<br />
+
 -   **.float SendEntity(entity to, float sendflags)**: called when the engine requires a CSQC networked entity to send itself to a client, referenced by *to*. Should write some data to *MSG\_ENTITY*. *FALSE* can be returned to make the entity not send. See *EXT\_CSQC* for information on this.
+<br />
+
 -   **void URI\_Get\_Callback(...)**:
+<br />
+
 -   **void GameCommand(string command)**: called when the “sv\_cmd” console command is used, which is commonly used to add server console commands to the game. It should somehow handle the command, and print results to the server console.
+<br />
+
 -   **void SV\_OnEntityNoSpawnFunction()**: called when there is no matching spawn function for an entity. Just ignore this...
+<br />
+
 -   **void SV\_OnEntityPreSpawnFunction**: called before even looking for the spawn function, so you can even change its classname in there. If it remove()s the entity, the spawn function will not be looked for.
+<br />
+
 -   **void SV\_OnEntityPostSpawnFunction**: called ONLY after its spawn function or SV\_OnEntityNoSpawnFunction was called, and skipped if the entity got removed by either.
+<br />
+
 -   **void SetNewParms()**:
+<br />
+
 -   **void SetChangeParms()**:
+<br />
+
 -   **.float customizeentityforclient()**: called for an entity before it is going to be sent to the player specified by *other*. Useful to change properties of the entity right before sending, e.g. to make an entity appear only to some players, or to make it have a different appearance to different players.
+<br />
+
 -   **.void touch()**: called when two entities touch; the other entity can be found in *other*. It is, of course, called two times (the second time with *self* and *other* reversed).
+<br />
+
 -   **.void contentstransition()**:
+<br />
+
 -   **.void think()**: described above, basically a timer function.
+<br />
+
 -   **.void blocked()**: called when a *MOVETYPE\_PUSH* entity is blocked by another entity. Typically does either nothing, reverse the direction of the door moving, or kills the player who dares to step in the way of the Mighty Crusher Door.
+<br />
+
 -   **.void movetypesteplandevent()**: called when a player hits the floor.
+<br />
+
 -   **.void PlayerPreThink()**: called before a player runs his physics. As a special exception, *frametime* is set to 0 if this is called for a client-side prediction frame, as it still will get called for server frames.
+<br />
+
 -   **.void PlayerPreThink()**: called after a player runs his physics. As a special exception, *frametime* is set to 0 if this is called for a client-side prediction frame, as it still will get called for server frames.
+<br />
+
 -   **void StartFrame()**: called at the beginning of each server frame, before anything else is done.
+<br />
+
 -   **void EndFrame()**: called at the end of each server frame, just before waiting until the next frame is due.
+<br />
+
 -   **void SV\_PlayerPhysics()**: allows to replace the player physics with your own code. The movement the player requests can be found in the *vector* field *movement*, and the currently pressed buttons are found in various fields, whose names are aliased to the *BUTTON*\_ macros.
--   **void SV\_ParseClientCommand(string command)**: handles commands sent by the client to the server using “cmd ...”. Unhandled commands can be passed to the built-in function *clientcommand* to execute the normal engine behaviour.
+<br />
 
+-   **void SV\_ParseClientCommand(string command)**: handles commands sent by the client to the server using “cmd ...”. Unhandled commands can be passed to the built-in function *clientcommand* to execute the normal engine behaviour.
+<br />
\ No newline at end of file
index c89621e96b89e4f0cf20e257bcee5d50adbce8b9..f575ce727514d574af6045940c29a83ae289da2d 100644 (file)
--- a/Items.md
+++ b/Items.md
@@ -13,25 +13,25 @@ Health items increase your health by a certain amount. With health items you can
 | **Health** | 100 | 50 | 25 | 5 |
 | **Item image** |![][h_mega] | ![][h_big] |![][h_medium] | ![][h_small] |
 
-[h_mega]: http://pics.nexuizninjaz.com/images/s92ftsza0q7r8daau47z.png
-[h_big]: http://pics.nexuizninjaz.com/images/qxiffzan7xx91qj9x1.png
-[h_medium]: http://pics.nexuizninjaz.com/images/mulmtdwq27dwh2zwrpa.png
-[h_small]: http://pics.nexuizninjaz.com/images/91w9h1tomsbml5ukj8re.png
+[h_mega]: uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png
+[h_big]: uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png
+[h_medium]: uploads/968d5da002ae4e9070381e09c833504e/health_medium.png
+[h_small]: uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png
 
 Armor
 -----
 
-Armor items increase your armor by a certain amount. With armor items you can reach a maximum health of 200.
+Armor items increase your armor by a certain amount. With armor items you can reach a maximum armor of 200.
 
 | **Name** | Mega Armor | Big Armor | Medium Armor | Small Armor |
 |:-|:-:|:-:|:-:|:-:|
 | **Armor** | 100 | 50 | 25 | 5 |
 | **Item image** |![][a_mega] | ![][a_big] |![][a_medium] | ![][a_small] |
 
-[a_mega]: http://pics.nexuizninjaz.com/images/havtb83g2yglb201q84t.png
-[a_big]: http://pics.nexuizninjaz.com/images/jyi1aj1vx6rrrckx7zgt.png
-[a_medium]: http://pics.nexuizninjaz.com/images/ijq1xmxw797e1klv1l.png
-[a_small]: http://pics.nexuizninjaz.com/images/5zl9javsx6dasvom21gv.png
+[a_mega]: uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png
+[a_big]: uploads/e7c23520812595b949077456d0e0b002/armor_big.png
+[a_medium]: uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png
+[a_small]: uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png
 
 
 Ammo
index 386b9a626a215c89f52d09dc1099697d03ad58a2..e901cf002ef6fa34aa235e95289b5864329a92e9 100644 (file)
@@ -29,7 +29,7 @@ Finally, you can drop a key by pressing the “Drop flag/key” control. It's [F
 Scoring
 -------
 
-In Key Hunt, the score depends on the number of teams in the game. As of 0.8.2, the scoring (by default) is as follows:
+In Key Hunt, the score depends on the number of teams in the game. As of 0.8.5, the scoring (by default) is as follows:
 
 | Action                                | 4 teams       | 3 teams | 2 teams | Notes                                              |
 |:-------------------------------------:|:-------------:|:-------:|:-------:|:--------------------------------------------------:|
@@ -41,7 +41,7 @@ In Key Hunt, the score depends on the number of teams in the game. As of 0.8.2,
 | Kill other enemy                      | +1            | +1      | +1      |                                                    |
 | Suicide/teamkill                      | -1            | -1      | -1      |                                                    |
 
-\* = This is a known bug in 0.8.2. See [issue #2344](https://gitlab.com/xonotic/xonotic-data.pk3dir/issues/2344)
+\* = Two teams will get 17 points while one team only gets 16 points. This is a known bug in 0.8.5. See [issue #2344](https://gitlab.com/xonotic/xonotic-data.pk3dir/issues/2344)
 
 ### Custom scoring
 
index 5a4964ff2110d47095682da003f10bdced6caeee..384e0f325a257b92efbfa73b664a9c830707bf0f 100644 (file)
@@ -1,31 +1,31 @@
-The color codes are used in event messages to change the color. When of these appear anywhere in the text, the color of the text will be changed. The code itself will be invisible.
+Color codes are used in event messages to change text color (the code itself is invisible).
 
 * Base colors:
 
 | Code | Note |
 | ------ | ------ |
-| `^1` | Red |
-| `^2` | Green |
-| `^3` | Yellow |
-| `^4` | Dark Blue |
-| `^5` | Light Blue |
-| `^6` | Pink |
-| `^7` | White |
-| `^8` | half transparent white|
-| `^9` | Light Gray |
-| `^0` | Black |
-| `^xRGB` | RGB color |
+| `^1` | `#F00` Red |
+| `^2` | `#0F0` Green |
+| `^3` | `#FF0` Yellow |
+| `^4` | `#00F` Blue |
+| `^5` | `#0FF` Cyan |
+| `^6` | `#F0F` Magenta |
+| `^7` | `#FFF` White |
+| `^8` | `#FFF8` Half transparent white|
+| `^9` | `#888` Light Gray |
+| `^0` | `#000` Black |
+| `^xRGB` | `#RGB` Custom color |
 
 * Notification colors:
 
-| Code | Note |
-| ------ | ------ |
-| `^BG` | Default color |
-| `^TC` | Team color |
-| `^F1` | foreground/normal color 1 |
-| `^F2` | foreground/normal color 2 |
-| `^F3` | foreground/normal color 3 |
-| `^F4` | foreground/normal color 4 |
-| `^K1` | "kill" color 1 |
-| `^K2` | "kill" color 2 |
-| `^K3` | "kill" color 3 |
+| Code | Note | Corresponding cvar|
+| ------ | ------ | ------ |
+| `^TC` | Team color | - |
+| `^BG` | Default color | hud_colorset_background |
+| `^F1` | foreground/normal color 1 | hud_colorset_foreground_1 |
+| `^F2` | foreground/normal color 2 | hud_colorset_foreground_2 |
+| `^F3` | foreground/normal color 3 | hud_colorset_foreground_3 |
+| `^F4` | foreground/normal color 4 | hud_colorset_foreground_4 |
+| `^K1` | "kill" color 1 | hud_colorset_kill_1 |
+| `^K2` | "kill" color 2 | hud_colorset_kill_2 |
+| `^K3` | "kill" color 3 | hud_colorset_kill_3 |
index fec153e71e6c721dd443f613be1567531ed41b2a..b6fc74fb3552db936379f23e6bad4003e2496d4c 100644 (file)
@@ -1,15 +1,15 @@
 Mapping - Introduction
 ======================
 
-Welcome to the wonderful world of mapping, this tutorial will lead you through the fundamentals of mapping for xonotic.
+Welcome to the wonderful world of mapping, this tutorial will lead you through the fundamentals of mapping for Xonotic.
 Many of these tutorials may also useful for other games that use the quake3map2 map format.
 
 REQUIREMENTS
 ------------
 
--   a computer that can run Xonotic
--   the [mapping support package](http://dl.xonotic.org/xonotic-0.8.2-mappingsupport.zip)
--   time
+-   A computer that can run Xonotic.
+-   If you use an old version of NetRadiant or another map editor (including NetRadiant-custom, which is a fork of NetRadiant), you need the [mapping support package](http://dl.xonotic.org/xonotic-0.8.5-mappingsupport.zip). It isn't needed with the latest NetRadiant builds.
+-   Time.
 
 [Setup](mapping-Setup) \>\>
 
index c3e73b0ad6eb646f1bea32683690f452ec400c91..7069c7dc17fc3d06dd28b2c71869a2c1eb6cdbf0 100644 (file)
@@ -4,17 +4,19 @@ Mapping - Setup
 How to get your system all set up to start mapping
 --------------------------------------------------
 
-### Step 1: Obtain mapping support
+### Step 1 (optional): Obtain the mapping support
 
-If you didn’t already, download the [mapping support zip](http://dl.xonotic.org/xonotic-0.8.2-mappingsupport.zip)
+If you didn’t already, download the [mapping support zip](http://dl.xonotic.org/xonotic-0.8.5-mappingsupport.zip).  
+This is only needed if you use an old version of NetRadiant or another map editor (including NetRadiant-custom, which is a fork of NetRadiant).  
+If you download NetRadiant from the [NetRadiant website](https://netradiant.gitlab.io) or compile it from source, you can ignore the following steps and proceed to step 5 directly.
 
-### Step 2: Extract zip
+### Step 2 (optional): Extract the zip
 
 Extract the zip archive using your favorite archiving tool
 
-### Step 3: Locate the folder for userdata
+### Step 3 (optional): Locate the folder for userdata
 
-Locate your userdata folder, note that this is **NOT** the install location. This is the place xonotic saves your userdata.
+Locate your userdata folder, note that this is **NOT** the install location. This is the place where Xonotic saves your userdata.
 
 -   **Windows**: `C:\users\user\saved games\xonotic\data`
 -   **Linux**: `~/.xonotic/data`
@@ -22,7 +24,7 @@ Locate your userdata folder, note that this is **NOT** the install location. Thi
 
 This folder has a similar layout as the game folder. Game wise these data folders are treated similarly, however, it is best to save your work in the userdata folder so that you don’t accidentally mess up your Xonotic install, or so that your work doesn’t get lost in an update.
 
-### Step 4: Moving the mapping support pk3
+### Step 4 (optional): Move the mapping support pk3
 
 The mapping support zip contains a file called `xonotic-<timestamp>-maps-mapping.pk3`. Move this file to the userdata folder (see step 3), **NOT** `data/data`.
 This folder should also contain your `config.cfg`.
@@ -31,16 +33,17 @@ This folder should also contain your `config.cfg`.
 
 -   **Windows**: Windows users can download a precompiled version downloadable from the [NetRadiant website](https://netradiant.gitlab.io/page/download/).  
 The mapping support zip also contains a compiled version of NetRadiant in the `mapping` folder but while it may works, it is fairly outdated and lacks a lot of updates.
--   **Linux**: Linux users can use a precompiled version downloadable from the [NetRadiant website](https://netradiant.gitlab.io/page/download/).
--   **macOS**: Current versions of macOS don't seem to work because of GTKGLExt, compiled versions from [here](http://ingar.intranifty.net/gtkradiant/index.html) might work
+-   **Linux**: Linux users can use a precompiled version downloadable from the [NetRadiant website](https://netradiant.gitlab.io/page/download/).  
+(_NOTE: Archlinux users can also use the [netradiant-git](https://aur.archlinux.org/packages/netradiant-git/) PKGBUILD_)
+-   **macOS**: macOS users can use a precompiled version downloadable from the [NetRadiant website](https://netradiant.gitlab.io/page/download/). 
+-   **FreeBSD**: FreeBSD users can use a precompiled version downloadable from the [NetRadiant website](https://netradiant.gitlab.io/page/download/). 
 
 People wanting to compile NetRadiant themselves can look at the [NetRadiant Repository](https://gitlab.com/xonotic/netradiant).
 
-### Step 6: Setting up NetRadiant
+### Step 6: Set up NetRadiant
 
-When you first start up radiant it may ask where the engine path is. Simply, point it to the xonotic install location. Then NetRadiant should start,and the lower right pane should have lists of texture packs. If there are no texture packs, then refer back to step 4.
+When you first start up radiant it may ask where the engine path is. Simply point it to the Xonotic install location. Then NetRadiant should start and the lower right pane should have a list of texture packs. If there are no texture packs, then you may need the mapping support, please refer back to step 4.
 
 \<\< [Introduction](mapping-Introduction) | [NetRadiant](mapping-NetRadiant) \>\>
 
-… [Creating_Maps](Creating-Maps) …
-
+… [Creating_Maps](Creating-Maps) …
\ No newline at end of file
index 1f505f8c5b810880d31b4ae753c36b5786178d0a..00546f1c4ebdccc9122daebe5684a223c8727522 100644 (file)
@@ -15,12 +15,13 @@ While technically only the `.bsp` file generated by the map compiler and all use
 some other files are needed so that the map works properly.
 
 `maps/<mapname>.bsp` - This is your compiled map file  
+`maps/<mapname>/lm_<numbers>.tga` - Those are precomputed lights for your map  
 `maps/<mapname>.mapinfo` - This file has the meta information, artist, global music track, gametype(s) and game settings  
 `maps/<mapname>.tga|png|jpg` - This file is a screenshot of your map. If you don’t include this, you map doesn’t have a picture in the menu or the voting screen for servers and angels cry.  
-`maps/<mapname>.waypoints` - [Waypoints](mapping-Waypoints) for bots  
+`maps/<mapname>.waypoints` - [Waypoints](Creating-bot-waypoints) for bots  
 `maps/gfx/<mapname>_mini.tga|png|jpg` - Minimap, will be generated by the map compiler.  
 
-###Example mapinfo file
+### Example mapinfo file
 
 ```
 title My First Map
@@ -41,4 +42,4 @@ Adding these files is **strongly recommended**:
 
 \<\< [Map picture](mapping-MapPicture)
 
-… [Creating_Maps](Creating-Maps) …
+… [Creating_Maps](Creating-Maps) …
\ No newline at end of file
diff --git a/Maps.md b/Maps.md
index c73bff56f951ec7c53edd8ba76455e98d67e0fdb..2cb944b86411bb5ee9834b07cca396b8c058d93c 100644 (file)
--- a/Maps.md
+++ b/Maps.md
@@ -317,28 +317,6 @@ Nexball Arena
  
 **Description**: Small, simple, enclosed arena for finding out who’s the true nexball champion! No obstacles in the way...
 
-Oilrig
-----------
-
-[![](http://pics.nexuizninjaz.com/images/qijflf28fyeza9ltrrfh_thumb.jpg)](http://pics.nexuizninjaz.com/images/qijflf28fyeza9ltrrfh.jpg)
-
-**Gamemodes**:
-[Clan Arena](Clan Arena);
-[Deathmatch](Deathmatch);
-[Freeze Tag](Freeze Tag);
-[Keepaway](Keepaway);
-[Key Hunt](Key Hunt);
-[Last Man Standing](Last Man Standing);
-[Team Deathmatch](Team Deathmatch)
-
-**Author**:
-Tronyn,
-[Debugger](https://forums.xonotic.org/member.php?action=profile&uid=222),
-[SavageX](http://forums.xonotic.org/member.php?action=profile&uid=91),
-Dustin Geeraert,
-Garth Hendy
-
-**Description**: A very large open map designed after an offshore oil rig
 
 Running Man
 -----------
@@ -599,6 +577,31 @@ Newtonian Nightmare
 
 *Removed in*: 0.8.1
 
+Oilrig
+----------
+
+[![](http://pics.nexuizninjaz.com/images/qijflf28fyeza9ltrrfh_thumb.jpg)](http://pics.nexuizninjaz.com/images/qijflf28fyeza9ltrrfh.jpg)
+
+**Gamemodes**:
+[Clan Arena](Clan Arena);
+[Deathmatch](Deathmatch);
+[Freeze Tag](Freeze Tag);
+[Keepaway](Keepaway);
+[Key Hunt](Key Hunt);
+[Last Man Standing](Last Man Standing);
+[Team Deathmatch](Team Deathmatch)
+
+**Author**:
+Tronyn,
+[Debugger](https://forums.xonotic.org/member.php?action=profile&uid=222),
+[SavageX](http://forums.xonotic.org/member.php?action=profile&uid=91),
+Dustin Geeraert,
+Garth Hendy
+
+**Description**: A very large open map designed after an offshore oil rig
+*Removed in*: 0.8.5
+
+
 Red Planet
 -----------
 
@@ -623,4 +626,4 @@ Red Planet
 
 **Description**: A large facility on a red dusty planet
 
-*Removed in*: 0.8
\ No newline at end of file
+**Removed in**: 0.8
\ No newline at end of file
diff --git a/Moderation-tools.md b/Moderation-tools.md
new file mode 100644 (file)
index 0000000..b5330e2
--- /dev/null
@@ -0,0 +1,85 @@
+## How can I block/ignore people personally?
+
+**As a player**, use `ignore #player_id`, this player will be blocked and entirely hidden from your personal chat logs. \
+Keep in mind that this can result in confusing situations as the blocked player(s) can continue talking to others in the server while you've blocked them. \
+To unblock a single player, use `unignore #player_id`. \
+To unblock all currently ignored players, use `clear_ignores`.
+
+_Note: you can't ignore more than 16 players._
+
+## How can I disallow people from chatting in my server?
+
+**As a server admin**, if there's someone spamming in the chat all time or being hostile, use `chatban #player_id` to prevent them from being able to send any messages to anyone, this includes private messages, team chat and spectator chat. \
+To unban the chatbanned player, use `unchatban #player_id`. \
+To see the list of chatbanned players, use `chatbans`.
+
+_Note 1: there's another aliased version: `mute`. It has been used for many years while it wasn't improved, only temporarily muting for the duration of the match._ \
+_Note 2: `muteban` is an alias to `chatban` as it was this feature's previous name and has been used for many years by a few admins while it was implemented via_ [_SMB modpack_](https://github.com/MarioSMB/modpack) _before its merge to Xonotic's official repositories._
+
+Set `g_chat_allowed` to 0, if you think there is a good reason to not anyone use any chats. \
+Remember, you can disable private, spectator and team chat as you wish.
+
+- `g_chat_private_allowed 0` disables private chat, players can't use `tell #player_id` to send a private message to someone.
+- `g_chat_spectator_allowed 0` players can't chat while spectating.
+- `g_chat_team_allowed 0` disables team chat, preventing players from talking privately in their own teams.
+
+These cvars are set to 1 by default. Set any of them to 0 if you wish to disallow that chat. 
+
+## How can I disallow people from voting in my server?
+
+**As a server admin**, use `voteban #player_id` to disallow a player from voting, they can't start a vote nor vote Yes or No for votes called by other players. \
+To allow the votebanned player vote again, use `unvoteban #player_id`.\
+To see the list of disallowed players from voting, use `votebans`. 
+
+## How can I disallow people from playing in my server?
+
+**As a server admin**, use `playban #player_id` to disallow a player from playing in the server, this player will be forced to spectate. \
+To allow a player to play again instead of being forced to spectate, use `unplayban #player_id`.\
+To see the list of players forced to spectate, use `playbans`. 
+
+_Note: `g_playban_minigames 1` also prevents the playbanned players from participating in minigames. (This is disabled by default)._
+
+## How can I ban people from my server?
+
+**As a server admin**, doing that can be pretty harsh. Use this last resource if you decided definitely that it is what you want to do. \
+`ban <player_IP_address/key_hash> <bantime in seconds> <reason>` stores a ban in the server, it isn't a quick ban. The player can stay in the server unless if disconnects and tries to go back. \
+`kickban #player_id` stores a ban and kicks the player from the server. \
+To unban the player, use `unban <player_IP_address/key_hash>`. \
+To see the ban list, use `bans`.
+
+## TL;DR:
+
+#### Personally as a player
+
+- block in chat
+  * `ignore #player_id`
+- unblock in chat
+  * `unignore #player_id`
+- List blocks
+  * Can't in-game.
+
+#### In a server as an admin or a moderator
+
+- Ban
+  * `chatban #player_id`
+  * `voteban #player_id`
+  * `playban #player_id`
+- Unban
+  * `unchatban #player_id`
+  * `unvoteban #player_id`
+  * `unplayban #player_id`
+- List bans
+  * `chatbans`
+  * `votebans`
+  * `playbans`
+
+#### From the whole server
+
+- Kick and/or ban from the server
+  * `kick #player_id`
+  * `ban <player_IP_address/key_hash> <bantime in seconds> <reason>`
+  * `kickban #player_id`
+- Unban from the server
+  * `unban <player_IP_address/key_hash>`
+- List bans from the server
+  * `bans`
\ No newline at end of file
diff --git a/Monsters.md b/Monsters.md
new file mode 100644 (file)
index 0000000..7479184
--- /dev/null
@@ -0,0 +1,94 @@
+## Overview
+
+While this page will focus on the official monsters that ship with the game, other monsters from popular Xonotic mods will be included. Some monsters described in this section come from Quake and the descriptions for those are mirrored from this [wiki](https://quakewiki.org/wiki/Category:Monsters).
+
+_Note: Some features may be missing from this wiki page_.
+
+# Vanilla monsters
+
+## Zombie
+
+![xonotic20230616230630-00.jpg](uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg)
+
+Zombie is an undead human that tears chunks of flesh from its head, hindquarters, and crotch before proceeding to toss them at the player character for minor damage. When someone comes close to the zombie, the zombie will start chasing and launching to attack with a bite. When the zombie is in a dead pose in battle, can be revived and continue as before. To kill him, you will need to shoot / hit the zombie when you see it in a dead pose during the battle.
+
+## Spider
+
+![xonotic20230616230916-00.jpg](uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg)
+
+Spider is a big arachnid that walks with 8 legs on the ground, can walk faster than other monsters. When someone approaches the spider, the spider will spit cobweb energy balls to slow down prey and attack nearby with its chelicerae.
+
+## Wyvern
+
+![xonotic20230616230906-00.jpg](uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg)
+
+Wyvern is a dragon that was said to breathe fire or to possess a poisonous breath, a reptilian body, two legs or sometimes none, and a spiked tail. The alleged marine variant had a fishtail instead of the spiny dragon tail. Wyvern flies around the map, when someone approaches this monster, the opponent will be chased and attacked by his fireballs.
+
+## Shambler
+
+![xonotic20230616230550-00.jpg](uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg)
+
+Shamblers are truly a force to be feared. They tend to have an immense amount of health and take only half the damage from explosions. His pride and joy is his lightning energy attack. His attacks are throwing electro balls, if the prey is near to him, he will attack with his claws.
+
+_Note: The internal file is named "golem.qc"_
+
+## Mage
+
+![4eg.jpg](uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg)
+
+Mage is capable of developing magic with his powerful knowledge that he learned and practiced during his spell sciences. Sometimes the mage can give regeneration to the owner and sometimes makes the owner pay the health for his needs to be with him. The mage attacks launching magic balls, this spell attack is called as "Mage spike".
+
+# Unofficial monsters
+
+## Afrit
+
+![afrit](uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg){width="290"}
+
+Afrit is a dragon / flying demon that covers the flames around its body. His fire power is strong but his movements are a little slow. Afrit can see the prey as it gets closer, when it comes, Afrit will start to follow and attack with his fireballs to the target.
+
+## Creeper
+
+![creeper](uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg){width="280"}
+
+The same things as the mage, but only attacks nearby to the prey, looks like hitting. This info is still unknown.
+
+## Demon
+
+![demon](uploads/56b672332778d67b7c359b611d54c06f/demon.jpg){width="290"}
+
+Demon is a four-legged, monkey-like beast that uses its claws to slash a target. In addition, it is very fast and can leap great distances. Demons stand approximately 6 feet tall (their back rises above their head) and have a muscular appearance. With his mouth full of sharp teeth, he can gut a living being.
+
+## Enforcer
+
+![enforcer](uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg){width="270"}
+
+Enforcer is an upgraded Grunt wearing a Biosuit and is equipped with a Laser Rifle. Enforcers will fire two lasers as soon as they see you. Each laser will disappear within six seconds if it does not make contact with another entity. The lasers can be easily avoided. Due to their slow nature, it's easy to avoid the lasers and manage to attack without any difficulty.
+
+## Ogre
+
+![ogre](uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg){width="270"}
+
+Ogres carry a deadly chainsaw for melee fights and a grenade launcher otherwise (though their grenade launcher is weaker than the player's), they can truly pack a punch.
+
+## Scrag
+
+![scrag](uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg){width="290"}
+
+Scrags possess some cunning unlike other monsters. They are constantly moving side to side (except when attacking), and so manage to dodge many incoming slow-moving projectiles. Also, if you duck behind cover while they are attacking, they may throw an extra shot or two at your last seen location, so you might want to be careful before you pop back out again.
+
+## Soldier
+
+![soldier](uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg){width="260"}
+
+Soldier is an abandoned military warrior with grudges and a desire to kill others. His weapons aren't strong, but he can aim well at the target and control their base where he is prowling.
+
+# Notes for players
+
+To spawn a monster, either:
+
+* Press F8 \>\> Select Spawn monster \>\> And monster is spawned in some place of the map
+* Create a map with a monster spawn point in it
+
+# Notes for developers
+
+**Official monster source codes are in this **[**directory**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/master/qcsrc/common/monsters/monster)**.** Unofficial monster source code is stored in the [SMB modpack](https://github.com/MarioSMB/modpack/tree/master/mod/common/monsters).
\ No newline at end of file
diff --git a/Murder-in-Megaerebus-Manor.md b/Murder-in-Megaerebus-Manor.md
new file mode 100644 (file)
index 0000000..18aafa5
--- /dev/null
@@ -0,0 +1,240 @@
+# Murder in Megaerebus Manor (MMM)
+
+<img src="uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png" alt="logoMMMxonoticluma"/>
+
+<img src="uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png" alt="gametype_mmmluminos"/>
+
+<img src="uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png" alt="gametype_mmmxaw"/>
+
+## A group of space civilians have murderers among them. Murderers must kill civilians, while the civilians have to try to find and kill the murderers.
+
+# Objective of the Game
+
+The game mode is based on the fact that there is a small group of Murderers and another of Detectives, there is an explanation of the functions of each one.
+
+
+## Civilians
+
+The civilians are the majority (62.5% of the game's population by default.) Their group color is green.
+The task of the civilian is to detect Murderers and defend detectives more than anything, they must kill the right person or anything special.
+
+
+## Murderers
+
+The Murderers are the medium sized group in MMM (25% of the population or one Murderer for every four players.) Their group color is red, but this is not displayed to anyone other than Murderers, or when a Murderer has been confirmed to be dead.
+The Murderers must murder everyone undetected, they know who they are because only among themselves do they see a red "circle" that blinks around their companions' bodies. They must kill all Civilians before time runs out.
+
+
+## Detectives
+
+The Detectives are the smallest group in MMM (12.5% of the population or one Detective for every eight players.) They are special Civilians given equipment. Their group color is blue.
+Detectives have special methods to detect the Murderer, for example, when they see a body, they must analyze the body, when seeing it, shoot with Shockwave weapon to the body, if the body was recently killed, it will tell if he was Civilian, Detective or a Murderer.
+
+
+## About Karma points
+
+It is worth clarifying that everyone can kill each other, but there is something called "**Karma**", which starts with an initial, and increases if they do things right (if traitors kill, or if traitors kill people), otherwise, the Karma will be discounted.
+
+The Karma is used for the damage that weapons generate, the more Karma, the more damage your weapon will do. When Karma is lower, lesser damage your weapon will do.
+
+If the Karma is lower, the player can be banned temporarily to avoid teamkills or any abuse with the end to keep the game in balance. In that case, the ban tool cvar is set to be forced to spectate by default.
+
+
+
+# Screenshots
+
+- Gamemode selection menu:
+
+<img src="uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg" alt="MenuMMM" width="400"/>
+
+<br/>
+<br/>
+<br/>
+<br/>
+
+- Gameplay:
+
+<img src="uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg" alt="gameplayMMM" width="400"/>
+
+<br/>
+<br/>
+<br/>
+<br/>
+
+- Detective role, when you use Shockwave weapon shooting dead players to see who killed them:
+
+<img src="uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg" alt="detectiveUsingShockwave" width="400"/>
+
+<img src="uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg" alt="detectiveUsingShockwaveSlime" width="400"/>
+
+<br/>
+<br/>
+<br/>
+<br/>
+
+- Karma score, plus end of the round, everyone show their role, Murderers are revealed when round is over:
+
+<img src="uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg" alt="karmaScore" width="400"/>
+
+<br/>
+<br/>
+<br/>
+
+
+# Rules
+
+## Basic Rules
+
+All basic rules apply to any role and or players.
+​
+
+- No Randomly Damaging Mate​
+
+1. Randomly Damaging a teammate without sufficient evidence of them committing a kill on site as offence, This includes damages that have been done unintentionally.​
+
+2. Killing any player that is away from their keyboard.​
+
+
+- No Murderer Baiting
+
+1. Performing Murdererous acts as civilian repeatedly.
+
+2. Tricking other players into believing you're a Murderer.
+
+
+
+## Role Rules
+
+These rules only apply if you are apart of that role for example you can't break a detective rule if you're an civilian.​
+
+
+<span style="color:green">**Civilians**</span>​
+
+1. Do not commit any Murdererous acts.
+
+2. Do not work with Murderers
+
+3. Only kill when you have a valid reason to do so.
+
+4. Obey valid detective orders at all times.
+
+5. Do not harm the detectives in any way.
+
+6. Do not use a Murderer defib at all.
+
+
+<span style="color:red">**Murderers**</span>
+
+1. Do not kill other Murderers.
+
+2. Always try to alert other Murderers to your traps.
+
+3. Do not sell out other Murderers.
+
+4. Do not use a Cleaning defib at all.
+
+
+<span style="color:blue">**Detectives**</span>
+
+1. Do not give unreasonable orders.
+
+2. Do not harm Civilians
+
+3. Do not abuse your powers.
+
+4. Do not work with Murderers.
+
+5. Do not use the Murderer defib at All.
+
+## Kill on Site Rules
+
+A kill on site must come under valid for you to act on it. Any kill on site marked with the role letter and color (<span style="color:blue">D</span>, <span style="color:red">M</span> or <span style="color:green">C</span>) are only valid if given by that role. if you kill on site someone for an invalid reason then you may be warned for False kill on site.​
+
+- Valid kill on site​
+
+1. Self Defence.
+
+2. Damage without a valid reason.​
+
+3. Mass killing.​
+
+4. Associating with Murderers.​
+
+5. Hiding game sensitive items.​
+
+6. Using Murderer weaponry without being proven.​
+
+7. Failing to Identify bodies after killing.​
+
+8. Walking past multiple unidentified bodies.​
+
+
+- Invalid kill on site​
+
+1. Kill on site on a Weapon.​
+
+2. Kill on site on a Location.​
+
+3. Not following Civilians orders.​
+
+4. Suspicion.​
+
+5. Aiming at players.​
+
+
+## Notes for developers / mappers
+
+- For developers, the source code is here:
+
+[LegendGuard's MMM repository](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/LegendaryGuard/ttt)
+
+- For mappers:
+
+Inside the map (.pk3 file), in .mapinfo file, you write: `gametype mmm`
+
+Moreover, you can enable this gamemode in the console using this command: 
+`sv_cmd gametype mmm`
+
+- Cvars:
+
+`g_mmm_not_lms_maps 0` // "when this is set, LMS maps will NOT be listed in mmm"
+
+`g_mmm_not_dm_maps 0` // "when this is set, DM maps will NOT be listed in mmm"
+
+`g_mmm_murderer_count 0.25` // "number of players who will become murderers, between 0 and 0.9 to use a multiplier of the current players, or 1 and above to specify an exact number of players"
+
+`g_mmm_detective_count 0.125` // "number of players who will become detectives, between 0 and 0.9 to use a multiplier of the current players, or 1 and above, to specify an exact number of players. 0 = no detectives"
+
+`g_mmm_punish_teamkill 0` // "enable option to kill the player when they kill an ally"
+
+`g_mmm_reward_civilian 1` // "give a point to all civilian players if the round timelimit is reached, in addition to the points given for kills"
+
+`g_mmm_warmup 10` // "how long the players will have time to run around the map before the round starts"
+
+`g_mmm_round_timelimit 180` // "round time limit in seconds"
+
+`g_mmm_max_karma_points 1000` // "limit of maximum number of karma points will have in the server"
+
+`g_mmm_min_karma_points 550` // "limit where number of karma points can be reached when are being decreased"
+
+`g_mmm_karma_bankick_tool 1` // "tool for strict rules when karma is low: '0' nothing does, '1' forces player to spec, '2' kicks player, '3' bans player"
+
+`g_mmm_karma_bantime 1800` // "number of seconds to ban someone with very low karma"
+
+`g_mmm_karma_damageactive 1` // "enable karma damage rule. If a player's karma is low, they will not do as much damage as a player who has high or full karma"
+
+`g_mmm_karma_damagepunishmentdeal 20` // "punishment damage points when player kills an ally"
+
+`g_mmm_karma_severity 0.25` // "how severe karma is to decrease karma points to the players [0.1 - 1.0]"
+
+`g_mmm_reward_detective 1` // "give a point to all detective players if investigated corpses"
+
+<br/>
+<br/>
+<br/>
+<br/>
+<br/>
+
+~~Previously and similarly, there was someone else who used to work on that kind of project, but it was separate and not entirely open. Data is from 2019.~~
+
+~~[obsolete reference](https://gitlab.com/xonotic/xonotic/-/wikis/Trouble-in-Terrorist-Town)~~
\ No newline at end of file
index 4b75054b461e878ad32b5c6a2bebaec2a26645c2..f0f2f8ef7349a3db0c1895e9c7a87da0647aadf0 100644 (file)
@@ -70,7 +70,7 @@ This is the list of pre-selected tracks that we have so far _(work in progress)_
 ||**[To the East](http://www.4shared.com/file/250363291/cd3f1a3/To_the_East.html) ([S](http://www.4shared.com/file/250360264/e994b60d/To_the_East.html))**|NEXT POLL|
 |mickrippon|**[Jumping in Space](http://mickrippon.com/xonotic/music_jumpinginspace.zip) (S)**|ACCEPTED|
 ||[Ribcage 2](http://www.mickrippon.com/temp/ribcage2.ogg)|REJECTED|
-|divVerent|**[Foo hundred and eighty](http://rm.endoftheinternet.org/~xonotic/foo180.ogg) ([S](http://rm.endoftheinternet.org/~xonotic/foo180.mmpz))**|NEXT POLL|
+|divVerent|**[Foo hundred and eighty](https://rm.cloudns.org/~xonotic/foo180/foo180.flac) ([S](https://rm.cloudns.org/~xonotic/foo180/foo180.mmpz))**|NEXT POLL|
 
 Status legend
 -------------
diff --git a/Nades.md b/Nades.md
new file mode 100644 (file)
index 0000000..925d131
--- /dev/null
+++ b/Nades.md
@@ -0,0 +1,156 @@
+# Nades
+
+Come in a variety of types. The offhand hook bind or drop weapon bind throws the grenade. Hold the throw key E to throw the nade. (*NOTE: If you have a Grappling Hook weapon with you, you will have to press the G key once to throw it and then press it again when you want to throw the nade. Due to development reasons, the Grappling Hook only can be used with the E key as the main key, so it was developed to avoid errors in the game.*) Press F8 to switch nade types.
+
+# Nade types
+
+## Normal
+
+<img src="uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg" alt="normalnade" width="450"/>
+
+<img src="uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg" alt="normalboom" width="450"/>
+
+Frag grenade. Explodes.
+
+## Napalm
+
+<img src="uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg" alt="napalm" width="450"/>
+
+<img src="uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg" alt="napalmboom" width="450"/>
+
+Shoots several napalm globs in a circle around the nade. Touching these will ignite players and likely kill them.
+
+## Nitro
+
+<img src="uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg" alt="nitro" width="450"/>
+
+<img src="uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg" alt="nitroboom" width="450"/>
+
+Freezes enemies in a large radius. Lethal.
+
+## Translocate 
+
+<img src="uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg" alt="translocate" width="450"/>
+
+<img src="uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg" alt="translocateboom" width="450"/>
+
+Teleports the player to where the nade "explodes".
+
+## Spawn
+
+<img src="uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg" alt="spawnnade" width="450"/>
+
+Creates a spawn point that can be respawned on three times. It's useful when you need to go back in the point where you want to start after died, instead starting in the main points.
+
+## Healing
+
+<img src="uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg" alt="healing" width="450"/>
+
+<img src="uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg" alt="healingboom" width="450"/>
+
+Regenerates health in a large radius around the nade.
+
+## Entrap
+
+<img src="uploads/15add5938094995589a7d569e9195f24/entrap.jpg" alt="entrap" width="450"/>
+
+<img src="uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg" alt="entrapboom" width="450"/>
+
+Slows movement within a large radius for 12 seconds. Makes the balls' gravity fall faster when they are inside the orb. In the orb, you will see that the electro balls fall quicker inside and rockets / bullets are slowing down.
+
+## Veil
+
+<img src="uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg" alt="veil" width="450"/>
+
+<img src="uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg" alt="veilboom" width="450"/>
+
+It creates an orb which makes invisible to the players whose are on the side of the one who has thrown(in TDM, CTF, team gamemodes) during a time.
+
+# Pokenade 
+
+<img src="uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg" alt="monsternade" width="450"/>
+
+<img src="uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg" alt="monsternadeboom" width="450"/>
+
+Spawns a monster. Four monsters can be alive at one time. Options include:
+
+## Zombie
+
+Medium speed melee attacker. Can be ridden for movement speed higher than running (but not as fast as strafe jumping).
+
+## Spider
+
+High speed melee attacker. Drops 25 health on death.
+
+## Wyvern
+
+Flying monster.
+
+## Shambler
+
+Large, slow melee attacker. Drops 100 health on death.
+
+## Random
+
+Spawns all of the above and a marine at random.
+
+**More info about monsters are in [this link](Monsters).**
+
+## Notes for developers
+
+**Nades source codes are in this [directory](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/master/qcsrc/common/mutators/mutator/nades).**
+
+If you are creating a server for yourself, to play with the nades, you need to activate the nades and it is recommended to set those variables (you can toggle in the console while writing `g_nades` and pressing TAB to display info of these cvars):
+
+`g_nades 1 // activate nades in the game`
+
+`set g_nades_nade_damage 150 // normal nade explosion damage`
+
+`set g_nades_bonus 1 // adding number of extra nades when it's obtained after time bonus`
+
+`set g_nades_bonus_client_select 1 // allow client side selection of bonus nade type`
+
+`set g_nades_bonus_max 3 // maximum number of bonus grenades`
+
+`set g_nades_bonus_type 3 // type of the bonus grenade. 1:normal 2:napalm 3:ice 4:translocate 5:spawn 6:heal 7:pokenade 8:entrap`
+
+`set g_nades_bonus_score_time 5 // time when someone is scoring, makes adding fast one nade extra more`
+
+`set g_nades_heal_foe -5 // when someone is not ally of the healing orb will take damage during a certain time if this is inside the orb`
+
+`set g_nades_nade_lifetime 3.5`
+
+`set g_nades_nade_maxforce 2000`
+
+`set g_nades_nade_minforce 400`
+
+`set g_nades_nade_newton_style 0 // 0 is absolute, 1 is relative (takes into account player speed), 2 is something in between`
+
+`set g_nades_napalm_ball_damage 110 // napalm explosion damage`
+
+`set g_nades_napalm_ball_lifetime 4 // napalm burning time after exploded`
+
+`set g_nades_napalm_burntime 3 // napalm burn time when someone is burning with those flames`
+
+`set g_nades_entrap_time 15 // entrap orb time`
+
+`set g_nades_nade_refire 10`
+
+`set g_nades_veil_radius 720 // veil orb radius size`
+
+`set g_nades_veil_time 6 // veil orb time`
+
+`set g_nades_ice_freeze_time 2 // How long the ice field will last`
+
+`set g_nades_ice_health 1 // How much health the player will have after being unfrozen`
+
+`set g_nades_ice_teamcheck 0 // Don't freeze teammates`
+
+`set g_nades_ice_explode 1 // Whether the ice nade should explode again once the ice field dissipated`
+
+`set g_nades_spawn_count 1 // number of times player will spawn at their spawn nade explosion location`
+
+`set g_nades_spread 0.04 // random spread offset of throw direction`
+
+
+After setting all this, it can be necessary to restart the server, use `restart` command to apply the changes. Instead doing this manually, you can put those variables in a *.cfg* file. Save the variables inside *nades.cfg* empty file and save it in *xonotic/data* folder. In the game, when you are playing in your own server, execute in the console: `exec nades.cfg` and restart if necessary.
\ No newline at end of file
index c1213ecf18cc9f1dfd8aef7aac5d6686e494ba09..65aa8d2d223e0f88c233f88c3d411eb25711174f 100644 (file)
@@ -3,7 +3,10 @@ NetRadiant - A Stabilized Q3 Map Editor
 
 ![](assets/images/netradiant.png)
 
--   [Download NetRadiant](Download NetRadiant) (missing)
+[Website with download links](https://netradiant.gitlab.io)
+
+[How to set up NetRadiant](Mapping Setup)
+
 -   [Additional map editor features](Additional map editor features) (missing)
 -   [Additional map compiler features](Additional map compiler features) (missing)
 -   [Complete list of entity keys](Complete-list-of-entity-keys)
index 7a0df567aae7f42648fd6444957afd5923ad8cf9..8d70199edda1c302623d4e866507c4fbff5ca9bd 100644 (file)
@@ -3,9 +3,9 @@ Powerups
 
 Powerups spawn from time to time in the arena and grant to whoever collects them a temporary super power. They usually appear at about every 2 minutes or so.
 
-A powerup usually lasts for 30 seconds. Powerups will also be shown in the radar and the HUD 10 seconds before they appear.
+A powerup lasts for 30 seconds. Powerups will also be shown in the radar and the HUD 10 seconds before they appear.
 
-*Note: All numbers on this page are default values, as of 0.8.2. Servers could, in theory, tweak everything with [CVars](CVars).*
+*Note: All numbers on this page are default values, as of 0.8.6.*
 
 Shield
 ------
diff --git a/Programming-QuakeC-stuff-in-Xonotic.md b/Programming-QuakeC-stuff-in-Xonotic.md
new file mode 100644 (file)
index 0000000..d87431e
--- /dev/null
@@ -0,0 +1,339 @@
+_This article is written as developer notes to ease developer tasks and save QuakeC terms here._
+
+# _Table of Contents_
+> ### 1. [CSQC, MENUQC, SVQC and GAMEQC blocks](#csqc-menuqc-svqc-and-gameqc-blocks)
+> ### 2. [MUTATOR functions](#mutator-functions)
+> > 2.1. [How to use MUTATOR functions](#how-to-use-mutator-functions) <br/>
+> > 2.2. [List of MUTATOR functions](#list-of-mutator-functions)
+> ### 3. [Weapon functions](#weapon-functions)
+> > 3.1. [A bit of introduction](#a-bit-of-introduction) <br/>
+> > 3.2. [List of weapon functions](#list-of-weapon-functions)
+> ### 4. [HUD, Menu and Draw functions](#hud-menu-and-draw-functions)
+> ### 5. [Gamemodes](#gamemodes)
+> > 5.1. [Samples](#samples)
+> ### 6. [Effects](#effects)
+
+# CSQC, MENUQC, SVQC and GAMEQC blocks
+
+Xonotic uses the ***csprogs.dat*** from the server you're playing on, as it must match the server's ***progs.dat*** code (whereas your ***menu.dat*** is always your local copy).
+
+Menu and HUD code are actually separated as they run in 2 distinct programs: ***csprogs.dat*** and ***menu.dat***
+
+Server program is ***progs.dat***
+
+- Code inside a **`#ifdef CSQC`** block is part of the client code and will be compiled to **csprogs.dat**
+
+- Code inside a **`#ifdef MENUQC`** block is part of the menu code and will be compiled to **menu.dat**
+
+- Code inside a **`#ifdef SVQC`** block is part of the menu code and will be compiled to **progs.dat**
+
+- Also, code inside a **`#ifdef GAMEQC`** block is part of both client (not menu) and server code.
+
+### A bit of explanation about the use of each type of cvars
+
+- **g_*** cvars:
+
+Example: `g_balance_grapplehook_speed_fly` is clearly a server or game cvar (**g_*** cvars are server and game cvars), so you CAN'T declare it within a `#ifdef CSQC` block. This type of cvar only can be declared inside a **`#ifdef SVQC`** or **`#ifdef GAMEQC`** block (if possible).
+
+- **sv_*** cvars:
+
+Example: `sv_campcheck` is clearly a server cvar (**sv_*** cvars are server cvars), only can be declared inside a **`#ifdef SVQC`** block.
+
+- **cl_*** cvars:
+
+Example: `cl_chatsound` is clearly a client cvar (**cl_*** cvars are client cvars), only can be declared inside a **`#ifdef CSQC`** block.
+
+- **hud_*** cvars:
+
+Example: `hud_progressbar_alpha` is a client cvar (**hud_*** cvars belong to client cvars), only can be declared inside a **`#ifdef CSQC`** block.
+
+
+<br />
+
+# MUTATOR functions
+
+### How to use MUTATOR functions
+
+You can look the following link if you're trying/testing your own mutator: [Writing your first mutator](writing-your-first-mutator)
+
+**Attention:** to use a hook, first register your mutator using `REGISTER_MUTATOR`, then create your function using `MUTATOR_HOOKFUNCTION`.
+
+
+- **`REGISTER_MUTATOR`**
+
+Registers a new `MUTATOR_HOOKFUNCTION`.
+```c
+REGISTER_MUTATOR(new_mutator_name, some_variable);
+```
+
+
+- **`MUTATOR_HOOKFUNCTION`**
+
+Creates a function and calls `new_mutator_name` (from `REGISTER_MUTATOR`) and one of `#define MUTATOR()` (from `qcsrc/server/mutators/events.qh` main hooks).
+
+Example:
+```c
+MUTATOR_HOOKFUNCTION(new_mutator_name, events.qh_main_hook)
+{
+    // whatever does
+}
+```
+
+- **`MUTATOR_CALLHOOK`**
+
+Calls some `MUTATOR_HOOKFUNCTION`.
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook);
+```
+
+There are different versions and depends how many variables need to be called in a `MUTATOR_HOOKFUNCTION`:
+
+1 `MUTATOR_HOOKFUNCTION` and 1 variable:
+
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook, some_variable);
+```
+
+1 `MUTATOR_HOOKFUNCTION` and 2 variables:
+
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook, some_variable, some_variable);
+```
+
+1 `MUTATOR_HOOKFUNCTION` and 3 variables:
+
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook, some_variable, some_variable, some_variable);
+```
+
+1 `MUTATOR_HOOKFUNCTION` and multiple variables:
+
+```c
+MUTATOR_CALLHOOK(name_of_MUTATOR_HOOKFUNCTION_or_events.qh_main_hook, some_variable, some_variable, some_variable, some_variable, ...);
+```
+
+<br />
+
+## List of MUTATOR functions
+
+You can look the MUTATOR functions in:
+
+- **COMMON:** [`qcsrc/common/mutators/events.qh`](https://timepath.github.io/scratchspace/d4/d95/common_2mutators_2events_8qh.html)
+
+- **CLIENT:** [`qcsrc/client/mutators/events.qh`](https://timepath.github.io/scratchspace/d8/d0e/client_2mutators_2events_8qh.html)
+
+- **SERVER:** [`qcsrc/server/mutators/events.qh`](https://timepath.github.io/scratchspace/d6/ddd/server_2mutators_2events_8qh.html)
+
+<br />
+<br />
+
+# Weapon functions
+
+## A bit of introduction
+
+You'll need understand that weapons can be interacted with **autocvars** variables (example: `float autocvar_g_balance_someweapon_speed;`) and each weapon with .qh file where cvars are declared without the need to declare using `autocvar_blabla...`. *Think*, *touch*, *explode* and those types of functions can be declared within an *attack* function and *whatever* it is called. Note that there are also METHODs that are necessary for the weapon to work.
+
+- **Think** function makes the weapon shot react on what to do.
+- **Touch** function makes the weapon shot react against some element where touch (like player, monster, vehicle, ...).
+- **Explode** function makes the weapon explosion react.
+- **Attack/Whatever** function is where the weapon attack executes, keep in mind that it has the other functions attached to be executed.
+
+You can look the example of this weapon code:
+- [**devastator.qh**](https://timepath.github.io/scratchspace/d9/dfa/devastator_8qh_source.html)
+- [**devastator.qc**](https://timepath.github.io/scratchspace/d9/d5d/devastator_8qc_source.html)
+
+<br />
+
+## List of weapon functions
+
+This is a created list of functions to modify/create weapons. There may be incomplete explanations for each function.
+
+There are contents taken from [`qcsrc/common/weapons/all.qh`](https://timepath.github.io/scratchspace/d0/ddd/weapons_2all_8qh_source.html)
+
+**WARNING:** The contents may content wonky code, and the interactions can change and not do the same what happens here.
+
+<br />
+
+- [**W_SetupShot_Dir**](https://timepath.github.io/scratchspace/d4/d3f/tracing_8qh.html#aff0ea351757ee6caf83b25d12d18656c)
+
+```c
+W_SetupShot_Dir(
+       ent,
+       wepent,
+       s_forward,
+       antilag,
+       recoil,
+       snd,
+       chan,
+       maxdamage,
+       deathtype 
+)
+```
+
+- [**W_SetupProjVelocity_Explicit**](https://timepath.github.io/scratchspace/d7/d31/tracing_8qc.html#a55f8f2b1828413bfb123a5fcb61b9f8e)
+
+```c
+void W_SetupProjVelocity_Explicit(
+    entity     proj,
+    vector     dir,
+    vector     upDir,
+    float      pSpeed,
+    float      pUpSpeed,
+    float      pZSpeed,
+    float      spread,
+    float      forceAbsolute 
+)
+```
+
+- [**W_MuzzleFlash**](https://timepath.github.io/scratchspace/d0/ddd/weapons_2all_8qh_source.html)(located in **`qcsrc/common/weapons/all.qh`** line 406)
+
+In the moment when player shots the weapon, weapon flashes. 
+
+**Note:** write **`#ifdef SVQC`** at the start of using this function, and write with **`#endif`** after declared the function (only can do this if the code needs to be executed, although maybe you need more functions/things in the code inside this).
+
+```c
+void W_MuzzleFlash(Weapon thiswep, entity actor, .entity weaponentity, vector shotorg, vector shotdir);
+```
+
+- [**Weapon selection functions**](https://timepath.github.io/scratchspace/d8/d6b/selection_8qh.html)
+(located in **`qcsrc/server/weapons/selection.qh`**)
+
+- [**Weapon decrease ammo, speed factor, rate factor, reload functions**](https://timepath.github.io/scratchspace/d5/de0/weaponsystem_8qc.html)
+(located in **`qcsrc/server/weapons/weaponsystem.qh`**)
+
+<br />
+
+# HUD, Menu and Draw functions
+
+You can look the draw functions where HUD is being drawn: 
+- [**Draw functions and macros (`qcsrc/client/draw.qh`)**](https://timepath.github.io/scratchspace/d5/d8d/client_2draw_8qh_source.html)
+
+More info inside the code where you can draw/print HUD and menu: 
+- [**Globals, constants, fonts, prints, error cmds, vector stuff, conversion functions and all drawing/printing HUDs/menus/characters related (`qcsrc/dpdefs/upstream/menudefs.qc`)**](https://timepath.github.io/scratchspace/d8/de2/menudefs_8qc_source.html)
+
+Important changes about menus we could learn of:
+- [**Terms of Service in window display and multiplayer dialog**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/19bd3a4f)
+- [**Welcome dialog**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/19d753312f0deff7bd297822907874d532e9303e)
+- [**A button to properly quit the campaign, a "Game menu" (on ESC) and remove the Disconnect dialogue**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/2b2f743fc929bbbe0fc765edf8c433c946764607)
+<br />
+
+# Gamemodes
+
+Keep in mind that to develop a gamemode, you need a map having enabled inside its *name_of_map.mapinfo* file this: `gametype shortcut_of_gamemode`. (example: `gametype tdm` (tdm is Team Deathmatch). After modifying the map file, compress the map contents, save as `.zip` and rename the extension to `.pk3`
+
+Making gamemodes doesn't seem easy. There's a little explanation of what does each element. 
+
+### Generated files for gamemodes:
+
+[`qcsrc/common/gamemodes/gamemode/_mod.inc`](https://timepath.github.io/scratchspace/d9/d67/common_2gamemodes_2__mod_8inc_source.html) generated file where the includes of each gamemode are stored.
+
+[`qcsrc/common/gamemodes/gamemode/_mod.qh`](https://timepath.github.io/scratchspace/d7/d0b/common_2gamemodes_2__mod_8qh_source.html) generated file where the includes of each gamemode are stored.
+
+<br />
+
+### Gamemode files:
+
+- Server type:
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/sv_name_of_gamemode.qc`
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/sv_name_of_gamemode.qh`
+
+<br />
+
+- Client type:
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/cl_name_of_gamemode.qc`
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/cl_name_of_gamemode.qh`
+
+<br />
+
+- Base:
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/name_of_gamemode.qc`
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/name_of_gamemode.qh`
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/_mod.inc` generated file where the includes of a gamemode is generated.
+
+`qcsrc/common/gamemodes/gamemode/name_of_gamemode/_mod.qh` generated file where the includes of a gamemode is generated.
+
+<br />
+
+### Optional things (if necessary):
+
+[`qcsrc/common/ent_cs.qc`](https://timepath.github.io/scratchspace/d5/dff/ent__cs_8qc_source.html) (if an `ENTCS_PROP()` is needed for a gamemode)
+
+[`qcsrc/common/mutators/mutator/waypoints/all.inc`](https://timepath.github.io/scratchspace/d2/d2b/mutators_2mutator_2waypoints_2all_8inc_source.html) where `REGISTER_WAYPOINT` can interact the situation of waypoints.
+
+<br />
+
+### Notifications, applying BADCVAR and displaying gamemode in the menu: 
+
+[`qcsrc/common/notifications/all.inc`](https://timepath.github.io/scratchspace/d9/d09/notifications_2all_8inc_source.html) where notifications output appears in the scenario.
+
+[`qcsrc/common/notifications/all.qh`](https://timepath.github.io/scratchspace/dc/d8f/notifications_2all_8qh_source.html) where `CASE(CPID, NAME_OF_ELEMENT)` is needed for a gamemode.
+
+[`qcsrc/menu/xonotic/util.qc`](https://timepath.github.io/scratchspace/df/d9b/menu_2xonotic_2util_8qc_source.html) where gamemodes can appear in the main menu (Multiplayer > Create). `GAMETYPE(MAPINFO_TYPE_NAME_OF_GAMEMODE) \`
+[`qcsrc/server/world.qc`](https://timepath.github.io/scratchspace/dd/dbe/world_8qc_source.html)  where `BADCVAR(g_*)` for each gamemode are stored.
+
+<br />
+
+### Configuration files where gamemodes interact:
+
+`xonotic-data.pk3dir/gamemodes-server.cfg` where server gamestart hooks, gametype vote hooks, respawn delay/waves/weapon_stay cvars and gamemode game/server cvars connect.
+
+`xonotic-data.pk3dir/gamemodes-client.cfg` where client gamestart hooks cvars connect.
+
+`xonotic-data.pk3dir/notifications.cfg` where notifications need to be activated in the scenario.
+
+<br />
+
+### Menu and HUD icons:
+
+`gfx/menu/luma/gametype_nameshortcut.tga`
+
+`gfx/menu/luminos/gametype_nameshortcut.tga`
+
+`gfx/menu/wickedx/gametype_nameshortcut.tga`
+
+`gfx/menu/xaw/gametype_nameshortcut.tga`
+
+(Example: `gametype_tdm.tga` is an icon of Team Deathmatch)
+
+<br />
+
+## Samples
+
+There are good examples of the commits and repositories of people who developed gamemodes:
+
+- [**Lyberta's GunGame gametype commits**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/482/diffs)
+
+Taken from: https://forums.xonotic.org/showthread.php?tid=7314
+
+You can look and test the [**Lyberta's GunGame gametype repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Lyberta/GunGame)
+
+- [**How Survival gamemode was developed (first commit)**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/8f61a40877542ac94baa74c5ed653c77b77bd855)
+
+It's recommended use the final product in this [**repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Mario/survival). Many changes have been influenced.
+
+[**SMB modpack repository**](https://github.com/MarioSMB/modpack/tree/master/mod/common/gamemodes/survival) has added Survival gamemode and others.
+
+# Effects
+
+Spawns effect particle in-game.
+
+The effects can be used with `Send_Effect(effect, org, vel, howmany)` function to test the effects from [**qcsrc/common/effects/all.inc**](https://timepath.github.io/scratchspace/d9/d95/effects_2all_8inc_source.html)
+
+**Send_Effect** function definition is inside: [**qcsrc/common/effects/effect.qh**](https://timepath.github.io/scratchspace/d5/de6/effect_8qh_source.html)
+
+For example, you can test the smokes, using `EFFECT_SMOKE_LARGE`:
+```c
+Send_Effect(EFFECT_SMOKE_LARGE, this.origin, '0 0 0', 1);
+```
+
+EFFECT list: [**qcsrc/common/effects/all.inc**](https://timepath.github.io/scratchspace/d9/d95/effects_2all_8inc_source.html)
+
+<br />
\ No newline at end of file
index d9ad1086aa7f33ac44bdf892c297d9f7333ab3d2..75308606f0675fdd513476a220907f134ecff642 100644 (file)
@@ -1,10 +1,20 @@
 ### Faster compiling and reloading of QuakeC
 
-You can use `QCCFLAGS_WERROR="" ZIP=: ./all compile` to let the build succeed even with warnings and to skip compressing the resulting csprogs.dat (client gamecode) into a pk3.
+You can use `QCCFLAGS_WERROR=""` to let the build succeed even with some warnings and `ZIP=:` to skip compressing the resulting csprogs.dat (client gamecode) into a pk3. A compressed csprogs.dat is only useful to increase download speed of such file if you host an online dedicated server.
+
+`QCCFLAGS_WERROR="" ZIP=: ./all compile`
 
 Server and menu code produce progs.dat and menu.dat respectively.
 
-No need to restart Xonotic to load the new client and server code, just start a new map with `map XXX` (depending on how you launch Xonotic you may need to use `fs_rescan; map XXX`). You can restart the menu with `menu_restart`.
+Compiling the Xonotic game code without trying to compile the engine code reduces compile time a little bit, in the case you aren't interested in changing the engine code. You can do so by running this command from the xonotic-data.pk3dir directory:
+
+`make qc -j4`
+
+where `-j4` is an option that lets you use up to 4 CPU cores for the compilation (it's enabled by default in `./all compile`). If you want you can run `make all -j4` to enable csprogs.dat compression.
+
+To test the QC client and server programs you don't need to restart Xonotic, you just have to start a new game with `map <mapname>` (depending on how you launch Xonotic you may need to use `fs_rescan; map <mapname>`).
+
+To test the QC menu program, you just have to restart the menu by executing `menu_restart` in the console.
 
 ### Debug prints
 
@@ -72,7 +82,7 @@ prvm_edictwatchpoint server
 
 Incomplete [Doxygen documentation](https://timepath.github.io/scratchspace/index.html) is generated as part of CI on [xonotic-data.pk3dir](https://gitlab.com/xonotic/xonotic-data.pk3dir) - you can search functions, "classes", globals, etc.
 
-Note that it might be incomplete or incorrect because Doxygen doesn't understand all of QC's constructs and our code heavily uses macros. See the `doxygen` section of the [CI file](https://gitlab.com/xonotic/xonotic-data.pk3dir/blob/master/.gitlab-ci.yml) for details what's missing.
+Note that it might be incomplete or incorrect because [Doxygen](https://www.doxygen.nl) doesn't understand all of QC's constructs and our code heavily uses macros. See the `doxygen` section of the [CI file](https://gitlab.com/xonotic/xonotic-data.pk3dir/blob/master/.gitlab-ci.yml) for details what's missing.
 
 ### Tool to find C symbols, functions, declarations and definitions inside source code
 
index 4894e9306222bc1926f99fc0776f7ce96220d2dc..a7fb551631faca400449b7ce68f6896ec6ceaee3 100644 (file)
@@ -6,7 +6,9 @@ Xonotic uses [several Git repositories](Git). The `all` script in the main repo
 Build Requirements
 ------------------
 
-Make sure you have at least 2GB memory to compile.  This is enough for a git server, but 6GB is required to play using a git client.
+Make sure you have at least 2GB memory to compile.  This is enough to run a git dedicated server, but 6GB is required to play using a git client (it uses more memory than regular release and auto builds).  
+
+The git client will perform poorly (compared to regular release or auto builds) on GPUs with limited VRAM, such as integrated GPUs.
 
 [About 12GB of disk space is required for the git repositories.](Git)
 
@@ -19,7 +21,7 @@ Note: The `all` script requires either `wget` or `curl`.
 
 **Ubuntu** dependencies:
 
-    sudo apt-get install autoconf build-essential curl git libtool libgmp-dev libjpeg-turbo8-dev libsdl2-dev libxpm-dev xserver-xorg-dev zlib1g-dev
+    sudo apt-get install autoconf automake build-essential curl git libtool libgmp-dev libjpeg-turbo8-dev libsdl2-dev libxpm-dev xserver-xorg-dev zlib1g-dev unzip zip
 
 Note: On Debian, use `libjpeg62-turbo-dev` if `libjpeg-turbo8-dev` isn’t available in the package repositories.
 
@@ -27,13 +29,13 @@ Note: `libasound2-dev libxext-dev libxxf86vm-dev p7zip-full unzip wget x11proto-
 
 **Fedora** and other **RPM based** distro dependencies:
 
-    autoconf automake gcc-c++ gmp-devel libjpeg-turbo-devel libtool SDL2-devel curl
+    autoconf automake gcc-c++ gmp-devel libjpeg-turbo-devel libtool SDL2-devel curl libXext-devel alsa-lib-devel libXxf86vm-devel
 
 Note: `x11-proto-devel` or `xorg-x11-proto-devel` might be needed but might be already installed.
 
 **Archlinux** dependencies:
 
-    sudo pacman -S alsa-lib curl git libjpeg-turbo libmodplug libpng libvorbis libxpm xorgproto libxxf86vm sdl2 unzip
+    sudo pacman -S alsa-lib curl git libjpeg-turbo libmodplug libpng libvorbis libxpm xorgproto libxxf86vm sdl2 unzip zip
 
 ### Windows
 
@@ -41,7 +43,7 @@ By default, Windows has no real environment to handle the necessary scripting an
 
 Once you have completed the installation, close the current MSYS2 shell and launch a MSYS2 MINGW64 shell by running mingw64.exe (instead of the default msys2.exe) located at C:\msys64 and install the needed dependencies with this command:
 
-    pacman --needed -S git curl zip unzip p7zip make automake autoconf libtool gcc gmp-devel mingw-w64-x86_64-{toolchain,gmp,SDL2,libjpeg-turbo,libpng,libogg}
+    pacman --needed -S git curl zip unzip p7zip make automake autoconf libtool gcc gmp-devel mingw-w64-x86_64-{toolchain,gmp,SDL2,libjpeg-turbo,libpng,libogg,libvorbis}
 
 It is recommended that you make a shortcut to MSYS2 MINGW64 shell (simply right click mingw64.exe and hit “Create Shortcut”) for easier access on your desktop or in your start menu.
 
@@ -56,22 +58,20 @@ Cloning the Repository and Compiling
 
 To begin downloading:
 
-    git clone git://git.xonotic.org/xonotic/xonotic.git  # download main repo
+    git clone https://gitlab.com/xonotic/xonotic.git  # download main repo
     cd xonotic
     ./all update -l best  # download all other repos (data + game logic, maps, etc.)
 
-The **git://** protocol uses port **9418**, which may be a problem if you’re behind a **strict firewall**. You may instead use the clone url http://git.xonotic.org/xonotic/xonotic.git (however, using the git protocol directly is preferred for performance reasons).
-
 Now the game can be compiled and run with the following commands:
 
-    ./all compile -r
+    ./all compile
     ./all run
 
-**Note:** if you encounter en error similar to darkplaces#111, try `./all clean && ./all compile -r -0`.
+**Note:** if you encounter en error similar to darkplaces#111, try `./all clean && ./all compile -0`.
 
-You can use `./all compile -d` to create a slower unoptimized build with debug symbols but usually you want `-r` (which is also the new default).
+You can use `./all compile -d` to create a slower unoptimized build with debug symbols.
 
-The `./all run` or `./all compile` line can be followed by `dedicated` to build or run the executable for server hosting. E.g. `./all compile -r dedicated`.
+The `./all run` or `./all compile` line can be followed by `dedicated` to build or run the executable for server hosting. E.g. `./all compile dedicated`.
 
 The `run` command can also be followed by standard DarkPlaces commandline arguments:
 
@@ -82,26 +82,30 @@ To update your Git clone:
     cd xonotic
     ./all checkout  # switch to main branch on all repos (usually master)
     ./all update  # pull and prune
-    ./all compile -r  # recompile what changed
+    ./all compile # recompile what changed
 
 **Note:** If you intend to play on public servers, you should probably also enable the nexcompat repo to download additional textures that are used on some older unofficial maps. Use `touch data/xonotic-nexcompat.pk3dir.yes` and `./all update`. For mappers: these textures should NOT be used on new maps.
 
 ***
 
-If you run into issues with the latest version you can easily revert to an older one. Since most bugs are caused by the game code rather that the engine, you just need to downgrade that repository. Inside the main xonotic repository, use `cd data/xonotic-data.pk3dir` and then `git checkout <some older commit>`. After that go back `cd -` and `./all compile` (with the optional `-r` flag).
+If you run into issues with the latest version you can easily revert to an older one. Since most bugs are caused by the game code rather that the engine, you just need to downgrade that repository. Inside the main xonotic repository, use `cd data/xonotic-data.pk3dir` and then `git checkout <some older commit>`. After that go back `cd -` and `./all compile`.
 
 Contributing and Getting Write Access
 -------------------------------------
 
-Cloning (one of) our repos and submitting MRs from there (as in any other project) works but you won't be able to use our CI setup for the data repo (which seems to need a custom runner). It's therefore a good idea to join the Xonotic group and get push access - then you can create branches in our repos and use our CI.
+It's recommended to [request access](https://docs.gitlab.com/ee/user/group/index.html#request-access-to-a-group) to the [Xonotic project group](https://gitlab.com/xonotic).  Cloning our repositories and submitting merge requests from there will work but you won't be able to use our CI setup for the xonotic-data.pk3dir repo (which seems to need a custom runner).
 
-A condition for write (push) access is that you agree that any code or data you push will be licensed under the General Public License, version 2, with or without the “or any later version” clause. In case the directory the changes apply to contains a LICENSE or COPYING file indicating another license, then your pushed code has to be dual licensed appropriately. Subdirectories currently having a dual license:
+A condition for write (push) access and submission of merge requests is that **you agree that any code or data you push will be licensed under the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html), with and/or without the “or any later version” clause.**
 
-* `data/xonotic-data.pk3dir/qcsrc/lib/warpzone` - dual licensed as “GPLv2 or later” or MIT license.
+If the directory or repository your changes apply to contains a LICENSE or COPYING file indicating another license or a dual license, then **you agree that your pushed code will be licensed as specified in that file.**  Subdirectories and repositories with a dual license or a different license:
+* [xonotic-data.pk3dir/qcsrc/lib/warpzone](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/master/qcsrc/lib/warpzone) - dual licensed with GNU GPLv2 (or any later version), or MIT license.
+* [xonstat-go](https://gitlab.com/xonotic/xonstat-go/) - licensed with [GNU AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html)
 
 In case the code you pushed was not written by you, it is your responsibility to ensure proper licensing.
 
-To apply for write access, add your SSH key to your GitLab account and ask for access in #xonotic on the FreeNode IRC network or [request access](https://docs.gitlab.com/ce/user/group/index.html#request-access-to-a-group) using the GitLab interface.
+To apply for write access, please add your SSH key to your GitLab account and [request access](https://docs.gitlab.com/ce/user/group/index.html#request-access-to-a-group) to the [Xonotic project group](https://gitlab.com/xonotic) using the GitLab interface.  You can also request access on Matrix chat in [#dev:xonotic.org](https://matrix.to/#/#dev:xonotic.org) (remember to tell us your GitLab username!) but the admins might not see your request amongst the other messages.
+
+Please read [General Contributor Guidelines](https://gitlab.com/xonotic/xonotic/-/wikis/Repository_Access#general-contributor-guidelines) before pushing.
 
 ### Windows/Linux/macOS
 
@@ -154,15 +158,15 @@ General Contributor Guidelines
 ------------------------------
 
 1.  Before creating your local branch and committing to it, make sure you’ve configured your user settings such as your name which will display in the logs (in TortoiseGit: Settings > Git > Config).
-2.  Try naming your branch myname/mychange for each patch. For instance, if your name is Alex and the change you are committing is a menu fix, use something like alex/menufix.
+2.  **You should name your branch myname/mychange for each patch.** For instance, if your name is Alex and the change you are committing is a menu fix, use something like alex/menufix.
 
-Further Git Information
+Git guides
 -----------------------
 
+Git basics on [this wiki page](Git).
+
 About tracking remote branches:
 http://git-scm.com/book/en/v2/Git-Branching-Remote-Branches
 
-This wiki’s [Git](Git) page.
-
 A tutorial to Git for SVN users:
-http://git-scm.org/course/svn.html
+https://git.wiki.kernel.org/index.php/GitSvnCrashCourse
\ No newline at end of file
diff --git a/SMB-modpack.md b/SMB-modpack.md
new file mode 100644 (file)
index 0000000..c83e920
--- /dev/null
@@ -0,0 +1,75 @@
+Developed and maintained by **[Mario](https://github.com/MarioSMB)** and **[TimePath](https://github.com/TimePath)**.
+
+The **[modpack](https://github.com/MarioSMB/modpack)** was **[TimePath](https://github.com/TimePath)**'s experiment to split "custom" features into a secluded codebase. <br/>
+It makes it used to create games based on the Xonotic template.
+
+The modpack build works using a submodule from '_xonotic-data.pk3dir_' from the official gamelogic development repository.
+
+Uses **update.sh** and **build.sh** shell script files. 
+
+### You can create mods from the modpack like: 
+### **[Quake](https://github.com/MarioSMB/modpack/tree/quake)**
+<img src="uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg" alt="quake_mod_sample" width=550 />
+
+### **[Prydon Gate](https://github.com/MarioSMB/modpack/tree/prydon)**
+<img src="uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg" alt="prydon_mod_sample" width=550 />
+
+### **[Suwa Moriya 64](https://github.com/MarioSMB/modpack/tree/moriya)**
+<img src="uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg" alt="suwa_moriya_64_mod_sample" width=550 />
+
+# How submodule works, update.sh and build.sh
+
+Uses '_update.sh_' to obtain the content of '_gmqcc_', '_xonotic-data.pk3dir_' in '_xonotic_' folder and '_csprogs_' in '_.cache_' folder. Clearly, needs gmqcc to be able to compile, this means that '_build.sh_' calls gmqcc to compile the code.
+
+## Submodule and update.sh
+
+The submodule of this modpack was created using: 
+```sh
+git submodule add https://gitlab.com/xonotic/xonotic-data.pk3dir xonotic
+```
+
+The submodule in the repository is used when need to update the code from '_xonotic-data.pk3dir_', to do this if you've a fork or a copy of SMB modpack repository, you'll have to update using (note: in your local computer, you should have used '_update.sh_' to download fully the content of '_xonotic-data.pk3dir_' in '_xonotic_' folder):
+```sh
+git submodule update --remote --merge
+```
+
+It'll update the content where is in the official gamelogic development repository in your modpack repository.
+
+Inside '_update.sh_', there is a line: 
+```sh
+git submodule update --init --depth 100
+```
+
+Means that when you use '_update.sh_' with this line, the submodule content will be downloaded in your local computer where you've cloned the modpack repository.
+
+To run '_update.sh_' script, you should go to the current directory where is this script and execute:
+```sh
+./update.sh
+```
+
+### Commit with submodule
+
+Additionally, after done `git submodule update --remote --merge`, if you want to commit:
+```sh
+git status
+git add xonotic
+git commit -m "Update submodule xonotic test"
+git push origin master #depends what origin and what branch of repository you're using to do your commits
+```
+## build.sh
+
+'_build.sh_' compiles all repository code using gmqcc if already downloaded from '_update.sh_', looks inside '_mod_' folder the similar contents of '_xonotic-data.pk3dir/qcsrc_' where there are: '_client_', '_common_', '_menu_' and '_server_' folders.
+
+What this does is relate the directory path to the submodule '_xonotic_' directory inside the '_qcsrc_' folder. Thanks to this, makes possible to look at the '_mod_' folder having to relate the submodule directory '_xonotic/qcsrc_'.
+
+To run '_build.sh_' script, you should go to the current directory where is this script and execute:
+```sh
+./build.sh
+```
+
+For speed up compilation, you can run with:
+```sh
+ZIP=: ./build.sh
+```
+
+That executes without compression (without getting `csprogs-*.pk3` file).
\ No newline at end of file
index fe490c81375961fbc66737aead50eb1bba1bc659..0face8e634f3bc108c493ac81bf4936a43a11039 100644 (file)
@@ -5,15 +5,15 @@
 * `sv_logscores_filename`: filename of the output file if sv_logscores_file is enabled (the file will be stored in Xonotic/data/data or ~/.xonotic/data/data)
 * `sv_logscores_bots`:choose whether bot are included in stats or not
 
+Also see [Event logging](./Event-logging)
 
 ## Commands
 
 * `printstats`: print current scores to file/console (requires sv_logscores_console and/or sv_logscores_file to be enabled)
 
-
 ## Log format
 
-example:
+Example:
 ```   
 :scores:dm_nexdm01:131
 :player:1:7:129:1:GrooveMachine
@@ -21,11 +21,11 @@ example:
 :player:10:1:130:3:Player
 :end
 ```   
-start of a new section:        `:scores:<gametype>_<mapname>:<map runtime>` (if the dump was triggered by "printstats", the line starts with :status:)
+Start of a new section:        `:scores:<gametype>_<mapname>:<map runtime>` (if the dump was triggered by "printstats", the line starts with :status:)
 
-player entry: `:player:<frags>:<deaths>:<playtime>:<team>:<nickname>` (playername might contain ":", so be sure your parser doesn't split them, playtime is messured in seconds)
+Player entry: `:player:<frags>:<deaths>:<playtime>:<team>:<nickname>` (player names might contain ":", so be sure your parser doesn't split them, playtime is measured in seconds)
 
-section end: `:end`
+Section end: `:end`
 
 Team colors:
 * Red Team     =  5
@@ -35,4 +35,4 @@ Team colors:
 
 Other team numbers may appear in free for all games.
 
-For an example parser (written in php, thanks to tChr) have a look at http://excalibur.nvg.ntnu.no/nexuiz/statsparser
\ No newline at end of file
+For an example parser (written in perl) have a look at [incognico/erebus.pl](https://gitlab.com/incognico/erebus/-/blob/master/erebus.pl)
\ No newline at end of file
diff --git a/Shared-libraries-(buildfiles).md b/Shared-libraries-(buildfiles).md
new file mode 100644 (file)
index 0000000..5605358
--- /dev/null
@@ -0,0 +1,349 @@
+darkplaces/Xonotic on Linux uses system libraries. For Windows and macOS external dlls and dylibs are needed. Those reside in xonotic/misc/buildfiles
+
+Because at the time of writing there is no automatism to build or update the games dependencies for those 2 platforms and the current dlls/dylibs are VERY outdated and thus also contain vulnerabilities, this page should document on where to obtain or how to build them, retaining API compatibility to darkplaces and also older OS platform versions like Windows XP.
+
+For Windows, all libraries can/should be obtained from https://packages.msys2.org/ [1] with the exception of an official DLL release from the upstream being available (this is the case for jpeg-turbo and freetype) or if it has to be compiled on under Windows for some reason (eg. libcurl for Schannel (Windows crypto for HTTPS) support).
+
+A handy tool to check dll deps on Windows is https://github.com/lucasg/Dependencies
+
+TODO: macOS
+
+# libcurl
+libcurl is used for downloading *.pk3 files from servers
+
+### Windows
+
+```
+git clone -b curl-7_80_0 https://github.com/curl/curl || true
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+d0=$(pwd)
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DCMAKE_INSTALL_PREFIX="$d0/out" -DCURL_USE_SCHANNEL=YES -G"Unix Makefiles" "$d0/curl"
+make
+make install
+cd "$d0"
+cp out/bin/libcurl.dll ~/Games/xonotic/misc/buildfiles/win64/libcurl-4.dll
+```
+
+### macOS
+Darkplaces loads `libcurl.4.dylib` or `libcurl.3.dylib` or `libcurl.2.dylib`
+
+# libjpeg-turbo
+libjpeg-turbo is needed to display jpeg images/textures
+
+### Windows
+
+```
+git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git || true
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+d0=$(pwd)
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/libjpeg-turbo"
+make
+make install
+cd "$d0"
+cp out/bin/libjpeg-62.dll ~/Games/xonotic/misc/buildfiles/win64/libjpeg.dll
+```
+
+### macOS
+Darkplaces loads `libjpeg.62.dylib`
+
+# zlib
+zlib is required to read *.pk3 files. Also it is a dependency of libpng and probably some other libraries.
+
+### Windows
+Darkplaces loads: ifdef ZLIB_USES_WINAPI `zlibwapi.dll` or `zlib.dll` else `zlib1.dll`. We use `zlib1.dll`!
+
+Obtainment instructions:
+* download as MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-zlib
+* use dll from `bin` folder
+
+Cross-compiling:
+
+```
+ZLIBVER="1.2.11"
+curl -L -o zlib-$ZLIBVER.tar.xz https://zlib.net/zlib-$ZLIBVER.tar.xz || true
+tar -xf zlib-$ZLIBVER.tar.xz
+rm zlib-$ZLIBVER.tar.xz
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+
+d0=$(pwd)
+rm -rf build
+mkdir build
+cd build
+sed -i '/zlib PROPERTIES SUFFIX/i     set_target_properties(zlib PROPERTIES PREFIX "")' "$d0/zlib-$ZLIBVER/CMakeLists.txt" # Remove the "lib" prefix. TODO Do this through the cmake cache?
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/zlib-$ZLIBVER"
+make
+make install
+cd "$d0"
+cp out/bin/zlib1.dll ~/Games/xonotic/misc/buildfiles/win64/zlib1.dll
+```
+
+### macOS
+Darkplaces loads `libz.dylib`
+
+# libpng
+libpng is needed to display png images/textures
+
+### Windows
+Darkplaces loads `libpng16.dll` or `libpng16-16.dll` or `libpng15-15.dll` or `libpng15.dll` or `libpng14-14.dll` or `libpng14.dll` or `libpng12.dll`
+
+Obtainment instructions:
+* be sure to use a 1.16.X release
+* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libpng
+* use dll from `bin` folder
+
+Cross-compiling (requires zlib):
+
+```
+d0=$(pwd)
+PNGVER="libpng16"
+ZLIB_ROOT=$d0/../zlib/out # Location to the zlib compiled library
+
+git clone -b $PNGVER git://git.code.sf.net/p/libpng/code libpng || true
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DPNG_STATIC=false -DPNG_TESTS=false -DPNG_EXECUTABLES=false -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DZLIB_INCLUDE_DIR=$ZLIB_ROOT/include -DZLIB_LIBRARY=$ZLIB_ROOT/lib/libzlib.dll.a -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/libpng"
+make
+make install
+cd "$d0"
+cp out/bin/libpng16.dll ~/Games/xonotic/misc/buildfiles/win64/libpng16.dll
+```
+
+### macOS
+Darkplaces loads `libpng16.16.dylib` or `libpng15.15.dylib` or `libpng14.14.dylib` or `libpng12.0.dylib`
+
+# libfreetype
+Required for the Xolonium font
+
+### Windows
+Darkplaces loads: `libfreetype-6.dll` or `freetype6.dll`
+
+```
+FTVER="2.11.1"
+curl -L -o freetype-$FTVER.tar.xz https://download.savannah.gnu.org/releases/freetype/freetype-$FTVER.tar.xz || true
+tar -xf freetype-$FTVER.tar.xz
+rm freetype-$FTVER.tar.xz
+
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+d0=$(pwd)
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/freetype-$FTVER"
+make
+make install
+cd "$d0"
+cp out/bin/libfreetype.dll ~/Games/xonotic/misc/buildfiles/win64/libfreetype-6.dll
+```
+
+### macOS
+Darkplaces loads: `libfreetype.6.dylib` or `libfreetype.dylib`
+
+# libogg
+libogg is used for the container in cl_capturevideo
+
+### Windows
+Darkplaces loads `libogg-0.dll` or `libogg.dll` or `ogg.dll`
+
+Obtainment instructions:
+* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libogg
+* use dll from `bin` folder
+
+Cross-compiling:
+
+```
+d0=$(pwd)
+OGGVER="v1.3.5"
+git clone -b $OGGVER https://gitlab.xiph.org/xiph/ogg.git
+sed -i 's/^LIBRARY ogg$/LIBRARY libogg/' "$d0/ogg/win32/ogg.def" # Call it libogg
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/ogg"
+make
+make install
+cd "$d0"
+cp out/bin/libogg.dll ~/Games/xonotic/misc/buildfiles/win64/libogg.dll
+```
+
+### macOS
+Darkplaces loads `libogg.dylib`
+
+# libvorbis + libvorbisfile + libvorbisenc
+libvorbis + libvorbisfile are used to play .ogg audio files while libvorbis + libvorbisenc is used for the audio in video capturing (cl_capturevideo)
+
+### Windows
+Darkplaces loads `libvorbis-0.dll` or `libvorbis.dll` or `vorbis.dll` and `libvorbisfile-3.dll` or `libvorbisfile.dll` or `vorbisfile.dll` and `libvorbisenc-2.dll` or `vorbisenc-2.dll` or `vorbisenc.dll`
+
+Obtainment instructions:
+* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libvorbis
+* use dll from `bin` folder
+
+Cross-compiling (requires libogg):
+
+```
+d0=$(pwd)
+VORBISVER="v1.3.7"
+OGG_ROOT=$d0/../ogg/out
+
+git clone -b $VORBISVER https://gitlab.xiph.org/xiph/vorbis.git
+
+# Fix win32 def files
+sed -i 's/^LIBRARY$/LIBRARY libvorbis/' "$d0/vorbis/win32/vorbis.def"
+sed -i 's/^LIBRARY$/LIBRARY libvorbisenc/' "$d0/vorbis/win32/vorbisenc.def"
+sed -i 's/^LIBRARY$/LIBRARY libvorbisfile/' "$d0/vorbis/win32/vorbisfile.def"
+
+curl -o x86_64-w64-mingw32.cmake https://raw.githubusercontent.com/zyga/cmake-toolchains/master/Toolchain-Ubuntu-mingw64.cmake
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_TOOLCHAIN_FILE="$d0/x86_64-w64-mingw32.cmake" -DBUILD_SHARED_LIBS=true -DOGG_INCLUDE_DIR=$OGG_ROOT/include -DOGG_LIBRARY=$OGG_ROOT/lib/libogg.dll.a -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_INSTALL_PREFIX="$d0/out" -G"Unix Makefiles" "$d0/vorbis"
+make
+make install
+cd "$d0"
+cp out/bin/libvorbis.dll ~/Games/xonotic/misc/buildfiles/win64/libvorbis.dll
+cp out/bin/libvorbisfile.dll ~/Games/xonotic/misc/buildfiles/win64/libvorbisfile.dll
+cp out/bin/libvorbisenc.dll ~/Games/xonotic/misc/buildfiles/win64/libvorbisenc.dll
+```
+
+### macOS
+Darkplaces loads `libvorbis.dylib` and `libvorbisfile.dylib`
+
+# libtheora
+libtheora is used for the video in cl_capturevideo
+libtheoraenc/libtheoradec are not needed, they are the newer API; darkplaces uses the legacy pre 1.0 API (libtheora).
+
+### Windows
+Darkplaces loads `libtheora-0.dll` or `theora-0.dll` or `theora.dll`
+
+Obtainment instructions:
+* download MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-libtheora
+* use dll from `bin` folder
+
+Cross-compiling (requires libogg and libvorbis):
+
+```
+d0=$(pwd)
+THEORAVER="v1.1.1"
+OGG_ROOT="$d0/../ogg/out"
+VORBIS_ROOT="$d0/../vorbis/out"
+
+git clone -b $THEORAVER https://gitlab.xiph.org/xiph/theora.git
+
+# Fix mingw32 defs
+sed -i '1iLIBRARY libtheoradec' "$d0/theora/win32/xmingw32/libtheoradec-all.def"
+sed -i '1iLIBRARY libtheoraenc' "$d0/theora/win32/xmingw32/libtheoraenc-all.def"
+sed -i '/TH_VP31_QUANT_INFO/d' "$d0/theora/win32/xmingw32/libtheoraenc-all.def"
+sed -i '/TH_VP31_HUFF_CODES/d' "$d0/theora/win32/xmingw32/libtheoraenc-all.def"
+
+# Start build
+mkdir out
+mkdir build
+cd build
+$d0/theora/autogen.sh --host=x86_64-w64-mingw32 --prefix="$d0/out" --with-ogg="$OGG_ROOT" --with-vorbis="$VORBIS_ROOT" --enable-shared --disable-examples --disable-sdltest --disable-vorbistest --disable-oggtest
+make
+make install
+cd "$d0"
+cp out/bin/libtheora-0.dll ~/Games/xonotic/misc/buildfiles/win64/libtheora-0.dll
+```
+
+### macOS
+Darkplaces loads `libtheora.dylib`
+
+# libgmp
+A dependency of libd0_blind_id-0
+
+### Linux
+
+`./configure --prefix=$HOME/Games/xonotic/misc/builddeps/linux64/gmp --enable-static --disable-shared --with-pic --enable-fat`
+
+### Windows
+libd0_blind_id-0 loads `libgmp-10.dll`
+
+Obtainment instructions:
+* download as MSYS2 Package [1] in x86 and x64 versions: https://packages.msys2.org/base/mingw-w64-gmp
+* use dll from `bin` folder
+
+Cross-compiling:
+
+```
+d0=$(pwd)
+GMPVER="6.2.1"
+
+curl -o gmp-$GMPVER.tar.xz https://gmplib.org/download/gmp/gmp-$GMPVER.tar.xz
+tar xf gmp-$GMPVER.tar.xz
+rm gmp-$GMPVER.tar.xz
+
+mkdir out
+mkdir build
+cd build
+"$d0/gmp-$GMPVER/configure" --prefix="$d0/out" --host=x86_64-w64-mingw32 --with-pic --enable-fat --disable-static --enable-shared
+make
+make install
+cd "$d0"
+cp out/bin/libgmp-10.dll ~/Games/xonotic/misc/buildfiles/win64/libgmp-10.dll
+```
+
+# libd0_blind_id-0 & libd0_rijndael-0
+Internal project, see https://gitlab.com/xonotic/d0_blind_id
+
+### Linux
+
+`LDFLAGS='-L$HOME/Games/xonotic/misc/builddeps/linux64/gmp/lib' CPPFLAGS='-I$HOME/Games/xonotic/misc/builddeps/linux64/gmp/include' ./configure --prefix=$HOME/Games/xonotic/misc/builddeps/linux64/d0_blind_id  --enable-static --disable-shared --with-pic`
+
+### Windows
+Cross-compiling (requires libgmp):
+
+```
+d0=$(pwd)
+GMP_ROOT="$d0/../gmp/out"
+export LDFLAGS="-L$GMP_ROOT/lib"
+export CPPFLAGS="-I$GMP_ROOT/include"
+
+git clone https://gitlab.com/xonotic/d0_blind_id.git
+
+cd d0_blind_id
+./autogen.sh
+sed -i '/libd0_blind_id_la_LDFLAGS/ s/$/ -no-undefined/' Makefile.am
+sed -i '/libd0_rijndael_la_LDFLAGS/ s/$/ -no-undefined/' Makefile.am
+
+cd "$d0"
+mkdir build
+mkdir out
+cd build
+"$d0/d0_blind_id/configure" --with-pic --prefix="$d0/out" --host=x86_64-w64-mingw32
+make
+make install
+
+cd "$d0"
+cp out/bin/libd0_blind_id-0.dll ~/Games/xonotic/misc/buildfiles/win64/libd0_blind_id-0.dll
+cp out/bin/libd0_rijndael-0.dll ~/Games/xonotic/misc/buildfiles/win64/libd0_rijndael-0.dll
+```
+
+# libode
+Is not loaded under Windows and crashes the game if it is and a map is loaded up.
+Also it is not statically linked and thus requires libstdc++-6.dll and libgcc_s_sjlj-1.dll.
+
+### Linux:
+
+`./configure --enable-static --disable-shared --with-libccd=internal --enable-double-precision --prefix=$HOME/Games/xonotic/misc/builddeps/linux64/ode --with-pic`
+
+# libavw
+*Note:* Old and not used in Xonotic but also not disabled :) Adding this for the sake of completeness.
+
+### Windows
+Darkplaces loads: `libavw.dll`
+
+Source code: https://github.com/paulvortex/DpLibAVW
+
+### macOS
+Darkplaces loads: `libavw.dylib`
\ No newline at end of file
diff --git a/Survival.md b/Survival.md
new file mode 100644 (file)
index 0000000..5df5651
--- /dev/null
@@ -0,0 +1,36 @@
+Survival
+===============
+
+Object of the Game
+------------------
+
+Survival is a round-based game with 2 teams: Hunters and Survivors. But there's a twist: Players get randomly assigned a team and you only know your own team membership, but not to which team everyone else belongs.
+
+The goal of the hunters is to kill all the survivers.
+The goal of the survivors is to either kill all the hunters or to survive the round (until the round timer hits 0).
+
+Each player will individually score during the rounds and the player with the most points at the end wins the whole match.
+
+
+Scoring
+-------
+
+| Action | Score |
+|:-------|------:|
+| Survive the round | +1 for each opponent you killed in that round |
+| Survive the round by letting the round timer run out (Survivors only) | +1 |
+| Kill a team mate | -1 |
+| Kill yourself | -1 |
+
+Note: These are only defaults: Servers can modify the score if they want.
+
+Details
+-------
+
+Each round begins with a brief warmup period where players can't shoot and they don't know their role (Hunter/Surviver) yet but they can already walk around and collect goodies. Once the warmup period is over, the weapons unlock, your role is revealed and the action begins.
+
+By default, the hunter team is smaller than the surviver team (ca. 25% of all players).
+
+Think before you shoot! If you accidentally kill a team mate, you will be punished with death as well and are eliminated from the round.
+
+Once a round is over, the role of each player is revealed: Survivors will be in green while hunters are red. You can also look it up in the scoreboard.
\ No newline at end of file
index 96ca11b8c23c5ad0e7e43a8567b4f81085e4d654..e7b71819aaa8fb16bbe155ebeb4b0111fdd1d223 100644 (file)
@@ -1,15 +1,17 @@
 It is possible to download translation files from Transifex so you can work with an external editor or test your translations in-game.
 
+For in-game testing, it is recommended to use a fresh Xonotic [autobuild](https://gitlab.com/xonotic/xonotic/-/wikis/Autobuilds) or [git build](https://gitlab.com/xonotic/xonotic/-/wikis/Repository_Access), because new strings are added or modified during the development process.
+
 On Transifex, select the `common.pot` resource:
 ![Screenshot_20191005_164237](uploads/37bb634467e5ee1a025022cc2e53e652/Screenshot_20191005_164237.png)
 *  Select **"Download for use"** if you wish to test the translation in-game.
 *  Select **"Download file to translate"** if you wish to edit the PO file with an external tool (such as [poedit](https://poedit.net/))
 *  Select **"Upload file"** if you wish to upload a PO file that you edited on your computer.
 
-In order to test your translation in-game, rename the PO file as `common.*.po`, where `*` is your language code ("fr" for French, "de" for German...).
+In order to test your translation in-game, rename the PO file as `common.*.po`, where `*` is your language code (`fr` for French, `de` for German...).
 If you don't know what your language code is, please have a look at the PO files located in the [xonotic-data.pk3dir](https://gitlab.com/xonotic/xonotic-data.pk3dir) repository.
 
 Then copy the PO file in the `data` subdirectory of your **Xonotic user directory**. The user directory location depends on your Operating System: https://xonotic.org/faq/#config
 
 You're done!
-Simply start Xonotic and test your latest translation changes.
\ No newline at end of file
+Simply start Xonotic and check your latest translation changes.
\ No newline at end of file
index 9ee28043907f965853c6a0c0b1cb0da6615a2035..dee82ca67c44cf4dbaa98a2b5d1959445670d9aa 100644 (file)
@@ -1,8 +1,8 @@
 Translations are managed via [Transifex](https://www.transifex.com/team-xonotic/xonotic/dashboard/).
 
-Create an account on Transifex and send a request to join a language team. Once your request has been approved, you can submit suggestions or translations directly through the Transifex interface, or by editing the PO file with an external editor, such as [poedit](https://poedit.net/) (Transifex allows you to download and upload PO files).
+Create an account on Transifex and send a request to join a language team. Once your request has been approved, you can submit suggestions or translations directly through the Transifex interface, or by editing the PO file with an external editor, such as [Poedit](https://poedit.net/) (Transifex allows you to download and upload PO files).
 
-Translations are automatically synced (once a week) between Transifex and the [xonotic-data.pk3dir](https://gitlab.com/xonotic/xonotic-data.pk3dir) git repository.
+Translations are synced once a week from Transifex to the [xonotic-data.pk3dir](https://gitlab.com/xonotic/xonotic-data.pk3dir) git repository as well as in the opposite direction (may add new translatable strings or change the existing ones).
 
 Translation guidelines and good practices
 =========================================
index 25d685c7792975c31e59f2067c54d172748f60ea..8d73709c226e4d42c7a448ea6528174f059291b9 100644 (file)
 
 *  Some strings have prefixes which help you know the context of the string... For example, say there is a list box in the menu which controls effects settings, we can add a prefix into the translatable string for each item in the list like this: `PREFIX^translatable text`. In the case of effects, we can do: `EFFECTS^Low`, `EFFECTS^Medium`, and `EFFECTS^High`, and you can then know the context of the Low/Medium/High translation easily. When forming the final translated string, REMOVE THE PREFIX AND THE ^ SYMBOL. However, be careful not to confuse these with color codes or intentional placements of ^. If in doubt, read the code, context sensitive lines of code which use this prefix idea will have a ZCTX() or CTX() wrapper around the whole string, giving you a good clarification as to how to proceed. You can also refer to the [List of prefixes](List-of-translation-prefixes).
 
-*  Normally do not translate proper nouns, like most weapon names (excluding Machinegun, Shotgun, etc), or game mode names, unless they make sense in your language to be translated. Mutators CAN be translated, but not mutators which have proper names, like "MinstaGib", or "NIX" which is an acronym.
+*  Normally do not translate proper nouns, like most weapon names (excluding Machinegun, Shotgun, etc), or game mode names, unless they make sense in your language to be translated. Mutators CAN be translated, but not mutators which have proper names, like "InstaGib", or "NIX" which is an acronym.
 
 *  Pay attention to capitalization... scoreboard columns for example are intended to be lowercase. In general, it's always a good idea to follow the context of the English writing, and make sure the capitalization matches in English (Unless your language has some other grammatical rule that makes more sense here.)
 
 *  Strings that have **no English words** do not need to be translated, like `%s %s (%s%s)` should not be translated: if you see these, please report them on https://gitlab.com/xonotic/xonotic-data.pk3dir, as they should not have been added in the first place.
 
-*  If you are even slightly unsure of the context or meaning of a string, read the code or ask someone on IRC, if you're still unable to be 100% sure, then mark your string as a *suggestion* on Transifex and MOVE ON, do not risk adding an improper translation.
+*  If you are even slightly unsure of the context or meaning of a string, read the code or ask someone on ~~IRC~~ [Matrix ](https://gitlab.com/xonotic/xonotic/-/wikis/Channels), if you're still unable to be 100% sure, then mark your string as a *suggestion* on Transifex and MOVE ON, do not risk adding an improper translation.
 
 *  NEVER pervert, profane, or mock a string that is not normally written as such in English. If there is no joke or gore in the English writing, do not add one in the translation. We must adhere to supporting cl_gentle (a non-swearing, "E rated" version of the texts) even in translations.
 
@@ -25,3 +25,5 @@
 *  Overall, just try and write the translation in a way which fits your language best... If something is silly in English and it's okay to do it silly in your language, then go ahead: just try and make it match the English meaning as closely as possible.
 
 *  After you have completed translations, please test them both in the menu and in game to make sure there aren't any mistakes: [Test your translations](Test-your-translations). WARNING: If you make a mistake while translating a notification system string, it CAN crash the game upon loading, as the notification system analyzes all strings and ensures they are written correctly! ( See here, an earlier problem that have been noticed on the old German translations: http://i.imgur.com/mePBYvO.jpg ).
+
+Original source of information: https://forums.xonotic.org/showthread.php?tid=4178&pid=58824#pid58824
\ No newline at end of file
diff --git a/Trouble-in-Terrorist-Town.md b/Trouble-in-Terrorist-Town.md
new file mode 100644 (file)
index 0000000..eaa3786
--- /dev/null
@@ -0,0 +1,217 @@
+# Trouble in Terrorist Town (TTT)
+
+## WARNING! This gamemode has been lost.
+
+### This gamemode appeared once in a server called "FSMP Teamplay", the server was shutdown in late 2019.
+
+### Update: (20-02-2021) LegendGuard retrieved the gamemode developing from scratch: [LegendGuard's MMM repository](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/LegendaryGuard/ttt)
+
+<img src="uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png" alt="logoTTTxonotic"/>
+
+## A group of space terrorists have traitors among them. Traitors must kill terrorists, while the terrorists have to try to find and kill the traitors.
+
+# Objective of the Game
+
+The game mode is based on the fact that there is a small group of traitors and another of detectives, there is an explanation of the functions of each one.
+
+
+## Innocents
+
+The Innocent are the majority (62.5% of the game's population by default.) Their group color is green.
+The task of the innocent is to detect traitors and defend detectives more than anything, they must kill the right person or anything special.
+
+
+## Traitors
+
+The Traitors are the medium sized group in TTT (25% of the population or one Traitor for every four players.) Their group color is red, but this is not displayed to anyone other than Traitors, or when a Traitor has been confirmed to be dead.
+The traitors must murder everyone undetected, they know who they are because only among themselves do they see a red "circle" that blinks around their companions' bodies. They must kill all innocents before time runs out.
+
+
+## Detectives
+
+The Detectives are the smallest group in TTT (12.5% of the population or one Detective for every eight players.) They are special Innocents given equipment. Their group color is blue.
+Detectives have special methods to detect the traitor, for example, when they see a body, they must analyze the body, if the body was recently killed, it will tell if he was Innocent or a Traitor.
+
+They always appear as CT and everyone sees them as CTs, plus they flash a blue circle on their body that everyone sees (unlike traitors who only see each other CT and the flash is only seen by them).
+
+
+## About Karma points
+
+It is worth clarifying that everyone can kill each other, but there is something called "**Karma**", which starts with an initial, and increases if they do things right (if traitors kill, or if traitors kill people), otherwise, the Karma will be discounted.
+
+The Karma is used for the damage that weapons generate, the more Karma, the more damage your weapon will do.
+
+If the Karma is lower, the player can be banned temporarily to avoid teamkills or any abuse with the end to keep the game in balance.
+
+
+# Screenshots and demos
+
+The screenshots are from 23/08/2019.
+
+<img src="uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg" alt="selectgamemodeTroubleinTerroristTownFSMPServer" width="400"/>
+
+<img src="uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg" alt="TTTspectatingInterface" width="400"/>
+
+<img src="uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg" alt="TTTtraitor" width="400"/>
+
+<img src="uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg" alt="TTTwhenmatchFinishedmakeseveryonesayingwhotheyare" width="400">
+
+<img src="uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg" alt="TTTkarmaScore" width="400"/>
+
+
+**Demos here, thanks to Kotangens, he has given his best effort to record this**:
+
+To play the demo, you need the following resources:
+
+- Models and server resources (copy and paste them to data/dlcache):
+
+[fsmp-teamplay-hats-1.1.0.pk3](uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3)
+
+[fsmp-teamplay-hats-1.2.0.pk3](uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3)
+
+[fsmp-teamplay-server-files-1.3.0.pk3](uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3)
+
+[fsmp-teamplay-server-files-1.4.0.pk3](uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3)
+
+[csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3](uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3)
+
+- Minecraft map for demo (compressed as .zip, it needs to uncompress and copy .pk3 file and paste to data/dlcache):
+
+[minectf_fsmp1.zip](uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip)
+
+- Demo files (copy and paste to data):
+
+Best recorded demo:
+
+[2019-10-02_21-54_minectf.dem](uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem)
+
+Demo without players, only bots:
+
+[2019.07.11-9_08_minectf__ttt__show_result_.dem](uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem)
+
+After adding these resources, type in the game console: 
+
+It's recommended watching the **best recorded demo**:
+
+`playdemo "2019-10-02_21-54_minectf.dem"`
+
+Other demo:
+
+`playdemo "2019.07.11-9_08(minectf)(ttt)(show result).dem"`
+
+There is a youtube video about the **best recorded demo**: 
+https://youtu.be/WQASMsHeiWk
+
+# Rules
+
+## Basic Rules
+
+All basic rules apply to any role and or players.
+​
+
+- No Randomly Damaging Mate​
+
+1. Randomly Damaging a teammate without sufficient evidence of them committing a kill on site as offence, This includes damages that have been done unintentionally.​
+
+2. Killing any player that is away from their keyboard.​
+
+
+- No Traitor Baiting
+
+1. Performing traitorous acts as Innocent repeatedly.
+
+2. Tricking other players into believing you're a Traitor.
+
+
+
+## Role Rules
+
+These rules only apply if you are apart of that role for example you can't break a detective rule if you're an innocent.​
+
+
+<span style="color:green">**Innocents**</span>​
+
+1. Do not commit any Traitorous acts.
+
+2. Do not work with Traitors
+
+3. Only kill when you have a valid reason to do so.
+
+4. Obey valid detective orders at all times.
+
+5. Do not harm the detectives in any way.
+
+6. Do not use a Traitor defib at all.
+
+
+<span style="color:red">**Traitors**</span>
+
+1. Do not kill other Traitors.
+
+2. Always try to alert other Traitors to your traps.
+
+3. Do not sell out other Traitors.
+
+4. Do not use a Cleaning defib at all.
+
+
+<span style="color:blue">**Detectives**</span>
+
+1. Do not give unreasonable orders.
+
+2. Do not harm Innocents
+
+3. Do not abuse your powers.
+
+4. Do not work with Traitors.
+
+5. Do not use the Traitor defib at All.
+
+## Kill on Site Rules
+
+A kill on site must come under valid for you to act on it. Any kill on site marked with the role letter and color (<span style="color:blue">D</span>, <span style="color:red">T</span> or <span style="color:green">I</span>) are only valid if given by that role. if you kill on site someone for an invalid reason then you may be warned for False kill on site.​
+
+- Valid kill on site​
+
+1. Self Defence.
+
+2. Damage without a valid reason.​
+
+3. Mass killing.​
+
+4. Associating with Traitors.​
+
+5. Hiding game sensitive items.​
+
+6. Using traitor weaponry without being proven.​
+
+7. Failing to Identify bodies after killing.​
+
+8. Walking past multiple unidentified bodies.​
+
+9. Not following Detectives orders. (<span style="color:blue">D</span>)​
+
+
+- Invalid kill on site​
+
+1. Kill on site on a Skin.​
+
+2. Kill on site on a Weapon.​
+
+3. Kill on site on a Location.​
+
+4. Not following Innocents orders.​
+
+5. Suspicion.​
+
+6. Aiming at players.​
+
+
+## Notes for developers / mappers
+
+Sorry, developers, the source code is lost.
+
+Inside the map (.pk3 file), in .mapinfo file, you write: `gametype ttt`
+
+Moreover, you can enable this gamemode in the console using this command: 
+`sv_cmd gametype ttt`
\ No newline at end of file
index 618425225f7ba36212ddced1b3946dcc1b6e5ce7..6440d58a90e6c7639eaa737931dbf1c10fe1ee90 100644 (file)
@@ -2,7 +2,7 @@
 
 # About
 
-## General informatoin
+## General information
 
 Vehicles in Xonotic introduce new dynamics and fun in team play, especially Capture The Flag (CTF), compared to traditional vehicle-free games.
 
@@ -100,8 +100,51 @@ Its primary weapon is machine gun; the aiming direction is shown by the green re
 
 # Unofficial vehicles
 
+**This information is old, maybe there are things that are no longer stable.**
 On [some servers](Special-Servers), one may find experiment vehicles that are not official, such as tanks, helicopters, jets, etc. Please post your opinions on them in [Xonotic Official Forums](http://forums.xonotic.org).
 
+R22 Helicopter and LL48 Tank were used in the SMB modpack and were removed because these are no longer considered part of the core mod. Perhaps these were removed in October 2018.
+
+## Light APC
+
+<img src="uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg" alt="Vehicle-lightapc" width="410"/>
+<br/>
+<img src="uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg" alt="Vehicle-lightapc-cockpit" width="410"/>
+
+Up to three players can ride the Light APC, a large tank vehicle, at the same time.
+The first player will be the pilot, who can drive. It can keep more players inside too.
+
+<img src="uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg" alt="Vehicle-lightapc-thirdperson-view" width="510"/>
+
+The second player will be the front gunner. The third player will be the back gunner.
+When the pilot leaves Light APC, the second player becomes the pilot.
+There are no secondary weapons for any of the three riders in Light APC.
+
+## R22 Helicopter
+
+<img src="uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg" alt="Vehicle-r22helicopter" width="410"/>
+<br/>
+<img src="uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg" alt="Vehicle-r22helicopter-cockpit" width="410"/>
+
+The R22 Helicopter takes one pilot who can also operate two weapons. There are two different reticles for them. Only two players can ride the R22 Helicopter. The second player will be the cockpit, but this player won't do nothing, only will be the spectator of the vehicle inside and he can get out of the vehicle whenever he wants, the same for the pilot. 
+
+<img src="uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg" alt="Vehicle-r22helicopter-thirdperson-view" width="510"/>
+
+The primary weapon is machine gun and is shot toward the green reticle. The second weapon is remote-controlled missiles that target any nearby object that is around the front, is dropped onto the ground the green reticle is pointing at. The white reticle always points at the head of the vehicle. The green reticle is projected by the movement momentum of the vehicle. The movement controls are the same as [Raptor vehicle](Vehicles#raptor).
+
+## LL48 Tank
+
+<img src="uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg" alt="Vehicle-ll48tank" width="410"/>
+<br/>
+<img src="uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg" alt="Vehicle-ll48tank-cockpit" width="410"/>
+
+LL48 Tank takes one rider. It walks on the ground and can jump from very high altitude while protecting the rider.
+
+<img src="uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg" alt="Vehicle-ll48tank-thirdperson-view" width="510"/>
+
+Its primary weapon is the HLAC; the aiming direction is shown by the orange reticle, which follows the front of the vehicle, it does the same as Light APC front gunner. The secondary weapon is the Tank Cannonball that are aimed with the red reticle, which always points to the front of the vehicle, reloading ammo takes a bit of time. Press SHIFT to move the secondary weapon down and press SPACE to move up.
+
+
 # Notes for mappers
 
 Vehicle class names for mappers:
@@ -111,6 +154,12 @@ Vehicle class names for mappers:
 - Raptor: "vehicle_raptor"
 - Spiderbot: "vehicle_spiderbot"
 
+Unofficial vehicle class names:
+
+- Light APC: "vehicle_lightapc"
+- R22 Helicopter: "vehicle_r22heli"
+- LL48 Tank: "vehicle_tankll48"
+
 # Notes for developers
 
 `Assault` needs testing, as far as i can tell it should work now.
@@ -119,3 +168,38 @@ Vehicle class names for mappers:
 
 Maps needed, `as` and `ctf` for now - i cant take this much further w/o play testing on a larger scale.
 
+**Official vehicles source codes are in this [directory](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/master/qcsrc/common/vehicles/vehicle).**
+
+There are unofficial vehicles source codes stored in the [SMB modpack](https://github.com/MarioSMB/modpack/tree/master/mod/common/vehicles).
+
+Some unofficial vehicles are in the jeff-modpack.
+
+Remember if you had them installed in the game, to activate those unofficial vehicles:
+
+`g_vehicles 1 // activate the vehicles in the game`
+
+`set g_vehicles_extra 1 // activate the unofficial vehicles in the game`
+
+`set g_vehicle_tankll48 1 // activate LL48 Tank vehicle in the game`
+
+`set g_vehicle_r22heli 1 // activate R22 Helicopter in the game`
+
+`set g_vehicle_lightapc 1 // activate Light APC in the game`
+
+`set g_vehicles_enter 0 // activate enter inside vehicle automatically instead pressing the key to enter inside`
+
+`set g_vehicles_vortex_damagerate 2`
+
+`set g_vehicle_r22heli_shield_regen 20 // energy regeneration quantity`
+
+`set g_vehicle_r22heli_shield 600 // energy shield`
+
+`set g_vehicle_r22heli_health_regen 15 // health regeneration quantity`
+
+`set g_vehicle_r22heli_speed_forward 2500 // R22 Helicopter speed when it's moving forward`
+
+`set g_vehicle_tankll48_health 3500 // LL48 Tank health quantity`
+
+`set g_vehicle_tankll48_cannon_damage 2000 // LL48 Tank Cannon damage quantity`
+
+It's recommended testing those vehicles in a map called **mars** and with mapinfo and entity files.
\ No newline at end of file
index c7b5e7d881b1b626748d304d5f119c71c4b1e084..e5ad43337771dca0e11015247bf6a9ce38dd395c 100644 (file)
@@ -43,8 +43,8 @@ Arc
 ![](http://pics.nexuizninjaz.com/images/wnzvov3b9ifmkj3v3p5v.jpg) ![](http://pics.nexuizninjaz.com/images/lkyzjkd5f6gx6wx33ahr.jpg)
 
 -   Primary fire: Hold pressed to fire a straight beam of energy that damages enemies and heals team mates.
+-   Secondary fire (in version 0.8.5): Rapidly fire energy beams.
 -   Secondary fire (in version 0.8.2): Fire a more powerful beam of energy. Needs a cooldown after this attack.
--   Secondary fire (in developer version): Rapidly fire green energy balls.
 -   Ammo: Cells
 -   Impulse: 3/249
 
@@ -242,25 +242,29 @@ The Ball Stealer currently looks identical to the Port-O-Launch.
 
 Overkill Weapons
 =======
-Overkill is a rule set that introduces a few new weapons. NOTE: This section is incomplete.
+Overkill is a rule set that introduces a few new weapons.
 
 Heavy Machine Gun (HMG)
 --------------
-![]() ![](http://pics.nexuizninjaz.com/images/52z87krpcqf0hp5r7we8.jpg)
+![](http://pics.nexuizninjaz.com/images/52z87krpcqf0hp5r7we8.jpg)
 
-- Primary fire: ???
-- Secondary fire: ???
-- Ammo: ???
-- Impulse: ???
+The heavy machine gun rapidly fires bullets. It is way more powerful than the regular machine gun. It has a limited magazine size and needs to be reloaded when the magazine is empty. You can reload manually with the reload key (default: R).
+
+-   Primary fire: Rapidly fire bullets.
+-   Secondary fire: Fire a free blaster shot that deals no damage but has strong knockback. Useful to push yourselves and others.
+-   Ammo: Bullets (magazine size: 60)
+-   Impulse: ???
 
 Rocket Propelled Chainsaw (RPC)
 --------------
-![]() ![](http://pics.nexuizninjaz.com/images/32pv09r0pddyvzioog3g.jpg)
+![](http://pics.nexuizninjaz.com/images/32pv09r0pddyvzioog3g.jpg)
 
-- Primary fire: ???
-- Secondary fire: ???
-- Ammo: ???
-- Impulse: ???
+This is basically a rocket launcher. It fires slow rockets which deal a lot of damage with a large radius. If you're not careful with this, you can explode yourselves.
+
+-   Primary fire: Fire a rocket.
+-   Secondary fire: Fire a free blaster shot that deals no damage but has strong knockback. Useful to push yourselves and others.
+-   Ammo: Rockets
+-   Impulse: ???
 
 Silly and experimental weapons
 ==============================
index e01b9b725a3fe637a37af91fd621bcd6e8ce124a..70736004be9188729e569fbf8db45d29125fa16b 100644 (file)
@@ -1,5 +1,7 @@
-### Quick Resources
+##### Quick Resources
 
-[Repository Access and Compiling](Repository_Access)  
+[Compiling release builds](Compiling)  
+[Repository Access and git builds](Repository_Access)  
 [Introduction to QuakeC](Introduction-to-QuakeC)  
 [Tips for new developers](Programming-Tips)  
+[Programming QuakeC stuff in Xonotic](Programming-QuakeC-stuff-in-Xonotic)  
diff --git a/assets/images/Blaster.png b/assets/images/Blaster.png
deleted file mode 100644 (file)
index 88f61ed..0000000
Binary files a/assets/images/Blaster.png and /dev/null differ
diff --git a/assets/images/Blaster_thumb.png b/assets/images/Blaster_thumb.png
deleted file mode 100644 (file)
index 3f1b148..0000000
Binary files a/assets/images/Blaster_thumb.png and /dev/null differ
diff --git a/assets/images/Crylink.png b/assets/images/Crylink.png
deleted file mode 100644 (file)
index f2b8d27..0000000
Binary files a/assets/images/Crylink.png and /dev/null differ
diff --git a/assets/images/Crylink_thumb.png b/assets/images/Crylink_thumb.png
deleted file mode 100644 (file)
index 7be1195..0000000
Binary files a/assets/images/Crylink_thumb.png and /dev/null differ
diff --git a/assets/images/Devastator.png b/assets/images/Devastator.png
deleted file mode 100644 (file)
index d6d3cf6..0000000
Binary files a/assets/images/Devastator.png and /dev/null differ
diff --git a/assets/images/Devastator_thumb.png b/assets/images/Devastator_thumb.png
deleted file mode 100644 (file)
index 679694d..0000000
Binary files a/assets/images/Devastator_thumb.png and /dev/null differ
diff --git a/assets/images/Electro.png b/assets/images/Electro.png
deleted file mode 100644 (file)
index 286f913..0000000
Binary files a/assets/images/Electro.png and /dev/null differ
diff --git a/assets/images/Electro_thumb.png b/assets/images/Electro_thumb.png
deleted file mode 100644 (file)
index e0bf11a..0000000
Binary files a/assets/images/Electro_thumb.png and /dev/null differ
diff --git a/assets/images/Hagar.png b/assets/images/Hagar.png
deleted file mode 100644 (file)
index 1fcb829..0000000
Binary files a/assets/images/Hagar.png and /dev/null differ
diff --git a/assets/images/Hagar_thumb.png b/assets/images/Hagar_thumb.png
deleted file mode 100644 (file)
index 167a816..0000000
Binary files a/assets/images/Hagar_thumb.png and /dev/null differ
diff --git a/assets/images/MachineGun.png b/assets/images/MachineGun.png
deleted file mode 100644 (file)
index a8c45d9..0000000
Binary files a/assets/images/MachineGun.png and /dev/null differ
diff --git a/assets/images/MachineGun_thumb.png b/assets/images/MachineGun_thumb.png
deleted file mode 100644 (file)
index 9f4142f..0000000
Binary files a/assets/images/MachineGun_thumb.png and /dev/null differ
diff --git a/assets/images/Mortar.png b/assets/images/Mortar.png
deleted file mode 100644 (file)
index 3ef33b9..0000000
Binary files a/assets/images/Mortar.png and /dev/null differ
diff --git a/assets/images/Mortar_thumb.png b/assets/images/Mortar_thumb.png
deleted file mode 100644 (file)
index 2681b90..0000000
Binary files a/assets/images/Mortar_thumb.png and /dev/null differ
diff --git a/assets/images/Shotgun.png b/assets/images/Shotgun.png
deleted file mode 100644 (file)
index 2bae9cd..0000000
Binary files a/assets/images/Shotgun.png and /dev/null differ
diff --git a/assets/images/Shotgun_thumb.png b/assets/images/Shotgun_thumb.png
deleted file mode 100644 (file)
index 4469e8a..0000000
Binary files a/assets/images/Shotgun_thumb.png and /dev/null differ
diff --git a/assets/images/Vortex.png b/assets/images/Vortex.png
deleted file mode 100644 (file)
index d79f479..0000000
Binary files a/assets/images/Vortex.png and /dev/null differ
diff --git a/assets/images/Vortex_thumb.png b/assets/images/Vortex_thumb.png
deleted file mode 100644 (file)
index d259752..0000000
Binary files a/assets/images/Vortex_thumb.png and /dev/null differ
diff --git a/assets/images/blaster-jumping.png b/assets/images/blaster-jumping.png
deleted file mode 100644 (file)
index 03aae64..0000000
Binary files a/assets/images/blaster-jumping.png and /dev/null differ
diff --git a/assets/images/blaster-jumping_thumb.png b/assets/images/blaster-jumping_thumb.png
deleted file mode 100644 (file)
index 548cfc7..0000000
Binary files a/assets/images/blaster-jumping_thumb.png and /dev/null differ
diff --git a/assets/images/wall-blastering.png b/assets/images/wall-blastering.png
deleted file mode 100644 (file)
index ee7399f..0000000
Binary files a/assets/images/wall-blastering.png and /dev/null differ
diff --git a/assets/images/wall-blastering_thumb.png b/assets/images/wall-blastering_thumb.png
deleted file mode 100644 (file)
index c01a474..0000000
Binary files a/assets/images/wall-blastering_thumb.png and /dev/null differ
index 3869c9b53013a96e23633d5a829c34f79c1583e4..a03435346a7d380a399efd4b404f693039edf1cb 100644 (file)
@@ -2,9 +2,11 @@ Handicap is used to make the game even for players with different skill levels.
 
 There are 2 types of handicap: voluntary and forced. Voluntary handicap can be set by client via `cl_handicap` variable.
 ```
-cl_handicap 1
-sendcvar cl_handicap 1
+cl_handicap 2
 ```
+
+Since Xonotic 0.8.5 the additional command `sendcvar cl_handicap 2` is no longer needed, as the new value is automatically sent to the server when the cvar value changes.
+
 For obvious reasons, you can't set it to be less than 1.
 
 Forced handicap can be set by the server and can be less than 1. For example, by [dynamic handicap](dynamic-handicap) mutator.
\ No newline at end of file
index d0304a0948d9a0b2af3f38324e199dc38c40fd1d..540e915a6accd736fdb5aa91b08db9b3254154e9 100644 (file)
@@ -5,15 +5,17 @@ Make your map sexy !
 Your map should include a preview picture. This picture will be visible from the game menu and from the servers vote screen.
 
 In order to do so:
-*  Load your map in the game
-*  Use the command `r_letterbox -1` in the console to turn off the HUD
+*  Load your map in the game and stay observer
+*  Use the command `r_letterbox -1` in the console to turn off the HUD (not `r_letterbox 1` as it'd add top and bottom borders)
 *  If your map has "waypoint" entities (like CTF or CTS maps), you can hide them with `cl_hidewaypoints 1`
+* You may also want to hide powerups with `g_powerups 0`, as well as weapons, health and armor items with `g_pickup_items 0`. You'll need to reload the map with `restart` for these settings to take effect.
+*  Turn off jpeg compression with `scr_screenshot_jpeg 0` to avoid a double lossy compression (you'll have to compress it to jpg later)
 *  Take a nice screenshot with F12
 *  Go to your Xonotic user directory, on the `data/screenshot` subdirectory. Your user directory location depends on your operating system, more information [here](https://xonotic.org/faq/#config).
-*  Open the screenshot with an image editor, e.g. GIMP
-*  Crop it so that it has a 4:3 ratio
-*  Scale it to 512x512 px (weird but standard)
-*  Save it as a JPG file (~90% quality)
+*  Open the generated .tga screenshot with an image editor, e.g. GIMP
+*  Crop it so that it has a 4:3 ratio, e.g. if resolution is 1366x768 then crop it to 1024x768
+*  Scale it to 512x512 px (the resulting image should appear vertically stretched)
+*  Save it (export in Gimp) as a JPG file (~90% quality); other formats like tga and png aren't acceptable because they generally produce much bigger files
 *  Put it in the same location as the bsp file, with the same name (see next chapter for packaging rules).
 
 Original source of information: https://forums.xonotic.org/showthread.php?tid=6067&pid=75757#pid75757
diff --git a/modeldecompile-tool.md b/modeldecompile-tool.md
new file mode 100644 (file)
index 0000000..76e90d5
--- /dev/null
@@ -0,0 +1,56 @@
+`modeldecompile` is a powerful command that decompiles any model format (DPM, MDL, IQM, MD3, BSP, etc...) to OBJ. It's available in any Darkplaces game including Xonotic and can decompile any model (weapon, player or any object/entity) present in the game filesystem (in the game installation directory and in the `data` directory inside [your user directory](http://www.xonotic.org/faq/#config).
+
+Usage example: `modeldecompile models/weapons/v_crylink.md3`
+
+It decompiles the mesh and the animations of a model in one action (the animations aren't distributed per actions).
+
+An example of a .framegroups file from a player model (`okrobot1.dpm.framegroups`):
+
+```
+1 41 30 0 // okrobot1 die1
+67 56 30 0 // okrobot1 die2
+133 11 15 1 // okrobot1 draw
+144 6 10 1 // okrobot1 duck
+150 17 15 1 // okrobot1 duckwalk
+167 31 40 0 // okrobot1 duckjump
+198 1 10 1 // okrobot1 duckidle
+199 101 15 1 // okrobot1 idle
+300 17 20 1 // okrobot1 jump
+317 6 10 0 // okrobot1 pain1
+323 6 10 0 // okrobot1 pain2
+329 6 30 0 // okrobot1 shoot
+335 17 15 1 // okrobot1 taunt
+352 17 30 1 // okrobot1 run
+369 17 30 1 // okrobot1 runbackwards
+386 17 30 1 // okrobot1 strafeleft
+403 17 30 1 // okrobot1 straferight
+41 1 10 0 // okrobot4 dead1
+122 1 10 0 // okrobot4 dead2
+424 17 30 1 // okrobot1 forwardright
+441 17 30 1 // okrobot1 forwardleft
+458 17 30 1 // okrobot1 backright
+475 17 30 1 // okrobot1 backleft
+492 21 15 1 // okrobot1 melee
+```
+
+The hacky way to obtain all animations of a model is setting the last keyframe in an exaggerated value (don't care if the fps have that value or aren't loopable) of the .framegroups file, the file must contain ONLY **one line**:
+
+```
+1 9999 30 0 // LegendGuard's legendary method
+```
+
+What that legendary method does is setting the initial keyframe to `1` and `9999` the last keyframe, we can know `9999` doesn't exist but reaches into a limit. (ignore `30` (means fps) and `0` (means nonloop, if `1` means loopable)).
+In the game, execute `modeldecompile any_model.dpm` (any_model.iqm, any_model.md3, any_model.mdl, ...).
+
+<img src="uploads/6140abcafb7b60cb154b43ce5e835105/image.png" alt="model_decompile_okrobot1_xon" width=760 />
+<br/>
+
+After that, go to the data directory where the files were decompiled.
+Use the SMD files to import into [Blender](https://www.blender.org/) using [Blender Source Tools](http://steamreview.org/BlenderSourceTools/) addon.
+
+First, import the mesh (`ref1.smd`) with the Bone Append Mode set to "Make New Armature" and "Import Animations" option disabled. <br/>
+After, select the armature of the imported model (orange highlighted) and import other SMD file (`groupified_0_anim.smd`), before that, set the Bone Append Mode to "Validate Against Target" and enable "Import Animations" option. The animations in one action are applied to the armature.
+
+Result (video): https://streamable.com/1egthv 
+
+The actions can be created with the imported one to separate the keyframes of every animation.
\ No newline at end of file
diff --git a/uploads/00874f6434cec98f1da6d951b9987399/zzz-bai-quickmenu-v2.pk3 b/uploads/00874f6434cec98f1da6d951b9987399/zzz-bai-quickmenu-v2.pk3
new file mode 100644 (file)
index 0000000..1bd63af
Binary files /dev/null and b/uploads/00874f6434cec98f1da6d951b9987399/zzz-bai-quickmenu-v2.pk3 differ
diff --git a/uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg b/uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg
new file mode 100644 (file)
index 0000000..0461415
Binary files /dev/null and b/uploads/00fe4f08ebbb70f7ec3a0c9d4324d61b/enforcer.jpg differ
diff --git a/uploads/01d68ab92d511e0a8ee5c0e0905609ab/entrap.png b/uploads/01d68ab92d511e0a8ee5c0e0905609ab/entrap.png
new file mode 100644 (file)
index 0000000..b37d32f
Binary files /dev/null and b/uploads/01d68ab92d511e0a8ee5c0e0905609ab/entrap.png differ
diff --git a/uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg b/uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg
new file mode 100644 (file)
index 0000000..28209c6
Binary files /dev/null and b/uploads/05a2c41d47a8767fe2f2e23943a8c210/detectiveUsingShockwave.jpg differ
diff --git a/uploads/065948db90af125a0371938ab469713f/rotfish.png b/uploads/065948db90af125a0371938ab469713f/rotfish.png
new file mode 100644 (file)
index 0000000..e9e649e
Binary files /dev/null and b/uploads/065948db90af125a0371938ab469713f/rotfish.png differ
diff --git a/uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg b/uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg
new file mode 100644 (file)
index 0000000..78f1f00
Binary files /dev/null and b/uploads/07e424e85718e7f40cf524183384b0e6/napalmboom.jpg differ
diff --git a/uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg b/uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg
new file mode 100644 (file)
index 0000000..4fb663a
Binary files /dev/null and b/uploads/098c35c194b1a2e12857eade57a0ad03/karmaScore.jpg differ
diff --git a/uploads/0a0cc65abe94db11d3a463f13ea01e53/shambler.jpg b/uploads/0a0cc65abe94db11d3a463f13ea01e53/shambler.jpg
new file mode 100644 (file)
index 0000000..7eef90e
Binary files /dev/null and b/uploads/0a0cc65abe94db11d3a463f13ea01e53/shambler.jpg differ
diff --git a/uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg b/uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg
new file mode 100644 (file)
index 0000000..cf5bb5e
Binary files /dev/null and b/uploads/0c1313aad39b94f00db093f54d379c1c/xonotic20230616230630-00.jpg differ
diff --git a/uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3 b/uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3
new file mode 100644 (file)
index 0000000..1329dcf
Binary files /dev/null and b/uploads/0f9c790bf32b98628b7eaf439cd72bc7/zzz-bai-jokes-v19.pk3 differ
diff --git a/uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3 b/uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3
new file mode 100644 (file)
index 0000000..20e848f
Binary files /dev/null and b/uploads/0fcb08f67791913d31dbaa89f6f4abf7/csprogs-xonotic-v0.8.2-2564-g68e9345d4.pk3 differ
diff --git a/uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem b/uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem
new file mode 100644 (file)
index 0000000..683045b
Binary files /dev/null and b/uploads/10a03f55b5aed6a2fcfe68a8d8b7023f/2019.07.11-9_08_minectf__ttt__show_result_.dem differ
diff --git a/uploads/1249c46f461a504ce7e9d3d07d6fc35b/enforcer.jpg b/uploads/1249c46f461a504ce7e9d3d07d6fc35b/enforcer.jpg
new file mode 100644 (file)
index 0000000..0461415
Binary files /dev/null and b/uploads/1249c46f461a504ce7e9d3d07d6fc35b/enforcer.jpg differ
diff --git a/uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg b/uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg
new file mode 100644 (file)
index 0000000..f539a60
Binary files /dev/null and b/uploads/1487c855c09637affb13c6cfeaaae994/translocateboom.jpg differ
diff --git a/uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg b/uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg
new file mode 100644 (file)
index 0000000..ff54603
Binary files /dev/null and b/uploads/1576c847ebb254534127bd89cc28e504/Vehicle-r22helicopter.jpg differ
diff --git a/uploads/15add5938094995589a7d569e9195f24/entrap.jpg b/uploads/15add5938094995589a7d569e9195f24/entrap.jpg
new file mode 100644 (file)
index 0000000..e85ad0a
Binary files /dev/null and b/uploads/15add5938094995589a7d569e9195f24/entrap.jpg differ
diff --git a/uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg b/uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg
new file mode 100644 (file)
index 0000000..52aaf9b
Binary files /dev/null and b/uploads/167212cbdeca5b838efdcbc0757259d8/soldier.jpg differ
diff --git a/uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg b/uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg
new file mode 100644 (file)
index 0000000..6e69ea7
Binary files /dev/null and b/uploads/19d0104a69a9bf92aa0b65c111ab0488/attackername.jpg differ
diff --git a/uploads/1b9a2ab2a1f5a3138b45d12830910c02/normalboom.png b/uploads/1b9a2ab2a1f5a3138b45d12830910c02/normalboom.png
new file mode 100644 (file)
index 0000000..07a10df
Binary files /dev/null and b/uploads/1b9a2ab2a1f5a3138b45d12830910c02/normalboom.png differ
diff --git a/uploads/1f2be87e309d9afe5e9ea75f79dee8bf/zombie2.jpg b/uploads/1f2be87e309d9afe5e9ea75f79dee8bf/zombie2.jpg
new file mode 100644 (file)
index 0000000..8950742
Binary files /dev/null and b/uploads/1f2be87e309d9afe5e9ea75f79dee8bf/zombie2.jpg differ
diff --git a/uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg b/uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg
new file mode 100644 (file)
index 0000000..0cdb461
Binary files /dev/null and b/uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg differ
diff --git a/uploads/1f7cdac999e2efd1c5083a387b307670/medals1.jpg b/uploads/1f7cdac999e2efd1c5083a387b307670/medals1.jpg
new file mode 100644 (file)
index 0000000..d1db1b7
Binary files /dev/null and b/uploads/1f7cdac999e2efd1c5083a387b307670/medals1.jpg differ
diff --git a/uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg b/uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg
new file mode 100644 (file)
index 0000000..7603ab0
Binary files /dev/null and b/uploads/22b3273ceedc7cbf526f7b7e8a719828/healing.jpg differ
diff --git a/uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3 b/uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3
new file mode 100644 (file)
index 0000000..ae84c6d
Binary files /dev/null and b/uploads/247dc57e177a7d08c2b7ce7e42cd3995/zzz-bai-sounds-v11.pk3 differ
diff --git a/uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg b/uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg
new file mode 100644 (file)
index 0000000..e9726be
Binary files /dev/null and b/uploads/24d3a6caec031b68d70856f62982d96c/gameplayCivilian.jpg differ
diff --git a/uploads/2698f60364ce425dd295fb2462cb682a/mage.png b/uploads/2698f60364ce425dd295fb2462cb682a/mage.png
new file mode 100644 (file)
index 0000000..89384e5
Binary files /dev/null and b/uploads/2698f60364ce425dd295fb2462cb682a/mage.png differ
diff --git a/uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg b/uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg
new file mode 100644 (file)
index 0000000..2a2d67c
Binary files /dev/null and b/uploads/28ea75bd7555021facaf3c93d57cbded/Vehicle-lightapc-cockpit.jpg differ
diff --git a/uploads/2b7164ea021914d842f1f4022cc614c3/team_sb2.jpg b/uploads/2b7164ea021914d842f1f4022cc614c3/team_sb2.jpg
new file mode 100644 (file)
index 0000000..89312bb
Binary files /dev/null and b/uploads/2b7164ea021914d842f1f4022cc614c3/team_sb2.jpg differ
diff --git a/uploads/2bad28f70051aede20cb7c3b6cea30c8/Vehicle-ll48tank.png b/uploads/2bad28f70051aede20cb7c3b6cea30c8/Vehicle-ll48tank.png
new file mode 100644 (file)
index 0000000..3e14c3f
Binary files /dev/null and b/uploads/2bad28f70051aede20cb7c3b6cea30c8/Vehicle-ll48tank.png differ
diff --git a/uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg b/uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg
new file mode 100644 (file)
index 0000000..d345a67
Binary files /dev/null and b/uploads/2c929b6993d5e370c1d5498a03cb4ba8/blenderSMDexport4.jpg differ
diff --git a/uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg b/uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg
new file mode 100644 (file)
index 0000000..1b033c1
Binary files /dev/null and b/uploads/2dc395d83ac793aa20f502a1bfd5bb12/SpectatorHUD.jpg differ
diff --git a/uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg b/uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg
new file mode 100644 (file)
index 0000000..d0f69a6
Binary files /dev/null and b/uploads/2dd93a2f8ce7b22400c32535c9fad392/prydon_mod_sample.jpg differ
diff --git a/uploads/2fb59cdef8d1717526d86515f8138acc/attackername.jpg b/uploads/2fb59cdef8d1717526d86515f8138acc/attackername.jpg
new file mode 100644 (file)
index 0000000..6e69ea7
Binary files /dev/null and b/uploads/2fb59cdef8d1717526d86515f8138acc/attackername.jpg differ
diff --git a/uploads/3042d31bb8a054ea7e177f6110570fb7/spawnnade.png b/uploads/3042d31bb8a054ea7e177f6110570fb7/spawnnade.png
new file mode 100644 (file)
index 0000000..575b2f6
Binary files /dev/null and b/uploads/3042d31bb8a054ea7e177f6110570fb7/spawnnade.png differ
diff --git a/uploads/335d584ff23ed34cc3a7a68683ae198c/chat1.jpg b/uploads/335d584ff23ed34cc3a7a68683ae198c/chat1.jpg
new file mode 100644 (file)
index 0000000..b34eadb
Binary files /dev/null and b/uploads/335d584ff23ed34cc3a7a68683ae198c/chat1.jpg differ
diff --git a/uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg b/uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg
new file mode 100644 (file)
index 0000000..e4a4a6b
Binary files /dev/null and b/uploads/33a69c4499702fbf8592766ebae04c34/suwa_moriya_64_mod_sample.jpg differ
diff --git a/uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg b/uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg
new file mode 100644 (file)
index 0000000..ff8dfe2
Binary files /dev/null and b/uploads/3472a53956c46725e1190936d916abcd/xonotic20230616230550-00.jpg differ
diff --git a/uploads/36275ed8dd703a58de9cb82e49919bb4/xonotic20230616230857-00.jpg b/uploads/36275ed8dd703a58de9cb82e49919bb4/xonotic20230616230857-00.jpg
new file mode 100644 (file)
index 0000000..9bf1bad
Binary files /dev/null and b/uploads/36275ed8dd703a58de9cb82e49919bb4/xonotic20230616230857-00.jpg differ
diff --git a/uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg b/uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg
new file mode 100644 (file)
index 0000000..7a838d7
Binary files /dev/null and b/uploads/3775545047aa58d6e4fcb37df4f500a1/blenderSMDexport1.jpg differ
diff --git a/uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png b/uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png
new file mode 100644 (file)
index 0000000..76256df
Binary files /dev/null and b/uploads/37a186e2bba7428e12d3f43a9f54971a/health_small.png differ
diff --git a/uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg b/uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg
new file mode 100644 (file)
index 0000000..eb1badc
Binary files /dev/null and b/uploads/3a0322703abb471d604d3b65b778bd53/monsternade.jpg differ
diff --git a/uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip b/uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip
new file mode 100644 (file)
index 0000000..26da4ca
Binary files /dev/null and b/uploads/3b589d72556bff2e9426025e5550c2ea/minectf_fsmp1.zip differ
diff --git a/uploads/3d3d116722312d471408c7d178595e6d/items.jpg b/uploads/3d3d116722312d471408c7d178595e6d/items.jpg
new file mode 100644 (file)
index 0000000..287a2f6
Binary files /dev/null and b/uploads/3d3d116722312d471408c7d178595e6d/items.jpg differ
diff --git a/uploads/400f17cde6ff8a2fb43bb2efffd1384f/timer2.jpg b/uploads/400f17cde6ff8a2fb43bb2efffd1384f/timer2.jpg
new file mode 100644 (file)
index 0000000..d17b8fb
Binary files /dev/null and b/uploads/400f17cde6ff8a2fb43bb2efffd1384f/timer2.jpg differ
diff --git a/uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3 b/uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3
new file mode 100644 (file)
index 0000000..b3b6a8d
Binary files /dev/null and b/uploads/40d56cf47c83b50e18b4d5e56eece21a/fsmp-teamplay-hats-1.1.0.pk3 differ
diff --git a/uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png b/uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png
new file mode 100644 (file)
index 0000000..29b055c
Binary files /dev/null and b/uploads/440eb38e781b4bb26f3679102b69b185/iconTTTgamemode.png differ
diff --git a/uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg b/uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg
new file mode 100644 (file)
index 0000000..9a289bd
Binary files /dev/null and b/uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg differ
diff --git a/uploads/44db8ef2cb4c89e2442e9b97854eb474/vore.jpg b/uploads/44db8ef2cb4c89e2442e9b97854eb474/vore.jpg
new file mode 100644 (file)
index 0000000..d797d29
Binary files /dev/null and b/uploads/44db8ef2cb4c89e2442e9b97854eb474/vore.jpg differ
diff --git a/uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg b/uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg
new file mode 100644 (file)
index 0000000..ee36b5e
Binary files /dev/null and b/uploads/46162b4daff7255e5eab7637665426a4/detectiveUsingShockwaveSlime.jpg differ
diff --git a/uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png b/uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png
new file mode 100644 (file)
index 0000000..de974c5
Binary files /dev/null and b/uploads/46eaf8713d4ad22caec4028948a815a0/armor_medium.png differ
diff --git a/uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg b/uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg
new file mode 100644 (file)
index 0000000..5fcecb7
Binary files /dev/null and b/uploads/4790da4757c57d879be55493c95b6857/nitroboom.jpg differ
diff --git a/uploads/4846409eef51aa79ba47169c666fd8d1/xonotic20230616230550-00.jpg b/uploads/4846409eef51aa79ba47169c666fd8d1/xonotic20230616230550-00.jpg
new file mode 100644 (file)
index 0000000..d395aee
Binary files /dev/null and b/uploads/4846409eef51aa79ba47169c666fd8d1/xonotic20230616230550-00.jpg differ
diff --git a/uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg b/uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg
new file mode 100644 (file)
index 0000000..e7529f3
Binary files /dev/null and b/uploads/48f09eb2f3608e502ad88c348a4b4473/creeper.jpg differ
diff --git a/uploads/49d1fa684ecd673367b4f3294195a37f/normal.png b/uploads/49d1fa684ecd673367b4f3294195a37f/normal.png
new file mode 100644 (file)
index 0000000..d7c5ca6
Binary files /dev/null and b/uploads/49d1fa684ecd673367b4f3294195a37f/normal.png differ
diff --git a/uploads/49f7b185c41d545a8736999a55a9a3da/mage.jpg b/uploads/49f7b185c41d545a8736999a55a9a3da/mage.jpg
new file mode 100644 (file)
index 0000000..4dd3849
Binary files /dev/null and b/uploads/49f7b185c41d545a8736999a55a9a3da/mage.jpg differ
diff --git a/uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png b/uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png
new file mode 100644 (file)
index 0000000..d9ad5dd
Binary files /dev/null and b/uploads/4b0977974e9cd4db5f2e53b6e6a82e66/gametype_mmmluminos.png differ
diff --git a/uploads/4d0ceb0f572aaf5ae3ecc9b1d56387da/soldier.png b/uploads/4d0ceb0f572aaf5ae3ecc9b1d56387da/soldier.png
new file mode 100644 (file)
index 0000000..267c760
Binary files /dev/null and b/uploads/4d0ceb0f572aaf5ae3ecc9b1d56387da/soldier.png differ
diff --git a/uploads/4d83e3253563e6fde2c17be1c7ff4e3d/xonotic20230616230630-00.jpg b/uploads/4d83e3253563e6fde2c17be1c7ff4e3d/xonotic20230616230630-00.jpg
new file mode 100644 (file)
index 0000000..dbf2045
Binary files /dev/null and b/uploads/4d83e3253563e6fde2c17be1c7ff4e3d/xonotic20230616230630-00.jpg differ
diff --git a/uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg b/uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg
new file mode 100644 (file)
index 0000000..42f38a9
Binary files /dev/null and b/uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg differ
diff --git a/uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png b/uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png
new file mode 100644 (file)
index 0000000..18b0edd
Binary files /dev/null and b/uploads/4fd1b9f684461c71bc412f9db18cddc2/armor_small.png differ
diff --git a/uploads/508f6b1a832daa7c16b0e3296e08e5c0/zzz-bai-jokes-v18.pk3 b/uploads/508f6b1a832daa7c16b0e3296e08e5c0/zzz-bai-jokes-v18.pk3
new file mode 100644 (file)
index 0000000..52a0949
Binary files /dev/null and b/uploads/508f6b1a832daa7c16b0e3296e08e5c0/zzz-bai-jokes-v18.pk3 differ
diff --git a/uploads/56b672332778d67b7c359b611d54c06f/demon.jpg b/uploads/56b672332778d67b7c359b611d54c06f/demon.jpg
new file mode 100644 (file)
index 0000000..1dd850d
Binary files /dev/null and b/uploads/56b672332778d67b7c359b611d54c06f/demon.jpg differ
diff --git a/uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg b/uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg
new file mode 100644 (file)
index 0000000..0fa9283
Binary files /dev/null and b/uploads/57bf95ee9075a32117999d7348cd4e8d/ogre.jpg differ
diff --git a/uploads/58cca074777c04803b43075d87b1589d/demon.png b/uploads/58cca074777c04803b43075d87b1589d/demon.png
new file mode 100644 (file)
index 0000000..4e5ae40
Binary files /dev/null and b/uploads/58cca074777c04803b43075d87b1589d/demon.png differ
diff --git a/uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg b/uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg
new file mode 100644 (file)
index 0000000..1de1a1e
Binary files /dev/null and b/uploads/5953f5fd352f33e8d915350f16fbbe3c/whenFinishedmakes_public_everyone_whotheyare.jpg differ
diff --git a/uploads/5b6fb4928acca2a57cba1988b716fed0/zzz-bai-gfx-v10.pk3 b/uploads/5b6fb4928acca2a57cba1988b716fed0/zzz-bai-gfx-v10.pk3
new file mode 100644 (file)
index 0000000..9f4a4b6
Binary files /dev/null and b/uploads/5b6fb4928acca2a57cba1988b716fed0/zzz-bai-gfx-v10.pk3 differ
diff --git a/uploads/5d31e87dd1da89af57d0be70103b7ce8/Vehicle-lightapc-thirdperson-view.png b/uploads/5d31e87dd1da89af57d0be70103b7ce8/Vehicle-lightapc-thirdperson-view.png
new file mode 100644 (file)
index 0000000..2523c7d
Binary files /dev/null and b/uploads/5d31e87dd1da89af57d0be70103b7ce8/Vehicle-lightapc-thirdperson-view.png differ
diff --git a/uploads/5ddae1fd58f18d61e3c88705cd04b0e7/rottweiler.jpg b/uploads/5ddae1fd58f18d61e3c88705cd04b0e7/rottweiler.jpg
new file mode 100644 (file)
index 0000000..f9a9588
Binary files /dev/null and b/uploads/5ddae1fd58f18d61e3c88705cd04b0e7/rottweiler.jpg differ
diff --git a/uploads/5df5aca2975cb939a9f091574ea12d6f/healingboom.png b/uploads/5df5aca2975cb939a9f091574ea12d6f/healingboom.png
new file mode 100644 (file)
index 0000000..ab8af9c
Binary files /dev/null and b/uploads/5df5aca2975cb939a9f091574ea12d6f/healingboom.png differ
diff --git a/uploads/5e67f7c446756d56d7fef54c7bd4d418/iconTroubleinTerroristTown.png b/uploads/5e67f7c446756d56d7fef54c7bd4d418/iconTroubleinTerroristTown.png
new file mode 100644 (file)
index 0000000..0802ae9
Binary files /dev/null and b/uploads/5e67f7c446756d56d7fef54c7bd4d418/iconTroubleinTerroristTown.png differ
diff --git a/uploads/5ee301512f68a165fdec5bf16f14fbd9/Vehicle-r22helicopter-cockpit.png b/uploads/5ee301512f68a165fdec5bf16f14fbd9/Vehicle-r22helicopter-cockpit.png
new file mode 100644 (file)
index 0000000..b27b2c8
Binary files /dev/null and b/uploads/5ee301512f68a165fdec5bf16f14fbd9/Vehicle-r22helicopter-cockpit.png differ
diff --git a/uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg b/uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg
new file mode 100644 (file)
index 0000000..32c54c1
Binary files /dev/null and b/uploads/60156ec99cc8e3514341fb69373e4680/Vehicle-ll48tank-thirdperson-view.jpg differ
diff --git a/uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg b/uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg
new file mode 100644 (file)
index 0000000..441f7b4
Binary files /dev/null and b/uploads/606e3175f20a9274b9c651f5b8fea151/healingboom.jpg differ
diff --git a/uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg b/uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg
new file mode 100644 (file)
index 0000000..d7633b3
Binary files /dev/null and b/uploads/60ed6217d9608f9260e2306a039a5402/xonotic20230616230906-00.jpg differ
diff --git a/uploads/6140abcafb7b60cb154b43ce5e835105/image.png b/uploads/6140abcafb7b60cb154b43ce5e835105/image.png
new file mode 100644 (file)
index 0000000..d67ff07
Binary files /dev/null and b/uploads/6140abcafb7b60cb154b43ce5e835105/image.png differ
diff --git a/uploads/624609a067a037559c2d3033df1618d7/wyvern.png b/uploads/624609a067a037559c2d3033df1618d7/wyvern.png
new file mode 100644 (file)
index 0000000..f16c860
Binary files /dev/null and b/uploads/624609a067a037559c2d3033df1618d7/wyvern.png differ
diff --git a/uploads/6441f147f90aba34812ebc3cb733caa7/monsternadeboom.png b/uploads/6441f147f90aba34812ebc3cb733caa7/monsternadeboom.png
new file mode 100644 (file)
index 0000000..d5cd336
Binary files /dev/null and b/uploads/6441f147f90aba34812ebc3cb733caa7/monsternadeboom.png differ
diff --git a/uploads/64c214772da84aceb4d5f56184606d3a/teams2.jpg b/uploads/64c214772da84aceb4d5f56184606d3a/teams2.jpg
new file mode 100644 (file)
index 0000000..957c8bc
Binary files /dev/null and b/uploads/64c214772da84aceb4d5f56184606d3a/teams2.jpg differ
diff --git a/uploads/655f8b85825c0c6f4c092e898e2bb061/chat2.jpg b/uploads/655f8b85825c0c6f4c092e898e2bb061/chat2.jpg
new file mode 100644 (file)
index 0000000..77c08a6
Binary files /dev/null and b/uploads/655f8b85825c0c6f4c092e898e2bb061/chat2.jpg differ
diff --git a/uploads/6853c4cc8c82b8564ff1b94c89b224be/scrag.png b/uploads/6853c4cc8c82b8564ff1b94c89b224be/scrag.png
new file mode 100644 (file)
index 0000000..3acbbbb
Binary files /dev/null and b/uploads/6853c4cc8c82b8564ff1b94c89b224be/scrag.png differ
diff --git a/uploads/68fc3a8a5ecad8d4a6bfa6e62b8f4a83/zzz-bai-gfx-v7.pk3 b/uploads/68fc3a8a5ecad8d4a6bfa6e62b8f4a83/zzz-bai-gfx-v7.pk3
new file mode 100644 (file)
index 0000000..a14eec2
Binary files /dev/null and b/uploads/68fc3a8a5ecad8d4a6bfa6e62b8f4a83/zzz-bai-gfx-v7.pk3 differ
diff --git a/uploads/6cdb741c94684e2633821c7540269186/iconTTTgamemode.png b/uploads/6cdb741c94684e2633821c7540269186/iconTTTgamemode.png
new file mode 100644 (file)
index 0000000..3c4f4f9
Binary files /dev/null and b/uploads/6cdb741c94684e2633821c7540269186/iconTTTgamemode.png differ
diff --git a/uploads/6dba374fe3ca986cdc8551335bedc222/title1.jpg b/uploads/6dba374fe3ca986cdc8551335bedc222/title1.jpg
new file mode 100644 (file)
index 0000000..e5fe8e5
Binary files /dev/null and b/uploads/6dba374fe3ca986cdc8551335bedc222/title1.jpg differ
diff --git a/uploads/751564673b6ea39fadf17fb217579230/xonotic20230616230906-00.jpg b/uploads/751564673b6ea39fadf17fb217579230/xonotic20230616230906-00.jpg
new file mode 100644 (file)
index 0000000..00002cf
Binary files /dev/null and b/uploads/751564673b6ea39fadf17fb217579230/xonotic20230616230906-00.jpg differ
diff --git a/uploads/7599a92aad08c45284b84e18c6bbfa5c/zombie.png b/uploads/7599a92aad08c45284b84e18c6bbfa5c/zombie.png
new file mode 100644 (file)
index 0000000..deaf9aa
Binary files /dev/null and b/uploads/7599a92aad08c45284b84e18c6bbfa5c/zombie.png differ
diff --git a/uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3 b/uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3
new file mode 100644 (file)
index 0000000..1bd63af
Binary files /dev/null and b/uploads/7607735ad75ec0853a3f88a3ecf018ae/zzz-bai-quickmenu-v2.pk3 differ
diff --git a/uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg b/uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg
new file mode 100644 (file)
index 0000000..1a5f720
Binary files /dev/null and b/uploads/77207df550e8c0316e08bdd696917493/crouch_wp.jpg differ
diff --git a/uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg b/uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg
new file mode 100644 (file)
index 0000000..e8344bc
Binary files /dev/null and b/uploads/77f2c9768bec14f7b5c5cfd68452886f/spawnnade.jpg differ
diff --git a/uploads/78a63b420def6f1e228720d1d91c6e3f/Honeyview_armor_mega.png b/uploads/78a63b420def6f1e228720d1d91c6e3f/Honeyview_armor_mega.png
new file mode 100644 (file)
index 0000000..b10bc2a
Binary files /dev/null and b/uploads/78a63b420def6f1e228720d1d91c6e3f/Honeyview_armor_mega.png differ
diff --git a/uploads/7a978ef8c57af58b558e9b670e5d475d/image.png b/uploads/7a978ef8c57af58b558e9b670e5d475d/image.png
new file mode 100644 (file)
index 0000000..738a93f
Binary files /dev/null and b/uploads/7a978ef8c57af58b558e9b670e5d475d/image.png differ
diff --git a/uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg b/uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg
new file mode 100644 (file)
index 0000000..96d52ab
Binary files /dev/null and b/uploads/7ba1f8aed1b8dc2f41cec2679b8928d0/iconTroubleinTerroristTown.jpg differ
diff --git a/uploads/7deb9e6cb017bcc91ab2e4687a358b6a/nitro.png b/uploads/7deb9e6cb017bcc91ab2e4687a358b6a/nitro.png
new file mode 100644 (file)
index 0000000..35768a4
Binary files /dev/null and b/uploads/7deb9e6cb017bcc91ab2e4687a358b6a/nitro.png differ
diff --git a/uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg b/uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg
new file mode 100644 (file)
index 0000000..429d27f
Binary files /dev/null and b/uploads/7df860d73a6fae27408c8f0c024122c7/exporttutorialIQM.jpg differ
diff --git a/uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg b/uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg
new file mode 100644 (file)
index 0000000..fa6afd3
Binary files /dev/null and b/uploads/7e75ed16f04358a1297c0cd1363a5e03/normal.jpg differ
diff --git a/uploads/7f62d54a5763b007ade732feadeb13ec/title2.jpg b/uploads/7f62d54a5763b007ade732feadeb13ec/title2.jpg
new file mode 100644 (file)
index 0000000..1d96dea
Binary files /dev/null and b/uploads/7f62d54a5763b007ade732feadeb13ec/title2.jpg differ
diff --git a/uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg b/uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg
new file mode 100644 (file)
index 0000000..73d3dc5
Binary files /dev/null and b/uploads/801998e5644db63a5946c46a29ddec85/4eg.jpg differ
diff --git a/uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg b/uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg
new file mode 100644 (file)
index 0000000..8660571
Binary files /dev/null and b/uploads/80220aa4479a827e72b0a3734c9b237e/hardwired_wp.jpg differ
diff --git a/uploads/80fea6093550c63fd50c099b50620372/teams1.jpg b/uploads/80fea6093550c63fd50c099b50620372/teams1.jpg
new file mode 100644 (file)
index 0000000..7f28c91
Binary files /dev/null and b/uploads/80fea6093550c63fd50c099b50620372/teams1.jpg differ
diff --git a/uploads/8195594de91adce2c8f62f9819c8e861/nitroboom.png b/uploads/8195594de91adce2c8f62f9819c8e861/nitroboom.png
new file mode 100644 (file)
index 0000000..668df57
Binary files /dev/null and b/uploads/8195594de91adce2c8f62f9819c8e861/nitroboom.png differ
diff --git a/uploads/81f43728f6f8a8fa07185ad9125b0b1d/Vehicle-lightapc.png b/uploads/81f43728f6f8a8fa07185ad9125b0b1d/Vehicle-lightapc.png
new file mode 100644 (file)
index 0000000..1c2c442
Binary files /dev/null and b/uploads/81f43728f6f8a8fa07185ad9125b0b1d/Vehicle-lightapc.png differ
diff --git a/uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg b/uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg
new file mode 100644 (file)
index 0000000..f0b2a1e
Binary files /dev/null and b/uploads/8283fe733167674cd1061fafa93da0a2/Vehicle-r22helicopter-cockpit.jpg differ
diff --git a/uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg b/uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg
new file mode 100644 (file)
index 0000000..fa27d20
Binary files /dev/null and b/uploads/85f12623125db9d1e86e8189d5b247ad/Vehicle-lightapc-thirdperson-view.jpg differ
diff --git a/uploads/86e23f5af2fa659b2a1b0ac71fed74fe/timer1.jpg b/uploads/86e23f5af2fa659b2a1b0ac71fed74fe/timer1.jpg
new file mode 100644 (file)
index 0000000..f80b7ff
Binary files /dev/null and b/uploads/86e23f5af2fa659b2a1b0ac71fed74fe/timer1.jpg differ
diff --git a/uploads/87492fa3d375e4166c86d794257b7d78/Gitsettingsshortguide.jpg b/uploads/87492fa3d375e4166c86d794257b7d78/Gitsettingsshortguide.jpg
new file mode 100644 (file)
index 0000000..aa3a6f1
Binary files /dev/null and b/uploads/87492fa3d375e4166c86d794257b7d78/Gitsettingsshortguide.jpg differ
diff --git a/uploads/87ff1b41bfbbc6221bf9b715bd2993d8/chat_ready.jpg b/uploads/87ff1b41bfbbc6221bf9b715bd2993d8/chat_ready.jpg
new file mode 100644 (file)
index 0000000..3ad2577
Binary files /dev/null and b/uploads/87ff1b41bfbbc6221bf9b715bd2993d8/chat_ready.jpg differ
diff --git a/uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg b/uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg
new file mode 100644 (file)
index 0000000..8895ce1
Binary files /dev/null and b/uploads/88071dccb47d650aacd31c719eadb6b6/veilboom.jpg differ
diff --git a/uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3 b/uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3
new file mode 100644 (file)
index 0000000..19b3f4b
Binary files /dev/null and b/uploads/8a541fbdf6d2ab0447567eb1e18d3e13/zzz-bai-jingle-v1.pk3 differ
diff --git a/uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem b/uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem
new file mode 100644 (file)
index 0000000..9c20b1d
Binary files /dev/null and b/uploads/8ba3d79131713563e8d2ba35aa7d1b55/2019-10-02_21-54_minectf.dem differ
diff --git a/uploads/8c812cdb7f7bdad7a3b9d199cc3583fc/duel_sb2.jpg b/uploads/8c812cdb7f7bdad7a3b9d199cc3583fc/duel_sb2.jpg
new file mode 100644 (file)
index 0000000..c3d78a9
Binary files /dev/null and b/uploads/8c812cdb7f7bdad7a3b9d199cc3583fc/duel_sb2.jpg differ
diff --git a/uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg b/uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg
new file mode 100644 (file)
index 0000000..f09e408
Binary files /dev/null and b/uploads/8d007cfbdd179a15ad8d99e9cd18aa06/Vehicle-ll48tank-cockpit.jpg differ
diff --git a/uploads/8f643aba9800e682047c9818482718af/zzz-bai-announcer-v9.pk3 b/uploads/8f643aba9800e682047c9818482718af/zzz-bai-announcer-v9.pk3
new file mode 100644 (file)
index 0000000..013c567
Binary files /dev/null and b/uploads/8f643aba9800e682047c9818482718af/zzz-bai-announcer-v9.pk3 differ
diff --git a/uploads/90d8ed4487ba478fcec90adb691c7a42/timer3.jpg b/uploads/90d8ed4487ba478fcec90adb691c7a42/timer3.jpg
new file mode 100644 (file)
index 0000000..49d0ed7
Binary files /dev/null and b/uploads/90d8ed4487ba478fcec90adb691c7a42/timer3.jpg differ
diff --git a/uploads/922bfe3278e7ec8688c4b96448e1e2ed/shambler.png b/uploads/922bfe3278e7ec8688c4b96448e1e2ed/shambler.png
new file mode 100644 (file)
index 0000000..bc8846c
Binary files /dev/null and b/uploads/922bfe3278e7ec8688c4b96448e1e2ed/shambler.png differ
diff --git a/uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg b/uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg
new file mode 100644 (file)
index 0000000..6773aba
Binary files /dev/null and b/uploads/92d5842accfd071f8900b689591423df/Vehicle-r22helicopter-thirdperson-view.jpg differ
diff --git a/uploads/9325a103e7052bec6ebdb05e4c3afe99/Vehicle-r22helicopter-thirdperson-view.png b/uploads/9325a103e7052bec6ebdb05e4c3afe99/Vehicle-r22helicopter-thirdperson-view.png
new file mode 100644 (file)
index 0000000..482ff20
Binary files /dev/null and b/uploads/9325a103e7052bec6ebdb05e4c3afe99/Vehicle-r22helicopter-thirdperson-view.png differ
diff --git a/uploads/9573c68889648122385609f314b1f077/normal_wp.jpg b/uploads/9573c68889648122385609f314b1f077/normal_wp.jpg
new file mode 100644 (file)
index 0000000..fe65c6c
Binary files /dev/null and b/uploads/9573c68889648122385609f314b1f077/normal_wp.jpg differ
diff --git a/uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg b/uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg
new file mode 100644 (file)
index 0000000..0b0189e
Binary files /dev/null and b/uploads/967d1e4b8c364b86fad171a959f5f5f9/scrag.jpg differ
diff --git a/uploads/968d5da002ae4e9070381e09c833504e/health_medium.png b/uploads/968d5da002ae4e9070381e09c833504e/health_medium.png
new file mode 100644 (file)
index 0000000..1c0a30a
Binary files /dev/null and b/uploads/968d5da002ae4e9070381e09c833504e/health_medium.png differ
diff --git a/uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3 b/uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3
new file mode 100644 (file)
index 0000000..4418fd4
Binary files /dev/null and b/uploads/9997b9cb9e9f3405a3e374811caa37ec/fsmp-teamplay-hats-1.2.0.pk3 differ
diff --git a/uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg b/uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg
new file mode 100644 (file)
index 0000000..765a6c7
Binary files /dev/null and b/uploads/9ad5f03fe196de135e03f281cdd4cc62/veil.jpg differ
diff --git a/uploads/9b6498ef80aea439232ac35d020a3859/xonotic20230616230550-00.jpg b/uploads/9b6498ef80aea439232ac35d020a3859/xonotic20230616230550-00.jpg
new file mode 100644 (file)
index 0000000..ff8dfe2
Binary files /dev/null and b/uploads/9b6498ef80aea439232ac35d020a3859/xonotic20230616230550-00.jpg differ
diff --git a/uploads/9b9de99e09439a4afbbee0ef1ff9dd6a/spider.png b/uploads/9b9de99e09439a4afbbee0ef1ff9dd6a/spider.png
new file mode 100644 (file)
index 0000000..3b45243
Binary files /dev/null and b/uploads/9b9de99e09439a4afbbee0ef1ff9dd6a/spider.png differ
diff --git a/uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg b/uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg
new file mode 100644 (file)
index 0000000..00e1316
Binary files /dev/null and b/uploads/9e9efa19232d1c47fd982ad0da2eb1df/blenderSMDexport3.jpg differ
diff --git a/uploads/9edc77a777f634acf4185f7e6fbd0e84/Vehicle-lightapc-cockpit.png b/uploads/9edc77a777f634acf4185f7e6fbd0e84/Vehicle-lightapc-cockpit.png
new file mode 100644 (file)
index 0000000..8c715d5
Binary files /dev/null and b/uploads/9edc77a777f634acf4185f7e6fbd0e84/Vehicle-lightapc-cockpit.png differ
diff --git a/uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg b/uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg
new file mode 100644 (file)
index 0000000..01ea337
Binary files /dev/null and b/uploads/a1525b91e1519d2786431a2e5b43e69b/MenuMMM.jpg differ
diff --git a/uploads/a1fbbf13c4340542b10a126eb3eb4c27/exportiqmiqeblenderdetails.jpg b/uploads/a1fbbf13c4340542b10a126eb3eb4c27/exportiqmiqeblenderdetails.jpg
new file mode 100644 (file)
index 0000000..f3fcce3
Binary files /dev/null and b/uploads/a1fbbf13c4340542b10a126eb3eb4c27/exportiqmiqeblenderdetails.jpg differ
diff --git a/uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg b/uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg
new file mode 100644 (file)
index 0000000..ab74af3
Binary files /dev/null and b/uploads/a23dbba1f6aa6d1a272cb57855167dbe/Vehicle-lightapc.jpg differ
diff --git a/uploads/a34e5e8eabec5fde14bbd12aafec2810/ogre.png b/uploads/a34e5e8eabec5fde14bbd12aafec2810/ogre.png
new file mode 100644 (file)
index 0000000..2a5697d
Binary files /dev/null and b/uploads/a34e5e8eabec5fde14bbd12aafec2810/ogre.png differ
diff --git a/uploads/a3b5d15a9af637f1d10e5a284cbf9834/rotfish.jpg b/uploads/a3b5d15a9af637f1d10e5a284cbf9834/rotfish.jpg
new file mode 100644 (file)
index 0000000..1407630
Binary files /dev/null and b/uploads/a3b5d15a9af637f1d10e5a284cbf9834/rotfish.jpg differ
diff --git a/uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg b/uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg
new file mode 100644 (file)
index 0000000..8c12b80
Binary files /dev/null and b/uploads/a622ef2d5c0c5ca81d6f044c452293eb/quake_mod_sample.jpg differ
diff --git a/uploads/a6789a82865f41522bfaa150e9c2bbc8/healing.png b/uploads/a6789a82865f41522bfaa150e9c2bbc8/healing.png
new file mode 100644 (file)
index 0000000..0e01a04
Binary files /dev/null and b/uploads/a6789a82865f41522bfaa150e9c2bbc8/healing.png differ
diff --git a/uploads/a686abf53ed2a7c0c39d264fce1a15bc/translocateboom.png b/uploads/a686abf53ed2a7c0c39d264fce1a15bc/translocateboom.png
new file mode 100644 (file)
index 0000000..52508ce
Binary files /dev/null and b/uploads/a686abf53ed2a7c0c39d264fce1a15bc/translocateboom.png differ
diff --git a/uploads/a696bd29d305c0d58ec1a6c18cbaae0b/veilboom.png b/uploads/a696bd29d305c0d58ec1a6c18cbaae0b/veilboom.png
new file mode 100644 (file)
index 0000000..0a9abb7
Binary files /dev/null and b/uploads/a696bd29d305c0d58ec1a6c18cbaae0b/veilboom.png differ
diff --git a/uploads/a90778308bad9c09bf02be9cdb760f76/napalm.png b/uploads/a90778308bad9c09bf02be9cdb760f76/napalm.png
new file mode 100644 (file)
index 0000000..9b97094
Binary files /dev/null and b/uploads/a90778308bad9c09bf02be9cdb760f76/napalm.png differ
diff --git a/uploads/aa246c0d67cabd7a59ad0f330280b6b0/tttTGA.tga b/uploads/aa246c0d67cabd7a59ad0f330280b6b0/tttTGA.tga
new file mode 100644 (file)
index 0000000..32fb75b
Binary files /dev/null and b/uploads/aa246c0d67cabd7a59ad0f330280b6b0/tttTGA.tga differ
diff --git a/uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg b/uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg
new file mode 100644 (file)
index 0000000..e726f6b
Binary files /dev/null and b/uploads/abef98eaddd7c61bec7eb467efe4c3fe/crylinkblendermaterialsample.jpg differ
diff --git a/uploads/ad2d82960ebaa51bf74370a32b7fffd2/items.jpg b/uploads/ad2d82960ebaa51bf74370a32b7fffd2/items.jpg
new file mode 100644 (file)
index 0000000..287a2f6
Binary files /dev/null and b/uploads/ad2d82960ebaa51bf74370a32b7fffd2/items.jpg differ
diff --git a/uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg b/uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg
new file mode 100644 (file)
index 0000000..b5d94aa
Binary files /dev/null and b/uploads/ae680fd80bdf748fdee6d2f9186dada3/jump_wp.jpg differ
diff --git a/uploads/af2f46e366956e6ec336515564664d42/th_waypointeditor_config.cfg b/uploads/af2f46e366956e6ec336515564664d42/th_waypointeditor_config.cfg
new file mode 100644 (file)
index 0000000..a4dd849
--- /dev/null
@@ -0,0 +1,50 @@
+// terencehill's waypoint editor config
+
+con_notify 4
+//g_warmup 0
+//r_lightningbeam_thickness 2
+
+//fss: field set server
+alias fss "prvm_edictset server $1 $2 \"$3\""
+
+set th_bindmap_active 1
+set th_bindmap_bg_active 0
+alias th_bindmap_apply "in_bindmap $th_bindmap_active $th_bindmap_bg_active"
+
+alias th_waypointeditor_enable "g_waypointeditor 1; bot_debug_goalstack 1; bot_nofire 1; sv_cheats 1; timelimit_override 0; th_bindmap_active 1; th_bindmap_apply"
+alias th_waypointeditor_disable "g_waypointeditor 0; bot_debug_goalstack 0; bot_nofire 0; sv_cheats 0; timelimit_override -1; th_bindmap_active 0; th_bindmap_apply"
+
+alias bot_reset_ammo "fss 2 ammo_shells 1; fss 2 ammo_nails 1; fss 2 ammo_rockets 1; fss 2 ammo_cells 1; fss 2 ammo_plasma 1; fss 2 ammo_fuel 1; fss 2 ammo_shells 1;"
+alias bot_reset_health "fss 2 health 1; fss 2 armorvalue 0"
+alias bot_role_generic "fss 2 havocbot_role havocbot_role_generic; fss 2 havocbot_role_timeout 999999; fss 2 havocbot_previous_role havocbot_role_generic"
+
+th_waypointeditor_enable
+
+alias th_bindmap_default "in_bindmap 0 0"
+
+set th_bindmap_waypointeditor_num 1
+alias th_bindmap_waypointeditor "in_bindmap $th_bindmap_waypointeditor 0"
+
+alias bind_waypointeditor "in_bind $th_bindmap_waypointeditor_num $*"
+bind_waypointeditor 1 "wpeditor spawn"
+bind_waypointeditor 2 "wpeditor remove"
+bind_waypointeditor 3 "wpeditor saveall"
+bind_waypointeditor 4 "wpeditor relinkall"
+bind_waypointeditor 5 "wpeditor unreachable"
+bind_waypointeditor 6 "wpeditor spawn crosshair"
+bind_waypointeditor 7 "wpeditor spawn jump"
+bind_waypointeditor 8 "wpeditor spawn crouch"
+bind_waypointeditor 9 "wpeditor spawn support"
+bind_waypointeditor 0 "wpeditor hardwire crosshair"
+bind_waypointeditor mouse4 "wpeditor spawn"
+bind_waypointeditor mouse5 "wpeditor remove"
+bind_waypointeditor ctrl "toggle slowmo 1 0.1"
+bind_waypointeditor r wpeditor_menu
+bind_waypointeditor f fly
+bind_waypointeditor g god
+bind_waypointeditor l "wpeditor lock"
+bind_waypointeditor x "bot_cmd 1 pause"
+bind_waypointeditor c "bot_cmd 1 continue"
+bind_waypointeditor v +crouch
+bind_waypointeditor n "toggle bot_number"
+bind_waypointeditor m "bot_role_generic"
diff --git a/uploads/b047fb813b9c5fd39dddd6475b54704f/spawn.png b/uploads/b047fb813b9c5fd39dddd6475b54704f/spawn.png
new file mode 100644 (file)
index 0000000..898ef8b
Binary files /dev/null and b/uploads/b047fb813b9c5fd39dddd6475b54704f/spawn.png differ
diff --git a/uploads/b17c8e0ffb023dcb60fd7e2c23039e44/xonotic20230616230550-00.jpg b/uploads/b17c8e0ffb023dcb60fd7e2c23039e44/xonotic20230616230550-00.jpg
new file mode 100644 (file)
index 0000000..67fee29
Binary files /dev/null and b/uploads/b17c8e0ffb023dcb60fd7e2c23039e44/xonotic20230616230550-00.jpg differ
diff --git a/uploads/b557161f3f3918ef097b86cc282c9795/medals2.jpg b/uploads/b557161f3f3918ef097b86cc282c9795/medals2.jpg
new file mode 100644 (file)
index 0000000..7230650
Binary files /dev/null and b/uploads/b557161f3f3918ef097b86cc282c9795/medals2.jpg differ
diff --git a/uploads/b5880d748b8fae86cbc3106b1ad0e937/afrit.png b/uploads/b5880d748b8fae86cbc3106b1ad0e937/afrit.png
new file mode 100644 (file)
index 0000000..61557a7
Binary files /dev/null and b/uploads/b5880d748b8fae86cbc3106b1ad0e937/afrit.png differ
diff --git a/uploads/b71c8b9d29a00a11a47e29a0033290d9/team_notify.jpg b/uploads/b71c8b9d29a00a11a47e29a0033290d9/team_notify.jpg
new file mode 100644 (file)
index 0000000..8ee30cd
Binary files /dev/null and b/uploads/b71c8b9d29a00a11a47e29a0033290d9/team_notify.jpg differ
diff --git a/uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3 b/uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3
new file mode 100644 (file)
index 0000000..2a81f13
Binary files /dev/null and b/uploads/b72f913d9a32520275a943b6c3fde511/fsmp-teamplay-server-files-1.3.0.pk3 differ
diff --git a/uploads/b74fcccf32fe79966f656030737bed2a/armor_mega.tga b/uploads/b74fcccf32fe79966f656030737bed2a/armor_mega.tga
new file mode 100644 (file)
index 0000000..1324e97
Binary files /dev/null and b/uploads/b74fcccf32fe79966f656030737bed2a/armor_mega.tga differ
diff --git a/uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png b/uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png
new file mode 100644 (file)
index 0000000..cae2c8b
Binary files /dev/null and b/uploads/b7538e50554b70d4c8c0946e4c6cd991/health_big.png differ
diff --git a/uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg b/uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg
new file mode 100644 (file)
index 0000000..7922260
Binary files /dev/null and b/uploads/b77bc014b93ea6f97e581be4eece805d/afrit.jpg differ
diff --git a/uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg b/uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg
new file mode 100644 (file)
index 0000000..1c237ff
Binary files /dev/null and b/uploads/b7c8b250fc1af6b30c999506e7143930/blenderSMDexport2.jpg differ
diff --git a/uploads/b88705357f80b8216aff7fd545baa94f/entrapboom.png b/uploads/b88705357f80b8216aff7fd545baa94f/entrapboom.png
new file mode 100644 (file)
index 0000000..6055000
Binary files /dev/null and b/uploads/b88705357f80b8216aff7fd545baa94f/entrapboom.png differ
diff --git a/uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg b/uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg
new file mode 100644 (file)
index 0000000..7f60c17
Binary files /dev/null and b/uploads/b9dd72b8571010e06ba5ee3d0be68845/karmaSystem.jpg differ
diff --git a/uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png b/uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png
new file mode 100644 (file)
index 0000000..cad903b
Binary files /dev/null and b/uploads/ba42b9e7a7619c82f97eca0be5b0efc6/armor_mega.png differ
diff --git a/uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3 b/uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3
new file mode 100644 (file)
index 0000000..68cbcb4
Binary files /dev/null and b/uploads/ba94aa50b9d2a1b4afbbe277ce4e8e3e/fsmp-teamplay-server-files-1.4.0.pk3 differ
diff --git a/uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg b/uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg
new file mode 100644 (file)
index 0000000..b56ee81
Binary files /dev/null and b/uploads/bb848a10f699a55df73e70d9ab6e1102/spectating.jpg differ
diff --git a/uploads/bc616f2e01318d8e0f5e267ffd3d8b50/4eg.jpg b/uploads/bc616f2e01318d8e0f5e267ffd3d8b50/4eg.jpg
new file mode 100644 (file)
index 0000000..c5ee3eb
Binary files /dev/null and b/uploads/bc616f2e01318d8e0f5e267ffd3d8b50/4eg.jpg differ
diff --git a/uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3 b/uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3
new file mode 100644 (file)
index 0000000..013c567
Binary files /dev/null and b/uploads/bc6f4532a636aae501c8a800ceed0eb2/zzz-bai-announcer-v9.pk3 differ
diff --git a/uploads/bca5d877730c378b68e6f3bcf0a87879/Vehicle-ll48tank-cockpit.png b/uploads/bca5d877730c378b68e6f3bcf0a87879/Vehicle-ll48tank-cockpit.png
new file mode 100644 (file)
index 0000000..722c1e8
Binary files /dev/null and b/uploads/bca5d877730c378b68e6f3bcf0a87879/Vehicle-ll48tank-cockpit.png differ
diff --git a/uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg b/uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg
new file mode 100644 (file)
index 0000000..17a6603
Binary files /dev/null and b/uploads/bdb424baaeff32bf3f406b43be17e5a6/jump_wp_to_crouch_wp.jpg differ
diff --git a/uploads/c04b290b3174036960a84590ade730f0/spawn.jpg b/uploads/c04b290b3174036960a84590ade730f0/spawn.jpg
new file mode 100644 (file)
index 0000000..3b7a67c
Binary files /dev/null and b/uploads/c04b290b3174036960a84590ade730f0/spawn.jpg differ
diff --git a/uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png b/uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png
new file mode 100644 (file)
index 0000000..fec7bc9
Binary files /dev/null and b/uploads/c2c9f4c388ac01ae9213c577c1afe7c3/gametype_mmmxaw.png differ
diff --git a/uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png b/uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png
new file mode 100644 (file)
index 0000000..3bb9369
Binary files /dev/null and b/uploads/c3466c97c10a16b06b8c523b22a0e0ab/health_mega.png differ
diff --git a/uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png b/uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png
new file mode 100644 (file)
index 0000000..ef08dfb
Binary files /dev/null and b/uploads/c48fb7565453eab24faca2d6ffec4347/Md3_textures.png differ
diff --git a/uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png b/uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png
new file mode 100644 (file)
index 0000000..1847fce
Binary files /dev/null and b/uploads/c6e610dae225d4b3b3b6d983fbe4a1ee/gametype_mmm.png differ
diff --git a/uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg b/uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg
new file mode 100644 (file)
index 0000000..4fe5ade
Binary files /dev/null and b/uploads/c71d78429cae68236204f572a61ce1fc/scoreboardCountryflag.jpg differ
diff --git a/uploads/c78a23766edd66cea849944f9b0eb2e0/conv_armor_mega.png b/uploads/c78a23766edd66cea849944f9b0eb2e0/conv_armor_mega.png
new file mode 100644 (file)
index 0000000..3ba6926
Binary files /dev/null and b/uploads/c78a23766edd66cea849944f9b0eb2e0/conv_armor_mega.png differ
diff --git a/uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3 b/uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3
new file mode 100644 (file)
index 0000000..23cc4ea
Binary files /dev/null and b/uploads/c9dd058351dd79b05014293df321836d/zzz-bai-gfx-v8.pk3 differ
diff --git a/uploads/ca2ff9f964f1836eaa2550c5ab918c85/napalmboom.png b/uploads/ca2ff9f964f1836eaa2550c5ab918c85/napalmboom.png
new file mode 100644 (file)
index 0000000..76b5bac
Binary files /dev/null and b/uploads/ca2ff9f964f1836eaa2550c5ab918c85/napalmboom.png differ
diff --git a/uploads/ca88b1a8cbab9b9c5b81ef43bb9809f3/crylinkblendertexturesample.jpg b/uploads/ca88b1a8cbab9b9c5b81ef43bb9809f3/crylinkblendertexturesample.jpg
new file mode 100644 (file)
index 0000000..f2fc7cd
Binary files /dev/null and b/uploads/ca88b1a8cbab9b9c5b81ef43bb9809f3/crylinkblendertexturesample.jpg differ
diff --git a/uploads/cd28ad41832e53d9006402c8821c6a18/medals3.jpg b/uploads/cd28ad41832e53d9006402c8821c6a18/medals3.jpg
new file mode 100644 (file)
index 0000000..299da00
Binary files /dev/null and b/uploads/cd28ad41832e53d9006402c8821c6a18/medals3.jpg differ
diff --git a/uploads/cd466c80bb27a039b5e6702755707562/spider.jpg b/uploads/cd466c80bb27a039b5e6702755707562/spider.jpg
new file mode 100644 (file)
index 0000000..c100bc1
Binary files /dev/null and b/uploads/cd466c80bb27a039b5e6702755707562/spider.jpg differ
diff --git a/uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg b/uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg
new file mode 100644 (file)
index 0000000..fd96589
Binary files /dev/null and b/uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg differ
diff --git a/uploads/ce02b51b844f1a2dd37d6d51f1fa6e67/zzz-bai-sounds-v11.pk3 b/uploads/ce02b51b844f1a2dd37d6d51f1fa6e67/zzz-bai-sounds-v11.pk3
new file mode 100644 (file)
index 0000000..ae84c6d
Binary files /dev/null and b/uploads/ce02b51b844f1a2dd37d6d51f1fa6e67/zzz-bai-sounds-v11.pk3 differ
diff --git a/uploads/ce3c707247027623f69dc6ea82495567/spect_hud.jpg b/uploads/ce3c707247027623f69dc6ea82495567/spect_hud.jpg
new file mode 100644 (file)
index 0000000..3fc0e7e
Binary files /dev/null and b/uploads/ce3c707247027623f69dc6ea82495567/spect_hud.jpg differ
diff --git a/uploads/cf0c9ed18c81f8281e2af454b071dbb6/zzz-bai-jingle-v1.pk3 b/uploads/cf0c9ed18c81f8281e2af454b071dbb6/zzz-bai-jingle-v1.pk3
new file mode 100644 (file)
index 0000000..19b3f4b
Binary files /dev/null and b/uploads/cf0c9ed18c81f8281e2af454b071dbb6/zzz-bai-jingle-v1.pk3 differ
diff --git a/uploads/cfae0d89095b3fc5bd31962c1c7b47af/wyvern.jpg b/uploads/cfae0d89095b3fc5bd31962c1c7b47af/wyvern.jpg
new file mode 100644 (file)
index 0000000..fd5c7ad
Binary files /dev/null and b/uploads/cfae0d89095b3fc5bd31962c1c7b47af/wyvern.jpg differ
diff --git a/uploads/d24c29720cbc633d181ee7ada882a3ad/Gitsettingsshortguide.jpg b/uploads/d24c29720cbc633d181ee7ada882a3ad/Gitsettingsshortguide.jpg
new file mode 100644 (file)
index 0000000..aa3a6f1
Binary files /dev/null and b/uploads/d24c29720cbc633d181ee7ada882a3ad/Gitsettingsshortguide.jpg differ
diff --git a/uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg b/uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg
new file mode 100644 (file)
index 0000000..50b1685
Binary files /dev/null and b/uploads/d259518dd9c920f55b4813e4f9d92461/Vehicle-ll48tank.jpg differ
diff --git a/uploads/d3a3586d41ffca7ea2316696c3e0b0c9/zombie.jpg b/uploads/d3a3586d41ffca7ea2316696c3e0b0c9/zombie.jpg
new file mode 100644 (file)
index 0000000..57e03e4
Binary files /dev/null and b/uploads/d3a3586d41ffca7ea2316696c3e0b0c9/zombie.jpg differ
diff --git a/uploads/d48adce41341a2c32dc5b077bb897216/rottweiler.png b/uploads/d48adce41341a2c32dc5b077bb897216/rottweiler.png
new file mode 100644 (file)
index 0000000..efbc09c
Binary files /dev/null and b/uploads/d48adce41341a2c32dc5b077bb897216/rottweiler.png differ
diff --git a/uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg b/uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg
new file mode 100644 (file)
index 0000000..4d02611
Binary files /dev/null and b/uploads/d5c18cbaed37fc98b28a3fc2d8b3f8ed/nitro.jpg differ
diff --git a/uploads/d7ad82b11f40be35df21edea0ebd1b07/zzz-bai-jokes-v18.pk3 b/uploads/d7ad82b11f40be35df21edea0ebd1b07/zzz-bai-jokes-v18.pk3
new file mode 100644 (file)
index 0000000..52a0949
Binary files /dev/null and b/uploads/d7ad82b11f40be35df21edea0ebd1b07/zzz-bai-jokes-v18.pk3 differ
diff --git a/uploads/d7c63b18559c353165cee65dfd31aca3/spectating.png b/uploads/d7c63b18559c353165cee65dfd31aca3/spectating.png
new file mode 100644 (file)
index 0000000..4a97ad7
Binary files /dev/null and b/uploads/d7c63b18559c353165cee65dfd31aca3/spectating.png differ
diff --git a/uploads/dbc9799a7d5caa91d6172b21e61f205e/translocate.png b/uploads/dbc9799a7d5caa91d6172b21e61f205e/translocate.png
new file mode 100644 (file)
index 0000000..ad0d2ec
Binary files /dev/null and b/uploads/dbc9799a7d5caa91d6172b21e61f205e/translocate.png differ
diff --git a/uploads/dead5dd822cfb3eef5470d1e4cfd64b5/Vehicle-r22helicopter.png b/uploads/dead5dd822cfb3eef5470d1e4cfd64b5/Vehicle-r22helicopter.png
new file mode 100644 (file)
index 0000000..d1d1164
Binary files /dev/null and b/uploads/dead5dd822cfb3eef5470d1e4cfd64b5/Vehicle-r22helicopter.png differ
diff --git a/uploads/dec906e1d2ca4f2ec2096e8461797592/murder_place.jpg b/uploads/dec906e1d2ca4f2ec2096e8461797592/murder_place.jpg
new file mode 100644 (file)
index 0000000..457524d
Binary files /dev/null and b/uploads/dec906e1d2ca4f2ec2096e8461797592/murder_place.jpg differ
diff --git a/uploads/e1f01cf95af8e73403a7652836427195/veil.png b/uploads/e1f01cf95af8e73403a7652836427195/veil.png
new file mode 100644 (file)
index 0000000..5f60b11
Binary files /dev/null and b/uploads/e1f01cf95af8e73403a7652836427195/veil.png differ
diff --git a/uploads/e220eae0a519de41f93aa90c1be0a273/creeper.png b/uploads/e220eae0a519de41f93aa90c1be0a273/creeper.png
new file mode 100644 (file)
index 0000000..dc9d65b
Binary files /dev/null and b/uploads/e220eae0a519de41f93aa90c1be0a273/creeper.png differ
diff --git a/uploads/e5a8837b66fc96de4e30a19ed73d9e47/Vehicle-ll48tank-thirdperson-view.png b/uploads/e5a8837b66fc96de4e30a19ed73d9e47/Vehicle-ll48tank-thirdperson-view.png
new file mode 100644 (file)
index 0000000..37c6e26
Binary files /dev/null and b/uploads/e5a8837b66fc96de4e30a19ed73d9e47/Vehicle-ll48tank-thirdperson-view.png differ
diff --git a/uploads/e72bbcac022e75f3944c36ef7f7fd2c5/zzz-bai-gfx-v7.pk3 b/uploads/e72bbcac022e75f3944c36ef7f7fd2c5/zzz-bai-gfx-v7.pk3
new file mode 100644 (file)
index 0000000..a14eec2
Binary files /dev/null and b/uploads/e72bbcac022e75f3944c36ef7f7fd2c5/zzz-bai-gfx-v7.pk3 differ
diff --git a/uploads/e7c23520812595b949077456d0e0b002/armor_big.png b/uploads/e7c23520812595b949077456d0e0b002/armor_big.png
new file mode 100644 (file)
index 0000000..17681d0
Binary files /dev/null and b/uploads/e7c23520812595b949077456d0e0b002/armor_big.png differ
diff --git a/uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg b/uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg
new file mode 100644 (file)
index 0000000..c464207
Binary files /dev/null and b/uploads/e846c4dac00937a4bcef89c5fe961291/entrapboom.jpg differ
diff --git a/uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg b/uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg
new file mode 100644 (file)
index 0000000..bca3d58
Binary files /dev/null and b/uploads/eab7d20707a37db964faeca5b624648a/napalm.jpg differ
diff --git a/uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg b/uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg
new file mode 100644 (file)
index 0000000..b1eb2c5
Binary files /dev/null and b/uploads/ec37639792378bb6ef9684b19d45a056/blenderSMDexport5.jpg differ
diff --git a/uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg b/uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg
new file mode 100644 (file)
index 0000000..1fe4439
Binary files /dev/null and b/uploads/ec76013f8f6c39e5d3d9ad182818454c/xonotic20230616230916-00.jpg differ
diff --git a/uploads/edac44d1319de43fd3529cee1368d128/iconTTTgamemodeoriginal.png b/uploads/edac44d1319de43fd3529cee1368d128/iconTTTgamemodeoriginal.png
new file mode 100644 (file)
index 0000000..a5b2ee3
Binary files /dev/null and b/uploads/edac44d1319de43fd3529cee1368d128/iconTTTgamemodeoriginal.png differ
diff --git a/uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg b/uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg
new file mode 100644 (file)
index 0000000..ed32d68
Binary files /dev/null and b/uploads/ee94f06409a122191a74d70e1e2250bd/translocate.jpg differ
diff --git a/uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png b/uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png
new file mode 100644 (file)
index 0000000..1f2f391
Binary files /dev/null and b/uploads/efee46a2a80a232ebe5fa63e30f4e2d9/Md3exp.png differ
diff --git a/uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg b/uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg
new file mode 100644 (file)
index 0000000..b8ff362
Binary files /dev/null and b/uploads/f087361a52e91df6459df22e3926f412/normalboom.jpg differ
diff --git a/uploads/f16e2c669c122f62d8ae663f4df18823/zzz-bai-jokes-v18.pk3 b/uploads/f16e2c669c122f62d8ae663f4df18823/zzz-bai-jokes-v18.pk3
new file mode 100644 (file)
index 0000000..52a0949
Binary files /dev/null and b/uploads/f16e2c669c122f62d8ae663f4df18823/zzz-bai-jokes-v18.pk3 differ
diff --git a/uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg b/uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg
new file mode 100644 (file)
index 0000000..8bc22e2
Binary files /dev/null and b/uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg differ
diff --git a/uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg b/uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg
new file mode 100644 (file)
index 0000000..834ee1f
Binary files /dev/null and b/uploads/f453f36f7b04dd48c0747fc9075f4895/monsternadeboom.jpg differ
diff --git a/uploads/f4895cc5bd728d6bbb81e0699206098b/zombie2.png b/uploads/f4895cc5bd728d6bbb81e0699206098b/zombie2.png
new file mode 100644 (file)
index 0000000..e35bee7
Binary files /dev/null and b/uploads/f4895cc5bd728d6bbb81e0699206098b/zombie2.png differ
diff --git a/uploads/f6696ed828d0b759321b2a9fb358f044/enforcer.png b/uploads/f6696ed828d0b759321b2a9fb358f044/enforcer.png
new file mode 100644 (file)
index 0000000..d53a1e3
Binary files /dev/null and b/uploads/f6696ed828d0b759321b2a9fb358f044/enforcer.png differ
diff --git a/uploads/f6bee872e2ebfe4c3bb317bd1f0aa421/tttTGA.tga b/uploads/f6bee872e2ebfe4c3bb317bd1f0aa421/tttTGA.tga
new file mode 100644 (file)
index 0000000..ced8fd6
Binary files /dev/null and b/uploads/f6bee872e2ebfe4c3bb317bd1f0aa421/tttTGA.tga differ
diff --git a/uploads/fad08dff4a3f011773ccd11bbf14fe57/vore.png b/uploads/fad08dff4a3f011773ccd11bbf14fe57/vore.png
new file mode 100644 (file)
index 0000000..689c3c8
Binary files /dev/null and b/uploads/fad08dff4a3f011773ccd11bbf14fe57/vore.png differ
diff --git a/uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg b/uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg
new file mode 100644 (file)
index 0000000..de6332d
Binary files /dev/null and b/uploads/fbdadc8a4d7a66b459475f12fcfb3944/traitor.jpg differ
diff --git a/uploads/fbdb7eb49088219c3acc3095e4254a6a/monsternade.png b/uploads/fbdb7eb49088219c3acc3095e4254a6a/monsternade.png
new file mode 100644 (file)
index 0000000..11692bc
Binary files /dev/null and b/uploads/fbdb7eb49088219c3acc3095e4254a6a/monsternade.png differ
diff --git a/uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg b/uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg
new file mode 100644 (file)
index 0000000..14f595d
Binary files /dev/null and b/uploads/ffc9cef7d586de00266c20d4eeffaaf8/support_wp.jpg differ