9. How Help or Make Content - DragonSurvivalTeam/DragonSurvival GitHub Wiki
■ The greatest help you can give to the project is moral support and kind words. This is the most important thing that will keep us working and investing our time into this project. It will be difficult to help us with something very global, because quite a lot of it requires deep programming knowledge, but there are a lot of things that each of you can help with if you want to. Your help will free up your time for development.
● General Help
- Localization mod
- Reviews, guides, article additions, fanarts, and other content.
- We get a lot of questions from players and about 90% of those questions are repeated. Help us if you've read the development diary, wiki and discord or just know the answer.
- Help in testing. We wouldn't know about problems if no one told us about them. Send all bug reports here.
- Financial support - Patreon and Boosty. Boosty is preferable, since the author lives in Russia and can not withdraw money from the Patreon.
● Help from artists
■ Animation (GeckoLib + BlockBench)
- New dragon emotions
■ Textures
- More parts for the dragon editor
- Alternative armor options for mods
- More doors or altars
● Help from programmers
■ At the moment we have no programmer and the "code" is handled by an artist. If you have any ideas and suggestions, you can send commits here with a detailed description of what you want to add. I would be very grateful for help with fixing bugs and adding new features listed in Trello and Issues.
■ I don't want to port to any new versions. Please, let's develop existing versions instead. The license does not allow any copies or ports without owner permission.
● Localization
■ Required: NotePad++.
■ Main language: Russian. English is updated worse and may have inaccuracies, but you can use this for basic translation. If you have a desire to help translate Dragons Survival into your native language, feel free to do so! Check out the currently available languages here: Link.
■ Remember that we are constantly updating mods and localization will also require constant updates. We do not want to use automatic translation, because it leads to a large number of typos. If a translation has not been updated for a long time, we mark it as irrelevant and turn it off. Any help with this would be appreciated. Localization is very hard work! Get ready for the fact that you have to translate a lot of text.
- Download any file from this folder. We advise you to use the Russian translation. This is the developer's native language.
- Open it with a program (for example, NotePad++) and translate the text, which is in quotation marks.
- Note 1: Don't touch --food--
- Note 2: Do not use any characters like " or '
- Note 3: Never forget the commas at the end of each name
- Rename the file according to local code of your language. You can see list of all local code here: Minecraft Wiki
- You can check the translation inside the game using the resourcepack (assets\dragonsurvival\lang\en_us.json)
- After saving, just send this file for BlackAures#7759.
- An example of what a localization might look like.
■ We've used Crowdin in the past, but I'm forever forgetting to add updates there.
● Create a new emotion
■ Required: NotePad++, Blockbench, Geckolib Plugin
■ All players with the same resourcepack will see these animations, because when you run an animation, the other player's computer checks for animations with the same name. This requires knowledge of resourcepacks and json. Let your imagination run wild!
■ The stages of creating a new emotion:
- Animation. The first thing you need to do is create the animation itself using BlockBench and Geckolib Plugin. If you are an experienced Blockbench user this will not be a serious problem for you, but if you are a new user I suggest you read their guide .
- Register. After you save the animation, you need to register it in Emotes. Give it a name (you don't have to use localization keys, you can just write "Sit" instead of "ds.emote.sit"), choose the name you wrote in the animation file, specify whether it will be looped and whether the neck is fixed. Look at how the other emotions are registered in the emotion file.
- Check. Make a resource pack for these two files (dragon.animations.json + emotes.json) and enter the game. In the list of emotions should appear the one you registered. Check to see if it works.
- Share. If everything works correctly, you're doing great! But I should warn you right away that this is the most difficult quest. Don't get upset if something doesn't work and ask me ^^
■ Emotion creation consists of two files:
- dragon animation (main\resources\assets\dragonsurvival\animations\dragon.animations.json)
- emotion registration (main\resources\assets\dragonsurvival\emotes.json)
■ Most of the settings you see in the game are:
- name - name that players see. You can just write "Sit" instead of "ds.emote.sit". Because the last option is required for localization.
- animation - animation name from dragon.animations.json
- loops - if true, plays indefinitely
- locksHead - if true, the dragon's head will be strictly fixed and will not rotate. In some animations, the moving head looks extremely strange.
- thirdPerson - if true, prohibit viewing first-person animations
- [requerements] type - type of dragon that will be able to use this animation. Example: type
- [requerements] age - growth stage that will be able to use this animation. Example:
- duration - animation/sound duration. If empty, 1x multiplier will be used (standard animation speed)
- blend - smooth blending between animations. To connect the two animations. For example tongue + sits.
- mirror (xPos, yPos, zPos)
■ Separate category for sound emotions:
- key - sound name. If you create your own sound, it must be registered separately with a code.
- interval - delay between two portions of sound
- volume - just how loud this animation is heard by others.
- pitch - sound modifier to make it more subtle or bassy
■ To make your emotes public, send them to me and I will add them in the next patch if they are done correctly.
● More customization for editor
■ Required: NotePad++, Blockbench, any graphic editor.
■ You can expand the range of Dragon Editor parts. To do so, it is important to follow the following rules:
- Uniqueness. Each dragon species has its own unique set of textures and you should not deprive them of their individuality.
- Lore. A sea dragon has different colored eyes according to the lore, a forest dragon is made up of plants, and a cave dragon is rocks. Don't change details like that.
- Double-check. Triple-check for translucent pixels. Always paint with a brush with 100% transparency.
- Separate. You don't need to connect horns to the body or ridges to spikes. Any details must fit into the exact category.
- Title. Check what the other parts are called and set the correct numbering. Each part should have a localization key (I can make one myself if you don't know how).
- Extras. For this, the same rules apply as for creating a skin.
■ How do you make new dragon parts:
- Create a texture. To create the dragon part texture use this model. Just draw it the same way you would if you were drawing skin.
- Save and rename your texture as here.
- Check in-game with the texture pack (src/main/resources/assets/dragonsurvival/textures/dragon/custom/your_texture_name + src/main/resources/assets/dragonsurvival/customization.json). You will need to properly register a new texture, but if you are not good at it and just want to draw - send a ready texture to the developer, I will add it myself.
● Armor compatibility
■ Required: Blockbench, any graphic editor.
■ You can check existing compatibilities here.
- Only for 1.18.2 - 1.4.30+ ds version;
- Curios support;
■ You have the ability to create a unique look for armor from other mods with texture packs. We can add your textures to the mod or you can just use it for your modpacks. An example of a finished texture pack. For this, the same rules apply as for creating a skin.
- Suppose we want to make a unique armor texture for Sea Dwellers mod.
- Create a texture. Use this model to create an armor texture for the dragon.
- Find the id of the armor you want to add. To do this you need to press F3+H and hover over the item. At the bottom it will say something like "seadwellers:depth_chestplate".
- Create an archive for the texture pack with the following folders: "assets\dragonsurvival\textures\armor\seadwellers". Or just edit a ready-made one. To do this, you will need an archiver program (like 7-zip) and a basic knowledge of how to work with them.
- Put your texture in the folder "seadwellers". The texture must be called exactly as it is written in the item id ("depth_chestplate.png")
- Add texturepack to the game (folder "resourcepacks").
- Include a texture pack in the game. In the game settings, move your texturepack to the right.
- Check.
■ "How do I add my texture to the mod officially?" Yes. Just contact BlackAures#7759. I will add your texture for all if it meets these parameters:
- Looks good quality
- Looks like the original armor
● Other compatibility
■ Required: NotePad++.
■ Main principles:
- Only id's are accepted. You can only offer id, not a description like "here's mod X and it has some charcoal that I can't remember what it's called". You can find out this id of an item if you turn on advanced hints in the game (F3+H). Point at the item in the inventory and write down this id. Example: "abnormals_delight:cooked_perch_slice", "simplefarming:sushi"
- Logic. Any item or unit offered must fit the general idea of a dragon, not just an idea along the lines of "I want to eat fried chicken like a sea dragon". Any idea must be consistent with the lore of the original mod.
- Design. In addition to the id, you need to follow the general layout, which is listed in each section as an example. This will just make my job of adding it easier.
- No duplicates. Check the attached links for lists so you don't repeat what's already been there.
- The threads. It would be better to send your answers in this discord thread.
1. Charred types of food for the cave dragon
■ These are any already cooked foods that can be accurately assigned to a specific category. If the recipe mixes both vegetables and meat it is better not to use them, but you can still suggest it, just by specifying that the recipe uses more than one ingredient. Examples:
{
"id": "prehistoricfauna:cooked_large_synapsid_meat",
"required": false
},
{
"id": "nocubes_better_frogs:cooked_frog_leg",
"required": false
}
2. Dragon Speedup Blocks
■ This is basically an automated system that checks the block material, but if some logical block for a dragon doesn't work, you can augment it. Example:
- Cave dragon
caveSpeedupBlocks = List.of("minecraft:base_stone_nether", "minecraft:base_stone_overworld", "minecraft:stone_bricks", "minecraft:beacon_base_blocks", "forge:cobblestone", "forge:sandstone", "forge:stone", "forge:ores", "quark:deepslate", "quark:deepslate_bricks", "quark:cobbled_deepslate");
- Forest dragon
forestSpeedupBlocks = List.of("minecraft:logs", "minecraft:leaves", "minecraft:planks", "forge:dirt", "minecraft:grass", "minecraft:dirt", "minecraft:wooden_slab");
- Sea dragon
seaSpeedupBlocks = List.of("minecraft:ice", "minecraft:impermeable", "minecraft:sand", "minecraft:coral_blocks", "forge:sand", "minecraft:dirt_path", "minecraft:sandstone", "minecraft:cut_sandstone", "minecraft:chiseled_sandstone", "minecraft:smooth_sandstone", "minecraft:red_sandstone", "minecraft:cut_red_sandstone", "minecraft:chiseled_red_sandstone", "minecraft:smooth_red_sandstone", "minecraft:water");
3. Black List of Items
■ To balance with humans, dragons cannot use any ranged weapons (crossbows, bows, etc.) and shields. This item drops out of the inventory.
blacklistedItems = List.of("minecraft:bow", "spartanshields:shield_basic_nickel", "spartanshields:shield_basic_invar", "spartanshields:shield_basic_constantan", "spartanshields:shield_basic_platinum", "spartanshields:shield_mekanism_refined_glowstone", "spartanshields:shield_tower_wood", "spartanshields:shield_tower_stone", "spartanshields:shield_tower_iron")
4. Royal Chase Status Givers
■ When attacking which creatures will the player receive the status of Royal Chase (Evil Dragon)?
royalChaseStatusGivers = List.of("minecraft:villager", "minecraft:iron_golem", "dragonsurvival:hunter_hound", "dragonsurvival:knight", "dragonsurvival:shooter", "dragonsurvival:squire", "dragonsurvival:prince", "dragonsurvival:princess", "dragonsurvival:princess_entity");
5. Hunters Goal
■ Who dragon hunters attack in their spare time.
"minecraft:evoker", "minecraft:pillager", "minecraft:vindicator", "minecraft:stray", "minecraft:skeleton", "minecraft:spider", "minecraft:cave_spider"
6. The Dragon Diet
■ To get the gist, check out the full food list here.
- Cave Dragon Food
caveDragonFoods = Arrays.asList("minecraft:coals:1:1", "minecraft:charcoal:1:2", "dragonsurvival:charged_coal:6:1", "dragonsurvival:charred_meat:8:10", "dragonsurvival:cave_dragon_treat:4:8", "dragonsurvival:charred_seafood:7:11", "dragonsurvival:charred_vegetable:8:9", "dragonsurvival:charred_mushroom:9:9", "dragonsurvival:charged_soup:15:15")
- Sea Dragon Food
seaDragonFoods = Arrays.asList("forge:raw_fishes:6:4", "minecraft:kelp:1:1", "minecraft:pufferfish:8:8", "dragonsurvival:sea_dragon_treat:4:8", "dragonsurvival:seasoned_fish:12:10", "dragonsurvival:golden_coral_pufferfish:12:14", "dragonsurvival:frozen_raw_fish:2:1", "dragonsurvival:golden_turtle_egg:15:12", "aoa3:raw_candlefish:9:9", "aoa3:raw_crimson_skipper:8:8", "aoa3:raw_fingerfish:4:4", "aoa3:raw_pearl_stripefish:5:4", "aoa3:raw_limefish:5:5", "aoa3:raw_sailback:6:5", "netherdepthsupgrade:soulsucker:6:7")
- Forest Dragon Food
forestDragonFoods = Arrays.asList("forge:raw_meats:4:4", "minecraft:sweet_berries:1:1", "minecraft:rotten_flesh:2:4", "minecraft:spider_eye:6:8", "minecraft:rabbit:7:8", "minecraft:poisonous_potato:7:8", "minecraft:chorus_fruit:9:8", "minecraft:honey_bottle:1:2", "dragonsurvival:forest_dragon_treat:4:8", "dragonsurvival:meat_chorus_mix:12:8")
7. Sea Hydration
■ When a sea dragon stands on any wet blocks, it recovers its water supply.
- Blocks for restore water
seaHydrationBlocks = List.of("minecraft:ice", "minecraft:snow", "minecraft:powder_snow","minecraft:snow_block", "dragonsurvival:sea_source_of_magic", "immersive_weathering:thin_ice", "immersive_weathering:cryosol", "immersive_weathering:permafrost", "immersive_weathering:frosty_grass", "immersive_weathering:frosty_fern", "ecologics:thin_ice"
- Usable items for restore water (besides water bottles)
seaAdditionalWaterUseables = List.of("immersive_weathering:icicle");